I need Icustom Indicator for MT4

MQL4 Indikatoren Experten Forex

Auftrag beendet

Ausführungszeit 2 Stunden
Bewertung des Entwicklers
thanks. fast approval.

Spezifikation

Hello I need you to fix this 2 OSMA indicators into Icustom indicator.  I have used the OsMA xb4 and  osma color (mtf + alerts) to created the Icustom  but it did not work . so I want you to fix .

See attached the original MQL4 file used to create the above icustoms . I have added all of them so that  you  review eberything your self. If you  need any additional information please do not hesitate to let me know. Thank you.

The first i did is for  OsMA xb4

//+------------------------------------------------------------------+
//|                                              Indicator: OSMA.mq4 |
//|                                       Created with EABuilder.com |
//|                                        https://www.eabuilder.com |
//+------------------------------------------------------------------+
#property copyright "Created with EABuilder.com"
#property link      "https://www.eabuilder.com"
#property version   "1.00"
#property description ""
#property tester_indicator "OsMA Color xb4"

#include <stdlib.mqh>
#include <stderror.mqh>

//--- indicator settings
#property indicator_separate_window
#property indicator_buffers 4

#property indicator_type1 DRAW_ARROW
#property indicator_width1 1
#property indicator_color1 0xFFAA00
#property indicator_label1 "Buy"

#property indicator_type2 DRAW_ARROW
#property indicator_width2 1
#property indicator_color2 0x0000FF
#property indicator_label2 "Sell"

#property indicator_type3 DRAW_ARROW
#property indicator_width3 1
#property indicator_color3 0xFFAA00
#property indicator_label3 "Buy"

#property indicator_type4 DRAW_ARROW
#property indicator_width4 1
#property indicator_color4 0x0000FF
#property indicator_label4 "Sell"

//--- indicator buffers
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];

double myPoint; //initialized in OnInit

