Skip to content

jjakimoto/finance_ml

Repository files navigation

finance_ml

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.

Installation

Excute the following command

python setup.py install

Implementation

The following functions are implemented:

  • Labeling
  • Multiporcessing
  • Sampling
  • Feature Selection
  • Asset Allcation
  • Breakout Detection

Examples

labeling

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

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

For more detail, please refer to the documentation!

About

Advances in Financial Machine Learning

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published