手机版

MT4编程:如何把指标应用到外汇EA上?

2018-10-13 阅读 :

好指标如何应用到EA上?

 

第一部分:指标

为了能赚钱而不是亏损,无论是专业的交易商还是个体,都在研究各和总结各种种的规律,并做成指标,我们经常会发现一些指标图线看起来很完美,于是都会想到要根据指标的变化进行交易。

但这样做会赚钱吗?

能否赚钱,我们就要看这些指标有没有作弊。即确定指标是否有未来函数的计算,也就是说指标会不会根据现在的K线,计算后将指标在历史K线上标示做更改。比如原来是卖的提示,改为买。(恐怖吧)。(当然还有一些EA特有的环节也会影响盈利问题,在这里不讲)

确定是否有未来函数的方法有两种:

1.白盒校验(即查看源码)

直接看源码中的循环部分,如果有修改历史曲线数组的行为,则可以立刻断定有未来函数。

2.黑盒观察

当没有源码的时候,可以将指标加载到1分钟的图线上,连续不断观察其标示的变化,尤其注意与当前K线状态最接近的历史K线标示的变化。如果随着当前K线的变化出现过历史变化更改,则也可以确定有未来函数

指标EA化之前必须要确认的事情:

如果一个指标含有 未来函数,那么这个指标是没有多大意义的。也就是说,我们要将指标改为EA前,必须确认这个指标是不含未来函数的,这样指标EA化才有意义。

第二部分 指标EA化

接下来将指标EA化大致的做法是:

在EA中通过函数iCustom读取这个指标的当前K线输出值,得出当前的状态,来决定是否入场或者平仓并反向入场。

iCustom的具体用法:

指标一般都是曲线或者箭头两种。在这里我们要把曲线和箭头都看成是数组就容易理解了。

对于指标来说每一条曲线或者箭头都是写在与每个K线对应的数组中的,也就是说一条曲线对应一个数组,一个方向的箭头也是对应一个数组(有箭头的数组值是当时的价格,没箭头地方的数组值是“空”)

 iCustom MT4的帮助里说的是:“计算指定的客户指标并且退回它的值”,即这个函数可以让你获取指定指标的第几个数组对应第几根K线上的计算数值。

具体如下:

double iCustom(string symbol, int timeframe, string name, ..., int mode, int shift)

计算指定的客户指标并且退回它的值。 必须在terminal_directory\experts\indicators目录内编写客户指标(*.EX4文件)。

参量:

symbol          -          计算指标数据上的货币对名称. NULL表示当前货币对.

timeframe          -         时间周期。 可以时间周期列举任意值. 0表示当前图表的时间周期.

name          -          客户指标完整的程序名称

....          -          参量设置(如果需要)。通过的参量和他们的顺序必须与desclaration命令和客户指标的外部可变物的种类对应。

mode          -          索引行。 从0到7并且必须对应以其中一个使用的索引的 SetIndexBuffer 函数.

shift          -          从显示缓冲采取的值的索引(转移相对当前柱特定相当数量期间前).

示例:

double val=iCustom(NULL, 0, "示例Ind",13,1,0);

double va2=iCustom(NULL, 0, "示例Ind",13,0,1);

例如:一个指标,画了两条曲线,则可以用iCustom取得这个指标在第4根K线上对应的第一条曲线的数值。

我们现在已经可以根据自己的想法去获得一个指定指标的任何K线上的状态数值了。那麽下一步我们就要开始EA的概念。

因为EA只针对当前价格状态下的动作进行控制。所以一般而言我们就取指定指标在当前K线下的计算数值用于EA的条件判断。

如果你认为当前K线没有结束,其数值始终在变化,有可能一会有讯号一会没讯号,那麽你可以采用取前一K线的指标数值的方式作为基础。(如果用当前K线指标数值作为条件会有不确定的结果,但如果用前一K线数值做条件则有“错过最佳入场点”的问题。这是需要程序设计者权衡的问题。)

另外的一个问题,就是怎末去判断指标输出的数值与我们肉眼看到的讯号一致起来的问题。

如果参考的指标是一种变色线,则一定是一种颜色一个数组的方式叠加起来显示的。我们在取其数值的时候只需要看看不同颜色的数组的数值比较一下就知道其结果是哪种颜色,并作为EA的条件进行动作就行了。

如果是箭头的方式,则一样是去取其数值,无箭头的K线上指标对应的数值是“空”,有箭头的地方数组对应的数值肯定不是空。用这个来判断是否发生了讯号就行了。

比如双色线,就一定是两个数组分别显示不同颜色,当指标认为应该显示其中一种颜色的时候就将这个颜色对应的数组在当前K线中的数值设成当前价。反之则设为“空”。这样循环一遍后 你肉眼看到的就是变色线了

现在我们可以轻松获得指标的当前讯号状态了!

下一步就是结合进EA中,就是把指标中的数组值拿过来

第三部分 EA 编程逻辑

EA就是一个循环往复的过程。每来一个价格就运行一次。

EA是电脑,并不知道你现在的仓位情况也不知道指标的情况,除了计算什么都不知道,一切都是编程者赋予的。因此,编程者脑子里一定要建立一种综合状态的概念。

EA的一开始一定要先进行仓位的情况检查。大致的逻辑如下:

  

1  先查出持仓情况和持仓单的方向。

2.  然后获得指标的数值。   

3   判断并操作

