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)
DataFrame Function (df_func)
# example
def df_sim_yoy(window):
def _sim_yoy(x):
temp = pd.DataFrame(x)
return (temp - temp.shift(window)) / ((temp.abs() + temp.shift(window).abs()) / 2)
_sim_yoy.__name__ = f'df_sim_yoy_{int(window)}'
return _sim_yoy
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.14.tar.gz
(45.6 MB
view hashes)
Built Distribution
Close
Hashes for sc_backtest-0.1.14-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 950478e86926364659ee36aafbe33710b9bcc03c86f286ee4e33fe190d8d81f5 |
|
MD5 | 346c223ebd37d43bf27bdd4ddfebcfcd |
|
BLAKE2b-256 | 935ba0f41fbd24c7df317281ac7021639d0e5f638bde37452e2737f049640a46 |