Paper chaser

MQL5 Experts

Termos de Referência

//+------------------------------------------------------------------+
//|                                        ModularMultiStrategy.mq5  |
//|                                  Copyright 2026, Financial Algo  |
//|                                             https://mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026"
#property link      "https://mql5.com"
#property version   "1.00"
#property strict

//--- Include Trade Library
#include <Trade\Trade.mqh>
CTrade trade;

//--- Strategy Enumeration
enum ENUM_STRATEGY
  {
   STRATEGY_TREND_MA     = 0, // 1. Trend Following (Moving Average Cross)
   STRATEGY_MEAN_REV_RSI = 1, // 2. Mean Reversion (RSI Overbought/Oversold)
   STRATEGY_BREAKOUT_CH  = 2  // 3. Price Breakout (Highest/Lowest Channel)
  };

//--- Input Parameters
input group "=== CORE STRATEGY CONTROLLER ==="
input ENUM_STRATEGY InpStrategy = STRATEGY_TREND_MA; // Active Execution Strategy

input group "=== RISK & POSITION MANAGEMENT ==="
input double        InpLotSize   = 0.1;               // Trade Volume (Lots)
input int           InpStopLoss  = 200;               // Stop Loss in Points (0 = Disabled)
input int           InpTakeProfit = 400;              // Take Profit in Points (0 = Disabled)
input ulong         InpMagicNumber = 888111;          // Unique Magic Identification Number

input group "=== PARAMETERS: STRATEGY 1 (MA CROSS) ==="
input int           InpFastMAPeriod = 10;             // Fast Moving Average Period
input int           InpSlowMAPeriod = 20;             // Slow Moving Average Period

input group "=== PARAMETERS: STRATEGY 2 (RSI REVERSION) ==="
input int           InpRSIPeriod    = 14;             // RSI Period
input double        InpRSIOverbought = 70.0;          // RSI Upper Bound (Sell Zone)
input double        InpRSIOversold   = 30.0;          // RSI Lower Bound (Buy Zone)

input group "=== PARAMETERS: STRATEGY 3 (CHANNEL BREAKOUT) ==="
input int           InpChannelPeriod = 20;            // Number of Bars for Price Range

//--- Global Variables for Indicator Handles
int fastMAHandle, slowMAHandle, rsiHandle;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   // Set the identity footprint for orders executed by this engine instances
   trade.SetExpertMagicNumber(InpMagicNumber);
   
   // Initialize structural indicator pipelines based on user strategy selection
   if(InpStrategy == STRATEGY_TREND_MA)
     {
      fastMAHandle = iMA(_Symbol, _Period, InpFastMAPeriod, 0, MODE_SMA, PRICE_CLOSE);
      slowMAHandle = iMA(_Symbol, _Period, InpSlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE);
      if(fastMAHandle == INVALID_HANDLE || slowMAHandle == INVALID_HANDLE) return(INIT_FAILED);
     }
   else if(InpStrategy == STRATEGY_MEAN_REV_RSI)
     {
      rsiHandle = iRSI(_Symbol, _Period, InpRSIPeriod, PRICE_CLOSE);
      if(rsiHandle == INVALID_HANDLE) return(INIT_FAILED);
     }
     
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   // Free system performance memory allocations
   IndicatorRelease(fastMAHandle);
   IndicatorRelease(slowMAHandle);
   IndicatorRelease(rsiHandle);
  }

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   // Restrict logic evaluation to the formation of a fresh candlestick
   static datetime lastBarTime;
   datetime currentBarTime = iTime(_Symbol, _Period, 0);
   if(currentBarTime == lastBarTime) return;
   lastBarTime = currentBarTime;

   // Enforce clean execution setup by processing signals only when no trades are open
   if(PositionsTotal() > 0) return;

   // Structural Execution Routers
   switch(InpStrategy)
     {
      case STRATEGY_TREND_MA:     EvaluateMACross();     break;
      case STRATEGY_MEAN_REV_RSI: EvaluateRSIReversion(); break;
      case STRATEGY_BREAKOUT_CH:  EvaluateBreakout();    break;
     }
  }

//+------------------------------------------------------------------+
//| Core Strategy Engine 1: Moving Average Intersection Module       |
//+------------------------------------------------------------------+
void EvaluateMACross()
  {
   double fastMA[], slowMA[];
   ArraySetAsSeries(fastMA, true);
   ArraySetAsSeries(slowMA, true);

   if(CopyBuffer(fastMAHandle, 0, 1, 2, fastMA) < 2 || CopyBuffer(slowMAHandle, 0, 1, 2, slowMA) < 2) return;

   // Bullish crossover detected (Fast cross over Slow)
   if(fastMA[0] > slowMA[0] && fastMA[1] <= slowMA[1])
     {
      ExecuteOrder(ORDER_TYPE_BUY);
     }
   // Bearish crossover detected (Fast cross under Slow)
   else if(fastMA[0] < slowMA[0] && fastMA[1] >= slowMA[1])
     {
      ExecuteOrder(ORDER_TYPE_SELL);
     }
  }

//+------------------------------------------------------------------+
//| Core Strategy Engine 2: RSI Exhaustion Bounds Module             |
//+------------------------------------------------------------------+
void EvaluateRSIReversion()
  {
   double rsiValues[];
   ArraySetAsSeries(rsiValues, true);

   if(CopyBuffer(rsiHandle, 0, 1, 2, rsiValues) < 2) return;

   // Price recovering out of oversold territory
   if(rsiValues[0] > InpRSIOversold && rsiValues[1] <= InpRSIOversold)
     {
      ExecuteOrder(ORDER_TYPE_BUY);
     }
   // Price correcting out of overbought territory
   else if(rsiValues[0] < InpRSIOverbought && rsiValues[1] >= InpRSIOverbought)
     {
      ExecuteOrder(ORDER_TYPE_SELL);
     }
  }

//+------------------------------------------------------------------+
//| Core Strategy Engine 3: Multi-Bar Structural Range Breakout     |
//+------------------------------------------------------------------+
void EvaluateBreakout()
  {
   // Identify high and low boundaries across the historical lookback range
   int highestBar = iHighest(_Symbol, _Period, MODE_HIGH, InpChannelPeriod, 1);
   int lowestBar  = iLowest(_Symbol, _Period, MODE_LOW, InpChannelPeriod, 1);

   double channelHigh = iHigh(_Symbol, _Period, highestBar);
   double channelLow  = iLow(_Symbol, _Period, lowestBar);

   double closeCurrent = iClose(_Symbol, _Period, 1);

   // Close price broke cleanly out above the historical channel ceiling
   if(closeCurrent > channelHigh)
     {
      ExecuteOrder(ORDER_TYPE_BUY);
     }
   // Close price broke cleanly out below the historical channel floor
   else if(closeCurrent < channelLow)
     {
      ExecuteOrder(ORDER_TYPE_SELL);
     }
  }

//+------------------------------------------------------------------+
//| Secure Order Execution Module                                    |
//+------------------------------------------------------------------+
void ExecuteOrder(ENUM_ORDER_TYPE type)
  {
   double price = (type == ORDER_TYPE_BUY) ? SymbolInfoDouble(_Symbol, SYMBOL_ASK) : SymbolInfoDouble(_Symbol, SYMBOL_BID);
   double sl = 0;
   double tp = 0;

   if(type == ORDER_TYPE_BUY)
     {
      sl = (InpStopLoss > 0) ? price - (InpStopLoss * _Point) : 0;
      tp = (InpTakeProfit > 0) ? price + (InpTakeProfit * _Point) : 0;
      trade.Buy(InpLotSize, _Symbol, price, sl, tp, "Modular Multi-Strategy Engine [BUY]");
     }
   else if(type == ORDER_TYPE_SELL)
     {
      sl = (InpStopLoss > 0) ? price + (InpStopLoss * _Point) : 0;
      tp = (InpTakeProfit > 0) ? price - (InpTakeProfit * _Point) : 0;
      trade.Sell(InpLotSize, _Symbol, price, sl, tp, "Modular Multi-Strategy Engine [SELL]");
     }
  }
//+------------------------------------------------------------------+

Respondido

1
Desenvolvedor 1
Classificação
(111)
Projetos
184
25%
Arbitragem
25
16% / 76%
Expirado
16
9%
Livre
2
Desenvolvedor 2
Classificação
(10)
Projetos
17
18%
Arbitragem
2
0% / 50%
Expirado
3
18%
Carregado
3
Desenvolvedor 3
Classificação
Projetos
0
0%
Arbitragem
1
0% / 0%
Expirado
0
Trabalhando
Publicou: 2 códigos
4
Desenvolvedor 4
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
Publicou: 3 códigos
5
Desenvolvedor 5
Classificação
(5)
Projetos
6
83%
Arbitragem
0
Expirado
0
Livre
Publicou: 4 códigos
6
Desenvolvedor 6
Classificação
(29)
Projetos
36
39%
Arbitragem
0
Expirado
2
6%
Livre
7
Desenvolvedor 7
Classificação
(7)
Projetos
9
67%
Arbitragem
0
Expirado
0
Livre
Publicou: 1 artigo, 2 códigos
8
Desenvolvedor 8
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
9
Desenvolvedor 9
Classificação
Projetos
1
0%
Arbitragem
0
Expirado
0
Livre
Publicou: 4 códigos
10
Desenvolvedor 10
Classificação
(1)
Projetos
1
100%
Arbitragem
0
Expirado
0
Livre
Publicou: 7 códigos
11
Desenvolvedor 11
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
12
Desenvolvedor 12
Classificação
(265)
Projetos
315
74%
Arbitragem
16
75% / 0%
Expirado
6
2%
Trabalhando
13
Desenvolvedor 13
Classificação
(4)
Projetos
4
50%
Arbitragem
0
Expirado
0
Trabalhando
14
Desenvolvedor 14
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
15
Desenvolvedor 15
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
Pedidos semelhantes
نازدك 30+ USD
Specify your Requirements Specification here point by point. Try to describe your requirements briefly and clearly, so that your potential developer is able to correctly assess its complexity and cost, as well as the required execution time. A bad or too generic description will result in your order being ignored, or you will spend a lot of time negotiating the details with each applicant. Remember: It is better to
**IMPORTANT: PLEASE DISREGARD THE PREVIOUS SPECIFICATION TITLED "FULL TRADING PLATFORM – APPLICATION FLOW REQUIREMENTS."** I no longer need the complete trading platform outlined in my previous **"FULL TRADING PLATFORM – APPLICATION FLOW REQUIREMENTS"** specification. Originally, I considered building a complete trading platform with educational materials, training systems, user accounts, subscription features
I have indicators on my Trading view which will create zones automatically on H4 Candle confirmation. I am getting an alert also that specific zone is created. I want them to shift in automated trading like once zone is created, limits should be place automatically on basis of that zone with given lot size, number of layers and with TP and SL. I have checked on AI to convert this in auto but they need zone in numbers
I am looking for an experienced MQL5 developer to recreate my existing MT5 Expert Advisor (DSTR Novaa). I have the original compiled EX5 file, Vantage MT5 live trading history and original Strategy Tester report. Required Trading Logic: EMA Period: 3. BUY when price crosses below EMA 3. SELL when price crosses above EMA 3. Starting Lot: 0.01 (configurable). Martingale Multiplier: 2.0. Maximum Martingale Cycle: 9
Aviation 30+ USD
I wish to say I wanna go rich and clever in everything I do and trusting the Lord and working hard will boost me up and making me the best person
I need an ready-made MT5 profitable EA for Gold. 5/7% daily I need. Before applying please make sure you have one with proven ROI, Drawdown and Live performace result. I will Pay $500 for it but I need as I want. Must needs to supply Source code if I like it. Before I purchase I will test 7 days on my live account. If It's okay then apply othersie please pass this project. Hope you will respect the time for both of
I need a EA to test many EAS all in one to see the results For back testing I've got the EA I want to see the combined EAS what is the results
Hello, I need an Expert Advisor for MetaTrader 5 in MQL5. 1. GENERAL: Scalping on M1, Monday to Friday, 3 symbols: XAUUSD, EURUSD, GBPUSD. Scan every tick. Fully automatic. NO MARTINGALE, NO GRID, NO HEDGING. 2. TIMEFRAME: M1 ONLY. Use PERIOD_M1 for all indicators. Magic 101010. Comment "Adaptive V11". Deviation 10. Spread filter: >30 points EURUSD/GBPUSD or >50 points XAUUSD = NO TRADE. 3. INDICATORS: EMA 20, EMA
Hello, I need a high-quality, reliable, and well-coded Expert Advisor (EA) for MetaTrader 5. The code must be clean, without errors, and optimized for safe trading. The robot needs to trade based on basic technical indicators. Every trade must have a strict Stop Loss and Take Profit for risk management. Please apply only if you are an experienced MT5 developer with a high rating and clean coding history. Best
VPS 80+ USD
--- Hello Developer, I need a FULL AUTO TRADING MT5 EA for XAUUSD and BTCUSD. I use Android phone only + VPS. I will only change Lot Size. IMPORTANT TIME LOGIC: 1. LONDON SESSION (09:00 - 12:00 CAT / GMT+2) - ANALYSIS ONLY: - EA must automatically mark London High and London Low (My SRA) - Mark Fixed Range Volume Profile POC for London Session - DO NOT TRADE during London, only mark levels 2. NEW YORK SESSION (15:00

Informações sobre o projeto

Orçamento
40 - 200 USD
Prazo
de 1 para 10 dias

Cliente

Pedidos postados1
Número de arbitragens0