Hatalar, hatalar, sorular - sayfa 1506

 
DV2010 :

Bilgi eksikliği için özür dilerim.

1. "Dergi" sekmesindeki bilgiler:

2. Kaldırılmak üzere test edilen gösterge, normal bir Bollinger Bantlarıdır:

- gösterge dosyası C:\Program Files\Alpari Limited MT5\MQL5\Indicators\Examples\BB.ex5 konumunda bulunur;

- derlenen dosya grafiğe manuel olarak eklenir;

Her iki dosyayı da bu gönderiye ekliyorum.

3. Göstergeyi kaldıran ve hatanın tespit edildiği Expert Advisor'ın tam kodu:

   void OnInit(){
      ChartIndicatorDelete(0,0,"Bollinger Bands");
   } 

Test sonucu:

Böyle bir "uzman"ı (uygulamada - DeleteInd.ex5) grafiğe sürükledikten sonra

oraya daha önce eklenen Bollinger Bantları manuel olarak silinir, ancak bundan sonraki grafik, grafik yeniden boyutlandırıldığında ölçeklenmez.

Bu kadar ayrıntılı ve iyi biçimlendirilmiş bir soru için teşekkür ederiz (uzun zamandır kimse böyle yazmamıştı!).

Bu bana ne oluyor:

  1. BB göstergesini ...\MQL5\Indicators\Examples\BB.mq5 klasöründen manuel olarak ekliyorum.
  2. Aynı çizelgede bir Uzman Danışman başlatıyorum. Danışmanın kendisi biraz ekledi:
     //+------------------------------------------------------------------+
    //|                                                      ProjectName |
    //|                                      Copyright 2012, CompanyName |
    //|                                       http://www.companyname.net |
    //+------------------------------------------------------------------+
    void OnInit ()
      {
       ResetLastError ();
       if (! ChartIndicatorDelete ( 0 , 0 , "Bollinger Bands" ))
           Print ( "Error delete BB " , GetLastError ());
      }
    //+------------------------------------------------------------------+
    bir hata alıyorum

    ERR_CHART_INDICATOR_CANNOT_DEL

    4115

    Bir grafikten bir gösterge silinirken hata


Bu hata, göstergeyi danışmandan çıkardıktan sonra, BB'nin bulunduğu grafik penceresini görebilsek de, aslında zaten yok edildiğinden oluşur. Kontrol etmek için, danışmanı başlattıktan sonra terminalde başka bir profile geçmeniz ve ardından geri dönmeniz (önceki profile) - ve grafiğin diliyle bir inek gibi yalandığını bulmanız gerekir.

Benim yapılandırmam:

 2016.02 . 11 18 : 47 : 04.915 Terminal        MetaTrader 5 x64 build 1241 started (MetaQuotes Software Corp.)
2016.02 . 11 18 : 47 : 04.915 Terminal        Windows 10 Pro (x64 based PC), IE 11.63 , UAC, Intel Core i3- 3120 M  @ 2.50 GHz, RAM: 785 / 3981 Mb, HDD: 68822 / 233310 Mb, GMT+ 02 : 00
2016.02 . 11 18 : 47 : 04.915 Terminal        C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\ 43 B472C43247368C5B97C7F22A1AE963
Dosyalar:
DeleteInd.mq5  1 kb
 
Karputov Vladimir :

Bu kadar ayrıntılı ve iyi biçimlendirilmiş bir soru için teşekkür ederiz (uzun zamandır kimse böyle yazmamıştı!).

Bu bana ne oluyor:

  1. BB göstergesini ...\MQL5\Indicators\Examples\BB.mq5 klasöründen manuel olarak ekliyorum.
  2. Aynı çizelgede bir Uzman Danışman başlatıyorum. Danışmanın kendisi biraz ekledi:
    bir hata alıyorum

    ERR_CHART_INDICATOR_CANNOT_DEL

    4115

    Bir grafikten bir gösterge silinirken hata oluştu


