编辑: 山南水北 | 2019-07-05 |
5、 附加题:用print(变量)命令显示九九表.提示:程序中需要用到for语句嵌套.此题能回 答正确,说明你具备良好的编程素质.
9 附件:EA 实训课程 想从无到有,到精通 EA 编程技术,是一个循序渐进的过程.您可以参照本章实训课程
第八章 EA 之路 老易 QQ:921795
4 的顺序逐步成长,最终实现自己的目标. 9.1 查看基本信息 9.1.1 课程目标 ? 不同平台、不同货币对的交易规则是不同的;
? ECN 平台上的点差是浮动的;
? 熟悉 MQL4 四种输出信息的方式(comment、print、alart 以及使用自定义函数 iDisplayInfo()) . 9.1.2 实训内容 ? 编写 EA 程序,用comment 命令分行显示 MT4 平台基本信息,包括账户名称、账户余 额、账户可用保证金、账户已用保证金、当前货币对;
账户杠杆、点差、停止水平、隔 夜利息(分买卖) 、1 标准手开仓保证金、一个点价值;
? 使用自定义函数 iDisplayInfo()在主图右上角位置显示当前的 Ask、Bid 报价,要求显示字 符颜色、大小、字体、位置可调;
? 使用自定义函数 iDisplayInfo()在主图左下角位置显示上一个蜡烛的开盘价、收盘价、最 高价、最低价;
? 当前 Ask 价高于上一个蜡烛最高价或者低于上一个最低价时,用Alart 命令弹出报警信 息. ? 编写自定义函数 iAdd(),输入参数为两个 int 类型数字,输出参数为两数相加.在图中 显示 iADD()函数调用结果. 9.1.3 参考资料 iDisplayInfo()是一个自定义函数,用于在屏幕上显示相关信息,由于其位置、大小、颜色、字体可调,被经常使用.
第八章 EA 之路 老易 QQ:921795
5 /* 函数:在屏幕上显示文字标签 输入参数:string LableName 标签名称,如果显示多个文本,名称不能相同 string LableDoc 文本内容 int Corner 文本显示角 int LableX 标签 X 位置坐标 int LableY 标签 Y 位置坐标 int DocSize 文本字号 string DocStyle 文本字体 color DocColor 文本颜色 输出参数:在指定的位置(X,Y)按照指定的字号、字体及颜色显示指定的文本 算法说明: */ void iDisplayInfo(string LableName,string LableDoc,int Corner,int LableX,int LableY,int DocSize,string DocStyle,color DocColor) { ObjectCreate(LableName, OBJ_LABEL, 0, 0, 0);
ObjectSetText(LableName, LableDoc, DocSize, DocStyle,DocColor);
ObjectSet(LableName, OBJPROP_CORNER, Corner);
ObjectSet(LableName, OBJPROP_XDISTANCE, LableX);
ObjectSet(LableName, OBJPROP_YDISTANCE, LableY);
return(0);
} 程序中调用举例说明: iDisplayInfo( Author , 作者:老易 QQ:921795 , 0, 1, 1, 8, Arial , SlateGray);
字符标签名: Author 显示内容:作者:老易 QQ:921795 在右上角显示:0.0 为在左上角显示,1 为在右上角显示,2 为在左下角显示,3 为在 右下角显示 标签横坐标:1 标签纵坐标:1 字符大小:8 字体:Arial 字符颜色:SlateGray iAdd()自定义函数参考代码: int iADD(int a, int b) { Return(a + b);
}
第八章 EA 之路 老易 QQ:921795
6 9.1.4 思考题
1、 按照自己的理解,列表详细说明 MarketInfo()函数中
28 个信息参数(MODE_LOW、 MODE_HIGH 等)含义.
2、 按照自己的理解,列表详细说明 Account 开头的
16 个账户函数(AccountBalance、 AccountCredit 等)的含义.
3、 将已经编制好的 EA 分别加载到 MM 平台和 ECN 平台,对比查看各项市场参数,说出两 者不同之处.
4、 将已经编制好的 EA 分别加载到同一平台不同货币对
图表中,对比查看各项市场参数, 说出两者不同之处.