MQL5备忘(2016-8-28)
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。
MQL5备忘(2016-8-28)的更多相关文章
- JVM内存知识备忘
又是一篇备忘... 主要记录一些知识,进行一些资源的汇总. 先来群里liufor大大提供的两张图,清晰易懂: Dockerized Java https://www.youtube.com/watch ...
- Cheat (tldr, bropages) - Unix命令用法备忘单
cheat 是一个Unix命令行小工具,用来查询一些常用命令的惯用法(我们都知道,man page阅读起来太累了,常常是跳到最后去看 examples,但并不是所有man pages里面都有examp ...
- Nmap备忘单:从探索到漏洞利用(Part 4)
这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下 ...
- CSS系列:less备忘
less备忘 //这是一个运行在koala中的less文件,//注释不会被编译到css文件中,/**/注释会 ****************by 李可 2016/04/19 /*所有,所有伪类*/ ...
- Python中利用函数装饰器实现备忘功能
Python中利用函数装饰器实现备忘功能 这篇文章主要介绍了Python中利用函数装饰器实现备忘功能,同时还降到了利用装饰器来检查函数的递归.确保参数传递的正确,需要的朋友可以参考下 " ...
- linux 指令备忘
linux 指令备忘 1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件 -A 通-a,但不列出"."和"..& ...
- 个人 WPF+EF(DBFirst) 简单应用开发习惯及EF学习测试(备忘) -- 2
接上篇:个人 WPF+EF(DBFirst) 简单应用开发习惯及EF学习测试(备忘) -- 1 Step1 在主程序中设置连接数据库 从Model类库的 App.Config 把数据库字符串拷贝出来, ...
- metasploit 常用命令备忘
metasploit 常用命令备忘 MSFconsole Commands-------------------------------------24show exploits 查看所有exp ...
- CentOS6.4 X86_64 kvm+PXE备忘
Install 安装 1 2 3 4 5 # yum install qemu-kvm qemu-img # 使用kvm至少要安装的包,一个提供用户级别kvm模拟器,一个提供磁盘镜像的管理 # 安装虚 ...
随机推荐
- Activiti6.0教程 28张表解析 (三)
使用Activit的朋友都知道Activiti对应的有28张表,今天我们就来说下Activit中28张表对应的含义是什么? 如何创建表? 在Activiti中创建表有三种方式,我们依次来看下: 一.通 ...
- 第四章vs2107 代码实际运用-后台权限管理讲解 创建角色
先看一下项目整体结构图: 实体类和数据操作都在前面用TT模板批量生产了.下面开始介绍权限代码这块的逻辑. 创建角色开始. 1. 角色的创建我们用到三张表 A.menuinfo(菜单表) role(角 ...
- 【杂谈】小记一个ios11的bug
前段时间,除了apple发布了新的硬件之外,同步还发布了新的操作系统,IOS11,当大家都将注意力聚焦在那个奇怪的刘海该如何适配的时候,笔者的项目在适配IOS11却出现了其他的问题. 众所周知,IOS ...
- [POI2007]洪水pow
Description AKD市处在一个四面环山的谷地里.最近一场大暴雨引发了洪水,AKD市全被水淹没了.Blue Mary,AKD市的市长,召集了他的所有顾问(包括你)参加一个紧急会议.经过细致的商 ...
- XmlPullParser接口详述
带*的是非常重要的函数.点击有说明.setInputgetDepthisWhitespacegetTextisEmptyElementTaggetAttributeCountgetAttributeV ...
- ORACLE数据库的备份分为物理备份和逻辑备份两种。
物理备份是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带.可以使用 Oracle 的恢复管理器(Recovery Manager,RMAN)或操作系统命令进行数据库的物 ...
- visual studio 2015 key vs2015密钥
Visual Studio Professional 2015简体中文版(专业版)KEY:HMGNV-WCYXV-X7G9W-YCX63-B98R2Visual Studio Enterprise 2 ...
- Rxjava2的学习与总结
博客地址:https://luhaoaimama1.github.io/2017/07/31/rxjava/
- LoadRunner 11中Record无法自动生成脚本——解决办法
[问题描述] 安装loadRunner 11, 使用IE为默认浏览器,打开一个页面进行脚本录制:录制完成后,无法生成脚本. [问题现象] 控制台输出如下: ****** Start Log Messa ...
- Java集合框架源码(四)——Vector
第1部分 Vector介绍 Vector简介 Vector 是矢量队列,它是JDK1.0版本添加的类.继承于AbstractList,实现了List, RandomAccess, Cloneable这 ...