MT4编程实例讲解文档格式.docx

上传人:b****3 文档编号:6179686 上传时间:2023-05-06 格式:DOCX 页数:43 大小:214.68KB
下载 相关 举报
MT4编程实例讲解文档格式.docx_第1页
第1页 / 共43页
MT4编程实例讲解文档格式.docx_第2页
第2页 / 共43页
MT4编程实例讲解文档格式.docx_第3页
第3页 / 共43页
MT4编程实例讲解文档格式.docx_第4页
第4页 / 共43页
MT4编程实例讲解文档格式.docx_第5页
第5页 / 共43页
MT4编程实例讲解文档格式.docx_第6页
第6页 / 共43页
MT4编程实例讲解文档格式.docx_第7页
第7页 / 共43页
MT4编程实例讲解文档格式.docx_第8页
第8页 / 共43页
MT4编程实例讲解文档格式.docx_第9页
第9页 / 共43页
MT4编程实例讲解文档格式.docx_第10页
第10页 / 共43页
MT4编程实例讲解文档格式.docx_第11页
第11页 / 共43页
MT4编程实例讲解文档格式.docx_第12页
第12页 / 共43页
MT4编程实例讲解文档格式.docx_第13页
第13页 / 共43页
MT4编程实例讲解文档格式.docx_第14页
第14页 / 共43页
MT4编程实例讲解文档格式.docx_第15页
第15页 / 共43页
MT4编程实例讲解文档格式.docx_第16页
第16页 / 共43页
MT4编程实例讲解文档格式.docx_第17页
第17页 / 共43页
MT4编程实例讲解文档格式.docx_第18页
第18页 / 共43页
MT4编程实例讲解文档格式.docx_第19页
第19页 / 共43页
MT4编程实例讲解文档格式.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MT4编程实例讲解文档格式.docx

《MT4编程实例讲解文档格式.docx》由会员分享,可在线阅读,更多相关《MT4编程实例讲解文档格式.docx(43页珍藏版)》请在冰点文库上搜索。

MT4编程实例讲解文档格式.docx

#propertyindicator_color2Green

externint变色均线=18;

doubleduo[];

doublekong[];

intinit()

{

SetIndexBuffer(0,duo);

SetIndexBuffer(1,kong);

SetIndexStyle(0,DRAW_LINE);

SetIndexStyle(1,DRAW_LINE);

SetIndexDrawBegin(0,变色均线);

SetIndexDrawBegin(1,变色均线);

IndicatorDigits(Digits);

return(0);

}

intstart()

doubletemp0,temp1;

intlimit;

intcounted_bars=IndicatorCounted();

if(counted_bars<

0)return(-1);

if(counted_bars>

0)counted_bars--;

limit=Bars-counted_bars;

for(inti=limit;

i>

=0;

i--)

