通过快速理解MQL5的变量来深度理解MT5 EA的编写和使用

2019-04-02 阅读 :

  这段时间总会有人问我,外汇EA到底怎么运用,特别是外汇EA的外部参数到底代表什么意思。说实话,仅仅去看变量的名字,你还真没有办法确认外汇EA的外部参数到底是什么意思,因为不同的策略开发人员有相同的定义习惯,假如仅仅从变量名去确认变量的用法,那么很多时候就会出问题。

  那么怎么去确定变量的运用?最直接的方式就是需要找到变量名在函数中的调用的位置,这个才是真正的理解与确定。

  当然,我们这里讲解变量,那就不得不说变量的定义,这里先引用官方的定义吧。

  可变量必须在声明之前使用。可变量必须拥有特殊的辨认名。相关可变量的定义描述会显示。

  基本类型如下:

  ● 字符型,短整型,整型,长整型,无符号字符型,无符号短整型,无字符整型,无符号长整型-整数;

  ● 颜色-代表RGB-颜色的整数;

  ● 日期时间-日期和时间,自1970年1月1日起无符号整数包括秒数;

  ● 布尔数据-布尔值的true和 false;

  ● 双精度数字-带有浮点的双精度数字;

  ● 浮点型-带有浮点的单精度数字;

  ● 字串符数据-特殊字符串。

  其实看了这官方的解释,好像意义不大,除非你有一定的基础,那么我们就举个例子来说明吧。我们这里以MT5自带的一个交易策略MQL5\Experts\Examples\Moving Average 为例来进行讲解。

  我们首先加载Moving Averages.mq5这个交易策略,我们打开导航器,在EA交易里面找到Moving Averages交易策略。

  双击该交易策略,就会出现下面的对话框:

怎么通过快速理解变量 来深度理解EA和运用EA

  我们如果通过编译器打开 Moving Averages.mq5文件,我们可以看到一行一行的源代码,首先我们可以看到下面的变量如下:

  input double MaximumRisk= 0.02; // Maximum Risk in percentage

  input double DecreaseFactor = 3; // Descrease factor

  input int MovingPeriod = 12; // Moving Average period

  input int MovingShift = 6; // Moving Average shift

  如果我们用这几行代码与对话框输入变量来比较,我们很快发现对话框的输入变量却是我们代码定义的变量的就是,也就是“//”后面的解释,这与老版MQL4是完全不一样的。所以,我们如果仅仅通过对话框输入变量来推导外部变量的具体运用,那就会变得极其不可理解。

  那么再回归到源代码,我们发下,凡是在对话框输入的变量前,都会有一个input ,在这里我们可以确认input 代表的外部输入变量,也就是可以通过外部输入来改变的。那么这个外部输入变量,如果我们在调用的过程当中,原始的赋值会不会改变呢?比如说我们MaximumRisk= 0.02;这个值能不能进行在主文件里面进行重新赋值呢?那么我们这里可以通过打印来进行检验。比如:我们可以在主题函数

  void OnTick(void)

  {

  //---

  if(SelectPosition())

  CheckForClose();

  else

  CheckForOpen();

  //---

  }

  里面对MaximumRisk重新赋值看看,赋值如下

 

怎么通过快速理解变量 来深度理解EA和运用EA

  而我们在编译的时候,很快就会发现出现错误,说明这个外部变量已经不能重新赋值了。这个也检验了我们的初始推断,外部输入变量是不能在运行过程当中来再次修改其值的。

  当然,MQL5里面不仅仅有外部输入变量,还会有局部变量,局部变量又会有函数内部的局部变量,而函数内部的局部变量其他函数是不能调用的。

  因次,学习变量,也是你在使用EA之前最基本的内容,无论你会不会编写EA,只要你运用EA,就需要真正的懂得变量的基础知识,你才不会那么盲目。

  在这里我还是要强调一下,EA只是工具,绝不是我们说的圣杯。真正的圣杯,则是EA+正确的运用。

       作者:王广利。

本文标题:通过快速理解MQL5的变量来深度理解MT5 EA的编写和使用 - MT5平台MQL5编程学习
本文地址:http://www.waihuibang.com/fxschool/autotrading/mql5/100046.html

