ご訪問ありがとうございます。
今回は、MT5版のTrimPipsがフリーズしてしまうという重大な問題です。
ご報告内容
===========
FX会社
axioryプラットフォーム
MT5口座種別
その他再現時の設定
axioryのゼロ口座で使用したところ、TrimPipsを立ち上げるとフリーズしてしまいます。何か方法はありますか?通貨ペア
USDJPY再現手順
TrimPipsを立ち上げるとすぐフリーズします。再現頻度
100%補足事項
さらに、2,3日後にも
===========
FX会社
exnessプラットフォーム
MT5口座種別
その他再現時の設定
ゼロ口座になります。
ちなみに、XMの極み口座もダメでした。
MT4は作動します。
作動させると、ターミナルが出現、その後ポインタがくるくる回りつずけ、フリーズしてしまいます。 通貨ペア
その他再現手順
btcusd再現頻度
100%補足事項
共通点は、MT5におけるゼロ口座。
とりあえず、Axioryでゼロ口座を作成し試したのですが、再現しません。
うーん、なんでかな。
原因はわからないのでGeminiに聞いたところそれっぽいがちょっとズレている回答が。
とは言え可能性は0ではないので、とりあえず提案された回答を送りました。
詳細ありがとうございます。 Exnessのゼロ口座、XMの極み口座、そして BTCUSD……まさにMT5に最も負荷がかかる組み合わせです。
MT4で動いてMT5で固まる原因ですが、TrimPips自体のロジックというより、**「MT5側がBTCUSDの膨大なデータを描画しようとして、メモリを使い果たしている」**可能性が非常に高いです。
MT5は初期設定のままだと、過去の数万〜数十万本のバーを全てメモリに展開しようとするため、そこにTrimPipsのパネル描画などが重なると、処理がパンクして「くるくる」が止まらなくなります。
これを解消するために、以下の手順でMT5の「ダイエット」を試していただけますか?
1. チャートの表示本数を制限する(これが最重要です)
MT5メニュー「ツール」>「オプション」>「チャート」
「チャートの最大バー数」を「5000」(またはそれ以下)に変更。
必ず一度、MT5を再起動してください。
2. 再起動後にTrimPipsを適用
これでMT5のメモリ消費が劇的に軽くなります。この状態でBTCUSDに適用して、正常にボタン等が表示されるか確認してみてください。
この設定で解決すれば、ロジックの問題ではなく、MT5の描画リソース不足だったことが確定します。
お手数ですが、ご確認お願いいたします。
やっぱり、解決しないとのご連絡がありました。
—-
ひろし様
お世話になります。
早々のご連絡ありがとうございます。
「チャートの最大バー数」を「5000」にし再起動し、再度ためしてみました。
残念ながら、前と同じ症状になります。
軽くなった感じもほとんどありません。
5000に変える前は、100000でした。
プロコン改を手に入れたくて、探していたところ、ここにたどり着きました。
MT4は問題なく使えており、非常にいいです。
ただ、現状MT5メインで使用しているため、何とか使えるようになるとうれしいです。
どうかよろしくお願いいたします。
うーーーん、どうしもんかな。
Geminiはさらに謎の回答を送るように言ってくる。
ご確認ありがとうございました。「最大バー数 5000」でも改善しないとのこと、承知いたしました。 プロコンの代用として期待していただいている中、お手数をおかけして心苦しいですが、原因をさらに絞り込みたいと思います。
「くるくる回ってフリーズする」現象は、MT5が「描画の準備」または「外部との通信(DLL)」で足止めを食らっている時に発生します。 最後にもう数点だけ、以下の切り分けを試していただけないでしょうか。
1. 気配値表示を「BTCUSDのみ」にする Exnessなどの口座は配信データ量が非常に多いため、他の銘柄の更新が邪魔をしている可能性があります。
MT5左側の「気配値表示」ウィンドウで右クリック > 「すべて非表示」 を選択。
その後、BTCUSDだけを表示させた状態で TrimPips を起動してみてください。
2. 真っさらな「新規チャート」で実行する 今開いているチャートに、過去のラインや他のインジケーターの残骸がある場合、描画が衝突することがあります。
一度今のチャートを閉じ、新しく「BTCUSD」のチャートを開き直して、TrimPipsだけを入れてみてください。
3. DLL許可の再チェック インジケーターを入れる際の設定画面「共有」タブで、「DLLの使用を許可する」 にチェックが入っているか、今一度だけご確認ください。ここがブロックされるとフリーズすることがあります。
もしこれでもダメな場合、一度私の環境でも XMの極み口座(デモ) を作り、〇〇さまと同じ「BTCUSD」でフリーズが再現するか徹底的に叩いてみます。
何とか解決の糸口を掴みたいと思います。 よろしくお願いいたします。
いやー、さすがにこれはアプローチが違うな。
ということで、ログありで試してもらおうと思い

