Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 708

 

Guten Tag. Ich normalisiere die Werte, aber beim Debuggen der Zahlen mit *e wie kommt das?

Ich kann die Werte nicht in Excel eingeben.

Wenn dem Array ein weiterer Parameter zugewiesen wird (arrayZ[0][q][z] = 0;), speichert es

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");  
   }
Dateien:
d4rw9gqntl.jpg  157 kb
 
Top2n:

Guten Tag. Ich normalisiere die Werte, aber beim Debuggen der Zahlen mit *e wie kommt das?

Ich kann die Werte nicht in Excel eingeben.

Wenn dem Array ein weiterer Parameter zugewiesen wird (arrayZ[0][q][z] = 0;), speichert es

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");  
   }
Verwenden SieDoubleToString() für die Druckausgabe.
 
Artyom Trishkin:
Verwenden Sie DoubleToString() für die Druckausgabe.
Ich danke Ihnen!
 
Hallo, ist es wahr, dass man mit diesem Forum Geld verdienen kann? Wenn ja, könnten Sie mir sagen, wie?
 
elektrik777:
Hallo, ist es wahr, dass man mit diesem Forum Geld verdienen kann? Wenn ja, könnten Sie mir sagen, wie?
Nicht mehr relevant - diese Möglichkeit wurde deaktiviert, aber Sie können programmieren, Computerressourcen verkaufen und Artikel schreiben.
 

Gute Zeit, Aufgabe: Finden Sie H(max) oder L(min) Preise in einer bestimmten Anzahl von Bars in Frage.

Ich habe herumprobiert, aber ich kann keinen Auswahlbereich zuweisen, d.h. wo ich die Variable (DO) einfügen muss, um das Suchintervall auszuwählen.

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:

Gute Zeit, Aufgabe: Finden Sie H(max) oder L(min) Preise in einer bestimmten Anzahl von Bars in Frage.

Ich habe herumprobiert, ich kann keinen Auswahlbereich zuweisen, d.h. wo die Variable (DO) eingefügt werden soll, um das Suchintervall auszuwählen

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);
}


Warum muss ich Fraktale verwenden?

Zuerst CopyHigh() für den gewünschten Bereich und dann in dem Array, in das der Bereich kopiert wird, nach max (ArrayMaximum()) suchen.

Dasselbe für min, aber CopyLow() und ArrayMinimum()

 
Dankeschön!!!!!
 

Ich verstehe nicht, was falsch ist, die Aufgabe ist es , den Mindestwert in einem bestimmten Intervall (Index) zu finden.

//+------------------------------------------------------------------+
//| Получим 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:

Ich verstehe nicht, was falsch ist, die Aufgabe ist es , den Mindestwert in einem bestimmten Intervall (Index) zu finden.

//+------------------------------------------------------------------+
//| Получим 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 gibt den INDEX des Elements zurück, dessen Wert der niedrigste ist. Jetzt müssen wir den Wert selbst aus dem ArrayLow mit dem Indexlow holen:

Niedrig[niedrig]

Grund der Beschwerde: