【2020年7月5日更新】
成立履歴のCSVファイルの仕様が変わり、売買損益とスワップ損益が出力されるようになりました。
預託証拠金に反映された日時が分からないなどの問題はあるのですが、現在は成立履歴のCSVファイルだけで集計ができます。
以下の記事は、それ以前の仕様のものです。
現在の仕様では、通貨ペアごとの売買損益とスワップ損益を簡単に集計する方法はないようです。
成立履歴のCSVファイルの仕様が変わり、売買損益とスワップ損益が出力されるようになりました。
預託証拠金に反映された日時が分からないなどの問題はあるのですが、現在は成立履歴のCSVファイルだけで集計ができます。
以下の記事は、それ以前の仕様のものです。
現在の仕様では、通貨ペアごとの売買損益とスワップ損益を簡単に集計する方法はないようです。
- 入出金履歴のCSVファイルには、通貨ペアの情報が出力されない
- 成立履歴のCSVファイルには、通貨ペアの情報が出力される
- どちらのCSVファイルにも、決済注文番号の情報が出力される
- 決済注文番号でひもづければ、通貨ペアごとの売買損益とスワップ損益を集計できる
具体的な作業手順は、以下のとおりです(例として、11月1日~11月30日の損益を集計しました)。
- トレード画面で[MENU]→[CSVダウンロード]をクリックし、[入出金履歴]をクリックする。
- 「入出金期間」に集計を行う期間(11月1日~11月30日)を入力し、「売買損益」と「スワップ損益」の2つのみに印を付けて、[CSVダウンロード]をクリックする。
「入出金履歴_XXXXXXXXXXXXXX.csv」がダウンロードされます。
【2020年5月31日追記】
土曜日の取引は、翌週の月曜日に反映されます。
月末が週をまたぐ場合は、集計を行う期間に翌週の月曜日を加えてください。 - [成立履歴]をクリックする。
- 「通貨ペア」で[全通貨ペア]を選び、「約定期間」に集計を行う期間+その期間の前の1週間(10月25日~11月30日)を入力して、[CSVダウンロード]をクリックする。
「成立履歴_XXXXXXXXXXXXXX.csv」がダウンロードされます。
その期間の前の1週間を足すのは、決済後、受渡前損益が預託証拠金に反映されるまでに2営業日必要なためです(土日を挟む月でも1週間までは必要ないのですが、プラスする日数を間違えて再ダウンロードするのは面倒なので、いつでも1週間にしています)。 - ダウンロードした「入出金履歴_XXXXXXXXXXXXXX.csv」をExcelやOpenOfficeなどの表計算ソフトで開く。
下記の例では、OpenOfficeを使用しています。フィールドは「,(コンマ)」で区切ります。
【2020年5月31日追記】
土曜日の取引は、翌週の月曜日に反映されるため、集計対象月以外の取引が含まれている場合があります。
E列の「証拠金反映日時」を確認し、集計対象月以外の行は削除してください。 - OpenOfficeを使用している場合は、K2セルに
=SUBSTITUTE(SUBSTITUTE(F2;"決済注文番号(";"");")";"")
を入力する。
Excelを使用している場合は、K2セルに
=SUBSTITUTE(SUBSTITUTE(F2,"決済注文番号(",""),")","")
を入力する。
上記は、F列に入っている余計な「決済注文番号()」を削除するための関数です。 - オートフィルで、K2セルに入力した関数を最後の行までコピーする。
- 別名で保存する。
ここでは、仮にファイル名を「入出金履歴_XXXXXXXXXXXXXX_tmp.csv」にしました。
OpenOfficeの場合、入出金履歴と成立履歴をマージしたとき、そのままの状態では決済注文番号によるソートができないため、CSVで書き出しています。 - 「入出金履歴_XXXXXXXXXXXXXX.csv」を閉じる。
- いま保存した「入出金履歴_XXXXXXXXXXXXXX_tmp.csv」を表計算ソフトで開く。
- ダウンロードした「成立履歴_XXXXXXXXXXXXXX.csv」を表計算ソフトで開く。
- C列の「区分」でソートする。
- 「区分」が「新規」の行を削除する。
- 「入出金履歴_XXXXXXXXXXXXXX_tmp.csv」の2行目から最後の行までをコピーし、「成立履歴_XXXXXXXXXXXXXX.csv」の最後の行にペーストする。
- K列の「注文番号」でソートする。
決済注文番号で、入出金履歴と成立履歴がひもづきます。 成立履歴の行の通貨ペアを、オートフィルで入出金履歴にコピーする。
決済ごとにオートフィルで通貨ペアを入出金履歴にコピーする必要があるので、決済数が多いと手間がかかります。
この作業も関数で処理できるような気がしますので、時間があるときに考えたいと思っています。
【2020年5月2日追記】
決済ごとにオートフィルで通貨ペアを入出金履歴にコピーする作業を関数化しました。
①A列をクリックして、「列の挿入」を選ぶ。
空白のA列が挿入されます。
②OpenOfficeを使用している場合は、A2セルに
=IF(OR(B2="USD/JPY";B2="EUR/JPY";B2="AUD/JPY";B2="AUD/USD";B2="NZD/JPY";B2="NZD/USD";B2="CAD/JPY";B2="ZAR/JPY";B2="MXN/JPY");B2;A1)
を入力する。
③オートフィルで、A2セルに入力した関数を最後の行までコピーする。- A列の「通貨ペア」でソートする。
- 「Sheet1」シートをコピーして、シート名を「AUD_JPY」にする。
- 「AUD_JPY」シートの14行(AUD/USDの行)以下を削除する。
これでAUD/JPYの集計を行う準備が整いました。 - 「Sheet1」シートの2~17行(AUD/JPYの行)を削除する。
- 「Sheet1」シートをコピーして、シート名を「CAD_JPY」にする。
- 「CAD_JPY」シートの18行(EUR/JPYの行)以下を削除する。
これでCAD/JPYの集計を行う準備が整いました。 - 手順20~22を繰り返して、全通貨ペアのシートを作成する。
- B列の「売買」でソートする。
- 「売買損益」の行(11~13行)の、C列の「区分」のセルを選択して、オートSUMを実行する。
C14セルに通貨ペアの売買損益が表示されます。 - 「スワップ損益」の行(2~7行)の、C列の「区分」のセルを選択して、オートSUMを実行する。
C15セルに通貨ペアのスワップ損益が表示されます。 - 手順24~26を繰り返して、全通貨ペアの売買損益とスワップ損益を集計する。
入出金履歴のCVSファイルに、通貨ペアの情報が出力されないのはなぜなのか。決済注文番号が、入出金履歴のCVSファイルでは「決済注文番号(XXXXXXXXXXXXXXX)」、成立履歴のCVSファイルでは「XXXXXXXXXXXXXXX」となっているのはなぜなのか。どうしてこういう不思議な仕様になっているのか理由が分かりません。
CVSファイルをマクロで処理している人もいるでしょうから、簡単には仕様を変えられないと思いますが……。不思議な仕様なので、近い将来、改善されるのではないかと想像しています。