检测OnTradeTransaction回测中的止损触发器 - 页 3 12345 新评论 chinaski 2013.05.08 15:06 #21 angevoyageur:我检查过了。当一个SL/TP被触发时,你有这些交易。TRADE_TRANSACTION_POSITION,设置了SL和TP(但还没有交易),然后交易_交易_交易_添加当做空时--从一个原始头寸开始,我得到3个交易。A进入 )20130507 21:52:28:943 entry short at 1.31060 time=2013.01.10 11:43 20130507 21:52:28:943 symbol=EURUSD price=1.3106000 volume=0.01 sl=1.3119000 tp=1.3088000 order=2 deal=2 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 20130507 21:52:28:943 symbol=EURUSD price=1.3106000 volume=0.01 sl=1.3119000 tp=1.3088000 order=2 deal=0 entry-type=IN trans-type=ORDER_DELETE order_type=SELL deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 20130507 21:52:28:943 symbol=EURUSD price=1.3106000 volume=0.00 sl=1.3119000 tp=1.3088000 order=2 deal=0 entry-type=IN trans-type=HISTORY_ADD order_type=SELL deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00一旦止损 被触发,我得到B 退出 )20130507 21:52:28:945 symbol=EURUSD price=1.3119000 volume=0.01 sl=0.0000000 tp=0.0000000 order=3 deal=3 entry-type=IN 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.00没有TRADE_TRANSACTION_POSITION。我认为你不能在这里使用它。摘要。一个空头被打开,第一个交易是entry-type=IN trans-type=DEAL_ADD order_type=BUYsl=1.3119000 tp=1.3088000关闭空头,按止损或目标,第一笔反映交易entry-type=IN trans-type=DEAL_ADD order_type=BUY sl=0.0 tp=0.0这很令人困惑。它应该是。open short:entry-type=IN trans-type=DEAL_ADD order_type=SELLsl=1.3119000 tp=1.3088000关闭空头。entry-type=OUT trans-type=DEAL_ADD order_type=BUY sl=0.0 tp=0.0angevoyageur: 我检查过了。当一个SL/TP被触发时,你有这些交易:TRADE_TRANSACTION_POSITION,设置了SL和TP(但还没有交易),然后交易_交易_交易_添加 Alain Verleyen 2013.05.08 16:01 #22 chinaski:当做空时--从一个原始头寸开始,我得到3个交易。A进入 )一旦止损 被触发,我得到B 退出 )没有TRADE_TRANSACTION_POSITION。我认为你不能在这里使用它。...你错过了一些交易,不知道为什么。因为回溯测试? Alain Verleyen 2013.05.08 16:07 #23 小小的离题,代替了:ORDER_TYPE_to_string(t.order_type) 你可以用:EnumToString(t.order_type) chinaski 2013.05.08 16:20 #24 angevoyageur:小小的离题,代替了:你可以使用:谢谢你的EnumToString,使用起来更聪明了。是的,我关心的是回测 中的交易。但为了使其尽可能的真实,交易应该与真实交易相同。TRADE_TRANSACTION_POSITION与交易无关,你之前也提到过。我想它表示的是,例如,当你在你的账户上移动了一些资金。 Alain Verleyen 2013.05.08 17:32 #25 chinaski: ...这个问题似乎在回测时有一些交易不可用。是错误 还是回测的限制。当在正向测试中运行时,当SL/TP被触发时,我有一个TRADE_TRANSACTION_POSITION。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 Get in touch with developers using Service Desk! www.mql5.com We therefore attach great importance to all user reports about issues in our programs and try to answer each one of them. Detect stop trigger in MetaEditor build 1490 MetaEditor build 1490 chinaski 2013.05.08 22:22 #26 angevoyageur:这个问题似乎在回测时有一些交易不可用。是错误 还是回测的限制。当在正向测试中运行时,当SL/TP被触发时,我有一个TRADE_TRANSACTION_POSITION。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 好的,谢谢你的信息。所以我知道要把它纳入我的考虑范围 chinaski 2013.05.14 21:23 #27 你好,Angevoyageur。在回溯测试 中,仍然有一个问题,就是如何获得止损点的执行价格。到目前为止,我还不知道它在实际情况下的表现。这是回测日志中的内容。KP 0 23:18:29 Core 1 2010.05.11 11:00:00 instant buy 0.01 EURUSD at 1.26882 (1.26871 / 1.26882 / 1.26871) EM 0 23:18:29 Core 1 2010.05.11 11:00:00 deal #2 buy 0.01 EURUSD at 1.26882 done (based on order #2) MG 0 23:18:29 Core 1 2010.05.11 11:00:00 deal performed [#2 buy 0.01 EURUSD at 1.26882] RI 0 23:18:29 Core 1 2010.05.11 11:00:00 order performed buy 0.01 at 1.26882 [#2 buy 0.01 EURUSD at 1.26882] JS 0 23:18:29 Core 1 2010.05.11 11:00:00 CTrade::OrderSend: instant buy 0.01 EURUSD at 1.26882 [done at 1.26882] LP 0 23:18:29 Core 1 2010.05.11 11:00:00 position modified [buy 0.01 EURUSD 1.26882 sl: 1.26809 tp: 1.27028] LM 0 23:18:29 Core 1 2010.05.11 11:00:00 CTrade::OrderSend: modify EURUSD (sl: 1.26809, tp: 1.27028) [done] LR 0 23:18:29 Core 1 2010.05.11 11:00:00 trans=symbol=EURUSD price=1.2688200 volume=0.01 sl=0.0000000 tp=0.0000000 order=2 deal=2 entry-type=IN 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.00 order-open=0.000000 order-current=0.000000 deal-price=0.000000 GG 0 23:18:29 Core 1 2010.05.11 11:18:40 take profit triggered buy 0.01 EURUSD 1.26882 sl: 1.26809 tp: 1.27028 [#3 sell 0.01 EURUSD at 1.27028] MD 0 23:18:29 Core 1 2010.05.11 11:18:40 deal #3 sell 0.01 EURUSD at 1.27028 done (based on order #3) PI 0 23:18:29 Core 1 2010.05.11 11:18:40 deal performed [#3 sell 0.01 EURUSD at 1.27028] NO 0 23:18:29 Core 1 2010.05.11 11:18:40 order performed sell 0.01 at 1.27028 [#3 sell 0.01 EURUSD at 1.27028] RS 0 23:18:29 Core 1 2010.05.11 11:18:40 trans=symbol=EURUSD price=1.2702800 volume=0.01 sl=0.0000000 tp=0.0000000 order=3 deal=3 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 order-open=0.000000 order-current=0.000000 deal-price=0.000000 JM 0 23:18:29 Core 1 2010.05.20 09:00:00 ut =3.00 candle=o=1.24130 c=1.24170 h=1.24360 l=1.24100 b=39 uw=190 lw=29 FK 0 23:18:29 Core 1 2010.05.20 09:00:00 instant sell 0.01 EURUSD at 1.24180 (1.24180 / 1.24195 / 1.24180) MG 0 23:18:29 Core 1 2010.05.20 09:00:00 deal #4 sell 0.01 EURUSD at 1.24180 done (based on order #4) IG 0 23:18:29 Core 1 2010.05.20 09:00:00 deal performed [#4 sell 0.01 EURUSD at 1.24180] CN 0 23:18:29 Core 1 2010.05.20 09:00:00 order performed sell 0.01 at 1.24180 [#4 sell 0.01 EURUSD at 1.24180] EO 0 23:18:29 Core 1 2010.05.20 09:00:00 CTrade::OrderSend: instant sell 0.01 EURUSD at 1.24180 [done at 1.24180] EQ 0 23:18:29 Core 1 2010.05.20 09:00:00 position modified [sell 0.01 EURUSD 1.24180 sl: 1.24253 tp: 1.24034] DO 0 23:18:29 Core 1 2010.05.20 09:00:00 CTrade::OrderSend: modify EURUSD (sl: 1.24253, tp: 1.24034) [done] HI 0 23:18:29 Core 1 2010.05.20 09:00:00 trans=symbol=EURUSD price=1.2418000 volume=0.01 sl=0.0000000 tp=0.0000000 order=4 deal=4 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 order-open=0.000000 order-current=0.000000 deal-price=0.000000 JH 0 23:18:29 Core 1 2010.05.20 09:00:40 stop loss triggered sell 0.01 EURUSD 1.24180 sl: 1.24253 tp: 1.24034 [#5 buy 0.01 EURUSD at 1.24253] HI 0 23:18:29 Core 1 2010.05.20 09:00:40 deal #5 buy 0.01 EURUSD at 1.24253 done (based on order #5) MK 0 23:18:29 Core 1 2010.05.20 09:00:40 deal performed [#5 buy 0.01 EURUSD at 1.24253] NL 0 23:18:29 Core 1 2010.05.20 09:00:40 order performed buy 0.01 at 1.24253 [#5 buy 0.01 EURUSD at 1.24253] KQ 0 23:18:29 Core 1 2010.05.20 09:00:40 trans=symbol=EURUSD price=1.2425300 volume=0.01 sl=0.0000000 tp=0.0000000 order=5 deal=5 entry-type=IN 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.00 order-open=0.000000 order-current=0.000000 deal-price=0.000000 PJ 0 23:18:30 Core 1 2010.08.26 09:08:00 ut =3.83 candle=o=1.27238 c=1.27274 h=1.27448 l=1.27238 b=35 uw=174 lw=0 IH 0 23:18:30 Core 1 2010.08.26 09:08:00 instant sell 0.01 EURUSD at 1.27276 (1.27276 / 1.27287 / 1.27276) GH 0 23:18:30 Core 1 2010.08.26 09:08:00 deal #6 sell 0.01 EURUSD at 1.27276 done (based on order #6) MR 0 23:18:30 Core 1 2010.08.26 09:08:00 deal performed [#6 sell 0.01 EURUSD at 1.27276] HR 0 23:18:30 Core 1 2010.08.26 09:08:00 order performed sell 0.01 at 1.27276 [#6 sell 0.01 EURUSD at 1.27276] PR 0 23:18:30 Core 1 2010.08.26 09:08:00 CTrade::OrderSend: instant sell 0.01 EURUSD at 1.27276 [done at 1.27276] FE 0 23:18:30 Core 1 2010.08.26 09:08:00 position modified [sell 0.01 EURUSD 1.27276 sl: 1.27349 tp: 1.27130] LK 0 23:18:30 Core 1 2010.08.26 09:08:00 CTrade::OrderSend: modify EURUSD (sl: 1.27349, tp: 1.27130) [done] NE 0 23:18:30 Core 1 2010.08.26 09:08:00 trans=symbol=EURUSD price=1.2727600 volume=0.01 sl=0.0000000 tp=0.0000000 order=6 deal=6 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 order-open=0.000000 order-current=0.000000 deal-price=0.000000 HM 0 23:18:30 Core 1 2010.08.26 09:08:40 stop loss triggered sell 0.01 EURUSD 1.27276 sl: 1.27349 tp: 1.27130 [#7 buy 0.01 EURUSD at 1.27349] 正如你在最后一行看到的,执行价格在日志中给出 -- [#7在1.27349买入0.01 EURUSD] 。但是没有结构、交易、交易或订单历史提供这个价格。这一行转储了与触发的止损有关的交易。NE 0 23:18:30 Core 1 2010.08.26 09:08:00 trans=symbol=EURUSD price=1.2727600 volume=0.01 sl=0.0000000 tp=0.0000000 order=6 deal=6 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 order-open=0.000000 order-current=0.000000 deal-price=0.000000这是转储功能的代码。string dump_MqlTradeTransaction(const MqlTradeTransaction& t) { //CDealInfo deal; //deal.Ticket(t.deal); if(t.deal > 0) HistoryDealSelect(t.deal); string msg=StringFormat("symbol=%s price=%.7f volume=%.2f sl=%.7f tp=%.7f order=%d deal=%d entry-type=%s trans-type=%s order_type=%s deal_type=%s type_time=%d expiration=%s price_trigger=%.7f profit=%.2f order-open=%.6f order-current=%.6f deal-price=%.6f" ,t.symbol ,t.price ,t.volume ,t.price_sl ,t.price_tp ,t.order ,t.deal ,tc_DEAL_ENTRY_to_string_short((ENUM_DEAL_ENTRY)HistoryDealGetInteger(t.deal,DEAL_ENTRY)) ,tc_ENUM_TRADE_TRANSACTION_TYPE_to_string_short((ENUM_TRADE_TRANSACTION_TYPE) t.type) ,tc_ORDER_TYPE_to_string(t.order_type) ,tc_DEAL_TYPE_to_string(t.deal_type) ,t.time_type ,TimeToString(t.time_expiration) ,t.price_trigger ,HistoryDealGetDouble(t.deal,DEAL_PROFIT) ,HistoryOrderGetDouble(t.order,ORDER_PRICE_OPEN) ,HistoryOrderGetDouble(t.order,ORDER_PRICE_CURRENT) ,HistoryDealGetDouble(t.deal,DEAL_PRICE) ); return msg; }所以我试图从订单和交易历史中获取执行价格:没有结果 Alain Verleyen 2013.05.14 21:38 #28 chinaski:你好,Angevoyageur。... 谢谢,我将尽快去研究。 chinaski 2013.05.14 22:23 #29 angevoyageur: 谢谢,我会尽快去研究。这真的很好。不要着急。我检查了每个交易、请求和传递给OnTradeTransaction的结果。回溯测试日志(由MetaTrader创建)中提到的被触发的止损价格除了作为sl价格外找不到,但作为价格或交易价格 或执行价格却找不到。 Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties www.mql5.com Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties - Documentation on MQL5 Alain Verleyen 2013.05.15 08:43 #30 chinaski:这真的很好。不要着急。我检查了每个交易、请求和传递给OnTradeTransaction的结果。在回测日志中提到的触发的止损价格(由MetaTrader创建)除了作为sl价格外,找不到作为价格或交易价格 或执行价格。因此,我们谈论的只是回测。我已经用我自己的代码进行了测试,我得到了3个交易,当一个停止被触发。 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) 通过DEAL_ADD我得到了交易的价格,所以在我的情况下是SL。对我来说,这一切都很正确。我建议你把你使用的代码、回测日志(作为一个文件)和策略测试器设置的截图发给我。然后我可以重现与你完全相同的测试,并分析其结果。如果你愿意,你可以给我发一个PM。 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我检查过了。当一个SL/TP被触发时,你有这些交易。
当做空时--从一个原始头寸开始,我得到3个交易。
A进入 )
一旦止损 被触发,我得到
B 退出 )
没有TRADE_TRANSACTION_POSITION。我认为你不能在这里使用它。
摘要。
一个空头被打开,第一个交易是
entry-type=IN trans-type=DEAL_ADD order_type=BUYsl=1.3119000 tp=1.3088000
关闭空头,按止损或目标,第一笔反映交易
entry-type=IN trans-type=DEAL_ADD order_type=BUY sl=0.0 tp=0.0
这很令人困惑。它应该是。
open short:
entry-type=IN trans-type=DEAL_ADD order_type=SELLsl=1.3119000 tp=1.3088000
关闭空头。
entry-type=OUT trans-type=DEAL_ADD order_type=BUY sl=0.0 tp=0.0
我检查过了。当一个SL/TP被触发时,你有这些交易:
当做空时--从一个原始头寸开始,我得到3个交易。
A进入 )
一旦止损 被触发,我得到
B 退出 )
没有TRADE_TRANSACTION_POSITION。我认为你不能在这里使用它。
...你错过了一些交易,不知道为什么。因为回溯测试?
小小的离题,代替了:
你可以用:
EnumToString(t.order_type)
小小的离题,代替了:
你可以使用:
谢谢你的EnumToString,使用起来更聪明了。
是的,我关心的是回测 中的交易。但为了使其尽可能的真实,交易应该与真实交易相同。
TRADE_TRANSACTION_POSITION与交易无关,你之前也提到过。我想它表示的是,例如,当你在你的账户上移动了一些资金。
...
这个问题似乎在回测时有一些交易不可用。是错误 还是回测的限制。当在正向测试中运行时,当SL/TP被触发时,我有一个TRADE_TRANSACTION_POSITION。
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
这个问题似乎在回测时有一些交易不可用。是错误 还是回测的限制。当在正向测试中运行时,当SL/TP被触发时,我有一个TRADE_TRANSACTION_POSITION。
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
你好,Angevoyageur。
在回溯测试 中,仍然有一个问题,就是如何获得止损点的执行价格。到目前为止,我还不知道它在实际情况下的表现。
这是回测日志中的内容。
正如你在最后一行看到的,执行价格在日志中给出 -- [#7在1.27349买入0.01 EURUSD] 。
但是没有结构、交易、交易或订单历史提供这个价格。
这一行转储了与触发的止损有关的交易。
这是转储功能的代码。
所以我试图从订单和交易历史中获取执行价格:没有结果
你好,Angevoyageur。
...谢谢,我会尽快去研究。
这真的很好。不要着急。
我检查了每个交易、请求和传递给OnTradeTransaction的结果。
回溯测试日志(由MetaTrader创建)中提到的被触发的止损价格除了作为sl价格外找不到,但作为价格或交易价格 或执行价格却找不到。
这真的很好。不要着急。
我检查了每个交易、请求和传递给OnTradeTransaction的结果。
在回测日志中提到的触发的止损价格(由MetaTrader创建)除了作为sl价格外,找不到作为价格或交易价格 或执行价格。
因此,我们谈论的只是回测。我已经用我自己的代码进行了测试,我得到了3个交易,当一个停止被触发。
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)