教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

ea简明教程收集以及修改(2)

来源:网络收集 时间:2025-09-22
导读: SetIndexStyle(0,DRAW_LINE,0,1);//定义指标的显示形式。DRAW_LINE标示画线指标。 看下这个内置函数的定义 SetIndexStyle( int index, int type, int style=EMPTY, int width=EMPTY, color clr=CLR_NONE) index:索

SetIndexStyle(0,DRAW_LINE,0,1);//定义指标的显示形式。DRAW_LINE标示画线指标。

看下这个内置函数的定义

SetIndexStyle( int index, int type, int style=EMPTY, int width=EMPTY, color clr=CLR_NONE)

index:索引号。0就是第一个指标线1就是第二个指标线。

type: 指标类型 下面是可选参数都是MT4的标准常量。

DRAW_LINE = 0 画线

DRAW_SECTION = 1 画线段

DRAW_HISTOGRAM = 2 画柱状图

DRAW_ARROW = 3 画箭头符号(需要设置符号代码)

DRAW_ZIGZAG = 4 画锯齿图

DRAW_NONE = 12 不画图

style:指标线型 0~4的选择。也可以不要,默认为0。

mt4只做ea的教程

Width:指标线宽 1~5的选择。也可以不要,默认为1。

clr: 指标颜色 一般用#property indicator_color1 White语句定义。前面定义了所以我们这里没有定义。

SetIndexBuffer(0,Buffer1);//为定义的指标变量数组标记索引号。就是使他们一一对应。

0号索引对应Buffer1[]变量。依此类推

IndicatorShortName("MACD("+Fast+","+Slow+","+Signal+")");//设置指标显示的名称,内容是用+号连接的字符串。 就是当鼠标放在指标上所看到的指标名称。与文件名不相关。

SetIndexLabel(0,"MACD_MAIN");//设置指标的标记。就是当鼠标放在指标线上显示的第三行的名称。

这条语句的意思是0号索引对应的指标变量标记是MACD_MAIN。其他类推。

IndicatorDigits(Digits+2);//定义指标的小数点位数数值是整数。这里Digits是MT4的预定义变量。其值为当前货币兑的小数位。

主函数体

int start()

{

int limit,counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

for(int i=0; i<limit; i++)

{

Buffer1=iMACD(NULL,0,Fast,Slow,Signal,PRICE_CLOSE,MODE_MAIN,i);

Buffer2=iMACD(NULL,0,Fast,Slow,Signal,PRICE_CLOSE,MODE_SIGNAL,i);

Buffer3=Buffer1 - Buffer2;

}

return(0);

}

1、int limit,counted_bars=IndicatorCounted();//定义两个整形变量,并给counted_bars变量负值。

这里面IndicatorCounted()函数是mt4内置函数不需要参数,其返回值为已经计算过的指标数组数量。

如果指标错误则这个函数会返回一个负数。

2、if(counted_bars<0) return(-1); //如果条件成立说明指标调用运行错误。则退出程序。

3、if(counted_bars>0) counted_bars--;//从已经计算的指标中去除最后一条。

这条语句用来修正counted_bars使得已经计算的最后一个数值可以在接下来的运算中重新计算一次。

4、limit=Bars-counted_bars;//计算需要计算的指标数据的柱数。

这里需要说明。在mt4中指标数组的索引和K线的索引标记相同,是从后向前递增的从0开使的整数。

也就是说,最后一条K线的索引是0同时K线所对应的指标索引也是0。

那么倒数第2条的索引标记为1。倒数第三条的索引标记为2。

这一点一定要理解清楚。不然写程序的时候就会发生错误。

语句中的Bars是mt4预定义变量,其值是当前图表中K线的条数。

这里详细说下为什么有个counted_bars--;的语句,这个语句的意思是对变量counted_bars进行自减一操作。

因为主函数是每次价格变动就会运行一次。当运行完成后。IndicatorCounted()值应该等于Bars也就是K线的条数 如果没有上面的自减一操作,那么当价格变动有了新的收盘价但并没有生成新的K线。这时候计算limit的值将=0. 那么下面的for循环体将不会再计算最后一条k线相对应的指标数值。

实际上这个是需要计算的(因为有了新的收盘价)。而有了自减一的操作就可以对最有一个,也就是当前K线对应的指标值进行运算。

(不知道能看明白不自己慢慢捉摸捉摸)。这个自减一是必需的。

mt4只做ea的教程

5、for(int i=0; i<limit; i++) for 循环语句(因为有了前面的自减一操作,这里limit最小等于1)

关于for循环的运行不作解释。各位自己找资料学习。

6、Buffer1[ i ]=iMACD(NULL,0,Fast,Slow,Signal,PRICE_CLOSE,MODE_MAIN,i); //

看下iMACD()这个内置指标函数的定义。

iMACD( string symbol, int timeframe, int fast_ema_period, int slow_ema_period, int signal_period, int

applied_price, int mode, int shift)

symbol: 货币标识。通用指标用NULL常量。

timeframe: 计算所依据的图表时间周期 。0表示依据当前图表周期。

fast_ema_period: 快线周期

slow_ema_period: 慢线周期

signal_period: 信号线周期

applied_price: 计算所用价格模式

mode: 指标索引模式。MACD指标有两条线,因此这个位置有0,1两个选择。也可以用mt4预定义常量。 shift: 索引号

这里Buffer1取macd主线数据。Buffer2取macd信号线数据。

7、Buffer3[ i ]=Buffer1[ i ] - Buffer2[ i ];//计算MACD两条线之间的距离。

8、这里用到了外部变量。也可以叫用户自定义变量。这种变量在加载图表的时候可以修改。

extern int Fast = 10;

extern int Slow = 22;

extern int Signal = 7;

extern 关键字说明后面定义的变量是外部变量。

华丽的分割线2

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

问答题

瞬间的光辉/bull

本帖隐藏的内容需要回复才可以浏览

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

瞬间的光辉questions

感激的没话说呀!牛版晚上12点还回答我的问题,而且回答的那么详细!

牛版的解释我认为是:所有论坛的高手中最无私最热心帮助别人的。

为了让更多的新手快速的入门EA,我决定做牛版帖子的追问者。牛版的帖子非常易懂,一般新手都能看懂70%,还有那30%的疑问,就由我来补问吧!

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

comment参数有什么作用?A:这参数本意是用于记录这个订单的描述信息,程序只能在订单入场的时候设定他。同时系统会在这个订单发生止损 止赢或者拆单的时候自动修改这里的内容。

我一直想寻找一个函数能够返回我下的订单是否已经被止损或止赢了,问了好多人

都是同样的回答:OrdersTotal()<1就说明你下的订单平仓了,换句话说就是被止损或 调用MACD指标函数为Buffer1数组负值。

mt4只做ea的教程

止赢了。但是前提是我只能同时做一单,如果我同时做好几单呢,这怎么判断我下的其中

一单已经止损或止赢了。

今天看了牛版关于comment参数的解释,有了启发:

comment参数 …… 此处隐藏:3571字,全部文档内容请下载后查看。喜欢就下载吧 ……

ea简明教程收集以及修改(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/97647.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)