Hafta sonları dahil barların hesaplanması - sayfa 4

 

Yardımlarınız ve katılımınız için hepinize teşekkür ederim!!

1,2 ve 4 sürümleri daha doğrudur, ancak bir yerde doğru saydıkları (günden güne) ve 2-3 günü kaçırdıkları bir yerde hataları vardır.

Sürüm 3, halihazırda hesaplanmış olan periyot için çubuk sayısını görür.

 //+------------------------------------------------------------------------+ 
//| ВЕРСИЯ 1 рассчитывает бары за период только выходных дней  12бар=3вых  | 
//+------------------------------------------------------------------------+ 
int NumData1( datetime d_start, datetime d_stop){
   const int day_in_sec = 24 * 60 * 60 ;
   datetime d_corect1 = d_start - d_start % day_in_sec;
   datetime d_corect2 = d_stop - d_stop % day_in_sec;
   int result = ( int )((d_corect2 - d_corect1) / day_in_sec);
   datetime t_arr[];
   int allbarD1 = CopyTime ( _Symbol , PERIOD_D1 , d_start, d_stop, t_arr);
   if (allbarD1 < 0 ) return ( 0 );
return (result-allbarD1);}
//+------------------------------------------------------------------------+ 
//| ВЕРСИЯ 2 рассчитывает бары за период только рабочих дней  12бар=9раб   | 
//+------------------------------------------------------------------------+ 
int NumData2( datetime d_start, datetime d_stop){
   int bar= Bars ( Symbol (), 0 ,d_start,d_stop);
return (bar);}
//+------------------------------------------------------------------------+ 
//| ВЕРСИЯ 3 рассчитывает бары за период                      12бар=12бар  | 
//+------------------------------------------------------------------------+ 
int NumData3( datetime d_start, datetime d_stop){
   MqlDateTime dts[ 2 ];
   TimeToStruct (d_start,dts[ 0 ]);
   TimeToStruct (d_stop,dts[ 1 ]);
return (dts[ 1 ].day_of_year - dts[ 0 ].day_of_year);}
//+------------------------------------------------------------------------+ 
//| ВЕРСИЯ 4 рассчитывает бары за период только рабочих дней  12бар=9раб   | 
//+------------------------------------------------------------------------+ 
int NumData4( datetime startDate, datetime endDate){
   int d= int ((endDate-startDate)/ 86400 );   
   int m[ 7 , 7 ]={
   { 0 , 0 , 1 , 2 , 3 , 4 , 5 }, // воскр
   { 0 , 1 , 2 , 3 , 4 , 5 , 5 }, // понед
   { 0 , 1 , 2 , 3 , 4 , 4 , 4 }, // вторн
   { 0 , 1 , 2 , 3 , 3 , 3 , 4 }, // среда
   { 0 , 1 , 2 , 2 , 2 , 3 , 4 }, // четв
   { 0 , 1 , 1 , 1 , 2 , 3 , 4 }, // пятн
   { 0 , 0 , 0 , 1 , 2 , 3 , 4 }   // субб
   };
return ((d/ 7 )* 5 +m[( int )TimeDayOfWeek(startDate)][d% 7 ]);}
 

Her şey 1,2 ve 4'ü doğru saymasına rağmen
İkinci noktanın daha sonra alınan + n çubuklarına geçtiğini hesaba katmadım.
ve hafta sonları da var ve sonunda doğru yere gitmeye yetecek kadar vaktim yok 2-3 bar

Görünen çubukları tam olarak belirlemek mümkün müdür?
Onlar. ilk fiyat var ve grafikte görünen çubukları buna ekleyin
Aksi takdirde, ayın 5. gününde ilk noktamız + 12 çubuk = ayın 17. günü + 4 gün tatil = ayın 21. günü olduğu ve bitiş noktasına ulaşmak için birkaç gün daha yeterli olmadığı ortaya çıkıyor.

 
forex2030 :

Görünen çubukları tam olarak belirlemek mümkün müdür ?

Sorun yok. Üstelik bu cevap konuyla ilgili ilk cevaptı. Basit, hızlı, zarif.

Подсчёт баров с учётом выходных
Подсчёт баров с учётом выходных
  • 2020.04.25
  • www.mql5.com
Есть две точки t1 и t2, между ними 25 баров, как узнать сколько было выходных между точками например на D1 чтобы потом их прибавить к нужным барам...
 

hafta sonları dahil?

12 ay reçete, yani İçinde gün sayısı olan 12 değişken, hepsi bir dizide

Şubat ayındaki gün sayısı ile yılın bir dizisine girin veya artık Şubat ile yılı hesaplayın

bir döngüde:

gerekli sürenin başlangıç ve bitiş aylarındaki tam ve kalan günlerin toplamı

 
Bayram temizliği nasıl yapılır? Yoksa hafta sonu sayılmıyorlar mı?
 
Aleksey Nikolayev :
Tatiller nasıl temizlenir? Yoksa hafta sonu sayılmıyorlar mı?
toplamda kaç gün olduğunu hesaplar ve teklifin geçmişinden kaç gün çıkarır
 
Renat Akhtyamov :
toplamda kaç gün olduğunu hesaplar ve teklifin geçmişinden kaç gün çıkarır

Başka nedenlerle geçiş olmadığından eminseniz yapabilirsiniz.

Ayrıca günün yalnızca bir bölümünün atlandığı da olur - hesaplamalar üzerinde de kötü bir etkisi olabilir.

 
Aleksey Nikolayev :

Ayrıca günün yalnızca bir bölümünün atlandığı da olur - hesaplamalar üzerinde de kötü bir etkisi olabilir.

bu durumda, günlük çubuk grafikte hala mevcut olacaktır.

 
Aleksey Nikolayev :

Başka nedenlerle geçiş olmadığından eminseniz yapabilirsiniz.

Ayrıca günün yalnızca bir bölümünün atlandığı da olur - hesaplamalar üzerinde de kötü bir etkisi olabilir.

günlük TFME'ye ve başka hiçbir şeye güvenmeniz gerekmez
 
Igor Makanu :

bu durumda, günlük çubuk grafikte hala mevcut olacaktır.

Tabiki olacak. Ancak, örneğin, yüksek-düşük diğerlerinden öne çıkacak ve her zaman bir soru olacak - bu bir tatil mi yoksa düşen dakika çubukları mı? Bu tür kontrollerin nasıl otomatikleştirileceği çok açık değildir.