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

 
Vitaly Muzichenko:

它的效果非常好!

从两个位置中选择了最后一个,即在第11条,你可以在截图中看到。


验证码

我决定改变条件进入位置,只是将Limit设置为Low[2]起了作用,但是当条件像我今天第一次调用时,它就不起作用了,所以它在条件本身的函数被调用 之前

 
Вадим Мотеюнас:

我决定改变入仓的条件,只是将极限值设置 为Low[2],它起作用了,但当我今天第一次调用条件时,它不起作用了,所以问题出在调用函数 前的条件本身。

是你设置了一个订单,而不是一个仓位入口(买入,卖出)。

好的,所以这是件好事。

 
Vitaly Muzichenko:

是你设置了订单,而不是入仓(买入、卖出)。

好吧,我们已经搞清楚了--所以这很好。

我的意思是,首先有一个进入条件,如果(Open[2]>Close[2] && Open[1]>Close[1] && Close[1]<Low[2])

然后我调用这个函数来返回条形索引,但现在我只是删除了它,并将Low[2]放在OrderSend 中,它就能工作了。

毕竟我没有在上面浪费一天的时间,从死穴上看是有点转变的。

 
我已经克服了这个问题,感谢大家的反馈。
 
if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(takelimit,GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

也许1和1?/即真和错误代码 1

拒绝接受1没有错误,但结果不明
bool takelimit;

if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

你的整个代码是错误的。

bool takelimit;

if(takelimit?=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1) // <<< что это, почему сравнивать с единицей? OrderOpenTime() может вернуть "1"???
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Com
 
Vitaly Muzichenko:

你的整个代码是错误的。

它检查酒吧的号码和 那里的时间...

int ticket;

void Fn()
  {
   ResetLastError();
   if(!OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)){Print(GetLastError());}
   else
     {
      if(iBarShift(Symbol(),0,OrderOpenTime())==1 && !OrderDelete(ticket)){Comment(GetLastError());}
     }
  }
 
Nikolay Gaylis:

他对照时间检查酒吧的号码...

是的,没有注意到这个支架。

 
Nikolay Gaylis:

它按时间检查酒吧的数量...

尼古拉-盖里斯

也许1和1?/即真和错误代码 1

拒绝接受1没有错误,但结果是未知的

Print(takelimit,GetLastError())返回两个值,因为第1个变量是bool类型,它不需要GetLastError,而且因为它有一个逗号,GetLastError返回调用GetLastError时代码中最后一个错误?

原因: