Bir göstergede sıfıra bölme hatası var - sayfa 9

 
Sergey Savinkin :

Ve ilk olarak CopyRates'i saatlik zaman diliminden yaparsanız (yuvarlak rakamlar elde edilir), ardından mevcut zaman diliminden (Zamana dönüşen zaman) zamanı Create Figure prosedürüne geçirirseniz ve ardından indeksi ararsanız, sizin için nasıl yuvarlak olacaklar? zaten mevcut zaman çerçevesinin zamanına kadar ? start_index= ArrayBsearch ( Zaman ,başlangıç_zamanı);

Bu doğru, dizide yuvarlak olmayan bir zamana göre bir yazışma arıyoruz ... Yani. Saatin açılış saatine karşılık geldiği dakika zaman diliminde bir çubuk arıyoruz.

 
Ö!
 
Алексей Тарабанов :
Ö!

Duygular iyidir!

Ama belki esas hakkında düşünceler olacak!?

 

İşte örneğin ne zaman - zaman kazanmak için iki değişken eklendi

 void CreateFigure( int i, const datetime & Time [], const double & Open [], const double & High [], const double & Low [], const double & Close [], MqlRates &rates[])
  {
   datetime start_time=rates[i].time;
   datetime stop_time=(start_time+ PeriodSeconds (TimeFrames));
   datetime start_timeA=start_time;
   
//---
   int start_index,stop_index,limit;
   datetime vertical_line_time;
//---
   start_index= ArrayBsearch ( Time ,start_time);
   datetime start_timeB= Time [start_index];   
   if ( Time [start_index]<start_time) start_index=(start_index> 0 ?start_index- 1 :start_index);
   start_time= Time [start_index];
   Print ( "start_timeA=" , start_timeA, " start_timeB=" ,start_timeB, " start_time=" ,start_time);

Bu baskıyı alıyoruz

 2018.07 . 05 00 : 39 : 30.465 IndDrafter_Test (Si- 9.18 ,M1)    start_timeA= 2018.07 . 04 12 : 00 : 00 start_timeB= 2018.07 . 04 12 : 00 : 00 start_time= 2018.07 . 04 12 : 00 : 00
2018.07 . 05 00 : 39 : 30.465 IndDrafter_Test (Si- 9.18 ,M1)    start_timeA= 2018.07 . 04 13 : 00 : 00 start_timeB= 2018.07 . 04 13 : 00 : 00 start_time= 2018.07 . 04 13 : 00 : 00
2018.07 . 05 00 : 39 : 30.465 IndDrafter_Test (Si- 9.18 ,M1)    start_timeA= 2018.07 . 04 14 : 00 : 00 start_timeB= 2018.07 . 04 13 : 59 : 00 start_time= 2018.07 . 04 14 : 05 : 00
2018.07 . 05 00 : 39 : 30.465 IndDrafter_Test (Si- 9.18 ,M1)    start_timeA= 2018.07 . 04 15 : 00 : 00 start_timeB= 2018.07 . 04 15 : 00 : 00 start_time= 2018.07 . 04 15 : 00 : 00

Onlar. normal / durağan bir durumda sanki her şey doğru.

Dakika zaman çerçevesindeki çubuk açılış saatinin 14:05'e nasıl ayarlandığı görülebilir - M1 zaman çerçevesinde ilk çubuk görünümünün gerçek zamanı.
 
Aleksey Vyazmikin :

Duygular iyidir!

Ama belki esas hakkında düşünceler olacak!?

Saat aynı, yani limit=0. İstedim.

 
Алексей Тарабанов :

Saat aynı, yani limit=0. İstedim.

Peki ya saat aynıysa? Sonuçta, bu saat TF M1'de 60 bar var!

Ve mevcut TF ve hesaplanan TF çakışırsa, koruma vardır ve bu durumda sıfıra bölünme olmaz

 if ( _Period >=TimeFrames) return ( 0 );
 
casus
 
Алексей Тарабанов :
casus

Şifreli misin!?

 
casus
 
Алексей Тарабанов :
casus

???

Neden: