MT5版TrimPipsがフリーズする

障害対応

TrimPips障害対応の一覧

ご訪問ありがとうございます。

 

今回は、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);

 

 

考察

 

 

 

<編集途中>

 

 

最後までご覧いただきありがとうございます。

つぎはこちら⇒

TrimPips障害対応の一覧

コメント

タイトルとURLをコピーしました