Questions des débutants MQL5 MT5 MetaTrader 5 - page 708

 

Bon après-midi. Je normalise les valeurs, mais en déboguant les chiffres avec *e, comment se fait-il ?

Je n'arrive pas à écrire les valeurs dans Excel.

Si un autre paramètre est assigné au tableau (arrayZ[0][q][z] = 0 ;), on enregistre

for(int z = 0; z < copied && z<=ARRAY_SIZE_X; z++) // отбор по барам
   {
    arrayIndexY[z] = srcArr[z].close; //данные колонки У

    for(int q = 1; q <= copied-1; q++) //Перебор периодов
    {
  
    {
    qer = NormalizeDouble(sm.d[q-1].m[nBar-z],Digits());
    wer = NormalizeDouble(sm.d[q].m[nBar-z],Digits());
    arrayZ[0][q][z] = NormalizeDouble(qer-wer,Digits());} // ответы с е, че заааа


    }
      
   }
   flag = false;
        
   GenerateCsv("test.csv");  
   }
Dossiers :
d4rw9gqntl.jpg  157 kb
 
Top2n:

Bon après-midi. Je normalise les valeurs, mais en déboguant les chiffres avec *e, comment se fait-il ?

Je n'arrive pas à écrire les valeurs dans Excel.

Si un autre paramètre est assigné au tableau (arrayZ[0][q][z] = 0 ;), on enregistre

for(int z = 0; z < copied && z<=ARRAY_SIZE_X; z++) // отбор по барам
   {
    arrayIndexY[z] = srcArr[z].close; //данные колонки У

    for(int q = 1; q <= copied-1; q++) //Перебор периодов
    {
  
    {
    qer = NormalizeDouble(sm.d[q-1].m[nBar-z],Digits());
    wer = NormalizeDouble(sm.d[q].m[nBar-z],Digits());
    arrayZ[0][q][z] = NormalizeDouble(qer-wer,Digits());}
    qer;

    }
      
   }
   flag = false;
        
   GenerateCsv("test.csv");  
   }
UtilisezDoubleToString() pour la sortie imprimée.
 
Artyom Trishkin:
Utilisez DoubleToString() pour la sortie imprimée.
Merci !
 
Bonjour, est-il vrai qu'il est possible de gagner de l'argent sur ce forum ? Si oui, pouvez-vous me dire comment ?
 
elektrik777:
Bonjour, est-il vrai qu'il est possible de gagner de l'argent sur ce forum ? Si oui, pouvez-vous me dire comment ?
Plus d'actualité - cette possibilité a été désactivée, mais vous pouvez programmer, vendre des ressources informatiques et écrire des articles.
 

Bonjour, Tâche : Trouver les prix H(max) ou L(min) dans un nombre donné de barres en question.

J'ai cherché un peu partout, mais je ne peux pas attribuer une plage de sélection, c'est-à-dire l'endroit où insérer la variable (DO), pour sélectionner l'intervalle de recherche.

double UpperFractal(int DO)  // Фрактал UP
{
  //--- объявление переменных
   int n,UpperFractal_1;
//--- объявление массивов для записи значений буферов индикатора iFractal
   double FractalUp[];
   double UpFractal_1;
//--- сначала нужно записать в массивы значения буферов индиктора Fractal
//--- заполнение данными буфера
   CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUp);
//--- индексация как в таймсериях
   ArraySetAsSeries(FractalUp,true);
  
//--- далее используем оператор цикла for для поиска первого верхнего фрактала
   for(n=0; n<Bars(Symbol(),PERIOD_CURRENT); n++)
     {
      //--- если непустое значение, прерываем цикл
      if(FractalUp[n]!=EMPTY_VALUE)
         break;
     }
//--- запишем ценовое значение первого фрактала в переменную
   UpFractal_1=FractalUp[n];
//--- запишем индекс первого фрактала в переменную
   UpperFractal_1=n;
  
   return (UpFractal_1);
}
 
Top2n:

Bonjour, Tâche : Trouver les prix H(max) ou L(min) dans un nombre donné de barres en question.

J'ai cherché un peu partout, mais je ne peux pas attribuer une plage de sélection, c'est-à-dire l'endroit où insérer la variable (DO), pour sélectionner l'intervalle de recherche.

double UpperFractal(int)  // Фрактал UP
{
  //--- объявление переменных
   int n,UpperFractal_1;
//--- объявление массивов для записи значений буферов индикатора iFractal
   double FractalUp[];
   double UpFractal_1;
//--- сначала нужно записать в массивы значения буферов индиктора Fractal
//--- заполнение данными буфера
   CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUp);
//--- индексация как в таймсериях
   ArraySetAsSeries(FractalUp,true);
  
//--- далее используем оператор цикла for для поиска первого верхнего фрактала
   for(n=0; n<Bars(Symbol(),PERIOD_CURRENT); n++)
     {
      //--- если непустое значение, прерываем цикл
      if(FractalUp[n]!=EMPTY_VALUE)
         break;
     }
//--- запишем ценовое значение первого фрактала в переменную
   UpFractal_1=FractalUp[n];
//--- запишем индекс первого фрактала в переменную
   UpperFractal_1=n;
  
   return (UpFractal_1);
}


Pourquoi dois-je utiliser des fractales ?

D'abord CopyHigh() pour la plage requise, puis dans le tableau où la plage est copiée, cherchez max (ArrayMaximum()).

Idem pour min, mais CopyLow() et ArrayMinimum()

 
Merci !!!!!
 

Je ne comprends pas ce qui ne va pas, la tâche consiste à trouver la valeur minimale sur un intervalle donné (index).

//+------------------------------------------------------------------+
//| Получим Low для заданного номера бара                            |
//+------------------------------------------------------------------+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
  {
   double low=0;
   ArraySetAsSeries(Low,true);
   int copied=CopyLow(symbol,timeframe,0,index,Low);
   if(copied>0 && index<copied) low=ArrayMinimum(Low);
   return(low);
  }
 
Top2n:

Je ne comprends pas ce qui ne va pas, la tâche consiste à trouver la valeur minimale sur un intervalle donné (index).

//+------------------------------------------------------------------+
//| Получим Low для заданного номера бара                            |
//+------------------------------------------------------------------+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
  {
   double low=0;
   ArraySetAsSeries(Low,true);
   int copied=CopyLow(symbol,timeframe,0,index,Low);
   if(copied>0 && index<copied) low=ArrayMinimum(Low);
   return(low);
  }


ArrayMinimum renvoie l'INDEX de l'élément dont la valeur est la plus faible. Maintenant nous devons récupérer la valeur elle-même du tableauLow par l'indexlow:

Faible [faible]