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

 
Alexey Viktorov :

Bu durumda, ilk çubuktan kesinlikle 10 CopyRate vardır. Ve her keneyi değil, yeni bir çubuk göründüğünde yeterlidir.

CopyRates olmadan yeni bir çubuğun ortaya çıktığını nasıl anlayabilirim? Bir anlamda önce yeni bar olayını yakalamanız gerekiyor. CopyRates olmadan mümkün mü? Biraz kafam karıştı.)

Bunun anlamı bu, MT5'te bu konuyla hiç ilgilenmedim. Lütfen anlayın.))

 
Alexey Viktorov :

Ah Vladimir. Bunu ağzımdan kaçırmış olmama rağmen maalesef rezervasyon yaptırmadım. Yalnızca fiyata, örneğin açılışa veya zamana ihtiyacınız varsa, bu durumda CopyRates() kullanmanıza özel bir gerek yoktur, ya CopyOpen ya da iOpen ... sırasıyla CopyTime ya da iTime yeterlidir. Dini tercihlere göre seçilmiştir.

Bir de rezervasyonumu ekleyeyim: Performans maliyetleri açısından gözle görülür bir fark yok. Buna göre, sadece dini tercihler kalır.

fxsaber, CopyRates() 'in maliyetini kontrol etti - ihtiyacınız olan mülkü ayrı olarak almaktan daha pahalı. Bu, tüm fiyatları bir kerede almanız gereken bir durum için geçerli değildir.

 
Реter Konow :
CopyRates olmadan yeni bir çubuğun ortaya çıktığını nasıl anlayabilirim? Bir anlamda önce yeni bar olayını yakalamanız gerekiyor. CopyRates olmadan mümkün mü? Biraz kafam karıştı.)

Hiçbir şeye dikkat etmeden yeni bir çubuğun görünümünü izliyoruz ve CopyRates diyoruz

Bir vagon ve küçük bir araba sahasında yeni bir çubuk tanımlamanın çeşitli işlevleri ve yolları.

 
Реter Konow :

CopyRates olmadan yeni bir çubuğun ortaya çıktığını nasıl anlayabilirim? Bir anlamda önce yeni bar olayını yakalamanız gerekiyor. CopyRates olmadan mümkün mü? Biraz kafam karıştı.)

Bunun anlamı bu, MT5'te bu konuyla hiç ilgilenmedim. Lütfen anlayın.))

En kolay yol, mevcut çubuğun açılış süresini karşılaştırmaktır. Daha önce ezberlenene eşit değilse - yeni bir çubuğumuz var - yeni çubukta yapılması gerekeni yapıyoruz ve bu sefer bir sonraki kontrol için hatırlıyoruz.

 
Alexey Viktorov :

Hiçbir şeye dikkat etmeden yeni bir çubuğun görünümünü izliyoruz ve CopyRates diyoruz

Bir vagon ve küçük bir araba sahasında yeni bir çubuk tanımlamanın çeşitli işlevleri ve yolları.

MT5'te yeni bir çubuğun görünümü, dakikanın başlangıcına bağlı değildir. Hiç zamana bağlı değil. İşte bir engel. Yalnızca kenelere dayalı yeni bir çubuğun görünümünü doğru bir şekilde anlamak için mi? Yine de zaman serilerine başvurmanız gerekiyor. Aksi pek mümkün değil. Yine de... %100 emin değilim.
 
Artyom Trishkin :

fxsaber, CopyRates()'in maliyetini kontrol etti - ihtiyacınız olan mülkü ayrı olarak almaktan daha pahalı. Bu, tüm fiyatları bir kerede almanız gereken bir durum için geçerli değildir.

fxsaber'a tüm saygımla, böyle bir farkı görmezden gelmeyi tercih ediyorum. Bu yüzden " somut bir fark yok" dedi ve 1e6 yineleme döngüsünde dönerken fark beni ilgilendirmiyor. Sonuçta, aynı anda 1e6 mermi atabileceğiniz atıcılar yazmıyoruz.
 
Artyom Trishkin :

En kolay yol, mevcut çubuğun açılış süresini karşılaştırmaktır. Daha önce ezberlenene eşit değilse - yeni bir çubuğumuz var - yeni çubukta yapılması gerekeni yapıyoruz ve bu sefer bir sonraki kontrol için hatırlıyoruz.

Yani, her tikte CopyRates'i ara? Aksi takdirde mevcut barın açılış saatinin değiştiğini nasıl anlarsınız?
 
Реter Konow :
Yani, her tikte CopyRates'i ara? Aksi takdirde mevcut barın açılış saatinin değiştiğini nasıl anlarsınız?

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

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



Alexey Viktorov :

Igor, birinci sınıfa gitmelisin. Harfleri öğretirler ve okuduktan sonra CopyRates ve CopyBuffer arasındaki farkı anlayacaksınız.

CopyRates OLMADAN bu soruna daha iyi bir çözüm


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!

Обработчик события "новый бар"
Обработчик события "новый бар"
  • www.mql5.com
Для создателей индикаторов и экспертов всегда был актуален вопрос написания экономичного кода с точки зрения времени выполнения. Можно подойти к решению этой задачи с разных сторон. Из этой обширной темы в данной статье будет затронут, казалось бы уже решенный вопрос: проверка появления нового бара. Это достаточно популярный способ ограничения...
 
Реter Konow :
Yani, her tikte CopyRates'i ara? Aksi takdirde mevcut barın açılış saatinin değiştiğini nasıl anlarsınız?

Evet, her tikte saati kontrol ediyoruz:

 //+------------------------------------------------------------------+
//| Возвращает время указанного бара                                 |
//+------------------------------------------------------------------+
datetime Time( const string symbol_name, const ENUM_TIMEFRAMES timeframe, const int index)
  {
   datetime array[];
   return ( CopyTime (symbol_name,timeframe,index, 1 ,array)== 1 ? array[ 0 ] : 0 );
  }
//+------------------------------------------------------------------+

Ve kısaca şöyle bir şey:

 static datetime last_time= 0 ;
datetime time_current=Time( Symbol (), PERIOD_CURRENT , 0 );
if (time_current== 0 )
   return ;
if (time_current!=last_time)
  {
   // Новый бар или первый запуск (для контроля первого запуска можно сделать флаг - чтобы не обрабатывать его как новый бар)
   // делаем что нужно на новом баре
   last_time=time_current;
  }

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

 
Реter Konow :
Yani, her tikte CopyRates'i ara? Aksi takdirde mevcut barın açılış saatinin değiştiğini nasıl anlarsınız?

if(prevTime!=iTime(...))

{

// mevcut çubuğun açılış zamanı değişti

}

prevTime=iTime(...);