2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > MQL4: 连续两阳/阴买/卖交易系统

MQL4: 连续两阳/阴买/卖交易系统

时间:2021-12-31 22:41:13

相关推荐

MQL4: 连续两阳/阴买/卖交易系统

独角兽企业重金招聘Python工程师标准>>>

一、交易策略

二、系统源码

//+------------------------------------------------------------------+//| 0107.mq4 |//|Copyright ,CuiYi |//| 1010333562@ |//+------------------------------------------------------------------+#property copyright "Copyright ,CuiYi"#property link"1010333562@"#property version "1.00"#property strict//+------------------------------------------------------------------+//| Expert initialization function|//+------------------------------------------------------------------+//----------- 外部变量 --------------extern int MagicNumber = 123;//----------- 计算现时仓位大小 ----------------------------int CalculateCurrentOrder(string symbol){int buys=0,sells=0;for(int i=0;i<OrdersTotal();i=i+1){if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)break;if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){if(OrderType()==OP_BUY) buys++;if(OrderType()==OP_SELL)sells++;}}if(buys>0)return(buys);elsereturn(-sells);}//------------- 计算交易手数 ----------------------------double lot=NormalizeDouble(AccountBalance()/5000.0,2);//--------------- 开仓条件 ------------------------------void CheckForOpen(){double P1,P2,P3,P4;int res;P1=iOpen("EURUSD",5,0);P2=iClose("EURUSD",5,0);P3=iOpen("EURUSD",5,1);P4=iClose("EURUSD",5,1);if(P2>P1 && P4>P3 && P2>P4){res=OrderSend("EURUSD",OP_BUY,lot,Ask,3,0,0,"",MagicNumber,0,Blue);return;}if(P2<P1 && P4<P3 && P2<P4){res=OrderSend("EURUSD",OP_SELL,lot,Bid,3,0,0,"",MagicNumber,0,Red);return;}}//------------ 平仓条件 ---------------------------void CheckForClose(){double P1,P2,P3,P4;P1=iOpen("EURUSD",5,0);P2=iClose("EURUSD",5,0);P3=iOpen("EURUSD",5,1);P4=iClose("EURUSD",5,1);for(int i=0;i<OrdersTotal();i++){if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!="EURUSD") continue;if(OrderType()==OP_BUY){if(P2<P4 || P2<P1)OrderClose(OrderTicket(),lot,Bid,3,White);break;}if(OrderType()==OP_SELL){if(P2>P4 || P2>P1)OrderClose(OrderTicket(),lot,Bid,3,White);break;}}}//----------- 控制流 ----------------------void start(){if(Bars<100 || IsTradeAllowed()==false) return;if(CalculateCurrentOrder(Symbol())==0) CheckForOpen();else CheckForClose();}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。