![見出し画像](https://assets.st-note.com/production/uploads/images/120874533/rectangle_large_type_2_62dca43bdde7bbdf3fdd7b02d53bec27.png?width=1200)
超簡単Pythonで日本株株価予測(J-Quants利用)機械学習(LightGBM)
PythonでJ-Quantsを利用して日本株の翌日の株価の上下予測を超簡単に機械学習(LightGBM)
1. J-Quantsで無料アカウント作成
2. ツールインストール
$ pip install jquants-ml
3. バックテスト
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'}}
![](https://assets.st-note.com/img/1698153846079-NH0gBPnyul.png?width=1200)
4. 最新の売買予測
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'}
以上、超簡単!