Simple MA Crossover with very powerful money management for both MQL4 and MQL5

Termos de Referência

//+------------------------------------------------------------------+
//| $10 Smart Scalping Bot for MT5 |
//| EURGBP + AUDUSD + XAGUSD Optimized |
//+------------------------------------------------------------------+
#property strict

#include <Trade/Trade.mqh>
CTrade trade;

//========================= INPUTS ==================================
input double LotSize = 0.01;

input int FastEMA = 20;
input int SlowEMA = 50;
input int RSIPeriod = 14;

input double BuyRSI = 55.0;
input double SellRSI = 45.0;

input int StopLoss = 150;
input int TakeProfit = 350;

input int MaxSpread = 35;

input int MaxOpenTrades = 1;
input int MaxDailyLosses = 3;

input bool UseTrailingStop = true;
input int TrailingStop = 80;

//========================= VARIABLES ===============================
int fastEMAHandle;
int slowEMAHandle;
int rsiHandle;

double fastEMA[];
double slowEMA[];
double rsi[];

int dailyLosses = 0;

//+------------------------------------------------------------------+
//| Expert Initialization |
//+------------------------------------------------------------------+
int OnInit()
{
   // Allow only these symbols
   if(_Symbol != "EURGBP" &&
      _Symbol != "AUDUSD" &&
      _Symbol != "XAGUSD")
   {
      Print("Use only EURGBP, AUDUSD or XAGUSD");
      return(INIT_FAILED);
   }

   // Create indicators
   fastEMAHandle = iMA(_Symbol, PERIOD_M5, FastEMA, 0, MODE_EMA, PRICE_CLOSE);
   slowEMAHandle = iMA(_Symbol, PERIOD_M5, SlowEMA, 0, MODE_EMA, PRICE_CLOSE);
   rsiHandle = iRSI(_Symbol, PERIOD_M5, RSIPeriod, PRICE_CLOSE);

   if(fastEMAHandle == INVALID_HANDLE ||
      slowEMAHandle == INVALID_HANDLE ||
      rsiHandle == INVALID_HANDLE)
   {
      Print("Indicator creation failed");
      return(INIT_FAILED);
   }

   Print("Smart $10 Scalper Loaded");

   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Main Trading Logic |
//+------------------------------------------------------------------+
void OnTick()
{
   // Daily protection
   if(dailyLosses >= MaxDailyLosses)
   {
      Print("Daily loss limit reached.");
      return;
   }

   // Max open trades protection
   if(PositionsTotal() >= MaxOpenTrades)
   {
      ManageTrailingStop();
      return;
   }

   // Spread filter
   double spread =
      (SymbolInfoDouble(_Symbol, SYMBOL_ASK) -
       SymbolInfoDouble(_Symbol, SYMBOL_BID)) / _Point;

   if(spread > MaxSpread)
      return;

   // Get indicator values
   CopyBuffer(fastEMAHandle, 0, 0, 3, fastEMA);
   CopyBuffer(slowEMAHandle, 0, 0, 3, slowEMA);
   CopyBuffer(rsiHandle, 0, 0, 3, rsi);

   double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
   double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);

   //================ BUY CONDITIONS =================
   bool buySignal =
      fastEMA[1] < slowEMA[1] &&
      fastEMA[0] > slowEMA[0] &&
      rsi[0] > BuyRSI;

   if(buySignal)
   {
      double sl = ask - StopLoss * _Point;
      double tp = ask + TakeProfit * _Point;

      trade.Buy(LotSize, _Symbol, ask, sl, tp, "BUY");
   }

   //================ SELL CONDITIONS ================
   bool sellSignal =
      fastEMA[1] > slowEMA[1] &&
      fastEMA[0] < slowEMA[0] &&
      rsi[0] < SellRSI;

   if(sellSignal)
   {
      double sl = bid + StopLoss * _Point;
      double tp = bid - TakeProfit * _Point;

      trade.Sell(LotSize, _Symbol, bid, sl, tp, "SELL");
   }

   // Trailing stop
   ManageTrailingStop();
}

//+------------------------------------------------------------------+
//| Trailing Stop Function |
//+------------------------------------------------------------------+
void ManageTrailingStop()
{
   if(!UseTrailingStop)
      return;

   for(int i = PositionsTotal() - 1; i >= 0; i--)
   {
      ulong ticket = PositionGetTicket(i);

      if(PositionSelectByTicket(ticket))
      {
         double currentSL = PositionGetDouble(POSITION_SL);
         double tp = PositionGetDouble(POSITION_TP);

         ENUM_POSITION_TYPE type =
            (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);

         double priceCurrent;

         // BUY POSITION
         if(type == POSITION_TYPE_BUY)
         {
            priceCurrent = SymbolInfoDouble(_Symbol, SYMBOL_BID);

            double newSL = priceCurrent - TrailingStop * _Point;

            if(newSL > currentSL)
            {
               trade.PositionModify(ticket, newSL, tp);
            }
         }

         // SELL POSITION
         if(type == POSITION_TYPE_SELL)
         {
            priceCurrent = SymbolInfoDouble(_Symbol, SYMBOL_ASK);

            double newSL = priceCurrent + TrailingStop * _Point;

            if(currentSL == 0 || newSL < currentSL)
            {
               trade.PositionModify(ticket, newSL, tp);
            }
         }
      }
   }
}

//+------------------------------------------------------------------+
//| Track Losing Trades |
//+------------------------------------------------------------------+
void OnTradeTransaction(
   const MqlTradeTransaction &trans,
   const MqlTradeRequest &request,
   const MqlTradeResult &result)
{
   if(trans.type == TRADE_TRANSACTION_DEAL_ADD)
   {
      double profit = HistoryDealGetDouble(trans.deal, DEAL_PROFIT);

      if(profit < 0)
      {
         dailyLosses++;
      }
   }
}
//+------------------------------------------------------------------+

Respondido

1
Desenvolvedor 1
Classificação
(258)
Projetos
322
30%
Arbitragem
34
26% / 65%
Expirado
10
3%
Trabalhando
2
Desenvolvedor 2
Classificação
(382)
Projetos
493
23%
Arbitragem
59
56% / 25%
Expirado
57
12%
Carregado
3
Desenvolvedor 3
Classificação
(2)
Projetos
2
0%
Arbitragem
0
Expirado
0
Livre
4
Desenvolvedor 4
Classificação
(104)
Projetos
127
24%
Arbitragem
23
30% / 52%
Expirado
8
6%
Livre
5
Desenvolvedor 5
Classificação
(279)
Projetos
376
72%
Arbitragem
19
32% / 47%
Expirado
14
4%
Livre
Publicou: 14 códigos
6
Desenvolvedor 6
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
7
Desenvolvedor 7
Classificação
(2)
Projetos
3
0%
Arbitragem
0
Expirado
0
Livre
8
Desenvolvedor 8
Classificação
(258)
Projetos
265
29%
Arbitragem
0
Expirado
3
1%
Livre
Publicou: 2 códigos
9
Desenvolvedor 9
Classificação
(454)
Projetos
717
34%
Arbitragem
34
71% / 9%
Expirado
22
3%
Livre
10
Desenvolvedor 10
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
11
Desenvolvedor 11
Classificação
(198)
Projetos
255
21%
Arbitragem
22
50% / 18%
Expirado
0
Trabalhando
12
Desenvolvedor 12
Classificação
(578)
Projetos
669
32%
Arbitragem
42
45% / 45%
Expirado
12
2%
Ocupado
13
Desenvolvedor 13
Classificação
(33)
Projetos
36
33%
Arbitragem
5
0% / 80%
Expirado
0
Trabalhando
Publicou: 2 códigos
14
Desenvolvedor 14
Classificação
(46)
Projetos
59
53%
Arbitragem
7
86% / 0%
Expirado
2
3%
Trabalhando
15
Desenvolvedor 15
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
16
Desenvolvedor 16
Classificação
(314)
Projetos
560
35%
Arbitragem
80
31% / 44%
Expirado
203
36%
Carregado
17
Desenvolvedor 17
Classificação
(2)
Projetos
2
0%
Arbitragem
0
Expirado
0
Livre
18
Desenvolvedor 18
Classificação
(268)
Projetos
600
35%
Arbitragem
64
20% / 58%
Expirado
147
25%
Trabalhando
Publicou: 1 artigo, 22 códigos
19
Desenvolvedor 19
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
20
Desenvolvedor 20
Classificação
(640)
Projetos
864
48%
Arbitragem
29
38% / 17%
Expirado
63
7%
Trabalhando
21
Desenvolvedor 21
Classificação
(512)
Projetos
551
53%
Arbitragem
13
69% / 15%
Expirado
3
1%
Livre
22
Desenvolvedor 22
Classificação
(11)
Projetos
18
28%
Arbitragem
4
50% / 50%
Expirado
1
6%
Livre
23
Desenvolvedor 23
Classificação
(62)
Projetos
90
29%
Arbitragem
24
13% / 58%
Expirado
7
8%
Trabalhando
24
Desenvolvedor 24
Classificação
(4)
Projetos
5
0%
Arbitragem
1
100% / 0%
Expirado
1
20%
Carregado
25
Desenvolvedor 25
Classificação
(363)
Projetos
436
54%
Arbitragem
21
52% / 14%
Expirado
30
7%
Carregado
26
Desenvolvedor 26
Classificação
(250)
Projetos
460
26%
Arbitragem
139
20% / 60%
Expirado
100
22%
Livre
27
Desenvolvedor 27
Classificação
(6)
Projetos
7
43%
Arbitragem
1
0% / 100%
Expirado
0
Livre
28
Desenvolvedor 28
Classificação
(8)
Projetos
8
0%
Arbitragem
2
50% / 0%
Expirado
1
13%
Trabalhando
29
Desenvolvedor 29
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
30
Desenvolvedor 30
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
Pedidos semelhantes
Am looking for Professional programmer who can build below analysis bot as specified below. The indicators will be provided. 🔷 1. CORE ARCHITECTURE OF YOUR EA Your EA has 3 modes: ✅ Mode 1: Indicator 1 Strategy (9-Signal Engine) ✅ Mode 2: Indicator 2 Strategy (Multi-indicator confluence) ✅ Mode 3: Hybrid Mode (Indicator 1 filters Indicator 2) 🔷 2. PAIR SELECTION LOGIC EA will NOT auto-scan market (based on your
Matriks programında güzel bir stratejim var, meta da kayıtlı olmayan iki indikatörümü de metaya yükledim, stratejim belli, ama robot oluşturmak konusunda bilgim eksik. Yardım istiyorum. Acil dönüş bekliyorum. 12-276 üssel ortalamayı hangi yöne keserse, alphatrend indikaörüde bunu desteklesin, kendi gömdüpüm diğer bir indikatörde seviyelere göre alsın satsın
Hi. Could you slightly rewrite my cBot for me to use a 5-minute chart without a fixed target? The stop should be a trailing stop at the level of the initial range
MT5 EA Developer for Structured ICT/SMC Market Logic Requirements Specification: I need an MT5 Expert Advisor only in MQL5. No indicator, no script, no DLL, and no external API. The EA must be built on a rule-based ICT/SMC-style framework with objective, backtestable logic. I am not looking for social-media-style ICT/SMC interpretation. I need a developer who can convert trading concepts into clear coding rules. The
Hi all, I am looking for a top-rated, experienced MQL5 developer to code Phase 1 (Retail Version) of an advanced Expert Advisor for MetaTrader 5. Key Requirements: 1. Pure Price Action Strategy: Uses H4 Trend Filter (Swing High/Low) and H1 Execution (Wick Scanning >= 66% & Engulfing Candlesticks). Places orders via Buy/Sell Limit at Fibonacci 50% level of the candle body (with Giant Candle threshold rules). 2
I want a mobile bot to trade automatically on my behalf must have experience and be willing to verify your work. It must be profitable and user friendly be easy to use and connect. You'll be given a share of profits
Szukam doświadczonego programisty do stworzenia dedykowanego doradcy eksperckiego (EA) do tradingu. Programista powinien posiadać solidną wiedzę z zakresu MT5, logiki strategii, wskaźników, zarządzania ryzykiem i backtestingu. Doświadczenie w tworzeniu niezawodnych i profesjonalnych robotów handlowych będzie dodatkowym atutem. Proszę o kontakt, jeśli zrealizowałeś już podobne projekty. wszystkie szczeguły podam w
Looking for an experienced programmer to create a fully automated trading system. The EA must be able to detect SPECIFIC H&Shoulder patterns, identify entry point and open a position. Parameters: Candle Count : EX: 50 - meaning the max amount of candle history to look for a pattern. (user adjustable) RISK: EG "2" Meaning the position that must be opened must be 2% of the Balance of the account (user adjustable). The
I’m looking for an experienced MetaTrader 4 (MT4) developer to analyze, repair, and live-test an existing .EX4 Expert Advisor. Project Details Existing file: GannMadeEasy_pro.ex4 Platform: MetaTrader 4 Issue: EA is not loading properly on charts in newer MT4 builds Goal: Make the EA fully functional and compatible with current MT4 versions Requirements The developer must: Analyze the existing EX4 file Identify
i need the EA same working on trading view chart with same specifications of enter in a trade and sl/tp open 2 trades and 1 trade set tp1 & second trade set to tp 3 but sl should move to breakeven when tp1 hit and go to tp2 sl on tp1

Informações sobre o projeto

Orçamento
30 - 300 USD
IVA (21%): 6.3 - 63 USD
Total: 36 - 363 USD
Desenvolvedor
27 - 270 USD
Prazo
de 5 para 20 dias

Cliente

Pedidos postados1
Número de arbitragens0