请在环境变量中设置DB_URI指向数据库


In [1]:
%matplotlib inline
import os
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from alphamind.api import *
from alphamind.strategy.strategy import RunningSetting
from alphamind.strategy.strategy import Strategy
from PyFin.api import *
from PyFin.Math.Accumulators.StatefulAccumulators import MovingAverage
from PyFin.Math.Accumulators.StatefulAccumulators import MovingSharp
from PyFin.Math.Accumulators.StatefulAccumulators import MovingMaxDrawdown

plt.style.use('ggplot')

In [2]:
"""
Back test parameter settings
"""

benchmark_code = 905
universe = Universe('zz800') + Universe('cyb')

start_date = '2017-01-01'
end_date = '2018-04-27'
freq = '10b'
neutralized_risk = None

alpha_factors = {
    'f01': CSQuantiles(LAST('EPS'), groups='sw1'),
    'f02': CSQuantiles(LAST('ROE'), groups='sw1'),
}

weights = dict(
               f01=1.,
               f02=1.
               )

alpha_model = ConstLinearModel(features=alpha_factors, weights=weights)

data_meta = DataMeta(freq=freq,
                     universe=universe,
                     batch=1,
                     neutralized_risk=None,
                     pre_process=None,
                     post_process=None,
                     data_source=os.environ['DB_URI'])

strategy = Strategy(alpha_model,
                    data_meta,
                    universe=universe,
                    start_date=start_date,
                    end_date=end_date,
                    freq=freq,
                    benchmark=benchmark_code)

strategy.prepare_backtest_data()

def create_scenario(weights_bandwidth=0.02, target_vol=0.01, method='risk_neutral'):
    industry_names = industry_list('sw', 1)
    constraint_risk = ['SIZE', 'SIZENL', 'BETA']
    total_risk_names = constraint_risk + ['benchmark', 'total']
    all_styles = risk_styles + industry_styles + macro_styles

    b_type = []
    l_val = []
    u_val = []

    previous_pos = pd.DataFrame()
    rets = []
    turn_overs = []
    leverags = []

    for name in total_risk_names:
        if name == 'benchmark':
            b_type.append(BoundaryType.RELATIVE)
            l_val.append(0.8)
            u_val.append(1.0)
        else:
            b_type.append(BoundaryType.ABSOLUTE)
            l_val.append(0.0)
            u_val.append(0.0)

    bounds = create_box_bounds(total_risk_names, b_type, l_val, u_val)
    running_setting = RunningSetting(weights_bandwidth=weights_bandwidth,
                                     rebalance_method=method,
                                     bounds=bounds,
                                     target_vol=target_vol,
                                     turn_over_target=0.4)

    ret_df, positions = strategy.run(running_setting)
    return ret_df


2019-02-10 00:34:06,090 - ALPHA_MIND - INFO - alpha factor data loading finished ...
2019-02-10 00:34:06,861 - ALPHA_MIND - INFO - industry data loading finished ...
2019-02-10 00:34:07,265 - ALPHA_MIND - INFO - benchmark data loading finished ...
2019-02-10 00:34:10,637 - ALPHA_MIND - INFO - risk_model data loading finished ...
2019-02-10 00:34:13,350 - ALPHA_MIND - INFO - returns data loading finished ...

In [3]:
def create_report(ret_df, windows):
    sharp_calc = MovingSharp(windows, x='ret', y='riskFree')
    drawdown_calc = MovingMaxDrawdown(windows, x='ret')
    max_drawdown_calc = MovingMaxDrawdown(len(ret_df), x='ret')
    
    ret_df['ret_after_tc'] = ret_df.excess_return - 0.002 * ret_df.turn_over
    res_df = pd.DataFrame(columns=['daily_return', 'cum_ret', 'sharp', 'drawdown', 'max_drawn', 'leverage'])
    total_returns = 0.

    for i, ret in enumerate(ret_df['ret_after_tc']):
        date = ret_df.index[i]
        total_returns += ret
        sharp_calc.push({'ret': ret, 'riskFree': 0.})
        drawdown_calc.push({'ret': ret})
        max_drawdown_calc.push({'ret': ret})

        res_df.loc[date, 'daily_return'] = ret
        res_df.loc[date, 'cum_ret'] = total_returns
        res_df.loc[date, 'drawdown'] = drawdown_calc.result()
        res_df.loc[date, 'max_drawn'] = max_drawdown_calc.result()
        res_df.loc[date, 'leverage'] = ret_df.loc[date, 'leverage']

        if i < 5:
            res_df.loc[date, 'sharp'] = 0.
        else:
            res_df.loc[date, 'sharp'] = sharp_calc.result() * np.sqrt(windows)
    return res_df

In [4]:
%%time
weight_gaps = [0.005, 0.010, 0.015, 0.020]

with pd.ExcelWriter(f'zz800_cyb_{benchmark_code}_gap.xlsx', engine='xlsxwriter') as writer:
    for i, weight_gap in enumerate(weight_gaps):
        ret_df = create_scenario(weight_gap, target_vol=0.01, method='risk_neutral')
        res_df = create_report(ret_df, 25)
        res_df.to_excel(writer, sheet_name=f'{i}')
        alpha_logger.info(f"weight_gap: {weight_gap} finished")


