はじめに

本年、私は10月よりJ Quants APIのスタンダードプランに契約し、触り始めた初学者ではありますが、僭越ながら、アドベンドカレンダーで記事を書くことにしてみました。
しかしながら、見つけたエッジについては絶対に書けないわけで、思い悩んだ結果、
思い切り実務寄りの内容を書くことに致しました。

なので、本稿は初学者書いた初心者向けの記事になっています。

今回はJ Quants APIを触り、処理や分析で躓いた所をシェアいたします。
これをシェアすることで、皆様に少しでもお役に立て、躓くことなくJ Quants APIを継続的に使い、契約者が減ることなくサービスが継続されることを期待しております。

まずはJ Quants APIを触って気づいたこと

非常に便利です。
それに尽きます。
価格データは全て調整済みで、時系列のグラフを作っても連続したグラフをつくることができ、分析にはもってこいのデータ系列となっています。
また、なんといっても決算データが取れることが何よりも素晴らしい事で、これまでガチャだった決算も我々個人投資家の手中に収めることができるのです。

まだ、バランスシート系の数字が拡充されていないので、これが入ってくると、一気に四季報CD-ROMの客層の牙城を崩せるのではないかと個人的には思っています。

分析を始めるにしても、JQuantsAPIはチュートリアルが充実していて、サンプルコードが多数あり、Discord上で質問もできるので、他のAPIサービスと比べて使いやすさは圧倒的です。

ただし、プログラミングをしなければならないという性質上、躓く人には私のような土日にPythonを触る程度の素人個人投資家には多いはず。
以下では躓いたことを駄文でツラツラと書いて行きます。
何かお役に立てればと思いましてね。

営業利益と経常利益とIFRS

財務情報を落としてくると、まずは使いたくなるのは利益の数字。
投資家たちは、その企業の利益しかみていないのか!?と思えるほど株価は利益に敏感です。
その中で項目として営業利益、経常利益、純利益があるのですが、大抵は営業利益を分析に使われている事が多いです。

私もJ Quants APIを使い始めて営業利益で分析してから、すぐに思いつくのが”経常利益だったらどうなん?”だったので直ぐにちょちょいとコードを変えて分析したのです。
そうするとなんかですね、利益のグラフのカクカク度が増しましたが、なんか綺麗になったかのように見えたのです。

早速、共同研究者の方に報告するわけです。経常利益イケてません?、とかなんとか。

そうすると、返事はIFRSだと経常利益ないんじゃなかったっけ?

そういえばシステムトレーダーに転生してから10年、楽天証券のアプリでしか財務情報チェックしていなかったので、時代に取り残されていたようです。
楽天証券のアプリでは何故か知りませんが経常利益が表示されていますが、決算書確認するとIFRSを採用している銘柄では経常利益はありません。そしてJQuantsAPIの財務情報でも表示されません。

なるほど、どうりでグラフがカクカクするのか。。。

なお、IFISを採用している上場企業は時価総額ベースで約半分だそうです。
これからも徐々に増えるので、気をつけねばなりませんね。
横通しで比較するならば、営業利益、純利益です。

業績予想発表もまちまち

株やっていると、業績予想は必ずや目にするはず。

JQuantsAPIで業績予想があるので、これを使って分析じゃ!とやってみるわけですが、なんか思ったよりデータ点数少ねえ気がします。

で、よくよく調べてみると業績予想を出していない企業があるではないですか!
恐ろしく恥ずかしくも、今まで知らなかったのですが、業績予想を発表しない企業はよくあるみたいです。

↓↓↓野村証券の財務データ。予想利益(ForecastProfit)は発表せず。

証券会社アプリにある業績予想は予想屋の予想しかない場合もあるのですね。

発表時刻は手こずった

寄り引けトレードをしているときに時々出会すのが、12:00に決算発表してくる迷惑極まりない会社。そんな銘柄を選定してトレードしていると、12:30にストップ高とか、ストップ安があったります。張っている方向に当たっていれば良いですが、逆方向だとあーあ、今日はもうおしまい、人生もおしまいと言った気分になります。

で、そんな会社を抽出したり、省いたりするためにコードを書くのですが、なぜか止まります。
よく調べてみると、発表時刻の表記に混ざり物があるではないですか。

