MT4 hängt sich auf, ruft nicht mehr start() auf - Seite 2

 

start():

int start()
  {     
   int TFInd;
   int k;  
   
   Print("start():  started . . .");  
   
   if (CheckDebug(DebugStart, 2))
      {
         DebugStr = "DebugStart: " + "begin: " + " InitialGapFound: " + BoolToString(InitialGapFound);
         PrintDebug(DebugFile, DebugStr);
      }

...

OK ist einfach #define OK 0

meine Log-Datei:

2013.11.15 14:35:30 Test reduziert 0: USDJPY M15 Debug Init() begin:
2013.11.15 14:35:30 Test reduziert 0: USDJPY M15 DebugMyInit begin:
2013.11.15 14:35:30 Test reduziert 0: USDJPY M15 Debug Init() return:
2013.11.15 14:35:30 Test reduziert 0: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Test reduziert 0: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound
2013.11.15 14:35:32 Test reduziert 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:32 Test reduziert 1180990: USDJPY M15 DebugStart: InitialHistoryGapClosed
2013.11.15 14:35:32 Test reduziert 1180990: USDJPY M15 DebugMyInit beginnen:
2013.11.15 14:35:32 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 1 nach CreateHistory()
2013.11.15 14:35:33 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 2 nach CreateHistory()
2013.11.15 14:35:34 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 3 nach CreateHistory()
2013.11.15 14:35:35 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 4 nach CreateHistory()
2013.11.15 14:35:35 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 5 nach CreateHistory()
2013.11.15 14:35:36 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 6 nach CreateHistory()
2013.11.15 14:35:37 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 7 nach CreateHistory()
2013.11.15 14:35:37 Test reduziert 1180990: USDJPY M15 DebugMyInit return InitialMyInitCalls: 0 IndexCount: 8
2013.11.15 14:35:37 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound


Die MT4-Logdatei zeigt nichts an. Print() funktioniert in einem solchen Fall nicht, wenn MT4 sich aufhängt, weil die MT4-Logdatei nicht geleert wird. Deshalb verwende ich meine eigene Log-Funktion.

siehe auch

WHRoeder2013.11.14 19:27#

Loggen wo/wie? Sie können Print/Alert NICHT verwenden, da Sie den GUI-Thread aufhängen, die Ausgabe wird nicht geschrieben.

MT4 Log-Datei:

13:38:00 GA_Pivot Punkte DE30.Z,M15: initialisiert
13:38:00 $CH_Stochastic Urheberrecht Dez2009 DE30.Z,M15: initialisiert
14:35:05 GA_Daily Range Lines V1.3 _US30,M15: deinitialisiert
14:35:05 GA_Daily Range Lines V1.3 _US30,M15: uninit Grund 1
14:35:05 GA_MTF MAs 1 V1.4 _US30,M15: uninit Grund 1
14:35:05 GA_MTF MAs 2 V1.4 _US30,M15: Uninit Grund 1
14:35:05 GA_Pivot Punkte _US30,M15: deinitialisiert
14:35:05 GA_Pivot Punkte _US30,M15: uninit Grund 1
14:35:05 $CH_Stochastic Urheberrecht Dez2009 _US30,M15: deinitialisiert
14:35:05 $CH_Stochastic Urheberrecht Dez2009 _US30,M15: uninit Grund 1
14:35:05 GA_Daily Range Lines V1.3 _US30,M15: entfernt
14:35:05 GA_MTF MAs 1 V1.4 _US30,M15: entfernt
14:35:05 GA_MTF MAs 2 V1.4 _US30,M15: entfernt
14:35:05 GA_Pivot Punkte _US30,M15: entfernt
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15: entfernt
14:35:05 GA_MTF MAs 1 V1.4 _US30,M15: uninit Grund 1
14:35:05 GA_MTF MAs 2 V1.4 _US30,M15: uninit Grund 1
14:35:05 GA_Pivot Punkte _US30,M15: deinitialisiert
14:35:05 GA_Pivot Punkte _US30,M15: uninit Grund 1
14:35:05 $CH_Stochastic Urheberrecht Dez2009 _US30,M15: deinitialisiert
14:35:05 $CH_Stochastic Urheberrecht Dez2009 _US30,M15: uninit Grund 1
14:35:05 GA_MTF MAs 1 V1.4 _US30,M15: entfernt
14:35:05 GA_MTF MAs 2 V1.4 _US30,M15: entfernt
14:35:05 GA_Pivot Punkte _US30,M15: entfernt
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15: entfernt
14:35:05 GA_MTF MAs 1 V1.4 _EUR50,Daily: uninit Grund 1
14:35:05 GA_MTF MAs 2 V1.4 _EUR50,Daily: Uninit Grund 1
14:35:05 GA_Pivot Punkte _EUR50,Daily: deinitialisiert
14:35:05 GA_Pivot Punkte _EUR50,Daily: Uninit Grund 1
14:35:05 $CH_Stochastic Copyright Dec2009 _EUR50,Daily: deinitialisiert
14:35:05 $CH_Stochastic Copyright Dec2009 _EUR50,Daily: uninit Grund 1
14:35:05 GA_MTF MAs 1 V1.4 _EUR50,Daily: entfernt
14:35:05 GA_MTF MAs 2 V1.4 _EUR50,Daily: entfernt
14:35:05 GA_Pivot Punkte _EUR50,Täglich: entfernt
14:35:05 $CH_Stochastic Copyright Dec2009 _EUR50,Daily: entfernt
14:35:05 GA_MTF MAs 1 V1.4 _DE30,M15: uninit Grund 1
14:35:05 GA_MTF MAs 2 V1.4 _DE30,M15: uninit Grund 1
14:35:05 GA_Pivot Punkte _DE30,M15: deinitialisiert
14:35:05 GA_Pivot Punkte _DE30,M15: uninit Grund 1
14:35:05 $CH_Stochastic Urheberrecht Dez2009 _DE30,M15: deinitialisiert
14:35:05 $CH_Stochastic Urheberrecht Dez2009 _DE30,M15: uninit Grund 1
14:35:05 GA_MTF MAs 1 V1.4 _DE30,M15: entfernt
14:35:05 GA_MTF MAs 2 V1.4 _DE30,M15: entfernt
14:35:05 GA_Pivot Punkte _DE30,M15: entfernt
14:35:05 $CH_Stochastic Copyright Dec2009 _DE30,M15: entfernt
14:35:05 GA_MTF MAs 1 V1.4 DE30.Z,M15: uninit Grund 1
14:35:05 GA_MTF MAs 2 V1.4 DE30.Z,M15: uninit Grund 1
14:35:05 GA_Pivot Punkte DE30.Z,M15: deinitialisiert
14:35:05 GA_Pivot Punkte DE30.Z,M15: uninit Grund 1
14:35:05 $CH_Stochastic Urheberrecht Dez2009 DE30.Z,M15: deinitialisiert
14:35:05 $CH_Stochastic Urheberrecht Dez2009 DE30.Z,M15: uninit Grund 1
14:35:05 GA_MTF MAs 1 V1.4 DE30.Z,M15: entfernt
14:35:05 GA_MTF MAs 2 V1.4 DE30.Z,M15: entfernt
14:35:05 GA_Pivot Punkte DE30.Z,M15: entfernt
14:35:05 $CH_Stochastic Copyright Dec2009 DE30.Z,M15: entfernt

 
mt4forum:

start():

OK ist einfach #define OK 0

OK

Die MT4-Logdatei zeigt nichts an. Print() funktioniert in einem solchen Fall nicht, wenn MT4 sich aufhängt, weil die MT4-Logdatei nicht geleert wird. Deshalb verwende ich meine eigene Log-Funktion.

siehe auch

WHRoeder2013.11.14 19:27#

Logging wo/wie? Sie können Print/Alert NICHT verwenden, weil Sie den GUI-Thread aufhängen, die Ausgabe wird nicht geschrieben
Print() funktioniert vor dem Aufhängen . . . wenn Sie die EAs stoppen, klicken Sie auf die EA-Schaltfläche, sollte die Protokolldatei dann nicht geleert werden? dann würden Sie in der Lage sein, den letzten Druck zu sehen . . oder ändern Sie es in einen Kommentar() und löschen Sie den Kommentar am Ende von start() mit Kommentar("");
 

Ich führe das Programm als Indikator aus.

Um es zu stoppen, muss ich den MT4-Terminalprozess beenden.

Ich habe comment() eingefügt, wie Sie vorgeschlagen haben.

Der Kommentar erscheint nicht auf dem Chart.

 
         if (TimeLocal() >= LastInitialGapCloseCheck + HistoryDownloadCheckInterval)                                  // zzz
Warum rufen Sie TimeLocal auf? Das ist Ihre Rechnerzeit (in Ihrer TZ), nicht die Zeit Ihres Brokers, nicht die Zeit des Testers. Versuchen Sie TimeCurrent() an beiden Stellen.
 

Ich weiß, ich benutze sie nur, um zu prüfen, wie viel Zeit verstrichen ist, bevor ich wieder eine Prüfung durchführe.

In diesem Fall könnte ich jede beliebige Zeitfunktion verwenden, solange ich immer dieselbe verwende.

Das ist nicht das Problem.

Ist es möglich, dass ich irgendwie den Funktionsaufrufstapel der start()-Funktion zerstöre?

 
mt4forum: In diesem Fall könnte ich jede beliebige Zeitfunktion verwenden, solange ich immer dieselbe benutze. Das ist nicht das Problem.
Es ist ein Problem, wenn Sie jemals den Tester/Optimierer verwenden wollen.
 
mt4forum:

Ich lasse das Programm als Indikator laufen.

Verlangsamen Sie den Schnittstellenfaden?
 
RaptorUK:
Verlangsamen Sie den Schnittstellenfaden?

Was meinen Sie damit?

 
mt4forum:

Was meinen Sie damit?

In einem Indikator können Sie nicht Sleep() verwenden, Sie können nicht MessageBox() verwenden oder wenn Ihr Code in einer Schleife einfach sehr lange dauert.

"Die Funktion kann nicht von benutzerdefinierten Indikatoren aufgerufen werden, da sie innerhalb des Schnittstellen-Threadsausgeführtwerden und diesen nicht verlangsamen dürfen."
 

Nein, ich verwende weder sleep() noch messagebox(), aber ich mache eine Menge Arbeit in der Funktion MyInit(), die etwa 5 Sekunden dauert.

Sie können das in der Log-Datei sehen:

2013.11.15 14:35:32 Test reduziert 1180990: USDJPY M15 DebugStart: InitialHistoryGapClosed
2013.11.15 14:35:32 Test reduziert 1180990: USDJPY M15 DebugMyInit begin: <---------- work starts
2013.11.15 14:35:32 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 1 nach CreateHistory()
2013.11.15 14:35:33 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 2 nach CreateHistory()
2013.11.15 14:35:34 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 3 nach CreateHistory()
2013.11.15 14:35:35 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 4 nach CreateHistory()
2013.11.15 14:35:35 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 5 nach CreateHistory()
2013.11.15 14:35:36 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 6 nach CreateHistory()
2013.11.15 14:35:37 Test reduziert 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 7 nach CreateHistory()
2013.11.15 14:35:37 Test reduziert 1180990: USDJPY M15 DebugMyInit return InitialMyInitCalls: 0 IndexCount: 8 <---------- work ends
2013.11.15 14:35:37 Test reduziert 1180990: USDJPY M15 DebugStart: letzte Rückkehr in InitialGapFound

Aber warum sollte das MT4 danach in eine Schleife gehen?