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

 
Roman :

Gerçekten el...

Farklı zaman dilimlerinde yazdırın.

Önceden tanımlanmış _Period değişkeni şu değeri verir:

_Period değişkeni, geçerli grafiğin zaman çerçevesi değerini saklar.

Ve bu zaman çerçevesi, grafik dönemine karşılık gelen ENUM_TIMEFRAMES numaralandırmasındaki sabitin değeri ile belirlenir.

Tamam, anlayın:

 //+------------------------------------------------------------------+
//|                                         TestTimeframe_Period.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://mql5.com/ru/users/artmedia70"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   Print
     (
       "Значение предопределённой переменной _Period на графике " ,TimeframeDescription( Period ()), " = " ,( string )( int ) _Period , "\n" ,
       "Значение константы перечисления ENUM_TIMEFRAMES " , EnumToString ( Period ()), " = " ,( string )( int ) Period (), "\n" ,
       "Период графика, соответствующий константе перечисления ENUM_TIMEFRAMES " , EnumToString ( Period ()), ", со значением " ,( string )( int ) Period (), " = " ,TimeframeDescription( Period ())
     );
  }
//+------------------------------------------------------------------+
//| Возвращает описание таймфрейма                                   |
//+------------------------------------------------------------------+
string TimeframeDescription( const ENUM_TIMEFRAMES timeframe)
  {
   return StringSubstr ( EnumToString ((timeframe> PERIOD_CURRENT ? timeframe : ( ENUM_TIMEFRAMES ) Period ())), 7 );
  }
//+------------------------------------------------------------------+
Документация по MQL5: Предопределенные переменные / _Period
Документация по MQL5: Предопределенные переменные / _Period
  • www.mql5.com
Предопределенные переменные / _Period - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Roman :

mql4 kullanmadı)) ve buna alışmadı.
Neden başka bir 60'a bölmen gerekiyor ???
Kılavuzda bundan nerede bahsediliyor?
Bunlar zaten hatayı atlayan koltuk değnekleriniz.
Ve şimdi tüm zaman dilimlerinde koltuk değneğinizi kontrol edin

Böcek? Yani, M1, M2, M3, M4, M5, M6 ve ardından hemen M10 zaman dilimlerinin varlığı - bu da sizce bir hata mı?

Neden geliştiricilerden eksik dönem hatalarını düzeltmelerini istemiyorsunuz?

M7, M8, M9, M11, M13, M14, M16, M17, M18, M19, M21, M22, M23, M24, M25, M26, M27, M28, M29, M31 - M59, H1_M1, H1_M2, H1_M3, -- - , ---, ---, YÜZ_BİN_YIL ?

Numaralandırma sabitlerinin dahili temsili neden aniden bir hata haline geldi?

Üç yüz rublelik banknotların olmaması seni rahatsız etmiyor mu?

 
Artyom Trishkin :

Böcek? Yani, M1, M2, M3, M4, M5, M6 ve ardından hemen M10 zaman dilimlerinin varlığı - bu da sizce bir hata mı?

Neden geliştiricilerden eksik dönem hatalarını düzeltmelerini istemiyorsunuz?

M7, M8, M9, M11, M13, M14, M16, M17, M18, M19, M21, M22, M23, M24, M25, M26, M27, M28, M29, M31 - M59, H1_M1, H1_M2, H1_M3, -- - , ---, ---, YÜZ_BİN_YIL ?

Numaralandırma sabitlerinin dahili temsili neden aniden bir hata haline geldi?

Üç yüz rublelik banknotların olmaması seni rahatsız etmiyor mu?

Lütfen söyleyin, 16385 değeri H1 grafik periyodunun değerine karşılık geliyor mu?
Ve H1'in üzerindeki diğer tüm dönem değerleri.
Igor, sizin için ikili biçimde bile yazdırdı ve bir sonraki, aynı şeyin yalnızca farklı bir biçimde olduğu benim gönderim.

Tamamen farklı bir bozkıra tırmandınız, tartışılmayanları sürüklemeyin.
Moderatörün koltuk değnekleriyle böcekleri bulanıklaştırması beni rahatsız ediyor!
Onları ortadan kaldırmaya yardımcı olmaz.

İşte size bir bug daha.

 Print ( PeriodSeconds ( PERIOD_MN1 )* 1000 );