うーん、なんか簡単なTPにログを入れて試してもらいたいんだけどどうかな?
それは名案ですね!「どこで止まっているか」を可視化するのが一番確実です。 ユーザー(〇〇さん)に重いファイルを渡すのではなく、**「起動のどの段階でフリーズしているか」**を特定するための、ログ出力機能だけを持たせた「検証用TrimPips」を渡すのが最短ルートだと思います。
以下のような構成の検証用ファイルを作って、試してもらうのはいかがでしょうか?
int OnInit()
{
Print(“— TrimPips 検証開始 —“);// 1. 口座番号チェックの直前
Print(“Log: 口座チェック開始…”);
if(!IsTrial(ExtTrial)) {
Print(“Log: 試用期限または口座チェックで停止”);
return(INIT_FAILED);
}
Print(“Log: 口座チェック通過”);// 2. パネル作成
Print(“Log: パネル作成(ExtDialog.Create)開始…”);
// ここで固まるなら、MT5の描画リソース限界 or オブジェクト過多
if(!ExtDialog.Create(0,”TrimPips”,0,0,0,W_SIZE_X,W_SIZE_Y))
{
Print(“Log: パネル作成失敗”);
return(INIT_FAILED);
}
Print(“Log: パネル作成成功”);// 3. パネル実行
Print(“Log: ExtDialog.Run開始…”);
if(!ExtDialog.Run())
{
Print(“Log: ExtDialog.Run失敗”);
return(INIT_FAILED);
}
Print(“Log: ExtDialog.Run成功”);// 4. タイマー設定
Print(“Log: タイマー設定(1秒)開始…”);
EventSetTimer(1);Print(“— TrimPips 全ての初期化が正常に完了 —“);
return(INIT_SUCCEEDED);
}
なるほど。
で、コードを変更したのだが、なかなかGeminiとの会話は骨が折れる。
以下のロジックを入れろというがエラーになる
Print(“Log: IsTrialチェック開始”);
bool check = IsTrial(ExtTrial); // ここで止まるなら、IsTrial内のファイル操作等が原因
Print(“Log: IsTrialチェック終了、結果: “, check);
ここからがやりとり
トドメの「超シンプル版」で試してもらいませんか?
これまでの複雑なコードは一切忘れ、**「OnInitの一番最初でログを出して、即座に終了する」**だけのファイルを渡してみましょう。
C++
|
1 2 3 4 5 6 |
<span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">OnInit</span><span class="hljs-params">()</span> </span>{ Print(<span class="hljs-string">"★1. OnInitの入り口に到達しました"</span>); <span class="hljs-keyword">return</span>(INIT_SUCCEEDED); } |
これで試してもらって…
-
「★1」すらエキスパートタブに出ない → 確定です。
OnInitに入る前(グローバル変数やインクルード)で死んでいます。 -
「★1」が出るが固まる →
OnInit以降の処理(タイマーや描画)が犯人です。
え?これだけ?
いやいや、もっとログ入れようや。大丈夫?
失礼しました!「これだけ?」と思われますよね。ひろしさんの仰る通りです。 「ボールを持たない」ためにも、一回のパスで**「どこまでが白で、どこからが黒か」**を完全に炙り出せるだけの材料を詰め込むべきでした。
障害発生さんの環境でOnInitの中身すら通っていない(=その手前で死んでいる)可能性も考慮しつつ、「ここまでは動いた」という足跡を徹底的に残すログ版を組み直しました。
これなら、どのステップで「くるくる(フリーズ)」が始まったか一目でわかります。
だから
IndicatorCountedMQL4();
は通らないって。
解析できてる?
といったやりとりが延々続く。
その後、簡単なプログラムを作成して動かないので
mt5をアップデートしたところTrimPipsが起動時にフリーズする状態が発生
そしてGeminiとのトンチンカンなやり取りが延々(3,4時間)続き
結果的にmt5を再インストールすることで解決しました。
結論
MT5版TrimPipsがフリーズする場合は、MT5を再インストールしてください。
最後までご覧いただきありがとうございます。
つぎは今回の調査時にログを追加した時の話です⇒



コメント