本帖最后由 瞬间的光辉 于 2009-10-30 07:37 编辑 {FvFah #[=kQ& 今天我给大家讲解下,我们最常用的两均线"金叉“”死叉“报警指标该怎么编写:
S3%2T 首先我们打开MQL5编辑器:
?3BcjD0
w~6UOA8} 新建一个指标文件:
8C3oi&av/{
~7ZZb*].(
nDraX_sm= 上图中:
aU(.LC 我们确定指标的名字是macross,
ly`
A,dh 给指标定义两个外部参数,也就是均线的周期参数
eB#I-eD longma表示长周期均线的周期参数。
I;'{X_9$a smallma表示短周期均线的周期参数。
D{JjSky 将来指标完成后 可以如果想改均线的周期可以在指标加载的时候修改很方便。
zF`a:dD$d
hYzP6?K" 上图中:我们定义了要在指标上画四样东西:
."ZG0Zg long表示画一条长周期均线,颜色是红色。
J*rYw5QB small表示画一条短周期均线,颜色是黄色。
k( 0; >)<i up表示画向上箭头,颜色是白色。
PoaCnoNS donw表示画向下箭头,颜色是青色。
"yQBHYP 做好以上工作后,我们点"完成"。
129\H<
m D'!JV1Q 下面我们展示下,完成后的效果:
< +*
&V*MNi,4Z 接下来我们来看代码:
j.] ]VA 下面代码为讲解只用,不能直接复制到mql5文件里,会运行出错,后面我会附件附上源代码文件: w ?_8OJ //+------------------------------------------------------------------+
IoOOS5a //| MAcross.mq5 |
G AY?F //|Copyright 2009, MetaQuotes Software Corp. |
b|AjB: G //|
http://www.mql5.com |
1P"7.{ //+------------------------------------------------------------------+
424iFc[ #property copyright "2009, MetaQuotes Software Corp."
~"%'(j_4 #property link "http://www.mql5.com"
<b"^\]l #property version "1.00"
Fq~Zr;A #property indicator_chart_window 画在主图上
Pteti #property indicator_buffers 4 定义4个画线位置
k'%yvlv #property indicator_plots 4 画4条线
@$kO7k0{g //---- plot long
5yt= ~ #property indicator_label1 "long" 这条线的名称
GmNCw5F #property indicator_type1 DRAW_LINE 这条线的类型是线性
\y271}' #property indicator_color1 Red 这条线的颜色
AVLY|79# #property indicator_style1 STYLE_SOLID 这条线是实线
,k_ b-/ #property indicator_width1 1 这条线的宽度是1
xKBi".wA //---- plot small
yz0#0YG7 #property indicator_label2 "small"
.s"Og;g #property indicator_type2 DRAW_LINE
cg^~P-i@* #property indicator_color2 Yellow
%h0BA.r #property indicator_style2 STYLE_SOLID
!W,LG$=/ #property indicator_width2 1
+fM8 //---- plot up
+MHIZI #property indicator_label3 "up"
eu)""l #property indicator_type3 DRAW_ARROW 这里我们要画箭头
j0oto6z~b #property indicator_color3 White
A`~?2LH,~F #property indicator_style3 STYLE_SOLID
W\0u[IV.x #property indicator_width3 1
4gEw}WiP //---- plot down
~x4]p|)</ #property indicator_label4 "down"
IDF0nx] #property indicator_type4 DRAW_ARROW
^h=gaNL #property indicator_color4 MediumBlue
}jce5E #property indicator_style4 STYLE_SOLID
w AdaP9h #property indicator_width4 1
-;8 a* F //--- input parameters
VR_/Vh]@ input int longma=50; 长均线周期(也就是上面图中我们输入的)
I5[@C<b input int smallma=10; 短均线周期(也就是上面图中我们输入的)
gyy}-^`F //--- indicator buffers
`B8`<3k/( double longBuffer[]; (也就是上面图中我们输入的画线是long的时候,这里就会产生一个longBuffer[]数组)
h<'tQGC double smallBuffer[]; 同上
?qHQ#0 @y] double upBuffer[]; 同上
^I6Vz?0Jl double downBuffer[]; 同上
=SW <Vhtb int longma_handle; 这里定义长周期均线的句柄,有了句柄,以后就可以做相关的操作。
HpeU'0u0VK int smallma_handle; 这里定义短周期均线的句柄,有了句柄,以后就可以做相关的操作。
}a UQ#x XMI5j7CL //+------------------------------------------------------------------+
NYxL7 :9 //| Custom indicator initialization function |
0Nk!.gY //+------------------------------------------------------------------+
vkYiO]y int OnInit()
?c_:S]^ {
FKf2Q&2I //--- indicator buffers mapping
G_k_qP^: SetIndexBuffer(0,longBuffer,INDICATOR_DATA);
w&hCt