SR_bot/MyRobot.mq5

31 lines
1.6 KiB
MQL5
Raw Permalink Normal View History

2026-02-22 12:53:40 +00:00
//+------------------------------------------------------------------+ //| XAUUSD M1 EMA20 Cross EA - Error Free | //+------------------------------------------------------------------+ #property strict #include <Trade/Trade.mqh>
CTrade trade;
input double LotSize = 0.01; input int MagicNumber = 202602; input double TakeProfit_Pips = 200; input double TrailStart_Pips = 50; input double TrailDistance_Pips = 50;
datetime lastBarTime = 0; int emaHandle;
// Pip calculation double Pip() { if(_Digits==3 || _Digits==5) return 10*_Point; return _Point; }
int OnInit() { if(_Symbol!="XAUUSD") { Print("EA works ONLY on XAUUSD"); return INIT_FAILED; } if(_Period!=PERIOD_M1) { Print("Attach EA to M1 timeframe ONLY"); return INIT_FAILED; }
emaHandle = iMA(_Symbol, PERIOD_M1, 20, 0, MODE_EMA, PRICE_CLOSE); if(emaHandle==INVALID_HANDLE) return INIT_FAILED;
return INIT_SUCCEEDED; }
void ApplyTrailing() { double pip = Pip(); for(int i=0;i<PositionsTotal();i++) { if(!PositionSelectByIndex(i)) continue; if(PositionGetString(POSITION_SYMBOL)!=_Symbol) continue;
ulong ticket = PositionGetInteger(POSITION_TICKET);
long type = PositionGetInteger(POSITION_TYPE);
double openPrice = PositionGetDouble(POSITION_PRICE_OPEN);
double sl = PositionGetDouble(POSITION_SL);
double tp = PositionGetDouble(POSITION_TP);
double bid = SymbolInfoDouble(_Symbol,SYMBOL_BID);
double ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK);
double trailStart = TrailStart_Pips*pip;
double trailDist = TrailDistance_Pips*pip;
if(type==POSITION_TYPE_BUY && bid-openPrice>=trailStart)
{
double newSL