Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 708

 

Buenas tardes. Estoy normalizando los valores, pero al depurar los números con *e ¿cómo es?

No puedo escribir los valores en Excel.

Si se asigna otro parámetro a la matriz (arrayZ[0][q][z] = 0;), se guarda

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

Buenas tardes. Estoy normalizando los valores, pero al depurar los números con *e ¿cómo es?

No puedo escribir los valores en Excel.

Si se asigna otro parámetro a la matriz (arrayZ[0][q][z] = 0;), se guarda

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");  
   }
UtiliceDoubleToString() para imprimir la salida.
 
Artyom Trishkin:
Utilice DoubleToString() para imprimir la salida.
Gracias.
 
Hola, ¿es cierto que es posible ganar dinero en este foro? Si es así, ¿podría decirme cómo?
 
elektrik777:
Hola, ¿es cierto que es posible ganar dinero en este foro? Si es así, ¿podría decirme cómo?
Ya no es relevante - esta posibilidad ha sido desactivada, pero puedes programar, vender recursos informáticos y escribir artículos.
 

Buen tiempo, Tarea: Encontrar los precios H(max) o L(min) en un número determinado de barras en cuestión.

He hurgado, no puedo asignar un rango de selección, es decir, dónde insertar la variable (DO), para seleccionar el intervalo de búsqueda

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:

Buen tiempo, Tarea: Encontrar los precios H(max) o L(min) en un número determinado de barras en cuestión.

He hurgado, no puedo asignar un rango de selección, es decir, dónde insertar la variable (DO), para seleccionar el intervalo de búsqueda

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


¿Por qué tengo que usar fractales?

Primero CopyHigh() para el rango requerido, y luego en el array donde se copia el rango, buscar max (ArrayMaximum()).

Lo mismo para min, pero CopyLow() y ArrayMinimum()

 
¡¡¡¡¡Gracias!!!!!
 

No entiendo qué es lo que falla, la tarea es encontrar el valor mínimo en un intervalo dado (índice)

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

No entiendo qué es lo que falla, la tarea es encontrar el valor mínimo en un intervalo dado (índice)

//+------------------------------------------------------------------+
//| Получим 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 devuelve el INDEX del elemento cuyo valor es el más bajo. Ahora necesitamos obtener el valor mismo del arrayLow por el índicelow:

Bajo [bajo]

Razón de la queja: