minisoba blog

プログラミングと株式投資

J-Quants API凄すぎ!

jpx-jquants.com

10数年前に、アルゴリズムトレーディングをリテールに広めるべく単身起業しましたが、1年後には資金が底を付き廃業の憂き目に合いました。その後、友人とFinTechビジネスを立ち上げるもこちらも3年で断念。4年間の紆余曲折のすえ、結局サラリーマンプログラマに舞い戻り現在に至っております。

アルゴリズムトレーディングなどフロントオフィス系のビジネスを立ち上げる上で一番ネックになるのが高品質なデータの取得です。機関投資家個人投資家に関わらずデータの正確性、整合性なくして金融ソフトの開発はできません。最も一般的なデータソースはブルームバーグやロイターですが、ブルームバーグターミナルを契約するとなると月々1500USドルのコストがかかります。ロイターは少し安いですがそれでも700USドルは掛かると思います。とてもじゃないけど、ファンディングなしのスタートアップ企業が払える金額ではありませんでした。

それから10年以上の月日が経って、最近息子が友達と金融アプリを作るというので色々調べていたらなんと!!!!日本証券取引所(以降、東証)発信のJ-Quants APIとなるものを発見しました。早速、調べて見たらこれは凄い!最近、東証は投資家向けの情報共有、発信にとても熱心です。多分、外国人投資家を意識してのことでしょう… 10年前に比べ随分と変わったなぁって思います。

… という経緯で、今週末はJ-Quants APIで遊んでおりました。

こういったデータ取得関連はPythonを使うのが王道だと思いますが、小生はLispで実装することにしました。Lispって何?1950年代に開発されたプログラミング言語なのでかなりマイナーな言語ですがEmacsとかAutoLispとかそれなりに需要はあるのかなぁ?自分が理想とするアルゴリズムトレーディングシステムを開発をする上で、Lispを選択する理由については機会があれば、後日ブログに上げられたらと思います。この気持ちは10年以上経った今でも変わっていません。

現在(昨日から(笑))J-Quants APIを使ったシステムを構想・開発中です。いつになるかわかりませんが、将来的にはオープンソースで公開したいと考えています。

うーむ、長々と書いてきましたがポイントは何?

J-Quants APIは最高!っていうことで…

Sublime Text: タブ、サイドバー フォントの変更

通常のフォントサイズの変更は、編集画面のみに適用されるので、タブ、サイドバーの場合、個別に対応する必要があるみたいです。

メニューから、[Preferences]->[Customize Theme]を選択:

// Documentation at https://www.sublimetext.com/docs/themes.html
{
    "variables":
    {
    },
    "rules":
    [
        {
            "class": "tab_label",
            "font.bold": true,
            "font.size": 16
        },
        {
            "class": "sidebar_label",
            "font.bold": false,
            "font.size":16
        }
    ]
}

住宅ローンにまつわるリスクを考える

海外移住をしてかれこれ25年以上が経ち、50代半ばを目前にして「終の住処」って言ったら大袈裟ですが、そろそろ先々のことを考えています。 お互い老後は日本という点で、妻とも考えは一致しています。

海外では(少なくとも、私が働いている業界では)定年というものはないのですが(人事確認済み)、60歳までには日本への帰国を考えています。 これまでずっと賃貸暮らしだったので、この帰国のタイミングでどこかに住宅を購入する予定です。

こういう経緯から、住宅ローンにまつわるリスクついて考えてみました。

金利上昇リスク

言わずと知れた問題ですね。バブル経済崩壊以来、長らく超低金利が続いた日本ですが、ようやく金利のある正常な状態に戻るって感じです。 もちろん、ローンを組む側からしたら低金利でお金が借りられる(金利負担が少ない)ので、より高額な物件を購入することができます。 しかし、お金を預ける側からすると100万円預けて、利息100円ってどういうことってなりますよね。とても異常でアンバランスな状態だと思います。

頭金はなるべく抑えて住宅ローンを組んで、残金を高利回り金融資産で運用したらいいって言うFPもたくさんいますが、それって本当に正しいのでしょうか?

運用リスク

確かに、低金利でお金を借りて、それを株式とかの高利回り金融資産で運用できたらいいですよね。 私も、NTT(9432)や東京三菱UFJ(8306)といった新NISA人気銘柄を保有していて 配当利回りがNTTで3.51%、東京三菱UFJで3.15%(2024年10月15日現在)です。 しかしながら、NTTの平均取得株価が155円ですので、すでに5%以上のマイナスです。 NTTは、直近の高値からすでに25%弱下落しているので高値掴みしたら、そうそうに換金することができませんよね。

どんなに景気が悪くなろうが、株価が下がろうがローン残高は変わりません。株価が右肩上がりだったらいいのですが、株式相場の正確な予想は誰にもできません。 住宅ローンという大きなリスクを背負いながら、株式投資という別のリスクも同時に背負うというのはとても危険な考え方だと思います。

しかしながら、「機会喪失リスク」という言葉通り、投資をしないリスクというのも存在するので、ある程度の余剰資金で比較的安定した銘柄を選ぶのも 一つの手だと思います。あくまで、余剰資金で長期運用がポイントです。

イベントリスク

