MT4で複数のインジケータ使っている場合や分析のため水平線やトレンドライン、フィボナッチラインを使用して画面が見にくくなった経験は、みなさんあると思います。
MT4上の画面を右クリック、”表示中のライン等のリスト”を確認すると大量のライン等が確認できます。
ちなみに表示中のライン等の画面を表示するにはCtrl+Bでも表示できます。
ここに表示されているのはライン、トレンドライン、ラベル、テキストなどでプログラミングの世界ではこれらはオブジェクトと言われています。特にラウンドナンバーで自動で線が引かれるインジケーター、自動で水平線やトレントラインを引くインジケータや時間で線が引かれるインジケータを使用している場合には大量に作成されていることになります。さらにこのオブジェクトはプログラミングでは表示を無効にすることができ、作成したオブジェクを削除しない、あまりよろしくないインジケータを使用したりするとオブジェクトが削除されないのでどんどんオブジェクトが増えるということになります。プログラミング的にはオブジェクトは2 147 483 647個まで作成可能になりますがMT4が遅くなっている原因の1つかもしれません。
Type Size in Bytes Minimum Value Maximum Value
int 4 - 2 147 483 648 2 147 483 647
試しに”表示中のライン等のリスト”のすべてのボタンを押してみてください。
一気に数字が増えませんか?大量のオブジェクトが作成されてませんか?
例では435個のオブジェクトが3525個まで増えました。
これらのオブジェクトは”表示中のライン等のリスト”の画面でも”すべて”のボタンを押してCtrl+A(すべてを選択)で”削除”ボタンを押すことで削除は可能になります。
こちらではほかの方法としてスクリプトを1から作成して今後スクリプトをダブルクリックすることにより実行できるようにしたいと思います。
MT4の画面にF4キーを押してMeta Editorを起動します。左上の”新規作成”をクリックします。
上記の画面が表示されますのでスクリプトを選んで”次へ”のボタンを押します。
名前の箇所にスクリプトの名前を入力します。なんでもいいのですがここではDeleteAllと入力しています。
”完了”ボタンを押します。
上記の画面が表示されるのですべての内容を消して(Ctrl+Aを押してBackSpaceキー)
以下を以下を貼り付けてください。
貼り付けたら画面中央のコンパイルを押してください。
DeleteAll.mql:
#property copyright "Copyright 2020, MetaQuotes Software Corp." |
下の画面で0 errors, 0 warningsになっていることを確認してください。
もしコンパイルボタンを押してエラーが出た場合には上にスペース等がないか等確認してください。
MT4の画面に戻ると作成したスクリプトがあるのが確認できます。
オブジェクトが大量にあるチャート表示されているのであればスクリプトをダブルクリックまたは、
チャートにドラッグ&ドロップします。以下の画面が表示されますので"はい"を押します。
チャート上のすべてのオブジェクトが削除されます。
もちろん”表示中のライン等のリスト”に何もないときは実行されないのでご注意ください。
あと実行後、スクリプトを実行したい通貨になっていることを確認お願いします。