LoginSignup
1
0

More than 1 year has passed since last update.

Ledger CLIで家計簿をつけたい!実践3 外貨取引

Posted at

前編↓

今回は外貨取引についてです。

Ledgerにはcommodityという概念が存在する

まずLedger CLIにはcommodityという概念が存在します。コモディティというのは代替可能性があるもの、つまりは値段がついていて、数えた量で交換できるものです。一般には通貨や株式を除いた先物などを呼びますが、ここでは通貨や株式も含む広い言葉になっています。Ledger CLIではそれぞれのコモディティを数のprefix/suffixとして扱います。

2022/12/12 Commodity
    Foo         1 JPY ; JPYがコモディティ
    Foo           $ 1 ; $がコモディティ
    Foo         1 USD ; USDがコモディティ
    Foo         1 りんご ; りんごがコモディティ

このようにコモディティはただの固有文字列で「何を」どれだけ持ってるか区別できるようにするための記号です。これを外貨に使うようにできています。

早速外貨を売買してみる

ドル買い円売り

ではokane銀行に外貨預金があって、海外店舗でカード決済できる口座だとしましょう。海外通販や旅行に便利ですね。ここでドルを買います。

bank/okane/2022.ledger
2022/12/12 * USD購入
    ; 仲値136.35、レート136.5
    Assets:Banks:Okane              -10,000 JPY
    Assets:Banks:Okane                73.26 USD @ 136.35 JPY

このように記述します。@以外は以前まで書いていた記録に似ています。ただ、@がポイントでこれを見ると1 USDがいくらだったのか分かるわけです。ここで、銀行が提示しているレートは手数料込みなので、手数料を戻した実レートで記述します。そうすると、当然手数料分どこかに消えているのでエラーが出ます。

 % ledger -f root.ledger bal ^Assets ^Liabilities ^Equity --current -X CHF
> 2022/12/12 * USD購入
>     Assets:Banks:Okane                       -10,000 JPY
>     Assets:Banks:Okane                         73.26 USD @ 136.35 JPY
Unbalanced remainder is:
             -11 JPY

なので言われれるがままに11円手数料として書き足します。

bank/okane/2022.ledger
2022/12/12 * USD購入
    ; 仲値136.35、レート136.5
    Assets:Banks:Okane              -10,000 JPY
    Assets:Banks:Okane                73.26 USD @ 136.35 JPY
    Expenses:Commissions                 11 JPY
    ; Payee: Okane Bank
 % ledger -f root.ledger bal ^Assets ^Liabilities ^Equity --current
         364,902 JPY
           73.26 USD  Assets
          89,855 JPY
           73.26 USD    Banks
          89,855 JPY
           73.26 USD    Banks:Okane
          -5,000 JPY    Cash
         280,047 JPY    Wire:Salary
        -113,878 JPY  Equity:Opening Balances
            -470 JPY  Liabilities:Card:Yellow
--------------------
         250,554 JPY
           73.26 USD

手数料をトラックするかどうかは個人の自由です。私は神経質なのでトラックしてますが、大したことない量なら忘れてもいい気もします。

外貨建て決済

外貨での買い物は簡単に書けます。

bank/okane/2022.ledger
2022/12/13 * AmazonCom
    Assets:Banks:Okane                           -20 USD
    Expenses:Grocery

ドル売り円買い

さて、円が必要になったし円安だしドルを売る場合を考えます。逆の時同様に手数料も記録します。

bank/okane/2022.ledger
2022/12/15 * Needs JPY
    ; 仲値 150.15, レート 150.00
    Assets:Banks:Okane                        -53.26 USD @ 150.15 JPY
    Assets:Banks:Okane                          7989 JPY
    Expenses:Commissions                           8 JPY
    ; Payee: Okane Bank

さて、無事記録できました…さて、なにかおかしいような?はい、外貨取引時には本来為替差益、差損が出ているはずです。この記録にはそれが織り込まれていません。なので本来は購入時価格をこの記録に織り込んでやる必要があります。ただ、個人的には面倒なのでしていません(どうせ源泉徴収されるので真面目に記録する意味がない)。

次回は株式でちゃんと売却の損益を記録する方法を見ます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0