交易流程分析: 下面的源码是一个基于移动平均线的智能交易系统的代码 ,整个程序非常简洁但EA的功能又非常齐全,实现了完全由电脑自动下单和平仓,整个程序只用了一个START() 函数来实现 ,我们知道所谓电脑自动交易系统,也就是让电脑来模拟交易员的操作进行交易的下单和平仓过程。 我们首先来分析一个外汇交易员手工进行外汇交易的操作过程:其步骤如下: 1.打开外汇交易客户端,选定一种货币对图表; 2。监视该货币对的K线趋势图,俗称盯盘,寻找开仓或者是平仓的时机,即开仓或者是平仓的条件 3。如果条件满足,进行下单开仓(做多或者做空)或者平仓 4。重复第二步,继续盯盘,假定第二步是开仓,就是寻找平仓的条件。 5。如果平仓的条件满足,进行平仓操作,计算盈亏核算。完成一次交易的循环。 6。若继续交易,重复2->3->4->5步 7。若不进行交易,退出外汇客户端。 基于以上的分析,我们已经知道一个完整的智能交易系统(俗称EA)在运行后必须要实现的基本功能,就是上述的人工操作的1-5步。 相关MQL语言知识: 为了实现机器操作,再来看看所需的MQL4语言的相关知识: 1.掌握MQL4语言的基本语法和程序的构成,及运行流程 2。mql4中与交易相关的交易函数: int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, void comment, void magic, void expiration, void arrow_color) 参量: symbol cmd volume - price slippage stoploss takeprofit comment magic expiration arrow_color 平仓函数: bool OrderClose( int ticket, double lots, double price, int slippage, void Color) 对定单进行平仓操作。如果函数成功,返回的值是真实的。如果函数失败,返回的值是假的。获得详细错误信息,请查看GetLastError()函数。 参量: ticket lots price slippage Color 定单修改函数: bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, void arrow_color) 对于先前的开仓或挂单进行特性修改。如果函数成功,返回的值为 TRUE。如果函数失败,返回的值为FALSE。 获得详细的错误信息,查看 GetLastError()函数。 参量: ticket price stoploss takeprofit expiration arrow_color 程序代码分析 //+------------------------------------------------------------------+ //| //| //| //+------------------------------------------------------------------+ #property copyright "Copyright ?2008, lin Ge QQ:806935610" #property link //---- input parameters extern double TakeProfit = 20; extern double StopLoss = 30; extern double Lots = 2; extern double TrailingStop = 50; extern int ShortEma = 5; extern int LongEma = 60; //+------------------------------------------------------------------+ //| expert initialization function |