Skip to content

Advances in Financial Machine Learning

License

Notifications You must be signed in to change notification settings

zli69/finance_ml

 
 

Repository files navigation

finance_ml

Python implementations of Machine Learning helper functions based on a book, Advances in Financial Machine Learning[1], written by Marcos Lopez de Prado.

Installation

Excute the following command

python setup.py install

Implementation

labeling

  • Triple Barriers Labeling
  • 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
  • Future Returns for Regression

multiprocessing

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
dtype: float64

About

Advances in Financial Machine Learning

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%