Ve MN tablosunda da aynı şey.

 Print ( PeriodSeconds ( PERIOD_CURRENT )* 1000 );
 
Roman :

Lütfen söyleyin, 16385 değeri H1 grafik periyodunun değerine karşılık geliyor mu?
Ve H1'in üzerindeki diğer tüm dönem değerleri.

Tamamen farklı bir bozkıra tırmandınız, tartışılmayanları sürüklemeyin.
Moderatörün koltuk değnekleriyle böcekleri bulanıklaştırması beni rahatsız ediyor!
Onları ortadan kaldırmaya yardımcı olmaz.
İşte size bir bug daha.

Yardım okumak için zamanınız yok mu?

Anlamadığınız her şey - tüm bunlar geliştiricilerin düzeltmesi gerektiğini düşündüğünüz hatalar mı?

Ya da belki bu durumda okumayı öğrenmek ve kim bilir moderatöre geçmemek sizin için daha iyi olur?

 Print (( string )( uint ) PeriodSeconds ( PERIOD_MN1 )* 1000 )

Neden taşıyorsunuz int ?

Kendiniz için yazdırın:

 Print
  (
   "( int ) PeriodSeconds ( PERIOD_MN1 ) = ",( int ) PeriodSeconds ( PERIOD_MN1 ),
   ", ( ulong ) PeriodSeconds ( PERIOD_MN1 )* 1000 = ",( ulong ) PeriodSeconds ( PERIOD_MN1 )* 1000 ,
   ", INT_MAX = ", INT_MAX
  );

ve lütfen, kendi düşüncenizdeki bir hatayı düzeltin.

Ve eğer milisaniyeye ihtiyacınız varsa, onları ulong tipiyle temsil edin.

 
Artyom Trishkin :

Yardım okumak için zamanınız yok mu?

Anlamadığınız her şey - tüm bunlar geliştiricilerin düzeltmesi gerektiğini düşündüğünüz hatalar mı?

Ya da belki bu durumda okumayı öğrenmek ve kim bilir moderatöre geçmemek sizin için daha iyi olur?

Neden taşıyorsunuz int ?

Kendiniz için yazdırın:

ve lütfen, kendi düşüncenizdeki bir hatayı düzeltin.

Taşma ile evet heyecanlandım, bu anı hesaba katmadım. Burada teşekkürler.
Ancak örneğiniz derlenmiyor.

Ve normal olarak yazdırılır, bu nedenle bir dizeye ne zaman ihtiyacınız olduğunu ve ne zaman gerekmediğini tahmin edin))

 Print (( uint ) PeriodSeconds ( PERIOD_MN1 )* 1000 );


Ve _Period değişkeni hakkında, H1'in üzerinde kesinlikle yanlış bir şeyler var.

 
Roman :

Lütfen söyleyin, 16385 değeri H1 grafik periyodunun değerine karşılık geliyor mu?
Ve H1'in üzerindeki diğer tüm dönem değerleri.
Igor, sizin için ikili biçimde bile yazdırdı ve bir sonraki, aynı şeyin yalnızca farklı bir biçimde olduğu benim gönderim.

Tamamen farklı bir bozkıra tırmandınız, tartışılmayanları sürüklemeyin .
Moderatörün koltuk değnekleriyle böcekleri bulanıklaştırması beni rahatsız ediyor!
Onları ortadan kaldırmaya yardımcı olmaz.

İşte size bir bug daha.

Ve MN tablosunda da aynı şey.

1. Evet, sabitin değerine karşılık gelir.

2. Ve geri kalan her şey - sabitin değerine karşılık gelir.

yazdırmayı dene

 Print (" SYMBOL_BID =", SYMBOL_BID ); 

Mevcut Teklif fiyatının size gösterileceğini mi düşünüyorsunuz yoksa başka bir şey mi?

o zaman neden bekliyorsun

 Print (" PERIOD_H1 =", PERIOD_H1 );

H1 veya 60 gibi bir şey size gösterilecek mi?

Ve Igor benim için yazdırmadı, ancak size ENUM_TIMEFRAMES sabitlerinin değerlerinin ikili biçimde dahili temsilini gösterdi .