{

duo[i]=EMPTY_VALUE;

kong[i]=EMPTY_VALUE;

temp0=iMA(NULL,0,变色均线,0,MODE_SMA,PRICE_CLOSE,i);

temp1=iMA(NULL,0,变色均线,0,MODE_SMA,PRICE_CLOSE,i+1);

if(iClose(NULL,0,i)>

=iMA(NULL,0,变色均线,0,MODE_SMA,PRICE_CLOSE,i))

{duo[i]=temp0;

duo[i+1]=temp1;

}

else{kong[i]=temp0;

kong[i+1]=temp1;

}

-----------------------------------------------------------------------------------------------------------

当然,上面这个是以价格在均线上下方为条件的,我们也可以以MACD、KDJ、RSI等指标作为均线变色的条件。

我们还可以更进一步,把双色线改为三色线等等

===================================================

语句简要解释如下:

指标放在主图

设置指标线数组为2个

设置第一条指标线颜色值为Red,第二条颜色值为Green

设立一个自定义变量,允许外部值修改,整数形,变量名为"

变色均线"

默认值18

设立一个自定义数组,双精度型,名称为duo

该数组在后面用于存储红线数据

设立一个自定义数组,双精度型,名称为kong

该数组在后面用于存储绿线数据

设立初始化函数init。

init为系统规定函数名,函数内容自定义。

该函数在指标被加载时运行一次

设置第一、二条指标线的数组为duo和kong

设置第一、二条指标线的样式,线型为连续曲线

设置第一、二条指标线的最左边的起始划线位置

设置指标精确到的小数位数

Digits是当前汇率小数位,日系Digits=2,其他币对Digits=4

init函数结束,返回零值

设立触发函数start。

start为系统规定函数名,函数内容自定义。

当数据变动时,start函数被触发

设立双精度型自定义变量temp0、temp1

设立自定义变量limit,整数型

设立整数型自定义变量counted_bars,并将IndicatorCounted()的值赋给counted_bars

IndicatorCounted()为缓存数,即已经计算过值的烛柱数

如果counted_bars值小于零,start函数结束

如果counted_bars值大于零,则counted_bars值减掉1。

这是为了配合下一句,以避免limit相差1而出错

给limit赋值

Bars为图表中的烛柱数

counted_bars为缓存数,即已经运算过的烛柱数

这样limit的值就是未经运算的烛柱数

这样做的目的是避免重复运算,优化程序

循环语句,括号中有三个语句:

第一句inti=limit;

表示循环从i=limit开始

第二句i>

这是循环的条件,如果条件满足则执行大括号中的循环体,如果条件不满足,则中止循环,跳到大括号下面的语句执行

第三句i--,这是循环步调控制语句,每循环一次后执行一次此语句。

i--相当于i=i-1,即i值在原有数值上减少1

给数组duo和kong在i位置上赋空值

EMPTY_VALUE:

空值

把均线在i和i+1位置上均线值,分别赋给temp0和temp1

这是为了使后面的语句看起来简洁

=iMA(NULL,0,变色均线,0,MODE_SMA,PRICE_CLOSE,i))

判断条件语句:

如果价格高于均线

判断执行语句:

给数组元素duo[i]、duo[i+1]分别赋值

如果判断条件不成立,即价格低于均线:

则给数组元素kong[i]、kong[i+1]分别赋值

start函数结束,返回零值

在欧元图上显示英磅的RSI指标

作者:

秃鹫来自:

韬客外汇论坛

下面这个图是AUD图上,叠加了英磅的RSI指标。

(当然也可以不叠加,分两个窗口)

从RSI指标图上我们看到,英磅强势,而澳元很弱

下面是指标源码

-------------------------------------------------------------------------------------------------------

#propertyindicator_separate_window

#propertyindicator_buffers1

#propertyindicator_color1Aqua

#propertyindicator_level130

#propertyindicator_level270

externintRSI=12;

externstring商品="

GBPUSD"

;

doubleind_buffer[];

SetIndexBuffer(0,ind_buffer);

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);

IndicatorShortName("

RSI("

+商品+"

"

+RSI+"

)"

);

for(inti=0;

i<

limit;

i++)

ind_buffer[i]=iRSI(商品,0,RSI,PRICE_CLOSE,i);

下面是指标叠加的操作方法:

当然这里用的是RSI指标,别的指标如KDJ、威廉等指标也可以类似操作,只要把上面源码中的取值函数和参数换一个行了。

=============================================

指标放在副图

设置指标线数组为1个

设置第一条指标线颜色值为Aqua,即介于蓝绿之间的一种颜色

在副图中,30值位置上画一条水平直线

在副图中,70值位置上画一条水平直线

设立一个自定义变量,允许外部值修改,整数型,变量名为"

RSI"

默认值12

设立一个自定义变量,允许外部值修改,字符串型,变量名为"

商品"

默认值"

设立一个自定义数组,双精度型

设置第一条指标线的数组为ind_buffer

