*

【MQL4】シンプルに稼働するコピートレードツールを作る。その③

まずは、コピー元のプログラムを作ります。トレードを受信する側よりもかなり簡単です。

コピー先に送る情報として最低限必要なのは、通貨ペア、売り買いの方向、オーダーを識別するためのチケットナンバーです。

この三つがあれば、とりあえずコピーは可能です。
ファイル関数は文字列型でしか格納できないので、これらを一つの情報にまとめます。

チケット番号:通貨ペア(6文字):売買@

で一つのオーダーの情報にします。
情報を区切る記号(:@)はなんでもOKです。何ならJSON形式チックの方が分かりやすい方もいるかもしれません。

オーダーが複数になった場合には、
 チケット番号:通貨ペア(6文字):売買@チケット番号:通貨ペア(6文字):売買@…
という風にどんどん連結していきます。

あとはこの関数が吐き出すトレード情報の文字列をファイル関数でファイルに書き込みます。
ファイル名はなんでもOKです。ここではCoypingTradingData.txtとしています。

ただし、ファイル名に変な記号(カンマなど)を入れると、OSが変な拡張子として認識したりするので、特殊記号はいれないでください。

ファイル関数は通常の変数などと違って、
”○○という名前のファイルを(書き込み専用or読み込み専用)開きます”と宣言します。 FileOpen
次に、
”さっき指定したファイルに書き込みますor読み込みます” FileWrite, FileRead
最後に、
”今開いているファイルを閉じます” FileClose
という手順を踏まなければなりません。

ファイル関数はMT4ターミナルの外部フォルダにアクセスするので、PCの状態によってはアクセスに失敗することがあります。(メモリがいっぱいとか、ビジー状態とか)そのため、成功するまで最大30回繰り返す仕様にしています。

また、コピー元がファイルに書き込みをするタイミングと受信側ファイルを読み込むタイミングが重なると、Windowsの仕様上例外処理が必要になります。(対象のファイルに対して読み込みと書き込みを同時に行うことはできない。)

【追記】ここの処理は後の記事でwhile文からfor文に書き換えています。あとスリープも入れています。

一応MQLリファレンスにはFILE_SHARE_WRITE, FILE_SHARE_READという指定もあるのですが、なぜか上手く書き込みができなかったので、通常版で記述しています。

ここで宣言していない変数は、あとでコードをまとめたときに別の場所で宣言しているので、
コピペする際には全体のコードから取得してください。

ここで一番重要なのはファイル関数を使う際にFILE_COMMONを指定することです。これを入れることでフォルダアクセスが一つ上層になり、ほかのMT4からもアクセス可能な領域にデータが保存されます。

この保存場所は「C:\Users\AppData\Roaming\MetaQuotes\Terminal\Common\Files」です。

もしこのディレクトリの書き込み権限がない場合はエラーになりますので、書き込み権限を与えておいてください。(デフォルトでは通常書き込みOKになっているはずです。)

Message

メールアドレスが公開されることはありません。

このコメントはWEBに公開されるので、問い合わせ等はメールでお願いします。

関連記事

【MQL4】シンプルに稼働するコピートレードツールを作る。その⑥

前回は「”過去に”コピー元のトレードを持っていたか調べる関数」と「"現在"コピー元のトレードを持って

記事を読む

EAと口座認証

EAを第3者に渡すとき、何かしらの制限をかけておかないと、 コピーされてしまう可能性があります。

記事を読む

第2回:EAの新規作成

新規作成 メタエディタから「New」(新規作成)をクリックしてください。 するとこれから何を

記事を読む

第18回:配列で変数をまとめる

MQLの配列 MQLでティックチャートを使うとします。 MQLでは過去のティックチャートのデ

記事を読む

【MQL4】シンプルに稼働するコピートレードツールを作る。その②

コピーツールを作る前に、MT4の仕様上の話をしなくてはなりません。 複数のMT4業者を利用した

記事を読む

 
  • ブログ管理人の横瀬兼元(ペンネーム)です。

    各トピックに対するコメントは各記事のコメント欄にお願いします。それ以外のご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    私の偽者がいるらしいのでご注意ください。
【MAクロス】仮想通貨でシステムトレード検証(ソフト無料プレゼントあり)

MT4/MT5でも仮想通貨チャートが増えてきたので、そろそろ自動売買や

自動売買プログラム他 無料プレゼント 2019年2月

口座開設プレゼント企画 下記のリンクより口座開設していただいた方にお

バイナリーオプションで特定の手法が勝てるかどうか検証する方法

バイナリーオプションの場合、 リアルタイムの自動売買開発と過去検証の

【MQL4】シンプルに稼働するコピートレードツールを作る。その⑩

今回はリバーストレードができるように改良します。 端的に言うと、コピ

【一覧】シンプルに稼働するコピートレードツールを作る。

MT4以外のソフトを使わずに、DLLも使わずに、同一コンピュータ上で高

→もっと見る

PAGE TOP ↑