I Need Debugging For My Personal Source Code EA

Specifiche

here's the code,

+------------------------------------------------------------------+

//|                                                         kama.mq4 |
//|                        Copyright 2022, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//|                 Heikin/Kaufman Strategy Expert Advisor           |
//|                        By OpenAI (ChatGPT)                       |
//+------------------------------------------------------------------+

// Inputs
input int Length = 5;
input double Fastend = 2.5;
input int Slowend = 20;
input int test = 0;
input int sloma = 20;

// Indicator buffers
double nAMABuffer[];
double fmaBuffer[];
double smaBuffer[];
double ha_closeBuffer[];
double mha_closeBuffer[];

// External variables
extern double LotSize = 0.01;  // Trading lot size
extern int StopLoss = 50;      // Stop loss in pips
extern int TakeProfit = 100;   // Take profit in pips

// Trading parameters
int ticket = -1;
int slippage = 3;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void 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 start = prev_calculated > 0 ? prev_calculated - 1 : 0;

   ArrayResize(nAMABuffer, rates_total);
   ArrayResize(fmaBuffer, rates_total);
   ArrayResize(smaBuffer, rates_total);
   ArrayResize(ha_closeBuffer, rates_total);
   ArrayResize(mha_closeBuffer, rates_total);

   double nfastend = 2 / (Fastend + 1);
   double nslowend = 2 / (Slowend + 1);

   for(int i = start; i < rates_total; i++)
     {
      double xPrice = (high[i] + low[i] + close[i]) / 3;
      double xvnoise = MathAbs(xPrice - xPrice[test]);
      double nsignal = MathAbs(xPrice - xPrice[i - Length]);
      double nnoise = 0;

      for(int j = i - Length + 1; j <= i; j++)
        {
         double xv = MathAbs((high[j] + low[j] + close[j]) / 3 - (high[j - 1] + low[j - 1] + close[j - 1]) / 3);
         nnoise += xv;
        }

      double nefratio = nnoise != 0 ? nsignal / nnoise : 0;
      double nsmooth = MathPow(nefratio * (nfastend - nslowend) + nslowend, 2);
      nAMABuffer[i] = i > 0 ? nAMABuffer[i - 1] + nsmooth * (xPrice - nAMABuffer[i - 1]) : xPrice;

      int ha_t = iCustom(NULL, 0, "Heikin Ashi", 0, i);
      ha_closeBuffer[i] = iCustom(NULL, 0, "Heikin Ashi", 2, i, ha_t);
      mha_closeBuffer[i] = iCustom(NULL, res1, "Heikin Ashi", 1, i, ha_t);

      if(i >= test)
        {
         fmaBuffer[i] = iMAOnArray(mha_closeBuffer, rates_total, 1, 0, test, i);
        }
      if(i >= sloma)
        {
         smaBuffer[i] = iMAOnArray(ha_closeBuffer, rates_total, sloma, 0, MODE_EMA, i);
        }
     }
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
   SetIndexBuffer(0, fmaBuffer);
   SetIndexBuffer(1, smaBuffer);
   SetIndexStyle(0, DRAW_LINE);
   SetIndexStyle(1, DRAW_LINE);
   SetIndexLabel(0, "MA");
   SetIndexLabel(1, "SMA");

   double emptyBufferArray[];
  
     {
      int totalBars = ArraySize(open); // Retrieve the size of the 'open' array
      int start = prev_calculated > 0 ? prev_calculated - 1 : 0;

      // Rest of your code...

      for(int i = start; i < totalBars; i++)
        {
         // Processing for each bar
        }

      // Rest of your code...
     }

   SetIndexBuffer(2, emptyBufferArray, INDICATOR_DATA);

   double emptyBufferArray2[];
   ArrayResize(emptyBufferArray2, rates_total);
   SetIndexBuffer(3, emptyBufferArray2, INDICATOR_DATA);

   SetIndexStyle(2, DRAW_ARROW);
   SetIndexStyle(3, DRAW_ARROW);
   SetIndexArrow(2, SYMBOL_ARROWUP);
   SetIndexArrow(3, SYMBOL_ARROWDOWN);
   SetIndexEmptyValue(2, 0);
   SetIndexEmptyValue(3, 0);

   return INIT_SUCCEEDED;
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ArrayFree(nAMABuffer);
   ArrayFree(fmaBuffer);
   ArrayFree(smaBuffer);
   ArrayFree(ha_closeBuffer);
   ArrayFree(mha_closeBuffer);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(ticket == -1 && OrdersTotal() == 0)
     {
      int rates_total = RatesTotal();
      int start = MathMax(0, rates_total - 1 - 1000);

      for(int i = start; i < rates_total; i++)
        {
         if(fmaBuffer[i - 1] > smaBuffer[i - 1] && fmaBuffer[i] < smaBuffer[i])
           {
            ObjectCreate("CrossUnder", OBJ_TRIANGLE, 0, Time[i], High[i], 0);
            ObjectSet("CrossUnder", OBJPROP_STYLE, STYLE_SOLID);
            ObjectSet("CrossUnder", OBJPROP_WIDTH, 1);
            ObjectSet("CrossUnder", OBJPROP_BACK, Red);
            ObjectSetText("CrossUnder", "S", 8, "Arial", Red);
           }
        }

      if(fmaBuffer[rates_total - 2] > smaBuffer[rates_total - 2] && fmaBuffer[rates_total - 1] < smaBuffer[rates_total - 1])
        {
         ticket = OrderSend(Symbol(), OP_BUY, LotSize, Ask, slippage, Ask - StopLoss * Point, Ask + TakeProfit * Point);
         if(ticket < 0)
            Print("Error opening buy order:", GetLastError());
        }
      else

        {
         if(ticket == -1 && OrdersTotal() == 0)
           {
            int crossUnderBar = -1;


              {
               if(fmaBuffer[i - 1] > smaBuffer[i - 1] && fmaBuffer[i] < smaBuffer[i])
                 {
                  crossUnderBar = i;
                 
                 }
              }

            if(crossUnderBar != -1)
              {
               double crossUnderPrice = Low[crossUnderBar];
               ObjectCreate("CrossUnder", OBJ_TRIANGLE, 0, Time[crossUnderBar], crossUnderPrice, 0);
               ObjectSet("CrossUnder", OBJPROP_STYLE, STYLE_SOLID);
               ObjectSet("CrossUnder", OBJPROP_WIDTH, 1);
               ObjectSet("CrossUnder", OBJPROP_BACK, Red);
               ObjectSetText("CrossUnder", "S", 8, "Arial", Red);
              }

            // Rest of your code...
           }

         // Rest of your code...
        }

        {
         ticket = OrderSend(Symbol(), OP_SELL, LotSize, Bid, slippage, Bid + StopLoss * Point, Bid - TakeProfit * Point);
         if(ticket < 0)
            Print("Error opening sell order:", GetLastError());
        }
     }

   if(ticket >= 0)
     {
      if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
        {
         if(OrderType() == OP_BUY && Bid - OrderStopLoss() > TakeProfit * Point)
           {
            if(OrderModify(ticket, OrderOpenPrice(), Bid - TakeProfit * Point, OrderTakeProfit(), 0, Green))
              {
               ticket = -1;
              }
            else
              {
               Print("Error modifying buy order:", GetLastError());
              }
           }
         else
            if(OrderType() == OP_SELL && OrderStopLoss() - Ask > TakeProfit * Point)
              {
               if(OrderModify(ticket, OrderOpenPrice(), Ask + TakeProfit * Point, OrderTakeProfit(), 0, Green))
                 {
                  ticket = -1;
                 }
               else
                 {
                  Print("Error modifying sell order:", GetLastError());
                 }
              }
        }
      else
        {
         Print("Error selecting order:", GetLastError());
         ticket = -1;
        }
     }
  }
//+------------------------------------------------------------------+

Con risposta

1
Sviluppatore 1
Valutazioni
(584)
Progetti
915
46%
Arbitraggio
31
39% / 29%
In ritardo
93
10%
In elaborazione
2
Sviluppatore 2
Valutazioni
(57)
Progetti
72
22%
Arbitraggio
13
46% / 15%
In ritardo
5
7%
Gratuito
3
Sviluppatore 3
Valutazioni
(566)
Progetti
639
41%
Arbitraggio
21
57% / 29%
In ritardo
45
7%
Caricato
4
Sviluppatore 4
Valutazioni
(6)
Progetti
10
50%
Arbitraggio
6
17% / 50%
In ritardo
3
30%
In elaborazione
5
Sviluppatore 5
Valutazioni
(135)
Progetti
195
81%
Arbitraggio
18
28% / 44%
In ritardo
10
5%
Caricato
6
Sviluppatore 6
Valutazioni
(10)
Progetti
15
27%
Arbitraggio
3
67% / 33%
In ritardo
0
Gratuito
7
Sviluppatore 7
Valutazioni
(63)
Progetti
75
55%
Arbitraggio
0
In ritardo
0
Gratuito
8
Sviluppatore 8
Valutazioni
(52)
Progetti
96
24%
Arbitraggio
9
22% / 22%
In ritardo
12
13%
In elaborazione
9
Sviluppatore 9
Valutazioni
(145)
Progetti
162
41%
Arbitraggio
5
0% / 80%
In ritardo
8
5%
In elaborazione
10
Sviluppatore 10
Valutazioni
(48)
Progetti
53
8%
Arbitraggio
18
17% / 39%
In ritardo
3
6%
Occupato
Ordini simili
I bought FXSSI.com tools (sentiment indicator) including the following indicator: FXSSI.Ratio.ex4 (.mq4 versions are not provided) Now I am trying to export the indicators' output values in an EA in order to generate trading signals and to backtest strategies based on various combinations of some of these indicators but I can't make it work. I use iCustom() but it always returns either: > 2147483647 if indicator is
The concept is pretty simple and straight forward. When price hit support and form a green candle and the CCI line is either in the over sold level or below the middle/zero line, then it will be a BUY. And when price hit resistance and form a RED candle and the CCI line is either in the over bought level or above the middle/zero line, then it will be a SELL. Now another condition for buy and sell. When price cross
Convert Pine Script Trading view To MT4 Convert Attach Script to mt4 with buy and sell signals on Chart and Data Window. The buy and sell signal must be the SAME signals, on the same candles. No deviation. Must Match BTC 1 hr to buy and sell signals... no deviation
hello 👋 great developer am looking for developer that will help me to convert pinescript strategy to mt4 strategy I will be looking for your bid soon Best regards Ayofe
Hello! I need to make the indicator for Forex Tester 5. The platform supports indicators/strategies/scripts which are written in .dll format and can be created in Delphi or C++ programming languages. Are you interested in the task? In the attached files the Task is explained, and in the file in Excel you can see the formulas and data. The task is to make an indicator for Forex Tester 5. If you want to fulfil the
Rules for price action bot: write me an mt5(mql5) .mq5 code expert advisor with the following rules: rules= 1.strategies-Pin Bar Strategy,Inside Bar Strategy,Engulfing Candlestick Strategy,Breakout and Retest Strategy,Trendline Trading Strategy,Hammer Candlestick Pattern,Shooting Star Candlestick Pattern,Three Inside Up Candlestick Pattern,Three Inside Down Candlestick Pattern,Morning Star Candlestick
THE DEVELOPER MUST NOT HAVE ANY PENDING JOBS TIME IS OF THE ESSENCE I ALREADY HAVE SORUCE CODE, ADD ENTRIES AND CONDITIONS TO CODE I NEED THIS DONE BY TODAY OR TOMORROW MORNING THE LATEST The MT4 EA will work simultaneously on multi pairs the broker has to offer. The opening procedure will begin as follows: In this example I will use a BUY order. The same for SELL order. When the EA is dragged/ double clicked/ added
I need someone who would use four moving averages on the mt4 and mt5 platform to create a trading robot The first moving average period would be 10, method is simple, applied to close, The second one is period 30,method is exponential, applied to close, the third one is period 50, method is simple , applied to close. The fourth one is period 200, method is simple and applied to close The 200 has to cross the rest of
I want to create dashboard Indicator to show data of “Moving Average” and “Break Out Structure” for all time frames My indicator must show data of “Moving Average” and “Break Out Structure” for all time frame For MA, show green you can Inspire and use its original script from this indicator hen MA 10 is above MA200, otherwise show red For the Breakout Of structure, show green for Bullish structure and red for bearish
The strategy is based on identifying overbought and oversold conditions across multiple timeframes. The primary indicator used is the stochastic indicator. Stochastic Settings: • %K period: 100 • %D period: 5 • Slowing: 4 •Price field : close/close For buying: • stochastic Signal line/Both Most be in the oversold zone (20 level of stochastic) on the H4, H1, 30m, 15m, 5m, and 1m timeframes. Final confirmation For a

Informazioni sul progetto

Budget
40+ USD
Per lo sviluppatore
36 USD