https://keichang.hatenadiary.jp/archive

0から始めるFX自動売買

(ほぼ)放ったらかしで月利3%を目指します。

重くなったMT4のチャートオブジェクトを軽くする方法

重くなったMT4を軽くする方法を見つけました。過去7年くらい?の経験の中で、最も効果がありましたので、共有です。

何故MT4は時間の経過とともに重くなるのか?

長期間トレードしていると、売買履歴のオブジェクト(矢印)がずっと蓄積していきます。逆指値を使うEAだと気がつけば1年で1万を超えてることもザラです。

例えば、、、こちらの組表示で保存したディレクトリをファイルの重さでソートしてみました。

上から2つ目の824kbのファイルは何行あるでしょうか。。?

これで、約52000行ありました。相当な数が描画されてしまいます。

一番上のファイルの行数は、、、なんと、約33万行。

チャートを開くたびに、一旦これが読み込まれます。そりゃ重いわ。。。

ということで消していきます。

チャート枚数が少ない人は一つずつ手動で消しておしまいです。チャートが数十枚もある人はこちらの方法を試してみてください。

なお、余計なデータを消すとEAの設定が狂うかもしれませんので、 自己責任でお願いします。私は責任を一切とりません!!

STEP BY STEP

  1. 準備 まずVS codeをインストールしてください。 ※VS Codeじゃなくても、同じことできると思いますが、とりあえずVS code前提で。

  2. チャートを組表示で保存してください。

保存したディレクトリをVS Codeで開いてください。

ctrl + shift + F でファイル横断検索ができます。 *を押下すると正規表現が使えます。

検索項目は、<object>[\n\s\S]*</object> です。 これを空白で置き換えてください。

ちなみに、日本語が含まれるEAの場合は、vs codeで作業する前に、ディレクトリを開いた直後に、"workspaceとして保存する"として、設定ファイルのsettingsに"files.encoding": "shiftjis"と入れることで文字化けを防げます。必須です。

  1. 一旦VS codeを閉じてください。

そのディレクトリを複製して適当な名前をつけといてください。

  1. MT4を再起動して、先程作ったフォルダで組表示で表示。

これで完了です!!!

めでたく、めちゃくちゃ軽くなりました~。

ちなみに、複数EAのロット管理も同じような方法でできちゃいます。

.chrファイルのロット数のところを${lot}みたいな変数にして、ファイル名に対して変数部分を一括置換すればOKです。私は70くらいいつもEA動かしてるので、これで超時短できてます。自分用なので汎用性なく、誰かに提供するのは難しいですが、報酬頂ければ説明付きで共有しましょう。。笑 プログラミングできる方はchatGPT君に相談しながらやってみてください!