导航:首页 > 黄金交易 > mql5自定义指标

mql5自定义指标

发布时间:2021-06-23 07:45:32

① mql5 ea是绑定的什么硬件信息

因为MQL5的交易方式改成 两个结构参数的样子,很多童鞋都会晕好久,对没入门的童鞋来说就更难理解了。在这里,我们制作了类似MQL4的交易功能,用自定义函数实现的,只需要拷贝到你的EA里,然后按例子的样子使用就行了

② 求个MT5上用的破趋势线报警指标,谢谢!

可以去“MT5中文网”看看有没有你要的指标!

③ 被mt5搞的头晕了,它现在可以进行股票交易吗,mt5怎样写入程序呢,

MetaTrader 5相比MetaTrader 4 ,交易的可能性更广泛。
首先,MetaTrader 5终端可以使用的金融产品增多了,现在除了外汇期货以外,它还可以应用于股票、期权等金融产品。
其次,MetaTrader 5在功能方面 也越来越强大了,新增的功能有:
■可以有21种时间段来分析行情
■ 内置38种分析指标
■ 内置39种图像对象
■ 4种缩放模式
■ 17种显示指标样式
此外,历史数据不会像mt4那么大容量了,10年的m1数据才占10MB(我记得mt4中要100多MB了。。。);
和MT5编程语言同步的MQL5编程语言,也比和MT4同步的MQL4编程语言有很大不同,具体有:
1、MQL5和C++的不同之处:
没有地址运算
没有goto语句
没有类的多重继承
定义枚举类型时,必须有枚举变量名
结构体和类的构造函数不能有参数
2、历史测试可能是多线程的,可以同时测试多时间周期及多货币对同时交易;
另外提醒一点:MT5并不与MT4相兼容,换句话说就是: MQL4语言编写的MT4指标或者MT4 EA 都不能在MT5环境中运行。
官方网站放出了MT5/MQL5的第一个例子Tetris,具体是在MT5的图表上玩俄罗斯方块,Orz…
从其附带的mql5代码,可以发现很多mql5的新特性,其中比较激动人心的有:
1、直接支持键盘消息的处理。这意味着mt5的ea和指标可以实现更多更复杂的功能了,
2、直接Timer机制,这说明不用像mt4那样等待tick到来start才能执行一次了,可以精确的在某个时间执行某些动作。

④ 如何编写简单的EA 交易和自定义指标

