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

 
Janis Ozols #:

还是有一些更简单的方法来获得这个值?

   zz=iCustom(NULL,0,"ZigZag",InpDepth,InpDeviation,InpBackstep,0,InpBackstep);
   if(zz!=EMPTY_VALUE)
     {prev_zz=curr_zz; curr_zz=zz;}
 
Janis Ozols #:

注意问题:循环查看指标缓冲区的值,从深层的零移开始,每次迭代都调用iCustom函数,直到得到的值与EMPTY_VALUE不同,这种方法是否有效?

Janis Ozols#:

或者是否有一些更简单的方法来获得这个值?

 

如何编写代码,使其能够执行以下内容。


如果没有未平仓的卖单,则检查在价格的+/-(向上/向下)范围内是否有未平仓的卖单

如果我不确定我有一个开放的卖出订单,那么我应该开一个卖出订单。该书与C++类似。

如果这些问题过于睿智,我很抱歉。


 
valentin104 #:

如何编写代码,使其能够执行以下内容。


如果没有未平仓的卖单,则检查在价格的+/-(向上/向下)范围内是否有未平仓的卖单

如果我不确定我有一个开放的卖出订单,那么我应该开一个卖出订单。该书与C++类似。

如果这些问题过于巧妙,我很抱歉。

翻阅已开立的交易,比较开盘价--是否在Ask+10到Ask-10的范围内,如果是,就意味着你有一笔未完成的交易。

"作为最后的手段,打开一个Codebase,看看怎么做)

 

valentin104 #:

Tick-检查在价格的+/-(向上/向下)10个点内是否有未平仓的卖单,如果没有,则开出卖单

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(FindOrders(OP_BUY)<1) покупаем;
   if(FindOrders(OP_SELL)<1) продаем;
  }
//+----------------------------------------------------------------------------+
int FindOrders(int ot=-1)
  {
   int order=0;
   for(int i = OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
         if(ot==OP_BUY&&OrderType()==ot)
           {
            if(OrderOpenPrice()>Bid-10*Point&&OrderOpenPrice()<Bid+10*Point)
            order=1;
           }
         if(ot==OP_SELL&&OrderType()==ot)
           {
            if(OrderOpenPrice()>Ask-10*Point&&OrderOpenPrice()<Ask+10*Point)
            order=1;
           }
        }
     }
   return(order);
  }
//+----------------------------------------------------------------------------+
 
MakarFX #:
谢谢你
 
valentin104 #:
谢谢你


 
MakarFX #:


我明白了。我只是一个害怕的白俄罗斯人。
 
valentin104 #:
我明白了。我只是一个胆小怕事的白俄罗斯人。
对不起,我没有想到)
 

Mihail Matkovskij #:

谢谢你,不知道为什么没有任何效果。

原因: