Probleme Tableau Handle RSI recuperation

 

Bonjour,

Je débute dans le langage MQL5 ayant déja des base de c et mql4, mais je vous avoue que je nage completement dans leur logique enfin bref voici j'apprend en manipulant les base.
Je suis confronter a ceci je recupere le handle du rsi pour le mettre dans un tableau mais moi j'ai besoin des valeur du rsi sur une periode donné. Mais impossible de recupere la valeur sois sa me sort 10 ou zero.
Apparament il y a un cast a faire mais je ne comprend pas le problème ni meme si mon code est bon.

c'est un code basic je veux recupere les point haut et bas et ensuite recupere les divergence, pour apprendre les base.

Je demande pas qu'on corrige mon code dans le fond, mais simplement qu'on m'explique pourquoi mon printf(low) ne fonctionne pas je copie une valeur d'un tableau dans mon int. Alors j'ai essayer le double le ulong même un string :)

Et ensuit qui peut me dire la différence entre Print et printf ?


Merci a vous

Bonne journée

//+------------------------------------------------------------------+
//|                                                    Essai0.01.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"


double bufferRsi[]; // creation de tableau pour valeur de rsi
int rsi;
int tendanceHaussier = 0;
int tendanceBaissier = 0;
int high = 0;
int high2 = 0;
double low = 0;
int low2 = 0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {


   ArraySetAsSeries(bufferRsi, true); // on intialise le tableau a 0 pour valeur recente

   rsi = iRSI(_Symbol,PERIOD_H1,21,PRICE_CLOSE); // on recupere handle(valeur) du rsi

  
   tendanceHaussier = 0;
   tendanceBaissier = 0;




   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {




  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

      CopyBuffer(rsi,0,0,24,bufferRsi);  // copy les valeur recupere avec iRSI dans le tableau buffferRsi - retourne -1 en cas d'erreur
      if(bufferRsi[0]>bufferRsi[23])
        {
         printf("La tendance est haussier");
         for(int i = 0;i<23;i++)
         {
            if(bufferRsi[i] <low)
            {
               low =bufferRsi[i];
            }
            printf(low);
         }
         
         tendanceHaussier++;
        }
        

      else
         if(bufferRsi[0]<bufferRsi[23])
           {
            //printf("La tendance est baissier");
            tendanceBaissier++;
           }

         else
           {
            printf("Le marché est en range.");
           }


     
  
  
  }
//+------------------------------------------------------------------+

/*
double getRsi() // fonction de recuperation valeur du rsi dans tableau
{
   double bufferRsi[]; // creation de tableau pour valeur de rsi

   ArraySetAsSeries(bufferRsi, true); // on intialise le tableau a 0 pour valeur recente

   int rsi = iRSI(_Symbol,PERIOD_H1,21,PRICE_CLOSE); // on recupere handle(valeur) du rsi

   CopyBuffer(rsi,0,0,5,bufferRsi); // copy les valeur recupere avec iRSI dans le tableau buffferRsi - retourne -1 en cas d'erreur


}*/
//+------------------------------------------------------------------+
Raison: