2009年2月9日月曜日

Gnucashの導入 その3 ポートフォリオの管理

MS Moneyで最も重要な機能にポートフォリオの管理があります。
その中心はMSNマネーから株や投資信託の価格の情報を読み取って、自動更新をするという機能です。

GnuCashにも相場を参照する機能がついていますが、今のところ初期設定では日本の株や投資信託の情報を読み取ることはできません。

GnuCashに付属している相場を参照する機能は、Finance::Quote(F::Q)というPerlスクリプトを使って行います。
F::Qには相場を参照するためのモジュールがあり、それを使ってそれぞれの価格を更新します。
例えば、米国株であればYahoo USAモジュール(USA.pm)、オーストラリア株であればASXモジュール(ASX.pm)という感じです。
F::Qを動作させるには、Active Perlをダウンロードし、GnuCashフォルダのBinファイル内のinstall-fq-modsというバッチファイルを動かします。これでモジュールは動くようになります。

しかし上述の通り、これでは日本の相場を参照することはできません。
日本の相場を参照するモジュール(JPN.pm)は、F::Q finance-quote-develに2001年に投稿されている方がいらっしゃいましたが、現在のYahooファイナンスと頁構造が違うのか、うまく働きませんでした。
しばらくF::QのヘルプやHacker's guideを読んだりしましたが、Perlの素養がないため結局理解できませんでした。

ここでGnuCashをあきらめようかと思いましたが、もう一度他のモジュールのソースを見直してみました。
Fidelityのモジュール(Fidelity.pm)を見てみると、FidelityのサイトにあるCSVファイルを参照してF::Qに情報を取り込んでいました。
これを利用すれば日本の相場もF::Qで取り込めると思い、以下のことを試してみました。

  • まず、Yahooファイナンスのポートフォリオに銘柄を登録します。
  • ExcelのWebクエリを使い、登録した銘柄のデータをExcelに落とせるようにします。
  • FidelityのCSVファイルを別のシートに貼り付けます(Fidelity.pmで使用するのは、銘柄コード(Symbol)と価格(NAV)です)。
  • Webクエリで落としたシンボルと価格をFidelityのシートに貼り付けます。
  • FidelityシートをCSVとして保存。
  • これでF::Qで使うCSVの準備は完了。

次にGnuCash側の準備。
  • 銘柄の登録を証券エディタで編集します(種類はFUNDでOK)。
  • 使用するモジュールはFidelityにする。

F::Qを動作させる準備。
  • 準備したCSVファイルをどこか利用できるサイトにアップ。
  • Fidelity.pmの$FIDELITY_URL = ("http://activequote.fidelity.com/nav/fulllist.csv");をアップしたサイトのアドレスに変更しておく。

価格エディタで相場を更新する。
これで作成した銘柄の価格がGnuCashに読み込めているはず。

この方法ではCSVファイルをアップロードしたりするのが面倒で、どこぞのサイトにCSVファイルを晒すのは気が引けますので、自前のHTTPDを動かすのもOK。
HTTPDは、XPならAN HTTPサーバー、Viasta Permiumであれば自前でHTTPDが動かせますので、CSVをルートに置き、$FIDELITY_URL = ("http://localhost/fulllist.csv");と変更すればOK。
必要なときだけデーモンを動かす。

これでセミオートマティックですが、GnuCashでも日本の相場更新が可能となりました。

0 件のコメント:

TeX, LyX, biblatex, 日本語文献

 備忘録として TeXで文書を書くことが時々ある。引用文献がある文書だと、Wordは昔から使いにくいことがある(MendeleyやEndnoteを使うという手もありますが)。 TeXでの文献管理はbibtexを使用するが、慣れれば便利なもの。  長文で、本文も参考文献も織り交ぜな...