《用MQL4编程》读书笔记(4)- MQL4的程序结构
来源:互联网 发布:docker添加端口 编辑:程序博客网 时间:2024/04/28 21:28
MQL4的程序结构
•程序结构
MQL4 程序由以下几大部分组成:
- 头部
- 特别函数 init()
- 特别函数 start()
- 特别函数 deinit()
- 外建函数(用户自定义函数)
代码执行顺序
在主窗(货币对K线窗)中开启程序,最先执行的是头部代码。
接着执行特别函数 init(),并且只执行这一次。
程序的主要操作,是运行特别函数 start()。
start() 完成操作任务后,把控制交还MT4。在新的报价(tick)到来时,MT4再次把控制交给 start(),由其运行。
启动后的程序,可以这样循环运行几个星期至几个月。
如果汇客把在主窗中的程序移除,MT4会一次性执行特别函数 deinit()。 这对于正确终止操盘手的操作,是必要的。
•特别函数 init(), start() 和deinit()
它们是由MT4内部调用的,程序中没有对其调用的语句。
函数 init()
操盘手的init() 调用执行,是在MT4启动并装入历史数据之后;或者,更换货币对之后;或者,更换K线图时间周期之后;或者,程序重新编译之后;或者,改变操盘手设置参数之后;以及,变更用户帐号之后。
脚本的 init() 调用执行,是在脚本置入主窗口之际。
外建指标 的init() 调用执行,是在MT4启动之后;或者,更换货币对之后;或者,更换K线图时间周期之后;或者,程序重新编译之后;或者,改变外建函数设置参数之后。
函数 start()操盘手的start() 调用执行,是在新报价(tick)到来之际。如果在start()执行时,有新报价到来,则其被忽略,不予处理。
脚本的 start() 一次性调用执行,是在脚本由init()初始化之后。
外建指标的 start() 调用执行,是在其被置入主窗之后,新报价到来之际;或者,改变了主窗大小;或者,更换币种、更换K线图时间周期之后。
函数 deinit()
可译为“善后函数”,处理程序结束时的事务。系统调用它的原因是:MT4关闭、主窗关闭、更换货币对、改变K线周期、程序重新编译、改变输入参数、改变用户帐号等。
操盘手和脚本结束时引起的deinit()执行,发生在新的同类程序置入主窗,替换前者时。外建函数, 在新指标加入主窗时,并不引起的deinit() 的执行。
函数deinit()执行限于2.5秒内完成。若超时则被系统强行终止。
•程序的运行
一些基本常识,不译了。
• 几个例子
十分浅显的程序例子,给无编程经验的看的,不译了。
- 《用MQL4编程》读书笔记(4)- MQL4的程序结构
- 《用MQL4编程》读书笔记(2)- MQL4基本知识
- 《用MQL4编程》读书笔记(1)
- 《用MQL4编程》读书笔记(6)- 变量
- 《用MQL4编程》读书笔记(3)- 专用编辑器MetaEditor
- 《用MQL4编程》读书笔记(5)- 运算操作
- 《MQL4实用编程》读书笔记(1)
- MQL4
- 《MQL4实用编程》读书笔记(4) - 交易操作的编程:平仓和销仓(撤单)
- 《MQL4实用编程》读书笔记(5) - 交易操作的编程:修改定单(改仓)
- MQL4编程学习笔记(一)
- MQL4编程学习笔记(二)
- mql4 编程框架
- 《MQL4实用编程》读书笔记(2) - 交易操作的编程:基本交易知识
- 《MQL4实用编程》读书笔记(3) - 交易操作的编程:建仓和挂单
- 《MQL4实用编程》读书笔记(6) - 简单编程:使用技术指标
- 《MQL4实用编程》读书笔记(7) - 简单编程:简易“操盘手”
- MetaQuotes Language 4 (MQL4)
- Kafka分布式环境搭建
- Kafka实现细节(上)
- Kafka实现细节(下)
- KAFKA分布式消息系统
- Kafka部署与代码实例
- 《用MQL4编程》读书笔记(4)- MQL4的程序结构
- Catalan 数
- C++各大有名库的介绍
- c#操作sql中存取图片image
- C#操作图片读取和存储SQLserver
- Maven Download Source in Eclipse
- asp.net(c#)实现从sqlserver存取二进制图片
- 简单的linux命令行大全:
- 学会安排时间