2012年03月13日(火)
コピートレードのプログラミング(9) [MQL4]
今回からコピートレードのコピー先のプログラムについて見ていきます。
その前に、コピー元のMT4、あるいはMT5が出力したポジション情報のファイルの場所について確認しておきましょう。
前回のプログラムの修正で、ポジション情報のファイルはサブフォルダ「Position」の下に出力されるようにしました。
つまり、コピー元のMT4が「C:¥MT41」にインストールされている場合、EURUSDのポジションデータは、フルパスでは、「C:¥MT41¥experts¥files¥Position¥EURUSD.txt」というファイルとして、USDJPYのポジションデータは、「C:¥MT41¥experts¥files¥Position¥USDJPY.txt」というファイルとして出力されているはずです。
コピー先のEAを作る前に、これらのコピー元のファイルがコピー先のEAからも参照できるかを確認する必要があります。
例えば、コピー先のMT4が「C:¥MT42」にインストールされている場合、コピー先のEAから直接読み書きできるのは、「C:¥MT42¥experts¥files」というフォルダの下にあるファイルだけです。
もちろんそのフォルダの下のサブフォルダの下でも問題ないので、ここでは、コピー元と同じく「C:¥MT42¥experts¥files¥Position」の下でコピー元のファイルが見えるようにしてみます。
そのための方法として、以前紹介したシンボリックリンクの記事を参照してください。
前回は個々のファイルに対してリンクを張る方法を紹介しましたが、今回はフォルダに対してリンクを張る方法です。
同じく「mklink」というコマンドを使います。一つ注意する点は、/dというオプションを付ける点です。
コマンドのパラメータは次のようになります。
mklink /d リンク名 リンク名が参照するフォルダ
コマンドプロンプトから実行した例です。
これでコピー元であるMT41のPositionというサブフォルダがMT42のPosition というサブフォルダとして参照できるようになりました。
この状態であれば、コピー先のEAで簡単にファイルの内容を読み込むことができるので、後はそれに従ってオーダーを送信すればOKということになります。
簡単に言えばこれだけですが、プログラムは実際のオーダー送信を伴うので、いくつか注意する点があります。具体的なプログラムの書き方については次回から何回かに分けて説明していきます。
Posted at 16時42分