外汇EA编程入门第六课:阴阳太极学习

首先介绍第一招:阴阳太极。

打开您的MetaEditor编辑器。

打开您保存的my1ea002文件。

这里先用中文代码演示一遍。

这样您就能清晰理解我们需要编写的内容。

我们要实现的功能大致如下:

如果(

没有任何持仓单

并且 当前K线为阳线(收盘价高于开盘价)

){则可以执行买入操作}

如果(

没有任何持仓单

并且 当前K线为阴线(收盘价低于开盘价)

){则可以执DLSM外汇行卖出操作}

没错,逻辑很简单。

您还记得EA的编写核心结构吗?

正是:

if(){}

最终代码示例如下:

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

//| my1ea.mq4 |

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

#property copyright "Copyright © 2009, 柒侠伍义"

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

//| expert initialization function |

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

int init()

{

//----

//----

return(0);

}//+-------------------------------DLSM外汇-----------------------------------+

//| expert deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| expert start function |

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

int start()

{

//----

if(

OrdersTotal()==0

&& Close[0]>Open[0]

){

OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-200*Point,Ask+200*Point,"macd sample",16384,0,Green);

}

if(

OrdersTotal()==0

&& Close[0]

){

OrderSend(Symbol(),OP_SELL,1,Bid,3,Bid+200*Point,Bid-200*Point,"macd sample",16384,0,Red);

}

//----

return(0);

}

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

以上初始的OrderSend是从macd sample中复制过来的。

我们还需要进一步修改这些参数。

将Lots改为1。

将TakeProfit改为200。

将买入单的止损价改为Bid+200*Point。

将卖出单的止损价改为Ask-200*Point。

修改后的代码为:

OrderSend(Symbol(),OP_SELL,1,Bid,3,Bid+200*Point,Bid-200*Point,"macd sample",16384,0,Red);

OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-200*Point,Ask+200*Point,"macd sample",16384,0,Green);

点击编译按钮。

如果显示0错误、0警告,

那么您的my1ea002就成功编写完成了。