要编写程序(“EA 交易”、“指标”或“脚本”),您可以启动 MetaTrader 5 客户端,从 Tools(工具)菜单选择MetaQuotes Language Editor(MetaQuotes 语言编辑器),或按 F4 键。
在 MetaEditor 5 窗口中,从 File(文件)菜单选择 New(新建),或按 Ctrl+N。
在 MQL5 Wizard(MQL5 向导)窗口中选择您想要创建的程序类型:
接下来您可以指定程序名称、作者信息,以及在启动程序后向用户要求的参数。
随后,系统将创建程序模板(“EA 交易”、“指标”或“脚本”),您可以对其进行编辑或填入代码:
程序就绪后,必须对其进行编译。要编译程序,从 File(文件)菜单选择 Compile(编译),或按 F7 键:
如果程序代码没有错误,系统将创建扩展名为 .ex5 的文件。之后,您可以将此新的“EA 交易”、“指标”或“脚本”附加至 MetaTrader 5 客户端的图表进行执行。
MQL5 程序是一个运算符序列。每个运算符以分号 ";" 结束。为您方便起见,您可以为代码添加注释,注释位于符号 "/*" 和 "*/" 之中,或在代码行末尾的 "//" 后。MQL5 是“面向事件”的编程语言。这表示当特定事件(程序启动或终止、新的报价到来等)发生时,客户端启动用户编写的相应函数(子程序),以执行指定的操作。客户端具有以下预定义事件:
Start 事件在“脚本”运行时发生(仅用于“脚本”)。它将会引起 OnStart 函数的执行。MQL4 对应物 -“脚本”中的 start 函数。
Init 事件在“EA 交易”或“指标”启动时发生。它将会引起 OnInit 函数的执行。MQL4 等价物 - init 函数。
Deinit 事件在“EA 交易”或“指标”终止时发生(例如,从图表分离后、关闭客户端等)。它将会引起OnDeinit 函数的执行。MQL4 等价物 - deinit 函数。
NewTick 事件在当前金融工具有新的报价到来时发生(仅用于“EA 交易”)。它将会引起 OnTick 函数的执行。MQL4 对应物 -“EA 交易”中的 start 函数。
Calculate 事件在指标启动(在 OnInit 函数执行后)以及当前金融工具有新报价到来时发生(仅用于“指标”)。它将会引起 OnCalculate 函数的执行。MQL4 对应物 -“指标”中的 start 函数。
Trade 事件在订单执行、修改或删除,以及在开仓、持仓修改或平仓时发生(仅用于“EA 交易”)。它将会引起 OnTrade 函数的执行。MQL4 中没有该事件和函数的对应物。
BookEvent 事件在“市场深度”改变时发生(仅用于“EA 交易”)。它将会引起 OnBookEvent 函数的执行。MQL4 中没有该事件和函数以及“市场深度”的对应物。
ChartEvent 事件在用户使用图表时发生:在图表窗口处于焦点状态时点击鼠标和按下按键。该事件也会在创建、移动或删除图形对象等时发生(用于“EA 交易”和“指标”)。它将会引起 OnChartEvent 函数的执行。MQL4 中没有该事件和函数的对应物。
Timer 事件在计时器触发时定期发生,如果计时器已使用 EventSetTimer 函数激活的话。它将会引起OnTimer 函数的执行。MQL4 中没有该事件和函数以及计时器的对应物。
使用变量前,必须指定每个变量的数据类型。相比 MQL4,MQL 5 支持更多的数据类型:
bool 用于存储逻辑值(true 或 false)。该数据类型占用 1 字节内存。
char 用于存储从 -128 到 127 的整数值。该数据类型占用 1 字节内存。
uchar 用于存储从 0 到 255 的无符号整数值。该数据类型占用 1 字节内存。
short 用于存储从 -32,768 到 32,767 的整数值。该数据类型占用 2 字节内存。
ushort 用于存储从 0 到 65,535 的无符号整数值。该数据类型占用 2 字节内存。
int 用于存储从 -2,147,483,648 到 2,147,483,647 的整数值。该数据类型占用 4 字节内存。
uint 用于存储从 0 到 4,294,967,295 的无符号整数值。该数据类型占用 4 字节内存。
long 用于存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数值。该数据类型占用 8 字节内存。
ulong 用于存储从 0 到 18,446,744,073,709,551,615 的无符号整数值。该数据类型占用 8 字节内存。
float 用于存储浮点值。该数据类型占用 4 字节内存。
double 用于存储浮点值,通常为价格数据。该数据类型占用 8 字节内存。
datetime 用于存储日期和时间值,它是从 01.01.1970 00:00:00 开始流逝的秒数。该数据类型占用 8 字节内存。
color 用于存储颜色信息,它包含三种颜色分量的特性 - 红色、绿色和蓝色。该数据类型占用 4 字节内存。
enum 代表枚举。它允许指定某种限制类型的数据集。该数据类型占用 4 字节内存。
string 用于存储文本字符串。它的内部表示为 8 字节结构,包括含字符串的缓冲区大小以及指向该缓冲区的指针。

选择合适的数据类型对于获得最佳性能及合理的内存使用十分必要。在 MQL5 中有个称之为结构的新概念。结构将逻辑相关的数据结合在一起。

⑤ MQL5学习手记:EA基本交易功能-自定义函数集合

因为MQL5的交易方式改成 两个结构参数的样子,很多童鞋都会晕好久,对没入门的童鞋来说就更难理解了。在这里,我们制作了类似MQL4的交易功能,用自定义函数实现的,只需要拷贝到你的EA里,然后按例子的样子使用就行了。前提:以下自定义函数都需要用到几个公共的结构,所以先要把下面的公共定义部分拷贝在程序的头部。然后在拷贝后面的自定义指标。程序头部的交易结构定义:自定义函数一:市价单入场函数调用举例:按市场价卖出当前货币0.1手,无止损止盈。 PositionOpen(ORDER_TYPE_SELL,0.1,0,0,10,MagicHere,"Test");自定义函数二:按市价平仓当前货币持仓单调用举例:按市价单平仓 滑点可接受5点内 PositionClose(Symbol(),5);自定义函数三:修改当前货币持仓单的止盈止损调用举例:设置新的止盈止损 PositionModify(Symbol(),NewStop,NewTarget);自定义指标四:当前货币持仓单的手数总和自定义指标五:发出当前货币的挂单自定义指标六:修改当前指定Ticket的挂单的止盈止损数值自定义指标七:删除当前指定Ticket的挂单自定义指标八:获得当前最新入场的挂单的Ticket号码

