重くなったMT4を軽くする方法を見つけました。過去7年くらい?の経験の中で、最も効果がありましたので、共有です。
何故MT4は時間の経過とともに重くなるのか?
長期間トレードしていると、売買履歴のオブジェクト(矢印)がずっと蓄積していきます。逆指値を使うEAだと気がつけば1年で1万を超えてることもザラです。
例えば、、、こちらの組表示で保存したディレクトリをファイルの重さでソートしてみました。
上から2つ目の824kbのファイルは何行あるでしょうか。。?
これで、約52000行ありました。相当な数が描画されてしまいます。
一番上のファイルの行数は、、、なんと、約33万行。
チャートを開くたびに、一旦これが読み込まれます。そりゃ重いわ。。。
ということで消していきます。
チャート枚数が少ない人は一つずつ手動で消しておしまいです。チャートが数十枚もある人はこちらの方法を試してみてください。
なお、余計なデータを消すとEAの設定が狂うかもしれませんので、 自己責任でお願いします。私は責任を一切とりません!!
STEP BY STEP
ctrl + shift + F でファイル横断検索ができます。 *を押下すると正規表現が使えます。
検索項目は、<object>[\n\s\S]*</object>
です。
これを空白で置き換えてください。
ちなみに、日本語が含まれるEAの場合は、vs codeで作業する前に、ディレクトリを開いた直後に、"workspaceとして保存する"として、設定ファイルのsettingsに"files.encoding": "shiftjis"と入れることで文字化けを防げます。必須です。
- 一旦VS codeを閉じてください。
そのディレクトリを複製して適当な名前をつけといてください。
- MT4を再起動して、先程作ったフォルダで組表示で表示。
これで完了です!!!
めでたく、めちゃくちゃ軽くなりました~。
ちなみに、複数EAのロット管理も同じような方法でできちゃいます。
.chrファイルのロット数のところを${lot}みたいな変数にして、ファイル名に対して変数部分を一括置換すればOKです。私は70くらいいつもEA動かしてるので、これで超時短できてます。自分用なので汎用性なく、誰かに提供するのは難しいですが、報酬頂ければ説明付きで共有しましょう。。笑 プログラミングできる方はchatGPT君に相談しながらやってみてください!