MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 174

 
mila.com :

Merhaba.

Dosyadaki verileri bir histogram biçiminde görüntülemek için lütfen yardım edin.

"file.txt" dosyasında bir tarih, aşağıdaki gibi belirli bir sayıya karşılık gelir:

03/29/2017. 574391

03/30/2017. 741308

03/31/2017. 614367

Bir dosyadan veri alıyorum ve şöyle yazdırıyorum:


Histogramı, bir gösterge gibi görünecek şekilde çubuğun boyutuna göre ayarladım)

Böylece verileri grafik arabelleğine koyarsınız ve çıktı almazsınız. Bir histogram oluşturmanız gereken tarihi belirleyin ve verileri oraya gönderin.
 
-Aleks- :

Böylece verileri grafik arabelleğine koyarsınız ve çıktı almazsınız. Bir histogram oluşturmanız gereken tarihi belirleyin ve verileri oraya gönderin.

Zorluk orada yatıyor.

Genelde bir dosyadan veri aldığımı anlamam için yazdırmaya getirdim.

Uygun olanlara nasıl tahsis edilir   Tarihler, hiçbir fikrim yok.

 
mila.com :

Zorluk orada yatıyor.

Genelde bir dosyadan veri aldığımı anlamam için yazdırmaya getirdim.

Uygun olanlara nasıl tahsis edilir   Tarihler, hiçbir fikrim yok.

Dosyadan tarihi alın, tarihe göre çubuk numarasını bulun ve içine çizin...
 
Alexey Viktorov :
Dosyadan tarihi alın, tarihe göre çubuk numarasını bulun ve içine çizin...

Tam olarak nasıl yapılır?

Lütfen bana göster.

 
mila.com :

Tam olarak nasıl yapılır?

Lütfen bana göster.

Dize işlevlerini kullanın. Özellikle

 string    StringSubstr (
   string   string_value,     // строка
   int      start_pos,         // с какой позиции начать
   int      length= 0            // длина извлекаемой строки
   );

sıfır konumundan 10 karakter çıkarıyoruz ve dizeyi bir tarihe dönüştürüyoruz.

Ancak satırda çubuk açılış zamanı yoksa, D1 dışındaki bir grafikte çalıştırırsanız, histogramlar her çubukta olmayacaktır.

Строковые функции - Справочник MQL4
Строковые функции - Справочник MQL4
  • docs.mql4.com
Строковые функции - Справочник MQL4
 

Arkadaşlar! Lütfen siparişin açıldığı çubuktan başlayarak çubuk sayısını saymak için bir fonksiyon yazmama yardım edin.

Örneğin: 5 numaralı çubukta açık bir siparişimiz varsa, fonksiyon 5 değerini döndürmelidir.

 
Bek001 :

Arkadaşlar! Lütfen siparişin açıldığı çubuktan başlayarak çubuk sayısını saymak için bir fonksiyon yazmama yardım edin.

Örneğin: 5 numaralı çubukta açık bir siparişimiz varsa, fonksiyon 5 değerini döndürmelidir.

 int shift= iBarShift ( NULL ,PERIOD_СURRENT, OrderOpenTime ());
 
Alexey Viktorov :

Dize işlevlerini kullanın. Özellikle

sıfır konumundan 10 karakter çıkarıyoruz ve dizeyi bir tarihe dönüştürüyoruz.

Ancak satırda çubuk açılış zamanı yoksa, D1 dışındaki bir grafikte çalıştırırsanız, histogramlar her çubukta olmayacaktır.

Teşekkürler, ayrı ayrı tarihi ve ayrı değeri çıkarırım.

Şimdi tampon bununla nasıl doldurulur?

 for ( int i= 0 ; i<limit;i++){

string InpFileName= "file.txt" ;
 ResetLastError (); 
   int file_handle= FileOpen (InpFileName, FILE_TXT | FILE_READ );
   
   if (file_handle!= INVALID_HANDLE ) 
     { 
       PrintFormat ( "Файл %s открыт для чтения" ,InpFileName); 
       PrintFormat ( "Путь к файлу: %s\\Files\\" , TerminalInfoString ( TERMINAL_DATA_PATH )); 
       //--- вспомогательные переменные 
       int     str_size; 
       string str,str_b1,str_dat1; 
       //--- прочитаем данные из файла 
       while (! FileIsEnding (file_handle)) 
        { 
         //--- узнаем сколько символов использовано для записи времени 
         str_size= FileReadInteger (file_handle, INT_VALUE ); 
         //--- прочитаем строку 
         str= FileReadString (file_handle,str_size); 
         str_dat1= StringSubstr (str, 0 , 10 );
         str_b1= StringSubstr (str, 12 , 6 );
         //--- распечатаем строку 
         PrintFormat(str_dat1); 
         PrintFormat(str_b1);
        } 
       //--- закроем файл 
       FileClose (file_handle); 
       PrintFormat ( "Данные прочитаны, файл %s закрыт" ,InpFileName); 
     } 
   else 
       PrintFormat ( "Не удалось открыть файл %s, Код ошибки = %d" ,InpFileName, GetLastError ()); 
     //}
   
      Range_Buffer[i]= //???
      }
 
mila.com :

Teşekkürler, tarihi ve değeri ayrı ayrı alıyorum.

Şimdi tampon bununla nasıl doldurulur?

Range_Buffer[i]= значение //???

Bir döngü içinde olmalıdır. For döngüsünde while döngüsü boşuna yapılır. Bir satırı okumak, tarih ve değeri çıkarmak ve bunlarla çalışmak gerekir: Zamana göre çubuk numarasını bulun ve ortaya çıkan değeri oraya koyun. Ve ancak o zaman bir sonraki girişe geçin.

 
mila.com :

Zorluk orada yatıyor.

Genelde bir dosyadan veri aldığımı anlamam için yazdırmaya getirdim.

Uygun olanlara nasıl tahsis edilir   Tarihler, hiçbir fikrim yok.

Bir çubuğa karşılık gelen bir kaydınız var mı, yok mu?