Firstradeの確定申告(2021年)

一昨年の2020年に開設したFirstradeの確定申告を今年もやらないといけません。昨年は、Statementの画面から出力したPDFを使って申告をしました。

Firstradeの確定申告(2020年)
Firstradeも確定申告用の損益計算をしていきます。FolioとInteractiveBrokersの計算式をそのまま使っている部分が多いです。(記載事項について、国税庁や所轄税務署に確認はしたわけではないのでご自分でご確認ください。)

コピペがかなり面倒ですんなりいってくれないので、今年は別の出力方法で試してみます。1年たつと、前回やった作業をほとんど覚えていない・・・。

データ出力

前回は「Accounts」→「E-Documents」から「Statements」でしたが、今年は「E-Documents」の「Confirmations」か、「Accounts」→「History」を見てみました。「Confirmation」は残高につく利息や配当が表示されないようなので、「History」を使ってみることにしました。2020年の確定申告よりもコピペが断然楽です。

出力データ

DateTransactionQuantityDescriptionSymbolAcctTypePriceAmount
01/05/2021Bought20AMERICAN BATTERY METALS CORPORATION COMMON STOCK INTERNET ORDER UNSOLICITEDABMLMargin0.935-18.7
S/D: 01/07/2021
01/05/2021Bought1PUT SPY 01/22/21 360 STANDARD & POORS DEPOSITORY INTERNET ORDER UNSOLICITED OPEN CONTRACTSPY 01/22/2021 Put 360.00Margin3.7-370.04
S/D: 01/06/2021

こんな感じで出力されました。S/Dは受け渡し日?(Settlement Date?)かなと思います。本来、受渡日での確定申告になるはずですが、特定口座でなければ約定日でも大丈夫そうです。

確定申告の際に、株式等の「買付の約定日」を取得日に、「売付の約定日」を譲渡日にできますか? | みずほ証券 よくあるご質問(FAQ)
確定申告における株式等の取得日および譲渡日は、原則として「受渡日」によることとされています。ただし、納税者の選択により、その株式等の取得日および譲渡日を、確定申告において「約定日」とすることもでき

現実的には為替レートは約定日のものを考えているのですが、どちらにしても確定申告の為替レートはTTS/TTBなので実際と違いますし、どちらでも良いかもしれません。でも、Excelでこの表からS/Dを抜き出して一つのデータにするのは、来年見たときに謎マクロになっていそうなので・・・、約定日でやっていくことにしてS/Dの行は削除していきます。

オプションと株式・その他を分解

DateTransactionQuantityDescriptionSymbolAcctTypePriceAmount
12/11/2020Sold-1ISHARES RUSSELL 1000 GROWTH ETF INTERNET ORDER UNSOLICITED PRODUCT DESCRIPTION UNDER SEPARATE COVER SHORT.IWFShort231.89231.88
12/18/2020Bought3WESTERN DIGITAL CORP INTERNET ORDER UNSOLICITEDWDCMargin53.7-161.1
DateTransactionQuantityDescriptionSymbolAcctTypePriceAmount
12/28/2020Sold-1CALL SLV 01/08/21 26 ISHARES SILVER SHARES INTERNET ORDER UNSOLICITED OPEN CONTRACTSLV 01/08/2021 Call 26.00Margin0.329.95
12/31/2020Bought1CALL SLV 01/08/21 26 ISHARES SILVER SHARES INTERNET ORDER UNSOLICITED CLOSING CONTRACTSLV 01/08/2021 Call 26.00Margin0.14-14.04

オプションは取引シンボルに日付が入っているので、条件で並べ替えして切り分けました。後で気づいたのですが、確定申告はポジションを建てたときの価格が必要なので、今回のように計算方法をいじった時には、年をまたいで保有しているポジションは立てた時までさかのぼらなくてはいけないので面倒です。もしくは、平均取得価格を計算したものを別で作成して書き込みするかですが、面倒ですね。

株式分割などがあった時には完全に訳が分からなくなるのが間違いないです。毎日ジックリ見ていないとETFなどがいつの間にか分割していたこともあるので、かなり厳しい。

為替レート

為替相場は、UFJ銀行の公開している過去レートを利用します。下の方の年を選ぶところで該当年を選ぶとEXCELファイルでダウンロードできます。

http://www.murc-kawasesouba.jp/fx/past_3month.php

日本の休日の取引などは、前営業日のものをコピーします。

外貨建取引に係る会計処理
祝日休日等でレートが無かった場合、必ず期末日の前日のレートを用います(法人税法基本通達13の2-1-2 (注3(1))。期末日の前日もレートが無かった場合、期末日の前日よりも過去にさかのぼった日のレートを用います。

Firstradeは米ドルのみで取引されているので楽です。

2020年米ドル(USD)
DATETTSTTBTTM
1月1日
1月2日
1月3日
1月4日
1月5日
1月6日109.11107.11108.11
1月7日109.44107.44108.44
1月8日108.83106.83107.83
1月9日110.24108.24109.24

いったん、横に=IF(ISBLANK(C3), F2, C3))のようなセルを作って、空欄をなくしておきます。その後関数を除去するかそのままにして計算を続けていきます。Firstradeは為替が一種類だけなのでこれでいいですが、Interactive Brokerの場合は別のシートを作って最後に関数除去が良いと思います。(ついでに、JPY相場=常に1を作っておくと便利ですが確定申告にはいらないかも?)

使用するレートは、購入時TTS、売却時TTBで小数点以下は切り捨てです。

