当我最需要爱 发表于 2011-11-29 20:03:02

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

要编的指标是一根类似多空转换线的线。编程语句翻译如下:
给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_color1Lime

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: \"+G, 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!=0)
             {K=UD;
         break;}
         }
         
         if(K==1)
         G<i>=C1;
         else
         G<i>=D;
         G<i>=iHigh(NULL,0,i);
      }
}

问题是:编译能通过,但是却不能显示这根线。请bull老大帮忙修改。谢谢!

2364383259 发表于 2012-11-22 01:36:01

自己知道了

柄先 发表于 2012-11-22 01:36:01

牛牛牛牛

K线 发表于 2012-11-22 01:36:01

就为赚分嘛

osenya 发表于 2012-11-22 01:36:01

小心大家盯上你哦

combo18 发表于 2012-11-22 01:36:01

做一个,做好了,请看

manger 发表于 2012-11-22 01:36:01

刚加进这个论坛不久,热衷于EA交易

ziakwvda 发表于 2014-10-30 04:58:08

回复看看

mvnjlbpt 发表于 2014-11-2 14:21:00

看看什么EA,,,

凤飞飞 发表于 2014-11-29 13:49:26

看看吧,谢谢分享
页: [1] 2
查看完整版本: Bull老大请再进来一下,多谢!(已解决)