程序库: MT4Orders - 页 10 1...34567891011121314151617...95 新评论 fxsaber 2017.02.05 16:15 #91 Aliaksandr Kryvanos:按符号和 majic 选择不起作用if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){}OrderSelect 不起作用,它不能选择订单(按指数选择票据)来使用它,附件中有一个 简单的示例,由于某些原因,它在 MT5 上不起作用。 您的代码无法如我们所愿在 MT4 上运行。因为其中有一个错误--您将仓位设置为零,但却与另一个值进行比较。OrderSend(Symbol(),OP_BUY, 0.01,Ask, 0, 0,0,"",0,0,clrNONE); 将代码更正为OrderSend(Symbol(),OP_BUY, 0.01,Ask, 0, 0,0,"",MagicNumber,0,clrNONE); 警报是错误的。 [删除] 2017.02.06 10:27 #92 谢谢你,我向你道歉,我只是碰巧想把一个 EA 翻译成 mt5 版本,这花了我很长时间,而且交易逻辑不匹配,我检查了 Magic 和所有可能影响它的东西,所以我写了一个简单的例子,但没有成功。但后来我发现了我的错误,上面这个例子与它无关。我想删除我的帖子,但我没有时间。 Alexey Volchanskiy 2017.02.06 18:29 #93 Aliaksandr Kryvanos:按符号和 majic 选择不起作用if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){}OrderSelect 不起作用,无法选择订单(按指数选择票据)来使用它,附件中的简单示例,由于某些原因,它在 mt5 上不起作用。 您没有在 OrderSend 中设置魔力 [删除] 2017.02.08 07:18 #94 您好,我有一个问题,如何获取 MT5 发送订单时的错误数据,在 MT4 版本中是这样的bool CloseError = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100);if (CloseError == false){ ResetLastError(); error = GetLastError(); Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());}错误代码包含在MqlTradeResult 结构中,如果无法访问结果,我将无法在 MT5 中使用上述代码,我该如何修改 mt4orders.mqh 以返回交易服务器错误信息? 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 编码帮助 EA: 抛硬币 fxsaber 2017.02.08 07:31 #95 Aliaksandr Kryvanos:您好,我有一个问题,如何获取 MT5 发送订单时的错误数据,在 MT4 版本中是这样的bool CloseError = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100);if (CloseError == false){ ResetLastError(); error = GetLastError(); Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());}错误代码包含在MqlTradeResult 结构中,如果无法访问结果,我将无法在 MT5 中使用上述代码,我该如何修改 mt4orders.mqh 以返回交易服务器错误? 您可以让 GetLastError 返回更多的值 - 用 MqlTradeResult 中的代码对其进行补充。 [删除] 2017.02.08 08:43 #96 例如,如果在关闭订单时出现错误,GetLastError() 将返回(交易服务器的)错误代码,即使我们不检查MqlTradeResult Result; Result.retcode in OrderSend(Request, Result)? fxsaber 2017.02.08 09:39 #97 Aliaksandr Kryvanos: 例如,如果在关闭订单时出现错误,即使我们不检查MqlTradeResult Result; Result.retcode in OrderSend(Request, Result),GetLastError() 是否也会返回(交易服务器的)错误代码?是的,这并不难实现。Aliaksandr Kryvanos: bool CloseError = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100);if (CloseError == false){ ResetLastError(); error = GetLastError(); Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());}我不明白突出显示的意思。 [删除] 2017.02.08 10:03 #98 fxsaber:是的,这并不难实现。我不明白突出显示部分的意思。是在 mt4 的 EA 中您说这不难实现,但事实上,如果订单未发送,GetLastError() 会返回交易服务器错误,而无需分析MqlTradeResult 结构。您只需在static bool NewOrderSend( const MqlTradeRequest &Request ) { MqlTradeResult Result; if (::OrderSend(Request, Result) || Result.retcode != TRADE_RETCODE_DONE) { Print("OrderSend() error: ", ResultRetcodeDescription(Result.retcode)); return(false); } else { return(true); } //return(MT4ORDERS::OrderSend(Request, Result) ?Result.retcode < TRADE_RETCODE_ERROR : false); }但如果 GetLastError() 可以正常工作,有必要这样做吗? 我如何正确地开立市场订单? Questions from Beginners MQL5 请教,mql5,删除最后一个挂单,代码怎么写,谢谢 fxsaber 2017.02.08 10:17 #99 Aliaksandr Kryvanos:mt4 顾问就是这种情况那么就是逻辑错误。您说这并不难实现,但事实上,如果未发送订单,GetLastError() 可能会返回交易服务器错误,而无需分析MqlTradeResult 结构。您只需在static bool NewOrderSend( const MqlTradeRequest &Request ) { MqlTradeResult Result; if (::OrderSend(Request, Result) || Result.retcode != TRADE_RETCODE_DONE) { Print("OrderSend() error: ", ResultRetcodeDescription(Result.retcode)); return(false); } else { return(true); } //return(MT4ORDERS::OrderSend(Request, Result) ?Result.retcode < TRADE_RETCODE_ERROR : false); }但如果 GetLastError() 可以正常工作,有必要这样做吗?我不明白您的意思。你在 if 中的实现包含一个错误。此外,TRADE_RETCODE_DONE_PARTIAL(交易完成)是成功执行 OrderSend 的 结果。即使您修改了代码,也只会记录一条错误信息(其他人可能不想每次都看到)。但它在 MQL 中是不可用的。因此,GetLastError 同时返回标准运行时错误 和额外的交易服务器返回代码 的变体似乎是最佳选择。 [删除] 2017.02.08 10:33 #100 我明白了,你能否告诉我如何让 GetLastError() 也输出交易服务器错误,如果你还没有时间,我可以自己写。谢谢 1...34567891011121314151617...95 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
按符号和 majic 选择不起作用
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
}
OrderSelect 不起作用,它不能选择订单(按指数选择票据)来使用它,附件中有一个 简单的示例,由于某些原因,它在 MT5 上不起作用。
按符号和 majic 选择不起作用
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
}
OrderSelect 不起作用,无法选择订单(按指数选择票据)来使用它,附件中的简单示例,由于某些原因,它在 mt5 上不起作用。
您好,我有一个问题,如何获取 MT5 发送订单时的错误数据,在 MT4 版本中是这样的
if (CloseError == false)
{
ResetLastError();
error = GetLastError();
Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());
}
错误代码包含在MqlTradeResult 结构中,如果无法访问结果,我将无法在 MT5 中使用上述代码,我该如何修改 mt4orders.mqh 以返回交易服务器错误信息?
您好,我有一个问题,如何获取 MT5 发送订单时的错误数据,在 MT4 版本中是这样的
if (CloseError == false)
{
ResetLastError();
error = GetLastError();
Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());
}
错误代码包含在MqlTradeResult 结构中,如果无法访问结果,我将无法在 MT5 中使用上述代码,我该如何修改 mt4orders.mqh 以返回交易服务器错误?
例如,如果在关闭订单时出现错误,即使我们不检查MqlTradeResult Result; Result.retcode in OrderSend(Request, Result),GetLastError() 是否也会返回(交易服务器的)错误代码?
是的,这并不难实现。
if (CloseError == false)
{
ResetLastError();
error = GetLastError();
Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());
}
我不明白突出显示的意思。
是的,这并不难实现。
我不明白突出显示部分的意思。
是在 mt4 的 EA 中
您说这不难实现,但事实上,如果订单未发送,GetLastError() 会返回交易服务器错误,而无需分析MqlTradeResult 结构。
您只需在
{
MqlTradeResult Result;
if (::OrderSend(Request, Result) || Result.retcode != TRADE_RETCODE_DONE)
{
Print("OrderSend() error: ", ResultRetcodeDescription(Result.retcode));
return(false);
}
else
{
return(true);
}
//return(MT4ORDERS::OrderSend(Request, Result) ?Result.retcode < TRADE_RETCODE_ERROR : false);
}
但如果 GetLastError() 可以正常工作,有必要这样做吗?
mt4 顾问就是这种情况
那么就是逻辑错误。
您说这并不难实现,但事实上,如果未发送订单,GetLastError() 可能会返回交易服务器错误,而无需分析MqlTradeResult 结构。
您只需在
{
MqlTradeResult Result;
if (::OrderSend(Request, Result) || Result.retcode != TRADE_RETCODE_DONE)
{
Print("OrderSend() error: ", ResultRetcodeDescription(Result.retcode));
return(false);
}
else
{
return(true);
}
//return(MT4ORDERS::OrderSend(Request, Result) ?Result.retcode < TRADE_RETCODE_ERROR : false);
}
但如果 GetLastError() 可以正常工作,有必要这样做吗?
我不明白您的意思。你在 if 中的实现包含一个错误。此外,TRADE_RETCODE_DONE_PARTIAL(交易完成)是成功执行 OrderSend 的 结果。
即使您修改了代码,也只会记录一条错误信息(其他人可能不想每次都看到)。但它在 MQL 中是不可用的。
因此,GetLastError 同时返回标准运行时错误 和额外的交易服务器返回代码 的变体似乎是最佳选择。