平均取得単価の計算

買い増し、売り増しをしている間は気にしなくても大丈夫ですが、いったんポジションを一部手仕舞いすると、いったん平均取得単価を計算してその後は(実際に支払った額ではなく)その計算値を使用して計算することになります。

平均取得単価を求める場合は除算後、1円未満を切り捨てします。

No.1466 同一銘柄の株式等を2回以上にわたって購入している場合の取得費|国税庁

なので、保有していたポジションが取引で増えたのか減ったのかを見ながら計算しなくてはいけません。

こんな感じで判定して平均取得価格を計算するかどうか確認していきます。(実際の計算には使わないかも)

=IF(ABS(L15)-ABS(K15)=0,"不明", IF(ABS(L15)-ABS(K15)>0,"建て増し","手仕舞い"))

ポジションが増えている限りは、取得価格をひたすら足してポジション数で割れば平均価格が出せるので、ポジションが減った場合に、「前回までの取得価格合計をポジション数で割って1円未満を切り上げたもの」をその後の平均取得価格として利用することになります。

取得単価(円)(小数点切上げ)=「取得費」÷「数量」

取得単価の計算式

取得単価(円)の丸め

為替レート

外貨
決済

1.約定金額(円貨)=約定金額(外貨)×為替レート

小数点
切捨て

国内約定日の当社適用TTSレート

2.取得費(円)=約定金額(円貨)+国内手数料(円)+消費税(円)

3.取得単価(円)=取得費(円)÷数量

小数点
切上げ

円貨
決済

1.約定金額(円貨)=約定金額(外貨)×為替レート

小数点
切捨て

国内約定日の適用レート

2.取得費(円)=約定金額(円貨)+国内手数料(円)+消費税(円)

3.取得単価(円)=取得費(円)÷数量

小数点
切上げ

SBI証券|株・FX・投資信託・確定拠出年金・NISA
投資するならSBI証券。株、FX、投資信託、米国株式、債券、金、CFD、先物・オプション、ロボアド、確定拠出年金(iDeCo)、NISAなどインターネットで簡単にお取引できます。使いやすいチャートやアプリも充実。初心者にも安心の証券会社です...

各取引ごとには1円未満切り捨てをするようなので、取引ごとに計算した数値を買い増しで足していき、手じまい時には「平均取得価格」(小数点切上げ)を出してからポジション数をかけて、損益計算し、残ったポジションは「平均取得価格」×残ポジション数で積んでいくようにします。

取引の計算手順2

日付を関数で文字列から日付値に変えてあげる項目を作り、

DateDateTransactionQuantityDescriptionSymbolAcctTypePriceAmount前残量今回残量変化為替今回価格今回単価前回取得価格取得価格合計平均取得価格
012/29/20202020/12/29Bought20AMERICAN BATTERY METALS CORPORATION COMMON STOCK INTERNET ORDER UNSOLICITEDABMLMargin1.41-28.2020建て増し104.82-2955-1470-2955-148FALSE
101/05/20212021/1/5Bought20AMERICAN BATTERY METALS CORPORATION COMMON STOCK INTERNET ORDER UNSOLICITEDABMLMargin0.935-18.72040建て増し104.15-1947-97-2955-4902-123FALSE
301/05/20212021/1/5Bought10AMERICAN BATTERY METALS CORPORATION COMMON STOCK INTERNET ORDER UNSOLICITEDABMLMargin0.83-8.34050建て増し104.15-864-86-1947-5766-116FALSE
4901/28/20212021/1/28Sold-50AMERICAN BATTERY METALS CORPORATION COMMON STOCK INTERNET ORDER UNSOLICITEDABMLMargin3.09154.49500手仕舞い103.2715954319-8640-11610150
15403/15/20212021/3/15Bought5AMEREN CORP INTERNET ORDER UNSOLICITEDAEEMargin78.6893-393.4505建て増し110.06-43303-86600-43303-8661FALSE
20605/26/20212021/5/26Sold-5AMEREN CORP INTERNET ORDER UNSOLICITEDAEEMargin83.7007418.4950手仕舞い107.75450929018-433030-86611785

こんな感じで出来上がりました。オプションも取引額を基にして作成しているため、問題なく計算できそうです。

今回価格、として今回の取引額を記載します。=ROUNDDOWN(N15*J15,0)

今回の取引単価も毎回計算しておきます。=ROUNDDOWN(O15/ABS(E15),0)

前回取得価格は必要ないですが、計算されていると別銘柄かどうかが見やすいので計算しておきます。=IF(K15=0, 0,O14)

取得価格合計として、今回の取引で手仕舞いだった場合には前回計算した取引単価(今回のも同じになるので同じでもいいかも)に残る価格をかけておきます。そうでない場合には今回と前回の取引価格合計を合算します。=IF(K15=0,O15,IF(ABS(L15)-ABS(K15)>0,O15+R14,S14*L15))

平均取得価格は、今回の取引価格合計を残ったポジション数で割りますが、前回よりもポジションが減少した場合(手仕舞いしている際)には前回の計算のまま維持します。=IF(ABS(L15)-ABS(K15)>0, ROUNDUP(R15/ABS(L15),0), S14)

最後の損益計算は、絶対値だけを用いると配当や信用取引利息がおかしなことになりそうなので、前に計算した取引種別を参照します。=IF(M15=”手仕舞い”, (P15+S15)*ABS(E15))

コメント

タイトルとURLをコピーしました