这个概念对编程来说是个很重要的定义,这三个东西每个都是不可替代的。
定义上区别
大白话描述的话就是:
EA:最重要的就是可以下单,平仓,修改订单之类的,相当于一个工程啊这样的一个存在。
指标:在K线图上,画一些有提示作用的一些线,图啊之类的,提示下单的人这个地方发生了什么,起到提示作用,报警功能。
脚本:半自动化交易非常重要的东西,只执行一次,可以帮助操盘手达到快速下单的目的。(当然也可以干别的啦,可以在界面上设置快捷键,比较方便)
基本框架函数
EA编写:init()、deinit()、start()
脚本编写:start()
指标编写:init()、deinit()、start()
预定义函数init()、deinit()、start()详解:
init():开始运行时的初始化操作。可以用这个函数在开始自定义指标或者自动交易之前做初始化操作。如果这个函数不可用,初始化时就不会调用任何函数。
deinit():停止运行时的操作。比如关掉窗口的时候。执行与init()函数相反的操作,deinit()函数往往用来做“清理善后”的工作,例如,创建对象时开辟了一片内存空间,退出模块前需要释放。如果用户没有编写该函数,它也不会执行任何操作
start():是主函数。K线每波动一次都会执行一次(不包括脚本)。对于自定义指标,在指标添加到图表之后,或在客户端开始运行之时,也可在收到下一跳数据之后,该函数被调用。对于脚本,在脚本被添加到图表之后立即执行并初始化。如果模块中根本不存在start()函数,模块(智能交易,脚本或自定义指标)就不能执行。
说明:
- 预定义函数可以带参数。不过当客户端调用这些函数时,不能从外部向它传递参数,只能采用默认值。start(),init(),deinit()函数可以从模块的任何一点按照常规函数规则调用,等同于其他函数。
- 不推荐从init()函数调用start()函数或是执行交易操作。对于图表数据,市价等,在模块初始化期间,数据可能残缺不全,这时,init()和deinit()函数必须尽快地完成任务。在调用start()函数之前,千万不要开始尝试交易操作。
创建流程
具体的创建流程以及参数说明 在交易系统菜单栏里面查看:
帮助->帮助主题(直接按F1进入也是可以的)
可以参考下下边的图片,找到相应的位置,具体看下创建流程就OK啦。(客户指示器就是自定义指标)
一定要好好利用官方提供的文档。MT4的使用里面大部分都有啦。
开发文档使用
开发文档也是有的,不过是英文版。编程过程中可以将鼠标的光标放到有疑问的函数上
然后按F1可以看对应的函数说明,会自动定位到光标所在的函数哦。
也可以在MetaEditor的菜单栏:
帮助->MQL4帮助
也可以利用索引工具搜索自己想要搜索的函数。比如开发中遇到问题调试的时候可以用索引搜索错误码
OK,说完。感谢观看