МQL5'te Aç,Düşük,Yüksek,Kapat parametreleri nasıl alınır? - sayfa 5

 
Igor Makanu :

bu sınıfı CNewbar yapabilir veya NewBar forumunda arama yapabilirsiniz.


Sınıfınızda bir iTime aramanız var. Bunu unutmam tavsiye edildi.) Ayrıca, bunun da CopyRates ile aynı işi yapmayacağının garantisi nerede? Her tikte onu çağırırsın. Kısacası her tikte CopyRates'i arayacağım ve konu kapanacaktır.

 
Artyom Trishkin :

Evet, her tikte saati kontrol ediyoruz:

Ve kısaca şöyle bir şey:

Sadece dizimin üzerine yazdım - fikri göstermek için, yazmanın doğruluğunu değil

Hesaplamanın kendisi CopyRates veya eşdeğerini kullanıyorsa, yeni bir çubuk hesaplamanın bir anlamı yoktur. Aynı maliyetler olacaktır.

Her tikte arayacağım. TEŞEKKÜR.

 
Igor Makanu :

bu sınıfı CNewbar yapabilir veya NewBar forumunda arama yapabilirsiniz.

Not: tüm makale! https://www.mql5.com/en/articles/159



açık, her şey her zamanki gibi .. uff, oh, oh .. ve bir kod satırı değil)))

Bir dizi ardışık OHLC almanın her zaman uygun olmadığını (ve genellikle nadiren gerekli olduğunu) göstermek için kendi örneğimi verdim, pratik görevlerde genellikle farklı çubuklardan OHLC değerlerinin seçici olarak alınması gerekir (göstergeler sayılmaz)

tamam, hastalanma!

Haydi. Kalın olanlar genellikle sıcaktır. Bu nedenle, bu karşılaştırmalar da kullanılabilir. OHLC'ye ihtiyacınız varsa kimin umrunda ... Igor, fraktal kullanmanız gerektiğini söyledi, bu yüzden kullanın ...

 
Реter Konow :

Sınıfınızda bir iTime aramanız var. Bunu unutmam tavsiye edildi.) Ayrıca, bunun da CopyRates ile aynı işi yapmayacağının garantisi nerede? Her tikte onu çağırırsın. Kısacası her tıklamada CopyRates'i arayacağım ve konu kapanacaktır.

Bu, CopyTime () veya iTime()'ı her onay için bir kez çağırmaktan daha uzundur.

CopyRates()'i yalnızca tüm çubuk değerlerini aynı anda almanız gerektiğinde - yeni bir çubuk tanımlarken çağırın.

 
Реter Konow :
Hesaplamanın kendisi CopyRates veya eşdeğerini kullanıyorsa, yeni bir çubuk hesaplamanın bir anlamı yoktur. Aynı maliyetler geçerli olacaktır.

Her tikte arayacağım. TEŞEKKÜR.

cevap verdin yanıldın

 
Artyom Trishkin :

Bu, CopyTime () veya iTime()'ı her onay için bir kez çağırmaktan daha uzundur.

CopyRates()'i yalnızca tüm çubuk değerlerini aynı anda almanız gerektiğinde - yeni bir çubuk tanımlarken çağırın.

İyi. Bu yüzden kurulum, iXXX fonksiyonları hakkında unutulmalıdır.))

 
Реter Konow :

İyi. Bu nedenle iXXX fonksiyonlarını unutun ifadesi unutulmalıdır.))

Kesinlikle. Her dedikleri işe yaramaz. Ve saçma sapan konuşabilirim :)))

Ancak burada - hız nedeniyle: CopyRates() aynı anda bir çubuğun birkaç değerini almanız gerektiğinde (sizin durumunuzda) uygundur. CopyTime() veya iTime()'dan daha yavaştır, ancak CopyOpen(), CopyHigh(), CopyLow() ve CopyClose() + (gerekirse CopyTime()) dört kez çağırırsanız, CopyRates'i bir kez çağırdığınızdan daha yavaş olacaktır. () , gerekli tüm değerleri bir kerede döndürecektir.

Sonuç: Her tikte, yeni bir çubuk belirlemek için CopyTime() veya iTime() ile çalışıyoruz ve yeni bir çubuk göründüğü anda CopyRates()'i bir kez çağırıyoruz.

Ve imandan başka bir şeyle tasdik edilmeyen dini beyanlar dikkate alınmamalıdır. Yeni bir çubuk tanımlama durumunuz için neyin daha hızlı olacağını kendiniz kontrol edebilirsiniz - CopyTime() veya iTime() - son zamanlarda platformlar arası kod yazmayı kolaylaştıran tam teşekküllü bir MQL5 işlevi (burada yalan söylüyorum - MQL4'ten beri CopyXXX işlevlerine sahiptir, ancak MQL4'ü taşıma - MQL5'teki kod daha kolay hale getirilmiştir - iXXX işlevini yeniden yapmaya gerek yoktur)

 
Реter Konow :
Aksi takdirde mevcut barın açılış saatinin değiştiğini nasıl anlarsınız?
 //+------------------------------------------------------------------+
//|                                                       NewBar.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"

MqlDateTime time;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
{

   EventSetMillisecondTimer ( 100 );
   return ( INIT_SUCCEEDED );
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
   EventKillTimer ();   
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
{

   
}

//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer ()
{
   TimeGMT (time);   
   //TimeLocal(time);

   if (NewMinute())
   {
     Print ( "Я новая минута" );
   }		
}

//####################################################################

//Получить новое время
int zero = 0 ;
bool NewMinute()
{
   int minute = time.min; //time.sec; time.hour;  time.day; 
   if (zero != minute)
  {    
    zero = minute;
     return ( true );
  }
   else return ( false ); 
}
 
Реter Konow :

Sınıfınızda bir iTime aramanız var. Bunu unutmam tavsiye edildi.) Ayrıca, bunun da CopyRates ile aynı işi yapmayacağının garantisi nerede? Her tikte onu çağırırsın. Kısacası her tıklamada CopyRates'i arayacağım ve konu kapanacaktır.

Her zaman sadece yazıp okumaya çalışmaz mısın? Size "Yeni Bar" hakkında bir makalenin tamamının bağlantısını verdim! Makaleler, forumda sürekli yazanlardan farklı yetkinliğe sahip kişiler tarafından kontrol edilir ;)

Not: Yazmayı bırakıp, örneğin bağlantımdaki bir makaleyi okumaya başlarsanız, başka bir yol bulabilirsiniz ( SERIES_LASTBAR_DATE ) iXXX () işlevlerini kullanmama - kullanmama dediler))) - hataları kim bildirir ve geliştiricilerin bir hack yayınladığı hatalar)))))

 
Igor Makanu :

Her zaman sadece yazıp okumaya çalışmaz mısın? Size "Yeni Bar" hakkında bir makalenin tamamının bağlantısını verdim! Makaleler, forumda sürekli yazanlardan farklı yetkinliğe sahip kişiler tarafından kontrol edilir ;)

Not: Yazmayı bırakıp, örneğin bağlantımdaki bir makaleyi okumaya başlarsanız, başka bir yol bulabilirsiniz ( SERIES_LASTBAR_DATE ) iXXX () işlevlerini kullanmama - kullanmama dediler))) - hataları kim bildirir ve geliştiricilerin bir hack yayınladığı hatalar)))))

SERIES_LASTBAR_DATE ile ilgili bazı sorunlar vardı. Uzun süre burada bir yerde tartışıldı. Zaten düzeltilmiş olabilir.

Neden: