MT4 kilitleniyor, tekrar start() işlevini çağırmıyor - sayfa 4

 

Raptor'a katılıyorum, birinin gerçekten yardım edebilmesinin tek yolu, ilgili kodu göndermenizdir, aksi takdirde bu sadece karanlıkta çekim yapmak gibidir.

 

Üzgünüm, kodu gönderemiyorum. 72 sayfa ve yayınlayacağım bir ürünün kodu.

Bu arada, WHRoeder'ın ilk yanıtında önerdiği günlük çağrılarını uyguladım,

Microsoft'un dbgView tarafından görüntülenebilen hata ayıklama bilgilerinin yazılması.

Bu hata ayıklama bilgisi, benim kendi hata ayıklama bilgimle tamamen aynıdır, bu da şunu gösterir:

günlük dosyalarında gördüğümüze güvenebileceğimizi.

Şimdi, günlük dosyası bize start()'tan çıkıldığını, ancak artık tetiklenmediğini söylüyor.

Bunun start() içinde çağrılan CreateHistory() içinde yapılan iş miktarı ile ilgisi var gibi görünüyor.

init() içinde aynı CreateHistory() öğesini çağırdığımda, tamamen aynı miktarda iş sorunsuz bir şekilde yapılıyor.

Buna bakmak için bir MT4 geliştiricisi dahil edebilir miyiz?

