見出し画像

超簡単Pythonで日本株株価予測(J-Quants利用)機械学習(LightGBM)

PythonでJ-Quantsを利用して日本株の翌日の株価の上下予測を超簡単に機械学習(LightGBM)


1. J-Quantsで無料アカウント作成

2. ツールインストール

$ pip install jquants-ml

3. バックテスト

backtest.py

from jquants_ml import Ml
import pprint

class MyMl(Ml):
    def features(self):
        # 任意の特徴量を設定
        self.X["close"] = self.df.Close
        self.X["ror"] = self.df.Close.pct_change(1)
        self.X["sma"] = self.sma(period=5)

ml = MyMl(
    # J-Quantsで作成したアカウント情報
    mail_address="<your J-Quants mail address>",
    password="<your J-Quants password>",
    ticker="7203",  # トヨタ自動車
    size=100,  # 100株
)
pprint.pprint(ml.backtest())

実行

$ python backtest.py

{'long': {'maximum drawdown': '15250.000',
          'profit': '12700.000',
          'profit factor': '1.183',
          'riskreward ratio': '1.213',
          'sharpe ratio': '0.063',
          'trades': '81.000',
          'win rate': '0.494'},
 'short': {'maximum drawdown': '50100.000',
           'profit': '-43800.000',
           'profit factor': '0.413',
           'riskreward ratio': '0.478',
           'sharpe ratio': '0.298',
           'trades': '41.000',
           'win rate': '0.463'},
 'total': {'maximum drawdown': '47200.000',
           'profit': '-31100.000',
           'profit factor': '0.784',
           'riskreward ratio': '0.837',
           'sharpe ratio': '0.149',
           'trades': '122.000',
           'win rate': '0.484'}}


4. 最新の売買予測

sign.py

from jquants_ml import Ml
import pprint

class MyMl(Ml):
    def features(self):
        self.X["close"] = self.df.Close
        self.X["ror"] = self.df.Close.pct_change(1)
        self.X["sma"] = self.sma(period=5)

ml = MyMl(
    mail_address="<your J-Quants mail address>",
    password="<your J-Quants password>",
    ticker="7203",  # TOYOTA
    size=100,  # 100 shares
)
pprint.pprint(ml.predict())

実行

$ python sign.py

# 2023/08/01の終値、2445.5で売って翌日終値で買い
{'Date': '2023-08-01', 'Price': 2445.5, 'Sign': 'short'}

以上、超簡単!

5. 参考


この記事が気に入ったらサポートをしてみませんか?