文章目录:
什么是外汇EA?
关于什么是外汇EA?
外汇EA,是指外汇智能交易系统的简称(Expert Advisor)。外汇EA是一套用于MT4平台(Metatrader4)的程序化交易系统,可以自动完成外汇交易的目标操作,无需任何人工的干预,无人工情绪干扰交易,。所以说一套好的外汇EA,就是一款自动赚钱机器。
外汇EA可以在MT4平台上进行开发,采用的语言是MQ4语言。一套EA是一个完整的交易程序,程序通过实时获取市场价格,自动判断下单与平仓时机,由电脑模拟交易员的下单操作进行机器交易,根据预先编辑好的交易策略程序来执行交易订单。
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号码
python开发EA外汇交易怎么开发
1.首先,你要有一个EA,必须要有以ex4为扩展名的,如果只有mq4文件的话,就要用MetaTrader自带的编辑器MetaEditor打开,将mq4通过编译(compile)并且要不出现错误,才能在原存放mq4的文件夹下面得到一个同名的ex4文件。
2.将这个ex4文件复制到MetaTrader 4所在的文件夹下面的experts文件夹下,比如:D:\Program Files\ACTC MetaTrader 4\experts,关闭并重新打开MetaTrader 4。
3.在“导航”下面的“智能交易系统”下面右键点击你想要使用的EA。
拓展资料:
1、 对于想要在 mt5+python 发展 ea 的交易者,最大会立即遇到的困难是,mt5 现在还没有提供 python 可以调用 mt5 backtest 的接口,也就是在 python 上开发 ea 是无法在 mt5 上作复盘测试的,只能另外再找 python 的第三方 backtest 库再多写接口来达成。 复盘不是只有验证策略的有效性,也扮演调试策略参数的重要工作,所以复盘对于开发 ea 是相当重要的环节。
2、另外在执行速度上,mt5+python ea 的速度自然是无法和纯在 mt5 开发的 ea 相比,这个是实际执行压力测试后得到的结论。因为 mt5+python ea 在调用当前价格和 K 线数据作为信号计算,和调用交易记录,需要透过 mt5 python 官方库与 mt5 建立在本地的一个加密的 socket 连接来作,读写速度自然是比不过 mt5 ea 直接从 mt5 内存读取行情数据和订单信息。虽然 python 是脚本编程语言,与其他编译型的编程语言程序比自然是不快,但是对于 ea 的应用,这样的慢是不太感受的到,可以直接感受到与相同 mt5 ea 的慢,主要是慢在与 mt5 间的大量数据传送和 io 读写差异上,尤其是连续调用行情数据比较多时,这样的速度差异就相当明显了。
3、这还是有优化方式的,可以仿 mql5 指标对于初始和后续的行情读取,采取精简量的读取方式。 既然有这些缺点,在 mt5 开发 python ea 还是在有些领域有不可替代的优点,所以 metaquotes 才会在 2020 年最终还是把 python 接口和函数库提供出来。因为现在许多衍生性交易平台都已经具备了 python api,而经过这些年,python 已经成为量化交易程序最有人气的编程语言,这也让许多交易团队在建构量化交易的环境,会优先考虑 python。 另外在人工智能的量化交易,python 的机器学习和统计数组处理的第三方库大概是最丰富的编程语言。对于交易策略里有用到 tensorflow 这类机器学习库,使用 python 来开发自动交易程序是最佳的选择。 mt5 或是 mt4 ea 受限于当时 metaquotes 自定的限制,只能作单线程运行,当同时触发事件函数如 OnTimer OnTick OnChartEvent,mt5 底层会作互斥锁限制一个线程运行。
操作环境: 浏览器 电脑端:macbookpro mos14打开goole版本 92.0.4515.131
自己编写的ea如何同步至mql5虚拟主机?
目前是行不同的,MT4和MT5是不同语言编译出来的,所以是不互通的,需要另外编译才行。所以你是执行不了的。
metaquotes 自定的限制,只能作单线程运行,当同时触发事件函数如 OnTimer OnTick OnChartEvent,mt5 底层会作互斥锁限制一个线程运行。操作环境: 浏览器 电脑端:macboo