MQ4专辑 MT编程入门.docx
- 文档编号:10561555
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:12
- 大小:211.43KB
MQ4专辑 MT编程入门.docx
《MQ4专辑 MT编程入门.docx》由会员分享,可在线阅读,更多相关《MQ4专辑 MT编程入门.docx(12页珍藏版)》请在冰点文库上搜索。
MQ4专辑MT编程入门
MQ4专辑MT编程入门
MQ4专辑MT编程入门教程指标文件构成自定义指标的基本操作2010-02-2722:
09
指标文件构成
//例1
//+------------------------------------------------------------------+//双些线后是单行注释,用于注解,自用说明。
/*和*/包起来实现多行注释,记录自己的说明介绍,
编程使用记录等
//MQL4语言基本服从C语言的规则-----------注意目前MetaEditor处理不好多字节代码,所以不
要在代码中使用中文和中文空格-------------+
//每个指标文件只是至少包括三个部分
(1)property和参数,数组声明,
(2)初始化函数nit(),(3)
主函数start()
//property是各种说明信息
//最重要必须的是这三种,
(1)说明指标将画在价格窗口还是独立的窗口//
(2)有多少个(1~7)储存指标数据的数组,(3)说明对应将画指标的绘画颜色,编号1~7
#propertyindicator_chart_window
#propertyindicator_buffers1
#propertyindicator_color1Red
//----可设置的参数,可根据需要,由使用者设置externintMA_Period=13;
externintMA_Shift=0;
externintMA_Method=2;
externintMA_Price=6;
/*MA_Method=
MODE_SMA0Simplemovingaverage,
MODE_EMA1Exponentialmovingaverage,
MODE_SMMA2Smoothedmovingaverage,
MODE_LWMA3Linearweightedmovingaverage.*/
/*MA_Price=
PRICE_CLOSE0Closeprice.
PRICE_OPEN1Openprice.
PRICE_HIGH2Highprice.
PRICE_LOW3Lowprice.
PRICE_MEDIAN4Medianprice,(high+low)/2.PRICE_TYPICAL5Typicalprice,(high+low+close)/3.PRICE_WEIGHTED6Weightedcloseprice,(high+low+close+close)/4.*/
//数组,储存指标数据
doubleBuffer0[];
//----
//+------------------------------------------------------------------+//|初始化准备函数,装入时调用一次|//+------------------------------------------------------------------+intinit()
{
//-设置编号为,的线的线形等参数,0~6,对应indicator_color1~7SetIndexStyle(0,DRAW_LINE);
//----设置编号为,的线与数组的对应关系,0~6SetIndexBuffer(0,Buffer0);
return(0);
}
//+------------------------------------------------------------------+//||
intstart()//指标计算主函数,每次计算调用{
ma();
return(0);
}
//+------------------------------------------------------------------+//|自定义函数,这里只是直接使用库函数实现MA,若你自己计算,可设计任何指
标|
//+------------------------------------------------------------------+voidma()
{
intpos=Bars;//Bars=Numberofbarsinthecurrentchart.当前窗口中的蜡烛数
while(pos>=0)
{
Buffer0[pos]=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,MA_Price,pos);
pos--;
}
}
//
///----------------------------------------------------------------------
[Copytoclipboard]
例,
CODE:
//+------------------------------------------------------------------+//双些线后是单行注释,用于注解,自用说明。
/*和*/包起来实现多行注释,记录自己的说明介绍,
编程使用记录等
//MQL4语言基本服从C语言的规则-----------注意目前MetaEditor处理不好多字节代码,所以不
要在代码中使用中文和中文空格-------------+//每个指标文件只是至少包括三个部分
(1)property和参数,数组声明,
(2)初始化函数nit(),(3)
主函数start()
//property是各种说明信息
//最重要必须的是这三种,
(1)说明指标将画在价格窗口还是独立的窗口
//
(2)有多少个(1~7)储存指标数据的数组,(3)说明对应将画指标的绘画颜色,编号1~7
#propertyindicator_separate_window
#propertyindicator_buffers7
#propertyindicator_color1Red
#propertyindicator_color2Yellow
#propertyindicator_color3Blue
#propertyindicator_color4Green
#propertyindicator_color5Gray
#propertyindicator_color6SkyBlue
#propertyindicator_color7Tan
//----可设置的参数,可根据需要,由使用者设置externintMA_Period=13;
externintMA_Shift=0;
externintMA_Method=2;
externintMA_Price=6;
//数组,储存指标数据
doubleBuffer0[];
doubleBuffer1[];
doubleBuffer2[];
doubleBuffer3[];
doubleBuffer4[];
doubleBuffer5[];
doubleBuffer6[];
//----
//+------------------------------------------------------------------+//|初始化准备函数,装入时调用一次|//+------------------------------------------------------------------+intinit()
{
//-设置编号为,的线的线形等参数,0~6,对应indicator_color1~7
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(3,DRAW_LINE);
SetIndexStyle(4,DRAW_LINE);
SetIndexStyle(5,DRAW_LINE);
SetIndexStyle(6,DRAW_LINE);
//----设置编号为,的线与数组的对应关系,0~6
SetIndexBuffer(0,Buffer0);
SetIndexBuffer(1,Buffer1);
SetIndexBuffer(2,Buffer2);
SetIndexBuffer(3,Buffer3);
SetIndexBuffer(4,Buffer4);
SetIndexBuffer(5,Buffer5);
SetIndexBuffer(6,Buffer6);
return(0);
}
//+------------------------------------------------------------------+
//||
intstart()//指标计算主函数,每次计算调用
{
ma();
ma1();
return(0);
}
//+------------------------------------------------------------------+
//|自定义函数,这里只是直接使用库函数实现MA,若你自己计算,可设计任何指标|
//+------------------------------------------------------------------+
voidma()
{
intpos=Bars;//Bars=Numberofbarsinthecurrentchart.当前窗口中的蜡烛数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--;
}
}
voidma1()
{
intpos=Bars;//Bars=Numberofbarsinthecurrentchart.当前窗口中的蜡烛数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--;
}
}
自定义指标的基本操作
MT4自定义指标的保存目录、指标编缉器与指标调用
一、MT4自定义指标保存在C:
\ProgramFiles\MetaTrader4\experts\indicators这个目录中,
该目录中主要有二种类型的文件,
一种是mq4文件,这是MT4自定义指标的源码文件,是一种高级语言文件,可以人工编写修改,机器不能直接执行,但能在MT4启动时自动编译为ex4可执行文件。
另一种就是ex4文件,这是MT4自定义指标的可执行文件,由mq4文件编译得到。
mq4文件必须编译为ex4文件才能被MT4执行。
但ex4文件是机器码文件,人工不可修改
另外还有一个文件是mqlcache.dat,它用来保存目录中的文件信息,如果MT4无法自动编译,只要删除此文件即可解决问题
mq4文件编译为ex4可执行文件有两种方法:
1、MT4启动时,会自动把此目录中的mq4文件编译为ex4文件。
2、用MQ语言编辑器打开mq4文件,点一下“编写”按钮,即可生成ex4文件
二、下载保存mq4文件、ex4文件
在论坛上我们经常看到有mq4文件、ex4文件可供下载,我们只要把它们保存到C:
\ProgramFiles\MetaTrader4\experts\indicators这个目录,也就是下面这个目录中,就可以了。
如果下载的是ex4文件,那可以直接调用;如果是mq4文件,则需要重启动MT4,让系统自动编译生成ex4可执行文件。
如果下载的是rar、zip等类型的压缩文件,还必须下载后解压到此目录才能使用。
三、将源码保存为源码文件
在论坛上,我们也经常能看到指标源码贴在网页上,但没有mq4、ex4等文件可以下载,只能复制源码。
此时需要我们自己动手将源码保存为源码文件,那也没关系,非常地简单,多点几下鼠标就搞定。
1、打开MQ语言编辑器
2、在MQ语言编辑器中新建一个文件,文件名一定要输,别的随便操作都没关系。
3、删除新文件里面的所有内容,成为一个空文件,
4、接着我们就可以将网页上源码复制粘贴进来
试着点一下“编写”,如果左下角出现“0错误,0警告”,那说明源码没问题,编译通过了,成功生
成了ex4可执行文件
5、还有很重要的一点,就是要把源码文件保存到正确的目录中
保存后,再点一下编写。
到此,源码保存完成。
当然,我们也还有另的办法:
可以打开一个原已存在的mq4文件,然后另存为你需要的文件名,再删除文件中的所有内容成为空文件,把网页上的源贴到文件中保存即可
也可以在记事本中新建一个文件,把网页上的源码贴进记事本,然后取个文件名保存到上面提到的目录,不过文件后缀必须输入mq4,保存类型选择“所以文件”
四、mt4程序调用自定义指标
这非常简单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MQ4专辑 MT编程入门 MQ4 专辑 MT 编程 入门