Python implementations of Machine Learning helper functions for Quantiative Finance based on a book,
Advances in Financial Machine Learning, written by Marcos Lopez de Prado
.
Excute the following command
python setup.py install
The following functions are implemented:
- Labeling
- Multiporcessing
- Sampling
- Feature Selection
- Asset Allcation
- Breakout Detection
Triple Barriers Labeling and CUSUM sampling
from finance_ml.labeling import get_barrier_labels, cusum_filter
from finance_ml.stats import get_daily_vol
vol = get_daily_vol(close)
trgt = vol
timestamps = cusum_filter(close, vol)
labels = get_barrier_labels(close, timestamps, trgt, sltp=[1, 1],
num_days=1, min_ret=0, num_threads=16)
print(labels.show())
Return the following pandas.Series
2000-01-05 -1.0
2000-01-06 1.0
2000-01-10 -1.0
2000-01-11 1.0
2000-01-12 1.0
Parallel computing using multiprocessing
library.
Here is the example of applying function to each element with parallelization.
import pandas as pd
import numpy as np
def apply_func(x):
return x ** 2
def func(df, timestamps, f):
df_ = df.loc[timestamps]
for idx, x in df_.items():
df_.loc[idx] = f(x)
return df_
df = pd.Series(np.random.randn(10000))
from finance_ml.multiprocessing import mp_pandas_obj
results = mp_pandas_obj(func, pd_obj=('timestamps', df.index),
num_threads=24, df=df, f=apply_func)
print(results.head())
Output:
0 0.449278
1 1.411846
2 0.157630
3 4.949410
4 0.601459
For more detail, please refer to the documentation!