GnuCashで株価や外貨預金の時価を表示する

2020-09-18

その他

t f B! P L
GnuCashをインストール-p--qのflatpak版GnuCashで日本の株価や為替の時価を取得します。

Perlモジュールのインストール

LiosK/Finance--Quote--YahooJapan: Finance: :YahooJapan - A Perl module that enables GnuCash to get quotes of Japanese stocks and mutual funds from Yahoo! Finance JAPAN.

このPerlモジュールをインストールします。

1 Finance::Quoteのインストールディレクトリを探す。
2 lib/Finance/QuoteディレクトリにYahooJapan.pmを入れる。
3 環境変数FQ_LOAD_QUOTELETを-defaults YahooJapanに設定する。

という3ステップでインストールできるようですが、問題はステップ3です。

 /var/lib/flatpak/app/org.gnucash.GnuCash/current/active/files/lib/perl5/site_perl/5.28.0/Finance

 Finance::Quoteのインストールディレクトリは検索で探してこことわかりました。

cd  /var/lib/flatpak/app/org.gnucash.GnuCash/current/active/files/lib/perl5/site_perl/5.28.0/Finance/Quote
sudo wget https://raw.github.com/LiosK/Finance--Quote--YahooJapan/master/lib/Finance/Quote/YahooJapan.pm

これでステップ2までクリアです。

あとは環境変数FQ_LOAD_QUOTELETを設定するだけですが、よくわからないと思っていたら設定メモ: GnuCashで日本の株とかに代わりの方法が書いてありました。

kwrite /var/lib/flatpak/app/org.gnucash.GnuCash/current/active/files/lib/perl5/site_perl/5.28.0/Finance/Quote.pm

kwriteでQuote.pmを開きます。

180行目から始まるmoduleの変数の最後にYahooJapanを追加します。
    @modules = qw/AEX AIAHK AlphaVantage ASEGR ASX BMONesbittBurns
        BSERO Bourso Cdnfundlibrary Citywire CSE Currencies Deka
        DWS FTPortfolios Fidelity FidelityFixed FinanceCanada Fool
        FTfunds HU GoldMoney HEX IEXCloud IndiaMutual LeRevenu
        ManInvestments Morningstar MorningstarAU MorningstarCH
        MorningstarJP MStaruk NZX Platinum SEB SIXfunds SIXshares
        StockHouseCanada TSP TSX Tdefunds Tdwaterhouse Tiaacref
        TNetuk Troweprice Trustnet Union USFedBonds VWD ZA
        Cominvest Finanzpartner YahooJSON YahooYQL ZA_UnitTrusts YahooJapan/;
保存するときにログインパスワードを求められます。

これでインストール完了です。

GnuCashで株価を取得する

 GnuCashで日本の投資信託の基準価額を取得するPerlモジュールを書いた / LiosK-free Blog

ここに使い方の解説があります。

ツール ー> 証券エディター。

追加ボタンをクリック。

 

 

 「記号/略語」に証券コードを入力します。

 

「表示記号」には単位を入力しますが、新規作成時はなぜか「記号/略号」と同じ値で上書きされてしまうので、一旦作成後に書き換える必要がありました。


タイプは「東証」を表すTSEとしたいところですが、ないのでAMEXとでもしておきます。

「取引単位の小数部」は10にしました。

「オンライン相場表を取得」にチェックをつけて「未知」を選択。

「yahoo_japan」を選択してOKをクリック。


これで証券エディターを閉じます。

ツール ー> 価格データベース。

「相場表を取得」ボタンをクリック。


これでリアルタイムの価格が取得できました。

これらの設定はデータファイルに保存されるようです。


これで為替も取得できました。

 ALPHAVANTAGE_API_KEYに関するバグへの対応

 
 AlphaVantageからオンライン相場を取得するときに必要なALPHAVANTAGE_API_KEYの取得を求められるバグがまだ残っているようです。
 
yahoo_japanから取得しているのに  ALPHAVANTAGE_API_KEYが求められるときは次のようにしたら解決しました。
 
 編集 ー> 設定。

オンライン相場表。


Alpa VantageのAPIキーに適当な文字列を入力します。

これでエラーがでてこなくなりました。

購入した株を入力する

口座を開設する

資産:有価証券の下に購入した株ごとに科目が作成することにします。

 勘定科目タブで資産:有価証券を選択した状態で新規作成。


 「勘定科目タイプ」から「株式」を選択して、「証券/通貨」の選択ボタンをクリックして、証券エディターで登録した証券を選択します。 

 


 勘定科目タブの合計の単位は円ではなく株になっています。

購入した株を入力する

  120円で1000株を手数料1100円で現金で購入したとします。

 勘定科目タブで作成した株の科目をダブルクリックしてその株のタブを開きます。

まず日付の設定をします。

オンラインで取得した日付よりあとの日付にしてしまうとオンラインで取得した値を上書きしてしまうので注意が必要です。

値を上書きしてしまったときはツール ー> 価格データベースで上書きした値を削除します。

「株式数・持ち分」列に株数、「価格」に購入単価を入力して、「スプリット」ボタンをクリックします。

その株の勘定科目名の行に借方(合計Debit列)に株数と単価の積が入り、その下の行には貸方(合計Credit列)には同じ値が入っています。

これに手数料を追加します。

貸方(合計Credit列)の120,000を削除して、同じ行の借方(合計Debit列)に手数料の1100円を入力して、勘定科目列は経費:支払手数料を選択します。

勘定科目を選択してEnterキーを押すと次の行が追加されます。

勘定科目の「貸借不一致-JPY」を資産:現金に変更します。

これで入力完了です。

1行目の数値は株数になっています。

スプリット取引の最後の行の1は意味がわかりませんが、必要なもののようです。

スプリット取引を閉じるとこのような表示になります。

株の時価総額を表示する

勘定科目タブの「合計」列には株数が表示されているので、時価総額を表示するには「合計(JPY)」列を表示させます。

列を追加するには列名の行の右端にあるvアイコンをクリックして 「合計(JPY)」にチェックを入れます。

価格データベースで取得した単価と株数の積が合計(JPY)列に表示されていることがわかります。

 外貨預金を入力する 

1ドル140円で10000ドルを手数料10000円で購入したとします。

株数をドルと単位が変わるだけで入力方法は株の場合と全く同じです。

価格データベースで取得した単価とドルの積が合計(JPY)列に表示されていることがわかります。 

.gnucashファイルを他のマシンで見たとき

Gnucash3.11や4.1、4.2だと設定は保持される

KDE neonのflatpak版GnuCash4.1で作成した.gnucashファイルをBodhi Linux5.1のGnuCash3.11やflatpak版のGnuCash4.2で開くといずれも価格データベースが保持されていました。

Finance--Quote--YahooJapanがインストールされていないと新しい価格は取得できませんがい、最後に取得した価格で表示されました。

Android版2.4.0では価格データベースは破棄されて価格も破棄される

xml版のgnucashファイルをAndroid版のGnuCash2.4.0で開いたところ、株式タイプの残高はすべて0円になっていました。

Android版で開いたものをエクスポートしてPC版にもってきたところ「証券/通貨」のところがNo currencyになっていて再設定できません。

普段の入力はAndroid版で行って、たまにPCに移して使おうかと思っていましたが、この機能はAndroid版との併用はできませんね。

Android版GnuCashのバージョンが低いのが原因と思われます。

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