Ayuda !!! estoy creando un experto y tengo errores, quien me ayuda ?

 
    // Parámetros del MACD
    input int macdFastEMA = 12;
    input int macdSlowEMA = 26;
    input int macdSignalSMA = 9;
     
    // Parámetros del RSI
    input int rsiPeriod = 14;
    input int rsiBuyLevel = 30;
    input int rsiSellLevel = 70
     
    // Variables globales
    int macdHandle, rsiHandle;
     
    // Función de inicialización del experto
    int OnInit()
    {
         // Crear el indicador MACD
         macdHandle = iMACD(
     _            Symbol,              // Símbolo actual
                   Period(),             // Marco de tiempo actual
                  macdSlowEMA,          // EMA lenta del MACD
                  macdSlowEMA,          // EMA lenta del MACD
                  macdSignalSMA,        // SMA de la señal del MACD
                  PRICE_CLOSE           // Precio de cierre utilizado para el cálculo
      );
     
             // Crear el indicador RSI
                     rsiHandle = iRSI(
                     _Symbol,              // Símbolo actual
                     Period(),             // Marco de tiempo actual
                     rsiPeriod,            // Período del RSI
                     PRICE_CLOSE           // Precio de cierre utilizado para el cálculo
      );
     
         return INIT_SUCCEEDED;
     }
     
    // Función de desinicialización del experto
    void OnDeinit(const int reason)
    {
                    // Realizar acciones de limpieza o liberación de recursos
    }
     
    // Función de tick del experto
    void OnTick()
    {
                   // Obtener los valores actuales del MACD
                   double macdMain, macdSignal, macdHist;
     
                    if (CopyBuffer(macdHandle, 0, 0, 1, macdMain) > 0 &&
                        CopyBuffer(macdHandle, 1, 0, 1, macdSignal) > 0)
    {
                  // Obtener el valor actual del RSI
                   double rsiValue = iRSI(
                       _Symbol,              // Símbolo actual
                       Period(),             // Marco de tiempo actual
                       rsiPeriod,            // Período del RSI
                       0                     // Desplazamiento, 0 para el bar actual
            );
     
             // Verificar las condiciones para una entrada larga (compra)
             if (macdMain > macdSignal && rsiValue < rsiBuyLevel)
          {
             // Realizar la acción para una entrada larga (compra)
            // ...
          }
     
            // Verificar las condiciones para una entrada corta (venta)
            if (macdMain < macdSignal && rsiValue > rsiSellLevel)
          {
            // Realizar la acción para una entrada corta (venta)
            // ...
           }
       }
     }

    y los errores que da son :)


    Descripcion
    linea
    columna
    'CopyBuffer' - no one of the overloads can be applied to the function call
    51   
    9
      could be one of 3 function(s)   
    51
    9
      built-in: int CopyBuffer(int,int,int,int,double&[])   
    51   
    9
      built-in: int CopyBuffer(int,int,datetime,int,double&[])   
    51
    9
    possible use of uninitialized variable 'macdSignal' 
    62
    24
    possible use of uninitialized variable 'macdMain' 
    62   
    13
    variable 'macdHist' not used       
    48
    34
    2 errors, 3 warnings      
    3
    4
     

    agregale esto y lo solucionas 

    double macdMainArray[1], macdSignalArray[1];
    
    if (CopyBuffer(macdHandle, 0, 0, 1, macdMainArray) > 0 &&
    
        CopyBuffer(macdHandle, 1, 0, 1, macdSignalArray) > 0)
    
    {
    
        double macdMain = macdMainArray[0];
    
        double macdSignal = macdSignalArray[0];
    
        // Rest of the code...
    
    }

    saludos

     
    Carlos Castellanos #:

    agregale esto y lo solucionas 

    saludos

    He modificado y corregido su anterior publicación. Por favor, en próximas ocasiones tenga en cuenta lo siguiente:

    • Debe compartir código usando el botón 'Código'.