Mt4 End desteği. - sayfa 35

 
Реter Konow :

Fonksiyonun bu versiyonunda New_bar() fonksiyonu yoktur;

Bu, sağladığım en kaynak tasarrufu sağlayan seçenek. Ayrıca başka bir avantajı daha vardır: Kullanıcı kodu timer veya tick olayında yürütülürken yeni bar olayı her zaman kaydedilir.

Önceden, bu olayı yalnızca bir kez almak mümkündü ve bayrak New_bar() işlevi tarafından kaldırıldı. Şimdi özel işlev "Events_of_new_bar[][]" dizisini dakikada bir temizler ve yalnızca kullanıcı kodunun yürütülmesinden sonra çağrılır.

Özel işlevler, diziye doğrudan erişebilir ve kodun timer veya tick olayında yürütüldüğü her zaman yeni bar olayı hakkında bilgi alabilir.

Kaynaklar daha da fazla kaydedilir.

Son kod da çalışmıyor, 7 dakika boyunca baskı beklemedi

 //+------------------------------------------------------------------+
//Пример использования событий нового бара в пользовательском функционал.
//Просто обращаемся к глобальному массиву "События_нового_бара[a1][a2]" напрямую
//и используем событие в наших торговых алгоритмах.
//+------------------------------------------------------------------+
void Моя_стратегия_торговли_на_новых_барах()
{
   for ( int a1 = 0 ; a1 < Всех_символов; a1++)
   {
     string Этот_символ    = Символы[a1];
     //----------------------------------
     for ( int a2 = 0 ; a2 < Всех_таймфреймов; a2++)
      {
       bool    Новый_бар      = События_нового_бара[a1][a2];
       int     Этот_таймфрейм = Таймфреймы[a2];
       //----------------------------------
       if (Новый_бар && Этот_символ == "EURUSD" && Этот_таймфрейм == PERIOD_M5 )
         {
           Print ( "M5" );
         }
       //---------------------------------- 
       if (Новый_бар && Этот_символ == "EURUSD" && Этот_таймфрейм == PERIOD_M1 )
         {
           Print ( "M1" );
         }
       //----------------------------------        
      }
   }
}
 
Vitaly Muzichenko :

Son kod da çalışmıyor, 7 dakika boyunca baskı beklemedi

Bu işlev OnTick'ten veya bir zamanlayıcıdan çağrılmalıdır.

Belki ufak bir sorun vardır ama henüz yerini tespit edemedim. Koda kendiniz bakın ve hatayı arayın. 3 sent kadar basit. Ve ek olarak yorumlarla.

Net değilse, sadece sorun. Başka şeyler yapmamın zamanı geldi.

 
Реter Konow :

Fonksiyonun bu versiyonunda New_bar() fonksiyonu yoktur;

Bu, sağladığım en kaynak tasarrufu sağlayan seçenek. Ayrıca başka bir avantajı daha vardır: Kullanıcı kodu timer veya tick olayında yürütülürken yeni bar olayı her zaman kaydedilir.

Önceden, bu olayı yalnızca bir kez almak mümkündü ve bayrak New_bar() işlevi tarafından kaldırıldı. Şimdi özel işlev "Events_of_new_bar[][]" dizisini dakikada bir temizler ve yalnızca kullanıcı kodunun yürütülmesinden sonra çağrılır.

Özel işlevler, diziye doğrudan erişebilir ve kodun timer veya tick olayında yürütüldüğü her zaman yeni bar olayı hakkında bilgi alabilir.

Kaynaklar daha da fazla kaydedilir.


Mizahı anlamadım. Ve ne - hata ayıklayıcı Rusça anlamıyor mu? Yoksa sadece benim hatam mı? Latince'de değişkenleri görüyor ama Kiril'de değil.

Peter, o zaman hata ayıklayıcıyı nasıl kullanıyorsun, yoksa kullanmıyor musun?

 

Herkes kodda bir hata arayabilir.

Kodun özü:

1. Global dizileri bildirin:

  • "Semboller[]" sembol adları için tek boyutlu dizi
  • zaman çerçeveleri için tek boyutlu dizi "Zaman Çerçeveleri[]"
  • "Number_bars[][]" mevcut çubuk sayısını yazdığımız iki boyutlu bir dizi
  • iki boyutlu bir dizi "Events_of_a new_bar[][]" içine her bir sembolün ve her zaman çerçevesinin yeni bir çubuğunun ortaya çıkması olayının bayraklarını yazacağız. "Semboller[]" ve "Zaman Çerçeveleri[]" dizilerinde olanlar. Bu dizi, dakikada bir kez olmak üzere bir zamanlayıcı olayındaki semboller ve zaman çerçeveleriyle bir döngü içinde doldurulacaktır. Bundan sonra temizlenecektir. Doldurma ve temizleme arasındaki aralıkta, bu diziye kullanıcı işlevselliği ile erişilecek ve yeni çubukların bildirimi alınacaktır.

