分享

MQL4基础知识学习(系统保留字区分大小写字母,否则EA编辑器不认)

 qilong 2018-01-24

MQL4基础知识学习(系统保留字区分大小写字母,否则EA编辑器不认)

 (
系统保留字:
(每个保留字严格区分大小写,否则MetaEditor不识别!)
(把光标放在 命令上按F1 ,能快速找到此命令的解释!)
1、extern:

Defining extern variables 外部定义变量
外部定义的可变量。在数据类型公布之前指定外部变量。
示例:
extern double InputParameter1 = 1.0;
extern color InputParameter2 = red;
int init()
{
...
}
确定从外部程序输入的变量,会直接显现输入数据窗口。数列本身不能作为外部变量。

2、Controlling compilation (#property )编译控制
每个 MQL4 程序允添加以#property 名称特殊的参量来帮助客户端服务。这是一个内设指标。
#property 识别值
常数类型描述
link string 公司网站的相关连接
copyright string 公司名称
stacksize int 栈式储存器大小
library 资料库;查看任何可出现的功能错误
indicator_chart_window void 在图表窗口显示指标
indicator_separate_window void 在指定窗口显示指标
indicator_buffers int 对于指标计算的数字,最大为 8
indicator_minimum double 在指标窗口下端
indicator_maximum double 在指标窗口的上端
indicator_colorN color  1  8 之间显示线的颜色
indicator_widthN int  1  8 之间显示线的宽度
indicator_styleN int  1  8 之间显示线的风格
indicator_levelN double 在客户指标窗口 1  8 之间 N 的水平
indicator_levelcolor color 水平线颜色
indicator_levelwidth int 水平线宽度
indicator_levelstyle int 水平线风格
show_confirm void 在脚本运行之前显示确认
show_inputs void 在脚本运行之前显示它的属性和确认
示例:
#property link "http://www."
#property copyright "MetaQuotes Software Corp."
#property library
#property stacksize 1024
在执行模板设定

 

3、Special functions 特殊函数
 MQL4 中存在三种预定义名称函数:
init() 在载入时调用,可以用此函数在开始自定义指标或者自动交易之前做初始化操作。
start() 是基本函数。对于智能交易,在下一个替克进入之后被调用。对于客户指标,在指标
添加到图表之后,客户端开始(如果指标添加到图表)并且下一个替克进入之后,函数被调用。
对于脚本,在脚本被添加到图表之后立即执行并初始化。如果在模板中不存在 start()函数,
28
模板 (智能交易,脚本或客户指标) 不能开启。
deinit() 当数据变动时触发,对于自定义指标或者自动交易的编程主要依靠此函数进行
预定义函数需要一些参量。不过,当这些参量被客户端调用时,外部没有参量提供。 start(),
init() deinit()函数从模板的任何一点按照常规调用,等于其他函数。
不建议从 init()函数调用 start()函数或是执行交易业务,作为图表数据,市场开价格。模板
的初始化会出现残缺。这时,init()  deinit() 函数必须尽可能结束运行。在调用 start()
数之前,尝试重新全面开启运行。

 4、Comment 显示信息在走势图左上角
void Comment( ...)
显示信息在走势图左上角 。参量可以使任意类型。通过参量总数不得超过 64
对于警报函数数组不能通过。数组可以作为输出元素。
双重数据类型可以输入到小数点后 4 位。 输入数据使用 DoubleToStr()函数更为精确。
bool 数据, 时间和颜色类型警作为数字类型输入。
bool 数据, 时间和颜色类型警作为数字类型输入。
时间类型值作为数组使用 TimeToStr()函数输入。
参见 Comment()  Print() 函数。
参量:
... - =任意值,如有多个可用逗号分割。最多为 64 个参量。
示例:
double free=AccountFreeMargin();
Comment(" 账 户 自 由 保 证 金 ",DoubleToStr(free,2),"\n","Current time is
",TimeToStr(TimeCurrent()));

 

5、ObjectGet 目标属性
double ObjectGet( string name, int index)
函数返回指定物件的属性。检查错误,查看 GetLastError() 函数。
参见 ObjectSet()函数。
参量:
name - 物件名称。
index - 物件属性索引。它可以是物件属性列举值的任意。
示例:
color oldColor=ObjectGet("hline12", OBJPROP_COLOR);

 

6、point、tick、spread

Point 点值
double Point
返回当前图表的点值
参见 MarketInfo().
示例:
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point);

Tick 替克 - 货币价格的最小单位变化。

最小变动价位
最小变动价位(Tick Size,Minimum Price Fluctuation)是指在期货交易所的公开竞价过程中,对期货合约每计量单位报价的最小变动数值。
例如——
“阴极铜”的最小变动价位是“10元/吨”,即每手该合约最小变动值是“10元/吨x5吨/手=50元”;
“沪深300指数”的最小变动价位是“0.2点”,即每手该合约最小变动值是“0.2点x300元/点=60元”。

spread:买入叫价与卖出叫价的差价,也叫“点差”。为交易商收取的手续费。例如现在需要买入 1 手,那么成交价就是
“卖出叫价”,反之则是“买入叫价”,成交后会与市场价格形成一个差价

7、 Object properties 对象属性
对象值函数同 ObjectGet()  ObjectSet() 功能一起使用。它可能是以下的任意值:
常数 值 类型 描述
OBJPROP_TIME1 0 datetime 日期时间值设置为第一协调时间部分。
OBJPROP_PRICE1 1 double 双重值设置为第一协调价格部分。
OBJPROP_TIME2 2 datetime 日期时间值设置为第二协调时间部分。
OBJPROP_PRICE2 3 double 双重值设置为第二协调价格部分。
OBJPROP_TIME3 4 datetime 日期时间值设置为第三协调时间部分。
OBJPROP_PRICE3 5 double 双重值设置为第三协调价格部分。
OBJPROP_COLOR 6 color 颜色值设置对象颜色。

8、Functions 函数
函数是部分程序的一个名称,它可以在需要时从任何一个部分调用。 它是由定义分类返回
值,名称,形式参量和合成运算符组成并执行的。通过的总数被限定在 64 个字符之内。
示例:
double // 被返回值的类型
linfunc (double x, double a, double b) // 函数名称和参量列表
{
// 合成运算符
return (a + b); // 返回值
}
"返回"运算符可以返回在这个运算符内表达式的值。如果需要,此表达式值可以转换为函数
结果类型。函数没有返回的值必定是“省缺” 类型。
示例:
void errmesg(string s)
{
Print("错误: "+s);
}
通过函数的参量可能存在由特定类型常数指定的默认值。
示例:
int somefunc(double a, double d=0.0001, int n=5, bool b=true, string s="passed string")
{
Print("需求参量 a=",a);
Print("下列参量被传送: d=",d," n=",n," b=",b," s=",s);
return (0);
}
27
如果此默认值指定一个参量,那么所有的参量也必须存在默认值。
错误范例:
int somefunc(double a, double d=0.0001, int n, bool b, string s="passed string")
9、循环操作符 for

OrderSelect
bool OrderSelect( int index, int select, void pool)
函数选择定单。如果函数成功,返回的值为TRUE。如果函数失败,返回的值为FALSE。获得
详细错误信息,请查看GetLastError()函数。
如果定单编号被选定,此pool 参量被认知。此定单编号为唯一识别符。找出所选定单的列
表,它的平仓时间必须进行分析。如果定单卖出时间为零, 开单和挂单将从终端位置列表
打开。可以从定单类型区别开挂单和开单。 如果定单的卖出时间不等于0, 平单和删除定
单是在终端历史中被选择。他们同样可以区分定单类型。
参量:
index - 定单索引。
select - 选定模式。可以为以下的任意值:
164
SELECT_BY_POS
SELECT_BY_TICKET 。
pool - 可选择定单索引。当选择SELECT_BY_POS 参量时使用。可以为以下的任意值:
MODE_TRADES (default)- 来自交易的定单(开单和挂单),
MODE_HISTORY - 来自历史的定单(平仓和取消定单)。
示例:
if(OrderSelect(12470, SELECT_BY_TICKET)==true)
{
Print("定单 #12470 开价格", OrderOpenPrice());
Print("定单 #12470 收盘价格 ", OrderClosePrice());
}
else
Print("OrderSelect 返回的错误 ",GetLastError());

 

 

 

OrderMagicNumber
int OrderMagicNumber( )
返回选定订单的指定编号
注解:定单必须用OrderSelect()函数提前选定。
示例:
if(OrderSelect(10,SELECT_BY_POS)==true)
Print("定单 10 "指定编号, OrderMagicNumber());
else
Print("OrderSelect 返回的 ",GetLastError()错误);

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多