UNRULY EA

MQL5 Experts

Spécifications


//+------------------------------------------------------------------+
//|        RSI XAUUSDm PRO EA (Upgraded for small accounts)         |
//+------------------------------------------------------------------+
#property strict

//--- Inputs
input int RSIPeriod = 5;

input double BuyRSILevel  = 40;
input double SellRSILevel = 60;

input double RiskPercent = 1.0;

input double StopLossPoints  = 900;
input double TakeProfitPoints = 1200;

input double MaxSpreadPoints = 300;   // IMPORTANT for XAUUSDm

input bool UseTrendFilter = true;
input int TrendMAPeriod = 50;

input ENUM_TIMEFRAMES TimeFrame = PERIOD_M1;

//--- Handles
int rsiHandle;
int maHandle;

//+------------------------------------------------------------------+
int OnInit()
{
   rsiHandle = iRSI(_Symbol, TimeFrame, RSIPeriod, PRICE_CLOSE);
   maHandle  = iMA(_Symbol, TimeFrame, TrendMAPeriod, 0, MODE_EMA, PRICE_CLOSE);

   if(rsiHandle == INVALID_HANDLE || maHandle == INVALID_HANDLE)
   {
      Print("Indicator handle error");
      return(INIT_FAILED);
   }

   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
bool HasPosition()
{
   return PositionSelect(_Symbol);
}

//+------------------------------------------------------------------+
double GetLot()
{
   double balance = AccountInfoDouble(ACCOUNT_BALANCE);
   double riskMoney = balance * RiskPercent / 100.0;

   double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);

   double lot = riskMoney / (StopLossPoints * tickValue);

   double minLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
   double maxLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);

   if(lot < minLot) lot = minLot;
   if(lot > maxLot) lot = maxLot;

   return NormalizeDouble(lot, 2);
}

//+------------------------------------------------------------------+
bool SpreadOK()
{
   double spread = (SymbolInfoDouble(_Symbol, SYMBOL_ASK) -
                    SymbolInfoDouble(_Symbol, SYMBOL_BID)) / _Point;

   return (spread <= MaxSpreadPoints);
}

//+------------------------------------------------------------------+
void SendBuy(double lot)
{
   MqlTradeRequest req;
   MqlTradeResult res;

   double price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);

   req.action = TRADE_ACTION_DEAL;
   req.type = ORDER_TYPE_BUY;
   req.symbol = _Symbol;
   req.volume = lot;
   req.price = price;
   req.sl = price - StopLossPoints * _Point;
   req.tp = price + TakeProfitPoints * _Point;
   req.deviation = 20;
   req.magic = 1111;

   OrderSend(req, res);

   if(res.retcode != 10009 && res.retcode != 10008)
      Print("BUY ERROR: ", res.retcode);
}

//+------------------------------------------------------------------+
void SendSell(double lot)
{
   MqlTradeRequest req;
   MqlTradeResult res;

   double price = SymbolInfoDouble(_Symbol, SYMBOL_BID);

   req.action = TRADE_ACTION_DEAL;
   req.type = ORDER_TYPE_SELL;
   req.symbol = _Symbol;
   req.volume = lot;
   req.price = price;
   req.sl = price + StopLossPoints * _Point;
   req.tp = price - TakeProfitPoints * _Point;
   req.deviation = 20;
   req.magic = 1111;

   OrderSend(req, res);

   if(res.retcode != 10009 && res.retcode != 10008)
      Print("SELL ERROR: ", res.retcode);
}

//+------------------------------------------------------------------+
void OnTick()
{
   if(HasPosition()) return;
   if(!SpreadOK()) return;

   double rsi[2];
   double ma[1];

   if(CopyBuffer(rsiHandle, 0, 0, 2, rsi) <= 0) return;
   if(UseTrendFilter && CopyBuffer(maHandle, 0, 0, 1, ma) <= 0) return;

   double currentRSI = rsi[0];
   double previousRSI = rsi[1];

   double price = SymbolInfoDouble(_Symbol, SYMBOL_BID);

   double lot = GetLot();

   bool uptrend = true;
   if(UseTrendFilter)
      uptrend = (price > ma[0]);

   bool downtrend = true;
   if(UseTrendFilter)
      downtrend = (price < ma[0]);

   // BUY
   if(previousRSI <= BuyRSILevel && currentRSI > BuyRSILevel && uptrend)
   {
      SendBuy(lot);
   }

   // SELL
   if(previousRSI >= SellRSILevel && currentRSI < SellRSILevel && downtrend)
   {
      SendSell(lot);
   }
}
//+------------------------------------------------------------------+

Répondu

