gpt4 book ai didi

mql4 - OrderModify 错误 1

转载 作者:行者123 更新时间:2023-12-02 15:23:33 27 4
gpt4 key购买 nike

我正在尝试修改订单,但总是出现Error #1

根据我的研究,我发现错误 1 ​​意味着我以错误的方式输入了参数。如何修复我的 OrderModify() 函数?

    stoploss = NormalizeDouble(Ask - Point * TrailingStop,Digits);
int ticket;
takeprofit = NormalizeDouble(Ask + Point * TrailingStopTP,Digits);
double minstoplevel = MarketInfo( Symbol(), MODE_STOPLEVEL );
if(stoploss > NormalizeDouble(Ask - Point*minstoplevel,Digits)) {
stoploss = NormalizeDouble(Ask - Point*minstoplevel,Digits);
}
if(takeprofit < NormalizeDouble( Ask + Point*minstoplevel2, Digits )) {
takeprofit = NormalizeDouble( Ask + Point*minstoplevel2, Digits );
}
if(AccountFreeMarginCheck(Symbol(),OP_SELL,lotsize)>0) {
ticket=OrderSend(Symbol(),OP_BUY,lotsize,Ask, 0, 0.0, 0.0, "comment", MagicNumber, 0, Lime);
if(ticket<0) {
Print("Order send failed with error #",GetLastError());
} else {
Print("Order send sucesso!! Ticket#", ticket);
res=OrderModify(ticket,OrderOpenPrice(),stoploss,takeprofit,0,Blue);
if(res==false) {
Print("Error modifying order!, error#",GetLastError());
} else {
Print("Order modified successfully, res#", res);
}
}
} else {
Print("Sem dinheiro na conta D=");
}
}

最佳答案

不完全是“错误”,OrderModify() 合法设置 _LastError == 1

可能有点意外,但是 OrderModify() 有义务发出信号 _LastError == 1 以防万一,调用在句法和语义上都是正确的,但是,为修改提供的值实际上是完全相同的,因为识别的 ticket# 已经在数据库中。

这意味着,无需修改任何内容,因为所有属性都已经具有“”目标值。

可以预先检查所有字段的潜在身份,这可能允许我们的代码在这种情况下跳过 OrderModify() 调用 - { current |目标 } 值。

ERR_NO_RESULT == 1               // No error returned, but the result is unknown

GetLastError() - 返回最后生成的错误代码。通过名为 _LastError 的系统变量可以获得相同的值。它的值可以在关键事件之前通过调用 ResetLastError() 重置为零。

错误代码在 stderror.mqh 中定义。

要打印错误描述,您可以使用在 stdlib.mqh 中定义的 ErrorDescription() 函数文件

#include <stderror.mqh>
#include <stdlib.mqh>

关于mql4 - OrderModify 错误 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32947073/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com