Index future simple stat and time-series test module
Project description
Simple Backtest Module (Personal Usage)
Chang Sun | 孙畅
Install and Update
pip install --upgrade sc-backtest
or (if slow)
pip install --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple sc-backtest
Simple Test
- Check for factor validity
- Statistical:
- CDF
- Markout
- Hist
- ...
- Time-Series:
- Sign-Trade
- Value-Trade
- ...
- Statistical:
# x: factors
# y: asset's future ret
import pandas as pd
import numpy as np
from sc_backtest import simpletest, dataset
data = dataset.get_data('adj_close_price', frequency=5)
x = data.pct_change(240).iloc[:, 0]
y = data.pct_change().shift(-1).iloc[:, 0]
st = simpletest()
st.plot_cdf(x, y)
st.plot_composite(x, y)
Backtest (bt)
- Backtest
- get_report
- get_pnl_plot
- round_test
- ...
# x: factors
# y: asset's future ret
import pandas as pd
import numpy as np
from sc_backtest import simpletest, bt, dataset
data = dataset.get_data('adj_close_price', frequency=5)
x = data.pct_change(240).iloc[:, 0]
y = data.pct_change().shift(-1).iloc[:, 0]
st = simpletest()
data = st.simple_pnl(x, y, data_return=True)
report = bt.get_report(data['delta_med'], y)
bt.get_pnl_plot(data['delta_med'], y)
Technical Analysis (ta)
Reference: ta
import pandas as pd
import numpy as np
from sc_backtest import ta, dataset
data = dataset.get_data('adj_close_price', frequency=5)
macd_diff = ta.trend.macd(data.iloc[:, 0]).macd_diff()
Technical Analysis2 (ta2)
Variou moving average function and stat model
- sma, ema, wma, ...
- rsi, atr, ...
- z_score, div_std, de_mean, ...
import pandas as pd
import numpy as np
from sc_backtest import ta2, dataset
data = dataset.get_data('adj_close_price', frequency=5)
wma = ta2.wma(data.iloc[:, 0], window=5)
Example
Input your factor and underlying asset's future return with index type as DatetimeIndex and get the composite factor analysis stat and simple-pnl time-series plots.
# x: factors
# y: asset's future ret
import pandas as pd
import numpy as np
from sc_backtest import simpletest, bt, dataset, ta2
data = dataset.get_data('adj_close_price', frequency=5)
x = data.pct_change().apply(lambda x: ta2.ema(x, window=240))
y = data.pct_change().shift(-1)
st = simpletest()
st.plot_composite_cs(x, y, ic=True, horizon=5)
bt.get_pnl_plot(x, y, alpha=True)
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
sc-backtest-0.1.13.tar.gz
(37.9 MB
view hashes)
Built Distribution
Close
Hashes for sc_backtest-0.1.13-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f162f83b75f966343b38b7d71adefd9e29d357eb67a71d62bff520d0fde6f756 |
|
MD5 | b458a6cd24050fc7bfcaa1cf2e4f085c |
|
BLAKE2b-256 | 2f7d79a6dd2eb0902c6fa2cd86fc74860a2cccd5303792f7ca04cda986d07724 |