多级别均线
#property indicator_chart_window //指标放在主图; indicator_separate_window 附图 #property indicator_buffers 2 //设置指标线数组1条 #property indicator_color1 BlueViolet //第一条指标线为白色; #property indicator_color2 Magenta #property indicator_style1 STYLE_SOLID //线为实体的 #property indicator_width1 2 //宽度为1 #property indicator_width2 1 //宽度为1 extern int MA1=160; //设立二个整数型变量,默认值为12和26,允许外部修改值 extern int MA2=20; double buf1[]; //创建一个数组 double buf2[]; int init() //初始化函数,该函数进在指标加载时只运行一次。init是系统默认的函数名 { SetIndexBuffer(0,buf1); //设置数组buf1为第一条指标线 SetIndexStyle(0,DRAW_LINE); // 设置第一条指标线线型为连续型曲线 SetIndexBuffer(1,buf2); //设置数组buf1为第一条指标线 SetIndexStyle(1,DRAW_LINE); // 设置第一条指标线线型为连续型曲线 IndicatorDigits(Digits); //设置指标精确到小数位数 return(0); } //指标触发函数。与init函数相区别,该函数在有行情数据变化时被触发, //如果数据被不断更新,则该函数则将被不断执行。 int start() { int limit=Bars-IndicatorCounted(); //自定义了一个变量limit,并对其赋值;ars是图表中的柱数(K线数) //IndicatorCounted()函数调用的是缓存中的柱数,就是已经计算过的有值的柱数。 if(Period()==PERIOD_M1) //判断当前为什么周期图 PERIOD_M1,PERIOD_M5,PERIOD_M15,PERIOD_M30,PERIOD_H1,PERIOD_H4,PERIOD_D1,PERIOD_W1,PERIOD_MN1 { MA1=100; } if(Period()==PERIOD_M5) { MA1=120; } if(Period()==PERIOD_M15 || Period()==PERIOD_H1) { MA1=80; } if(Period()==PERIOD_M30) { MA1=160; } if(Period()==PERIOD_H4 || Period()==PERIOD_D1 ) { MA1=110; } for(int i=0; i<limit;i++) { //给数组buf赋值,其值分别为相应位置上两条均线计算出的差 //i是水平位置索引值,即烛柱从右到左的序号,右边第一个烛柱序号为0 buf1[i]= iMA(NULL,0,MA1,0,1,0,i); buf2[i]= iMA(NULL,0,MA2,0,1,0,i); } return(0); } |
打赏
最新创建圈子
- 新闻EA运行效果图圈 2019-05-05
圈主:admin 帖子:1