2019-02-10 00:34:13,667 - ALPHA_MIND - INFO - starting backting ...
2019-02-10 00:34:13,856 - ALPHA_MIND - INFO - alpha models training finished ...
D:\ProgramData\anaconda3\lib\site-packages\pandas\core\frame.py:4024: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  downcast=downcast, **kwargs)
2019-02-10 00:34:13,921 - ALPHA_MIND - INFO - 2017-01-03 00:00:00 re-balance: 851 codes
2019-02-10 00:34:13,985 - ALPHA_MIND - INFO - 2017-01-17 00:00:00 re-balance: 850 codes
D:\ProgramData\anaconda3\lib\site-packages\cvxpy-1.0.10-py3.6-win-amd64.egg\cvxpy\problems\problem.py:614: RuntimeWarning: overflow encountered in long_scalars
  if self.max_big_small_squared < big*small**2:
D:\ProgramData\anaconda3\lib\site-packages\cvxpy-1.0.10-py3.6-win-amd64.egg\cvxpy\problems\problem.py:615: RuntimeWarning: overflow encountered in long_scalars
  self.max_big_small_squared = big*small**2
2019-02-10 00:34:14,108 - ALPHA_MIND - INFO - 2017-02-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:14,220 - ALPHA_MIND - INFO - 2017-02-21 00:00:00 re-balance: 852 codes
2019-02-10 00:34:14,330 - ALPHA_MIND - INFO - 2017-03-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:14,445 - ALPHA_MIND - INFO - 2017-03-21 00:00:00 re-balance: 853 codes
2019-02-10 00:34:14,563 - ALPHA_MIND - INFO - 2017-04-06 00:00:00 re-balance: 853 codes
2019-02-10 00:34:14,706 - ALPHA_MIND - INFO - 2017-04-20 00:00:00 re-balance: 853 codes
2019-02-10 00:34:14,840 - ALPHA_MIND - INFO - 2017-05-05 00:00:00 re-balance: 854 codes
2019-02-10 00:34:14,969 - ALPHA_MIND - INFO - 2017-05-19 00:00:00 re-balance: 854 codes
2019-02-10 00:34:15,106 - ALPHA_MIND - INFO - 2017-06-06 00:00:00 re-balance: 854 codes
2019-02-10 00:34:15,216 - ALPHA_MIND - INFO - 2017-06-20 00:00:00 re-balance: 854 codes
2019-02-10 00:34:15,339 - ALPHA_MIND - INFO - 2017-07-04 00:00:00 re-balance: 855 codes
2019-02-10 00:34:15,482 - ALPHA_MIND - INFO - 2017-07-18 00:00:00 re-balance: 855 codes
2019-02-10 00:34:15,608 - ALPHA_MIND - INFO - 2017-08-01 00:00:00 re-balance: 853 codes
2019-02-10 00:34:15,746 - ALPHA_MIND - INFO - 2017-08-15 00:00:00 re-balance: 853 codes
2019-02-10 00:34:15,892 - ALPHA_MIND - INFO - 2017-08-29 00:00:00 re-balance: 853 codes
2019-02-10 00:34:16,040 - ALPHA_MIND - INFO - 2017-09-12 00:00:00 re-balance: 853 codes
2019-02-10 00:34:16,167 - ALPHA_MIND - INFO - 2017-09-26 00:00:00 re-balance: 853 codes
2019-02-10 00:34:16,287 - ALPHA_MIND - INFO - 2017-10-17 00:00:00 re-balance: 853 codes
2019-02-10 00:34:16,409 - ALPHA_MIND - INFO - 2017-10-31 00:00:00 re-balance: 854 codes
2019-02-10 00:34:16,567 - ALPHA_MIND - INFO - 2017-11-14 00:00:00 re-balance: 854 codes
2019-02-10 00:34:16,679 - ALPHA_MIND - INFO - 2017-11-28 00:00:00 re-balance: 854 codes
2019-02-10 00:34:16,806 - ALPHA_MIND - INFO - 2017-12-12 00:00:00 re-balance: 854 codes
2019-02-10 00:34:16,931 - ALPHA_MIND - INFO - 2017-12-26 00:00:00 re-balance: 854 codes
2019-02-10 00:34:17,045 - ALPHA_MIND - INFO - 2018-01-10 00:00:00 re-balance: 856 codes
2019-02-10 00:34:17,168 - ALPHA_MIND - INFO - 2018-01-24 00:00:00 re-balance: 856 codes
2019-02-10 00:34:17,282 - ALPHA_MIND - INFO - 2018-02-07 00:00:00 re-balance: 856 codes
2019-02-10 00:34:17,400 - ALPHA_MIND - INFO - 2018-02-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:17,520 - ALPHA_MIND - INFO - 2018-03-14 00:00:00 re-balance: 856 codes
2019-02-10 00:34:17,632 - ALPHA_MIND - INFO - 2018-03-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:17,779 - ALPHA_MIND - INFO - 2018-04-13 00:00:00 re-balance: 856 codes
2019-02-10 00:34:17,899 - ALPHA_MIND - INFO - 2018-04-27 00:00:00 re-balance: 859 codes
2019-02-10 00:34:18,064 - ALPHA_MIND - INFO - weight_gap: 0.005 finished
2019-02-10 00:34:18,066 - ALPHA_MIND - INFO - starting backting ...
2019-02-10 00:34:18,125 - ALPHA_MIND - INFO - 2017-01-03 00:00:00 re-balance: 851 codes
2019-02-10 00:34:18,191 - ALPHA_MIND - INFO - 2017-01-17 00:00:00 re-balance: 850 codes
2019-02-10 00:34:18,320 - ALPHA_MIND - INFO - 2017-02-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:18,447 - ALPHA_MIND - INFO - 2017-02-21 00:00:00 re-balance: 852 codes
2019-02-10 00:34:18,556 - ALPHA_MIND - INFO - 2017-03-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:18,678 - ALPHA_MIND - INFO - 2017-03-21 00:00:00 re-balance: 853 codes
2019-02-10 00:34:18,807 - ALPHA_MIND - INFO - 2017-04-06 00:00:00 re-balance: 853 codes
2019-02-10 00:34:18,950 - ALPHA_MIND - INFO - 2017-04-20 00:00:00 re-balance: 853 codes
2019-02-10 00:34:19,111 - ALPHA_MIND - INFO - 2017-05-05 00:00:00 re-balance: 854 codes
2019-02-10 00:34:19,235 - ALPHA_MIND - INFO - 2017-05-19 00:00:00 re-balance: 854 codes
2019-02-10 00:34:19,374 - ALPHA_MIND - INFO - 2017-06-06 00:00:00 re-balance: 854 codes
2019-02-10 00:34:19,500 - ALPHA_MIND - INFO - 2017-06-20 00:00:00 re-balance: 854 codes
2019-02-10 00:34:19,615 - ALPHA_MIND - INFO - 2017-07-04 00:00:00 re-balance: 855 codes
2019-02-10 00:34:19,772 - ALPHA_MIND - INFO - 2017-07-18 00:00:00 re-balance: 855 codes
2019-02-10 00:34:19,894 - ALPHA_MIND - INFO - 2017-08-01 00:00:00 re-balance: 853 codes
2019-02-10 00:34:20,028 - ALPHA_MIND - INFO - 2017-08-15 00:00:00 re-balance: 853 codes
2019-02-10 00:34:20,171 - ALPHA_MIND - INFO - 2017-08-29 00:00:00 re-balance: 853 codes
2019-02-10 00:34:20,300 - ALPHA_MIND - INFO - 2017-09-12 00:00:00 re-balance: 853 codes
2019-02-10 00:34:20,430 - ALPHA_MIND - INFO - 2017-09-26 00:00:00 re-balance: 853 codes
2019-02-10 00:34:20,546 - ALPHA_MIND - INFO - 2017-10-17 00:00:00 re-balance: 853 codes
2019-02-10 00:34:20,685 - ALPHA_MIND - INFO - 2017-10-31 00:00:00 re-balance: 854 codes
2019-02-10 00:34:20,848 - ALPHA_MIND - INFO - 2017-11-14 00:00:00 re-balance: 854 codes
2019-02-10 00:34:20,966 - ALPHA_MIND - INFO - 2017-11-28 00:00:00 re-balance: 854 codes
2019-02-10 00:34:21,097 - ALPHA_MIND - INFO - 2017-12-12 00:00:00 re-balance: 854 codes
2019-02-10 00:34:21,223 - ALPHA_MIND - INFO - 2017-12-26 00:00:00 re-balance: 854 codes
2019-02-10 00:34:21,335 - ALPHA_MIND - INFO - 2018-01-10 00:00:00 re-balance: 856 codes
2019-02-10 00:34:21,451 - ALPHA_MIND - INFO - 2018-01-24 00:00:00 re-balance: 856 codes
2019-02-10 00:34:21,555 - ALPHA_MIND - INFO - 2018-02-07 00:00:00 re-balance: 856 codes
2019-02-10 00:34:21,668 - ALPHA_MIND - INFO - 2018-02-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:21,782 - ALPHA_MIND - INFO - 2018-03-14 00:00:00 re-balance: 856 codes
2019-02-10 00:34:21,907 - ALPHA_MIND - INFO - 2018-03-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:22,054 - ALPHA_MIND - INFO - 2018-04-13 00:00:00 re-balance: 856 codes
2019-02-10 00:34:22,173 - ALPHA_MIND - INFO - 2018-04-27 00:00:00 re-balance: 859 codes
2019-02-10 00:34:22,327 - ALPHA_MIND - INFO - weight_gap: 0.01 finished
2019-02-10 00:34:22,328 - ALPHA_MIND - INFO - starting backting ...
2019-02-10 00:34:22,387 - ALPHA_MIND - INFO - 2017-01-03 00:00:00 re-balance: 851 codes
2019-02-10 00:34:22,453 - ALPHA_MIND - INFO - 2017-01-17 00:00:00 re-balance: 850 codes
2019-02-10 00:34:22,573 - ALPHA_MIND - INFO - 2017-02-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:22,690 - ALPHA_MIND - INFO - 2017-02-21 00:00:00 re-balance: 852 codes
2019-02-10 00:34:22,811 - ALPHA_MIND - INFO - 2017-03-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:22,939 - ALPHA_MIND - INFO - 2017-03-21 00:00:00 re-balance: 853 codes
2019-02-10 00:34:23,057 - ALPHA_MIND - INFO - 2017-04-06 00:00:00 re-balance: 853 codes
2019-02-10 00:34:23,193 - ALPHA_MIND - INFO - 2017-04-20 00:00:00 re-balance: 853 codes
2019-02-10 00:34:23,333 - ALPHA_MIND - INFO - 2017-05-05 00:00:00 re-balance: 854 codes
2019-02-10 00:34:23,457 - ALPHA_MIND - INFO - 2017-05-19 00:00:00 re-balance: 854 codes
2019-02-10 00:34:23,588 - ALPHA_MIND - INFO - 2017-06-06 00:00:00 re-balance: 854 codes
2019-02-10 00:34:23,719 - ALPHA_MIND - INFO - 2017-06-20 00:00:00 re-balance: 854 codes
2019-02-10 00:34:23,838 - ALPHA_MIND - INFO - 2017-07-04 00:00:00 re-balance: 855 codes
2019-02-10 00:34:23,993 - ALPHA_MIND - INFO - 2017-07-18 00:00:00 re-balance: 855 codes
2019-02-10 00:34:24,119 - ALPHA_MIND - INFO - 2017-08-01 00:00:00 re-balance: 853 codes
2019-02-10 00:34:24,250 - ALPHA_MIND - INFO - 2017-08-15 00:00:00 re-balance: 853 codes
2019-02-10 00:34:24,383 - ALPHA_MIND - INFO - 2017-08-29 00:00:00 re-balance: 853 codes
2019-02-10 00:34:24,513 - ALPHA_MIND - INFO - 2017-09-12 00:00:00 re-balance: 853 codes
2019-02-10 00:34:24,653 - ALPHA_MIND - INFO - 2017-09-26 00:00:00 re-balance: 853 codes
2019-02-10 00:34:24,774 - ALPHA_MIND - INFO - 2017-10-17 00:00:00 re-balance: 853 codes
2019-02-10 00:34:24,889 - ALPHA_MIND - INFO - 2017-10-31 00:00:00 re-balance: 854 codes
2019-02-10 00:34:25,036 - ALPHA_MIND - INFO - 2017-11-14 00:00:00 re-balance: 854 codes
2019-02-10 00:34:25,170 - ALPHA_MIND - INFO - 2017-11-28 00:00:00 re-balance: 854 codes
2019-02-10 00:34:25,298 - ALPHA_MIND - INFO - 2017-12-12 00:00:00 re-balance: 854 codes
2019-02-10 00:34:25,420 - ALPHA_MIND - INFO - 2017-12-26 00:00:00 re-balance: 854 codes
2019-02-10 00:34:25,531 - ALPHA_MIND - INFO - 2018-01-10 00:00:00 re-balance: 856 codes
2019-02-10 00:34:25,659 - ALPHA_MIND - INFO - 2018-01-24 00:00:00 re-balance: 856 codes
2019-02-10 00:34:25,782 - ALPHA_MIND - INFO - 2018-02-07 00:00:00 re-balance: 856 codes
2019-02-10 00:34:25,929 - ALPHA_MIND - INFO - 2018-02-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:26,056 - ALPHA_MIND - INFO - 2018-03-14 00:00:00 re-balance: 856 codes
2019-02-10 00:34:26,167 - ALPHA_MIND - INFO - 2018-03-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:26,302 - ALPHA_MIND - INFO - 2018-04-13 00:00:00 re-balance: 856 codes
2019-02-10 00:34:26,437 - ALPHA_MIND - INFO - 2018-04-27 00:00:00 re-balance: 859 codes
2019-02-10 00:34:26,581 - ALPHA_MIND - INFO - weight_gap: 0.015 finished
2019-02-10 00:34:26,582 - ALPHA_MIND - INFO - starting backting ...
2019-02-10 00:34:26,640 - ALPHA_MIND - INFO - 2017-01-03 00:00:00 re-balance: 851 codes
2019-02-10 00:34:26,708 - ALPHA_MIND - INFO - 2017-01-17 00:00:00 re-balance: 850 codes
2019-02-10 00:34:26,834 - ALPHA_MIND - INFO - 2017-02-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:26,954 - ALPHA_MIND - INFO - 2017-02-21 00:00:00 re-balance: 852 codes
2019-02-10 00:34:27,072 - ALPHA_MIND - INFO - 2017-03-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:27,193 - ALPHA_MIND - INFO - 2017-03-21 00:00:00 re-balance: 853 codes
2019-02-10 00:34:27,321 - ALPHA_MIND - INFO - 2017-04-06 00:00:00 re-balance: 853 codes
2019-02-10 00:34:27,463 - ALPHA_MIND - INFO - 2017-04-20 00:00:00 re-balance: 853 codes
2019-02-10 00:34:27,618 - ALPHA_MIND - INFO - 2017-05-05 00:00:00 re-balance: 854 codes
2019-02-10 00:34:27,747 - ALPHA_MIND - INFO - 2017-05-19 00:00:00 re-balance: 854 codes
2019-02-10 00:34:27,890 - ALPHA_MIND - INFO - 2017-06-06 00:00:00 re-balance: 854 codes
2019-02-10 00:34:28,007 - ALPHA_MIND - INFO - 2017-06-20 00:00:00 re-balance: 854 codes
2019-02-10 00:34:28,122 - ALPHA_MIND - INFO - 2017-07-04 00:00:00 re-balance: 855 codes
2019-02-10 00:34:28,277 - ALPHA_MIND - INFO - 2017-07-18 00:00:00 re-balance: 855 codes
2019-02-10 00:34:28,409 - ALPHA_MIND - INFO - 2017-08-01 00:00:00 re-balance: 853 codes
2019-02-10 00:34:28,551 - ALPHA_MIND - INFO - 2017-08-15 00:00:00 re-balance: 853 codes
2019-02-10 00:34:28,682 - ALPHA_MIND - INFO - 2017-08-29 00:00:00 re-balance: 853 codes
2019-02-10 00:34:28,822 - ALPHA_MIND - INFO - 2017-09-12 00:00:00 re-balance: 853 codes
2019-02-10 00:34:28,961 - ALPHA_MIND - INFO - 2017-09-26 00:00:00 re-balance: 853 codes
2019-02-10 00:34:29,090 - ALPHA_MIND - INFO - 2017-10-17 00:00:00 re-balance: 853 codes
2019-02-10 00:34:29,218 - ALPHA_MIND - INFO - 2017-10-31 00:00:00 re-balance: 854 codes
2019-02-10 00:34:29,356 - ALPHA_MIND - INFO - 2017-11-14 00:00:00 re-balance: 854 codes
2019-02-10 00:34:29,480 - ALPHA_MIND - INFO - 2017-11-28 00:00:00 re-balance: 854 codes
2019-02-10 00:34:29,609 - ALPHA_MIND - INFO - 2017-12-12 00:00:00 re-balance: 854 codes
2019-02-10 00:34:29,738 - ALPHA_MIND - INFO - 2017-12-26 00:00:00 re-balance: 854 codes
2019-02-10 00:34:29,846 - ALPHA_MIND - INFO - 2018-01-10 00:00:00 re-balance: 856 codes
2019-02-10 00:34:29,989 - ALPHA_MIND - INFO - 2018-01-24 00:00:00 re-balance: 856 codes
2019-02-10 00:34:30,106 - ALPHA_MIND - INFO - 2018-02-07 00:00:00 re-balance: 856 codes
2019-02-10 00:34:30,221 - ALPHA_MIND - INFO - 2018-02-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:30,337 - ALPHA_MIND - INFO - 2018-03-14 00:00:00 re-balance: 856 codes
2019-02-10 00:34:30,450 - ALPHA_MIND - INFO - 2018-03-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:30,599 - ALPHA_MIND - INFO - 2018-04-13 00:00:00 re-balance: 856 codes
2019-02-10 00:34:30,764 - ALPHA_MIND - INFO - 2018-04-27 00:00:00 re-balance: 859 codes
2019-02-10 00:34:30,913 - ALPHA_MIND - INFO - weight_gap: 0.02 finished
Wall time: 17.4 s

