47 lines
2 KiB
MQL5
47 lines
2 KiB
MQL5
//+------------------------------------------------------------------+
| |||
//| EmmaRobot BEST - Sweep Only |
| |||
//+------------------------------------------------------------------+
| |||
#property strict
| |||
input double Lot=0.01;
| |||
input int WickRatio=3;
| |||
int rsi,ema;
| |||
int OnInit(){
| |||
rsi=iRSI(_Symbol,PERIOD_M15,14,PRICE_CLOSE);
| |||
ema=iMA(_Symbol,PERIOD_H1,50,0,MODE_EMA,PRICE_CLOSE);
| |||
return(INIT_SUCCEEDED);
| |||
}
| |||
void OnTick(){
| |||
if(PositionsTotal()>0) return;
| |||
if((int)SymbolInfoInteger(_Symbol,SYMBOL_SPREAD)>400) return;
| |||
MqlRates m15[]; MqlRates m5[];
| |||
CopyRates(_Symbol,PERIOD_M15,0,40,m15);
| |||
CopyRates(_Symbol,PERIOD_M5,0,3,m5);
| |||
double r[]; double e[];
| |||
CopyBuffer(rsi,0,0,2,r);
| |||
CopyBuffer(ema,0,0,2,e);
| |||
double lo=m15[1].low; double hi=m15[1].high;
| |||
for(int i=2;i<30;i++){ if(m15[i].low<lo) lo=m15[i].low; if(m15[i].high>hi) hi=m15[i].high; }
| |||
double body=MathAbs(m5[1].close-m5[1].open);
| |||
double lowWick=MathMin(m5[1].open,m5[1].close)-m5[1].low;
| |||
double highWick=m5[1].high-MathMax(m5[1].open,m5[1].close);
| |||
bool buySweep=m5[1].low<lo && m5[1].close>lo;
| |||
bool sellSweep=m5[1].high>hi && m5[1].close<hi;
| |||
bool buyWick=lowWick>body*WickRatio && m5[1].close>m5[1].open;
| |||
bool sellWick=highWick>body*WickRatio && m5[1].close<m5[1].open;
| |||
if(buySweep && buyWick && m5[1].close>e[0] && r[0]>38 && r[0]<58){
| |||
double ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
| |||
double sl=m5[1].low-150*10*_Point; double tp=ask+(ask-sl)*2;
| |||
MqlTradeRequest q; MqlTradeResult w; ZeroMemory(q);
| |||
q.action=TRADE_ACTION_DEAL; q.symbol=_Symbol; q.volume=Lot;
| |||
q.type=ORDER_TYPE_BUY; q.price=ask; q.sl=sl; q.tp=tp; q.deviation=20; q.magic=106587733;
| |||
OrderSend(q,w);
| |||
}
| |||
if(sellSweep && sellWick && m5[1].close<e[0] && r[0]>42 && r[0]<62){
| |||
double bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
| |||
double sl=m5[1].high+150*10*_Point; double tp=bid-(sl-bid)*2;
| |||
MqlTradeRequest q; MqlTradeResult w; ZeroMemory(q);
| |||
q.action=TRADE_ACTION_DEAL; q.symbol=_Symbol; q.volume=Lot;
| |||
q.type=ORDER_TYPE_SELL; q.price=bid; q.sl=sl; q.tp=tp; q.deviation=20; q.magic=106587733;
| |||
OrderSend(q,w);
| |||
}
| |||
}
|