
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
I checked. When a SL/TP is triggered you have these transaction :
When going short - from a virgin position, i get 3 transactions:
A entry )
Once stop loss triggered , i get
B exit )
No TRADE_TRANSACTION_POSITION. I think you can't use it here.
Summary:
A short is opened, the first transaction is
entry-type=IN trans-type=DEAL_ADD order_type=BUY sl=1.3119000 tp=1.3088000
Short closed, by stop or target, first reflected transaction
entry-type=IN trans-type=DEAL_ADD order_type=BUY sl=0.0 tp=0.0
This is confusing. It should be:
open short:
entry-type=IN trans-type=DEAL_ADD order_type=SELL sl=1.3119000 tp=1.3088000
close short:
entry-type=OUT trans-type=DEAL_ADD order_type=BUY sl=0.0 tp=0.0
I checked. When a SL/TP is triggered you have these transaction :
When going short - from a virgin position, i get 3 transactions:
A entry )
Once stop loss triggered , i get
B exit )
No TRADE_TRANSACTION_POSITION. I think you can't use it here.
...You are missing some transactions, don't know why. Because backtesting ?
Small digression, intead of :
you can use :
EnumToString(t.order_type)
Small digression, intead of :
you can use :
Thank you for EnumToString. Much smarter to use.
Yes, my concern is about transaction in backtest. But in order to make it as most real as possible, transaction should be the same as in live trading.
TRADE_TRANSACTION_POSITION is not related to a deal, as you also mentioned before. I guess it indicates for instance, when you moved some money on your account.
...
The issue seems there is some transactions not available when backtesting. A bug or a limitation of backtesting. When running on a forward test, I have a TRADE_TRANSACTION_POSITION when SL/TP is triggered.
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) TRADE_TRANSACTION_ORDER_ADD
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) trans=symbol=EURUSD price=1.3170100 volume=0.01 sl=0.0000000 tp=0.0000000 order=19683612 deal=0 entry-type=IN trans-type=ORDER_ADD order_type=BUY deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) TRADE_TRANSACTION_ORDER_DELETE
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) trans=symbol=EURUSD price=1.3170100 volume=0.01 sl=0.0000000 tp=0.0000000 order=19683612 deal=0 entry-type=IN trans-type=ORDER_DELETE order_type=BUY deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) TRADE_TRANSACTION_HISTORY_ADD
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) trans=symbol=EURUSD price=1.3170100 volume=0.00 sl=0.0000000 tp=0.0000000 order=19683612 deal=0 entry-type=IN trans-type=HISTORY_ADD order_type=BUY deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) TRADE_TRANSACTION_POSITION
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) trans=symbol=EURUSD price=1.3173500 volume=0.01 sl=1.3174200 tp=1.3170100 order=0 deal=0 entry-type=IN trans-type=POSITION order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) TRADE_TRANSACTION_DEAL_ADD
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) trans=symbol=EURUSD price=1.3170100 volume=0.01 sl=0.0000000 tp=0.0000000 order=19683612 deal=16655372 entry-type=OUT trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.34
The issue seems there is some transactions not available when backtesting. A bug or a limitation of backtesting. When running on a forward test, I have a TRADE_TRANSACTION_POSITION when SL/TP is triggered.
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) TRADE_TRANSACTION_ORDER_ADD
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) trans=symbol=EURUSD price=1.3170100 volume=0.01 sl=0.0000000 tp=0.0000000 order=19683612 deal=0 entry-type=IN trans-type=ORDER_ADD order_type=BUY deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) TRADE_TRANSACTION_ORDER_DELETE
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) trans=symbol=EURUSD price=1.3170100 volume=0.01 sl=0.0000000 tp=0.0000000 order=19683612 deal=0 entry-type=IN trans-type=ORDER_DELETE order_type=BUY deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) TRADE_TRANSACTION_HISTORY_ADD
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) trans=symbol=EURUSD price=1.3170100 volume=0.00 sl=0.0000000 tp=0.0000000 order=19683612 deal=0 entry-type=IN trans-type=HISTORY_ADD order_type=BUY deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) TRADE_TRANSACTION_POSITION
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) trans=symbol=EURUSD price=1.3173500 volume=0.01 sl=1.3174200 tp=1.3170100 order=0 deal=0 entry-type=IN trans-type=POSITION order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) TRADE_TRANSACTION_DEAL_ADD
2013.05.08 19:20:29 tc_ea_trans (EURUSD,M1) trans=symbol=EURUSD price=1.3170100 volume=0.01 sl=0.0000000 tp=0.0000000 order=19683612 deal=16655372 entry-type=OUT trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.34
Hello angevoyageur,
still have the problem to get the executed price of a stop or loss attached to a postion - in backtest. Don't know so far, how it's behave under live conditions.
This is from backtest log:
As you can see in last line, the executed price is given in the log -> [#7 buy 0.01 EURUSD at 1.27349]
But no structure, transaction, deal or order history provides this price.
This line dumps the transaction related to triggered stop:
This is the dump function code:
So i tried to get execution price from order and deal history: no result
Hello angevoyageur,
...Thanks, I will go to study that ASAP.
This is really nice. Do not hurry.
I checked each transaction, request and result passed to OnTradeTransaction.
The triggered stop loss price mentioned in the backtest log (create by MetaTrader) can't be found except as sl price, but not as price or deal price or execution price.
This is really nice. Do not hurry.
I checked each transaction, request and result passed to OnTradeTransaction.
The triggered stop loss price mentioned in the backtest log (create by MetaTrader) can't be found except as sl price, but not as price or deal price or execution price.
So, we are talking about backtesting only. I have tested with my own code and I obtain 3 transactions when a stop is triggered :
2013.05.15 10:22:27 Core 1 2013.05.10 16:20:37 Symbol : EURUSD event : TRADE_TRANSACTION_DEAL_ADD(6)
2013.05.15 10:22:27 Core 1 2013.05.10 16:20:37 Symbol : EURUSD event : TRADE_TRANSACTION_ORDER_DELETE(2)
2013.05.15 10:22:27 Core 1 2013.05.10 16:20:37 Symbol : EURUSD event : TRADE_TRANSACTION_HISTORY_ADD(3)