見出し画像

超簡単Pythonで日本株ペアトレードバックテスト(カルマンフィルター 利用)J-Quants

Pythonでカルマンフィルターを利用して超簡単に日本株ペアトレードバックテスト(J-Quants)


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

2. ツールインストール

$ pip install jquants-pairs-trading

3. ペアを探す

pair.py

from jquants_pairs_trading import JquantsPairsTrading
import pprint

jpt = JquantsPairsTrading(
    mail_address="<your J-Quants mail address>",
    password="<your J-Quants password>",
)
pprint.pprint(jpt.find_pairs([3382, 4063, 4502]))

実行

$ python pair.py

[('3382', '4502')]


4. バックテスト

backtest.py

from jquants_pairs_trading import JquantsPairsTrading
import pprint

jpt = JquantsPairsTrading(
    mail_address="<your J-Quants mail address>",
    password="<your J-Quants password>",
)
pprint.pprint(jpt.backtest((3382, 4502)))

実行

$ python backtest.py

{'cointegration': '0.016',
 'correlation': '0.814',
 'maximum_drawdown': '443.000',
 'profit_factor': '1.654',
 'riskreward_ratio': '1.081',
 'sharpe_ratio': '0.183',
 'total_profit': '2184.000',
 'total_trades': '86.000',
 'win_rate': '0.605'}


5. 最新の売買シグナル取得

signal.py

from jquants_pairs_trading import JquantsPairsTrading
import pprint

jpt = JquantsPairsTrading(
    mail_address="<your J-Quants mail address>",
    password="<your J-Quants password>",
)
pprint.pprint(jpt.latest_signal((6954, 6981)))

実行

$ python signal.py

{'6954 buy': True,
 '6954 close': '4348.000',
 '6954 long': False,
 '6954 sell': False,
 '6954 short': False,
 '6981 buy': False,
 '6981 close': '2775.000',
 '6981 long': False,
 '6981 sell': True,
 '6981 short': False,
 'date': '2023-07-31'}

以上、超簡単!

6. 参考


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