1
Développeur 1
Évaluation
(104)
Projets
127
24%
Arbitrage
23
30% / 52%
En retard
8
6%
Gratuit
2
Développeur 2
Évaluation
(3)
Projets
3
0%
Arbitrage
1
0% / 100%
En retard
0
Gratuit
3
Développeur 3
Évaluation
(250)
Projets
460
26%
Arbitrage
139
20% / 60%
En retard
100
22%
Gratuit
4
Développeur 4
Évaluation
(169)
Projets
202
48%
Arbitrage
5
20% / 60%
En retard
2
1%
Gratuit
5
Développeur 5
Évaluation
(62)
Projets
90
29%
Arbitrage
24
13% / 58%
En retard
7
8%
Travail
6
Développeur 6
Évaluation
Projets
0
0%
Arbitrage
0
En retard
0
Gratuit
7
Développeur 7
Évaluation
Projets
0
0%
Arbitrage
0
En retard
0
Gratuit
8
Développeur 8
Évaluation
Projets
0
0%
Arbitrage
0
En retard
0
Gratuit
9
Développeur 9
Évaluation
(7)
Projets
9
0%
Arbitrage
2
0% / 100%
En retard
0
Gratuit
Publié : 1 article
10
Développeur 10
Évaluation
Projets
0
0%
Arbitrage
0
En retard
0
Gratuit
11
Développeur 11
Évaluation
(242)
Projets
285
77%
Arbitrage
13
69% / 0%
En retard
4
1%
Travail
12
Développeur 12
Évaluation
(45)
Projets
63
52%
Arbitrage
5
0% / 40%
En retard
1
2%
Gratuit
13
Développeur 13
Évaluation
Projets
0
0%
Arbitrage
0
En retard
0
Gratuit
14
Développeur 14
Évaluation
Projets
0
0%
Arbitrage
0
En retard
0
Gratuit
15
Développeur 15
Évaluation
(543)
Projets
825
62%
Arbitrage
33
27% / 45%
En retard
23
3%
Gratuit
Publié : 1 code
16
Développeur 16
Évaluation
(1)
Projets
1
0%
Arbitrage
0
En retard
1
100%
Gratuit
Commandes similaires
Joseph 30+ USD
I want robot to make money for me because the straight trading it doesn't make better money and the account shows me a R0 I don't know why but I want to make money
Test instructions: - Run EA on US30 (Dow Jones) - Timeframe: H1 - Test period: last 3–6 months - Use default risk settings (1% per setup) - Check Friday breakout logic only Expected behavior: - EA should mark Friday High/Low - Wait for candle close breakout - Wait for retracement into range - Enter only when H1 candle closes inside range - Execute 2 trades per setup (TP1 = 1R, TP2 = 2R) - Respect 1.5% daily loss
I need help configuring my Sierra charts to run real time data, at the moment it’s running delayed data even though I have the proper subscriptions in place. I am at a last resort effort now where I want to get this problem solved efficiently. And build indicators. I need to find someone with flawless years of experience with Sierra who can accurately guide me and help me trouble shoot
ART 1: NUMBER OF TRADES ALLOWED IN ONE DIRECTION: Maximum number of trades in one direction = ------------------------------ ------------------------------ ------------------------------ -------------- par PART 2 PARTIAL CLOSURE OF STOPLOSS: Total STOPLOSS =------ Pips 1a: Percentage of Stoploss =--% 1b Percentage of Lot size =--% 2a: Percentage oe of Lot size =--% f Stoploss =--% 2b
MT5 Expert Advisor (EA) Acquisition Request – Proven XAUUSD Martingale / Grid EA I am looking to purchase a fully developed, actively traded, and proven MT5 Expert Advisor for XAUUSD (Gold) that uses Martingale, Grid, Averaging, Recovery, or Hybrid Recovery techniques. Mandatory Verification Requirement To be considered, please provide: - MT5 Investor Password (Read-Only Access) for verification - Account Number /
I'm looking to connect with an experienced MT5 developer who has previously built or worked on advanced trade copier systems beyond standard master-slave copying. Requirements: • Strong MT5 and MQL5 experience • Experience developing trade copiers • Familiarity with manual trade replication concepts • Knowledge of MT5 terminal architecture and execution workflows • Experience integrating MT5 with external
Hello, I have two Expert Advisors (EAs) that I'm migrating to my MQL5 VPS. I need a program that I can run on a separate chart or other interface to: - Allow EA #2 (with the magic number) to trade only during the Asian session. Therefore, EA #2 needs to be blocked during all other sessions. - Allow EA #1 to trade without restriction. Thank you
Labouchere System has many series and can transfer the Units to any other Series when needed (this function is very important). Building a dedicated SeriesManager class to handle all eight arrays would be very useful to make the unit transfers "atomic," so the logic is bulletproof and we never have to worry about data errors during the series transitions. The coders who really knows this cancellation sytem can apply
Project Overview I need an MQL5 developer to review and confirm their understanding of this project before providing a quote. Objective: Backtest an Opening Range Breakout (ORB) strategy on NAS100USD and generate detailed trade documentation. Requirements: Instrument NAS100USD only. Backtesting Run the ORB strategy on historical data. Target a minimum of 200 trades if the available data allows. Advise how much
Looking to buy profitable MT4/MT5 Expert Advisors (EAs). Requirements: • Fully automated • 6+ months backtest • 100+ trades • No martingale or grid systems Send: • Backtest report • Max drawdown • Markets traded • Brief strategy summary Only original EAs developed by you. Long-term collaboration available

Informations sur le projet

Budget
30 - 1000 USD
Délais
de 1 à 30 jour(s)

Client

Commandes passées1
Nombre d'arbitrages0