システムトレード研究所 〜FXで完全自動売買〜

このサイトでは、FXで完全自動売買を行うために必要な情報を書いていこうと思っています。システムを自分で作りたい方、システムトレードをやってみたい方は御覧になっていって下さい。
<< SendMailについて | main | 配列について >>
損益の取得方法について
 こんばんは、小松です。台風が過ぎて、かなり涼しくなってきましたね。季節の変わり目ですので、体調を崩さないように注意してください。

 今回の記事は、「損益の取得方法について」という内容で書かせて頂きます。

 ポジションの損益を取得した場合、利益(損失)が◯◯を超えれば決済、利益(損失)が◯◯を超えればトレイル開始など、損益の内容によって柔軟にルールを変えることが可能です。

 まずは個別のポジションの損益の取得方法です。

 最初にOrderSelect()を行い、調べるポジションを指定します。OrderSelect()についてはこちらを御覧ください。

 次にOrderProfit()で損益を取得します。損益はPipsではなく、円口座なら◯◯◯円、ドル口座なら◯◯◯ドルで取得されます。

 コードを書くと下記になります。(最初のポジションをセレクトしています)

double aaa = NULL;

OrderSelect(0,SELECT_BY_POS);

aaa = OrderProfit();

 これで変数aaaに最初のポジションの損益を取得出来ます。



 システムを起動している通貨ペアのポジションの損益をまとめて取得する場合は下記のようなコードを書いてください。


double aaa = NULL;
int cnt = NULL;

for(cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS);


if(OrderSymbol() == Symbol())
{

if( OrderType() == OP_BUY || OrderType() == OP_SELL )
{

aaa = aaa + OrderProfit();

}
}


}


 これで変数aaaに損益をまとめて取得出来ます。




 次に、口座の全ポジションの損益を取得する方法です。こちらはOrderSelect()を事前にする必要がなく、AccountProfit()関数を使えばすぐに取得出来ます。

 口座の全ポジションの損益が10000円以上になったら決済する場合、

if( AccountProfit() >= 10000 )
{
決済の処理;
}

とすれば決済出来ます。





システムトレード研究所〜FXで完全自動売買〜INDEXへ
自動売買システム制作のオーダーシステム|FXでオリジナルのシステムトレード

--------------注意----------------


内容には注意を払っていますが、保障は出来ません。
実際に運用する場合は、自己責任でお願いします。





JUGEMテーマ:ビジネス
| 小松 | MetaTrader4 プログラム中級編 | 11:45 | comments(0) | - |









     12
3456789
10111213141516
17181920212223
24252627282930
31      
<< December 2017 >>



このページの先頭へ