ご訪問ありがとうございます。
今回は、MT5版のTrimPipsがフリーズしてしまうという重大な問題です。
ご報告内容
===========
FX会社
axioryプラットフォーム
MT5口座種別
その他再現時の設定
axioryのゼロ口座で使用したところ、TrimPipsを立ち上げるとフリーズしてしまいます。何か方法はありますか?通貨ペア
USDJPY再現手順
TrimPipsを立ち上げるとすぐフリーズします。再現頻度
100%補足事項
さらに、2,3日後にも
===========
FX会社
exnessプラットフォーム
MT5口座種別
その他再現時の設定
ゼロ口座になります。
ちなみに、XMの極み口座もダメでした。
MT4は作動します。
作動させると、ターミナルが出現、その後ポインタがくるくる回りつずけ、フリーズしてしまいます。 通貨ペア
その他再現手順
btcusd再現頻度
100%補足事項
共通点は、MT5におけるゼロ口座。
とりあえず、Axioryでゼロ口座を作成し試したのですが、再現しません。
うーん、なんでかな。
原因はわからないのでGeminiに聞きイマイチと思えたが
Geminiから提案された回答を送る
詳細ありがとうございます。 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);
考察
<編集途中>
最後までご覧いただきありがとうございます。
つぎはこちら⇒

コメント