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

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

 

2012年02月06日(月)

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



今回からMQL4、MQL5でコピートレードのプログラムを作っていきます。

なお、コピートレードは実際のトレードを行うものなので、プログラムの動作確認は必ずデモ口座で行うようにしてください。

まずは、コピー元のプログラムから始めていきましょう。

コピー元のプログラムは、ポジションの情報をファイルに出力するだけなので、スクリプトやカスタム指標プログラムでも作成することができるのですが、リアルタイムでデータを更新していくのでExpert Advisor(EA)として作ることにします。

EAの動作としては、

 ・オープンポジションのロット数を算出する
 ・そのロット数をファイルに書き出す

という2つの手順だけです。MT4用のプログラム例は以下のようになります。

int start()
{
// オープンポジションの合計ロット数
double lots = 0.0;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS) == false) break;
if(OrderSymbol() != Symbol()) continue;
if(OrderType() == OP_BUY) lots += OrderLots();
if(OrderType() == OP_SELL) lots -= OrderLots();
}

// ファイルへ出力
int hFile = FileOpen(Symbol()+".txt", FILE_WRITE|FILE_CSV);
if(hFile == -1) return(0);
FileWrite(hFile, lots);
FileClose(hFile);

return(0);
}

このプログラムの前半は、オープンポジションの合計ロット数を求める部分です。MT4の各オーダーをOrderSelect()関数で選択して、買いポジションでロット数を加算、売りポジションでロット数を減算します。よくあるパターンです。

そして後半がそのロット数lotsをファイルに出力する部分です。FileOpen()、FileWrite()、FileClose()という順番でプログラムを記述します。

出力するファイル名はチャートの通貨ペア名に「.txt」という拡張子をつけたものになります。

例えば、このEAを"EURUSD"のチャートに挿入すると、EURUSDのオープンポジションのロット数を算出し、それを"EURUSD.txt"というファイルに出力します。

このファイルは「FILE_CSV」というモードでオープンしているので、ロット数のデータもテキストデータとして書き込まれます。ファイルの中身は、メモ帳やテキストエディタで簡単に確認することができます。

デモ口座で適当に売買ポジションを作ってみて、「0.1」とか「-0.2」とかファイルが書き換えられているか確認してみてください。

これでポジション情報をほぼリアルタイムにファイルに書き出すことができるのですが、一つ気になる点があります。

このEAはティック毎に実行されるので、その都度ファイルの書き込みを行います。しかし、ポジションが変わらない場合はファイル出力を行う必要はありません。

そこで、ポジションが変わったときのみ書き込みをさせたい場合、どうすればよいでしょうか?

ちょっとしたプログラミングの練習と思って考えてみてください。

次回に続きます。


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




Posted at 20時35分


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

Sponsor AD

2012/2

      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      

プロフィール

豊嶋久道

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

PHOTO

値動きのヒストグラムからわかること

値動きのヒストグラムからわかること

カテゴリーリスト

最近の記事

検索


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

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

RSS1.0

[Login]


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