Bir MT4 çökmesi hakkında daha fazla bilgiyi nerede bulabilirim (göstergemin EA sürümü MT4'ü çökertiyor)?

Windows olay görüntüleyicisinde hiçbir şey göremedim.

 

İlgili kodu gönder dediğimde, hepsini kastetmedim, en son başarıyla çalıştığından beri neyi değiştirdiniz veya eklediniz? Yol boyunca herhangi bir test yapmadan 72 sayfa düz kod yazmadığınızı varsayıyorum ...

 

Değiştirdiğim şey: CreateHistory()'yi init()'ten start()'a taşıdım.

Mevcut durum aşağıdaki gibidir:

Herhangi bir gecikme olmadan başlangıçta CreateHistory() işlevini çağırdığımda: iyi çalışıyor.

Bir gecikme ile başlangıçta CreateHistory() öğesini çağırdığımda >= 1 sn: MT4 kilitleniyor.

Ancak, askıda kalan CreateHistory() değil, start() işlevidir .

İşte start() için kod:

 int start()
  {     
   int TFInd;
   int k;  
   
   if (CheckDebug(DebugStart, 2 ))
      {
         DebugStr = "DebugStart: " + "begin ---------------------------------------: " ;
         PrintDebug(DebugFile, DebugStr);
      }

      
   for (IndexCount = 1 ; IndexCount <= MaxIndices; IndexCount++)
      {
         if (CheckDebug(DebugStart, 2 ))
            {
               DebugStr = "DebugStart: " + "in loop +++++++++++++: " + "IndexCount: " + IndexCount;
               PrintDebug(DebugFile, DebugStr);
            }              
      
         if (MyCurrencyIndices[IndexCount] == 0 )
             break ;

         CurrencyIndex = MyCurrencyIndices[IndexCount];             

         CurrencyIndexStr = Prefix + CurrencyNames[CurrencyIndex];
                 
         if (!HistoryCreated[CurrencyIndex] && ( TimeLocal () >= IndiStartTime + 0 ))                                                   // yyy
            {                     
               FileSeek (FileHandle[CurrencyIndex, TimeFrameM15] , HeaderFilePointer[CurrencyIndex, TimeFrameM15] , SEEK_SET );
               FileSeek (FileHandle[CurrencyIndex, TimeFrameH1] , HeaderFilePointer[CurrencyIndex, TimeFrameH1] , SEEK_SET );
               FileSeek (FileHandle[CurrencyIndex, TimeFrameH4] , HeaderFilePointer[CurrencyIndex, TimeFrameH4] , SEEK_SET );
               FileSeek (FileHandle[CurrencyIndex, TimeFrameD1] , HeaderFilePointer[CurrencyIndex, TimeFrameD1] , SEEK_SET );

               CreateHistory();
               HistoryCreated[CurrencyIndex] = true ;    
            }                           
      }  

   if (CheckDebug(DebugStart, 2 ))
      {
         DebugStr = "DebugStart: " + "returning ..." ;
         PrintDebug(DebugFile, DebugStr);
      }
                          
   return ( 0 );
  }

Aşağıda 2 günlük dosyası bulunmaktadır:

bir tane TimeLocal() ile yukarıdaki kod için >= IndiStartTime + 0 (tamam çalışıyor), bir tane TimeLocal() ile yukarıdaki kod için >= IndiStartTime + 1 (askıda kalıyor).

Son durumda, CreateHistory() doğru şekilde çalışır ve döner.

start() içinde yalnızca bir kez çağrılır.

start() içinde başka hiçbir şey yapılmaz, yine de start() MT4 tarafından bir daha asla çağrılmaz ve MT4 kilitlenir ve CPU'yu tüketir.

CreateHistory() kodumun %80'ini tetikler.

Yayınlayamam.

0 sn gecikme için günlük dosyası:

2013.12.04 12:34:10 Test azaltıldı: USDJPY M15 Hata Ayıklama Başlatma() başlangıcı:
2013.12.04 12:34:10 Test azaltıldı: USDJPY M15 Hata Ayıklama Başlatma() dönüşü:
2013.12.04 12:34:10 Test azaltıldı: USDJPY M15 Hata Ayıklama Başlangıcı: başla ---------------------------------- -----:
2013.12.04 12:34:10 Test azaltıldı: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 1 <----------- CreateHistory() hemen aradı
2013.12.04 12:34:10 Test azaltıldı: USDJPY M15 Hata Ayıklama CreateHistoryTimeFrame(), başlangıç: CurrencyIndex: 1 TF: 1 ShiftsArray[1, TF]: 4996 TheShift: 0
2013.12.04 12:34:10 Test azaltıldı: USDJPY M15 Hata Ayıklama CreateHistoryTimeFrame(), son dönüş: CurrencyIndex: 1 TF: 1
2013.12.04 12:34:10 Test azaltıldı: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 2
2013.12.04 12:34:10 Test azaltıldı: USDJPY M15 DebugStart: geri dönüyor ...
2013.12.04 12:34:11 Test azaltıldı: USDJPY M15 Hata Ayıklama Başlangıcı: başla ---------------------------------- -----: <------------ start() tekrar tekrar tetikleniyor
2013.12.04 12:34:11 Test azaltıldı: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 1
2013.12.04 12:34:11 Test azaltıldı: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 2
2013.12.04 12:34:11 Test azaltıldı: USDJPY M15 DebugStart: geri dönüyor ...
2013.12.04 12:34:11 Test azaltıldı: USDJPY M15 Hata Ayıklama Başlangıcı: başla ---------------------------------- -----:
2013.12.04 12:34:11 Test azaltıldı: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 1
2013.12.04 12:34:11 Test azaltıldı: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 2
2013.12.04 12:34:11 Test azaltıldı: USDJPY M15 DebugStart: geri dönüyor ...

1 saniye gecikme için günlük dosyası:

2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlatma() başlıyor:
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlatma() dönüşü:
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: başlıyor --------------------------------- ------:
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 1
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 2
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: geri dönüyor ...
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: başlıyor --------------------------------- ------:
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 1
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 2
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: geri dönüyor ...
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: başlıyor --------------------------------- ------:
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 1
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 2
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: geri dönüyor ...
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: başlıyor --------------------------------- ------:
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 1
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 2
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: geri dönüyor ...
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: başlıyor --------------------------------- ------:
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 1
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 2
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: geri dönüyor ...
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: başlıyor --------------------------------- ------:
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 1
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 2
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: geri dönüyor ...
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: başlıyor --------------------------------- ------:
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 1
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 2
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: geri dönüyor ...
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: başlıyor --------------------------------- ------:
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 1
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 2
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: geri dönüyor ...
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: başlıyor --------------------------------- ------:
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 1
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 2
2013.12.04 12:32:17 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: geri dönüyor ...
2013.12.04 12:32:18 Test azaltıldı 0: USDJPY M15 Hata Ayıklama Başlangıcı: başlıyor --------------------------------- ------:
2013.12.04 12:32:18 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 1
2013.12.04 12:32:18 Test azaltıldı 0: USDJPY M15 Hata Ayıklama CreateHistoryTimeFrame(), başlangıç: CurrencyIndex: 1 TF: 1 ShiftsArray[1, TF]: 4996 TheShift: 0 <----------- 1 saniye sonra CreateHistory() çağrılır
2013.12.04 12:32:18 Test azaltıldı 0: USDJPY M15 Hata Ayıklama CreateHistoryTimeFrame(), son dönüş: CurrencyIndex: 1 TF: 1
2013.12.04 12:32:18 Test azaltıldı 0: USDJPY M15 DebugStart: döngüde +++++++++++++: IndexCount: 2
2013.12.04 12:32:18 Test azaltıldı 0: USDJPY M15 DebugStart: geri dönüyor ... <---------- start() bir daha asla tetiklenmiyor

 
Saklambaç oynamak gibi hissediyorum. Şu anda CreateHistory() işlevinizin canlı .hst dosyalarına art arda yazdığından çok şüpheliyim. haklı mıyım?
 

CreateHistory(), .hst dosyalarına yazarak çevrimdışı grafikler oluşturur.

Canlı .hst dosyalarına YAZMAZ.

 
mt4forum :

CreateHistory(), .hst dosyalarına yazarak çevrimdışı grafikler oluşturur.

Canlı .hst dosyalarına YAZMAZ.

Bunun böyle olduğundan nasıl emin oluyorsunuz?
 
RaptorUK :
Durumun böyle olduğundan nasıl emin oluyorsunuz?

   CurrencyIndexStr = "CI_EUR" ;  

   FileName = CurrencyIndexStr + ThePeriod + ".hst" ;
   FileHandle = FileOpenHistory(FileName, FILE_BIN | FILE_WRITE );  

CI_EUR adında bir MT4 aracı yok.

 
mt4forum :

CI_EUR adında bir MT4 aracı yok.

TAMAM