![見出し画像](https://assets.st-note.com/production/uploads/images/119757825/rectangle_large_type_2_fe29d5477e7b71f21727b57b2c3558ac.png?width=1200)
超簡単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')]
![](https://assets.st-note.com/img/1698131487168-AzeuGa8iLD.png?width=1200)
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'}
![](https://assets.st-note.com/img/1698131595957-PKPYONltiJ.png?width=1200)
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'}
以上、超簡単!