イベントリスクといったら、金融危機や経済危機といったものを想像しがちですが、子供の大学(国立 or 私立)進学はたまた海外留学といった当初想定していなかった イベントが常に発生します。子供の将来を潰したくないし、できる限りのことはしてあげたいと思うのが親心。また、現在働いている会社を突然クビに なるってことだってありますよね。海外では(特に外資系金融機関)、景気が悪くなるとすぐリストラをします。 どんなときでも、住宅ローンや子供の教育費は重くのしかかってくるのです。

為替リスク

最近、S&P連動型投資信託とかオルカンなんて流行っているようですが、個人的にはあまりオススメしません。もちろん、参入時期によっては全然ありだと思いますが、 株式投資というリスク資産に対して、為替リスクもつける、それプラス住宅ローンってリスクのオンパレードって感じです。

以前、イギリス株に投資していましたが収益を円ベースで考えていたので、株価プラス円換算ってとても面倒になってやめてしまいました。(以前のブログ参照)。 私の場合、お給料がドルベースなので、ドルでの投資はありですし、将来日本に帰国するので円での投資もありだと考えています。実際、1ドル160円のときは、こっちの貯金を ほぼ全額円に換金しました。

外貨で投資、貯金する場合、将来投資している外貨を使うことを前提に考えれば問題ないと思います。

結論

  • 頭金はしっかりためて無理のない住宅ローンを組むべし

  • 機会喪失リスクを避けるため、余剰資金で株式投資をするべし

  • 外貨建て投資信託は、為替リスクが発生するのでエントリーポイントが非常に重要、将来運用通貨を利用できればよし

  • 住宅ローン、株式投資、将来の起こりうること… すべてにリスクが介在する

こんな感じで考えています。せっかく、今まで頑張ってきて人生において一区切りついたのに、老後になってまでお金の苦労はしたくありません。 リスクを予め理解して、しっかりとした無理のない計画を立てたいものですね。

読んでいただきありがとうございました。

Citrix WorkspaceのUbuntuへのインストール手順

リモートワークでCitrix Workspaceを利用していますが、Ubuntu環境へのインストール方法を紹介します。

今回は、最新バーションではなく、動作確認済のicaclient_22.7.0.14_amd64をインストールします。

www.citrix.com

Debianパッケージをダウンロードして以下のコマンドを実行します。

sudo dpkg -i icaclient_22.7.0.14_amd64.deb

なお、App Protection Componentをインストールすると、Chromeが起動できなくなってしまいますので、ここではnoを選択します(Firefoxには問題ありません)。

インストールが終了したら、SSL証明書をシステムで利用しているものに変更します。

cd /opt/Citrix/ICAClient/keystore
sudo ln -s /etc/ssl/certs cacerts

13インチノートPCにインストールしたのですが、Workspaceのモニター解像度の変更がうまくされませんでしたので、リモートPCの方で対応しました。

試していませんが、DPIの変更方法を検索すると色々と出てきますので、ご参考までに。 askubuntu.com

EmacsでJupyter Notebook

Pythonで開発する場合、コードを書いて、バッファをインタプリタに送り込んで動作確認、といった一連の作業の繰り返しをEmacs上でしています。ただ、コード内容を共有するには少々不便なので、EmacsにJupyter Notebook環境を設定してみました。

開発OSは、Ubuntu 22.04を使用していますが、デフォルトのPython環境へのpipインストールはできないため (っていうかOSから苦情がでる)、仮想環境を作成して開発しています。

Emacs IPython Notebook (EIN)に、Python仮想環境のカーネル認識させるために、以下のパッケージをインストールし、カーネルをインストールするとJupyter Notebook画面上に仮想環境が表示されます。

pip install ipykernel
python -m ipykernel install --user --name=portfolio

portfolioという仮想環境が表示されました。

Emacs設定はこちら⬇

(require 'ein)
(require 'ein-notebook)
(setq ein:worksheet-enable-undo t)
(setq ein:output-area-inlined-images t)

(require 'pyvenv)
(pyvenv-mode t)

;; Set correct Python interpreter
(setq pyvenv-post-activate-hooks
      (list (lambda ()
              (setq python-shell-interpreter (concat pyvenv-virtual-env "bin/python3")))))
(setq pyvenv-post-deactivate-hooks
      (list (lambda ()
              (setq python-shell-interpreter "python3"))))

参考: github.com

株式投資ブログ開始!

「プログラミングと株式投資」ってブログタイトルにあるけど、株とは関係ないことばかりって言うか全然更新していませんでした。

株式投資自体は、2022年くらいから本格的にやり始めています。個人的には、日本株だけではなく、外国株へも同様に投資しています。例えば、今は円安なので、外国株で受け取った配当金は、日本円口座に移動し、円高に触れたら逆にポンド、米ドル口座に移動させています。基本、長期的な運用を目指しているので、高配当銘柄を中心に買い、配当金は再投資しています。

僕の場合は、資金を効率よく回転させるためInteractive Brokers (IB)一択です。日本株はもちろんのこと、米国、欧州、香港株など全世界の銘柄を一つの口座で管理することができるのでとても便利です。API取引もサポートしているのでシステムトレードに興味が持っている方には大変おすすめです。全世界に展開しているのでGitHubでIB関連のオープンソースも豊富にあります。

www.interactivebrokers.co.jp

ちなみに、デイトレする訳ではないので、わざわざAPI取引する必要はないのでは、と思われるかもしれませんが、API経由でできることは株式の発注のみならず、ファンダメンタルズデータや時系列株価データなども取り込んで分析することができます。

システムトレードに興味がある方は、こちらのオープンソースも参考にしてみてください。 github.com