//+------------------------------------------------------------------+ //| swb grid 4 .mq4 | //| totom sukopratomo | //| forexengine@gmail.com | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+----- belum punya account fxopen? --------------------------------+ //+----- buka di http://fxind.com?agent=123621 ----------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+----- ingin bisa scalping dengan real tp 3 pips? -----------------+ //+----- ingin dapat bonus $30 dengan deposit awal $100? ------------+ //+----- buka account di http://instaforex.com/index.php?x=NQW ------+ //+------------------------------------------------------------------+ #property copyright "totom sukopratomo" #property link "forexengine@gmail.com" #define buy -2 #define sell 2 //---- input parameters extern bool use_daily_target=false; extern double daily_target=100; extern bool trade_in_fri=true; extern int magic=1; extern double start_lot=0.1; extern double range=25; extern int level=10; extern bool lot_multiplier=true; extern double multiplier=2.0; extern double increament=0.1; extern bool use_sl_and_tp=false; extern double sl=60; extern double tp=30; extern double tp_in_money=5.0; extern bool stealth_mode=true; extern bool use_bb=true; extern int bb_period=20; extern int bb_deviation=2; extern int bb_shift=0; extern bool use_stoch=true; extern int k=5; extern int d=3; extern int slowing=3; extern int price_field=0; extern int stoch_shift=0; extern int lo_level=30; extern int up_level=70; extern bool use_rsi=true; extern int rsi_period=12; extern int rsi_shift=0; extern int lower=30; extern int upper=70; double pt; double minlot; double stoplevel; int prec=0; int a=0; int ticket=0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- if(Digits==3 || Digits==5) pt=10*Point; else pt=Point; minlot = MarketInfo(Symbol(),MODE_MINLOT); stoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL); if(start_lot=daily_target) { Comment("\ndaily target achieved."); return(0); } if(!trade_in_fri && DayOfWeek()==5 && total()==0) { Comment("\nstop trading in Friday."); return(0); } bool EMA_Signal_Long = false; bool EMA_Signal_Short = false; double SMA1 = iMA(Symbol(),15,034,0,MODE_EMA,PRICE_CLOSE,0); double SMA2 = iMA(Symbol(),15,03,0,MODE_EMA,PRICE_CLOSE,0); if (SMA1 > SMA2) { EMA_Signal_Short = true; } if (SMA1 < SMA2) { EMA_Signal_Long = true; } if(total()==0 && a==0) { if(signal()==buy && EMA_Signal_Long) { if(stealth_mode) { if(use_sl_and_tp) ticket=OrderSend(Symbol(),0,start_lot,Ask,3,Ask-sl*pt,Ask+tp*pt,"",magic,0,Blue); else ticket=OrderSend(Symbol(),0,start_lot,Ask,3, 0, 0,"",magic,0,Blue); } else { if(use_sl_and_tp) { if(OrderSend(Symbol(),0,start_lot,Ask,3,Ask-sl*pt,Ask+tp*pt,"",magic,0,Blue)>0) { for(int i=1; i0) { for(i=1; i0) { for(i=1; i0) { for(i=1; i0 && total()=op+range*pt) { if(use_sl_and_tp) { if(lot_multiplier) ticket=OrderSend(Symbol(),1,NormalizeDouble(lastlot*multiplier,prec),Bid,3,Bid+sl*pt,Bid-tp*pt,"",magic,0,Red); else ticket=OrderSend(Symbol(),1,NormalizeDouble(lastlot+increament,prec),Bid,3,Bid+sl*pt,Bid-tp*pt,"",magic,0,Red); } else { if(lot_multiplier) ticket=OrderSend(Symbol(),1,NormalizeDouble(lastlot*multiplier,prec),Bid,3,0,0,"",magic,0,Red); else ticket=OrderSend(Symbol(),1,NormalizeDouble(lastlot+increament,prec),Bid,3,0,0,"",magic,0,Red); } } } if(use_sl_and_tp && total()>1) { double s_l, t_p; for(i=0; i1) continue; type=OrderType(); s_l=OrderStopLoss(); t_p=OrderTakeProfit(); } for(i=OrdersTotal()-1; i>=0; i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=magic || OrderType()>1) continue; if(OrderType()==type) { if(OrderStopLoss()!=s_l || OrderTakeProfit()!=t_p) { OrderModify(OrderTicket(),OrderOpenPrice(),s_l,t_p,0,CLR_NONE); } } } } double profit=0; for(i=0; i1) continue; profit+=OrderProfit(); } if(profit>=tp_in_money || a>0) { closeall(); closeall(); closeall(); a++; if(total()==0) a=0; } if(!stealth_mode && use_sl_and_tp && total()upBB && stoch>up_level && rsi>upper) return(sell); if(Low[bb_shift]upBB && stoch>up_level) return(sell); if(Low[bb_shift]upBB) return(sell); if(Low[bb_shift]up_level && rsi>upper) return(sell); if(stochup_level) return(sell); if(stochupBB && rsi>upper) return(sell); if(Low[bb_shift]upper) return(sell); if(rsi=0; i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=magic) continue; if(OrderType()>1) OrderDelete(OrderTicket()); else { if(OrderType()==0) OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE); else OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE); } } }