⑥ 想在金道贵金属平台投资,我之前交易用的是MT4平台,听说他们的MT5平台 不错,有什么特点吗

这个平台支持国际多种金融业务的交易,认可度是很高的,它具有以下提点: (1) 快捷的执行速度和杰出的工作表现 (2) 大量技术分析工具:39种划图工具,38个内置指标,21个时间周期,4种缩放模式,17种自定义指标模式。 (3) 除了外汇、贵金属外,还可以交易美指、原油等差价合约。 (4) 多种定单方式,包括市价单,挂单,止损单/止赢单。 (5) 先进而易懂的MQL5编程语言,自主编写EA和自定义指标。 (6) 增强了基本面分析方法,包括定期经济数据和财经新闻的发布。 MT5 支持在Android和IPhone移动设备上使用。

⑦ 外汇EA的EA的开发

外汇EA在MT4平台上进行开发,采用MQL4语言编写交易策略,EA的文件形式回是mq4文件或ex4文件,其中答mq4文件是源码文件。 这种语言可以创建你自己的智能交易,使自己的交易策略能够完全自动地执行。而且,MQL4 还能自定义客户指标,脚本和数据库。内包含了大量可以分析当前及历史报价所必须的函数,以及一些基本的运算和逻辑操作。并内置了一些基本的指标和操作命令。
打开MT4软件的MetaEditor编辑器,选择新建-智能交易系统,就可以开始开发自己的EA了。MQL4语言的基本语法类似于C语言,MetaEditor内含详细的帮助文件,可以帮助开发者正确地使用各种交易函数和操作指令。开发完成后需要进行编译和历史回测,并对EA的参数设置等进行不断优化,对EA的风险进行准确的评估之后再用于实盘账户运行。

⑧ 新版编译器OnCalculate我这样编写,理解,对吗

OnCalculate

OnCalculate()函数只在自定义指标中调用,通过Calculate计算指标值是必须的。通常在接到指标计算的交易品种新订单号时发生。这个指标不需要附在交易品种的价格图表上。

OnCalculate() 函数有个返回值int。有两个可能定义。一个指标中不可以有两个函数版本。

一种是用于单数据缓冲中计算的指标。例如,自定义移动平均数指标。

int OnCalculate (const int rates_total, // 价格[] 数组的大小
const int prev_calculated, // 前一次调用处理的柱
const int begin, // 有效数据起始位置
const double& price[] // 计算的数组
);
价格[]数组中,可以传送时间序列和计算的一些指标缓冲。ArrayGetAsSeries()函数确定价格[] 数组索引方向。为了不依赖默认值,需要无条件的调用ArraySetAsSeries()函数用于工作的数组。

价格[]数组中,在“参数”标签启动指标时,选择适当的时间序列或者指标。所以,需要在“应用于”字段的下拉列表中指定必要的项目。

Selecting timeseries to calculate an indicator

从其他mql5程序中接收自定义指标值,要使用iCustom()函数,返回嵌入指标处理程序。可以指定适当的价格[]数组或者另一个指标处理程序。这个参数在自定义指标输入变量列表中最后传送。
示例:

void OnStart()
{
//---
string terminal_path=TerminalInfoString(STATUS_TERMINAL_PATH);
int handle_customMA=iCustom(Symbol(),PERIOD_CURRENT, "Custom Moving Average",13,0, MODE_EMA,PRICE_TYPICAL);
if(handle_customMA>0)
Print("handle_customMA = ",handle_customMA);
else
Print("Cannot open or not EX5 file '"+terminal_path+"\\MQL5\\Indicators\\"+"Custom Moving Average.ex5'");
}
这个示例中,通过的最后参数是PRICE_TYPICAL值(从ENUM_APPLIED_PRICE计数开始),指出自定义指标可以用获得的典型价格建立(高价+低价+平仓)/3。如果没有确定这个参数,指标基于PRICE_CLOSE 值建立,例如每栏平仓价。

