Bull老大请再进来一下,多谢!(已解决)

楼主  收藏   举报   帖子创建时间:  2019-05-05 05:47 回复:0 关注量:718
要编的指标是一根类似多空转换线的线。编程语句翻译如下:
  给A1赋值:如果现在的最高价大于等于前面第一根K线的最高价,且大于等于前面第二根K线的最高价,且大于等于前面第三根K线的最高价,且大于等于前面第四根K线的最高价,且大于等于前面第五根K线的最高价,则返回值为当前最低价,否则返回值0.
  给B赋值:如果最低价小于等于前面第一根K线最低价,且小于等于前面第二根K线最低价,且小于等于前面第三根K线最低价,且小于等于前面第四根K线最低价,且小于等于前面第五根K线最低价,则返回值为当前最高价,否则返回值0.
  赋值A=A1
  给P1赋值:如果A大于前面第一根K线最低值,则返回值为上根K线最低值,否则返回值0.
  给P2赋值:如果A大于前面第二根K线最低值,且A小于等于前面第一根K线最低值,则返回值为前面第二根K线最低值,否则返回值0.
  给P3赋值:如果A大于前面第三根K线最低值,且A小于等于前面第一根K线最低值,且A小于等于前面第二根K线最低值,则返回值为前面第三根K线最低值,否则返回值0.
  给P4赋值:如果A大于前面第四根K线最低值,且A小于等于前面第一根K线最低值,且A小于等于前面第二根K线最低值,且A小于等于前面第三根K线最低值,则返回值为前面第四根K线最低值,否则返回值0.
  给P5赋值:如果A大于前面第五根K线最低值,且A小于等于前面第一根K线最低值,且A小于等于前面第二根K线最低值,且A小于等于前面第三根K线最低值,且A小于等于前面第四根K线最低值,则返回值为前面第五根K线最低值,否则返回值0.
  给P6赋值:如果A大于前面第六根K线最低值,且A小于等于前面第一根K线最低值,且A小于等于前面第二根K线最低值,且A小于等于前面第三根K线最低值,且A小于等于前面第四根K线最低值,且A小于等于前面第五根K线最低值,则返回值为前面第六根K线最低值,否则返回值0.
  给P7赋值:如果A大于前面第七根K线最低值,且A小于等于前面第一根K线最低值,且A小于等于前面第二根K线最低值,且A小于等于前面第三根K线最低值,且A小于等于前面第四根K线最低值,且A小于等于前面第五根K线最低值,且A小于等于前面第六根K线最低值,则返回值为前面第七根K线最低值,否则返回值0.
  给P8赋值:如果A大于前面第八根K线最低值,且A小于等于前面第一根K线最低值,且A小于等于前面第二根K线最低值,且A小于等于前面第三根K线最低值,且A小于等于前面第四根K线最低值,且A小于等于前面第五根K线最低值,且A小于等于前面第六根K线最低值,且A小于等于前面第七根K线最低值,则返回值为前面第八根K线最低值,否则返回值0.
  给P9赋值:如果A大于前面第九根K线最低值,且A小于等于前面第一根K线最低值,且A小于等于前面第二根K线最低值,且A小于等于前面第三根K线最低值,且A小于等于前面第四根K线最低值,且A小于等于前面第五根K线最低值,且A小于等于前面第六根K线最低值,且A小于等于前面第七根K线最低值,且A小于等于前面第八根K线最低值,则返回值为前面第九根K线最低值,否则返回值0.
  给P10赋值:如果A大于前面第十根K线最低值,且A小于等于前面第一根K线最低值,且A小于等于前面第二根K线最低值,且A小于等于前面第三根K线最低值,且A小于等于前面第四根K线最低值,且A小于等于前面第五根K线最低值,且A小于等于前面第六根K线最低值,且A小于等于前面第七根K线最低值,且A小于等于前面第八根K线最低值,且A小于等于前面第九根K线最低值,则返回值为前面第十根K线最低值,否则返回值0.
  给AA赋值:AA等于P1+P2+P3+P4+P5+P6+P7+P8+P9+P10;
  给PP1赋值:如果AA大于前面第一根K线的最低值,则返回值为前面第一根K线的最低值,否则返回值为0.
  给PP2赋值:如果AA大于前面第二根K线最低值,且AA小于等于前面第一根K线最低值,则返回值为前面第二根K线最低值,否则返回值0.
  给PP3赋值:如果AA大于前面第三根K线最低值,且AA小于等于前面第一根K线最低值,且AA小于等于前面第二根K线最低值,则返回值为前面第三根K线最低值,否则返回值0.
  给PP4赋值:如果AA大于前面第四根K线最低值,且AA小于等于前面第一根K线最低值,且AA小于等于前面第二根K线最低值,且AA小于等于前面第三根K线最低值,则返回值为前面第四根K线最低值,否则返回值0.
  给PP5赋值:如果AA大于前面第五根K线最低值,且AA小于等于前面第一根K线最低值,且AA小于等于前面第二根K线最低值,且AA小于等于前面第三根K线最低值,且AA小于等于前面第四根K线最低值,则返回值为前面第五根K线最低值,否则返回值0.
  给PP6赋值:如果AA大于前面第六根K线最低值,且AA小于等于前面第一根K线最低值,且AA小于等于前面第二根K线最低值,且AA小于等于前面第三根K线最低值,且AA小于等于前面第四根K线最低值,且AA小于等于前面第五根K线最低值,则返回值为前面第六根K线最低值,否则返回值0.
  给PP7赋值:如果AA大于前面第七根K线最低值,且AA小于等于前面第一根K线最低值,且AA小于等于前面第二根K线最低值,且AA小于等于前面第三根K线最低值,且AA小于等于前面第四根K线最低值,且AA小于等于前面第五根K线最低值,且AA小于等于前面第六根K线最低值,则返回值为前面第七根K线最低值,否则返回值0.
  给PP8赋值:如果AA大于前面第八根K线最低值,且AA小于等于前面第一根K线最低值,且AA小于等于前面第二根K线最低值,且AA小于等于前面第三根K线最低值,且AA小于等于前面第四根K线最低值,且AA小于等于前面第五根K线最低值,且AA小于等于前面第六根K线最低值,且AA小于等于前面第七根K线最低值,则返回值为前面第八根K线最低值,否则返回值0.
  给PP9赋值:如果AA大于前面第九根K线最低值,且AA小于等于前面第一根K线最低值,且AA小于等于前面第二根K线最低值,且AA小于等于前面第三根K线最低值,且AA小于等于前面第四根K线最低值,且AA小于等于前面第五根K线最低值,且AA小于等于前面第六根K线最低值,且AA小于等于前面第七根K线最低值,且AA小于等于前面第八根K线最低值,则返回值为前面第九根K线最低值,否则返回值0.
  给PP10赋值:如果AA大于前面第十根K线最低值,且AA小于等于前面第一根K线最低值,且AA小于等于前面第二根K线最低值,且AA小于等于前面第三根K线最低值,且AA小于等于前面第四根K线最低值,且AA小于等于前面第五根K线最低值,且AA小于等于前面第六根K线最低值,且AA小于等于前面第七根K线最低值,且AA小于等于前面第八根K线最低值,且AA小于等于前面第九根K线最低值,则返回值为前面第十根K线最低值,否则返回值0.
  给AAA赋值:AAA等于PP1+PP2+PP3+PP4+PP5+PP6+PP7+PP8+PP9+PP10;
  给C1赋值:如果AAA大于0,则返回值为AAA,否则返回上一个AAA大于0时候的AAA值。
  给T1赋值:如果B小于前面第一根K线的最高价,则返回值为前面第一根K线的最高价,否则返回值为0.
  给T2赋值:如果B小于前面第二根K线最高价,且B大于等于前面第一根K线最高值,则返回值为前面第二根K线最高值,否则返回值0.
  给T3赋值:如果B小于前面第三根K线最高值,且B大于等于前面第一根K线最高值,且B大于等于前面第二根K线最高值,则返回值为前面第三根K线最高值,否则返回值0.
  给T4赋值:如果B小于前面第四根K线最高值,且B大于等于前面第一根K线最高值,且B大于等于前面第二根K线最高值,且B大于等于前面第三根K线最高值,则返回值为前面第四根K线最高值,否则返回值0.
  给T5赋值:如果B小于前面第五根K线最高值,且B大于等于前面第一根K线最高值,且B大于等于前面第二根K线最高值,且B大于等于前面第三根K线最高值,且B大于等于前面第四根K线最高值,则返回值为前面第五根K线最高值,否则返回值0.
  给T6赋值:如果B小于前面第六根K线最高值,且B大于等于前面第一根K线最高值,且B大于等于前面第二根K线最高值,且B大于等于前面第三根K线最高值,且B大于等于前面第四根K线最高值,且B大于等于前面第五根K线最高值,则返回值为前面第六根K线最高值,否则返回值0.
  给T7赋值:如果B小于前面第七根K线最高值,且B大于等于前面第一根K线最高值,且B大于等于前面第二根K线最高值,且B大于等于前面第三根K线最高值,且B大于等于前面第四根K线最高值,且B大于等于前面第五根K线最高值,且B大于等于前面第六根K线最高值,则返回值为前面第七根K线最高值,否则返回值0.
  给T8赋值:如果B小于前面第八根K线最高值,且B大于等于前面第一根K线最高值,且B大于等于前面第二根K线最高值,且B大于等于前面第三根K线最高值,且B大于等于前面第四根K线最高值,且B大于等于前面第五根K线最高值,且B大于等于前面第六根K线最高值,且B大于等于前面第七根K线最高值,则返回值为前面第八根K线最高值,否则返回值0.
  给T9赋值:如果B小于前面第九根K线最高值,且B大于等于前面第一根K线最高值,且B大于等于前面第二根K线最高值,且B大于等于前面第三根K线最高值,且B大于等于前面第四根K线最高值,且B大于等于前面第五根K线最高值,且B大于等于前面第六根K线最高值,且B大于等于前面第七根K线最高值,且B大于等于前面第八根K线最高值,则返回值为前面第九根K线最高值,否则返回值0.
  给T10赋值:如果B小于前面第十根K线最高值,且B大于等于前面第一根K线最高值,且B大于等于前面第二根K线最高值,且B大于等于前面第三根K线最高值,且B大于等于前面第四根K线最高值,且B大于等于前面第五根K线最高值,且B大于等于前面第六根K线最高值,且B大于等于前面第七根K线最高值,且B大于等于前面第八根K线最高值,且B大于等于前面第九根K线最高值,则返回值为前面第十根K线最高值,否则返回值0.
  给BB赋值:如果T1+T2+T3+T4+T5+T6+T7+T8+T9+T10=0则返回值为888888,否则返回值为T1+T2+T3+T4+T5+T6+T7+T8+T9+T10;
  给TT1赋值:如果BB小于前面第一根K线的最高值,则返回值为前面第一根K线的最高值,否则返回值为0.
  给TT2赋值:如果BB小于前面第二根K线最高值,且BB大于等于前面第一根K线最高值,则返回值为前面第二根K线最高值,否则返回值0.
  给TT3赋值:如果BB小于前面第三根K线最高值,且BB大于等于前面第一根K线最高值,且BB大于等于前面第二根K线最高值,则返回值为前面第三根K线最高值,否则返回值0.
  给TT4赋值:如果BB小于前面第四根K线最高值,且BB大于等于前面第一根K线最高值,且BB大于等于前面第二根K线最高值,且BB大于等于前面第三根K线最高值,则返回值为前面第四根K线最高值,否则返回值0.
  给TT5赋值:如果BB小于前面第五根K线最高值,且BB大于等于前面第一根K线最高值,且BB大于等于前面第二根K线最高值,且BB大于等于前面第三根K线最高值,且BB大于等于前面第四根K线最高值,则返回值为前面第五根K线最高值,否则返回值0.
  给TT6赋值:如果BB小于前面第六根K线最高值,且BB大于等于前面第一根K线最高值,且BB大于等于前面第二根K线最高值,且BB大于等于前面第三根K线最高值,且BB大于等于前面第四根K线最高值,且BB大于等于前面第五根K线最高值,则返回值为前面第六根K线最高值,否则返回值0.
  给TT7赋值:如果BB小于前面第七根K线最高值,且BB大于等于前面第一根K线最高值,且BB大于等于前面第二根K线最高值,且BB大于等于前面第三根K线最高值,且BB大于等于前面第四根K线最高值,且BB大于等于前面第五根K线最高值,且BB大于等于前面第六根K线最高值,则返回值为前面第七根K线最高值,否则返回值0.
  给TT8赋值:如果BB小于前面第八根K线最高值,且BB大于等于前面第一根K线最高值,且BB大于等于前面第二根K线最高值,且BB大于等于前面第三根K线最高值,且BB大于等于前面第四根K线最高值,且BB大于等于前面第五根K线最高值,且BB大于等于前面第六根K线最高值,且BB大于等于前面第七根K线最高值,则返回值为前面第八根K线最高值,否则返回值0.
  给TT9赋值:如果BB小于前面第九根K线最高值,且BB大于等于前面第一根K线最高值,且BB大于等于前面第二根K线最高值,且BB大于等于前面第三根K线最高值,且BB大于等于前面第四根K线最高值,且BB大于等于前面第五根K线最高值,且BB大于等于前面第六根K线最高值,且BB大于等于前面第七根K线最高值,且BB大于等于前面第八根K线最高值,则返回值为前面第九根K线最高值,否则返回值0.
  给TT10赋值:如果BB小于前面第十根K线最高值,且BB大于等于前面第一根K线最高值,且BB大于等于前面第二根K线最高值,且BB大于等于前面第三根K线最高值,且BB大于等于前面第四根K线最高值,且BB大于等于前面第五根K线最高值,且BB大于等于前面第六根K线最高值,且BB大于等于前面第七根K线最高值,且BB大于等于前面第八根K线最高值,且BB大于等于前面第九根K线最高值,则返回值为前面第十根K线最高值,否则返回值0.
  给BBB赋值:BBB等于TT1+TT2+TT3+TT4+TT5+TT6+TT7+TT8+TT9+TT10;
  给D赋值:如果BBB大于0,则返回值为BBB,否则返回上一次BBB大于0的时候的BBB值。
  给UD赋值:如果收盘价大于D,且前面第一根K线的收盘价小于等于D,则返回值为1.否则返回括弧内的值(如果收盘价小于C1,且前面第一根K线的收盘价大于等于C1,则返回值为-3,否则返回值为0)。
  给K赋值:如果UD小于大于0,返回值为UD,否则返回值为上一次UD小于大于0时候的UD值。
  为G赋值:如果K等于1,则返回值为C1,否则返回值为D。
  在图中生成以“止损”为名称的一条均线。
  效果如下:
  
  编程源码如下:
  #property indicator_chart_window
  #property indicator_buffers 1
  #property indicator_color1  Lime
  
  double     G[];
  double     AAA[];
  double     BBB[];
  double     UD[];
  double A,A1,AA;
  double B,BB,C1,D,K;
  double P1,P2,P3,P4,P5,P6,P7,P8,P9,P10;
  double PP1,PP2,PP3,PP4,PP5,PP6,PP7,PP8,PP9,PP10;
  double T1,T2,T3,T4,T5,T6,T7,T8,T9,T10;
  double TT1,TT2,TT3,TT4,TT5,TT6,TT7,TT8,TT9,TT10;
  
  string timeName;
  int init()
    {
  
     SetIndexBuffer(0,G);
  
     SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
     
     IndicatorDigits(Digits);
  
     return(0);
    }
   
   int deinit()
    {
  //----
       timeName = "LableTitle1";
        ObjectDelete(timeName);
  //----
     return(0);
    }
   
  int start()
    {
         
      drLine();
      
      timeName = "LableTitle1";
          ObjectDelete(timeName);
          ObjectCreate(timeName, OBJ_LABEL, 0, 0, 0);
          ObjectSetText(timeName,""+"G[8]: "+G[8], 10, "Arial", Lime);
          ObjectSet(timeName, OBJPROP_CORNER, 1);
          ObjectSet(timeName, OBJPROP_XDISTANCE, 500);
          ObjectSet(timeName, OBJPROP_YDISTANCE, 10);
      
     return(0);
    }
  
  
  void drLine()
  {
    int limit= Bars-IndicatorCounted();
  
     for(int i=0; i=iHigh(NULL,0,i+1)&& iHigh(NULL,0,i)>=iHigh(NULL,0,i+2)&& iHigh(NULL,0,i)>=iHigh(NULL,0,i+3) && iHigh(NULL,0,i)>=iHigh(NULL,0,i+4) && iHigh(NULL,0,i)>=iHigh(NULL,0,i+5))
           A1=iLow(NULL,0,i);
         else
           A1=0;
           
         if(iLow(NULL,0,i)D && iClose(NULL,0,i+1)0; l--)
         {
           if(UD[l]!=0)
             {K=UD[l];
           break;}
         }
         
         if(K==1)
           G<i>=C1;
         else
           G<i>=D;
         G<i>=iHigh(NULL,0,i);
      }
  }
  
  问题是:编译能通过,但是却不能显示这根线。请bull老大帮忙修改。谢谢![/td][/tr]
打赏