*

【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に公開されるので、問い合わせ等はメールでお願いします。

関連記事

MQLxPHP サーバを経由するコピートレードツールを作る1

以前、DLLなしで動くコピートレードツールを連載しましたが、 今回はサーバを経由するコピートレード

記事を読む

no image

自動売買における仮想ストップロス、仮想テイクプロフィットの概念と意味

最近の自動売買系の論文やコードを読んでいると「仮想ストップロス」、「仮想テイクプロフィット」という概

記事を読む

第24回:iCustomでインジケータをEA化する

インジケータとiCustom 今回はインジケーターのシグナルを使って、EAを作ります。 iC

記事を読む

第16回:EA内で日本時間を作る

サーバー時刻のEAの演算を日本時刻にする MT4の時刻は多くの場合日本時間ではなく、 サーバーが

記事を読む

EAのデコンパイルの実際とその対策

デコンパイルというのは実行ファイルからソースコードファイルを復元することで、デコードとかリバースエン

記事を読む

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

    各トピックに対するコメントは各記事のコメント欄にお願いします。それ以外のご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    私の偽物がいるらしいので偽物にご注意ください。
no image
【MQL4】外部ソフトなしで稼働するコピートレードツールを作る。その⑨

このシリーズは前回の投稿から1年以上あいている訳ですが、結構問い合わせ

no image
【一覧】外部ソフトなしで稼働するコピートレードツールを作る。

【MQL4】外部ソフトなしで稼働するコピートレードツールを作る。その1

no image
スマホから稼働中のEAを操作、チェックするアイディア【RDP以外で】

自動売買システムはVPSなどに設置することで24時間稼働させられますが

no image
【初心者向け】VPSでWebサーバー構築 (さくらVPSxUbuntu16.04)

今回はサーバーの構築について扱ってみようと思います。VPSを使った一般

no image
2018年中盤~の仮想通貨(ビットコイン)アービトラージの相場について

ちょくちょく「最近、ビットコインのアービトラージどうですか」という質問

→もっと見る

PAGE TOP ↑