stock-pairs-trading is a python library for backtest with stock pairs trading using kalman filter on Python 3.8 and above.
Project description
stock-pairs-trading
stock-pairs-trading is a python library for backtest with stock pairs trading using kalman filter on Python 3.8 and above.
Installation
$ pip install stock-pairs-trading
Usage
find pairs
from stock_pairs_trading import StockPairsTrading
spt = StockPairsTrading(
start="2007-12-01",
end="2017-12-01",
)
r = spt.find_pairs(["AAPL", "ADBE", "MSFT", "IBM"])
print(r)
[('ADBE', 'MSFT')]
backtest
from pprint import pprint
from stock_pairs_trading import StockPairsTrading
spt = StockPairsTrading(
start="2007-12-01",
end="2017-12-01",
)
r = spt.backtest(('ADBE', 'MSFT'))
pprint(r)
{'cointegration': 0.0018311528816901195,
'correlation': 0.9858057442729853,
'maximum_drawdown': 34.801876068115234,
'profit_factor': 1.1214715644744209,
'riskreward_ratio': 0.8095390763424627,
'sharpe_ratio': 0.03606830691295276,
'total_profit': 35.97085762023926,
'total_trades': 520,
'win_rate': 0.5807692307692308}
latest signal
from pprint import pprint
from stock_pairs_trading import StockPairsTrading
spt = StockPairsTrading(
start="2007-12-01",
end="2017-12-01",
)
r = spt.latest_signal(("ADBE", "MSFT"))
pprint(r)
{'ADBE Adj Close': 299.5,
'ADBE Buy': True, # entry buy
'ADBE Cover': False, # exit buy
'ADBE Sell': False, # entry sell
'ADBE Short': False, # exit sell
'MSFT Adj Close': 244.74000549316406,
'MSFT Buy': False, # entry buy
'MSFT Cover': False, # exit buy
'MSFT Sell': True, # entry sell
'MSFT Short': False, # exit sell
'date': '2022-09-16',
'zscore': -36.830427514962274}
Advanced Usage
from pprint import pprint
from stock_pairs_trading import StockPairsTrading
spt = StockPairsTrading(
start="2007-12-01",
end="2017-12-01",
outputs_dir_path = "outputs",
data_dir_path = "data",
column = "Adj Close",
window = 1,
transition_covariance = 0.01,
)
r = spt.backtest(('ADBE', 'MSFT'))
pprint(r)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stock-pairs-trading-0.1.1.tar.gz.
File metadata
- Download URL: stock-pairs-trading-0.1.1.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d11fe6cf551b9597b87e612dce46804597f8dc79f556df1dd8691dc0b12f7e55
|
|
| MD5 |
12226844a54a69a5c1eda53a06c51ee6
|
|
| BLAKE2b-256 |
ace6a88ded68eab43cf6e774d09dc929fc0c3381f813bf584e80f5f84c37d7c9
|
File details
Details for the file stock_pairs_trading-0.1.1-py3-none-any.whl.
File metadata
- Download URL: stock_pairs_trading-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00264ada4d452e6ed230dc3a2736b81a59a16823e2dce2dafa32fedafede9f2e
|
|
| MD5 |
3898fcf43fc77c0acb1d3c6c23c37629
|
|
| BLAKE2b-256 |
4060ef7f9da39391c07e7c88d0d62b0671f03c8af12432c714ba1019952823af
|