Bu hata, göstergeyi danışmandan çıkardıktan sonra, BB'nin bulunduğu grafik penceresini görebilsek de, aslında zaten yok edildiğinden oluşur. Kontrol etmek için, danışmanı başlattıktan sonra terminalde başka bir profile geçmeniz ve ardından geri dönmeniz (önceki profile) - ve grafiğin bir ineğin dili tarafından yalandığını bulmanız gerekir.

Benim yapılandırmam:

Kodunuzu günlükte çalıştırdığımda yalnızca şunu alıyorum:

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

Ancak başka bir profile geçip geri döndükten sonra gerçekten bir pencere yok (uzman eklendikten sonra içindeki alıntılar değişse de).

Bu bir bug olduğu anlamına mı geliyor? Sonuçta, anladığım kadarıyla ChartIndicatorDelete() işlevini kullanarak bir göstergeyi silmek, grafiğin bu kadar anormal davranışına yol açmamalı mı? Bunu düzeltmek mümkün mü?

 
DV2010 :

Kodunuzu günlükte çalıştırdığımda yalnızca şunu alıyorum:

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

Ancak başka bir profile geçip geri döndükten sonra gerçekten bir pencere yok (uzman eklendikten sonra içindeki alıntılar değişse de).

Bu bir bug olduğu anlamına mı geliyor? Sonuçta, anladığım kadarıyla ChartIndicatorDelete() işlevini kullanarak bir göstergeyi silmek, grafiğin bu kadar anormal davranışına yol açmamalı mı? Bunu düzeltmek mümkün mü?

Daha önce servise bildirdim.
 
Masada, danışmanda çalışma modları arasında - bir danışman olarak ve bir gösterge olarak - bir geçiş yapmak için bir dosya olması gerektiğini tavsiye ettiler. Aynı ürün farklı terminallere kurulacaktır.

geçiş yaptım. Ama şu oldu: Uzmanlar klasöründeki mq4 dosyasını derlersem, program sadece Uzman Danışman olarak, gösterge olarak (Göstergeler klasörüne kopyalarken) çalışıyor, hatta çizelgeye kurulmuyor. Ancak bu klasörde yeniden derlerseniz, her şey yolundadır. Ve danışman ile aynı, Göstergeler klasöründe derlenmişse kurulmaz. Söyle bana, burada sorun ne? Derleme modu katıdır, hata yoktur.

 

En son MT5 yapı 1241'de ChartIndicatorDelete işlevi grafiği "bozuyor". Yeniden boyutlandırma sırasında grafik yeniden çizilmez , terminal kapatıldığında grafik kaydedilmez, vb.

Bu zaten düzeltildi. Lütfen bir sonraki yapıyı bekleyin

 
Igor Ramensky :
Masada dosyanın bir tane olması gerektiğini söylediler,
Veya servis masasından uygulama numarasını isteyebilirsiniz.
 
Sevgili geliştiriciler, söyleyin bana, MQL'de sınıf işlevlerinin ve yöntemlerinin yinelenmesine izin veriliyor mu? Özyinelemeli bir yöntem çağrısı yapıyorum ve bir yığın taşması alıyorum.
 
coderex :
Sevgili geliştiriciler, söyleyin bana, MQL'de sınıf işlevlerinin ve yöntemlerinin yinelenmesine izin veriliyor mu? Özyinelemeli bir yöntem çağrısı yapıyorum ve yığın taşması alıyorum.

Tabii ki izin verilir. Aksi takdirde yığın taşması olmaz.

Ne bekliyordun?

Özyinelemenin derinliğini bir şekilde kontrol ediyor musunuz?

 
Slawa :

Tabii ki izin verilir. Aksi takdirde yığın taşması olmaz.

Ne bekliyordun?

Bir şekilde özyinelemenin derinliğini kontrol ediyor musunuz?

Fark ettim bile :) Tabii araya girdiğim için özür dilerim, uzun zamandır özyineleme kullanmıyorum ve özyineleme derinliğini kontrol etmeyi tamamen unutmuşum...
 
Aktivasyonları ne sıklıkla yapabilirsiniz? Veya başka bir şekilde, bir aktivasyondan sonra, bir sonrakini ne kadar sürede yapabilirsiniz?