2. Başlatma sırasında, sembol dizisinin boyutunu ayarlayın ve piyasa incelemesinden sembollerin adlarını buraya yazın.

3. "Number_bars[][]" dizisinin ilk boyutunun boyutunu, sembollerin sayısına, ikinci boyutun ise zaman çerçevelerinin sayısına eşit olacak şekilde ayarlayın. Bu dizi bir tablo gibidir. Her sembolün mevcut çubuk sayısını ve her zaman çerçevesini kaydeder. Tutar, iBars işlevi tarafından döndürülür.

4. "New_bar_events[][]" dizisinin ilk boyutunun boyutunu, sembollerin sayısına ve ikinci boyutun zaman dilimlerinin sayısına eşit olarak ayarlayın. Bu dizi bir tablo gibidir. Her bir zaman dilimindeki her bir sembolün yeni çubukları için olay bayraklarını kaydedecektir.

5. Zamanlayıcının içinde, dakikayı sayarız ve semboller (Simgeler[] dizisindeki) ve zaman çerçeveleri (Zaman Çerçeveleri[] dizisindekiler) arasında çift (iç içe) bir döngü yaparız. iBars işlevini çağırırız ve Symbols and Timeframes dizilerinden her bir sembol ve her zaman dilimi için geçerli çubuk sayısını alırız. İlk olarak, mevcut çubuk sayısını dizide bulunanlarla karşılaştırırız. Bu değerler eşit değilse o zaman yeni bar olay bayrağını "New_bar_events[][]" dizisine ayarlıyoruz. Bundan sonra, bir öncekinin yerine mevcut çubuk sayısını yazıyoruz.


"Events_of_new_bar[][]" global dizisi programın herhangi bir noktasında mevcuttur ve her dakika otomatik olarak doldurulur ve ayrıca otomatik olarak temizlenir. Dizinin doldurulduğu süre boyunca, kullanıcı işlevselliği yeni çubuklarda yeni veriler alır. Bundan sonra dizi otomatik olarak temizlenir.


Bu kadar.

 
Реter Konow :

Bu işlev OnTick'ten veya bir zamanlayıcıdan çağrılmalıdır.

Belki ufak bir sorun vardır ama henüz yerini tespit edemedim. Koda kendiniz bakın ve hatayı arayın. 3 sent kadar basit. Ve ek olarak yorumlarla.

Net değilse, sadece sorun. Başka şeyler yapmamın zamanı geldi.


profesyonel yanıt

 
Nikolai Semko :

Mizahı anlamadım. Ve ne - hata ayıklayıcı Rusça anlamıyor mu? Yoksa sadece benim hatam mı? Latince'de değişkenleri görüyor, ancak Kiril'de değil.

Peter, o zaman hata ayıklayıcıyı nasıl kullanıyorsun, yoksa kullanmıyor musun?

Nikolai, ne yazık ki hata ayıklayıcıyı nasıl kullanacağımı bilmiyorum. Hiç kullanmadım. (((
 
Galina Bobro :

profesyonel yanıt

Bu profesyonel trollemedir.
 
Реter Konow :

Bu işlev OnTick'ten veya bir zamanlayıcıdan çağrılmalıdır.

Belki ufak bir sorun vardır ama henüz yerini tespit edemedim. Koda kendiniz bakın ve hatayı arayın. 3 kopek kadar basit . Ve ek olarak yorumlarla.

Net değilse, sadece sorun. Başka şeyler yapmamın zamanı geldi.

O kadar karmaşık ve bükülmüş ki, bir köpek içinde bir bacağını kırabilir.

Üzgünüm, ama ayrıca, hala tamamen okunamıyor.

 
Vitaly Muzichenko :

O kadar karmaşık ve bükülmüş ki, bir köpek içinde bir bacağını kırabilir.

Üzgünüm, ama ayrıca, hala tamamen okunamıyor.

"Yapamazsın... işkence etme..." sözünü biliyor musun? Konu hakkında fikrimce.

 
Реter Konow :

"Yapamazsın... işkence etme..." sözünü biliyor musun? Konu hakkında fikrimce.

Bu doğru, sonunda görevle başa çıktınız, ya da çözümünüzü doğru şekilde çalıştıramadım.