EA编程实训课程 - 图文

发布时间 : 星期六 文章EA编程实训课程 - 图文更新完毕开始阅读

http://www.docin.com/p-241201160.html

EA编程实训课程

第一课:查看基本信息

1.1课程目标:

不同平台、不同货币对的交易规则是不同的 ECN平台上的差点是浮动的

熟悉MQL4四种信息的输出方式:

1、在“屏幕左上角”显示: Comment 2、在智能交易信息栏进行“输出”显示; Print 3、用“信息框”进行显示: Alart

4、用“定位写出”函数进行显示: iDisplayInfo

1.2实训内容:

编写EA程序,用Comment()命令分行显示:

帐户名称、帐户余额、帐户可用保证金、帐户已用保证金、当前货币对; 帐户杠杆、点差、停止水平、隔夜利息(分买卖)、1手保证金、1点价值; 使用Comment函数在主图右上角显示:Ask、Bid价; 要求:显示字符颜色、大小、字体、位置可调。

使用自定义函数iDisplayInfo()在主图右下角显示1根K线的开盘价、最高价、最低价、收盘价。

当前Ask价高于K线的最高价,或低于最低价时,用Alart弹出报警信息框。 编写自定义函数iAdd(),输入两个参数为整数型数字,输出两个参数相加的结果,在图中显示iAdd调用结果。

1.3参考资料:

iDispalyInfo(定位写出)是自定义函数用于在屏幕上显示相关信息,由于其位置、颜色、大小、字体可调而被经常使用。

例:在屏幕上显示标签:

输入参数:标签名称 string LableName 文本内容 string LableDoc

显示位置 int Corner 标签X坐标 int LableX 标签Y坐标 int LableY 文本字号 int DocSize 文本字体 int DocStyle 文本颜色 int DocColor

输出参数:在指定的屏幕位置(X,Y),按照指定的字号、字体、颜色,显示指定的文本。

算法说明:

Void 定位写出(标签名称,文本内容,显示位置,X坐标,Y坐标,字号、字体、颜色) iDisPalyInfo (string LableName,string LableDoc,int Corner,int LabltX,int LableY,int Docsize,int DocStyle,int Doccolor) {

创建对象(标签名称,对象类型,0,0,0) ObjectCreate(LableName,OBJ_Lable,0,0,0)

文本属性(标签名称,文本内容,字号,字体,颜色)

ObjectSetText(LableName,LableDoc,DocSize,DocStyle,DocColor)

对象属性(标签名称,显示位置,位置)

ObjectSet(LableName,OBJPROP_CORNER,Corner)

对象属性(标签名称,X坐标,X)

Opjectset(LableName,OBJPROP_XDISTANCE,LableX)

对象属性(标签名称,Y坐标,Y)

OpjectSet(LableName,OBJPROP_YDISTANCE,LableY)

返回(0) }

程序中调用举例说明:

定位写出(\标注1\当前时间=25\宋体\红色) iDisStyleInfo(\标注1\当前时间=25\宋体\红色)

字符标签名:标注1 显示内容:当前时间=25

显示位置:在右上角 (其中:0-左上角,1-右上角,2-左下角,3-右下角) 标签横坐标X:1 标签纵坐标Y:1 文字大小:8号 字体类型:宋体 文本颜色:红色

自定义函数参考代码: int iADD(int a,int b) {

Return(a+b); }

1.4思考题:

1、按照自己的理解,列表详细说明MarkteInfo()函数中28个信息参数(如MODE_LOW、MODE_HIGH等)含义

2、按照自己的理解,列表详细说明Account开头的16个帐户函数(AccountBalance、AccountCredit等)含义

3、将已经编制好的EA分别加载到MM平台和ECN平台,对比查看各项市场参数,说出两者不同之处。

4、将已经编制好的EA分别加载到同一平台不同货币对图表中,对比查看各项市场参数,说出两者不同之处。

5、详细说明滑点(Spread)及停止水平(StopLevel)在订单操作中的作用。

6、找到帮助文件中的字符颜色部分,复制粘贴颜色列表。

第二课 K线图与时间序列

2.1课程目标:

K线时间是正整数,与一般的时间日期格式不同,需要进行相互转换。 时间参数的转换 K线序列的定义

2.2实训内容:

编写EA,显示在当前K线以及第5根K线的时间参数,传统的时间日期格式,显示图表中的K线总数

在以上基础上加“时间到期”限制,当时间超过2012-11-1时,显示“期限已到” 在上述基础上,添加两个EA的有效工作时段:2:00-8:00,16:00-21:30

4个起止时间采用exturn定义预设。

另写EA,计算并显示第5到第20间15根K线的最高价、最低价,并显示最高价、最低价在K线上的出现位置(K线序号)

2.3参考资料:

帮助文件中关于“时间和日期函数”章节

EA有效工作时间段可以编写一个自定义函数以便调用,这个函数的参数为:开始时间(hh:mm)、结束时间(hh:mm),输出参数为逻辑型(pool),真(true)为有效,假(false)为无效。

2.4思考题:

1、日期时间返回是一个正整数,这个数字是怎么计算的?计量单位是什么?

2、当前时间函数TimeCurrent()返回是哪里的时间?本地计算机时间怎样获取? 3、如何将时间2011.1.1转换成计算机能识别的正整数?

4、在M1图表中仔细观察图表中K线总数,什么时候发生变化?

5、按照自己的理解,详细列表说明帮助文档中关于时间和日期的18个函数的含义。

第三课 开仓与平仓

3.1课程目标:

掌握开仓、平仓命令的使用 学会修改订单的止损、止赢价 学会调用默认、自定义指标 学会在图中标注箭头符号 学会指标两线交叉的应用

3.2实训内容:

编写EA,调用默认指标Moving Average(按照默认参数),当前价高于MA时,在图中标注绿色向上箭头,表示出现“买入”信号;当前价低于MA时,在图中标注红色向下箭头,表示出现“卖出”信号。

在以上基础上,根据信号执行开仓动作,按实时报价开出1张买入(卖出)0.1手订单,并控制好一根K只操作1次(因为1根K线中会产生多次交易信号,这样要求是避免频繁开仓)

在持有订单的前提下,修改订单的止损、止赢价,止损为120点,止赢为100点。 当有持仓单时,且市场出现了与持仓单方向相反的信号,该持仓单平仓。

在以上基础上,修改默认指标为自定义指标中的Moving Average(按照默认参数),调用该自定义指标的数据,发出交易信号。

在上述基础上,增加一个MA指标,平均周期为26,第一个默认周期的13。当MA13上穿

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