I am attempting to evaluate and compare the profit factor of different "test runs" of a FOREX trading strategy.

My problem is that, despite an average time between orders of 2hr+, some of these runs can have 20+ orders in a row, every 5 minutes, in the same direction. I need some way to normalize these clusters that occur without just throwing the data out.

I want to treat the cluster as 1 data point by averaging the gain/loss of each trade within the cluster.

I was thinking of doing it with a moving time window in the following manner:

For each order:
Weight = 1/(N+1) 
N =  count of consecutive orders within 30 minutes of the current order.

But I am not sure if that is correct.

  • $\begingroup$ Why would you average them? If you need to consolidate them into a single point, why not add them together? $\endgroup$ – Henry Sep 17 '11 at 8:13
  • $\begingroup$ @Henry Because if I added them together it would give each point within the cluster as much weight as a point outside of the cluster. I want the cluster to be weighed against other results as if it was 1 data point. $\endgroup$ – Mike Furlender Sep 17 '11 at 8:26
  • $\begingroup$ Why? If your strategy says "buy $\$100$" every five minutes for an hour, then you have bought $\$1200$ not $\$100$ $\endgroup$ – Henry Sep 17 '11 at 8:31
  • $\begingroup$ No, because my "strategy" involves a metatest based on the performance of which I want to manage my bet sizes. $\endgroup$ – Mike Furlender Sep 17 '11 at 9:57

Instead of outputting an action (Buy/Sell), why not output a position (Long/Short)? Then your "metasystem" can decide the appropriate trades to realize the desired position.

This way, if you are already "Long" another "Long" output is treated as the system confirming it's position.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.