MT4がハングアップし、start()を再度呼び出さない - ページ 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 はただの #define OK 0

のログファイルです。

2013.11.15 14:35:30 Test reduced 0: USDJPY M15 Debug Init() begin:
2013.11.15 14:35:30 Test reduced 0: USDJPY M15 DebugMyInit begin:
2013.11.15 14:35:30 テストは0を減らしました: USDJPY M15 Debug Init() return:
2013.11.15 14:35:30 テストは0を削減:USDJPY M15 DebugStart:開始します。 InitialGapFound。真
2013.11.15 14:35:30 テストは0を削減:USDJPY M15 DebugStart:InitialGapFoundで最後の戻り値。
2013.11.15 14:35:30 テストは1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound。True
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:True
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:True
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:True
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:True
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:True
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:True
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:True
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:True
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:True
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:True
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:True
2013.11.15 14:35:30 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:真
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:真
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:真
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:真
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:真
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:真
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:真
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:真
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:真
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:真
2013.11.15 14:35:31 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン
2013.11.15 14:35:32 テストは、1180990を削減しました。USDJPY M15 DebugStart: 開始。 InitialGapFound:真
2013.11.15 14:35:32 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialHistoryGapClosed
2013.11.15 14:35:32 テストは、1180990を削減しました。USDJPY M15 DebugMyInit 開始。
2013.11.15 14:35:32 テストは、1180990を削減しました。USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()で1回
2013.11.15 14:35:33 テストは、1180990を削減しました。USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()実行時:2
2013.11.15 14:35:34 Test reduced 1180990:USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()実行時:3
2013.11.15 14:35:35 テストは、1180990を減らしました。USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()実行時:4
2013.11.15 14:35:35 テストは、1180990を減らしました。USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()実行時:5
2013.11.15 14:35:36 テストは、1180990を削減しました。USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()実行時:6
2013.11.15 14:35:37 テストは、1180990を削減しました。USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()で7件
2013.11.15 14:35:37 テストは、1180990を削減しました。USDJPY M15 DebugMyInit return InitialMyInitCalls:0 IndexCount:8
2013.11.15 14:35:37 テストは、1180990を削減しました。USDJPY M15 DebugStart:InitialGapFoundの最後のリターン


MT4のログファイルには何も表示されません。MT4がハングアップした場合、MT4のログファイルがフラッシュされないため、このような場合、Print()は機能しません。そのため、自作のログ関数を使用しています。

参照

WHRoeder2013.11.14 19:27# さん

どこで、どのようにログを取るのですか?GUIスレッドをハングアップさせるので、Print/Alertを使用することはできません、出力は書き込まれません。

MT4のログファイルです。

13:38:00 GA_ピボットポイントDE30.Z,M15:初期化された
13:38:00 $CH_Stochastic Copyright Dec2009 DE30.Z,M15:初期化されました。
14:35:05 GA_Daily Range Lines V1.3 _US30,M15: deinitialized
14:35:05 GA_Daily Range Lines V1.3 _US30,M15: uninit reason 1
14:35:05 GA_MTF MAs 1 V1.4 _US30,M15: uninit reason 1
14:35:05 GA_MTF MAs 2 V1.4 _US30,M15: uninit reason 1
14:35:05 GA_ピボットポイント_US30,M15:非初期化
14:35:05 GA_Pivot Points _US30,M15: uninit reason 1
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15: deinitialized
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15: uninit reason 1
14:35:05 GA_Daily Range Lines V1.3 _US30,M15: 削除されました。
14:35:05 GA_MTF MAs 1 V1.4 _US30,M15:削除されました。
14:35:05 GA_MTF MAs 2 V1.4 _US30,M15:を削除しました。
14:35:05 GA_ピボットポイント_US30,M15:削除
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15:削除しました。
14:35:05 GA_MTF MAs 1 V1.4 _US30,M15: uninit reason 1
14:35:05 GA_MTF MAs 2 V1.4 _US30,M15: uninit reason 1
14:35:05 GA_ピボットポイント_US30,M15:非初期化
14:35:05 GA_Pivot Points _US30,M15: uninit reason 1
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15: deinitialized
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15: uninit reason 1
14:35:05 GA_MTF MAs 1 V1.4 _US30,M15:削除
14:35:05 GA_MTF MAs 2 V1.4 _US30,M15:削除されました。
14:35:05 GA_ピボットポイント_US30,M15:削除
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15:削除しました。
14:35:05 GA_MTF MAs 1 V1.4 _EUR50,Daily: uninit reason 1
14:35:05 GA_MTF MAs 2 V1.4 _EUR50,Daily: uninit reason 1
14:35:05 GA_ピボットポイント_EUR50,Daily:deinitialized
14:35:05 GA_Pivot Points _EUR50,Daily: uninit reason 1
14:35:05 $CH_Stochastic Copyright Dec2009 _EUR50,Daily: deinitialized
14:35:05 $CH_Stochastic Copyright Dec2009 _EUR50,Daily: uninit reason 1
14:35:05 GA_MTF MAs 1 V1.4 _EUR50,Daily: 削除されました。
14:35:05 GA_MTF MAs 2 V1.4 _EUR50,Daily:削除されました。
14:35:05 GA_ピボットポイント_EUR50,Daily:削除
14:35:05 $CH_Stochastic Copyright Dec2009 _EUR50,Daily:を削除しました。
14:35:05 GA_MTF MAs 1 V1.4 _DE30,M15: uninit reason 1
14:35:05 GA_MTF MAs 2 V1.4 _DE30,M15:未使用の理由1
14:35:05 GA_ピボットポイント_DE30,M15:非初期化
14:35:05 GA_ピボットポイント_DE30,M15: uninit reason 1
14:35:05 $CH_Stochastic Copyright Dec2009 _DE30,M15: deinitialized
14:35:05 $CH_Stochastic Copyright Dec2009 _DE30,M15: uninit reason 1
14:35:05 GA_MTF MAs 1 V1.4 _DE30,M15:削除
14:35:05 GA_MTF MAs 2 V1.4 _DE30,M15:削除されました。
14:35:05 GA_ピボットポイント_DE30,M15:削除されました。
14:35:05 $CH_Stochastic Copyright Dec2009 _DE30,M15:削除しました。
14:35:05 GA_MTF MAs 1 V1.4 DE30.Z,M15: uninit reason 1
14:35:05 GA_MTF MAs 2 V1.4 DE30.Z,M15:終了の理由 1
14:35:05 GA_ピボットポイント DE30.Z,M15:非初期化
14:35:05 GA_ピボットポイントDE30.Z,M15: uninit reason 1
14:35:05 $CH_Stochastic Copyright Dec2009 DE30.Z,M15: deinitialized
14:35:05 $CH_Stochastic Copyright Dec2009 DE30.Z,M15: uninit reason 1.
14:35:05 GA_MTF MAs 1 V1.4 DE30.Z,M15: 削除されました。
14:35:05 GA_MTF MAs 2 V1.4 DE30.Z,M15:削除されました。
14:35:05 GA_ピボットポイント DE30.Z,M15:削除
14:35:05 $CH_Stochastic Copyright Dec2009 DE30.Z,M15:削除しました。

 
mt4forum:

start() を実行します。

OK は単に #define OK 0

OK

MT4ログファイルには何も表示されません。MT4がハングアップした場合、MT4のログファイルがフラッシュされないため、このような場合、Print()は機能しない。そのため、自作のログ関数を使用しています。

も参照してください。

WHRoeder2013.11.14 19:27#

ログはどこで、どのように取るのですか?GUIスレッドをハングアップさせるので、Print/Alertを使用することはできません。
Print()はハングアップする前に動作します。.EAの実行を停止してEAボタンをクリックすると、ログファイルがフラッシュされるはずですが? そうすれば、最後のプリントを見ることができるはずです。
 

プログラムをインジケーターとして動かしています。

止めるにはMT4端末のプロセスを 終了させなければなりません。

ご指摘の通りcomment()を挿入していますが

チャートにコメントが表示されません。

 
         if (TimeLocal() >= LastInitialGapCloseCheck + HistoryDownloadCheckInterval)                                  // zzz
なぜTimeLocalを呼び出す のですか? それはあなたのマシンタイム(あなたのTZで)であり、ブローカータイムでもなく、テスタータイムでもありません。両方の場所でTimeCurrent()を試してみてください。
 

そうなんです、私はただ単に、あるチェックを再度行うまでにどれだけの時間が経過したかを確認するために使っているんです。

この場合、いつも同じものを使っている限り、どんな時間関数を使っても いいんだ。

問題はそこじゃないんだ。

start()関数の関数呼び出しスタックを壊している可能性はありませんか?

 
mt4forum: この場合、いつも同じものを使っていれば、どんな時間関数を使ってもいいんだ。それは問題ではありません。
テスター/オプティマイザーを使うことがあれば問題です。
 
mt4forum:

インジケーターとしてプログラムを動かしています。

インターフェイスのスレッドを減速しているのでしょうか?
 
RaptorUK:
インターフェーススレッドを減速しているのですか?

どういうことですか?

 
mt4forum:

どういうことですか?

インディケータではSleep() は使えないし、MessageBox() も使えないし、ループで時間がかかるだけのコードなら ... ... 。

" インターフェーススレッド内で実行され、それを減速させることができないので、関数はカスタムインジケータから呼び出す ことができません"
 

いいえ、sleep()やmessagebox() は使っていませんが、MyInit()という関数で多くの作業を行い、5秒程度で終了します。

ログファイルを見ればわかると思います。

2013.11.15 14:35:32 テストは1180990を減らしました。USDJPY M15 DebugStart: InitialHistoryGapClosed
2013.11.15 14:35:32 テストは1180990を削減しました。USDJPY M15 DebugMyInit開始: <---------- 作業開始
2013.11.15 14:35:32 テストは、1180990を削減しました。USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()で1件
2013.11.15 14:35:33 テストは、1180990を削減しました。USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()実行時:2
2013.11.15 14:35:34 Test reduced 1180990:USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()実行時:3
2013.11.15 14:35:35 テストは、1180990を減らしました。USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()実行時:4
2013.11.15 14:35:35 テストは、1180990を減らしました。USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()実行時:5
2013.11.15 14:35:36 テストは、1180990を削減しました。USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()実行時:6
2013.11.15 14:35:37 テストは、1180990を削減しました。USDJPY M15 DebugMyInit InitialMyInitCalls:0 IndexCount:CreateHistory()で7件
2013.11.15 14:35:37 テストは、1180990を削減しました。USDJPY M15 DebugMyInit return InitialMyInitCalls:0 IndexCount:8 <---------- 作業終了
2013.11.15 14:35:37 テストは、1180990を削減しました。USDJPY M15 DebugStart: InitialGapFoundの最後のリターン

しかし、なぜそれでMT4がその後ループしてしまうのでしょうか?