Erro de compilação - SymbolInfoInteger

 
//+------------------------------------------------------------------+
//| CalculateNextPurchaseLevel                                     |
//+------------------------------------------------------------------+
double CalculateNextPurchaseLevel()
{
    if (purchaseCount == 0)
        return initialPrice;

    double deviation = 0;
    double pointValue = SymbolInfoDouble(_Symbol, SYMBOL_POINT);
    
    long tickSizeLong = 0;
    if (!SymbolInfoInteger(_Symbol, SYMBOL_TRADE_TICK_SIZE, tickSizeLong)) {
        Print("Failed to get SYMBOL_TRADE_TICK_SIZE. Error: ", GetLastError());
        return initialPrice; // Fallback to initial price on error
    }
    int tickSize = (int)tickSizeLong; // Safe cast to int

    switch(DeviationMode)
    {
        case DEVIATION_PERCENT:
            deviation = initialPrice * (PriceDeviation / 100) * purchaseCount;
            break;
        case DEVIATION_POINTS:
            deviation = PointsDeviation * pointValue * purchaseCount;
            break;
        case DEVIATION_TICKS:
            deviation = TicksDeviation * tickSize * pointValue * purchaseCount;
            break;
    }
    
    return (StartMode == START_AUTO_BUY || StartMode == START_SIGNAL_SUPPORT)
        ? initialPrice - deviation
        : initialPrice + deviation;
}

'SymbolInfoInteger' - no one of the overloads can be applied to the function call Borrao.mq5 1158 10

could be one of 2 function(s) Borrao-Beta-Volume.mq5 1158 10

   built-in: long SymbolInfoInteger(const string,ENUM_SYMBOL_INFO_INTEGER) Borrao.mq5 1158 10

   built-in: bool SymbolInfoInteger(const string,ENUM_SYMBOL_INFO_INTEGER,long&) Borrao.mq5 1158 10

Alguém teria um material para indicar que possa esclarecer como resolver esse erro?


 

O valor de "Tick Size" é um "double" e não um "long". Utilize a função SymbolInfoDouble ...

   double dbTickSize = 0;
   if( !SymbolInfoDouble( _Symbol, SYMBOL_TRADE_TICK_SIZE, dbTickSize ) ) {
      Print("Failed to get SYMBOL_TRADE_TICK_SIZE. Error: ", GetLastError());
      return initialPrice; // Fallback to initial price on error
   };
Documentação sobre MQL5: Informações de Mercado / SymbolInfoDouble
Documentação sobre MQL5: Informações de Mercado / SymbolInfoDouble
  • www.mql5.com
Retorna a propriedade correspondente de um ativo especificado. Existem 2 variantes da função. 1. Imediatamente retorna o valor da...
 
Thiago LopesAlguém teria um material para indicar que possa esclarecer como resolver esse erro?
SYMBOL_TRADE_TICK_SIZE é identificador de propriedade da função SymbolInfoDouble().