gnucashで日本の株価を取得できるようにする。

先日からGnuCashという家計簿ソフトを使っているが、日本へのローカライゼーションがあんまり進んでないようで。(Windows版の話)
日本語化されてない部分があるとか、時折表示が崩れるとか、レポートで表示されない部分があるとかは仕方ないにしても。保有株式の値段が更新されないのは若干残念な感じがしたので手を入れてみた。


参考にしたのはこちら。


やっていることはなんとなく分かったので、ちょっと改修してみた。
pastebin - Finance::Quote::Yahoo::JPN - post number 1469901 ※3ヶ月で消えるんで注意。


install-fq-mods.batについては、正直分からん。perl moduleは自分で入れた。
上記のリンク先をDLして、ActivePerlであればc:\perl\site\lib\Finance\Quote\YahooにJPN.pmと名前を付けて置く。
あと、Quote.pmについてもJPN.pmを読み込むように若干コードを変更する。

*** Quote.pm.orig Mon Apr 13 23:15:29 2009
--- Quote.pm Mon Jun 22 23:45:06 2009
***************
*** 175,181 ****
StockHouseCanada TSP TSX Tdefunds Tdwaterhouse Tiaacref Troweprice
Trustnet Union USFedBonds VWD ZA Cominvest Finanzpartner
Yahoo::Asia Yahoo::Australia Yahoo::Brasil Yahoo::Europe Yahoo::NZ
! Yahoo::USA/; }

$this->_load_modules(@modules,@reqmodules);

--- 175,181 ----
StockHouseCanada TSP TSX Tdefunds Tdwaterhouse Tiaacref Troweprice
Trustnet Union USFedBonds VWD ZA Cominvest Finanzpartner
Yahoo::Asia Yahoo::Australia Yahoo::Brasil Yahoo::Europe Yahoo::NZ
! Yahoo::USA Yahoo::JPN/; }

$this->_load_modules(@modules,@reqmodules);

で、C:\Program Files\gnucash\bin\gnc-fq-checkとgnc-fq-dumpを試してみる。

C:\〜> perl gnc-fq-check
("1.16" "vwd" "yahoo_nz" "australia" "amfiindia" "usfedbonds" "aex_options" "canada" "yahoo" "adig" "aiahk" "yahoo_australia" "unionfunds" "lerevenu" "asia" "tsx" "indiamutual" "known_currencies" "fidelity_direct" "goldmoney" "tdwaterhouse" "trustnet" "ftportfolios_direct" "cominvest" "ftportfolios" "morningstar" "tdefunds" "za" "aex_futures" "fundlibrary" "stockhousecanada_fund" "yahoo_europe" "platinum" "maninv" "tsp" "financecanada" "usa" "france" "troweprice" "nasdaq" "bmonesbittburns" "yahoo_asia" "tiaacref" "troweprice_direct" "seb_funds" "greece""fidelity" "yahoo_brasil" "fetch_live_currencies" "dwsfunds" "finland" "hex" "asegr" "brasil" "deka" "canadamutual" "nyse" "asx" "finanzpartner" "fool" "dutch" "uk_unit_trusts" "jpn" "nzx" "aex" "nz" "vanguard" "europe" "bourso")

C:\〜> perl gnc-fq-dump 4689
Finance::Quote fields Gnucash uses:
symbol: ・茹ユ。シ(ウ・ <=== required
date: 6/22/2009 <=== required
currency: JPY <=== required
last: 30500 <=\
nav: <=== one of these
price: 30500 <=/
timezone: <=== optional

4689.tとか、市場を示すサフィックスは付けられない。


エラーとか無いようだったらgnucashを再起動する。
証券エディタの「証券を編集」で「オンライン相場表を取得する」がenableになっているようだったら、「未知」に入っているjpnを選択するよろし。「記号/略語」か「ISIN、CUSIPまたはその他のコード」に銘柄コードを入力しておく。
価格エディタで「相場表を取得」というボタンを押すと、最新の株価情報が取得されてハッピーになる筈。
…わかっかなー。わっかんねーだろーなー。


誰か使い方のまとめwikiとか作ってくれないかなー。