GnuCashへの株式取引の自動取り込みツールの公開
GnuCashへの株式売買履歴の自動取り込みツールを開発したのでお知らせする。
GitHubの「senooken/gnucash-import-stock」のリポジトリーで公開している。
「初めての信用取引は損が出たもののやってよかったという話」で報告したとおり,7月21日から株式の信用取引を始めた。それに伴い,一日の取引回数が数十回とか100回を超えるようになってきた。
帳簿の一貫性を維持するため,取引は全てGnuCashで手作業で記録していた。ただ,取引の数が増えて1日の取引の記帳を終えるのに2時間くらいかかっていた。
これを毎日繰り返すのはしんどいと思い,自動化ツールを開発した。
GnuCashにはインポートとエクスポートの機能がある。今回は普段取引に使っている岡三オンライン証券の取引明細をGnuCashへインポート可能な形式に変換するツールを開発した。
8月第2週に取り組み,制作にだいたい数日くらいはかかったように思う。何年かぶりにPythonでテキストデータ処理を行った。
ただ,このツールには欠点がある。一番大きいのは,GnuCashのインポートだと手作業が発生してしまうところだ。
インポート時のダイアログで初回だけ勘定科目を選ぶ必要があり,その後毎回取引ごとに取り込むか更新するかの画面が表示される。極めつけは,購入時の手数料など有価証券の原価に含める必要がある仕訳に数量が必須となっており,保有数量の整合性を保つために手動で数を修正する必要があるところだ。
それでも手作業で1個ずつ記帳することに比べれば,入力後チェックも不要になるので大幅に効率化された。だいたい2時間かかっていたのが10-20分程度で終わるようになった。
これを解決するには,GnuCashのPython Bidingを使ってAPI経由で直接取り込む必要がある。GnuCashのPython Bindingは情報も少なく,時間がかかりそうだったのでひとまず断念し,将来対応する可能性のためツールをPythonで作った。
岡三オンライン証券で信用取引の信用買しか対応していないというもはや自分専用ツールなのだが,せっかく作ったのだから,こうした簡単なツールでも自分の開発成果として一般公開できるようにしたいと思い,ドキュメントを書いて公開した。
ひとまず公開できて満足した。