新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 872

 
Igor Makanu:

奇怪的行为,通常在调用设置框后执行OnIniT(),嗯,是的,所以


附上例子,解压后分散在文件夹中

谢谢。我知道,如果没有这个库,它就不能工作)

 
Lomonosov1991:

而它根本不起作用。

string LongShortToString2()
{
  string Str = "Long & Short";

  if (OrderSend(_Symbol, OP_BUY, 1, 0, 0, 0, 0) && (GetLastError() == ERR_LONGS_NOT_ALLOWED))
    Str = "Only Short";
  else if (OrderSend(_Symbol, OP_SELL, 1, 0, 0, 0, 0) && (GetLastError() == ERR_SHORTS_NOT_ALLOWED))
    Str = "Only Long";
    
  return(Str);
}


这并不总是有效,但大多数时候这就足够了。

 
fxsaber:

来自EA的虚假OrderSend并不总是允许确定其设置。

谢谢)我把代码放进了EA,并添加了库,我想如果没有库的话,它可能会工作)

 
fxsaber:


这并不总是奏效,但更多时候这就足够了。

如果没有额外的宏,这将无法正确工作

if (OrderSend(_Symbol, OP_BUY, 1, 0, 0, 0, 0) && (GetLastError() == ERR_LONGS_NOT_ALLOWED))

在四种情况下,OrderSend() 返回票号,或-1。而-1是真的

 
Artyom Trishkin:

如果没有额外的宏,它就不对了

在四,OrderSend()返回票号或-1。而-1是真的

这正是它能发挥作用的原因。

 
fxsaber:

这正是会起作用的东西。

多布罗,没有进入逻辑。

打开 -> 真 && 假 --> 结果 假 = 允许

未开仓 -> true && (true || false) --> 结果 true = 不允许多头,false = 允许

...

在什么情况下,它不起作用?

如果它打开了,为什么要用1.0手?

 
Artyom Trishkin:

在什么情况下,它不起作用?

例如,如果交易被禁止

如果它真的开了,为什么要用1.0手?

以零价格开盘应该是不行的,但我不确定。

 
fxsaber:

例如,如果交易被禁止

以零价格开盘应该不会,但我不确定。

是的,我没有注意到价格,我忏悔了 :)

但第一个错误代码 "重新报价 "或 "禁止做多交易 "会是什么?

 
Artyom Trishkin:

但第一个错误代码 "重新报价 "或 "禁止做多交易 "会是什么?

试试吧。

 
fxsaber:

试试吧。

现在不行。

除非有需要,否则不会。

有一种记忆 "需求 "的习惯,并在需要时考虑到这些需求。

原因: