I have a problem which I need help - and have not found other articles about it.
I have two test strategies with more or less the same problem:
I use 15 min data in data1, and 1 min data in data 2, same symbol and exchange.
I have "Enable Intra day order generation" turned on. The trigger is an indicator which is based on data1. I use
close[1] of data2 as a limit order to buy if the indicator (intra bar) changes from negative to positive, and the
same visa versa. The reason I use close[1] is that in live trading if I use close of data2 then it will execute the order
based on the current close of data2 which would be the same as data1 (I think).
When I run a backtest with this and IOG turned on it shows good results, partly since the IOG without bar magnifier
only uses 4 datapoints. When I run a backtest using bar magnifier on tick level (and IOG) it shows a bit worse result
(as expected) but still a nice equity curve.
If I do playback I also get a similar result on a tick level.
However when I trade this live quite a few of the trades are not executed and the results are very different. I can
understand that sometimes the limit is not hit etc but it seems like some of the orders are simply skipped in real
life trading.
My other system is quite similar, but the trigger indicator is based upon data2 (1 min) and executed on data1 (15min). Again with IOG etc.
Here I execute market and not limit. Results are again very different in real life trading.
IOG is set to only execute one order per bar.
Any suggestions?
Data1 & Data 2 - IOG backtest vs real life trading
- TJ
- Posts: 7740
- Joined: 29 Aug 2006
- Location: Global Citizen
- Has thanked: 1033 times
- Been thanked: 2221 times
Re: Data1 & Data 2 - IOG backtest vs real life trading
I have a problem which I need help - and have not found other articles about it.
I have two test strategies with more or less the same problem:
I use 15 min data in data1, and 1 min data in data 2, same symbol and exchange.
I have "Enable Intra day order generation" turned on. The trigger is an indicator which is based on data1. I use
close[1] of data2 as a limit order to buy if the indicator (intra bar) changes from negative to positive, and the
same visa versa. The reason I use close[1] is that in live trading if I use close of data2 then it will execute the order
based on the current close of data2 which would be the same as data1 (I think).
When I run a backtest with this and IOG turned on it shows good results, partly since the IOG without bar magnifier
only uses 4 datapoints. When I run a backtest using bar magnifier on tick level (and IOG) it shows a bit worse result
(as expected) but still a nice equity curve.
If I do playback I also get a similar result on a tick level.
However when I trade this live quite a few of the trades are not executed and the results are very different. I can
understand that sometimes the limit is not hit etc but it seems like some of the orders are simply skipped in real
life trading.
My other system is quite similar, but the trigger indicator is based upon data2 (1 min) and executed on data1 (15min). Again with IOG etc.
Here I execute market and not limit. Results are again very different in real life trading.
IOG is set to only execute one order per bar.
Any suggestions?
You should always use the fastest fractal as data1.