In [5]:
%%time
target_vols = [0.015, 0.030, 0.045, 0.060]

with pd.ExcelWriter(f'zz800_cyb_{benchmark_code}_tv.xlsx', engine='xlsxwriter') as writer:
    for i, target_vol in enumerate(target_vols):
        ret_df = create_scenario(0.01, target_vol=target_vol, method='tv')
        res_df = create_report(ret_df, 25)
        res_df.to_excel(writer, sheet_name=f'{i}')
        alpha_logger.info(f"target_vol: {target_vol:.4f} finished")


2019-02-10 00:34:31,018 - ALPHA_MIND - INFO - starting backting ...
2019-02-10 00:34:31,080 - ALPHA_MIND - INFO - 2017-01-03 00:00:00 re-balance: 851 codes
2019-02-10 00:34:31,267 - ALPHA_MIND - INFO - 2017-01-17 00:00:00 re-balance: 850 codes
2019-02-10 00:34:31,465 - ALPHA_MIND - INFO - 2017-02-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:31,653 - ALPHA_MIND - INFO - 2017-02-21 00:00:00 re-balance: 852 codes
2019-02-10 00:34:31,866 - ALPHA_MIND - INFO - 2017-03-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:32,081 - ALPHA_MIND - INFO - 2017-03-21 00:00:00 re-balance: 853 codes
2019-02-10 00:34:32,284 - ALPHA_MIND - INFO - 2017-04-06 00:00:00 re-balance: 853 codes
2019-02-10 00:34:32,462 - ALPHA_MIND - INFO - 2017-04-20 00:00:00 re-balance: 853 codes
2019-02-10 00:34:32,660 - ALPHA_MIND - INFO - 2017-05-05 00:00:00 re-balance: 854 codes
2019-02-10 00:34:32,861 - ALPHA_MIND - INFO - 2017-05-19 00:00:00 re-balance: 854 codes
2019-02-10 00:34:33,047 - ALPHA_MIND - INFO - 2017-06-06 00:00:00 re-balance: 854 codes
2019-02-10 00:34:33,251 - ALPHA_MIND - INFO - 2017-06-20 00:00:00 re-balance: 854 codes
2019-02-10 00:34:33,447 - ALPHA_MIND - INFO - 2017-07-04 00:00:00 re-balance: 855 codes
2019-02-10 00:34:33,651 - ALPHA_MIND - INFO - 2017-07-18 00:00:00 re-balance: 855 codes
2019-02-10 00:34:33,857 - ALPHA_MIND - INFO - 2017-08-01 00:00:00 re-balance: 853 codes
2019-02-10 00:34:34,082 - ALPHA_MIND - INFO - 2017-08-15 00:00:00 re-balance: 853 codes
2019-02-10 00:34:34,288 - ALPHA_MIND - INFO - 2017-08-29 00:00:00 re-balance: 853 codes
2019-02-10 00:34:34,492 - ALPHA_MIND - INFO - 2017-09-12 00:00:00 re-balance: 853 codes
2019-02-10 00:34:34,701 - ALPHA_MIND - INFO - 2017-09-26 00:00:00 re-balance: 853 codes
2019-02-10 00:34:34,903 - ALPHA_MIND - INFO - 2017-10-17 00:00:00 re-balance: 853 codes
2019-02-10 00:34:35,127 - ALPHA_MIND - INFO - 2017-10-31 00:00:00 re-balance: 854 codes
2019-02-10 00:34:35,347 - ALPHA_MIND - INFO - 2017-11-14 00:00:00 re-balance: 854 codes
2019-02-10 00:34:35,562 - ALPHA_MIND - INFO - 2017-11-28 00:00:00 re-balance: 854 codes
2019-02-10 00:34:35,784 - ALPHA_MIND - INFO - 2017-12-12 00:00:00 re-balance: 854 codes
2019-02-10 00:34:36,022 - ALPHA_MIND - INFO - 2017-12-26 00:00:00 re-balance: 854 codes
2019-02-10 00:34:36,231 - ALPHA_MIND - INFO - 2018-01-10 00:00:00 re-balance: 856 codes
2019-02-10 00:34:36,497 - ALPHA_MIND - INFO - 2018-01-24 00:00:00 re-balance: 856 codes
2019-02-10 00:34:36,700 - ALPHA_MIND - INFO - 2018-02-07 00:00:00 re-balance: 856 codes
2019-02-10 00:34:36,930 - ALPHA_MIND - INFO - 2018-02-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:37,144 - ALPHA_MIND - INFO - 2018-03-14 00:00:00 re-balance: 856 codes
2019-02-10 00:34:37,371 - ALPHA_MIND - INFO - 2018-03-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:37,585 - ALPHA_MIND - INFO - 2018-04-13 00:00:00 re-balance: 856 codes
2019-02-10 00:34:37,807 - ALPHA_MIND - INFO - 2018-04-27 00:00:00 re-balance: 859 codes
2019-02-10 00:34:38,052 - ALPHA_MIND - INFO - target_vol: 0.0150 finished
2019-02-10 00:34:38,054 - ALPHA_MIND - INFO - starting backting ...
2019-02-10 00:34:38,116 - ALPHA_MIND - INFO - 2017-01-03 00:00:00 re-balance: 851 codes
2019-02-10 00:34:38,224 - ALPHA_MIND - INFO - 2017-01-17 00:00:00 re-balance: 850 codes
2019-02-10 00:34:38,338 - ALPHA_MIND - INFO - 2017-02-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:38,466 - ALPHA_MIND - INFO - 2017-02-21 00:00:00 re-balance: 852 codes
2019-02-10 00:34:38,582 - ALPHA_MIND - INFO - 2017-03-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:38,699 - ALPHA_MIND - INFO - 2017-03-21 00:00:00 re-balance: 853 codes
2019-02-10 00:34:38,801 - ALPHA_MIND - INFO - 2017-04-06 00:00:00 re-balance: 853 codes
2019-02-10 00:34:38,910 - ALPHA_MIND - INFO - 2017-04-20 00:00:00 re-balance: 853 codes
2019-02-10 00:34:39,020 - ALPHA_MIND - INFO - 2017-05-05 00:00:00 re-balance: 854 codes
2019-02-10 00:34:39,151 - ALPHA_MIND - INFO - 2017-05-19 00:00:00 re-balance: 854 codes
2019-02-10 00:34:39,280 - ALPHA_MIND - INFO - 2017-06-06 00:00:00 re-balance: 854 codes
2019-02-10 00:34:39,416 - ALPHA_MIND - INFO - 2017-06-20 00:00:00 re-balance: 854 codes
2019-02-10 00:34:39,551 - ALPHA_MIND - INFO - 2017-07-04 00:00:00 re-balance: 855 codes
2019-02-10 00:34:39,688 - ALPHA_MIND - INFO - 2017-07-18 00:00:00 re-balance: 855 codes
2019-02-10 00:34:39,839 - ALPHA_MIND - INFO - 2017-08-01 00:00:00 re-balance: 853 codes
2019-02-10 00:34:39,998 - ALPHA_MIND - INFO - 2017-08-15 00:00:00 re-balance: 853 codes
2019-02-10 00:34:40,147 - ALPHA_MIND - INFO - 2017-08-29 00:00:00 re-balance: 853 codes
2019-02-10 00:34:40,285 - ALPHA_MIND - INFO - 2017-09-12 00:00:00 re-balance: 853 codes
2019-02-10 00:34:40,428 - ALPHA_MIND - INFO - 2017-09-26 00:00:00 re-balance: 853 codes
2019-02-10 00:34:40,575 - ALPHA_MIND - INFO - 2017-10-17 00:00:00 re-balance: 853 codes
2019-02-10 00:34:40,728 - ALPHA_MIND - INFO - 2017-10-31 00:00:00 re-balance: 854 codes
2019-02-10 00:34:40,895 - ALPHA_MIND - INFO - 2017-11-14 00:00:00 re-balance: 854 codes
2019-02-10 00:34:41,047 - ALPHA_MIND - INFO - 2017-11-28 00:00:00 re-balance: 854 codes
2019-02-10 00:34:41,197 - ALPHA_MIND - INFO - 2017-12-12 00:00:00 re-balance: 854 codes
2019-02-10 00:34:41,353 - ALPHA_MIND - INFO - 2017-12-26 00:00:00 re-balance: 854 codes
2019-02-10 00:34:41,501 - ALPHA_MIND - INFO - 2018-01-10 00:00:00 re-balance: 856 codes
2019-02-10 00:34:41,681 - ALPHA_MIND - INFO - 2018-01-24 00:00:00 re-balance: 856 codes
2019-02-10 00:34:41,827 - ALPHA_MIND - INFO - 2018-02-07 00:00:00 re-balance: 856 codes
2019-02-10 00:34:41,984 - ALPHA_MIND - INFO - 2018-02-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:42,141 - ALPHA_MIND - INFO - 2018-03-14 00:00:00 re-balance: 856 codes
2019-02-10 00:34:42,298 - ALPHA_MIND - INFO - 2018-03-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:42,462 - ALPHA_MIND - INFO - 2018-04-13 00:00:00 re-balance: 856 codes
2019-02-10 00:34:42,621 - ALPHA_MIND - INFO - 2018-04-27 00:00:00 re-balance: 859 codes
2019-02-10 00:34:42,813 - ALPHA_MIND - INFO - target_vol: 0.0300 finished
2019-02-10 00:34:42,815 - ALPHA_MIND - INFO - starting backting ...
2019-02-10 00:34:42,875 - ALPHA_MIND - INFO - 2017-01-03 00:00:00 re-balance: 851 codes
2019-02-10 00:34:42,981 - ALPHA_MIND - INFO - 2017-01-17 00:00:00 re-balance: 850 codes
2019-02-10 00:34:43,097 - ALPHA_MIND - INFO - 2017-02-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:43,220 - ALPHA_MIND - INFO - 2017-02-21 00:00:00 re-balance: 852 codes
2019-02-10 00:34:43,338 - ALPHA_MIND - INFO - 2017-03-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:43,450 - ALPHA_MIND - INFO - 2017-03-21 00:00:00 re-balance: 853 codes
2019-02-10 00:34:43,554 - ALPHA_MIND - INFO - 2017-04-06 00:00:00 re-balance: 853 codes
2019-02-10 00:34:43,662 - ALPHA_MIND - INFO - 2017-04-20 00:00:00 re-balance: 853 codes
2019-02-10 00:34:43,768 - ALPHA_MIND - INFO - 2017-05-05 00:00:00 re-balance: 854 codes
2019-02-10 00:34:43,880 - ALPHA_MIND - INFO - 2017-05-19 00:00:00 re-balance: 854 codes
2019-02-10 00:34:43,985 - ALPHA_MIND - INFO - 2017-06-06 00:00:00 re-balance: 854 codes
2019-02-10 00:34:44,093 - ALPHA_MIND - INFO - 2017-06-20 00:00:00 re-balance: 854 codes
2019-02-10 00:34:44,200 - ALPHA_MIND - INFO - 2017-07-04 00:00:00 re-balance: 855 codes
2019-02-10 00:34:44,315 - ALPHA_MIND - INFO - 2017-07-18 00:00:00 re-balance: 855 codes
2019-02-10 00:34:44,426 - ALPHA_MIND - INFO - 2017-08-01 00:00:00 re-balance: 853 codes
2019-02-10 00:34:44,540 - ALPHA_MIND - INFO - 2017-08-15 00:00:00 re-balance: 853 codes
2019-02-10 00:34:44,649 - ALPHA_MIND - INFO - 2017-08-29 00:00:00 re-balance: 853 codes
2019-02-10 00:34:44,757 - ALPHA_MIND - INFO - 2017-09-12 00:00:00 re-balance: 853 codes
2019-02-10 00:34:44,868 - ALPHA_MIND - INFO - 2017-09-26 00:00:00 re-balance: 853 codes
2019-02-10 00:34:44,975 - ALPHA_MIND - INFO - 2017-10-17 00:00:00 re-balance: 853 codes
2019-02-10 00:34:45,083 - ALPHA_MIND - INFO - 2017-10-31 00:00:00 re-balance: 854 codes
2019-02-10 00:34:45,193 - ALPHA_MIND - INFO - 2017-11-14 00:00:00 re-balance: 854 codes
2019-02-10 00:34:45,297 - ALPHA_MIND - INFO - 2017-11-28 00:00:00 re-balance: 854 codes
2019-02-10 00:34:45,408 - ALPHA_MIND - INFO - 2017-12-12 00:00:00 re-balance: 854 codes
2019-02-10 00:34:45,521 - ALPHA_MIND - INFO - 2017-12-26 00:00:00 re-balance: 854 codes
2019-02-10 00:34:45,648 - ALPHA_MIND - INFO - 2018-01-10 00:00:00 re-balance: 856 codes
2019-02-10 00:34:45,800 - ALPHA_MIND - INFO - 2018-01-24 00:00:00 re-balance: 856 codes
2019-02-10 00:34:45,922 - ALPHA_MIND - INFO - 2018-02-07 00:00:00 re-balance: 856 codes
2019-02-10 00:34:46,036 - ALPHA_MIND - INFO - 2018-02-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:46,150 - ALPHA_MIND - INFO - 2018-03-14 00:00:00 re-balance: 856 codes
2019-02-10 00:34:46,257 - ALPHA_MIND - INFO - 2018-03-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:46,370 - ALPHA_MIND - INFO - 2018-04-13 00:00:00 re-balance: 856 codes
2019-02-10 00:34:46,483 - ALPHA_MIND - INFO - 2018-04-27 00:00:00 re-balance: 859 codes
2019-02-10 00:34:46,623 - ALPHA_MIND - INFO - target_vol: 0.0450 finished
2019-02-10 00:34:46,624 - ALPHA_MIND - INFO - starting backting ...
2019-02-10 00:34:46,685 - ALPHA_MIND - INFO - 2017-01-03 00:00:00 re-balance: 851 codes
2019-02-10 00:34:46,792 - ALPHA_MIND - INFO - 2017-01-17 00:00:00 re-balance: 850 codes
2019-02-10 00:34:46,910 - ALPHA_MIND - INFO - 2017-02-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:47,029 - ALPHA_MIND - INFO - 2017-02-21 00:00:00 re-balance: 852 codes
2019-02-10 00:34:47,144 - ALPHA_MIND - INFO - 2017-03-07 00:00:00 re-balance: 853 codes
2019-02-10 00:34:47,257 - ALPHA_MIND - INFO - 2017-03-21 00:00:00 re-balance: 853 codes
2019-02-10 00:34:47,359 - ALPHA_MIND - INFO - 2017-04-06 00:00:00 re-balance: 853 codes
2019-02-10 00:34:47,467 - ALPHA_MIND - INFO - 2017-04-20 00:00:00 re-balance: 853 codes
2019-02-10 00:34:47,574 - ALPHA_MIND - INFO - 2017-05-05 00:00:00 re-balance: 854 codes
2019-02-10 00:34:47,684 - ALPHA_MIND - INFO - 2017-05-19 00:00:00 re-balance: 854 codes
2019-02-10 00:34:47,790 - ALPHA_MIND - INFO - 2017-06-06 00:00:00 re-balance: 854 codes
2019-02-10 00:34:47,898 - ALPHA_MIND - INFO - 2017-06-20 00:00:00 re-balance: 854 codes
2019-02-10 00:34:48,003 - ALPHA_MIND - INFO - 2017-07-04 00:00:00 re-balance: 855 codes
2019-02-10 00:34:48,114 - ALPHA_MIND - INFO - 2017-07-18 00:00:00 re-balance: 855 codes
2019-02-10 00:34:48,223 - ALPHA_MIND - INFO - 2017-08-01 00:00:00 re-balance: 853 codes
2019-02-10 00:34:48,336 - ALPHA_MIND - INFO - 2017-08-15 00:00:00 re-balance: 853 codes
2019-02-10 00:34:48,439 - ALPHA_MIND - INFO - 2017-08-29 00:00:00 re-balance: 853 codes
2019-02-10 00:34:48,543 - ALPHA_MIND - INFO - 2017-09-12 00:00:00 re-balance: 853 codes
2019-02-10 00:34:48,646 - ALPHA_MIND - INFO - 2017-09-26 00:00:00 re-balance: 853 codes
2019-02-10 00:34:48,750 - ALPHA_MIND - INFO - 2017-10-17 00:00:00 re-balance: 853 codes
2019-02-10 00:34:48,856 - ALPHA_MIND - INFO - 2017-10-31 00:00:00 re-balance: 854 codes
2019-02-10 00:34:48,963 - ALPHA_MIND - INFO - 2017-11-14 00:00:00 re-balance: 854 codes
2019-02-10 00:34:49,065 - ALPHA_MIND - INFO - 2017-11-28 00:00:00 re-balance: 854 codes
2019-02-10 00:34:49,171 - ALPHA_MIND - INFO - 2017-12-12 00:00:00 re-balance: 854 codes
2019-02-10 00:34:49,283 - ALPHA_MIND - INFO - 2017-12-26 00:00:00 re-balance: 854 codes
2019-02-10 00:34:49,389 - ALPHA_MIND - INFO - 2018-01-10 00:00:00 re-balance: 856 codes
2019-02-10 00:34:49,497 - ALPHA_MIND - INFO - 2018-01-24 00:00:00 re-balance: 856 codes
2019-02-10 00:34:49,603 - ALPHA_MIND - INFO - 2018-02-07 00:00:00 re-balance: 856 codes
2019-02-10 00:34:49,708 - ALPHA_MIND - INFO - 2018-02-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:49,814 - ALPHA_MIND - INFO - 2018-03-14 00:00:00 re-balance: 856 codes
2019-02-10 00:34:49,917 - ALPHA_MIND - INFO - 2018-03-28 00:00:00 re-balance: 856 codes
2019-02-10 00:34:50,022 - ALPHA_MIND - INFO - 2018-04-13 00:00:00 re-balance: 856 codes
2019-02-10 00:34:50,131 - ALPHA_MIND - INFO - 2018-04-27 00:00:00 re-balance: 859 codes
2019-02-10 00:34:50,269 - ALPHA_MIND - INFO - target_vol: 0.0600 finished
Wall time: 19.3 s

In [ ]: