*

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

前回は、コピー先でエントリーするところまで行ったので、今回は決済処理をします。
決済は「ファイル関数から取得した文字列に既定のトレード情報がなくなったら」決済とします。

勘の良い方はお気づきだと思いますが、これ、結構危ういです。

というのもファイル関数がファイルの取得に失敗した場合、返り値が””になって、全決済してしまう可能性があるからです。(実際にはないです。)

これを回避するにはファイル関数の参照エラーをきっちり分けてやればOKです。

つまり、

パターン1:ファイル関数が正常に作動し、トレード情報がまだある状態
パターン2:ファイル関数が正常に作動し、トレード情報が消えた状態(決済)
パターン3:ファイル関数が失敗した場合(エラー)

パターン2とパターン3をちゃんと区別して書けば、万事OKです。

話が少しそれるのですが、多くのEA開発代行業者が決済の際にfor文とOrdersTotal()を併用しています。
しかし、これってちょっと危うくないですか。

OrdersTotal()は現在保持しているオーダーの総数です。しかし、そのfor文の中でオーダーを決済してしまえば、OrdersTotalの数が変わります。

すると、for文が本来回るはずだった回数が減っていき、ポジションの番号の順番も変わる可能性があります。

おそらくこの記述でうまくいっているということはRefreshRate()するかOnTickから一度抜け出すまではOrdersTotalに入っている値が変わらないということを利用しているのでしょう。

しかしそれをわざわざするなら、決済するべきオーダーのチケット番号を一度保管して、for文を抜けた後に決済処理した方が安全です。

(と言いつつ、forとOrdersTotal使うんですけどね)

話を戻します。

注意するべきは、業者によってオーダーコメントに変な文字列が追加されるケースがあることです。

例えばオーダーコメントを”at12345678″としたつもりでも、
業者側が勝手に”at12345678tp”のようないらない文字列を付け足すことがあります。
(タイミングはまちまちです。)

そのため、
if(オーダーコメント==調べるチケット番号)
としてしまうと、正常に処理されない可能性があります。

ここはStringFindを使って、オーダーコメントの中に指定のチケット番号が”含まれているかどうか”
を使いましょう。

if(StringFind(オーダーコメント,調べるチケット番号,0) > 0 )
です。

検索文字列が見つかった場合、その文字列の位置を返すので、0以上の場合は合致ということになります。

もし最後まで合致しなければコピー元がポジションを決済したということになり、オーダーを決済します。

【追記】ブローカーによっては決済後のオーダーコメントを”tp”だけにしたりする場合があるので、オーダーコメントではなくマジックナンバーに親のチケット番号を入れる仕様に変更しました。

これでコピーツールの全体が終わりました。次回は全体のコードとそれぞれのケースについて考察します。

Message

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

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

関連記事

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

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

記事を読む

no image

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

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

記事を読む

第9回:ロウソク足による条件を作る~3回連続で陽線になったら買うEA~

ロウソク足の記述方法 MQLにはロウソク足の4本値が標準搭載されています。 それぞれ、

記事を読む

MT4が使えない業者にMT4の自動売買を流すには(UWSC)

MT4が使えない業者でも魅力的な業者はたくさんあります。 特にスプレッドの面で、MT4業者は不

記事を読む

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

今回はトレードを受信する側のPHPのスクリプトを書きます。 これが終わればコピーツールの大枠が完成

記事を読む

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

    各トピックに対するコメントは各記事のコメント欄にお願いします。それ以外のご質問、ご相談などは
    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 ↑