基礎から学ぶシステムトレード
シストレブログ人気ランキング  

シストレ徹底攻略シストレマスターへの道ワールド・トレーディング・エッジ基礎から学ぶシステムトレードシストレニュースシストレツールシストレナビTOPへ

 

2012年03月19日(月)

コピートレードのプログラミング(10) [MQL4]



それでは、コピー先のプログラムの具体的な書き方について詳しく見ていくことにしましょう。

コピー先のプログラムもEAとして作成します。

予め注意しておきますが、これから説明するEAは実際のトレードを行うものですし、説明の都合上、エラー処理が完全でない部分もあります。動作の確認を行いたい場合は、必ず、デモ口座で実行してください。

プログラムの大まかな流れは次のようになります。

   (1) コピー元のMT4が出力したポジションファイルを読み込む

   (2) コピー先のMT4のポジション情報を取得する

   (3) (1)と(2)のポジションが違っていたら、コピー元のポジションと一致するように、
     コピー先のMT4でトレードを行う


(1)と(2)の順番はどちらが先でも構いません。それぞれの処理を順に見ていきましょう。

(1)で、ファイルを読み込むためのコードは次のように書けます。

int handle = FileOpen("Position¥¥"+Symbol()+".txt", FILE_CSV|FILE_READ);
if(handle == -1) return(0);
double remote_lots = FileReadNumber(handle);
FileClose(handle);

最初にFileOpen()して最後にFileClose()するところは、ファイルの出力の場合と同じです。

違う点は、FileOpen()の2番目のパラメータで、FILE_WRITEの代わりにFILE_READと書くところです。

FileReadNumber()という関数の戻り値でそのファイルの内容を数値データとして取り出すことができます。ここでは、remote_lotsという変数にその値を代入しておきます。

次に(2)のコピー先のMT4のポジション情報の取得ですが、これはコピー元のEAと同じです。

コピー元のプログラムと同様に、オープンポジションのロット数を算出する関数OpenLots()を用意しておきます。

double OpenLots()
{
double lots = 0.0;

for(int i=0; i {
if(OrderSelect(i, SELECT_BY_POS) == false) break;
if(OrderSymbol() != Symbol() || OrderMagicNumber() != MAGIC) continue;

if(OrderType() == OP_BUY) lots += OrderLots();
if(OrderType() == OP_SELL) lots -= OrderLots();
}
return(lots);
}

オープンポジションのロット数を求めるには、

double local_lots = OpenLots();

と書けばOKです。ここでは、local_lotsという変数に代入しておきます。

なお、上の関数ではマジックナンバーがMAGICと一致するポジションのみをカウントしています。

問題は(3)の実際のトレードです。remote_lotsとlocal_lotsを比較して、両者が一致していれば、何もせずにリターンするだけですが、違っていた場合、トレードを行います。

またそのトレードも、新規にポジションを建てる場合(買いまたは売り)と既存のポジションを決済する場合があり、ちょっとしたロジックを考える必要があります。

ということで、続きは次回に。


>>“基礎から学ぶシステムトレード”全記事バックナンバーはこちらから




Posted at 13時02分


ページのトップへ ページのトップへ

Sponsor AD

2012/3

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

プロフィール

豊嶋久道

2003年よりFX取引を始め、システムトレードの道へ。最近ではFXオプション取引も含めたトレーディングシステムの研究を行っている。システムトレードを基礎から正しく理解するための情報を発信する予定。

PHOTO

実際の相場におけるランダムウォーク

実際の相場におけるランダムウォーク

カテゴリーリスト

最近の記事

検索


当サイトコメントについて

当コメントは情報提供のみを目的として作成されたものであり、投資に関してはご自身でご判断くださいますようお願い致します。また、当資料は著作物であり著作権法により保護されております。無断で全文または一部を転載することはできません。

RSS1.0

[Login]


powered by a-blog
Copyright (C) 2008 PhiConcept,Inc. All rights reserved.