Göstermiş olduğunuz enum sabitlerinin değerlerinin bug olduğunu iddia ettiniz ve benim size açıklamam koltuk değneği. Bu böyle değil - bu sadece sizin basit temel bilgiler konusundaki cehaletiniz.

Bunun için iznimi alıyorum - temel bilgileri öğrenin ve lütfen cehaletinizi geliştiricilerin böcek ve koltuk değnekleriyle süslemeyin - boş bir tane atmak iyi değil. Evet ve seçtiğiniz kelimeler bir tür "sıkı", bir şey bilmediğinizi unuturken.

Bunu anlayacaksınız ve çiziminiz bu tür "bilen" diğer insanlar için kalacaktır. Biraz sabotaj...

 
Roman :

Taşma ile evet heyecanlandım, bu anı hesaba katmadım. Burada teşekkürler.
Ancak örneğiniz derlenmiyor.

Ve normal olarak yazdırılır, bu nedenle bir dizeye ne zaman ihtiyacınız olduğunu ve ne zaman gerekmediğini tahmin edin))


Ve _Period değişkeni hakkında, H1'in üzerinde kesinlikle yanlış bir şeyler var.

Yani, "derleme yapmıyor" ne anlama geliyor? Forumdan bir komut dosyasına kopyaladım ve derledim:


Ve _Period değişkeni, geçerli grafiğin ENUM_TIMEFRAMES numaralandırma sabitinin değerini int olarak döndürür. Yani dakika sayısı değil, saniye sayısı değil, geçerli grafiğe karşılık gelen ENUM_TIMEFRAMES sabitinin değeri.

 
Roman :

Ve normal şekilde yazdırılır, bu nedenle bir dizeye ne zaman ihtiyacınız olduğunu ve ne zaman gerekmediğini tahmin edin))

Ve tahmin etmek zorunda değilsin. Neyin ve neden yapıldığını düşünmeniz ve anlamanız gerekir. Bir şey yazmanız gerektiğinde ve gerekmediğinde.

 
Artyom Trishkin :

o zaman neden bekliyorsun

H1 veya 60 gibi bir şey size gösterilecek mi?

Çünkü H1'in altındaki dakika zaman dilimleri doğru değerleri döndürür.
Yardımda açıklandığı gibi, sürekli saçmalıktan değil , zaman çerçevesinin değerini döndürürler.

 Print (" PERIOD_M1 =", PERIOD_M1 );
Print (" PERIOD_M5 =", PERIOD_M5 );
Print (" PERIOD_M30 =", PERIOD_M30 );
Print (" PERIOD_H1 =", PERIOD_H1 );
 2020.04 . 10 03 : 19 : 50.600 VP (EPM20,H4)   PERIOD_M1 = 1
2020.04 . 10 03 : 19 : 50.600 VP (EPM20,H4)   PERIOD_M5 = 5
2020.04 . 10 03 : 19 : 50.600 VP (EPM20,H4)   PERIOD_M30 = 30
2020.04 . 10 03 : 19 : 50.600 VP (EPM20,H4)   PERIOD_H1 = 16385

Bu nedenle, diziyi dakikalar içinde devam ettirerek, daha yüksek zaman dilimlerinden bunu beklemek mantıklıdır.
PERIOD_H1=60

vb.

 
Roman :

Çünkü H1'in altındaki dakika zaman dilimleri doğru değerleri döndürür.
Yardımda açıklandığı gibi, sürekli saçmalıktan değil , zaman çerçevesinin değerini döndürürler.

Bu nedenle, diziyi dakikalar içinde devam ettirerek daha yüksek zaman dilimlerinden bunu beklemek mantıklıdır.
PERIOD_H1=60

vb.

... şeytani şarkılar bestelemeye devam ediyor, komünizm bekliyor, tıngırdatıyor, tıngırdatıyor ve *** topluyor ...

Beklenen "boolean" değerleri döndürme beklentisiyle sabit değerleri kullanmamak mantıklıdır.

Bir kez daha (son kez) size SYMBOL_BID sabitini hatırlatmama izin verin. Herhangi bir nedenle ondan 1 yerine mevcut Teklif fiyatının değerini beklemek "mantıklı", değil mi? Yoksa hala değil mi?

Her şey. Eğitim programından bıktım ve eğitim almadım, öyle görünüyor.