MT4编程实例

发布时间 : 星期一 文章MT4编程实例更新完毕开始阅读

和参数换一个行了。

============================================= 语句简要解释如下:

============================================= #property indicator_separate_window 指标放在副图

#property indicator_buffers 1 设置指标线数组为1个

#property indicator_color1 Aqua

设置第一条指标线颜色值为Aqua,即介于蓝绿之间的一种颜色 #property indicator_level1 30 在副图中,30值位置上画一条水平直线 #property indicator_level2 70 在副图中,70值位置上画一条水平直线 extern int RSI=12;

设立一个自定义变量,允许外部值修改,整数型,变量名为\默认值12 extern string 商品=\

设立一个自定义变量,允许外部值修改,字符串型,变量名为\商品\默认值\double ind_buffer[]; 设立一个自定义数组,双精度型 int init()

设立初始化函数init。init为系统规定函数名,函数内容自定义。该函数在指标被加载时运行一次 {

SetIndexBuffer(0,ind_buffer); 设置第一条指标线的数组为ind_buffer

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);

设置第一条指标线的样式,DRAW_LINE表示连续曲线,STYLE_SOLID表示实心线,1号粗线 IndicatorShortName(\商品+\ 设置指标线的显示简称 return(0); 初始化函数结束

} int start()

设立触发函数start。start为系统规定函数名,函数内容自定义。当数据变动时,start函数被触发 { int limit;

设立自定义变量limit,整数型 int counted_bars=IndicatorCounted();

设立整数型自定义变量counted_bars,并将IndicatorCounted()的值赋给counted_bars IndicatorCounted()为缓存数量,即已经计算过值的烛柱数 (注:可能这里解释得不是很准确,大致就这个意思) if(counted_bars<0) return(-1);

如果counted_bars值小于零,start函数结束 if(counted_bars>0) counted_bars--;

如果counted_bars值大于零,则counted_bars值减掉1。这是为了配合下一句,以避免limit相差1而出错

limit=Bars-counted_bars; 给limit赋值

Bars为图表中的柱数

counted_bars为已经赋值的柱数 这样limit的值就是未赋值的烛柱数 这样做的目的是避免重复运算,优化程序 for(int i=0; i

循环语句,括号中有三个语句: 第一句int i=0; 表示循环从i=0开始

第二句i

第三句i++,这是循环步调控制语句,每循环一次后执行一次此语句。 i++相当于i=i+1,即i值在原有数值上增加1 ind_buffer[i]=iRSI(商品,0,RSI,PRICE_CLOSE,i); 此语句为循环体,由于只有一个语句,所以省略花括号

i为图表烛柱的序号,从0开始,右边第1柱序号为0,从右向左递增 iRSI为RSI指标的取值函数 return(0); start函数结束

}

MT4编程实例:箭头符号(1)

上一篇 / 下一篇 2008-03-16 21:49:48 / 个人分类:MT4

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

作者:秃鹫 来自:韬客外汇论坛http://www.talkforex.com

符号是一种断断续续的指标线。在指标线有值区域,指标线显示;在指标线无值区域,指标线隐藏。例如下图:当价格上穿、下穿均线时,均线上出现一个标记符号。

原理也很简单:在上图中,存在二条指标线,一条是均线,另一条是笑脸符号线。 均线在任何位置都有值,所以均线是一条连续的曲线;

当价格上、下穿均线时,符号线被赋予了均线值;而在其他位置上,符号线被赋了空值。所以只是在价格

上、下穿均线的位置上,符号线才有值,才能出现笑脸符号。因为符号线只是个别位置有值,所以符号线仅在个别位置显现。

符号也正好落在均线上,因为符号线值=均线值。如果符号线被赋了别的值,例如(符号线=均线+10点),那么符号水平坐标不变,垂直坐标将是均线上方的10点位置。 源码如下:

//====================================================== #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Yellow extern int 均线=10; double mk[]; double temp0,temp1; int init() {

IndicatorBuffers(1); SetIndexBuffer(0,mk);

SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,204); IndicatorDigits(Digits); return(0); } int start() { int limit;

int counted_bars=IndicatorCounted(); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars-均线; for(int i=0; i

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; } return(0);

联系合同范文客服:xxxxx#qq.com(#替换为@)