相关文章

  • 外汇EA入场主要使用什么交易策略?

    外汇EA如果进行细分,可以分为无数种,但是其入场策略按行情走势无非是以下三种: 1、突破交易:例如行情突破某一上方阻力位置(历史前高),EA自动识别,启动最多;行情突破某一下方支撑位置(历史前低),EA自动识别,启动最空。2、反弹交易...

    2019-04-02 MQL5编程学习
  • 外汇EA程序化交易系统设计心得体会

    投机就像山岳一般古老。毋庸费言,外汇零售市场的属性,必然会让国内的大多数外汇交易者,以中短期投机的方式居多,长期价值投资的偏少。而作为波动市场的王者,外汇市场给了手工交易和程序化交易最丰富的可能性,此种优势,其他市...

    2019-04-02 MQL5编程学习
  • 程序化交易全方位解读:外汇EA智能交易系统
    程序化交易全方位解读:外汇EA智能交易系统

    MQL4、MQL5编程提供:外汇EA、ea官网、程序化交易、程序自动交易、量化投资、EA自动化交易系统等相关学习文章和资料。一、什么是外汇EA智能交易?外汇EA智能交易是MT4与MT5的Expert Advisor(简称EA)的中文译名...

    2019-04-02 MQL5编程学习
  • EA交易可靠吗?关于智能化自动交易的多方位解读
    EA交易可靠吗?关于智能化自动交易的多方位解读

    关于外汇EA的种种及前因后果先行做个说明,以下尽量避免教科书式的解答。 1、智能交易的定义。但讽刺的是第一个话题就是我在网上搜的标准概念:由程序员借助一门计算机程序设计语言,通过编写程序交易指令、模拟人类交易员的行...

    2019-04-02 MQL5编程学习
  • 有效控制外汇EA亏损和爆仓的方法

    随着越来越多的外汇投资者使用EA交易代替人工交易,对于外汇EA的风险控制了解也变得越来越重要,那么我们使用外汇EA时应该如何有效控制亏损和爆仓呢?...

    2019-04-02 MQL5编程学习
  • 不是EA不行,是你的EA不行

    还记得,几年前我在伦敦工作的时候,在寻找大量外汇EA测试都失败后,我问过我当时的老板Jay一个问题:“是不是市面上不存在稳定盈利的外汇EA?”。然后他给我的回答是“You can’t say EA is not work because your EA is...

    2019-04-02 MQL5编程学习
  • 一文读懂量化投资、算法交易、程序化交易​​​​​​​、高频交易和统计套利
    一文读懂量化投资、算法交易、程序化交易​​​​​​​、高频交易和统计套利

    在央行发布的《中国金融稳定报告(2016)》中,对于高频交易的解释为程序化交易的频率超过一定程度,就成为高频交易。而对程序化交易的解释为程序化交易指依托计算机为技术工具,按照既定程序,高速、大规模自动执行的交易。...

    2019-04-02 MQL5编程学习
  • 通过快速理解MQL5的变量来深度理解MT5 EA的编写和使用
    通过快速理解MQL5的变量来深度理解MT5 EA的编写和使用

    外汇EA到底怎么运用,特别是外汇EA的外部参数到底代表什么意思。说实话,仅仅去看变量的名字,你还真没有办法确认外汇EA的外部参数到底是什么意思,因为不同的策略开发人员有相同的定义习惯,假如仅仅从变量名去确认变量的用法,那么很多时候就会出问题。...

    2019-04-02 MQL5编程学习
  • 外汇市场中最常见的四种外汇算法交易系统

    外汇市场中最常见的四种外汇算法交易系统 ​​​​​​​真正可用于外汇市场中的交易算法只有累积分配算法、达到价格算法、分段订单算法和时间加权平均价格算法四种。...

    2019-04-02 MQL5编程学习
  • 程序化交易、算法交易和高频交易的关联性与区别

    很多投资者不太清楚程序化交易、算法交易、高频交易之间的关系,会对此产生一定的混淆,其实这三者之间是具有一定的关联性,也存在本质上的区别。那么什么是程序化交易、算法交易和高频交易呢?三者之间又有什么差别和联系?1...

    2019-04-02 MQL5编程学习
你可能感兴趣