MT4己带EA(MA)源码松析

来源:原创作者:编辑:locoy2019-07-06 23:23

  壹、均线穿越买进卖体系EA详松

  MT4平台己带了壹个己触动买进卖的EA目的,那坚硬是Moving Average ,下面我们详细说皓该体系每条语句子的干用说皓,以便深募化观点EA的编程内核。我想对初学者拥有壹定的僚佐。

  //+------------------------------------------------------------------+

  //| Moving Average.mq4 |

  //| Copyright ?2005, MetaQuotes Software Corp. |

  //| //+------------------------------------------------------------------+

  #define MAGICMA 20050610

  //定义本EA操干的订单的独壹标注识号码,由此却以实当今相畅通账户上多体系操干,各操干EA的订单标注识码不一,就不会彼此误操干。凡EA皆不成缺乏,什分什分要紧!

  extern double Lots =0.1; //每单的买进卖量

  extern double MaximumRisk =0.02;//本体系最泠风险系数,即却以触动用尽资产的2%

  extern double DecreaseFactor =3; //下跌要斋个数

  extern double MovingPeriod =12; //均线的计算周期=12根K线;

  extern double MovingShift =6; //均线在K线图中向右的偏移量=6根K线;

  //extern 决定从外面部以次输入的变量, 会直接露即兴输入数据窗口。数列本身不能干为外面部变量。

  剩意:iMA中的MovingShift(均线偏移量)是指均线目的在图上绘制时向左、右移触动的K线个数,首要为了使图中结实更美不清雅,并不会对MA的计算数值产生变募化。就中,该参数为正时,代表向右移触动;为负值,则代表向左移触动。

  //+------------------------------------------------------------------+

  //| Calculate open positions

  己定义函数(前往-整顿数型数据) 仓单查询与统计 |

  //+------------------------------------------------------------------+

  int CalculateCurrentOrders(string symbol)//函数干用,计算以后持仓单的数

  {

  int buys=0,sells=0;

  //定义两个片断变量,整顿数型,buys——多副数,sells——空副数,用于订单的统计

  //----

  for(int i=0;i

  //计次循环(i=0到订副数量,i=i+1)-循环检测以后的订单队列

  {

  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

  //假设 没拥有拥有本体系买进卖的仓单典型,则跳出产循环

  if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)

  //假设 仓单钱币对是以后钱币对 且 仓单编号是本体系编号 时

  (判佩此雕刻个订单是不是以后EA操干的,备止EA误操干其他以次把持的持仓单)