MQL4基本知识
Tick 是在某一时刻到来的、针对某一货币对的、市场新的报价事件。Ticks 是从远处服务器传到本机客户端的。
Control 控制是指程序内部的代码流程,及其与客户端宿主平台MT4的交互。
- 常量与变量
A = 7; B = A + 3;
例如,A和B是变量,7和3是常量。
- 数据结构
MQL4的数据结构如下:
•int 与C语言的用法相同
•double 与C语言的用法相同
•bool 与C语言的用法相同
•string 不是C语言的字符数组,只能用双引号,如:string text = "Upper Line\nLower Line";(其中,\n 是换行符)
•color 色彩,例如:
color Paint_1 = C'128,128,128'; // 深灰 color Colo = C'0x00,0x00,0xFF'; // 蓝 color BMP_4 = C'0xFF,0x33,0x00' // 红 color K_12 = 0xFF3300; // 红 color N_3 = 0x008000; // 绿 color Color = 16777215; // 白 color Alfa = 32768; // 绿 color A = Red; // 红 color B = Yellow; // 黄 color Colorit = Black; // 黑 color B_21 = White; // 白
•datetime 日期时间,例如:
datetime Alfa = D'2004.01.01 00:00'; // 新年 datetime Tim = D'01.01.2004'; // 新年 datetime Tims = D'2005.05.12 16:30:45'; // 2005年5月12日下午4时30分45秒 datetime N_3 = D'12.05.2005 16:30:45'; // 2005年5月12日下午4时30分45秒 datetime Compile = D''; // 相当于 D'[编译日期] 00:00:00'
- 运算操作与表达式
MQL4这方面的语法,与C语言相同,包括::
•算术运算
•赋值运算
•关系运算
•逻辑运算
•位操作
•逗号运算符
•函数调用
- 简单运算与复合运算
简单运算,是指以分号(;)结尾的表达式,如:
Day_Next= TimeDayOfWeek(Mas_Big[n][0]+60); Go_My_Function_ind(); a=3; b = a * x + n; i++; Print(" Day= ",TimeDay(Mas_Big[s][0]), " Hour=",TimeHour(Mas_Big[s][0]), " Minute=",TimeMinute(Mas_Big[s][0]), " Mas_Big[s][0]= ",Mas_Big[s][0], " Mas_Big[s][1]= ",Mas_Big[s][1]);
复合运算,包括 if, for, switch 等结构化语句,均与C语言相同。
- 函数 结构形式、调用方式等,均与C语言相同
- 程序类型
MQL4编写的程序,按用途分为3种类型:
一是“操盘手”。它的英文名称 Expert Advisor (EA) 很难找到恰当的中文表示,我觉得,译成“操盘手”比较有意思。当每次市场报价(tick)到达客户端时,“操盘手”会被调用工作。“操盘手”由用户自行编写,没有系统内建的“操盘手”。
脚本 script 是客户端一次性运行的程序。脚本也是由用户自行编写,没有系统内建的脚本。
外建指标,英文叫 custom indicator,直译成“用户自定义指标”,稍嫌啰嗦。而“外建指标”与“内建指标”相对应,有点意思。 当每次市场报价(tick)到达客户端时,外建指标会被调用工作。它的基本用途,是以预先计算的数据显示线条等图形。不能用它进行交易操作。它有系统自带的技术指标(内建指标)与用户自定义的外建指标两种。
三种程序的不同特点
程序的特点
操盘手
脚本
指标
运行周期
周期较长
一次性运行
周期较长
交易操作
允许
允许
禁止
显示线条
不
不
是
在同一货币对窗口使用数个程序
禁止
禁止
允许
被其他程序调用
禁止
禁止
禁止