各位大佬,我用icustom调用了本地的指标用来开单,如何调整使出现信号后,在当前这跟k线的low值下单?

 

目前只要出现了信号就会立即下单,我不知道应该怎么改?

下面是下单时的代码:

double up=iCustom(Symbol(),0,"Circle Rising Point 3.0",0,0);
     double down=iCustom(Symbol(),0,"Circle Rising Point 3.0",1,0);
     double buyop,buylots;
     int buydanshu=buydanshu(buyop,buylots);
     if(buydanshu==0)
      {
        if(up>0)
          {
          Print("up"+DoubleToStr(up,3));
           if(buytime!=Time[0])
            {
              if(buy(初始下单量,0,初始单止盈点数,Symbol()+"buy",magic)>0)
               {
                 buytime=Time[0];
               }
            }
          }
      }
 

有信號就會開單 這要求應該沒問題

不知你的問題是不是有持倉結果還是會重複開單 如果是這樣打印檢查一下buydanshu的數據看看對不對

Time[0]建議換成TimeCurrent()兩個的結果不一樣 可以打印出來觀察一下 

 

这里是指标多单买点的信号:

if(.....条件)
        {
         entrypointBuffer[i]=low[i];
        }

图表上出现的信号是正常的,但是买点却没在信号上


 
Hung Wen Lin #:

有信號就會開單 這要求應該沒問題

不知你的問題是不是有持倉結果還是會重複開單 如果是這樣打印檢查一下buydanshu的數據看看對不對

Time[0]建議換成TimeCurrent()兩個的結果不一樣 可以打印出來觀察一下 

老师,我描述有点问题,应该是当信号出现时,如果这跟k线的收盘价小于开盘价,则在下一根K线开盘时就下单

 
Hung Wen Lin #:

有信號就會開單 這要求應該沒問題

不知你的問題是不是有持倉結果還是會重複開單 如果是這樣打印檢查一下buydanshu的數據看看對不對

Time[0]建議換成TimeCurrent()兩個的結果不一樣 可以打印出來觀察一下 

好吧,老师,我自己搞定了

double up=iCustom(Symbol(),0,"Circle Rising Point 3.0",0,0);
     double down=iCustom(Symbol(),0,"Circle Rising Point 3.0",1,0);
     double buyop,buylots;
     int buydanshu=buydanshu(buyop,buylots);
     if(buydanshu==0)
      {
        if(up>0 && iClose(NULL,0,1)<iOpen(NULL,0,1))
          {
          Print("up"+DoubleToStr(up,3));
           if(buytime!=TimeCurrent())
            {
              if(buy(初始下单量,0,初始单止盈点数,Symbol()+"buy",magic)>0)
               {
                 buytime=TimeCurrent();
               }
            }
          }
      }
原因: