GnuCashの株価自動取得が使えなくなった問題の対応
私はGnuCashというソフトを使って家計簿をつけています。このソフトには、Finance::QuoteというPerlスクリプトを使って株価を自動で取得する機能があります。しかし、11月の初め頃からアメリカ株の株価と為替相場が自動取得できなくなりました。調べてみると、情報の取得に使っていたアメリカのYahoo!がcsvでの株価提供をやめたことが原因です。
代替の情報源
アメリカのYahoo!に代わる情報源として、メーリングリストではYahooJSONとAlphaVantageというサイトが上がっていましたが、Finance::Quoteのデフォルトの為替相場取得先がAlphaVantageになったので、こちらを使うようにしようと思います。(為替相場が不要であれば、登録が不要なYahooJSONの方が良いでしょう。)
Strawberry Perl の更新
この手順が必要かどうかは分かりません*1が、私のパソコンにはバージョン5.18.2002の32bit版が入っていたので、64bit版の最新バージョンに更新してみました。
なお、32bit版と同じフォルダに64bit版をインストールすると、32bit版をアンインストールせずに同名のファイルを上書きしておかしなことになりました。64bit版と32bit版を両方使いたいとかでなければ、32bit版をアンインストールしてから64bit版をインストールしたほうが良いでしょう。
また、32bit版/64bit版のままで、古いバージョンから新しいバージョンにアップデートしたい時も、先に古いバージョンをアンインストールするようにメッセージが出ます。
結局、どのようなパターンでもアップデートするには古いバージョンをアンインストールする必要がありますが、Strawberry Perlをアンインストールすると、C:\Strawberryの中が空っぽになります。別にインストールしていたライブラリもすべて消えてしまいますので、新しいStrawberry Perlをインストールした後に、インストールし直す必要があります。(Strawberry PerlをGnuCash以外で使っていなければ、特に気にする必要はありません。)
Finance::Quoteの更新
現時点でのFinance::Quoteの最新版は1.47です。コマンドプロンプトから以下のコマンドを実行すると、自動でアップデートしてくれます。
perl ”C:\Program Files (x86)\gnucash\bin\gnc-fq-update"
(\は円マークです)
「C:\Program Files (x86)\gnucash」の部分はgnucashのインストールフォルダです。インストール時に変更していなければこのままですが、変更した場合は適宜修正してください。
AlphaVantageのAPIキーを取得
AlphaVantageのページからAPIキーを取得します。「GET FREE API KEY TODAY」をクリックして、必要事項を記入して「GET FREE API KEY」をクリックすると、APIキーが下に表示されます。メールでは送られてこないので、ブラウザを閉じる前に忘れずにコピーして置いてください。
環境変数の設定
取得したAPIキーを環境変数「ALPHAVANTAGE_API_KEY」に設定します。Windows10の環境変数の設定は、設定ウインドウ(スタートメニューの歯車マーク)を出して、設定の検索で「環境変数」を検索すると出てきます。
GnuCashの設定
最後に、GnuCashの証券エディタで、相場表情報源のタイプを未知にして、alphavantageを選択すれば自動で株価を取得してくれるようになります。
*1:YahooJSONを使う場合、私のパソコンに入っていたバージョンではエラーが出ました。