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
4
0% / 75%
Frist nicht eingehalten
8
8%
Arbeitet
Veröffentlicht: 10 Beispiele
4
Entwickler 4
Bewertung
(70)
Projekte
83
11%
Schlichtung
13
62% / 23%
Frist nicht eingehalten
6
7%
Frei
Veröffentlicht: 16 Artikel, 6 Beispiele
5
Entwickler 5
Bewertung
(454)
Projekte
719
34%
Schlichtung
35
69% / 9%
Frist nicht eingehalten
22
3%
Arbeitet
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
Specification : 1. Goal I am commissioning a mean-reversion grid Expert Advisor for XAUUSD on MT5. The deliverable is the complete, commented .mq5 source (strictly personal usel). Offers limited to compiled .ex5 will not be considered. 2. Required framework (non-negotiable) 2.1. Works natively on M5; signals evaluated on closed bars; symmetric long/short. 2.2. Entry logic built on Bollinger Bands + Moving Average
TumiiFX 30 - 20000 USD
1. Use two EMAs: 20 and 50. If EMA 20 is above EMA 50 → uptrend (look for buys) If EMA 20 is below EMA 50 → downtrend (look for sells) 2. Wait for a pullback into the area between the two EMAs. - For buys: price must touch or move between EMA 20 and EMA 50 during the last few candles. - For stils: same idea, but in a downtrend. 3. Entry signal: Buy: a bullish engulfing candle in an uptrend after the pullback
Bot 30 - 80 USD
I am looking for an experienced MQL5 developer to create a fully automated Expert Advisor (EA) for MetaTrader 5 based on a Price Action strategy. The bot needs to automatically identify specific candlestick formations and market structure levels, execute trades, and manage risk using a dynamic trailing stop.The EA should monitor the chart for the following price action setup:Market Structure / Trend Filter:The bot
I am looking for an experienced MQL5 developer to build a high-frequency (HFT) latency arbitrage Expert Advisor for Pepperstone MT5 , using LMAX as the leading price feed. The initial focus will be on US30 (Dow Jones) , and if the strategy proves successful, I want the EA to be easily expandable to additional symbols such as NAS100, GER40, XAUUSD, major forex pairs, and other supported instruments. The EA should
Master mind 30+ USD
Start ↓ Detect Trend (H4) ↓ Confirm Structure (H1) ↓ Wait for Pullback ↓ Check Indicators ↓ Calculate Confidence Score ↓ Score ≥ 80? ├── No → Wait └── Yes ↓ Calculate Lot Size ↓ Place Order ↓ Set Stop Loss ↓ Set Take Profit ↓ Manage Trade ↓ Move to Break-even ↓ Trail Stop ↓ Close Trade. IF Price > EMA200 (H4) AND EMA50 > EMA200 (H4) AND ADX > 25 AND RSI between 55 and 70 AND MACD Main > Signal AND Bullish engulfing
A robot 50+ USD
HIGH-FREQUENCY M5/M15 CONCURRENT ENTRY SNIPER import time class HighFrequencySniper: def __init__(self): self.target_profit = 25.00 # Targeted Delta Move self.max_execution_time = 3600 # 1 Hour Sandbox (Seconds) self.lot_allocation = "CALIBRATED_TO_RISK" def execute_hft_scan(self, current_price, m5_rsi, m15_order_block): print(f"[SCANNING] Current Kernel Metric: ${current_price:.2f
*Need an MQL5 EA for MT5 to trade gold and forex automatically. Must include Stop Loss, Take Profit, and basic risk management. Budget is $30 to $50. Looking for clean, stable code that works on VPS.*
Hello Developers, I am looking for an experienced MQL5 developer to complete the development of a custom MetaTrader 5 Expert Advisor (EA) based on my proprietary trading strategy. I already have a partially developed EA that includes the required custom indicators and part of the trading logic. The project can either be completed by modifying the existing EA or, if more appropriate, by rebuilding it from scratch
QUIERO CONSEGUIR EL CODIGO FUENTE DE ESTE INDICADOR QUE ME GUSTA MUCHO TAMBIEN TIENE EL NOMBRE DE ET BANDS O ENTRY EXIT TIMING . no se los componentes pero estas son las imagenes. que mejor lo describen
Poptavka ZN 35 - 40 USD
Požadavky: platforma MetaTrader 5, jazyk MQL5; předání úplného a čitelného zdrojového kódu .mq5 a všech potřebných .mqh souborů; zákazů knihoven, DLL, vzdálených serverů a externí licenční kontroly; zákaz martingale, gridu, navyšování pozice po ztrátě a obchodování bez stop-lossu; výpočet velikosti pozice podle procenta rizika a skutečné měny účtu; nastavitelné maximální denní riziko a celkové čerpání; ochrana proti

Projektdetails

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