错误 4756 - 页 4 1234 新评论 Simon Gniadkowski 2013.03.12 18:42 #31 RaptorUK:我想,我将确认,我在策略测试器中也看到了同样的问题,不确定这到底是如何发生的,我将再试一次,增加一些错误报告以确保。好的,一个谜团解决了......我没有意识到策略测试器中 使用的点差是从历史数据中提取的,特别是M1数据。 我在策略测试器运行中出现无效止损的原因是点差大于我的SL。 我会为此添加一个测试。 dan5 2013.03.12 23:00 #32 Konstantin83: 2013.03.10 11:19:18 2012.01.04 15:00:00 failed buy stop 1.00 EURUSD at 1.30505 sl: 1.28375 tp: 1.30375 [Invalid stops]我不明白无效的止损。滑动点低于买入滑动点:1.28375 <1.30505 ? dan5 2013.03.12 23:10 #33 Konstantin83:CopyHigh(_Symbol,_Period,TimeCurrent(),5,hg);Top = NormalizeDouble(rates[ArrayMaximum(hg,0,WHOLE_ARRAY)].high,_Digits); -误解 了 设计。从最大的双倍 值中选择 ,并 使用 它 来代替 整数 指数。谢谢Konstantin83 。 但我不明白你说什么。top是过去5根蜡烛的最高值,top是双倍的,而不是整数指数。 顶部 Simon Gniadkowski 2013.03.12 23:16 #34 dan5:我不明白无效止损的意思,止损点低于买入点:1.28375 <1.30505 ?不要把 "无效止损 "看得太重,它不仅仅是指止损,它也可以是进场价格和/或止损点。 当你遇到错误时,请打印以下信息,它将帮助你找出出错的原因。交易类型,买入限价,买入,卖出,卖出止损,等等。卖出价买入价入场价格SL止损点冻结价止损价位错误号码(如果你真的想的话,还有错误描述)你还应该阅读这篇文章,它是为mql4写的,但我很确定它仍然适用于mql5:做交易的要求和限制 Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial book.mql4.com Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial Simon Gniadkowski 2013.03.12 23:24 #35 dan5:2013.03.10 11:19:18 2012.01.04 15:00:00 买入止损1.00 EURUSD at 1.30505 sl: 1.28375 tp: 1.30375 [无效的止损]我不明白无效止损。Sl低于买入 Sl:1.28375 <1.30505 ? 你是否注意到1.30505的进场价>TP 1.30375? dan5 2013.03.15 13:46 #36 RaptorUK: 你是否注意到1.30505的入市价>1.30375的TP?谢谢你的帮助,我修改了我的sl和tp,现在好了。mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Digits); // Stop Loss mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Digits); //Take Profit而不是mrequest.sl = NormalizeDouble( latest_price.bid + STP*_Point,_Digits); // Stop Loss mrequest.tp = NormalizeDouble( latest_price.bid - TKP*_Point,_Digits); // Take Profit. Simon Gniadkowski 2013.03.15 13:55 #37 dan5: 谢谢你的帮助,我修改了我的sl和tp,现在好了。mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Digits); // Stop Loss mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Digits); //Take Profit而不是mrequest.sl = NormalizeDouble( latest_price.bid + STP*_Point,_Digits); // 止损 mrequest.tp = NormalizeDouble( latest_price.bid - TKP*_Point,_Digits); // 获利。 这是个好消息,希望你不介意我颠覆你的主题,但我认为我们最后都得到了有用的东西 :-) Alain Verleyen 2013.03.15 14:25 #38 RaptorUK: 这是个好消息,希望你不介意我颠覆你的话题,但我认为我们最后都得到了一些有用的东西 :-) 你是否找到了其他的解决方案,我建议用OnTradeTransaction 在市场执行(ECN经纪人)的情况下进行sl & tp? Simon Gniadkowski 2013.03.15 14:56 #39 angevoyageur: 你是否找到了其他的解决方案,我建议用OnTradeTransaction 在市场执行(ECN经纪商)的情况下进行sl & tp? 我在这个帖子中建议的代码https://www.mql5.com/en/forum/11051#comment_446272,据我所知,它可以正常工作,我认为它在策略测试器中不工作,因为我关于点差固定(如MT4)的假设是错误的。我的代码现在可以在策略测试器中工作,在Demo中,对于执行类型为即时或交易所执行的符号,我的代码会确定其类型并发送适当的请求。 理想情况下,我希望我的代码能自动处理任何执行类型。 Alain Verleyen 2013.03.15 15:02 #40 RaptorUK: 我在这个帖子中建议的代码https://www.mql5.com/en/forum/11051#comment_446272,据我所知,它可以正常工作,我认为它在策略测试器中不工作,因为我关于点差是固定的(如在MT4中)的假设是错误的。我的代码现在可以在策略测试器中工作,在Demo中,对于执行类型为即时或交易所执行的符号,我的代码会确定其类型并发送适当的请求。 理想情况下,我希望我的代码能自动处理任何执行类型。 啊,好的,我错过了。 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我想,我将确认,我在策略测试器中也看到了同样的问题,不确定这到底是如何发生的,我将再试一次,增加一些错误报告以确保。
好的,一个谜团解决了......我没有意识到策略测试器中 使用的点差是从历史数据中提取的,特别是M1数据。 我在策略测试器运行中出现无效止损的原因是点差大于我的SL。 我会为此添加一个测试。
Konstantin83:
2013.03.10 11:19:18 2012.01.04 15:00:00 failed buy stop 1.00 EURUSD at 1.30505 sl: 1.28375 tp: 1.30375 [Invalid stops]
我不明白无效的止损。滑动点低于买入滑动点:1.28375 <1.30505 ?
CopyHigh(_Symbol,_Period,TimeCurrent(),5,hg);
Top = NormalizeDouble(rates[ArrayMaximum(hg,0,WHOLE_ARRAY)].high,_Digits);
-误解 了 设计。
从最大的双倍 值中选择 ,并 使用 它 来代替 整数 指数。
谢谢Konstantin83 。
但我不明白你说什么。
top是过去5根蜡烛的最高值,top是双倍的,而不是整数指数。
dan5:
我不明白无效止损的意思,止损点低于买入点:1.28375 <1.30505 ?
不要把 "无效止损 "看得太重,它不仅仅是指止损,它也可以是进场价格和/或止损点。 当你遇到错误时,请打印以下信息,它将帮助你找出出错的原因。
dan5:
2013.03.10 11:19:18 2012.01.04 15:00:00 买入止损1.00 EURUSD at 1.30505 sl: 1.28375 tp: 1.30375 [无效的止损]
我不明白无效止损。Sl低于买入 Sl:1.28375 <1.30505 ?
你是否注意到1.30505的入市价>1.30375的TP?
谢谢你的帮助,我修改了我的sl和tp,现在好了。
mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Digits); //Take Profit
而不是
mrequest.sl = NormalizeDouble( latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble( latest_price.bid - TKP*_Point,_Digits); // Take Profit.
谢谢你的帮助,我修改了我的sl和tp,现在好了。
mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Digits); //Take Profit
而不是
mrequest.sl = NormalizeDouble( latest_price.bid + STP*_Point,_Digits); // 止损
mrequest.tp = NormalizeDouble( latest_price.bid - TKP*_Point,_Digits); // 获利。
这是个好消息,希望你不介意我颠覆你的话题,但我认为我们最后都得到了一些有用的东西 :-)
你是否找到了其他的解决方案,我建议用OnTradeTransaction 在市场执行(ECN经纪商)的情况下进行sl & tp?
我在这个帖子中建议的代码https://www.mql5.com/en/forum/11051#comment_446272,据我所知,它可以正常工作,我认为它在策略测试器中不工作,因为我关于点差是固定的(如在MT4中)的假设是错误的。我的代码现在可以在策略测试器中工作,在Demo中,对于执行类型为即时或交易所执行的符号,我的代码会确定其类型并发送适当的请求。 理想情况下,我希望我的代码能自动处理任何执行类型。