MT4编程实例文档格式.docx

上传人:b****2 文档编号:5594185 上传时间:2023-05-05 格式:DOCX 页数:8 大小:108.05KB
下载 相关 举报
MT4编程实例文档格式.docx_第1页
第1页 / 共8页
MT4编程实例文档格式.docx_第2页
第2页 / 共8页
MT4编程实例文档格式.docx_第3页
第3页 / 共8页
MT4编程实例文档格式.docx_第4页
第4页 / 共8页
MT4编程实例文档格式.docx_第5页
第5页 / 共8页
MT4编程实例文档格式.docx_第6页
第6页 / 共8页
MT4编程实例文档格式.docx_第7页
第7页 / 共8页
MT4编程实例文档格式.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MT4编程实例文档格式.docx

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

MT4编程实例文档格式.docx

为了做到这一点,我们在给指标线循环赋值的时候:

1、在i时点上,除了给i时点赋值,同时还要给i+1时点赋同色值(以上图为例:

我们在给3时点赋绿线值时,同时给4时点赋绿线值;

在给2时点赋红线值时,同时再给3点赋红线值;

这样3时点上就既有红线值,又有绿线值);

2、赋值的顺序为从左向右,即递减循环,以避免前一操作所赋的值被清空。

这样我们的目的就达到了。

下面这是经过测试的源代码

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

#propertyindicator_chart_window

#propertyindicator_buffers2

#propertyindicator_color1Red

#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指标图上我们看到,英磅强势,而澳元很弱

下面是指标源码

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

#property 

indicator_separate_window

indicator_buffers1

indicator_color1 

Aqua

indicator_level1 

30

indicator_level2 

70

externintRSI=12;

externstring商品="

GBPUSD"

;

double 

ind_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);

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

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

当前位置:首页 > 成人教育 > 成考

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

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