↓↓↓15:00と15:00:00の表記が混ざっている。

これをPythonで処理するとき、一悶着ありました。
認識できないなんちゃらがあるとか、なんとか。
修正すると読めてる方が読めなくなったり。
で、自分の力では時間の浪費だということで、早速、秘書がわりに使っているphindに聞いてみました。


↓↓↓は教えてくれたコード。
一度みんな時間に変更してからdatetime方式のtimeにしています。エレガント。

import pandas as pd

# データフレームの作成
df = pd.DataFrame({
   'time': ['15:00', '15:00:00', '16:00', '16:00:00']
})

# datetime形式に変換
df['time'] = pd.to_datetime(df['time'], format='%H:%M:%S').dt.time

print(df)

私のような超ド級のプログラミング素人の方には単なる処理で沼にハマる前に、生成AIに聞くことを強く強くお勧めします。
I recommend you to search what you want to achieve by using program on generative AI strongly!

時系列PBRを作るのはちょっとテクニックいるな

株を勉強すると、必ずや通るPBR。
しかもウォーレンバフェットのおかげで、皆さん割安割高といった感覚で株を買われる人も多く、10年前とは投資家のリテラシーは大きく変化しました。
そのおかげか知りませんが、バリュー系の投資家の参入者が増えたせいか、バリュー指標は効かないという話もでてきております。

しかしながら、やはり分析には一度は使ってみたいもの。

で、時系列PBRを作ろうとするとちょっとややこしいではないですか。
株価の調整係数は価格時系列データに入ってますが、時価総額は価格時系列データには入ってません。

そのため、X(twitter)で呟くと優しい優しい方からコメントがございました。

おおお、これはエレガントと思いましたね。
時価総額が求まれば、こっちのもんです。
ありがとうございます、サンセットさん。
早速コードを書いてみることに。

そうして出来上がったのが以下のPBRのグラフ。
銘柄は任天堂。

任天堂の時系列PBR

任天堂の株価時系列

よく思い返すと、時系列PBRのグラフなんてあんまり見かけないですね。
株価と比べてわかるのは株価ほどPBRは上がっていません。
それはすなわち株価と共に資本も成長しているということなのでしょう。

逆に言えば資本の成長こそが株価上昇の大きなファクターだと解釈できます。

ところで君はエッジをみつけたのかい?分析するだけして、それだけで満足してないか?

最後に私がJ Quants APIを契約して、何か得るものがあったのかを書きます。
契約してから2か月間、毎日の如くJ Quants APIを触ってきた気がします。

仮説を立て、検証の繰り返し。
そんな中、エッジを見つけるたびに下の様に呟いてきました。

そうやって毎日を過ごした結果、とりあえず、出来たトレードモデルは以下の通り。

対象はTOPIX100で、ロングショート。
9年間で549%のトータルリターン。
なお、最大DDは19%となっていますが、真ん中のチョコンとした奴です。
それ以外ではDD9%ぐらい。
ちなみにシンプルな線形回帰だけを13個アンサンブルしてます。
過学習チキンなので、許してください。

なお、年明けから運用するしようかと悩んでいるところです。
改良アイデアは数個あるので、もう少し頑張ろうと思います。

最後に

最後に何が言いたいかというと、JQuantsAPIはエッジの塊です。

実は言うと自分は1年半前に株をストップし、仮想通貨トレーダーに転生したものの、いきなり仮想通貨の冬が到来、路頭に迷っていたのです。
そこで、JQuantsAPIやらないかと誘われ、始めるとエッジが見つかる見つかる。
これはトレードの革命です。

JQuantsAPIの契約を悩んでいる人がいるならば、私が背中を押してあげたいです。
優良なツールを有料で使い始める行動力、必要だと思います。

私は回し者ではありませんが、JQuantsAPIの契約者が増え、界隈がにぎわう事を切に祈っております。
そしてエッジが見つかれば、即私にDMください。
よろしくお願いします!


<最近最も役に立った書籍>

生成AIで仕事を一気に変えたい人は読んでください。
プログラミング以外にもかなり役に立ちます!

私は生成AI無しでは生きて行けない体になってしまいましたね。。。