持仓状态下:根据持仓单的方向进行对应来判断反向讯号是否发生。如果发生则平仓并反向入场。如果没发生则直接返回,等待下一次价格的而到来。

空仓状态下:则两个方向的讯号都做判断,哪边发生了就按那边的方向入场。

4.   其他的的细节

不论入场还是出场都要在发出动作后马上判断是否正确执行的判断。如果没有执行成功则一定要立刻放弃后面的操作直接返回。等待下一个价格来的时候在此发出同样的动作。

另外说明的是数据是自动更新的。

本文标题:MT4编程:如何把指标应用到外汇EA上? - MT4平台MQL4编程学习
本文地址:http://www.waihuibang.com/fxschool/autotrading/mql4/67620.html

相关文章

  • 经典外汇马丁EA研究分析:依兰 Ilan-TrioKS EA
    经典外汇马丁EA研究分析:依兰 Ilan-TrioKS EA

    依兰 Ilan-TrioKS 在网上有源码流传快要十年了,也是网上经典马丁EA之一。EA 本身的界面看起来就是专业的美工设计。源码因为多次修改而有三个并存模块,代码行数近三千行。用 EURUSD M5 随便复盘测试过去三四个月,可以看...

    2018-10-13 MQL4编程学习
  • MT4 EA寻找最优参数的方法教程
    MT4 EA寻找最优参数的方法教程

    很多人在用EA进行历史回测的过程中,发现并不理想和预期的有很大的差别,想要对EA部分参数进行优化,例如我们优化加仓距离点数,设置150点测试一遍,然后设置200点测试一遍,两次结果对比找出最好的加仓距离点数,如果是一个参数进...

    2018-10-13 MQL4编程学习
  • 在MT4软件EA测试过程中,如何获得99.9%的数据质量,提高EA测试的准确性
    在MT4软件EA测试过程中,如何获得99.9%的数据质量,提高EA测试的准确性

    很多人都知道在进行EA测试的时候,通过MT4历史数据中心下载的数据质量只有90%,并且只有1分钟的高开低收4个报价,1分钟之内的tick数据时没有的,对EA的测试是不准确的。因此今天给大家介绍一下,如何通过第三方软件获得质量为9...

    2018-10-13 MQL4编程学习
  • 为什么外汇EA运行必须使用VPS
    为什么外汇EA运行必须使用VPS

    ★什么是外汇EA?外汇EA即外汇全自动交易系统,外汇EA是在MT4平台上进行开发,采用的语言是MQ4语言,一套EA是一个完整的交易程序,程序通过实时获取市场价格,自动判断下单与平仓时机,由电脑模拟交易员的下单操作进行机器交易,根据...

    2018-10-13 MQL4编程学习
  • 适合外汇EA交易使用的高性价比稳定VPS推荐
    适合外汇EA交易使用的高性价比稳定VPS推荐

    目前外汇交易者使用最多的外汇EA交易系统大部分都是基于MT4平台开发的。虽然有一些外汇平台公司提供免费的外汇VPS使用,但是都要求在他们的公司开户并且有金额较高的入金,也就是说,大客户免费,小客户免谈。这时候,对于大部...

    2018-10-13 MQL4编程学习
  • 最详尽的Windows版外汇VPS挂EA使用指南
    最详尽的Windows版外汇VPS挂EA使用指南

    VPS 使用指南这些指示中可查看以下各项: 连接至远程桌面 安装“专家顾问” 修改 VPS 密码 维护账户安全连接至远程桌面要连接至 VPS 主机,您需要进行以下步骤: “开始”-“所有程序”-“附件”-“远程桌面连接”。...

    2018-10-13 MQL4编程学习
  • 外汇交易VPS使用步骤
    外汇交易VPS使用步骤

    VPS(Virtual Private Server 虚拟专用服务器)技术,将一部服务器分割成多个虚拟专享服务器的优质服务。 每个VPS都可分配独立公网IP地址、独立操作系统、独立超大空间、独立内存、独立CPU资源、独立执行程序和独立系统配...

    2018-10-13 MQL4编程学习
  • 租服务器 / VPS挂MT4 EA最全面的教程
    租服务器 / VPS挂MT4 EA最全面的教程

    如何让外汇EA 24小时运行? 答案就是:租用独享的服务器或者虚拟专用服务器(VPS)挂外汇EA,从而保证你的EA 24小时不间断稳定运行。 具体要如何租用服务器挂外汇EA呢? 你将会遇到如下问题: 一、那到底租用什么服务器好呢? 二、...

    2018-10-13 MQL4编程学习
  • 外汇VPS 之 外汇EA租用阿里云ECS云服务器注意事项

    在外汇市场,投资者对行情及订单的最新状况的掌控至关重要,但是任何人都不可能一天24小时坐在电脑屏幕前。想象一下,即使你睡着了,电脑关机了,你的订单仍能够持续交易,并不会出现什么丢失。就跟你坐在电脑前一样,一切表现正常...

    2018-10-13 MQL4编程学习
  • VPS对外汇交易有什么用
    VPS对外汇交易有什么用

    VPS的英文全称叫Virtual Private Server,一台物理服务器上创建多个相互隔离的虚拟专用服务器,因为每一个VPS均可独立进行重启并拥有自己的root访问权限、用户、IP地址、内存、过程、文件、应用程序、系统函数库以及配置...

    2018-10-13 MQL4编程学习
你可能感兴趣