トレード全般

EXCEL Pips計算関数 for OANDA

最近OANDAを使い始めました。OANDAですが、トラックレコードの管理機能が微妙だったりします。csvエクスポート機能がありません。なので私はブラウザで表示されるトラックレコードをEXCELに貼り付けて管理しています。

トラックレコードで表示する列項目は自分で選択することができますが、pipsはありません。pipsを出したかったら自分で計算する必要があります。ポジションの同時保有が無い場合は、単純に一つ前の行のレートから算出すればいいのですが、そうでない場合、少し面倒くさいことになります。

pipsを計算するには下記の項目の値を取得しておく必要があります。

  • チケットID
  • 取引種別
  • 通貨ペア
  • レート
  • 関連チケットID

EXCELに貼り付けると以下のような感じになります。(値はダミーです)

A B C D E F G H
1 チケットID 日付 取引種別 通貨ペア レート 取引数量 関連チケットID
2 0001 成行買い USD/JPY 103.220 10,000
3 0002 決済 USD/JPY 103.110 10,000 0001

H3セルにpipsを表示したい場合、以下のようなEXCEL関数になります。

=IF(C3=”決済”,IF(COUNTIF(D3,”*JPY”)>0,IF(VLOOKUP(G3,A:C,3,FALSE)=”成行買い”,(E3-VLOOKUP(G3,A:E,5,FALSE))*100,(VLOOKUP(G3,A:E,5,FALSE)-E3)*100),IF(VLOOKUP(G3,A:C,3,FALSE)=”成行買い”,(E3-VLOOKUP(G3,A:E,5,FALSE))*10000,(VLOOKUP(G3,A:E,5,FALSE)-E3)*10000)),0)

長ったらしいですね・・・

インデントをつけると以下のような感じです。

=IF(
    C3="決済",
    IF(
        COUNTIF(D3,"*JPY")>0,
        IF(
            VLOOKUP(G3,A:C,3,FALSE)="成行買い",
            (E3-VLOOKUP(G3,A:E,5,FALSE))*100,
            (VLOOKUP(G3,A:E,5,FALSE)-E3)*100
        ),
        IF(
            VLOOKUP(G3,A:C,3,FALSE)="成行買い",
            (E3-VLOOKUP(G3,A:E,5,FALSE))*10000,
            (VLOOKUP(G3,A:E,5,FALSE)-E3)*10000
        )
    ),
    0
)

やっていることは、列Cが”決済”ならpipsを計算、それ以外は0。pipsの計算は、列Gにある関連チケットIDからエントリーの行を検索して、エントリー行の通貨ペア、取引種別、レートを引っ張ってきて決済の行のレートとの差を算出しています。

COMMENT

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