MQL5备忘

快捷操作:

·Ctrl+Space------The
List Names dropdown

·Ctrl+Shift+Space------Show Parameter Info

整数类型:char、short、int、long

·数据范围char

·uchar、ushort、uint、ulong表示无符号整数,皆无负数

string类型必须加双引号(“ ”)

·若要在string中加入单引号、双引号,必须要在引号前加上反斜杠:(\)---(\”)(\’)

·若要在string中加入反斜杠,必须要用两个反斜杠:\\

·在sting中加入\n表示另起一行

datetime类型若要直接输入时间,需要以D开头、用单引号括起

数组要常用ArrayResize(
)函数,且只有建立动态数组才可以被重新建立大小:

·double A[
]   ; 
 ArrayResize(A,4);

·double B[
][4][3]  ; 
ArrayReseze(B,5);  //多维数组只有第一维才允许设置成动态

·ArrayResize(
)函数重设数组大小,原位置数据保留

函数:

·简洁转换参数类型:double
varA;  void TEST( (int) varA ) ; 
//varA自动转成int类型

·函数中的参数带有默认参数值必须放在最后

·允许重载函数:函数名称相同,但是内部结构不同。

·void test( int & a
) {…}  //变量前的&为引用声明符,表示a与引用的变量同时变化:

int &a=b; a与b同时变化,a=a/2运算也会导致b变化

定义变量前加input,变量会在The Input tab面板显示:

·enum
DayofWeek{Sunday,Monday,…,Saturday};

Input DayofWeek Day = Monday;

·用系统枚举定义更方便:

input ENUM_ORDER_TYPE_FILLING FillType =
ORDER_FILLING_FOK;

static(静态)变量不会被原始的static定义语句重新赋值:

·static int
A=1  ;  A++ 
;  //A只会被static语句定义一次得到1,之后为2、3、4…

除法运算要防止歧义

·double
A=10/3  ;  double
B=10.0/3.0  ; 
//A输出3.0,B输出3.333…

实数运算要常用到NormalizeDouble(double
value , int digits)

条件和循环操作:

·if--- ; if---else--- ;
if---else if---…---else ; while ; do-while ;

·条件运算符:(?  : )

·bool result =
condition语句
? true语句
: false语句
;
//condition判定,执行对应语句

·switch操作:

·switch…case…(default)必须要常数才行,且case/default里常用到break

·case若没有表达句,会强制执行下面的,无论条件:

x=1;swith(x){case
1:  case 2:  case 3: ……
;}  //会执行case3的表达句

·for(int a=1 ; a!=5 ;
a++) {…} //for语句中间判定为true就会执行循环

·for(int a=1,b=2 ;
a<=5 ; a++,b+=2) {…} //不是二维运算,是2个同时算

·break跳出最近的循环;continue结束当前循环,进入下一轮

class类型

·“ .
”表示成员运算符,常用于struct变量、class变量(注意是变量)的成员访问。

·“ ::

”表示域运算符,常用于class类型(注意是类型)的访问,如class类外定义class。

·可以定义构造函数:class A{
public:A (… );…;};// {}中的A与class的一样

·类的继承要用“:”,且要注明继承类型public/protected/private

·类中虚函数(virtual):基类的虚函数可被派生类的同名函数覆盖。若不加virtual,同样也会出现覆盖。

预处理指令:

·#define可直接定义简单函数形式:#define CIRC(Num) 100*Num

·#include
<*.mqh>
表示系统Include目录下*.mqh

·#include “*.mqh”

表示该programe所在目录中的*.mqh

发送OrderSend:

·MqltradeRequest
request={0};

MqltradeResult result={0};

OrderSend(request,result);

//默认赋值{0}

·MqltradeRequest
request;

MqltradeResult result;

ZeroMemory(request); //非常重要

OrderSend(request,result);

OrderSend反馈:

·result.retcode返回代码:TRADE_RETCODE_PLACED(10008) or
TRADE_RETCODE_DONE(10009)表示成功

·判定仓位时可以用到:

do Sleep(100);
while(PositionSelect(_Symbol)==false); //防止编译速度超过执行速度

时间序列、技术指标:

·MqlRates仅用于数组创建,ArraySetAsSeries用于设置序列,CopyRates用于复制数据:

MqlRates bar[]; ArraySetAsSeries(bar, true);
CopyRates(_Symbol, _Period, 0, 100, bar);

·CopyTime、CopyOpen…等也需要先创建对应的数组

·iMA(
)…等返回的是(int) indicator_handle(指标处理器),再通过CopyBuffer赋值到数组:

double ma[ ];
 ArraySetAsSeries(ma, true);

int maHandle = iMA(…);
 CopyBuffer (maHandle, 0, 0, 3, ma);

·iCustom返回默认目录下程序文件指标处理器,同样用CopyBuffer。

最新文章

  1. HTML5游戏源码 飞翔的字母 可自定义内容
  2. SQL Server 事务日志传输
  3. [No000088]并行循环vs普通循环
  4. 【原创】Kakfa message包源代码分析
  5. my_strcmp()
  6. CSS应用内容补充及小实例
  7. jQuery-vsdoc.js文件是vs中的JavaScript intellisense,
  8. Hadoop学习笔记3---安装并运行Hadoop
  9. 第二百七十八天 how can I 坚持
  10. paip.c++ 常用类库attilax总结
  11. (转)iOS7界面设计规范(9) - UI基础 - 动画
  12. 京东商城招聘匹配系统资深工程师 T4级别
  13. ASP.NET Core学习之一 入门简介
  14. 1.5 WEB API 上传文件
  15. python--迭代器(Iterator)
  16. subwoofer
  17. Maven 包含资源文件
  18. Hsqldb中设置主键,并让主键自增
  19. 【c++基础】vector中按照Point类型某一个变量进行排序
  20. kettle的资源库

热门文章

  1. window 下拉取github项目失败 (Permission denied (publickey))
  2. Poj 2112 Optimal Milking (多重匹配+传递闭包+二分)
  3. UVA 10462 Is There A Second Way Left? (次小生成树+kruskal)
  4. bzoj2002 [Hnoi2010]Bounce 弹飞绵羊【分块】
  5. Cunning Gena CodeForces - 417D
  6. 题解报告:hdu 2059 龟兔赛跑
  7. Linux单机环境下HDFS伪分布式集群安装操作步骤v1.0
  8. Latex排版工具的使用(一) 分类: Latex 2014-06-14 22:52 448人阅读 评论(0) 收藏
  9. VMware虚拟机中涉及的3种常见网络模式
  10. 简单工厂模式及php实现