Hatalar, hatalar, sorular - sayfa 239

 

Grafik yeni güncellendi. Ve yine aynı:

 
Yedelkin :

Grafik yeni güncellendi. Ve yine aynı:

Acilen servis masasına yazın ve terminali kapatmayın
 
AlexSTAL :
Acilen servis masasına yazın ve terminali kapatmayın
Tamam, aptalca bu konunun bağlantısını kopyalayacağım.
 

Az önce terminalde kontrol edildi - belirtilen yerde EURUSD M1 tablosu tamamen kesintisiz olarak mevcut.

Grafiğin içerik menüsünden "Güncelle" komutunu vermeye çalışın.

 
Renat :

Az önce terminalde kontrol edildi - belirtilen yerde EURUSD M1 tablosu tamamen kesintisiz olarak mevcut.

Grafiğin içerik menüsünden "Güncelle" komutunu vermeye çalışın.

Manuel olarak güncellendi, teşekkürler. Pratik olarak çizelgelerle çalışmadığım için şu soru ortaya çıktı: böyle bir durumda uzman düzeyinde dakika tabanı nasıl güncellenir? Sonuçta, terminal yalnızca sahip olduğu tabanla çalışır. Bir senkronizasyon denetimi özelliği yerleştirilsin mi?
 
Renat :

Az önce terminalde kontrol edildi - belirtilen yerde EURUSD M1 tablosu tamamen kesintisiz olarak mevcut.

Grafiğin içerik menüsünden "Güncelle" komutunu vermeye çalışın.


Bana öyle geliyor ki bir yerlerde yüzen bir böcek var .... Benzer bir durum olan tek kişi ben olmadığım için ....
 
Yedelkin :
Manuel olarak güncellendi, teşekkürler. Pratik olarak çizelgelerle çalışmadığım için şu soru ortaya çıktı: böyle bir durumda uzman düzeyinde dakika tabanı nasıl güncellenir? Sonuçta, terminal yalnızca sahip olduğu tabanla çalışır. Bir senkronizasyon denetimi özelliği yerleştirilsin mi?

Zamanlayıcıda, kayıp zamanını ve iletişimin yeniden başlamasını ezberledim.

Bu bilgilere sahip olarak, dönem için geçmişi yüklemeyi deneyebilirsiniz (eğer mantıklıysa, sunucu ile senkronizasyonu buradan kontrol edebilirsiniz).

 

Lord geliştiriciler, söyleyecek sözüm yok. Aynı yönteme, ancak başka bir nesneye yapılan dahili bir çağrıdan sonra bir nesne yöntemindeki yerel değişkenleri "silme" gibi bulunması zor bir sorunla karşı karşıya kaldı. Belki bu, iç içe nesne işlevi çağrılarındaki bir tür optimizasyondan kaynaklanmaktadır, ancak en azından günlükte hata ve bellek sızıntıları yoktur. Büyük bir kod veremem, ancak prensipte anlamı örneklerden netleşecektir:

seçenek 1

 bool operate(CAlgoBlockLogic* s1, CAlgoBlockLogic* s2) {
 bool d1 = s1.process();
 bool d2 = s2.process();
 return (d2 && d1);
}

seçenek 2

 bool operate(CAlgoBlockLogic* s1, CAlgoBlockLogic* s2) {
 return (s2.process() && s1.process());
}

Teoride, kod kesinlikle aynı şekilde çalışmalıdır. Ama... seçenekler farklı çalışır.

Böyle. 1. seçenek çalışmıyor. Hata ayıklama dosyasına yazmaya başladıktan sonra, işletme işlevinde tanımlanan d1 değişkeninin üzerine, aynı işletme işlevinin dahili çağrısındaki d1 değişkeninin değeri tarafından , ancak aynı türdeki başka bir nesne için yazıldığını öğrendim. Onlar. kısaca konuşma. aramadan sonra
 bool d2 = s2.process();

d1 değişkeni , değerini s2.process içinde çalışmak için dahili çağrıda meydana gelen değerle değiştirir. Bu davranış, aynı türdeki nesneler için statik bir değişkenin değerini değiştirirken olduğu gibidir. Ancak burada değişken açıkça yerel kapsama sahiptir.

Statik değişken hakkında, bu başlıkta soru soruldu ve her şey onlarla açık. Peki ya yerel değişkenlerin değerlerinin belirsizliği?

Документация по MQL5: Основы языка / Переменные / Область видимости и время жизни переменных
Документация по MQL5: Основы языка / Переменные / Область видимости и время жизни переменных
  • www.mql5.com
Основы языка / Переменные / Область видимости и время жизни переменных - Документация по MQL5
 

"... işletme işlevinde tanımlanan d1 değişkeninin üzerine, aynı işletme işlevinin dahili çağrısındaki d1 değişkeninin değeri, ancak aynı türdeki başka bir nesne için yazılır. Başka bir deyişle, çağrıdan sonra
bool d2 = s2.process();
d1 değişkeni, değerini s2.process içinde çalışmak için dahili çağrıda olanla değiştirir."

Her zamanki yan etkilerle birlikte gizli özyineleme gibi görünüyor ya da ...

 
Vigor :

Teoride, kod kesinlikle aynı şekilde çalışmalıdır. Ama... seçenekler farklı çalışır.


Numara. Aynı değil.

İlk seçenekte s1.process ve s2.process koşulsuz olarak çağrılacak

İkinci seçenekte, s1.process sadece s2.process true döndürürse çağrılır. Buna "kısaltılmış durum değerlendirmesi" denir.