[转帖]MT编程入门教程(0)----指标文件构成
- 格式:doc
- 大小:44.50 KB
- 文档页数:6
[转帖]MT编程入门教程(0)----指标文件构成默认分类 2010-08-31 13:17:15 阅读4 评论0 字号:大中小订阅MT编程入门教程(0)----指标//例1//+------------------------------------------------------------------+//双些线后是单行注释,用于注解,自用说明。
/*和*/包起来实现多行注释,记录自己的说明介绍,编程使用记录等//MQL4语言基本服从C语言的规则-----------注意目前MetaEditor处理不好多字节代码,所以不要在代码中使用中文和中文空格-------------+//每个指标文件只是至少包括三个部分(1)property 和参数,数组声明,(2)初始化函数nit(), (3)主函数start()//property 是各种说明信息//最重要必须的是这三种,(1)说明指标将画在价格窗口还是独立的窗口//(2)有多少个(1~7)储存指标数据的数组,(3)说明对应将画指标的绘画颜色,编号1~7#property indicator_chart_window#property indicator_buffers 1#property indicator_color1 Red//---- 可设置的参数,可根据需要,由使用者设置extern int MA_Period=13;extern int MA_Shift=0;extern int MA_Method=2;extern int MA_Price = 6;/* MA_Method =MODE_SMA 0 Simple moving average,MODE_EMA 1 Exponential moving average,MODE_SMMA 2 Smoothed moving average,MODE_LWMA 3 Linear weighted moving average.*//* MA_Price =PRICE_CLOSE 0 Close price.PRICE_OPEN 1 Open price.PRICE_HIGH 2 High price.PRICE_LOW 3 Low price.PRICE_MEDIAN 4 Median price, (high+low)/2.PRICE_TYPICAL 5 Typical price, (high+low+close)/3.PRICE_WEIGHTED 6 Weighted close price, (high+low+close+close)/4.*///数组,储存指标数据double Buffer0[];//----//+------------------------------------------------------------------+//| 初始化准备函数,装入时调用一次 |//+------------------------------------------------------------------+int init(){//-设置编号为0的线的线形等参数, 0~6,对应indicator_color1~7SetIndexStyle(0,DRAW_LINE);//---- 设置编号为0的线与数组的对应关系, 0~6SetIndexBuffer(0,Buffer0);return(0);}//+------------------------------------------------------------------+//| |int start() //指标计算主函数,每次计算调用{ma();return(0);}//+------------------------------------------------------------------+//|自定义函数,这里只是直接使用库函数实现MA, 若你自己计算,可设计任何指标 |//+------------------------------------------------------------------+void ma(){int pos=Bars; //Bars = Number of bars in the current chart.当前窗口中的蜡烛数while(pos>=0){Buffer0[pos]=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,MA_Price,pos); pos--;}}/////----------------------------------------------------------------------[Copy to clipboard]例2CODE://+------------------------------------------------------------------+//双些线后是单行注释,用于注解,自用说明。
/*和*/包起来实现多行注释,记录自己的说明介绍,编程使用记录等//MQL4语言基本服从C语言的规则-----------注意目前MetaEditor处理不好多字节代码,所以不要在代码中使用中文和中文空格-------------+//每个指标文件只是至少包括三个部分(1)property 和参数,数组声明,(2)初始化函数nit(), (3)主函数start()//property 是各种说明信息//最重要必须的是这三种,(1)说明指标将画在价格窗口还是独立的窗口//(2)有多少个(1~7)储存指标数据的数组,(3)说明对应将画指标的绘画颜色,编号1~7#property indicator_separate_window#property indicator_buffers 7#property indicator_color1 Red#property indicator_color2 Yellow#property indicator_color3 Blue#property indicator_color4 Green#property indicator_color5 Gray#property indicator_color6 SkyBlue#property indicator_color7 Tan//---- 可设置的参数,可根据需要,由使用者设置extern int MA_Period=13;extern int MA_Shift=0;extern int MA_Method=2;extern int MA_Price = 6;//数组,储存指标数据double Buffer0[];double Buffer1[];double Buffer2[];double Buffer3[];double Buffer4[];double Buffer5[];double Buffer6[];//----//+------------------------------------------------------------------+//| 初始化准备函数,装入时调用一次 |//+------------------------------------------------------------------+int init(){//-设置编号为0的线的线形等参数, 0~6,对应indicator_color1~7SetIndexStyle(0,DRAW_LINE);SetIndexStyle(1,DRAW_LINE);SetIndexStyle(3,DRAW_LINE);SetIndexStyle(4,DRAW_LINE);SetIndexStyle(5,DRAW_LINE);SetIndexStyle(6,DRAW_LINE);//---- 设置编号为0的线与数组的对应关系, 0~6SetIndexBuffer(0,Buffer0);SetIndexBuffer(1,Buffer1);SetIndexBuffer(2,Buffer2);SetIndexBuffer(3,Buffer3);SetIndexBuffer(4,Buffer4);SetIndexBuffer(5,Buffer5);SetIndexBuffer(6,Buffer6);return(0);}//+------------------------------------------------------------------+//| |int start() //指标计算主函数,每次计算调用{ma();ma1();return(0);}//+------------------------------------------------------------------+//|自定义函数,这里只是直接使用库函数实现MA, 若你自己计算,可设计任何指标 |//+------------------------------------------------------------------+void ma(){int pos=Bars; //Bars = Number of bars in the current chart.当前窗口中的蜡烛数while(pos>=0){Buffer0[pos]=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,MA_Price,pos);Buffer1[pos]=iMA(NULL,0,MA_Period*2,MA_Shift,MA_Method,MA_Price,pos) ;Buffer2[pos]=iMA(NULL,0,MA_Period*3,MA_Shift,MA_Method,MA_Price,pos) ;pos--;}}void ma1(){int pos=Bars; //Bars = Number of bars in the current chart.当前窗口中的蜡烛数while(pos>=0){Buffer3[pos]=iMA(NULL,0,MA_Period*4,MA_Shift,MA_Method,MA_Price,pos) ;Buffer4[pos]=iMA(NULL,0,MA_Period*5,MA_Shift,MA_Method,MA_Price,pos) ;Buffer5[pos]=iMA(NULL,0,MA_Period*6,MA_Shift,MA_Method,MA_Price,pos) ;Buffer6[pos]=iMA(NULL,0,MA_Period*7,MA_Shift,MA_Method,MA_Price,pos) ;pos--;}}。