Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 708

 

Boa tarde. Estou a normalizar os valores, mas ao depurar os números com *e como é que?

Não consigo escrever os valores em Excel.

Se outro parâmetro for atribuído ao array (arrayZ[0][q][z] = 0;), ele salva

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

Boa tarde. Estou a normalizar os valores, mas ao depurar os números com *e como é que?

Não consigo escrever os valores em Excel.

Se outro parâmetro for atribuído ao array (arrayZ[0][q][z] = 0;), ele salva

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");  
   }
UtilizeDoubleToString() para a produção de impressões.
 
Artyom Trishkin:
Utilize DoubleToString() para a produção de impressões.
Obrigado!
 
Olá, é verdade que é possível ganhar dinheiro com este fórum? Em caso afirmativo, poderia dizer-me como?
 
elektrik777:
Olá, é verdade que é possível ganhar dinheiro com este fórum? Em caso afirmativo, poderia dizer-me como?
Já não é relevante - esta possibilidade foi desactivada, mas é possível programar, vender recursos informáticos e escrever artigos.
 

Bom tempo, Tarefa: Encontrar preços H(max) ou L(min) num determinado número de bares em questão.

Pesquisei, não posso atribuir um intervalo de selecção, ou seja, onde inserir a variável (DO), para seleccionar o intervalo de pesquisa

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:

Bom tempo, Tarefa: Encontrar preços H(max) ou L(min) num determinado número de bares em questão.

Pesquisei, não posso atribuir um intervalo de selecção, ou seja, onde inserir a variável (DO), para seleccionar o intervalo de pesquisa

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


Porque é que tenho de usar fractais?

Primeiro CopyHigh() para a gama necessária, e depois na matriz onde a gama é copiada, procurar o máximo (ArrayMaximum()).

O mesmo para min, mas CopyLow() e ArrayMinimum()

 
Obrigado!!!!!
 

Não entendo o que está errado, a tarefa é encontrar o valor min num dado intervalo (í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:

Não entendo o que está errado, a tarefa é encontrar o valor min num dado intervalo (í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 devolve o ÍNDICE do elemento, cujo valor é o mais baixo. Agora precisamos de obter o valor em si a partir da matrizbaixa pelo índicebaixo:

Baixo[baixo]