设置第一条指标线的样式,DRAW_LINE表示连续曲线,STYLE_SOLID表示实心线,1号粗线

设置指标线的显示简称

初始化函数结束

IndicatorCounted()为缓存数量,即已经计算过值的烛柱数

(注:

可能这里解释得不是很准确,大致就这个意思)

Bars为图表中的柱数

counted_bars为已经赋值的柱数

这样limit的值就是未赋值的烛柱数

第一句inti=0;

表示循环从i=0开始

第二句i<

第三句i++,这是循环步调控制语句,每循环一次后执行一次此语句。

i++相当于i=i+1,即i值在原有数值上增加1

此语句为循环体,由于只有一个语句,所以省略花括号

i为图表烛柱的序号,从0开始,右边第1柱序号为0,从右向左递增

iRSI为RSI指标的取值函数

start函数结束

箭头符号

(1)

上一篇/下一篇2008-03-1621:

49:

48/个人分类:

MT4

查看(808)/评论(0)/评分(0/0)

  符号是一种断断续续的指标线。

在指标线有值区域,指标线显示;

在指标线无值区域,指标线隐藏。

例如下图:

当价格上穿、下穿均线时,均线上出现一个标记符号。

  原理也很简单:

在上图中,存在二条指标线,一条是均线,另一条是笑脸符号线。

均线在任何位置都有值,所以均线是一条连续的曲线;

当价格上、下穿均线时,符号线被赋予了均线值;

而在其他位置上,符号线被赋了空值。

所以只是在价格上、下穿均线的位置上,符号线才有值,才能出现笑脸符号。

因为符号线只是个别位置有值,所以符号线仅在个别位置显现。

符号也正好落在均线上,因为符号线值=均线值。

如果符号线被赋了别的值,例如(符号线=均线+10点),那么符号水平坐标不变,垂直坐标将是均线上方的10点位置。

源码如下:

//======================================================

#propertyindicator_buffers1

#propertyindicator_color1Yellow

externint均线=10;

doublemk[];

doubletemp0,temp1;

IndicatorBuffers

(1);

SetIndexBuffer(0,mk);

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0,204);

limit=Bars-counted_bars-均线;

temp0=iMA(NULL,0,均线,0,0,0,i);

temp1=iMA(NULL,0,均线,0,0,0,i+1);

mk[i]=EMPTY_VALUE;

if(Close[i]>

temp0&

&

Close[i+1]<

temp1)mk[i]=temp0;

if(Close[i]<

Close[i+1]>

//源码到此已结束

设置指标线数为1条

设置第一条指标线颜色为黄色

均线"

默认值10

设立二个自定义变量,双精度型,变量名为temp0、temp1

该函数在指标被加载时仅运行一次

指标线数量为1条

第一条指标线的数组为mk

第一条指标线的线型为箭头符号

第一条指标线的箭头符号为第204种符号,如果换一个编号,那出现的就是另一种符号。

箭头符号的编码详见《MT4编程参考》

设置指标线的小数位数

Digits=当前汇率的小数位数,如日元叉盘Digits=2,其他币对Digits==4

函数结束,返回零值

设立整数型自定义变量limit

如果counted_bars大于零,则将counted_bars的值减掉1

这是为了配合下一句,以避免limit相差1而发生出错

这是给limit赋值

这样limit的结果就是未赋值的烛柱数

再减去“均线”是因为图表最右边段均线无意义

把均线在i位置上的值赋给temp0

iMA:

均线取值函数

把均线在(i+1)位置上的值赋给temp1

给数组mk在i位置上赋空值

EMPTY_VALUE就是空值

条件判断语句。

如果在i位置上价格大于均线,并且在(i+1)位置上价格小于均线(即价格上穿均线),则给数组mk在i位置上赋该位置的均线值

Close[i]:

在i位置上收盘价。

&

逻辑运算符“并且”

与上一句相似

start函数结束语句

把所有时段MACD一起显示

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2