检测OnTradeTransaction回测中的止损触发器 - 页 4 12345 新评论 chinaski 2013.05.15 14:00 #31 angevoyageur:所以,我们只是在谈论回溯测试。我已经用我自己的代码进行了测试,我得到了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。你好。你能告诉我已执行的止损或目标价格究竟存储在哪里吗?a) MqlTradeTransactionb)MqlTradeRequestc) MqlTradeResult和会员一起。什么MetaTrader服务器?谢谢你 Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure www.mql5.com Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure - Documentation on MQL5 chinaski 2013.05.15 14:59 #32 angevoyageur:所以,我们只是在谈论回溯测试。我已经用我自己的代码进行了测试,当一个停止被触发时,我获得了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。如果你是指TRADE_TRANSACTION_DEAL_AD和MqlTradeTransaction.price,这个价格总是0。即使我不对TRADE_TRANSACTION_DEAL_ADD 进行过滤,价格也总是0,在进场订单发出后。我使用 CTrade.Buy(...) // place entry和 CTrade.PositionModify // to attach stop and target和void OnTradeTransaction(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result) { ... }来捕捉交易。 Alain Verleyen 2013.05.15 16:24 #33 chinaski:如果你是指TRADE_TRANSACTION_DEAL_AD和MqlTradeTransaction.price,这个价格始终是0。即使我不对TRADE_TRANSACTION_DEAL_ADD 进行过滤,在进场订单发出后,价格始终是0。我使用 和 和来捕捉交易。这与MqlTradeTransaction.price有关,它不总是0。2013.05.15 10:22:27 Core 1 2013.05.10 16:20:37 stop loss triggered buy 0.10 EURUSD 1.30163 sl: 1.29663 tp: 1.30663 [#47 sell 0.10 EURUSD at 1.29663] 2013.05.15 10:22:27 Core 1 2013.05.10 16:20:37 deal #47 sell 0.10 EURUSD at 1.29663 done (based on order #47) 2013.05.15 10:22:27 Core 1 2013.05.10 16:20:37 deal performed [#47 sell 0.10 EURUSD at 1.29663] 2013.05.15 10:22:27 Core 1 2013.05.10 16:20:37 order performed sell 0.10 at 1.29663 [#47 sell 0.10 EURUSD at 1.29663] 2013.05.15 10:22:27 Core 1 2013.05.10 16:20:37 ----------------TRANSACTION START--------------------------- 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 Order #47 type : ORDER_TYPE_BUY(0) state : ORDER_STATE_STARTED(0) 2013.05.15 10:22:27 Core 1 2013.05.10 16:20:37 Deal #47 type : DEAL_TYPE_SELL(1) 2013.05.15 10:22:27 Core 1 2013.05.10 16:20:37 Price = 1.29663 Volume = 0.1 SL = 0.0 TP = 0.0 Activation price = 0.0 你的结果有些奇怪,但从你提供的代码中我看不出什么。 Alain Verleyen 2013.05.15 16:50 #34 这里有你的EA tc_ea_trans的日志。2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 take profit triggered buy 0.01 EURUSD 1.31553 sl: 1.31503 tp: 1.31603 [#331 sell 0.01 EURUSD at 1.31603] 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 deal #331 sell 0.01 EURUSD at 1.31603 done (based on order #331) 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 deal performed [#331 sell 0.01 EURUSD at 1.31603] 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 order performed sell 0.01 at 1.31603 [#331 sell 0.01 EURUSD at 1.31603] 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 price corrected from 1.31609 to 1.31604, deviation: 10 (instant sell 0.01 EURUSD at 1.31609 sl: 1.31659 tp: 1.31559)(1.31604 / 1.31609 / 1.31604) 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 instant sell 0.01 EURUSD at 1.31604 sl: 1.31659 tp: 1.31559 (1.31604 / 1.31609 / 1.31604) 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 deal #332 sell 0.01 EURUSD at 1.31604 done (based on order #332) 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 deal performed [#332 sell 0.01 EURUSD at 1.31604] 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 order performed sell 0.01 at 1.31604 [#332 sell 0.01 EURUSD at 1.31604] 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 CTrade::OrderSend: instant sell 0.01 EURUSD at 1.31609 sl: 1.31659 tp: 1.31559 [done at 1.31604] 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 TRADE_TRANSACTION_DEAL_ADD 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 trans=symbol=EURUSD price=1.31603 00 volume=0.01 sl=0.0000000 tp=0.0000000 order=331 deal=331 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 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 TRADE_TRANSACTION_ORDER_DELETE 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 trans=symbol=EURUSD price=1.3160300 volume=0.01 sl=0.0000000 tp=0.0000000 order=331 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 prof 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 TRADE_TRANSACTION_HISTORY_ADD 2013.05.15 18:43:48 Core 1 2013.05.02 08:39:15 trans=symbol=EURUSD price=1.3160300 volume=0.00 sl=0.0000000 tp=0.0000000 order=331 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 profi chinaski 2013.05.15 19:44 #35 你好,Angevoyageur。请再看看所附的简单EA。这应该是一个示范。它只是放置了一个带有严格的止损和目标(输入参数)的订单,并记录了每笔交易。我真的很感谢你的帮助。(也许你也可以展示你的进场交易)。你能不能把MT服务器的IP地址给我? 附加的文件: tc_ea_trans.mq5 11 kb Alain Verleyen 2013.05.15 20:06 #36 chinaski:你好,Angevoyageur。请再看看所附的简单EA。这应该是一个示范。它只是放置一个带有严格的止损和目标(输入参数)的订单,并记录每笔交易。我真的很感谢你的帮助。(也许你也可以展示你的进场交易)。你能告诉我MT服务器的IP地址吗?我使用你刚刚发布的EA。MQ演示,接入点为欧洲。用.NET进行回测。我从日志中随机摘录了一段话。2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 take profit triggered buy 0.01 EURUSD 1.31751 sl: 1.31681 tp: 1.31821 [#107 sell 0.01 EURUSD at 1.31821] 2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 deal #107 sell 0.01 EURUSD at 1.31821 done (based on order #107) 2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 deal performed [#107 sell 0.01 EURUSD at 1.31821] 2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 order performed sell 0.01 at 1.31821 [#107 sell 0.01 EURUSD at 1.31821] 2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 requote 1.31823 / 1.31836 / 1.31823 (instant sell 0.01 EURUSD at 1.31836 sl: 1.31906 tp: 1.31766) 2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 CTrade::OrderSend: instant sell 0.01 EURUSD at 1.31836 sl: 1.31906 tp: 1.31766 [requote (1.31823/1.31836)] 2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 instant buy 0.01 EURUSD at 1.31840 sl: 1.31770 tp: 1.31910 (1.31827 / 1.31840 / 1.31827) 2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 deal #108 buy 0.01 EURUSD at 1.31840 done (based on order #108) 2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 deal performed [#108 buy 0.01 EURUSD at 1.31840] 2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 order performed buy 0.01 at 1.31840 [#108 buy 0.01 EURUSD at 1.31840] 2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 CTrade::OrderSend: instant buy 0.01 EURUSD at 1.31840 sl: 1.31770 tp: 1.31910 [done at 1.31840] 2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 trans=symbol=EURUSD price=1.31821 00 volume=0.01 sl=0.0000000 tp=0.0000000 order=107 deal=107 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 2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 trans=symbol=EURUSD price=1.3182100 volume=0.01 sl=0.0000000 tp=0.0000000 order=107 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 prof 2013.05.15 21:54:11 Core 1 2013.05.01 20:02:15 trans=symbol=EURUSD price=1.3182100 volume=0.00 sl=0.0000000 tp=0.0000000 order=107 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 profi 所以,你仍然有一个检测SL/TP触发的问题? 附加的文件: backtest_tc_ea_trans.log 1827 kb chinaski 2013.05.15 20:38 #37 angevoyageur:我使用你刚才发布的EA。MQ演示,接入点为欧洲。回溯测试用的是:我随机摘录了日志中的内容。那么,你仍然有一个检测SL/TP触发的问题? 哦,我明白了。我可以发誓,在我昨天的运行中,没有给出这样的价格。我在回测日志中对这个价格进行了文本搜索。但现在,我可以看到日志输入后的这笔交易"获利触发"在我最近的运行中也可以看到这个交易--连同执行价格。我很抱歉花了这么多时间。 Alain Verleyen 2013.05.15 20:55 #38 chinaski:哦,我明白了。我可以发誓,在我昨天的运行中,没有给出这样的价格。我在回测日志中对这个价格进行了文字搜索。但现在,我可以看到这个交易是在记录之后进行的... 我提供给你的日志是来自查看器,当你直接从策略测试器 日志选项卡中阅读日志时,它是以 相反的顺序显示 的 。 chinaski 2013.05.15 21:41 #39 angevoyageur: 我提供给你的日志是来自查看器,当你直接从策略测试器日志标签阅读日志时,它是以 相反的顺序显示 。 我通常从回测 日志标签打开日志文件,其中的顺序是从上到下。所以事实上,表明价格的日志是在交易发生之前写的。 chinaski 2013.05.15 21:42 #40 你好,Angevoyageur。"欧洲的接入点。回溯测试:"你能给我这个服务器的完整IP吗? 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
所以,我们只是在谈论回溯测试。我已经用我自己的代码进行了测试,我得到了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)
你好。
你能告诉我已执行的止损或目标价格究竟存储在哪里吗?
a) MqlTradeTransaction
b)MqlTradeRequest
c) MqlTradeResult
和会员一起。什么MetaTrader服务器?
谢谢你
所以,我们只是在谈论回溯测试。我已经用我自己的代码进行了测试,当一个停止被触发时,我获得了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)
如果你是指TRADE_TRANSACTION_DEAL_AD和MqlTradeTransaction.price,这个价格总是0。
即使我不对TRADE_TRANSACTION_DEAL_ADD 进行过滤,价格也总是0,在进场订单发出后。
我使用
CTrade.Buy(...) // place entry
和
CTrade.PositionModify // to attach stop and target
和
来捕捉交易。
如果你是指TRADE_TRANSACTION_DEAL_AD和MqlTradeTransaction.price,这个价格始终是0。
即使我不对TRADE_TRANSACTION_DEAL_ADD 进行过滤,在进场订单发出后,价格始终是0。
我使用
和
和
来捕捉交易。
这与MqlTradeTransaction.price有关,它不总是0。
你的结果有些奇怪,但从你提供的代码中我看不出什么。
这里有你的EA tc_ea_trans的日志。
你好,Angevoyageur。
请再看看所附的简单EA。这应该是一个示范。它只是放置了一个带有严格的止损和目标(输入参数)的订单,并记录了每笔交易。
我真的很感谢你的帮助。
(也许你也可以展示你的进场交易)。
你能不能把MT服务器的IP地址给我?
你好,Angevoyageur。
请再看看所附的简单EA。这应该是一个示范。它只是放置一个带有严格的止损和目标(输入参数)的订单,并记录每笔交易。
我真的很感谢你的帮助。
(也许你也可以展示你的进场交易)。
你能告诉我MT服务器的IP地址吗?
我使用你刚刚发布的EA。MQ演示,接入点为欧洲。用.NET进行回测。
我从日志中随机摘录了一段话。
所以,你仍然有一个检测SL/TP触发的问题?
我使用你刚才发布的EA。MQ演示,接入点为欧洲。回溯测试用的是:
我随机摘录了日志中的内容。
那么,你仍然有一个检测SL/TP触发的问题?
哦,我明白了。我可以发誓,在我昨天的运行中,没有给出这样的价格。我在回测日志中对这个价格进行了文本搜索。
但现在,我可以看到日志输入后的这笔交易
"获利触发"
在我最近的运行中也可以看到这个交易--连同执行价格。
我很抱歉花了这么多时间。
哦,我明白了。我可以发誓,在我昨天的运行中,没有给出这样的价格。我在回测日志中对这个价格进行了文字搜索。
但现在,我可以看到这个交易是在记录之后进行的
...我提供给你的日志是来自查看器,当你直接从策略测试器日志标签阅读日志时,它是以 相反的顺序显示 。
你好,Angevoyageur。
"欧洲的接入点。回溯测试:"
你能给我这个服务器的完整IP吗?