黄金外汇交易开户链接

MT5编程实例课程(阿郎)第三讲:均线交叉EA

#property copyright "Simon Yau"

#property link "http://www.xxxxxx.com"

#property version "1.00"

int maFastHandle, maSlowHandle; //定义两个指标操作句柄,用来操作两条均线

double maFast[], maSlow[]; //定义两个数组,用于保存均线的数值

//+——————————————————————+

//| Expert initialization function |

//+——————————————————————+

int OnInit()

{

//—

//在初始化函数OnInit中,分别指定两个操作句柄所对应的均线指标

maFastHandle = iMA(Symbol(), PERIOD_CURRENT, 5, 0, MODE_SMA, PRICE_CLOSE); //对应5期均线

maSlowHandle = iMA(Symbol(), PERIOD_CURRENT, 10, 0, MODE_SMA, PRICE_CLOSE); //对应10期均线

 

ArraySetAsSeries(maFast, true); //将数组设置为倒序保存,即图表上方向由右向左

ArraySetAsSeries(maSlow, true); //同上

//—

return(0);

}

//+——————————————————————+

//| Expert deinitialization function |

//+——————————————————————+

//+——————————————————————+

//| Expert tick function |

//+——————————————————————+

void OnTick()

{

//—

MqlTradeRequest request;

MqlTradeResult result;

 

CopyBuffer(maFastHandle, 0, 0, 3, maFast); //将句柄对应的指标数值复制入数组

CopyBuffer(maSlowHandle, 0, 0, 3, maSlow); //同上

 

if (maFast[1]>maSlow[1] && maFast[2]<=maSlow[2]) //数组获得指标的数值后,就可以进行均线交叉的判定了

{

request.action = TRADE_ACTION_DEAL;

request.symbol = Symbol();

request.volume = 0.1;

request.price = SymbolInfoDouble(Symbol(), SYMBOL_ASK);

request.type = ORDER_TYPE_BUY;

 

OrderSend(request, result); //下单

}

else if (maFast[1]<maSlow[1] && maFast[2]>=maSlow[2])

{

request.action = TRADE_ACTION_DEAL;

request.symbol = Symbol();

request.volume = 0.1;

request.price = SymbolInfoDouble(Symbol(), SYMBOL_BID);

request.type = ORDER_TYPE_SELL;

 

OrderSend(request, result); 

}

作者:阿郎(shawnyau)

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容