Hatalar, hatalar, sorular - sayfa 891

 

Uyumluluk için sıfırlamanın yapıldığı açıktır, ancak kullanılmayan enum = WRONG_VALUE doğru başlatıldığında neden doğru çalışmadığı açık değildir. Bu yaklaşımla taşınabilirlik yoktur ve gizli hataların olasılığı önemli ölçüde artar.

 
A100 : kullanılmayan enum = WRONG_VALUE doğru başlatıldığında neden doğru çalışmadığı açık değil.

Bu kuralı hatırlıyor musun?

Kural : adlandırılmış bir sabit - numaralandırmanın bir üyesine açıkça belirli bir değer atanmamışsa, değeri otomatik olarak oluşturulur. Numaralandırmanın ilk üyesi ise 0 değeri atanır.Sonraki tüm üyeler için değer bir önceki üyenin değerine göre bir eklenerek hesaplanır.

Büyük olasılıkla, istek alanlarının doldurulmasının doğruluğunu kontrol etmek, bir numaralandırma üyesinin değerinin negatif olamayacağı gerçeğinden kaynaklanmaktadır. Bu durumda, numaralandırmanın bir üyesine WRONG_VALUE değerinin atanma olasılığı dikkate alınmaz.

 
Yedelkin :

Bu durumda, numaralandırmanın bir üyesine WRONG_VALUE değerinin atanma olasılığı dikkate alınmaz.

Hatanın tam olarak bu olduğunu düşünüyorum. Belirli bir numaralandırma kullanılmazsa - değerinin WRONG_VALUE olması mantıklıdır ve örneğin aslında = 0 olan ORDER_TYPE_BUY değil

ve en önemlisi, uyumluluğu korurken OrderCheck() ve OrderSend() mantığını değiştirmenizi hiçbir şey engelleyemez

 
A100 : Hatanın tam olarak bu olduğunu düşünüyorum. Belirli bir numaralandırma kullanılmazsa - değerinin WRONG_VALUE olması mantıklıdır ve örneğin aslında = 0 olan ORDER_TYPE_BUY değil

ve en önemlisi, uyumluluğu korurken OrderCheck() ve OrderSend() mantığını değiştirmenizi hiçbir şey engelleyemez

Geliştiricilerin görüşlerini anlamak mümkündür - hata hakkında Servis Masasına yazın.
 

Garip bir hata buldum.

Bu kodu danışmanlarımda kullanıyorum:

 void OnTradeTransaction( const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result)
  {
   if (trans.type == TRADE_TRANSACTION_DEAL_ADD)
    {
     if (trans.symbol == "EURUSD" ) EURUSD_K = 1 ;
    }    
  }

Test cihazında tek bir çalıştırma sorunsuz çalışır, ancak parametre seçimini tam numaralandırmaya ayarladığımda test cihazı on ila on kat daha yavaş çalışmaya başlar. Tek seferde hızın neden yeterli olduğunu ve optimizasyonla hızın neden belirgin şekilde düştüğünü anlayamıyorum. Ve katlanarak düşüyor. Yüzde, ilk başta her şeyin olması gerektiği gibi gittiğini, ancak finale yaklaştıkça hızın giderek düştüğünü gösteriyor. Kodumda döngü veya başka bir sorun aradım ama bulamadım. Ondan sonra yukarıdaki kodu kendi algoritmamla değiştirdim ve bak işte! Optimizasyon artık normal sabit hızda çalışıyor. Buradan sorunun MQL5'in içinde, OnTradeTransaction işlevinin gövdesinde bir yerde olduğu sonucuna varıyorum. Geliştiricilerin buna dikkat etmelerini rica ediyorum.

ps Uzmanın kodunu yaymak mümkün değildir. benim için değeri var. Uzman Danışmanlarınızdan herhangi birinde yukarıda belirtilen kodu kullanmayı deneyin ve 2000'den günümüze kadar olan dönem için OHLC M5 için optimizasyon hızına bakın.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
lordlev :

Garip bir hata buldum.

Bu kodu danışmanlarımda kullanıyorum:

Test cihazında tek bir çalıştırma sorunsuz çalışır, ancak parametre seçimini tam numaralandırmaya ayarladığımda test cihazı on ila on kat daha yavaş çalışmaya başlar. Tek seferde hızın neden yeterli olduğunu ve optimizasyonla hızın neden belirgin şekilde düştüğünü anlayamıyorum. Ve katlanarak düşüyor. Yüzde, ilk başta her şeyin olması gerektiği gibi gittiğini, ancak finale yaklaştıkça hızın giderek düştüğünü gösteriyor. Kodumda döngü veya başka bir sorun aradım ama bulamadım. Ondan sonra yukarıdaki kodu kendi algoritmamla değiştirdim ve bak işte! Optimizasyon artık normal sabit hızda çalışıyor. Buradan sorunun MQL5'in içinde, OnTradeTransaction işlevinin gövdesinde bir yerde olduğu sonucuna varıyorum. Geliştiricilerin buna dikkat etmelerini rica ediyorum.

ps Uzmanın kodunu yaymak mümkün değildir. benim için değeri var. Uzman Danışmanlarınızdan herhangi birinde yukarıda belirtilen kodu kullanmayı deneyin ve 2000'den günümüze kadar olan dönem için OHLC M5 için optimizasyon hızına bakın.

Farklı parametrelerle, uzman farklı zamanlar için çalışabilir
 
Konstantin83 :
Farklı parametrelerle, uzman farklı zamanlar için çalışabilir
Bu durumda sorun Expert Advisor'da ve parametrelerde değildir. Sorun MQL5'in kendisinde.
 
lordlev :

Yukarıdaki kodu kendi algoritmamla değiştirdikten sonra

Onlar. OnTradeTransaction() kullanmayı reddettiniz mi? - o zaman hızın artması mantıklı - her fırsatta çağrılıyor
 
A100 :
Onlar. OnTradeTransaction() kullanmayı reddettiniz mi? - o zaman hızın artması mantıklı - her fırsatta çağrılıyor
Doğal olarak reddedildi. Herhangi bir nedenle çağrıldığı açıktır. Tek bir çalıştırma ile hızın neden yeterli olduğu ve optimizasyon ile hızın neden keskin bir şekilde düştüğü açık değil. Ve buradaki nokta parametrelerin kendisinde değil, yukarıda başka bir yoldaşın yazdığı gibi, on kez iyice kontrol ettim. Buradan ve geliştiricilerin bir yerinde bir hatanın ortaya çıktığı sonucu.
 
lordlev :

Ve minimum bir test senaryosu oluşturmanızı ve hizmet masasına aboneliğinizi iptal etmenizi engelleyen nedir?