47 라인
EOL 없음
2 KiB
MQL5
47 라인
EOL 없음
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);
|
|
}
|
|
} |