Can Someone Help Me To Fix Theese 2 Errors PLS!!!

 
//+------------------------------------------------------------------+
//|                                                     OxygenTR.mq5 |
//|                             Copyright 2025, Hüseyin Avni Ekmekçi |
//|                                            haekmekci@hotmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, Hüseyin Avni Ekmekçi"
#property link      "haekmekci@hotmail.com"
#property version   "1.00"
#include <Trade\Trade.mqh>

// Input Parameters
input string Symbols = "EURUSD,GBPUSD,USDJPY"; // Comma-separated list of symbols to monitor
input int BarsToCheck = 10;                    // Number of bars to check for pip movement
input double MinPipMovement = 50;              // Minimum pip movement to trigger a trade
input double RiskPercentage = 1.0;             // Risk percentage per trade
input int TP_Pips = 100;                       // Take profit in pips
input int SL_Pips = 50;                        // Stop loss in pips
input double MaxSpread = 2.0;                  // Maximum allowed spread in pips
input int MaxSlippage = 3;                     // Maximum allowed slippage in points
input double MaxDrawdown = 20.0;               // Maximum allowed drawdown percentage
input bool UseTrailingStop = true;             // Enable/disable trailing stop
input int TrailingStopPips = 20;               // Trailing stop distance in pips

CTrade trade;
string symbolList[];
bool panelCreated = false;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
   StringSplit(Symbols, ',', symbolList);
   CreateTradePanel();
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
   for(int i = 0; i < ArraySize(symbolList); i++)
   {
      string symbol = symbolList[i];
      if(IsTradingAllowed(symbol))
      {
         double pipMovement = CalculatePipMovement(symbol, BarsToCheck);
         if(MathAbs(pipMovement) >= MinPipMovement)
         {
            int direction = pipMovement > 0 ? 1 : -1; // 1 for buy, -1 for sell
            OpenTrade(symbol, direction);
         }
      }
   }
   ManageTrades();
}

//+------------------------------------------------------------------+
//| Check if trading is allowed based on spread and drawdown         |
//+------------------------------------------------------------------+
bool IsTradingAllowed(string symbol)
{
   double spread = SymbolInfoDouble(symbol, SYMBOL_SPREAD) / GetPipValue(symbol);
   if(spread > MaxSpread)
      return false;

   double currentDrawdown = CalculateDrawdown();
   if(currentDrawdown > MaxDrawdown)
      return false;

   return true;
}

//+------------------------------------------------------------------+
//| Calculate pip movement over specified bars                       |
//+------------------------------------------------------------------+
double CalculatePipMovement(string symbol, int bars)
{
   double open = iOpen(symbol, PERIOD_CURRENT, bars);
   double close = iClose(symbol, PERIOD_CURRENT, 0);
   double pipValue = GetPipValue(symbol);
   return (close - open) / pipValue;
}

//+------------------------------------------------------------------+
//| Open a trade based on direction                                  |
//+------------------------------------------------------------------+
void OpenTrade(string symbol, int direction)
{
   double lotSize = CalculateLotSize(symbol, SL_Pips);
   double entryPrice = direction > 0 ? SymbolInfoDouble(symbol, SYMBOL_ASK) : SymbolInfoDouble(symbol, SYMBOL_BID);
   double tpPrice = direction > 0 ? entryPrice + TP_Pips * GetPipValue(symbol) : entryPrice - TP_Pips * GetPipValue(symbol);
   double slPrice = direction > 0 ? entryPrice - SL_Pips * GetPipValue(symbol) : entryPrice + SL_Pips * GetPipValue(symbol);

   trade.SetDeviationInPoints(MaxSlippage);
   if(direction > 0)
      trade.Buy(lotSize, symbol, entryPrice, slPrice, tpPrice, "Pip Divergence Buy");
   else
      trade.Sell(lotSize, symbol, entryPrice, slPrice, tpPrice, "Pip Divergence Sell");
}

//+------------------------------------------------------------------+
//| Calculate lot size based on risk and SL                          |
//+------------------------------------------------------------------+
double CalculateLotSize(string symbol, int slPips)
{
   double accountBalance = AccountInfoDouble(ACCOUNT_BALANCE);
   double pipValue = GetPipValue(symbol);
   double tickValue = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE);
   double riskAmount = accountBalance * (RiskPercentage / 100.0);
   double lotSize = riskAmount / (slPips * tickValue);
   return NormalizeDouble(lotSize, 2);
}

