大家好! 求高手解答 以下提示是什么原因,造成的,已经开仓,但关闭手出现无效交易量提示 test on EURUSD,H1 (netting) strategy tester report 248 total trades test on XAUUSD,D1 (netting) 2020.02.03 17:02:39 failed instant sell 0.15 XAUUSD at 1572.22, close #6 buy 0.15 XAUUSD 1571.29 [Invalid volume]
mt5的开立账户模式分两种hedge和netting,,一般用的是hedge模式,估计应该是这个问题,建议您先更换hedge模式试一试
mt5的开立账户模式分两种hedge和netting,,一般用的是hedge模式,估计应该是这个问题,建议您先更换hedge模式试一试
高手:
但我这是MQL5自动测试EA给出的,我如何解决他,每次自动测试都出这个提示,之前是偶尔出,大多数是不出这个提示就测试通过了,但今天每次都出这个提示
高手:
但我这是MQL5自动测试EA给出的,我如何解决他,每次自动测试都出这个提示,之前是偶尔出,大多数是不出这个提示就测试通过了,但今天每次都出这个提示
原因很多,检查控制手数的代码,最好格式化一下,手数不正确也会报错的,仅供参考!
提示invalid volume,说明你的手数值有问题,平仓有传手数参数吗?
如果有的话,传参之前手数参数必须规范化,必须是手数步长即SYMBOL_VOLUME_STEP的整数倍。
提示invalid volume,说明你的手数值有问题,平仓有传手数参数吗?
如果有的话,传参之前手数参数必须规范化,必须是手数步长即SYMBOL_VOLUME_STEP的整数倍。
谢谢你高手!
但它是开仓交易量一直没出现问题,通过通过MQL5官方提供的示例函数CheckVolumeValue自动转换交易量开仓(包含
“传参之前手数参数必须规范化,必须是手数步长即SYMBOL_VOLUME_STEP的整数倍”)
平仓都是通过以下函数: 按道理应该关闭时的交易量是和开仓一样数值,这有点解释不通
void CloseAllPositions()
{
for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of current positions
if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
if(m_position.Magic()==InpMagic)
if(!m_trade.PositionClose(m_position.Ticket())) // close a position by the specified symbol
{
Print("#@3 Close all -> false. Result Retcode: ",m_trade.ResultRetcode(),
", description of result: ",m_trade.ResultRetcodeDescription());
PrintResult(m_trade,m_symbol);
}else
{
if(m_trade.ResultDeal()==0)
{
Print("#@1 close all -> false. Result Retcode: ",m_trade.ResultRetcode(),
", description of result: ",m_trade.ResultRetcodeDescription());
PrintResult(m_trade,m_symbol);
}
else
{
Print("#2 close all -> true. Result Retcode: ",m_trade.ResultRetcode(),
", description of result: ",m_trade.ResultRetcodeDescription());
PrintResult(m_trade,m_symbol);
}
PrintDebug("----------CLOSE ALL :"+" Ticket:"+m_position.Ticket());
}
}
原因很多,检查控制手数的代码,最好格式化一下,手数不正确也会报错的,仅供参考!
高手你好!
我看到以下提示错误里包含 (netting)
test on EURUSD,H1 (netting) strategy tester report 248 total trades test on XAUUSD,D1 (netting) 2020.02.03 17:02:39 failed instant sell 0.15 XAUUSD at 1572.22, close #6 buy 0.15 XAUUSD 1571.29 [Invalid volume]
这就是说MQL5自动检测EA时使用netting 模式了 ,这样我需要在代码了检测账户类型是Hedge还是模式netting,不过,EA测试时好像是开仓采用了Hedge,因为我知道错误提示的订单是
与之前的订单反方向开仓的,所以开仓时MQL5自动检测采用HEDGE模式,而关闭时又采用 netting. 好像是这样的过程,需要找到检测账户类型模式函数,来证明这些
類似的問題我也遇到了 在本地端做回測沒有問題 但是提交送審就會出現單量錯誤的問題
MT5後來加進了最小單量跟最大單量的限定 "似乎"就可以通過系統審核
MT4加進了單量限制 一樣出現錯誤單量的故障 到目前審核一樣不通過
令我搞不懂的是 回測跟實盤測試時 經過自定義函數計算出來的單量是正確的 也都能順利的交易
為何送系統審核就是會出現錯誤的單量
類似的問題我也遇到了 在本地端做回測沒有問題 但是提交送審就會出現單量錯誤的問題
MT5後來加進了最小單量跟最大單量的限定 "似乎"就可以通過系統審核
MT4加進了單量限制 一樣出現錯誤單量的故障 到目前審核一樣不通過
令我搞不懂的是 回測跟實盤測試時 經過自定義函數計算出來的單量是正確的 也都能順利的交易
為何送系統審核就是會出現錯誤的單量
高手你好!
我估计是在关闭时,找不到有此交易量0.15手的卖方,因为提示英文有未及时卖出的含义,所以估计要采用分批卖出方法,但总交易量必须凑齐0.15手
因以前也是相同代码,大多数能通过MQL5自动测试,但现在不能了。我想肯定不会是开仓之前检测交易量出错了
我估计要用到参数:
ORDER_FILLING_FOK | 执行政策意味着订单只可以在指定额度执行。如果当前市场不提供金融工具需要的额度,订单将无法执行。需要的交易量可以使用市场此刻几种可用的提供来执行。 |
ORDER_FILLING_IOC | 该模式意味着交易者同意在订单指定范围内,以市场可用的最大交易量执行交易。如果无法执行全部订单交易量,那么剩下的交易量将被取消。 |
ORDER_FILLING_RETURN | 该政策只用于市场订单 (ORDER_TYPE_BUY 和 ORDER_TYPE_SELL),限价和止损限价订单 (ORDER_TYPE_BUY_LIMIT,ORDER_TYPE_SELL_LIMIT,ORDER_TYPE_BUY_STOP_LIMIT 和 ORDER_TYPE_SELL_STOP_LIMIT ) 并且只用于市场或交易 执行的交易品种。如果部分执行市场或剩下交易量的限价订单没有取消,则是会进一步处理。 为了激活ORDER_TYPE_BUY_STOP_LIMIT 和 ORDER_TYPE_SELL_STOP_LIMIT 订单,将会创建ORDER_FILLING_RETURN执行类型相应的限价订单 ORDER_TYPE_BUY_LIMIT/ORDER_TYPE_SELL_LIMIT |
ORDER_FILLING_FOK参数比较符合我的意图。
不知道是否正确?
高手你好!
我估计是在关闭时,找不到有此交易量0.15手的卖方,因为提示英文有未及时卖出的含义,所以估计要采用分批卖出方法,但总交易量必须凑齐0.15手
因以前也是相同代码,大多数能通过MQL5自动测试,但现在不能了。我想肯定不会是开仓之前检测交易量出错了
我估计要用到参数:
ORDER_FILLING_FOK | 执行政策意味着订单只可以在指定额度执行。如果当前市场不提供金融工具需要的额度,订单将无法执行。需要的交易量可以使用市场此刻几种可用的提供来执行。 |
ORDER_FILLING_IOC | 该模式意味着交易者同意在订单指定范围内,以市场可用的最大交易量执行交易。如果无法执行全部订单交易量,那么剩下的交易量将被取消。 |
ORDER_FILLING_RETURN | 该政策只用于市场订单 (ORDER_TYPE_BUY 和 ORDER_TYPE_SELL),限价和止损限价订单 (ORDER_TYPE_BUY_LIMIT,ORDER_TYPE_SELL_LIMIT,ORDER_TYPE_BUY_STOP_LIMIT 和 ORDER_TYPE_SELL_STOP_LIMIT ) 并且只用于市场或交易 执行的交易品种。如果部分执行市场或剩下交易量的限价订单没有取消,则是会进一步处理。 为了激活ORDER_TYPE_BUY_STOP_LIMIT 和 ORDER_TYPE_SELL_STOP_LIMIT 订单,将会创建ORDER_FILLING_RETURN执行类型相应的限价订单 ORDER_TYPE_BUY_LIMIT/ORDER_TYPE_SELL_LIMIT |
ORDER_FILLING_FOK参数比较符合我的意图。
不知道是否正确?
真高手是上面的兩位 我充其量就是個愛好者
我在MT5裡面有加下面的代碼 可以根據審核不通過時調整用
MqlTradeRequest request={0}; MqlTradeResult result={0}; if(ErrorCheck==1)request.type_filling=ORDER_FILLING_FOK; if(ErrorCheck==2)request.type_filling=ORDER_FILLING_IOC; if(ErrorCheck==3)request.type_filling=ORDER_FILLING_RETURN; request.action=cmd; request.magic=magic; request.symbol=symbol; request.volume=inlots; request.price=orderprice; request.deviation=200; request.type=type; request.comment=comm;
可是 真正讓我通過審核的是因為我加進的最大最小單量限制後 審核才通過的
//========Lots Count========================================================= if(Position_Statistics("QTY",InSymbol,ORDER_TYPE_BUY,Magic,Comm)==0) { Buy_Lots=MathMax(SymbolInfoDouble(InSymbol,SYMBOL_VOLUME_MIN),BeginLots); } if(Position_Statistics("QTY",InSymbol,ORDER_TYPE_BUY,Magic,Comm)!=0) { if(Lotscounter==0) Buy_Lots=MathMin(SymbolInfoDouble(InSymbol,SYMBOL_VOLUME_MAX),LevelLotCounter(InSymbol,ORDER_TYPE_BUY,Magic,Comm)); if(Lotscounter==1) Buy_Lots=MathMin(SymbolInfoDouble(InSymbol,SYMBOL_VOLUME_MAX),ExLotCounter(InSymbol,ORDER_TYPE_BUY,Magic,Comm)); }
其實 我也是有很大的疑問
我MT4做過幾十個EA 都能在實盤上交易 也都沒發生問題
現在就是心血來潮提交了MQL做審核 結果竟然都不通過
我也從來沒發布過產品 就是現在也開始懷疑以前了解的邏輯是否有錯誤了
上面提供了我當時審核出現單量異常時 最後處理通過的方法 希望對你有幫助
大家好! 求高手解答 以下提示是什么原因,造成的,已经开仓,但关闭手出现无效交易量提示 test on EURUSD,H1 (netting) strategy tester report 248 total trades test on XAUUSD,D1 (netting) 2020.02.03 17:02:39 failed instant sell 0.15 XAUUSD at 1572.22, close #6 buy 0.15 XAUUSD 1571.29 [Invalid volume]