Rejoindre la communauté
banner_forum
Devenez membre de la plus grande
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading

ENGULFING VERSION 2

  • lefeuvr3

    Attention ...le capital de depart est de 3000 USD

    Code
    //+------------------------------------------------------------------+ //| ENGULFING VERSION 2.mq4 | //| EURUSD DAILY QPG | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "QPG" #property link "https://www.mql5.com" #property version "1.00" //#property strict //+------------------------------------------------------------------+ extern string Name_EA = "ENGULFING_VERSION_2"; extern bool Trade_buy = true; extern bool Trade_sell = true; extern int Start_Hour = 1; extern int End_Hour = 23; extern bool Tp_in_Money = true; extern double TP_in_money = 20; extern int TP = 160; extern int SL = 80; extern int Max_order = 10; //extern double Lots = 0.12; extern string mm="MONEY MANAGEMENT"; extern bool TrailingStop_ = true; extern int TrailingStop = 20; extern int Magic = 76; extern int Period_1 = 2; extern int Period_2 = 44; double LotSize; //lotsize extern double LotFactor = 50; //lotsize factor extern int StopLoss=5000; //stop loss extern int TakeProfit=70; //take profit extern int MagicNumber=27092018; //magic double pips = 0.00001; //leave as default for 5 digit brokers extern int shift0=0; extern int shift1=1; double lot; double slb,tpb,sls,tps,pt; int ras,wt,wk,ticketb,tickets; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- if(Digits==3 || Digits==5) pt=10*Point; else pt=Point; //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { if(TrailingStop_)dtrailing(); if(Tp_in_Money && TP_in_money<=money()) closeall(); //---- int signal; if(Open[shift1]<Close[shift1]&&Open[shift0]<Close[shift1]&& Open[shift0]>Open[shift1]&&Close[shift0]<Close[shift1]&&Close[shift0]>Open[shift1]&&Open[shift0]<Close[shift1]&&Open[shift0]>Open[shift1]&&Close[shift0]<Close[shift1]&&Close[shift0]>Open[shift1]) signal=1; // Here is your open buy rule signal=1;// open buy if(Open[shift1]>Close[shift1]&&Open[shift0]>Close[shift1]&& Open[shift0]<Open[shift1]&&Close[shift0]>Close[shift1]&&Close[shift0]<Open[shift1]&&Open[shift0]>Close[shift1]&&Open[shift0]<Open[shift1]&&Close[shift0]>Close[shift1]&&Close[shift0]<Open[shift1]) signal=2; // Here is your open Sell rule signal=2;// open sell if(Hour_trade()==1) { if(SL==0)slb=0;else slb=Ask-SL*pt; if(SL==0)sls=0;else sls=Bid+SL*pt; if(TP==0)tpb=0;else tpb=Ask+TP*pt; if(TP==0)tps=0;else tps=Bid-TP*pt; if(totalorder(0)<Max_order && CheckMoneyForTrade(Symbol(), NR(Lot_Volume()), OP_BUY)==True && Trade_buy && signal==1 && wt!=Time[0]) { ticketb=OrderSend(Symbol(),OP_BUY,NR(Lot_Volume()),Ask,3,slb,tpb,Name_EA,Magic,0,Blue); if(ticketb>0) wt=Time[0]; } if(totalorder(1)<Max_order && CheckMoneyForTrade(Symbol(), NR(Lot_Volume()), OP_SELL)==True && Trade_sell && signal==2 && wk!=Time[0]) { tickets=OrderSend(Symbol(),OP_SELL,NR(Lot_Volume()),Bid,3,sls,tps,Name_EA,Magic,0,Red); if(tickets>0) wk=Time[0]; } } //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int Hour_trade() { bool trade=false; if(Start_Hour>End_Hour) { if(Hour()>=Start_Hour || Hour()<End_Hour) trade=true; } else if(Hour()>=Start_Hour && Hour()<End_Hour) trade=true; return (trade); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int totalorder(int tipe) { int total=0; for(int i=0; i<OrdersTotal(); i++) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic || OrderType()!=tipe) continue; total++; } return(total); } //+------------------------------------------------------------------+ //Calculates Lot Size based on balance and factor //+------------------------------------------------------------------+ double NR(double thelot) { double maxlots=MarketInfo(Symbol(),MODE_MAXLOT), minilot=MarketInfo(Symbol(),MODE_MINLOT), lstep=MarketInfo(Symbol(),MODE_LOTSTEP); double lots=lstep*NormalizeDouble(thelot/lstep,0); lots=MathMax(MathMin(maxlots,lots),minilot); return (lots); } //+------------------------------------------------------------------+ double Lot_Volume() { lot=AccountBalance() * 0.01 /LotFactor ; return(lot); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void dtrailing() { int i,r;double tpn; for(i=0; i<OrdersTotal(); i++) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue; tpn=OrderTakeProfit(); if(OrderType()==OP_BUY) { if(Bid-OrderOpenPrice()>pt*TrailingStop) { if((OrderStopLoss()<Bid-pt*TrailingStop) || (OrderStopLoss()==0)) { if(tpn) r=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-pt*TrailingStop,OrderTakeProfit(),0,Green); } } } if(OrderType()==OP_SELL) { if((OrderOpenPrice()-Ask)>(pt*TrailingStop)) { if(OrderStopLoss()>(Ask+pt*TrailingStop) || (OrderStopLoss()==0)) { if(tpn) r=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+pt*TrailingStop,OrderTakeProfit(),0,Red); } } } } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void closeall() { for(int i=OrdersTotal()-1; i>=0; i--) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue; if(OrderType()>1) ras=OrderDelete(OrderTicket()); else { if(OrderType()==0) ras=OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE); else ras=OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE); } } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double money() { double dp=0; int i; for(i=0; i<OrdersTotal(); i++) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue; dp+=OrderProfit(); } return(dp); } //+------------------------------------------------------------------+ bool CheckMoneyForTrade(string symb,double lots,int type) { double free_margin=AccountFreeMarginCheck(symb,type, lots); //-- if there is not enough money if(free_margin<0) { string oper=(type==OP_BUY)? "Buy":"Sell"; //fPrint("Not enough money for ", oper," ",lots, " ", symb, " Error code=",GetLastError()); return(false); } //--- checking successful return(true); }
    lefeuvr3 a joint une image
    engulfing-version-2-11017