snowde / finance_ml

Advances in Financial Machine Learning

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

License:MIT License


Languages

Language:Python 100.0%