另一个示例显示依照指定价格[]数组的最后一个参数传送指标处理程序,由函数iCustom()所描述。

另一种形式意在所有其他指标,计算更多的时间序列。

int OnCalculate (const int rates_total, // 输入时间序列大小
const int prev_calculated, // 前一次调用处理的柱
const datetime& time[], // 时间
const double& open[], // 开盘价
const double& high[], // 最高价
const double& low[], // 最低价
const double& close[], // 收盘价
const long& tick_volume[], // 订单交易量
const long& volume[], // 真实交易量
const int& spread[] // 点差
);
开盘价[],最高价[],最低价[]和收盘价[]参数由当前时间表的开盘价,最高和最低价和收盘价数组组成。时间参数[]包括开盘时间值数组,扩展参数[]有一个数组包括扩展历史记录(如果为交易安全提供扩展)。volume[] 和tick_volume[] 参数分别包括交易和交易量历史记录。

确定时间[]索引方向, 开盘价[], 最高价[], 最低价[], 收盘价[], 交易量[], 交易量[] 和 扩展[],需要调用ArrayGetAsSeries()函数。若不想依赖默认值,需要无条件的调用函数ArraySetAsSeries()用于工作的数组。

首先rates_total 参数包括栏的数量,可用来计算指标,与图表中现存的栏数一致。

需要注意OnCalculate() 返回值和第二输入参数prev_calculated的连接。调用函数时,prev_calculated 参数包括上次调用时OnCalculate() 返回值。这就允许用经济算法计算自定义指标,避免重复计算。

返回rates_total参数值足够了,包括当前调用函数的栏数。如果自从上次调用函数OnCalculate(),价格数据更改了(下载深度历史记录或者填满历史空白期),输入参数prev_calculated 值由终端机设置为零。

注:如果OnCalculate返回零,那么指标值不能显示在客户端的数据窗口。

为更好的理解,启动附加以下代码的指标很有用。

指标示例:
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1
//---- 图的线
#property indicator_label1 "Line"
#property indicator_type1 DRAW_LINE
#property indicator_color1 clrDarkBlue
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- 指标缓冲区
double LineBuffer[];
//+------------------------------------------------------------------+
//| 自定义指标初始化函数 |
//+------------------------------------------------------------------+
int OnInit()
{
//--- 指标缓冲区绘图
SetIndexBuffer(0,LineBuffer,INDICATOR_DATA);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| 自定义指标重复函数 |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime& time[],
const double& open[],
const double& high[],
const double& low[],
const double& close[],
const long& tick_volume[],
const long& volume[],
const int& spread[])
{
//--- 获得当前交易品种和图表周期的有效柱数
int bars=Bars(Symbol(),0);
Print("Bars = ",bars,", rates_total = ",rates_total,", prev_calculated = ",prev_calculated);
Print("time[0] = ",time[0]," time[rates_total-1] = ",time[rates_total-1]);
//--- 为下次调用返回prev_calculated值
return(rates_total);
}
//+------------------------------------------------------------------+

⑨ 如何编写简单的EA 交易和自定义指标

要编写程序,您可以启动 MetaTrader 5 客户端,从 Tools(工具)菜单选择MetaQuotes 语言编辑器,或按 F4 键。在 MetaEditor 5 窗口中,从 File菜单选择 New(新建),或按 Ctrl+N。在 MQL5 Wizard窗口中选择您想要创建的程序类型。

阅读全文

与mql5自定义指标相关的资料

热点内容
政府申请国家贷款 浏览:598
黄金投资收益率 浏览:866
12月6号美元兑人民币 浏览:101
理财r0 浏览:70
600611大众交通股票 浏览:257
欧式看涨期权价格计算 浏览:918
适合90后怎么投资理财 浏览:218
混合型基金涨跌看什么 浏览:628
专利对股票 浏览:125
东方财富手机版怎么看南下资金 浏览:907
小米贷款取现收费吗 浏览:423
南宁信托大厦 浏览:642
明股实债信托 浏览:789
遗产信托基金 浏览:67
安徽和生投资 浏览:823
股指期货对应基金 浏览:89
股票里做t是什么意思 浏览:968
玩股票资金怎么筹 浏览:49
银行贷款日利息怎么算 浏览:211
什么是互联网基金产品 浏览:688