I Need Debugging For My Personal Source Code EA

명시

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;
        }
     }
  }
//+------------------------------------------------------------------+

응답함

1
개발자 1
등급
(636)
프로젝트
1006
47%
중재
33
36% / 36%
기한 초과
99
10%
작업중
게재됨: 6 코드
2
개발자 2
등급
(57)
프로젝트
72
22%
중재
13
46% / 15%
기한 초과
5
7%
무료
3
개발자 3
등급
(568)
프로젝트
641
41%
중재
25
48% / 36%
기한 초과
46
7%
작업중
4
개발자 4
등급
(6)
프로젝트
10
50%
중재
6
17% / 50%
기한 초과
3
30%
작업중
5
개발자 5
등급
(152)
프로젝트
228
80%
중재
22
27% / 50%
기한 초과
11
5%
무료
게재됨: 24 기고글, 1882 코드
6
개발자 6
등급
(11)
프로젝트
18
28%
중재
4
50% / 50%
기한 초과
1
6%
무료
7
개발자 7
등급
(215)
프로젝트
226
76%
중재
0
기한 초과
0
무료
8
개발자 8
등급
(54)
프로젝트
102
23%
중재
12
25% / 17%
기한 초과
13
13%
무료
9
개발자 9
등급
(171)
프로젝트
195
42%
중재
13
8% / 54%
기한 초과
9
5%
무료
게재됨: 3 코드
10
개발자 10
등급
(75)
프로젝트
80
6%
중재
46
11% / 54%
기한 초과
7
9%
작업중
비슷한 주문
i need someone that can make me an EA really easy with the martingala system?, I am looking for something that doesn't exceed 5 trades for the martingale, I think I did it, but it only works for propfirms, So i need to develop it on ninja trader I have identified a very very simple strategy but it only works on propfirms, with only two propfirm accounts, i absolutely need account A and account, And they have to open
Hi, I’m looking for an experienced MT5/MQL5 developer to assess and potentially develop a custom trade copier. The requirement is to copy trades from Vantage Web Copy Trading to an MT5 account in real time. Core requirements: Source: Vantage Web Copy Trading Destination: MT5 Instrument: XAUUSD only Copy trade opening and closing Copy partial closures No SL/TP required MT5 account can be with Vantage or another
Swing Breaks & AMD Expert Advisor The Swing Breaks & AMD Expert Advisor is an automated trading system designed around two core market-structure concepts: Swing Breaks and the AMD (Accumulation, Manipulation, Distribution) model . The EA is designed to analyze price action, identify meaningful swing structures, detect potential breaks of those structures, and evaluate the surrounding market behavior for possible AMD
I'm looking for a swing trading EA that takes 1-3 trades / week, holds these positions from a few days up to about 1.5 weeks. Symbol : any Strategy : any Timeframe : any Platform : MT4 only The catch : you would need to come up with the STRATEGY AND do the CODING The must have's : c onstant monthly returns, low drawdown I will backtest the trial version of your .ex4 file for 20+ years with 99.9% tick data accuracy
I'm a ninja trader day trader and I have worked with a company called Legendary Trader and use their indicated and automated strategies to trade. I rencenly have been playing with a free indicator I was able to download that uses CCI & ATR calculations to define the market being in an up or down trend. I have found in reviewing historical data that taking a trade when the signal flips from bull to bear sentiment or
PROJECT OVERVIEW I need a production-grade, modular Expert Advisor for MetaTrader 5 built to institutional coding standards. This is not a simple indicator-crossover bot. The system must be object-oriented, fully commented, and structured so individual modules can be replaced or disabled without breaking the build. Broker: IC Markets Raw. Primary symbol: XAUUSD. Secondary validation: EURUSD, GBPUSD, USDJPY, AUDUSD
Access and confidentiality restrictions: You will receive only a separately named copy of the Commander . Existing trading EAs, presets, account credentials, Telegram credentials and proprietary entry/exit code will not be shared. The Commander intelligence must be developed using: Defined signal/input interfaces Anonymized historical logs and replay data Mock EA signals and test harnesses Documented authority and
need an EA or indicator done , based on any strategy but with the following specific risk management parameters ; were i am able to do at least 2RR(standard reward-risk ratio for every trade) , fair win rate that is at leat 50% , EA should be able to generate at least 2 trades and above per week , favourable sharpe ratio . total drawdown of not more than 8% any given month and not over 3% any given day , would
I need an MQL5 trading robot for Forex. It should open and close trades based on my strategy rules. Please include money management, stop loss, take profit, and lot size settings. The EA should be stable, easy to edit, and tested before delivery. I will share the exact entry and exit rules with the developer
I need a professional programmer who can code this top tier professional synthetic index EA structure perfectly to my laptop extra perfectly payment after successful job very urgent needed here in Nigeria at onitsha Here is my contact you can message me on my WhatsApp 09121052987/ direct call 09038568050

프로젝트 정보

예산
40+ USD