見出し画像

MT4に張った多数のチャートの設定をまとめて変更する方法

MT4で、朝スキャEAなど、多通貨ペアのチャートを大量に貼り付けたチャートのロットを変更したい時、などに有効な方法をご紹介します。

①チャートの組表示を利用する

「ファイル」→「チャートの組表示」→「名前を付けて保存」で、現在開いているチャート全ての設定(チャートデザイン、インジやEAの設定等)を保存することが出来ます。
特に名前を付けていない場合は、Defaultという名前で既に保存されています。下の例では「eagle」という名前で保存しています。

②チャート組表示の名前のフォルダを開く

まず、「ファイル」→「データフォルダを開く」から、開いているMT4のデータがあるパスを開きます。次に、このパス配下の、"profiles"フォルダを開くと、そこに、先ほど保存した「eagle」というチャート組表示のプロファイルがあります。

このフォルダ配下に、チャートの各種設定(チャートデザイン、インジやEAの設定等)がテキストファイルで保存されています。ここにある "chartXX.chr” ファイルが、ある1つのチャートに対する設定ファイルになります。

③サクラエディタをインストール

この全ファイルを手作業で修正するのは大変なので、フォルダ以下のファイルをまとめて置換してくれるGrep置換というものがあります。これに対応したテキストエディタをお持ちでない方は、サクラエディタをダウンロードしてインストールしてください。

サクラエディタのサイトから、「ダウンロード」→「~Installer.zip」をクリックしてインストーラをダウンロードします。バージョンは以下ではv2.4.1ですが、その時の最新版で大丈夫です。

zipを解凍してインストールします。インストール時は、色々とダイアログが出ますが、基本はデフォルトでOKです。下図左にある設定画面のみ、好みに応じて赤枠のチェックをしてください。
(私はサクラエディタLOVEなので、「~で開く」をチェックしています)

SAKURA Editorで開くメニューの追加
 →ファイル右クリック時のメニューに、「SAKURA Editorで開く」が追加
送るに追加
 →ファイル右クリック時の「送る」に、「SAKURA Editor」が追加

④置換したい箇所の特定

サクラエディタを起動し、「chart01.chr」ファイルをエディタにドラッグ&ドロップします(または、起動せずに、上記の「SAKURA Editorで開く」、「送る→SAKURA Editor」で開いてもいいです)。

すると、設定ファイルがテキストで書かれていると思います。下図左のように、ファイルの最後の方に、<expert>~</expert>で囲まれたブロックがあると思います。ここが、EAの設定パラメータです。下図右の、EAの設定画面と対応していることが分かると思います。

例えばeagle blizzard CXCでは、ロットに関するパラメータが下図の赤枠のようになっています。全通貨一律で0.3ロットにしたい場合は、全ての「chartXX.chr」ファイルで、"Lots=0.2" → "Lots=0.3" に置換すれば良いのです。

⑤Grep検索で置換箇所を確認

実際に置換する前に、Grep検索で、指定フォルダ下の全ファイルを検索してみます。

サクラエディタの「検索」→「Grep」を選択し、Grep条件入力ダイアログで「条件」を「Lots=0.2」とします(下図左)。
また、先ほど開いたフォルダのパスをコピーして(下図右)、Grep条件入力ダイアログの「フォルダ」にペーストします(下図左下)。

「検索」ボタンをクリックすると、検索結果が表示されます。下図赤枠の左側がファイル名、右側が検索した文字列です。過不足なく抽出できているか確認します。想定外の箇所が検索されていると、次の置換の作業で誤って置換してしまうので、検索条件を見直してください。

⑥Grep置換で一括置換

さて、いよいよ置換作業です。この作業は、必ずMT4を閉じている状態で行ってください。また、誤って置換したときのために、該当のチャート組表示のフォルダ(今回の例では「eagle」フォルダ)をバックアップしておいてください。他の場所にコピーしたり、フォルダをzip圧縮しておいたりします。

※ zip圧縮であれば、「profile」フォルダ下に残したままでも構いませんが、コピーしたフォルダを「profile」フォルダ下に置くと、MT4からもその名前で見えてしまうので注意してください。

サクラエディタの「検索」→「Grep置換」を選択すると、以下のようなGrep置換ダイアログが出ます。「フォルダ」は前回選択したものが残っていると思うので、確認して、「置換前」と「置換後」を間違いなく設定します。下図は、0.2ロットを0.3ロットに変更する例です。

「バックアップを作成」のチェックは外してもいいと思います。既に手作業でバックアップ済みですし、このチェックを入れると、同じフォルダに多数のバックアップファイルが作成されてしまい、イマイチな気がします。

正しく設定したら、「置換」をクリックします。すると、置換結果が以下の通り出力され、無事置換が完了しました。
(検索や置換の結果表示ウィンドウは、閉じてしまって構いません)

なお、この時に、先ほどの「chart01.chr」ファイルを開いたままだった場合は、以下のダイアログが出るので、「再読込」をクリックすると、開いているファイルの内容が更新されます。

置換が終わったら、MT4を起動して、設定を確認してみてください。
置換前後で、ファイルとMT4の設定は、以下の通り更新されています。
めでたしめでたし!

応用編(余談)

余談ですが、応用として、別のブローカーのMT4に移行したい時は、この「eagle」フォルダを移行先にコピーすれば良いです。IBのEAでは無理ですが、市販EAの場合は、一旦口座紐づけを解除してから新しいMT4にチャート設定まるごと移行できます。

ただし、注意点として、通貨ペア名が異なる場合、上記同様にGrep置換が必要です。通貨ペア名は、"chartXX.chr" ファイルで、"symbol=XXXXXX"と書かれているのでここを置換します。例えば、"symbol=XXXXXX.raw” に一括置換したい場合はどうするか? ”XXXXXX"の箇所は通貨ペアで異なるので、単純には置換できません。

そこで登場するのが正規表現です。何それ?って感じですね。きっちり勉強したい人はググってもらうとして、今回のような場合は、以下のようにすると置換できます。
(「正規表現」のチェックを付けるのを忘れないでくださいね)

置換前: symbol=(.{6}).*
置換後: symbol=\1\.raw
(※「¥」の半角は「\」となってしまっていますが、「¥」の半角を入力してください)

"symbol=" の後に続く任意の6文字が、"\1"に入るようになります。また、".*" の部分は行末まで続く任意の文字数の文字列になります。つまり、置換前が"AUDNZD" だろうと、"AUDNZD." だろうと、"AUDNZD.hs" だろうと、検索条件にマッチングして、"AUDNZD.raw" に置換されます。
素敵ですね!!!

余談でした!

いいなと思ったら応援しよう!