Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 708

 

İyi zaman. Değerleri normalleştiriyorum ama *e ile sayıların hatalarını ayıklarken nasıl yani?

Excel'e değer yazamıyorum

Bir diziye başka bir parametre atanırsa ( arrayZ[ 0 ][q][z] = 0; ), o zaman kaydeder

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

İyi zaman. Değerleri normalleştiriyorum ama *e ile sayıların hatalarını ayıklarken nasıl yani?

Excel'e değer yazamıyorum

Bir diziye başka bir parametre atanırsa ( arrayZ[ 0 ][q][z] = 0; ), o zaman kaydeder

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" );  
   }
Yazdırma için DoubleToString() kullanın .
 
Artyom Trishkin :
Yazdırma için DoubleToString() kullanın.
Teşekkür ederim!
 
Merhaba, burada forumda kazanabileceğiniz doğru mu? Eğer öyleyse, bana nasıl olduğunu söyleme?
 
elektrik777 :
Merhaba, burada forumda kazanabileceğiniz doğru mu? Eğer öyleyse, bana nasıl olduğunu söyleme?
Artık alakalı değil - bu özellik devre dışı, ancak programlayabilir, bilgisayar kaynaklarını satabilir ve makaleler yazabilirsiniz.
 

İyi zaman, Görev: Belirli sayıda dikkate alınan çubukta H(maks) veya L(min) fiyatlarını bulun.

Etrafta dolaştım, bir seçim aralığı atayamıyorum, yani bir arama aralığı seçmek için bir değişkenin (DO) nereye ekleneceği

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 :

İyi zaman, Görev: Belirli sayıda dikkate alınan çubukta H(maks) veya L(min) fiyatlarını bulun.

Etrafta dolaştım, bir seçim aralığı atayamıyorum, yani bir arama aralığı seçmek için bir değişkenin (DO) nereye ekleneceği

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


Neden fraktallar aracılığıyla?

İlk olarak, gerekli aralık için CopyHigh() ve ardından aralığın kopyalandığı dizide max (ArrayMaximum()) öğesini arayın.

Min için aynı ama CopyLow() ve ArrayMinimum()

 
Teşekkürler!!!!!
 

Neyin yanlış olduğunu anlamıyorum, görev verilen bir aralıkta (indeks) minimum değeri bulmak

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

Neyin yanlış olduğunu anlamıyorum, görev verilen bir aralıkta (indeks) minimum değeri bulmak

//+------------------------------------------------------------------+
//| Получим 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, en küçük değere sahip öğenin INDEX'ini döndürür. Şimdi değeri, düşük dizine göre Low dizisinden almamız gerekiyor:

az az]