void myAlert(string type, string message)
  {
   if(type == "print")
      Print(message);
   else if(type == "error")
     {
      Print(type+" | OSMA @ "+Symbol()+","+IntegerToString(Period())+" | "+message);
     }
   else if(type == "order")
     {
     }
   else if(type == "modify")
     {
     }
  }

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {   
   IndicatorBuffers(4);
   SetIndexBuffer(0, Buffer1);
   SetIndexEmptyValue(0, EMPTY_VALUE);
   SetIndexArrow(0, 241);
   SetIndexBuffer(1, Buffer2);
   SetIndexEmptyValue(1, EMPTY_VALUE);
   SetIndexArrow(1, 242);
   SetIndexBuffer(2, Buffer3);
   SetIndexEmptyValue(2, EMPTY_VALUE);
   SetIndexArrow(2, 241);
   SetIndexBuffer(3, Buffer4);
   SetIndexEmptyValue(3, EMPTY_VALUE);
   SetIndexArrow(3, 242);
   //initialize myPoint
   myPoint = Point();
   if(Digits() == 5 || Digits() == 3)
     {
      myPoint *= 10;
     }
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
  {
   int limit = rates_total - prev_calculated;
   //--- counting from 0 to rates_total
   ArraySetAsSeries(Buffer1, true);
   ArraySetAsSeries(Buffer2, true);
   ArraySetAsSeries(Buffer3, true);
   ArraySetAsSeries(Buffer4, true);
   //--- initial zero
   if(prev_calculated < 1)
     {
      ArrayInitialize(Buffer1, EMPTY_VALUE);
      ArrayInitialize(Buffer2, EMPTY_VALUE);
      ArrayInitialize(Buffer3, EMPTY_VALUE);
      ArrayInitialize(Buffer4, EMPTY_VALUE);
     }
   else
      limit++;
   
   //--- main loop
   for(int i = limit-1; i >= 0; i--)
     {
      if (i >= MathMin(5000-1, rates_total-1-50)) continue; //omit some old rates to prevent "Array out of range" or slow calculation   
      
      //Indicator Buffer 1
      if(iCustom(NULL, PERIOD_CURRENT, "OsMA Color xb4", 12, 26, 9, 0, i) == 1 && iCustom(NULL, PERIOD_CURRENT, "OsMA Color xb4", 12, 26, 9, 0, i) != EMPTY_VALUE //OsMA Color xb4 is not equal to fixed value
      )
        {
         Buffer1[i] = Low[i]; //Set indicator value at Candlestick Low
        }
      else
        {
         Buffer1[i] = EMPTY_VALUE;
        }
      //Indicator Buffer 2
      if(iCustom(NULL, PERIOD_CURRENT, "OsMA Color xb4", 12, 26, 9, 2, i) == 1 && iCustom(NULL, PERIOD_CURRENT, "OsMA Color xb4", 12, 26, 9, 2, i) != EMPTY_VALUE //OsMA Color xb4 is not equal to fixed value
      )
        {
         Buffer2[i] = High[i]; //Set indicator value at Candlestick High
        }
      else
        {
         Buffer2[i] = EMPTY_VALUE;
        }
      //Indicator Buffer 3
      if(iCustom(NULL, PERIOD_CURRENT, "OsMA Color xb4", 12, 26, 9, 1, i) == 1 && iCustom(NULL, PERIOD_CURRENT, "OsMA Color xb4", 12, 26, 9, 1, i) != EMPTY_VALUE //OsMA Color xb4 is not equal to fixed value
      )
        {
         Buffer3[i] = Low[i]; //Set indicator value at Candlestick Low
        }
      else
        {
         Buffer3[i] = EMPTY_VALUE;
        }
      //Indicator Buffer 4
      if(iCustom(NULL, PERIOD_CURRENT, "OsMA Color xb4", 12, 26, 9, 3, i) == 1 && iCustom(NULL, PERIOD_CURRENT, "OsMA Color xb4", 12, 26, 9, 3, i) != EMPTY_VALUE //OsMA Color xb4 is not equal to fixed value
      )
        {
         Buffer4[i] = High[i]; //Set indicator value at Candlestick High
        }
      else
        {
         Buffer4[i] = EMPTY_VALUE;
        }
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+

The second one I did is for osma color (mtf + alerts)

//+------------------------------------------------------------------+
//|                                              Indicator: OSMA.mq4 |
//|                                       Created with EABuilder.com |
//|                                        https://www.eabuilder.com |
//+------------------------------------------------------------------+
#property copyright "Created with EABuilder.com"
#property link      "https://www.eabuilder.com"
#property version   "1.00"
#property description ""
#property tester_indicator "osma color (mtf + alerts)"

#include <stdlib.mqh>
#include <stderror.mqh>

//--- indicator settings
#property indicator_separate_window
#property indicator_buffers 4

#property indicator_type1 DRAW_ARROW
#property indicator_width1 1
#property indicator_color1 0xFFAA00
#property indicator_label1 "Buy"

#property indicator_type2 DRAW_ARROW
#property indicator_width2 1
#property indicator_color2 0x0000FF
#property indicator_label2 "Sell"

#property indicator_type3 DRAW_ARROW
#property indicator_width3 1
#property indicator_color3 0xFFAA00
#property indicator_label3 "Buy"

#property indicator_type4 DRAW_ARROW
#property indicator_width4 1
#property indicator_color4 0x0000FF
#property indicator_label4 "Sell"

//--- indicator buffers
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];

double myPoint; //initialized in OnInit

void myAlert(string type, string message)
  {
   if(type == "print")
      Print(message);
   else if(type == "error")
     {
      Print(type+" | OSMA @ "+Symbol()+","+IntegerToString(Period())+" | "+message);
     }
   else if(type == "order")
     {
     }
   else if(type == "modify")
     {
     }
  }

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {   
   IndicatorBuffers(4);
   SetIndexBuffer(0, Buffer1);
   SetIndexEmptyValue(0, EMPTY_VALUE);
   SetIndexArrow(0, 241);
   SetIndexBuffer(1, Buffer2);
   SetIndexEmptyValue(1, EMPTY_VALUE);
   SetIndexArrow(1, 242);
   SetIndexBuffer(2, Buffer3);
   SetIndexEmptyValue(2, EMPTY_VALUE);
   SetIndexArrow(2, 241);
   SetIndexBuffer(3, Buffer4);
   SetIndexEmptyValue(3, EMPTY_VALUE);
   SetIndexArrow(3, 242);
   //initialize myPoint
   myPoint = Point();
   if(Digits() == 5 || Digits() == 3)
     {
      myPoint *= 10;
     }
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
  {
   int limit = rates_total - prev_calculated;
   //--- counting from 0 to rates_total
   ArraySetAsSeries(Buffer1, true);
   ArraySetAsSeries(Buffer2, true);
   ArraySetAsSeries(Buffer3, true);
   ArraySetAsSeries(Buffer4, true);
   //--- initial zero
   if(prev_calculated < 1)
     {
      ArrayInitialize(Buffer1, EMPTY_VALUE);
      ArrayInitialize(Buffer2, EMPTY_VALUE);
      ArrayInitialize(Buffer3, EMPTY_VALUE);
      ArrayInitialize(Buffer4, EMPTY_VALUE);
     }
   else
      limit++;
   
   //--- main loop
   for(int i = limit-1; i >= 0; i--)
     {
      if (i >= MathMin(5000-1, rates_total-1-50)) continue; //omit some old rates to prevent "Array out of range" or slow calculation   
      
      //Indicator Buffer 1
      if(iCustom(NULL, PERIOD_CURRENT, "osma color (mtf + alerts)", PERIOD_CURRENT, 12, 4, 26, 4, 9, 1, true, false, true, false, false, false, "alert2.wav", true, 0, i) != 0 && iCustom(NULL, PERIOD_CURRENT, "osma color (mtf + alerts)", PERIOD_CURRENT, 12, 4, 26, 4, 9, 1, true, false, true, false, false, false, "alert2.wav", true, 0, i) != EMPTY_VALUE //osma color (mtf + alerts) is not equal to fixed value
      )
        {
         Buffer1[i] = Low[i]; //Set indicator value at Candlestick Low
        }
      else
        {
         Buffer1[i] = EMPTY_VALUE;
        }
      //Indicator Buffer 2
      if(iCustom(NULL, PERIOD_CURRENT, "osma color (mtf + alerts)", PERIOD_CURRENT, 12, 4, 26, 4, 9, 1, true, false, true, false, false, false, "alert2.wav", true, 2, i) != 0 && iCustom(NULL, PERIOD_CURRENT, "osma color (mtf + alerts)", PERIOD_CURRENT, 12, 4, 26, 4, 9, 1, true, false, true, false, false, false, "alert2.wav", true, 2, i) != EMPTY_VALUE //osma color (mtf + alerts) is not equal to fixed value
      )
        {
         Buffer2[i] = High[i]; //Set indicator value at Candlestick High
        }
      else
        {
         Buffer2[i] = EMPTY_VALUE;
        }
      //Indicator Buffer 3
      if(iCustom(NULL, PERIOD_CURRENT, "osma color (mtf + alerts)", PERIOD_CURRENT, 12, 4, 26, 4, 9, 1, true, false, true, false, false, false, "alert2.wav", true, 1, i) != 0 && iCustom(NULL, PERIOD_CURRENT, "osma color (mtf + alerts)", PERIOD_CURRENT, 12, 4, 26, 4, 9, 1, true, false, true, false, false, false, "alert2.wav", true, 1, i) != EMPTY_VALUE //osma color (mtf + alerts) is not equal to fixed value
      )
        {
         Buffer3[i] = Low[i]; //Set indicator value at Candlestick Low
        }
      else
        {
         Buffer3[i] = EMPTY_VALUE;
        }
      //Indicator Buffer 4
      if(iCustom(NULL, PERIOD_CURRENT, "osma color (mtf + alerts)", PERIOD_CURRENT, 12, 4, 26, 4, 9, 1, true, false, true, false, false, false, "alert2.wav", true, 3, i) != 0 && iCustom(NULL, PERIOD_CURRENT, "osma color (mtf + alerts)", PERIOD_CURRENT, 12, 4, 26, 4, 9, 1, true, false, true, false, false, false, "alert2.wav", true, 3, i) != EMPTY_VALUE //osma color (mtf + alerts) is not equal to fixed value
      )
        {
         Buffer4[i] = High[i]; //Set indicator value at Candlestick High
        }
      else
        {
         Buffer4[i] = EMPTY_VALUE;
        }
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+



Bewerbungen

1
Entwickler 1
Bewertung
(3)
Projekte
5
0%
Schlichtung
0
Frist nicht eingehalten
0
Frei
2
Entwickler 2
Bewertung
(75)
Projekte
124
44%
Schlichtung
14
29% / 50%
Frist nicht eingehalten
17
14%
Frei
3
Entwickler 3
Bewertung
(70)
Projekte
106
54%
Schlichtung
3
0% / 67%
Frist nicht eingehalten
8
8%
Arbeitet
Veröffentlicht: 10 Beispiele
4
Entwickler 4
Bewertung
(69)
Projekte
82
11%
Schlichtung
12
67% / 25%
Frist nicht eingehalten
5
6%
Arbeitet
Veröffentlicht: 16 Artikel, 6 Beispiele
5
Entwickler 5
Bewertung
(454)
Projekte
718
34%
Schlichtung
34
71% / 9%
Frist nicht eingehalten
22
3%
Frei
6
Entwickler 6
Bewertung
(1156)
Projekte
1462
63%
Schlichtung
21
57% / 10%
Frist nicht eingehalten
43
3%
Frei
7
Entwickler 7
Bewertung
(574)
Projekte
945
47%
Schlichtung
309
58% / 27%
Frist nicht eingehalten
125
13%
Frei
8
Entwickler 8
Bewertung
Projekte
2
0%
Schlichtung
0
Frist nicht eingehalten
0
Frei
Ähnliche Aufträge
Nyctrad1 30+ USD
Free link free land free land free land free land free free land free land free things free land free land free land free land free land free land free land free Finch I will do it
Platform: MT5 (MQL5) OVERVIEW: I need a custom MT5 indicator that generates only high-probability A+ buy and sell signals. The indicator should combine market structure, support/resistance, liquidity sweeps, candlestick confirmations, session filtering, and Fibonacci retracement logic. FEATURES REQUIRED: SUPPORT & RESISTANCE Automatically detect and draw support and resistance levels. Levels should update
Title Professional AI Automation Trading Bot for Forex & Crypto Solution Language Python (preferred) or MQL5 depending on integration requirements. Categories Expert Advisor (EA) for MetaTrader 5 Automated trading strategies AI/ML-based signal generation Risk management automation Required Skills Strong knowledge of MQL5/Python Experience with MetaTrader API integration Machine learning model deployment
i want a developer to build me a robot according to mt style i want an engine which is going to trade gold with small accounts, i want it to be perfect or any developer who has that existing robot we can negoiate the price
Hi, I am looking for an experienced MQL5 developer to modify an existing, fully functional MetaTrader 5 Expert Advisor (Source code .mq5 Version 2.62 will be provided). Brief Overview of the EA: It executes trades based on 4 custom Supply/Demand levels (R1, R2, S1, S2) which are inputted manually . It uses two custom indicators for confirmation: SPA (Price Action filter) and AMG (Volume/Momentum filter). The code
Description: I am looking for an experienced MQL5 developer to build a fully automated Expert Advisor (EA) for MT5 tailored for Prop Firm challenges and funded accounts. I need a robust, plug-and-play solution with rigorous risk controls. Key Requirements: Platform: MT5 Trading Logic: I am looking for a reliable strategy based either on a Breakout Strategy (e.g., London session breakout) or a Mean Reversion Strategy
The striker robot 30 - 2000 USD
I would like a trend and pullback strategy for the robot timeframe:15 minutes(m15) or 1 hour(h1) indicators:50 EMA (Exponential Moving Average)/200 EMA/RSI (14) BUY SET UP 1.Confirm The Trend .50 EMA must be above 200 EMA .Price must be above both EMAs 2.Wait for a pullback .Do not buy when the price shoots up. .Wait for the price to come back near the 50 EMA 3.Confirm entry .ENTER BUY WHEN: .A bullish candlestick
//+------------------------------------------------------------------+ //| Simple XAUUSD EA | //+------------------------------------------------------------------+ input double LotSize = 0.01; input int StopLoss = 500; // in points input int TakeProfit = 1000; // in points input int MAPeriod = 20; int maHandle; int OnInit() { maHandle = iMA(_Symbol, PERIOD_H1, MAPeriod, 0, MODE_SMA
### ** Main EA File** - `InstitutionalTrendPullbackScalper.mq5` **Core Features Implemented:** **Multi-Timeframe Analysis** - M15 trend filter (EMA20 > EMA50 for uptrends) - M5 entry signals with 5-condition confirmation - Independent indicator sets for both symbols **Advanced Entry Logic** - RSI reversal detection (crosses thresholds) - Price pullback zone validation - Bullish/bearish candle close confirmation -
Automate my trading 100 - 300 USD
i want a trading bot that take trade auto and make 5% profit daily and stop with in 24 hours not more then that at least the bot give me more then 2% not less then that like a ai agent if it make any loss that agent have to take care of it i need only 5 % profit

Projektdetails

Budget
30+ USD
Ausführungsfristen
bis 1 Tag(e)