我的EA出现错误4756
你能帮助我吗 谢谢
- www.mql5.com
CopyHigh(_Symbol,_Period,TimeCurrent(),5,hg);
Top = NormalizeDouble(rates[ArrayMaximum(hg,0,WHOLE_ARRAY)].high,_Digits);
- 被误解 的 设计。
在 最大双数 的值中选择 ,并 使用 该值 代替 整数 索引
我的EA出现错误4756
你能帮助我吗,谢谢
错误4756是 "交易请求发送失败"。如果你在发送订单时出现错误,请检查MqlTradeResult的返回代码。
//--- send order OrderSend(mrequest,mresult); // get the result code if(mresult.retcode==10009 || mresult.retcode==10008) //Request is completed or order placed { Alert("An order has been successfully placed with Ticket#:",mresult.order,"!!"); } else { Alert("The order request could not be completed -error:",GetLastError()," with trade return code ",mresult.retcode); ResetLastError(); return; }
根据上面 的Konstantin83,你有无效止损的错误,这意味着你必须在SymbolInfoIntegerSYMBOL_TRADE_STOPS_LEVEL和SYMBOL_TRADE_FREEZE_LEVEL 之外下挂单。
错误4756是 "交易请求发送失败"。如果你在发送订单时出现错误,检查MqlTradeResult的返回代码。
根据上面 的Konstantin83,你有无效止损的错误,这意味着你必须在SymbolInfoIntegerSYMBOL_TRADE_STOPS_LEVEL和SYMBOL_TRADE_FREEZE_LEVEL 之外下挂单。
对于ECN类型的经纪商,无效的止损也会被返回吗?
当然,你知道答案是否定的。但为什么这么问?
- www.mql5.com
真的吗? 这很有趣。我稍后要检查它;D.
If the Strategy Tester behaviour is similar to what would be returned by a Broker then it seems that SL & TP are ignored when sent for a Symbol whoseENUM_SYMBOL_TRADE_EXECUTION isExchange execution orMarket execution and no error is returned. So things are quite different compared to mql4.
我还发现了一些关于无效止损的问题。 我有一个简单的EA,它在进行交易时带有SL和TP,除非符号是交易所或市场执行,那么它在发送交易时没有设置SL和TP,然后向(TRADE_ACTION_SLTP)发送第二个请求以设置SL和TP。
它在策略测试器中工作正常,所以今天我在模拟账户上试了一下,我一直得到无效止损(错误10016)。 所以我检查了止损水平和冻结水平,它们都是0,我尝试了各种水平的SL和TP,没有任何效果。我可以为现有的头寸手动设置相同的SL和TP,没有任何问题 ... ...所以我添加了一个测试,只在可以选择头寸的情况下放置SL和TP ... ...不再有无效止损,也不再有TRADE_ACTION_SLTP交易请求 :-(
所以我在完成没有TP和SL的初始交易请求和随后发送TP和SL的交易请求之间添加了这段代码 ..
SelectRetryCount = 1; if(SetTPandSL) { while(!PositionSelect(_Symbol) && SelectRetryCount < 10) { Sleep(SelectRetryCount * 100); // sleep for SelectRetryCount * 100 mS SelectRetryCount++; } }
如果初始交易请求成功,SetTPandSL被设置为真,如果不成功,就没有必要尝试设置TP和SL。选择头寸,如果失败,会发生100毫秒的睡眠,然后重新选择,如果失败,会发生200毫秒的睡眠,等等,最多尝试9次(共4.5秒)。
我真的不知道我在用mql5做什么,我真的只是在尝试让一些东西工作,希望边做边学......我在这里发现的是正常行为吗?我认为一旦初始交易请求返回10009 - TRADE_RETCODE_DONE,我就可以发送请求来设置TP和SL,是不是这样?
我还发现了一些关于无效止损的问题。 我有一个简单的EA,它用SL和TP进行交易,除非符号是交易所或市场执行,然后它在没有设置SL和TP的情况下发送交易,然后向(TRADE_ACTION_SLTP)发送第二个请求以设置SL和TP。
它在策略测试器中工作正常,所以今天我在模拟账户上试了一下,我一直得到无效止损(错误10016)。 所以我检查了止损水平和冻结水平,它们都是0,我尝试了各种水平的SL和TP,没有任何效果。我可以为现有的头寸手动设置相同的SL和TP,没有任何问题 ... ...所以我添加了一个测试,只在可以选择头寸的情况下放置SL和TP ... ...不再有无效止损,也不再有TRADE_ACTION_SLTP交易请求 :-(
所以我在完成没有TP和SL的初始交易请求和随后发送TP和SL的交易请求之间添加了这段代码 ..
如果初始交易请求成功,SetTPandSL被设置为真,如果不成功,就没有必要尝试设置TP和SL。选择头寸,如果失败,会发生100毫秒的睡眠,然后重新选择,如果失败,会发生200毫秒的睡眠,等等,最多9次尝试(总共4.5秒)。
我真的不知道我在用mql5做什么,我真的只是在尝试让一些东西工作,希望边做边学......我在这里发现的是正常行为吗?我认为一旦最初的交易请求返回10009 - TRADE_RETCODE_DONE,我就可以发送请求来设置TP和SL,是不是这样?
我的 ea 出现错误 4756
你能帮我吗谢谢