6月23
MQL4用了挺久了,今天用MT5回测 发现太好用了。准备好好学mql5,怕自己拖延就每天写个当天学习笔记吧。
## 第一章语言基础
函数
1输出函数
mql5输出后置修饰符发布的函数可以用在其他mql5程序中。这种函数称为可输出函数,编辑后可以从其他程序调用。
int Function() export
{
}
变量
局部变量 形式参数 静态变量 全局变量 输入变量 外部变量
1输入变量
input int MA_Period=13;
input int MA_Shift=0;
input ENUM_MA_METHOD MA_Method=MODE_SMMA;
输入变量除了手动输入还有选择输入
enum dayOfWeek
{
S=0, // 周 日
M=1, // 周 一
T=2, // 周 二
W=3, // 周 三
Th=4, // 周 四
Fr=5, // 周 五 ,
St=6, // 周 六
};
// - - - 输 入 参 量
input dayOfWeek swapday=W;
2外部变量
关键字extern 用来声明变量标识符,作为全局使用期的静态存储标识符。从程序启动,这些变量即存在,其内存会 在程序启动后即时分配和初始化。
变量初始化
下定义时可以初始化任何变量。如果变量没有显性初始化,其值可为任何值。不可使用隐性初始化。 全局和静态变量仅可以通过相关的常量或者常量表达式初始化。全局变量仅可以通过表达式初始化(不是常量)。 全局变量和静态变量初始化仅可以执行一次。局部变量每次调用相关函数都进行初始化。
预处理程序
1常量声明
#define userName "蜂鸟AI"
2属性声明
#define userName "蜂鸟AI"
#property version "3.70"
// EA交 易 的 当 前 版 本
#property description "量化交易学习first"
3包括文件 ( #include)
注意include是在include目录下
#include <Object.mqh>
4输入函数 ( #import)
函数从MQL5编译模板( *. ex5 文件) 和执行系统文件模板( 文件 *. dll) 通过。模板名称被指定在#import指令 中。能够正确形成输入函数的编译器调用和组织适当的参数传送,需要带有完整的函数描述部分。函数描述会立即 按照#import “模板名称”执行。新的#import命令完成引入输入函数描述部分。
#import "file_name"
func1 define;
func2 define;
...
funcN define;
#import
#import "test2.mq5"
void output();
#import
输入函数可以有几个名称。相同名称不同的模块的函数可以同时输入。输入函数名与嵌入函数名一致。范围解析操 作决定需要调用哪个函数。
面对对象
mql4 与mql5一个大的差别就是这里了,mql5自带面对对象设计。
class CPerson { protected: string m_name;
// 名 称
public: void SetName(string n){m_name=n;}
// 设 置 名 称
string GetName(){return (m_name);}
// 返 回 名 称
};