打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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.metaquotes.net"
#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()错误);
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
EA编程教程大全之交易函数
《MQL4实用编程》读书笔记(4)
mt4和mt5调用对照表
MQL4常规函数(一)|MQL4编程参考文档|myEAtrade
MQL4 语言入门。简介
MT4实用函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服