//+------------------------------------------------------------------+
//| Get pip value for the symbol                                     |
//+------------------------------------------------------------------+
double GetPipValue(string symbol)
{
   double point = SymbolInfoDouble(symbol, SYMBOL_POINT);
   int digits = (int)SymbolInfoInteger(symbol, SYMBOL_DIGITS);
   return digits == 5 || digits == 3 ? point * 10 : point;
}

//+------------------------------------------------------------------+
//| Calculate current drawdown percentage                            |
//+------------------------------------------------------------------+
double CalculateDrawdown()
{
   double balance = AccountInfoDouble(ACCOUNT_BALANCE);
   double equity = AccountInfoDouble(ACCOUNT_EQUITY);
   if(balance == 0) return 0.0;
   return ((balance - equity) / balance) * 100.0;
}

//+------------------------------------------------------------------+
//| Manage open trades (trailing stop)                               |
//+------------------------------------------------------------------+
void ManageTrades()
{
   if(!UseTrailingStop) return;

   for(int i = PositionsTotal() - 1; i >= 0; i--)
   {
      string symbol = PositionGetSymbol(i);
      if(PositionSelect(symbol))
      {
         double currentPrice = PositionGetDouble(POSITION_TYPE) == POSITION_TYPE_BUY ? SymbolInfoDouble(symbol, SYMBOL_BID) : SymbolInfoDouble(symbol, SYMBOL_ASK);
         double slPrice = PositionGetDouble(POSITION_SL);
         double openPrice = PositionGetDouble(POSITION_PRICE_OPEN);
         double pipValue = GetPipValue(symbol);

         if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
         {
            double newSL = currentPrice - TrailingStopPips * pipValue;
            if(newSL > slPrice && newSL > openPrice)
               trade.PositionModify(PositionGetTicket(i), newSL, PositionGetDouble(POSITION_TP));
         }
         else
         {
            double newSL = currentPrice + TrailingStopPips * pipValue;
            if(newSL < slPrice && newSL < openPrice)
               trade.PositionModify(PositionGetTicket(i), newSL, PositionGetDouble(POSITION_TP));
         }
      }
   }
}

//+------------------------------------------------------------------+
//| Create a simple chart trade panel                                |
//+------------------------------------------------------------------+
void CreateTradePanel()
{
   if(panelCreated) return;

   ObjectCreate(0, "PanelBackground", OBJ_RECTANGLE_LABEL, 0, 20, 20, 200, 100);
   ObjectSetInteger(0, "PanelBackground", OBJPROP_COLOR, clrLightGray);
   ObjectSetInteger(0, "PanelBackground", OBJPROP_BGCOLOR, clrLightGray);

   ObjectCreate(0, "PanelTitle", OBJ_LABEL, 0, 30, 30);
   ObjectSetString(0, "PanelTitle", OBJPROP_TEXT, "Pip Divergence EA");
   ObjectSetInteger(0, "PanelTitle", OBJPROP_COLOR, clrBlack);

   ObjectCreate(0, "StatusLabel", OBJ_LABEL, 0, 30, 50);
   ObjectSetString(0, "StatusLabel", OBJPROP_TEXT, "Monitoring...");
   ObjectSetInteger(0, "StatusLabel", OBJPROP_COLOR, clrBlack);

   panelCreated = true;
}

//+------------------------------------------------------------------+
//| Update panel status                                              |
//+------------------------------------------------------------------+
void UpdatePanelStatus()
{
   string status = "Symbols: " + Symbols + " | Drawdown: " + DoubleToString(CalculateDrawdown(), 2) + "%";
   ObjectSetString(0, "StatusLabel", OBJPROP_TEXT, status);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   ObjectDelete(0, "PanelBackground");
   ObjectDelete(0, "PanelTitle");
   ObjectDelete(0, "StatusLabel");
}

//+------------------------------------------------------------------+
//| Chart event handler for panel interaction                        |
//+------------------------------------------------------------------+
void OnChartEvent(const int id, const long& lparam, const double& dparam, const string& sparam)
{
   UpdatePanelStatus();
}
Files:
Adsqz.jpg  463 kb
 

1.

double spread = SymbolInfoInteger(symbol, SYMBOL_SPREAD) / GetPipValue(symbol);

2.

double currentPrice = (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) ? SymbolInfoDouble(symbol, SYMBOL_BID) : SymbolInfoDouble(symbol, SYMBOL_ASK);