In [61]:
#!/Tsan/bin/python
# -*- coding: utf-8 -*-

In [62]:
#"""此note book为期货回测框架的示例"""

In [63]:
# Libraries to use
from __future__ import division 
import numpy as np
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
import seaborn as sns
from datetime import datetime
import scipy as sp
from sklearn.covariance import ShrunkCovariance

In [64]:
# Import My own library for factor testing
from SingleFactorTest import factorFilterFunctions as ff
from BackTestingEngine import futureBackTestingEngine as fte
#from config import *

In [65]:
%load_ext line_profiler
%matplotlib inline


The line_profiler extension is already loaded. To reload it, use:
  %reload_ext line_profiler

In [66]:
def calShrunkCov(weekly_return):
    '''calculate Shrunk Covariance. ie. a 10 asset return array should return 10 * 10 dimension array
    Input: N * K np.array .
    Output: N * N array'''
    return ShrunkCovariance(0.1).fit(weekly_return.dropna().values).covariance_

def calEWMCovMatrix(facRetdf,decay=0.94):
    '''
    To calculate EWM covariance matrix of given facRetdf
    output: Dataframe, the ewm cov-matrix of the factors
    input:
    facRetdf: Dataframe, factor return dataframe
    decay: float, decay-factors
    Decay factors were set at:
    − 0.94 (1-day) from 112 days of data;
    − 0.97 (1-month) from 227 days of data.
    '''
    m,n = facRetdf.shape
    facDF = facRetdf - facRetdf.mean()
    for i in xrange(m):
        facDF.iloc[i] = np.sqrt(decay**(m-1-i)) * facDF.iloc[i]
    ewmCovMatrix = facDF.T.dot(facDF) * (1-decay)/(1-decay**m)
    return ewmCovMatrix

In [67]:
# 风险评价目标函数
def object_fun(x,return_cov):
    '''objective function for Risk budget portfolio
    Input: x ,n-d array ,the weight vector
           return_cov, the covariance of the asset return
    Output: ovjective function'''
    N = x.shape[0]   # get the number of asset
    covMatrix = np.matrix(return_cov)
    x = np.matrix(x)
    y = np.array(x) * (np.array(covMatrix * x.T).T)
    totalRisk = x * covMatrix * x.T
    b = totalRisk / N
    y = np.squeeze(np.asarray(y))  # return 1 dimension array in order to perform indexing
    totalY = y.sum()
    fval = 0
    for i in range(0,N):
        xi = (y[i]/totalY - b ) ** 2
        fval =fval +xi
    return fval

# 风险平价权重计算,输出为权重
def cal_RB_weight(cov):
    '''
    To calculate weight of portfolio with risk parity(the special case for risk budget portfolio)
    Input: Cov: n-d array, obtained from df.values
    Output: 1-d array, the weight vector
    '''

    bnds = ((0, 1),) * cov.shape[0]  # bounds for weights (number of bounds  = to number of assets)
    cons = ({'type': 'eq', 'fun': lambda x: np.sum(x) - 1.0})
    x0 = np.ones(cov.shape[0]) * 1 / cov.shape[0]
    res = sp.optimize.minimize(object_fun, x0, args=cov, method='SLSQP', constraints=cons, bounds=bnds)
    if res.success:
        allocation = res.x
        allocation[allocation < 0] = 0  # since fund can not be shorted!
        denom = np.sum(allocation)
        if denom != 0:  # normalization process
            allocation = allocation / denom
    else:
        allocation = x0
    return allocation

In [68]:
path = 'C:/Users/kamis/Desktop/RB_Data/'

In [69]:
startTime =  datetime.strptime('20150501', '%Y%m%d')
endTime = datetime.strptime('20180119', '%Y%m%d')
initstartTime =  datetime.strptime('20150201', '%Y%m%d')
initendTime = datetime.strptime('20180119', '%Y%m%d')

In [70]:
##
filenameOpen = 'indexDataOpen.csv'
filenameClose = 'indexDataClose.csv'
filenameVolume = 'indexDataVolume.csv'

In [71]:
Open = pd.read_csv(path+filenameOpen,infer_datetime_format=True,parse_dates=[0],index_col=0).fillna(method="ffill")
Close = pd.read_csv(path+filenameClose,infer_datetime_format=True,parse_dates=[0],index_col=0).fillna(method="ffill")
Volume = pd.read_csv(path+filenameVolume,infer_datetime_format=True,parse_dates=[0],index_col=0).fillna(method="ffill")

In [72]:
# 初始化
test = fte.FutureBacktesting(path)

In [73]:
test.setInitCap(5000000)
test.availableCashNow


Out[73]:
5000000

In [ ]:


In [ ]:


In [74]:
# 添加数据
test.addData('adjOpen',Open)
test.addData('adjClose',Close)
test.addData('volume',Volume)

In [75]:
# 截取回测区间和初始化区间
test.setBackTestingPeriod(startTime,endTime)
test.setInitialPeriod(initstartTime,initendTime)

In [76]:
# 各品种价格最小变动单位
tickSize = {'ALFI': 5.0,'HCFI': 1.0,'IFI': 0.5, 'JFI': 0.5,'JMFI': 0.5,'LFI': 5.0,'MAFI': 1.0,'MFI': 1.0,
 'PFI': 2.0, 'PPFI': 1.0, 'RBFI': 1.0, 'RMFI': 1.0, 'YFI': 2.0, 'ZCFI': 0.2}

In [77]:
# 各品种合约乘数
multiplier = {'ALFI': 5.0,'HCFI': 10.0,'IFI': 100.0,'JFI': 100.0,'JMFI': 60.0, 'LFI': 5.0,'MAFI': 10.0,'MFI': 10.0,
 'PFI': 10.0, 'PPFI': 5.0, 'RBFI': 10.0, 'RMFI': 10.0, 'YFI': 10.0, 'ZCFI': 100.0}

In [78]:
tradeSize = pd.Series(tickSize) * pd.Series(multiplier) * Open
tradeSize = (tradeSize.loc[test.backTestingDateList[0]].max() / tradeSize.loc[test.backTestingDateList[0]]).round(0)
tradeSize = tradeSize.to_dict()
tradeSize


Out[78]:
{'ALFI': 1.0,
 'HCFI': 14.0,
 'IFI': 16.0,
 'JFI': 7.0,
 'JMFI': 17.0,
 'LFI': 1.0,
 'MAFI': 13.0,
 'MFI': 12.0,
 'PFI': 3.0,
 'PPFI': 7.0,
 'RBFI': 14.0,
 'RMFI': 15.0,
 'YFI': 3.0,
 'ZCFI': 40.0}

In [ ]:


In [79]:
#(pd.Series(tickSize) * pd.Series(multiplier) * Open * pd.Series(tradeSize)).loc[test.backTestingDateList]

In [80]:
#tradeSize = np.floor(Open.loc[test.backTestingDateList[0]].loc['ALFI'] / Open.loc[test.backTestingDateList[0]])
#tradeSize = tradeSize.to_dict()

In [81]:
#tradeSize

In [ ]:


In [82]:
# 各品种保证金字典及合约乘数字典
#tickSize = {code: 1. for code in tradeSize.keys()}
marginRatio = {code: 0.15 for code in tradeSize.keys()}
#multiplier = {code: 10. for code in tradeSize.keys()}
test.setMarginRatio(marginRatio)
test.setTickSize(tickSize)
test.setMultiplier(multiplier)

In [83]:
test.tickSize


Out[83]:
{'ALFI': 5.0,
 'HCFI': 1.0,
 'IFI': 0.5,
 'JFI': 0.5,
 'JMFI': 0.5,
 'LFI': 5.0,
 'MAFI': 1.0,
 'MFI': 1.0,
 'PFI': 2.0,
 'PPFI': 1.0,
 'RBFI': 1.0,
 'RMFI': 1.0,
 'YFI': 2.0,
 'ZCFI': 0.2}

In [84]:
test.multiplier


Out[84]:
{'ALFI': 5.0,
 'HCFI': 10.0,
 'IFI': 100.0,
 'JFI': 100.0,
 'JMFI': 60.0,
 'LFI': 5.0,
 'MAFI': 10.0,
 'MFI': 10.0,
 'PFI': 10.0,
 'PPFI': 5.0,
 'RBFI': 10.0,
 'RMFI': 10.0,
 'YFI': 10.0,
 'ZCFI': 100.0}

In [85]:
# 双均线筛选买卖股
#动量因子筛选
X = 20
holdingNum = 4
Close = Close.dropna()
retXday = ((Close - Close.shift(X)) / Close.shift(X)).dropna(axis=0)

In [86]:
dailyRet = Close.pct_change()
dailyRet.tail()


Out[86]:
RBFI ALFI JFI JMFI ZCFI HCFI MFI RMFI YFI MAFI PPFI PFI LFI IFI
2018-01-24 0.006698 -0.000453 0.003741 0.003453 0.011686 0.009211 -0.009038 -0.009238 0.003501 -0.009278 -0.004220 0.005450 -0.007573 0.001292
2018-01-25 0.007282 0.010053 0.031468 0.023155 0.005771 0.008373 0.008057 0.013095 -0.000335 0.009321 0.004836 -0.000669 0.005337 0.015201
2018-01-26 -0.005248 -0.010702 -0.011045 -0.013660 0.006260 -0.002880 -0.003586 -0.006601 0.003332 -0.004874 0.006123 0.001356 0.007075 -0.019991
2018-01-29 0.000104 0.003776 -0.003939 -0.010831 0.006972 0.000465 0.013153 0.017513 0.003261 0.006787 -0.003306 0.005476 -0.004721 -0.008398
2018-01-30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

In [ ]:


In [87]:
benchmarkData = test.dataDict['adjOpen'].loc[initstartTime:initendTime]
endOfWeekList = sorted(list(set(benchmarkData.iloc[benchmarkData.resample('W').size().cumsum().sub(1)].index)))
#tradeDate = sorted(list(set(retXday.iloc[retXday.resample('W').size().cumsum()].index)))
lsCombo = {}
weightList = []
for date in endOfWeekList:
    oneDayDict = {}
    sortedValue = retXday.loc[date].sort_values(ascending = False)
    longList = sortedValue.index[:holdingNum].tolist()
    shortList = sortedValue.index[-holdingNum:].tolist()
    oneDayDict['long'] = longList
    oneDayDict['short'] = shortList
    lsCombo[date] = oneDayDict
    # 利用risk budget计算权重多空权重
    #try:
     #   covariance = dailyRet[longList + shortList].loc[:date].iloc[-60:].dropna()
    #except:
     #   covariance = dailyRet[longList +shortList].loc[:date].dropna()
    #covariance = calEWMCovMatrix(covariance)
    #weightList.append(cal_RB_weight(covariance))
#weightdf=pd.DataFrame(index=endOfWeekList,data=weightList,columns = range(2*holdingNum))
#weightdf.iloc[:,-holdingNum:] = weightdf.iloc[:,-holdingNum:] * -1.

In [88]:
retXday['MakeOrderDay'] = retXday.index
orderDatePair = retXday.shift(-1)['MakeOrderDay'].loc[endOfWeekList]

In [ ]:


In [89]:
orderDatePair.tail()


Out[89]:
2017-12-22   2017-12-25
2017-12-29   2018-01-02
2018-01-05   2018-01-08
2018-01-12   2018-01-15
2018-01-19   2018-01-22
Name: MakeOrderDay, dtype: datetime64[ns]

In [90]:
# 按天循环
i = 0
for date in  test.backTestingDateList:
    #print date, 'Current position Num',len(test.getCurrentPosition())
    try:
        test.crossAllOrder(date)
    except KeyError:
        #print "No available order on %s"%date
        pass
    test.updateHoldingInfo(date)
    print i,date, test.getCurrentPosition().__len__()
    #i+=1
    #if i == 9:
     #   print 'longList',[key for  key,item in test.getCurrentPosition().iteritems() if item.direction ==1]
      #  print 'shortList',[key for  key,item in test.getCurrentPosition().iteritems() if item.direction == -1]
    if date in endOfWeekList[:-1]:
        #print date
        longList = lsCombo[date]['long']
        shortList = lsCombo[date]['short']
        orderDate = orderDatePair.loc[date]
        coverOrders = []
        # 区分有无持仓时,只有有持仓时才会先平仓再开仓   
        if test.getCurrentPosition():
            
            holdingLong = []
            holdingShort = []
            for code,item in test.getCurrentPosition().iteritems():
                if item.direction == 1:
                    holdingLong.append(code)
                else:
                    holdingShort.append(code)
            coverLongList = list(set(holdingLong) - set(longList) )
            coverShortList = list(set(holdingShort) - set(shortList) )
            longOpenList = list(set(longList) - set(holdingLong))
            shortOpenList =  list(set(shortList) - set(holdingShort))
            print orderDate,u"买开:",longOpenList
            print u"卖开:",shortOpenList
            print u"买平",coverLongList
            print u"卖平",coverShortList
            coverOrders = [test.makeOrder(orderDate ,stkID,test.getCurrentPosition()[stkID].volume,20,-test.getCurrentPosition()[stkID].direction,
                                         fte.Cover) \
                           for stkID in coverLongList + coverShortList]
            longOpenOrders =  [test.makeOrder(orderDate ,stkID,tradeSize[stkID],20,1,fte.Open) \
                           for stkID in longOpenList]
            shortOpenOrders = [test.makeOrder(orderDate ,stkID,tradeSize[stkID],20,-1,fte.Open) \
                           for stkID in shortOpenList]
            """
            #coverList = list(set(holdingLong) - longList) + list(set(holdingShort) - shortList)
            coverList = test.getCurrentPosition().keys()
            #print date, 'Current position Num',len(test.getCurrentPosition())
            #longList = list(set(longList) - set(test.getCurrentPosition().keys()))
            #shortList = list(set(shortList) - set(test.getCurrentPosition().keys()))
            #print date,"平仓:",coverList,'\n',"开多仓",longList,'\n',"开空仓",shortList,'\n'
            coverOrders = [test.makeOrder(orderDate ,stkID,test.getCurrentPosition()[stkID].volume,20,-test.getCurrentPosition()[stkID].direction,
                                         fte.Cover) \
                           for stkID in coverList]
            
            #totalOrders = sellOrders + buyOrders
        longOrders =  [test.makeOrder(orderDate ,stkID,tradeSize.loc[stkID],20,1,fte.Open) \
                           for stkID in longList]
        shortOrders = [test.makeOrder(orderDate ,stkID,tradeSize.loc[stkID],20,-1,fte.Open) \
                           for stkID in shortList]
            """
        else:
            coverOrders = []
            longOpenOrders  = [test.makeOrder(orderDate ,stkID,tradeSize[stkID],20,1,fte.Open) \
                       for stkID in longList]
            shortOpenOrders = [test.makeOrder(orderDate ,stkID,tradeSize[stkID],20,-1,fte.Open) \
                       for stkID in shortList]
        test.allOrdersDict[orderDate] = coverOrders + longOpenOrders  + shortOpenOrders  # 保存order到字典里


0 2015-05-04 00:00:00 0
0 2015-05-05 00:00:00 0
0 2015-05-06 00:00:00 0
0 2015-05-07 00:00:00 0
0 2015-05-08 00:00:00 0
0 2015-05-11 00:00:00 8
0 2015-05-14 00:00:00 8
0 2015-05-15 00:00:00 8
2015-05-18 00:00:00 买开: ['ZCFI']
卖开: ['JMFI', 'MAFI']
买平 ['HCFI']
卖平 ['LFI', 'ALFI']
0 2015-05-18 00:00:00 8
0 2015-05-19 00:00:00 8
0 2015-05-20 00:00:00 8
0 2015-05-21 00:00:00 8
0 2015-05-22 00:00:00 8
2015-05-25 00:00:00 买开: ['JMFI']
卖开: ['RMFI', 'LFI']
买平 ['YFI']
卖平 ['JMFI', 'MAFI']
0 2015-05-25 00:00:00 8
0 2015-05-26 00:00:00 8
0 2015-05-27 00:00:00 8
0 2015-05-28 00:00:00 8
0 2015-05-29 00:00:00 8
2015-06-01 00:00:00 买开: []
卖开: []
买平 []
卖平 []
0 2015-06-01 00:00:00 8
0 2015-06-02 00:00:00 8
0 2015-06-03 00:00:00 8
0 2015-06-04 00:00:00 8
0 2015-06-05 00:00:00 8
2015-06-08 00:00:00 买开: ['YFI']
卖开: ['ALFI']
买平 ['JMFI']
卖平 ['PPFI']
0 2015-06-08 00:00:00 8
0 2015-06-09 00:00:00 8
0 2015-06-10 00:00:00 8
0 2015-06-11 00:00:00 8
0 2015-06-12 00:00:00 8
2015-06-15 00:00:00 买开: ['JMFI', 'LFI', 'PPFI']
卖开: ['RBFI']
买平 ['PFI', 'YFI', 'ZCFI']
卖平 ['LFI']
0 2015-06-15 00:00:00 8
0 2015-06-16 00:00:00 8
0 2015-06-17 00:00:00 8
0 2015-06-18 00:00:00 8
0 2015-06-19 00:00:00 8
2015-06-23 00:00:00 买开: ['PFI', 'MAFI']
卖开: ['HCFI', 'ZCFI']
买平 ['JMFI', 'LFI']
卖平 ['RMFI', 'MFI']
0 2015-06-23 00:00:00 8
0 2015-06-24 00:00:00 8
0 2015-06-25 00:00:00 8
0 2015-06-26 00:00:00 8
2015-06-29 00:00:00 买开: ['MFI', 'LFI']
卖开: ['JFI']
买平 ['PFI', 'IFI']
卖平 ['ALFI']
0 2015-06-29 00:00:00 8
0 2015-06-30 00:00:00 8
0 2015-07-01 00:00:00 8
0 2015-07-02 00:00:00 8
0 2015-07-03 00:00:00 8
2015-07-06 00:00:00 买开: ['RMFI']
卖开: ['IFI']
买平 ['MAFI']
卖平 ['JFI']
0 2015-07-06 00:00:00 8
0 2015-07-07 00:00:00 8
0 2015-07-08 00:00:00 8
0 2015-07-09 00:00:00 8
0 2015-07-10 00:00:00 8
2015-07-13 00:00:00 买开: ['MAFI']
卖开: ['JFI']
买平 ['PPFI']
卖平 ['ZCFI']
0 2015-07-13 00:00:00 8
0 2015-07-14 00:00:00 8
0 2015-07-15 00:00:00 8
0 2015-07-16 00:00:00 8
0 2015-07-17 00:00:00 8
2015-07-20 00:00:00 买开: ['ALFI']
卖开: []
买平 ['MAFI']
卖平 []
0 2015-07-20 00:00:00 8
0 2015-07-21 00:00:00 8
0 2015-07-22 00:00:00 8
0 2015-07-23 00:00:00 8
0 2015-07-24 00:00:00 8
2015-07-27 00:00:00 买开: ['YFI']
卖开: ['JMFI', 'MAFI']
买平 ['LFI']
卖平 ['JFI', 'RBFI']
0 2015-07-27 00:00:00 8
0 2015-07-28 00:00:00 8
0 2015-07-29 00:00:00 8
0 2015-07-30 00:00:00 8
0 2015-07-31 00:00:00 8
2015-08-03 00:00:00 买开: ['RBFI']
卖开: ['LFI', 'PPFI']
买平 ['YFI']
卖平 ['HCFI', 'IFI']
0 2015-08-03 00:00:00 8
0 2015-08-04 00:00:00 8
0 2015-08-05 00:00:00 8
0 2015-08-06 00:00:00 8
0 2015-08-07 00:00:00 8
2015-08-10 00:00:00 买开: ['HCFI', 'JFI', 'IFI']
卖开: ['RMFI', 'PFI']
买平 ['RMFI', 'MFI', 'ALFI']
卖平 ['JMFI', 'PPFI']
0 2015-08-10 00:00:00 8
0 2015-08-11 00:00:00 8
0 2015-08-12 00:00:00 8
0 2015-08-13 00:00:00 8
0 2015-08-14 00:00:00 8
2015-08-17 00:00:00 买开: []
卖开: ['ALFI']
买平 []
卖平 ['LFI']
0 2015-08-17 00:00:00 8
0 2015-08-18 00:00:00 8
0 2015-08-19 00:00:00 8
0 2015-08-20 00:00:00 8
0 2015-08-21 00:00:00 8
2015-08-24 00:00:00 买开: ['YFI']
卖开: ['LFI']
买平 ['HCFI']
卖平 ['ALFI']
0 2015-08-24 00:00:00 8
0 2015-08-25 00:00:00 8
0 2015-08-26 00:00:00 8
0 2015-08-27 00:00:00 8
0 2015-08-28 00:00:00 8
2015-08-31 00:00:00 买开: ['MFI', 'LFI']
卖开: ['JMFI', 'RBFI']
买平 ['JFI', 'RBFI']
卖平 ['RMFI', 'LFI']
0 2015-08-31 00:00:00 8
0 2015-09-01 00:00:00 8
0 2015-09-02 00:00:00 8
2015-09-07 00:00:00 买开: ['PPFI']
卖开: ['HCFI']
买平 ['YFI']
卖平 ['JMFI']
0 2015-09-07 00:00:00 8
0 2015-09-08 00:00:00 8
0 2015-09-09 00:00:00 8
0 2015-09-10 00:00:00 8
0 2015-09-11 00:00:00 8
2015-09-14 00:00:00 买开: ['ALFI', 'ZCFI']
卖开: ['RMFI']
买平 ['MFI', 'PPFI']
卖平 ['HCFI']
0 2015-09-14 00:00:00 8
0 2015-09-15 00:00:00 8
0 2015-09-16 00:00:00 8
0 2015-09-17 00:00:00 8
0 2015-09-18 00:00:00 8
2015-09-21 00:00:00 买开: ['MFI']
卖开: ['PPFI']
买平 ['LFI']
卖平 ['RMFI']
0 2015-09-21 00:00:00 8
0 2015-09-22 00:00:00 8
0 2015-09-23 00:00:00 8
0 2015-09-24 00:00:00 8
0 2015-09-25 00:00:00 8
2015-09-28 00:00:00 买开: ['PFI', 'MAFI', 'JMFI']
卖开: ['HCFI', 'JFI']
买平 ['MFI', 'ALFI', 'ZCFI']
卖平 ['PFI', 'MAFI']
0 2015-09-28 00:00:00 8
0 2015-09-29 00:00:00 8
0 2015-09-30 00:00:00 8
2015-10-08 00:00:00 买开: ['YFI']
卖开: ['IFI']
买平 ['IFI']
卖平 ['JFI']
0 2015-10-08 00:00:00 8
0 2015-10-09 00:00:00 8
2015-10-12 00:00:00 买开: []
卖开: ['RMFI', 'JFI']
买平 []
卖平 ['IFI', 'PPFI']
0 2015-10-12 00:00:00 8
0 2015-10-13 00:00:00 8
0 2015-10-14 00:00:00 8
0 2015-10-15 00:00:00 8
0 2015-10-16 00:00:00 8
2015-10-19 00:00:00 买开: ['MFI']
卖开: ['ALFI', 'IFI', 'ZCFI']
买平 ['JMFI']
卖平 ['HCFI', 'RMFI', 'RBFI']
0 2015-10-19 00:00:00 8
0 2015-10-20 00:00:00 8
0 2015-10-21 00:00:00 8
0 2015-10-22 00:00:00 8
0 2015-10-23 00:00:00 8
2015-10-26 00:00:00 买开: ['LFI']
卖开: ['RBFI']
买平 ['MFI']
卖平 ['JFI']
0 2015-10-26 00:00:00 8
0 2015-10-27 00:00:00 8
0 2015-10-28 00:00:00 8
0 2015-10-29 00:00:00 8
0 2015-10-30 00:00:00 8
2015-11-02 00:00:00 买开: ['RMFI']
卖开: ['JFI']
买平 ['MAFI']
卖平 ['RBFI']
0 2015-11-02 00:00:00 8
0 2015-11-03 00:00:00 8
0 2015-11-04 00:00:00 8
0 2015-11-05 00:00:00 8
0 2015-11-06 00:00:00 8
2015-11-09 00:00:00 买开: ['JMFI', 'RBFI']
卖开: ['PPFI']
买平 ['PFI', 'LFI']
卖平 ['JFI']
0 2015-11-09 00:00:00 8
0 2015-11-10 00:00:00 8
0 2015-11-11 00:00:00 8
0 2015-11-12 00:00:00 8
0 2015-11-13 00:00:00 8
2015-11-16 00:00:00 买开: ['MAFI']
卖开: ['PFI']
买平 ['RBFI']
卖平 ['IFI']
0 2015-11-16 00:00:00 8
0 2015-11-17 00:00:00 8
0 2015-11-18 00:00:00 8
0 2015-11-19 00:00:00 8
0 2015-11-20 00:00:00 8
2015-11-23 00:00:00 买开: ['HCFI', 'RBFI', 'ALFI']
卖开: ['LFI', 'IFI']
买平 ['JMFI', 'MAFI', 'RMFI']
卖平 ['PFI', 'ALFI']
0 2015-11-23 00:00:00 8
0 2015-11-24 00:00:00 8
0 2015-11-25 00:00:00 8
0 2015-11-26 00:00:00 8
0 2015-11-27 00:00:00 8
2015-11-30 00:00:00 买开: ['PFI', 'JMFI']
卖开: ['JFI']
买平 ['HCFI', 'RBFI']
卖平 ['LFI']
0 2015-11-30 00:00:00 8
0 2015-12-01 00:00:00 8
0 2015-12-02 00:00:00 8
0 2015-12-03 00:00:00 8
0 2015-12-04 00:00:00 8
2015-12-07 00:00:00 买开: ['HCFI']
卖开: ['MAFI']
买平 ['JMFI']
卖平 ['ZCFI']
0 2015-12-07 00:00:00 8
0 2015-12-08 00:00:00 8
0 2015-12-09 00:00:00 8
0 2015-12-10 00:00:00 8
0 2015-12-11 00:00:00 8
2015-12-14 00:00:00 买开: []
卖开: []
买平 []
卖平 []
0 2015-12-14 00:00:00 8
0 2015-12-15 00:00:00 8
0 2015-12-16 00:00:00 8
0 2015-12-17 00:00:00 8
0 2015-12-18 00:00:00 8
2015-12-21 00:00:00 买开: ['LFI']
卖开: []
买平 ['YFI']
卖平 []
0 2015-12-21 00:00:00 8
0 2015-12-22 00:00:00 8
0 2015-12-23 00:00:00 8
0 2015-12-24 00:00:00 8
0 2015-12-25 00:00:00 8
2015-12-28 00:00:00 买开: ['RBFI']
卖开: ['MFI']
买平 ['LFI']
卖平 ['PPFI']
0 2015-12-28 00:00:00 8
0 2015-12-29 00:00:00 8
0 2015-12-30 00:00:00 8
0 2015-12-31 00:00:00 8
2016-01-04 00:00:00 买开: ['IFI']
卖开: ['YFI', 'PPFI']
买平 ['ALFI']
卖平 ['MAFI', 'IFI']
0 2016-01-04 00:00:00 8
0 2016-01-05 00:00:00 8
0 2016-01-06 00:00:00 8
0 2016-01-07 00:00:00 8
0 2016-01-08 00:00:00 8
2016-01-11 00:00:00 买开: ['MAFI']
卖开: ['PFI']
买平 ['PFI']
卖平 ['MFI']
0 2016-01-11 00:00:00 8
0 2016-01-12 00:00:00 8
0 2016-01-13 00:00:00 8
0 2016-01-14 00:00:00 8
0 2016-01-15 00:00:00 8
2016-01-18 00:00:00 买开: ['LFI']
卖开: ['JMFI', 'ZCFI']
买平 ['MAFI']
卖平 ['PFI', 'PPFI']
0 2016-01-18 00:00:00 8
0 2016-01-19 00:00:00 8
0 2016-01-20 00:00:00 8
0 2016-01-21 00:00:00 8
0 2016-01-22 00:00:00 8
2016-01-25 00:00:00 买开: ['ZCFI']
卖开: ['PFI', 'ALFI']
买平 ['IFI']
卖平 ['JFI', 'ZCFI']
0 2016-01-25 00:00:00 8
0 2016-01-26 00:00:00 8
0 2016-01-27 00:00:00 8
0 2016-01-28 00:00:00 8
0 2016-01-29 00:00:00 8
2016-02-01 00:00:00 买开: ['PPFI']
卖开: ['HCFI']
买平 ['HCFI']
卖平 ['ALFI']
0 2016-02-01 00:00:00 8
0 2016-02-02 00:00:00 8
0 2016-02-03 00:00:00 8
0 2016-02-04 00:00:00 8
0 2016-02-05 00:00:00 8
2016-02-15 00:00:00 买开: ['IFI']
卖开: ['RMFI', 'MFI', 'ALFI']
买平 ['RBFI']
卖平 ['PFI', 'HCFI', 'YFI']
0 2016-02-15 00:00:00 8
0 2016-02-16 00:00:00 8
0 2016-02-17 00:00:00 8
0 2016-02-18 00:00:00 8
0 2016-02-19 00:00:00 8
2016-02-22 00:00:00 买开: []
卖开: ['YFI']
买平 []
卖平 ['JMFI']
0 2016-02-22 00:00:00 8
0 2016-02-23 00:00:00 8
0 2016-02-24 00:00:00 8
0 2016-02-25 00:00:00 8
0 2016-02-26 00:00:00 8
2016-02-29 00:00:00 买开: ['JMFI', 'JFI']
卖开: ['MAFI']
买平 ['LFI', 'ZCFI']
卖平 ['ALFI']
0 2016-02-29 00:00:00 8
0 2016-03-01 00:00:00 8
0 2016-03-02 00:00:00 8
0 2016-03-03 00:00:00 8
0 2016-03-04 00:00:00 8
2016-03-07 00:00:00 买开: ['HCFI']
卖开: []
买平 ['JMFI']
卖平 []
0 2016-03-07 00:00:00 8
0 2016-03-08 00:00:00 8
0 2016-03-09 00:00:00 8
0 2016-03-10 00:00:00 8
0 2016-03-11 00:00:00 8
2016-03-14 00:00:00 买开: ['RBFI']
卖开: ['LFI']
买平 ['PPFI']
卖平 ['MAFI']
0 2016-03-14 00:00:00 8
0 2016-03-15 00:00:00 8
0 2016-03-16 00:00:00 8
0 2016-03-17 00:00:00 8
0 2016-03-18 00:00:00 8
2016-03-21 00:00:00 买开: ['PPFI']
卖开: ['ALFI']
买平 ['RBFI']
卖平 ['LFI']
0 2016-03-21 00:00:00 8
0 2016-03-22 00:00:00 8
0 2016-03-23 00:00:00 8
0 2016-03-24 00:00:00 8
0 2016-03-25 00:00:00 8
2016-03-28 00:00:00 买开: ['PFI', 'RBFI']
卖开: ['JMFI', 'LFI']
买平 ['JFI', 'PPFI']
卖平 ['RMFI', 'YFI']
0 2016-03-28 00:00:00 8
0 2016-03-29 00:00:00 8
0 2016-03-30 00:00:00 8
0 2016-03-31 00:00:00 8
0 2016-04-01 00:00:00 8
2016-04-05 00:00:00 买开: ['JFI']
卖开: ['RMFI', 'IFI']
买平 ['IFI']
卖平 ['JMFI', 'ALFI']
0 2016-04-05 00:00:00 8
0 2016-04-06 00:00:00 8
0 2016-04-07 00:00:00 8
0 2016-04-08 00:00:00 8
2016-04-11 00:00:00 买开: ['JMFI']
卖开: ['MAFI', 'PPFI']
买平 ['RBFI']
卖平 ['RMFI', 'MFI']
0 2016-04-11 00:00:00 8
0 2016-04-12 00:00:00 8
0 2016-04-13 00:00:00 8
0 2016-04-14 00:00:00 8
0 2016-04-15 00:00:00 8
2016-04-18 00:00:00 买开: ['RBFI']
卖开: []
买平 ['PFI']
卖平 []
0 2016-04-18 00:00:00 8
0 2016-04-19 00:00:00 8
0 2016-04-20 00:00:00 8
0 2016-04-21 00:00:00 8
0 2016-04-22 00:00:00 8
2016-04-25 00:00:00 买开: []
卖开: ['RMFI']
买平 []
卖平 ['IFI']
0 2016-04-25 00:00:00 8
0 2016-04-26 00:00:00 8
0 2016-04-27 00:00:00 8
0 2016-04-28 00:00:00 8
0 2016-04-29 00:00:00 8
2016-05-03 00:00:00 买开: ['IFI']
卖开: ['PFI', 'YFI']
买平 ['HCFI']
卖平 ['RMFI', 'MAFI']
0 2016-05-03 00:00:00 8
0 2016-05-04 00:00:00 8
0 2016-05-05 00:00:00 8
0 2016-05-06 00:00:00 8
2016-05-09 00:00:00 买开: ['RMFI', 'MFI']
卖开: ['HCFI']
买平 ['JMFI', 'RBFI']
卖平 ['YFI']
0 2016-05-09 00:00:00 8
0 2016-05-10 00:00:00 8
0 2016-05-11 00:00:00 8
0 2016-05-12 00:00:00 8
0 2016-05-13 00:00:00 8
2016-05-16 00:00:00 买开: ['ALFI', 'PPFI']
卖开: ['RBFI', 'IFI']
买平 ['JFI', 'IFI']
卖平 ['LFI', 'PPFI']
0 2016-05-16 00:00:00 8
0 2016-05-17 00:00:00 8
0 2016-05-18 00:00:00 8
0 2016-05-19 00:00:00 8
0 2016-05-20 00:00:00 8
2016-05-23 00:00:00 买开: ['ZCFI']
卖开: []
买平 ['PPFI']
卖平 []
0 2016-05-23 00:00:00 8
0 2016-05-24 00:00:00 8
0 2016-05-25 00:00:00 8
0 2016-05-26 00:00:00 8
0 2016-05-27 00:00:00 8
2016-05-30 00:00:00 买开: []
卖开: ['JFI']
买平 []
卖平 ['PFI']
0 2016-05-30 00:00:00 8
0 2016-05-31 00:00:00 8
0 2016-06-01 00:00:00 8
0 2016-06-02 00:00:00 8
0 2016-06-03 00:00:00 8
2016-06-06 00:00:00 买开: ['JMFI']
卖开: []
买平 ['ALFI']
卖平 []
0 2016-06-06 00:00:00 8
0 2016-06-07 00:00:00 8
0 2016-06-08 00:00:00 8
2016-06-13 00:00:00 买开: ['PPFI']
卖开: ['PFI', 'YFI']
买平 ['JMFI']
卖平 ['HCFI', 'RBFI']
0 2016-06-13 00:00:00 8
0 2016-06-14 00:00:00 8
0 2016-06-15 00:00:00 8
0 2016-06-16 00:00:00 8
0 2016-06-17 00:00:00 8
2016-06-20 00:00:00 买开: ['LFI']
卖开: ['JMFI', 'ALFI']
买平 ['PPFI']
卖平 ['YFI', 'IFI']
0 2016-06-20 00:00:00 8
0 2016-06-21 00:00:00 8
0 2016-06-22 00:00:00 8
0 2016-06-23 00:00:00 8
0 2016-06-24 00:00:00 8
2016-06-27 00:00:00 买开: ['PPFI']
卖开: ['MAFI', 'YFI']
买平 ['LFI']
卖平 ['JMFI', 'JFI']
0 2016-06-27 00:00:00 8
0 2016-06-28 00:00:00 8
0 2016-06-29 00:00:00 8
0 2016-06-30 00:00:00 8
0 2016-07-01 00:00:00 8
2016-07-04 00:00:00 买开: ['RBFI', 'IFI']
卖开: ['JMFI']
买平 ['MFI', 'ZCFI']
卖平 ['MAFI']
0 2016-07-04 00:00:00 8
0 2016-07-05 00:00:00 8
0 2016-07-06 00:00:00 8
0 2016-07-07 00:00:00 8
0 2016-07-08 00:00:00 8
2016-07-11 00:00:00 买开: ['HCFI']
卖开: ['RMFI', 'MFI']
买平 ['RMFI']
卖平 ['JMFI', 'ALFI']
0 2016-07-11 00:00:00 8
0 2016-07-12 00:00:00 8
0 2016-07-13 00:00:00 8
0 2016-07-14 00:00:00 8
0 2016-07-15 00:00:00 8
2016-07-18 00:00:00 买开: ['JFI']
卖开: ['MAFI']
买平 ['PPFI']
卖平 ['YFI']
0 2016-07-18 00:00:00 8
0 2016-07-19 00:00:00 8
0 2016-07-20 00:00:00 8
0 2016-07-21 00:00:00 8
0 2016-07-22 00:00:00 8
2016-07-25 00:00:00 买开: []
卖开: ['ALFI']
买平 []
卖平 ['MAFI']
0 2016-07-25 00:00:00 8
0 2016-07-26 00:00:00 8
0 2016-07-27 00:00:00 8
0 2016-07-28 00:00:00 8
0 2016-07-29 00:00:00 8
2016-08-01 00:00:00 买开: ['JMFI', 'ZCFI']
卖开: ['MAFI', 'YFI']
买平 ['HCFI', 'RBFI']
卖平 ['PFI', 'ALFI']
0 2016-08-01 00:00:00 8
0 2016-08-02 00:00:00 8
0 2016-08-03 00:00:00 8
0 2016-08-04 00:00:00 8
0 2016-08-05 00:00:00 8
2016-08-08 00:00:00 买开: []
卖开: ['ALFI']
买平 []
卖平 ['MAFI']
0 2016-08-08 00:00:00 8
0 2016-08-09 00:00:00 8
0 2016-08-10 00:00:00 8
0 2016-08-11 00:00:00 8
0 2016-08-12 00:00:00 8
2016-08-15 00:00:00 买开: ['PFI']
卖开: ['PPFI']
买平 ['IFI']
卖平 ['YFI']
0 2016-08-15 00:00:00 8
0 2016-08-16 00:00:00 8
0 2016-08-17 00:00:00 8
0 2016-08-18 00:00:00 8
0 2016-08-19 00:00:00 8
2016-08-22 00:00:00 买开: ['HCFI', 'RBFI']
卖开: ['LFI']
买平 ['PFI', 'ZCFI']
卖平 ['ALFI']
0 2016-08-22 00:00:00 8
0 2016-08-23 00:00:00 8
0 2016-08-24 00:00:00 8
0 2016-08-25 00:00:00 8
0 2016-08-26 00:00:00 8
2016-08-29 00:00:00 买开: ['PFI']
卖开: ['IFI']
买平 ['RBFI']
卖平 ['LFI']
0 2016-08-29 00:00:00 8
0 2016-08-30 00:00:00 8
0 2016-08-31 00:00:00 8
0 2016-09-01 00:00:00 8
0 2016-09-02 00:00:00 8
2016-09-05 00:00:00 买开: ['ZCFI']
卖开: ['RBFI']
买平 ['HCFI']
卖平 ['MFI']
0 2016-09-05 00:00:00 8
0 2016-09-06 00:00:00 8
0 2016-09-07 00:00:00 8
0 2016-09-08 00:00:00 8
0 2016-09-09 00:00:00 8
2016-09-12 00:00:00 买开: ['YFI']
卖开: []
买平 ['JFI']
卖平 []
0 2016-09-12 00:00:00 8
0 2016-09-13 00:00:00 8
0 2016-09-14 00:00:00 8
2016-09-19 00:00:00 买开: ['MAFI', 'LFI']
卖开: ['JFI']
买平 ['PFI', 'YFI']
卖平 ['PPFI']
0 2016-09-19 00:00:00 8
0 2016-09-20 00:00:00 8
0 2016-09-21 00:00:00 8
0 2016-09-22 00:00:00 8
0 2016-09-23 00:00:00 8
2016-09-26 00:00:00 买开: ['PFI']
卖开: ['HCFI', 'PPFI']
买平 ['LFI']
卖平 ['RMFI', 'JFI']
0 2016-09-26 00:00:00 8
0 2016-09-27 00:00:00 8
0 2016-09-28 00:00:00 8
0 2016-09-29 00:00:00 8
0 2016-09-30 00:00:00 8
2016-10-10 00:00:00 买开: ['JFI']
卖开: ['RMFI']
买平 ['PFI']
卖平 ['PPFI']
0 2016-10-10 00:00:00 8
0 2016-10-11 00:00:00 8
0 2016-10-12 00:00:00 8
0 2016-10-13 00:00:00 8
0 2016-10-14 00:00:00 8
2016-10-17 00:00:00 买开: []
卖开: ['PFI', 'MFI', 'PPFI']
买平 []
卖平 ['HCFI', 'RBFI', 'IFI']
0 2016-10-17 00:00:00 8
0 2016-10-18 00:00:00 8
0 2016-10-19 00:00:00 8
0 2016-10-20 00:00:00 8
0 2016-10-21 00:00:00 8
2016-10-24 00:00:00 买开: ['IFI']
卖开: ['ALFI']
买平 ['MAFI']
卖平 ['PPFI']
0 2016-10-24 00:00:00 8
0 2016-10-25 00:00:00 8
0 2016-10-26 00:00:00 8
0 2016-10-27 00:00:00 8
0 2016-10-28 00:00:00 8
2016-10-31 00:00:00 买开: ['PPFI']
卖开: ['YFI']
买平 ['IFI']
卖平 ['ALFI']
0 2016-10-31 00:00:00 8
0 2016-11-01 00:00:00 8
0 2016-11-02 00:00:00 8
0 2016-11-03 00:00:00 8
0 2016-11-04 00:00:00 8
2016-11-07 00:00:00 买开: ['HCFI', 'IFI']
卖开: []
买平 ['ZCFI', 'PPFI']
卖平 []
0 2016-11-07 00:00:00 8
0 2016-11-08 00:00:00 8
0 2016-11-09 00:00:00 8
0 2016-11-10 00:00:00 8
0 2016-11-11 00:00:00 8
2016-11-14 00:00:00 买开: ['RBFI']
卖开: ['ALFI']
买平 ['HCFI']
卖平 ['PFI']
0 2016-11-14 00:00:00 8
0 2016-11-15 00:00:00 8
0 2016-11-16 00:00:00 8
0 2016-11-17 00:00:00 8
0 2016-11-18 00:00:00 8
2016-11-21 00:00:00 买开: ['HCFI']
卖开: ['LFI', 'ZCFI']
买平 ['RBFI']
卖平 ['ALFI', 'YFI']
0 2016-11-21 00:00:00 8
0 2016-11-22 00:00:00 8
0 2016-11-23 00:00:00 8
0 2016-11-24 00:00:00 8
0 2016-11-25 00:00:00 8
2016-11-28 00:00:00 买开: ['RBFI']
卖开: ['PPFI']
买平 ['JMFI']
卖平 ['RMFI']
0 2016-11-28 00:00:00 8
0 2016-11-29 00:00:00 8
0 2016-11-30 00:00:00 8
0 2016-12-01 00:00:00 8
0 2016-12-02 00:00:00 8
2016-12-05 00:00:00 买开: ['RMFI']
卖开: ['JMFI', 'JFI']
买平 ['JFI']
卖平 ['MFI', 'PPFI']
0 2016-12-05 00:00:00 8
0 2016-12-06 00:00:00 8
0 2016-12-07 00:00:00 8
0 2016-12-08 00:00:00 8
0 2016-12-09 00:00:00 8
2016-12-12 00:00:00 买开: ['MAFI', 'PPFI']
卖开: ['ALFI']
买平 ['RMFI', 'IFI']
卖平 ['LFI']
0 2016-12-12 00:00:00 8
0 2016-12-13 00:00:00 8
0 2016-12-14 00:00:00 8
0 2016-12-15 00:00:00 8
0 2016-12-16 00:00:00 8
2016-12-19 00:00:00 买开: []
卖开: []
买平 []
卖平 []
0 2016-12-19 00:00:00 8
0 2016-12-20 00:00:00 8
0 2016-12-21 00:00:00 8
0 2016-12-22 00:00:00 8
0 2016-12-23 00:00:00 8
2016-12-26 00:00:00 买开: ['LFI', 'YFI']
卖开: ['IFI']
买平 ['HCFI', 'RBFI']
卖平 ['ALFI']
0 2016-12-26 00:00:00 8
0 2016-12-27 00:00:00 8
0 2016-12-28 00:00:00 8
0 2016-12-29 00:00:00 8
0 2016-12-30 00:00:00 8
2017-01-03 00:00:00 买开: []
卖开: ['RBFI']
买平 []
卖平 ['IFI']
0 2017-01-03 00:00:00 8
0 2017-01-04 00:00:00 8
0 2017-01-05 00:00:00 8
0 2017-01-06 00:00:00 8
2017-01-09 00:00:00 买开: ['PFI', 'RMFI', 'ALFI']
卖开: ['IFI']
买平 ['MAFI', 'LFI', 'PPFI']
卖平 ['ZCFI']
0 2017-01-09 00:00:00 8
0 2017-01-10 00:00:00 8
0 2017-01-11 00:00:00 8
0 2017-01-12 00:00:00 8
0 2017-01-13 00:00:00 8
2017-01-16 00:00:00 买开: ['LFI', 'IFI']
卖开: ['MAFI', 'PPFI']
买平 ['PFI', 'YFI']
卖平 ['JMFI', 'IFI']
0 2017-01-16 00:00:00 8
0 2017-01-17 00:00:00 8
0 2017-01-18 00:00:00 8
0 2017-01-19 00:00:00 8
0 2017-01-20 00:00:00 8
2017-01-23 00:00:00 买开: ['RBFI']
卖开: ['JMFI', 'ZCFI']
买平 ['LFI']
卖平 ['RBFI', 'PPFI']
0 2017-01-23 00:00:00 8
0 2017-01-24 00:00:00 8
0 2017-01-25 00:00:00 8
0 2017-01-26 00:00:00 8
2017-02-03 00:00:00 买开: ['HCFI']
卖开: ['PFI', 'LFI', 'YFI', 'PPFI']
买平 ['RMFI']
卖平 ['JMFI', 'MAFI', 'JFI', 'ZCFI']
0 2017-02-03 00:00:00 8
2017-02-06 00:00:00 买开: ['ZCFI']
卖开: ['JMFI', 'JFI']
买平 ['HCFI']
卖平 ['LFI', 'PPFI']
0 2017-02-06 00:00:00 8
0 2017-02-07 00:00:00 8
0 2017-02-08 00:00:00 8
0 2017-02-09 00:00:00 8
0 2017-02-10 00:00:00 8
2017-02-13 00:00:00 买开: ['HCFI', 'MAFI']
卖开: []
买平 ['ALFI', 'ZCFI']
卖平 []
0 2017-02-13 00:00:00 8
0 2017-02-14 00:00:00 8
0 2017-02-15 00:00:00 8
0 2017-02-16 00:00:00 8
0 2017-02-17 00:00:00 8
2017-02-20 00:00:00 买开: ['ALFI']
卖开: ['LFI']
买平 ['HCFI']
卖平 ['JFI']
0 2017-02-20 00:00:00 8
0 2017-02-21 00:00:00 8
0 2017-02-22 00:00:00 8
0 2017-02-23 00:00:00 8
0 2017-02-24 00:00:00 8
2017-02-27 00:00:00 买开: ['JMFI', 'ZCFI']
卖开: ['PPFI']
买平 ['MAFI', 'ALFI']
卖平 ['JMFI']
0 2017-02-27 00:00:00 8
0 2017-02-28 00:00:00 8
0 2017-03-01 00:00:00 8
0 2017-03-02 00:00:00 8
0 2017-03-03 00:00:00 8
2017-03-06 00:00:00 买开: ['JFI']
卖开: ['MAFI']
买平 ['ZCFI']
卖平 ['YFI']
0 2017-03-06 00:00:00 8
0 2017-03-07 00:00:00 8
0 2017-03-08 00:00:00 8
0 2017-03-09 00:00:00 8
0 2017-03-10 00:00:00 8
2017-03-13 00:00:00 买开: ['ZCFI']
卖开: []
买平 ['IFI']
卖平 []
0 2017-03-13 00:00:00 8
0 2017-03-14 00:00:00 8
0 2017-03-15 00:00:00 8
0 2017-03-16 00:00:00 8
0 2017-03-17 00:00:00 8
2017-03-20 00:00:00 买开: []
卖开: ['HCFI']
买平 []
卖平 ['PFI']
0 2017-03-20 00:00:00 8
0 2017-03-21 00:00:00 8
0 2017-03-22 00:00:00 8
0 2017-03-23 00:00:00 8
0 2017-03-24 00:00:00 8
2017-03-27 00:00:00 买开: ['ALFI']
卖开: ['RBFI', 'IFI']
买平 ['RBFI']
卖平 ['LFI', 'PPFI']
0 2017-03-27 00:00:00 8
0 2017-03-28 00:00:00 8
0 2017-03-29 00:00:00 8
0 2017-03-30 00:00:00 8
0 2017-03-31 00:00:00 8
2017-04-05 00:00:00 买开: []
卖开: ['YFI']
买平 []
卖平 ['RBFI']
0 2017-04-05 00:00:00 8
0 2017-04-06 00:00:00 8
0 2017-04-07 00:00:00 8
2017-04-10 00:00:00 买开: ['LFI']
卖开: ['RBFI']
买平 ['JMFI']
卖平 ['MAFI']
0 2017-04-10 00:00:00 8
0 2017-04-11 00:00:00 8
0 2017-04-12 00:00:00 8
0 2017-04-13 00:00:00 8
0 2017-04-14 00:00:00 8
2017-04-17 00:00:00 买开: ['RMFI', 'MFI']
卖开: ['JMFI']
买平 ['JFI', 'LFI']
卖平 ['YFI']
0 2017-04-17 00:00:00 8
0 2017-04-18 00:00:00 8
0 2017-04-19 00:00:00 8
0 2017-04-20 00:00:00 8
0 2017-04-21 00:00:00 8
2017-04-24 00:00:00 买开: ['LFI']
卖开: ['YFI']
买平 ['ZCFI']
卖平 ['JMFI']
0 2017-04-24 00:00:00 8
0 2017-04-25 00:00:00 8
0 2017-04-26 00:00:00 8
0 2017-04-27 00:00:00 8
0 2017-04-28 00:00:00 8
2017-05-02 00:00:00 买开: ['HCFI']
卖开: ['JMFI', 'JFI', 'ZCFI']
买平 ['LFI']
卖平 ['HCFI', 'RBFI', 'YFI']
0 2017-05-02 00:00:00 8
0 2017-05-03 00:00:00 8
0 2017-05-04 00:00:00 8
0 2017-05-05 00:00:00 8
2017-05-08 00:00:00 买开: ['YFI']
卖开: []
买平 ['HCFI']
卖平 []
0 2017-05-08 00:00:00 8
0 2017-05-09 00:00:00 8
0 2017-05-10 00:00:00 8
0 2017-05-11 00:00:00 8
0 2017-05-12 00:00:00 8
2017-05-15 00:00:00 买开: ['PFI', 'RBFI']
卖开: ['MAFI']
买平 ['RMFI', 'ALFI']
卖平 ['JFI']
0 2017-05-15 00:00:00 8
0 2017-05-16 00:00:00 8
0 2017-05-17 00:00:00 8
0 2017-05-18 00:00:00 8
0 2017-05-19 00:00:00 8
2017-05-22 00:00:00 买开: ['HCFI', 'LFI']
卖开: ['RMFI', 'JFI']
买平 ['MFI', 'YFI']
卖平 ['MAFI', 'IFI']
0 2017-05-22 00:00:00 8
0 2017-05-23 00:00:00 8
0 2017-05-24 00:00:00 8
0 2017-05-25 00:00:00 8
0 2017-05-26 00:00:00 8
2017-05-31 00:00:00 买开: ['PPFI']
卖开: ['IFI']
买平 ['HCFI']
卖平 ['ZCFI']
0 2017-05-31 00:00:00 8
0 2017-06-01 00:00:00 8
0 2017-06-02 00:00:00 8
2017-06-05 00:00:00 买开: ['ALFI']
卖开: []
买平 ['RBFI']
卖平 []
0 2017-06-05 00:00:00 8
0 2017-06-06 00:00:00 8
0 2017-06-07 00:00:00 8
0 2017-06-08 00:00:00 8
0 2017-06-09 00:00:00 8
2017-06-12 00:00:00 买开: ['HCFI', 'MAFI', 'ZCFI']
卖开: []
买平 ['PFI', 'ALFI', 'LFI']
卖平 []
0 2017-06-12 00:00:00 8
0 2017-06-13 00:00:00 8
0 2017-06-14 00:00:00 8
0 2017-06-15 00:00:00 8
0 2017-06-16 00:00:00 8
2017-06-19 00:00:00 买开: ['JFI']
卖开: ['PFI']
买平 ['PPFI']
卖平 ['JFI']
0 2017-06-19 00:00:00 8
0 2017-06-20 00:00:00 8
0 2017-06-21 00:00:00 8
0 2017-06-22 00:00:00 8
0 2017-06-23 00:00:00 8
2017-06-26 00:00:00 买开: ['JMFI']
卖开: ['RBFI', 'LFI', 'PPFI']
买平 ['MAFI']
卖平 ['JMFI', 'RMFI', 'IFI']
0 2017-06-26 00:00:00 8
0 2017-06-27 00:00:00 8
0 2017-06-28 00:00:00 8
0 2017-06-29 00:00:00 8
0 2017-06-30 00:00:00 8
2017-07-03 00:00:00 买开: []
卖开: ['RMFI', 'MFI', 'ALFI']
买平 []
卖平 ['PFI', 'RBFI', 'PPFI']
0 2017-07-03 00:00:00 8
0 2017-07-04 00:00:00 8
0 2017-07-05 00:00:00 8
0 2017-07-06 00:00:00 8
0 2017-07-07 00:00:00 8
2017-07-10 00:00:00 买开: ['RBFI', 'IFI']
卖开: ['PFI', 'YFI']
买平 ['HCFI', 'ZCFI']
卖平 ['RMFI', 'MFI']
0 2017-07-10 00:00:00 8
0 2017-07-11 00:00:00 8
0 2017-07-12 00:00:00 8
0 2017-07-13 00:00:00 8
0 2017-07-14 00:00:00 8
2017-07-17 00:00:00 买开: ['HCFI']
卖开: ['ZCFI']
买平 ['IFI']
卖平 ['ALFI']
0 2017-07-17 00:00:00 8
0 2017-07-18 00:00:00 8
0 2017-07-19 00:00:00 8
0 2017-07-20 00:00:00 8
0 2017-07-21 00:00:00 8
2017-07-24 00:00:00 买开: ['IFI']
卖开: ['RMFI', 'ALFI']
买平 ['HCFI']
卖平 ['LFI', 'YFI']
0 2017-07-24 00:00:00 8
0 2017-07-25 00:00:00 8
0 2017-07-26 00:00:00 8
0 2017-07-27 00:00:00 8
0 2017-07-28 00:00:00 8
2017-07-31 00:00:00 买开: ['HCFI']
卖开: ['MAFI', 'YFI']
买平 ['RBFI']
卖平 ['PFI', 'RMFI']
0 2017-07-31 00:00:00 8
0 2017-08-01 00:00:00 8
0 2017-08-02 00:00:00 8
0 2017-08-03 00:00:00 8
0 2017-08-04 00:00:00 8
2017-08-07 00:00:00 买开: []
卖开: ['PFI', 'MFI', 'RMFI']
买平 []
卖平 ['MAFI', 'ALFI', 'YFI']
0 2017-08-07 00:00:00 8
0 2017-08-08 00:00:00 8
0 2017-08-09 00:00:00 8
0 2017-08-10 00:00:00 8
0 2017-08-11 00:00:00 8
2017-08-14 00:00:00 买开: ['ALFI']
卖开: []
买平 ['HCFI']
卖平 []
0 2017-08-14 00:00:00 8
0 2017-08-15 00:00:00 8
0 2017-08-16 00:00:00 8
0 2017-08-17 00:00:00 8
0 2017-08-18 00:00:00 8
2017-08-21 00:00:00 买开: ['HCFI']
卖开: ['LFI']
买平 ['IFI']
卖平 ['PFI']
0 2017-08-21 00:00:00 8
0 2017-08-22 00:00:00 8
0 2017-08-23 00:00:00 8
0 2017-08-24 00:00:00 8
0 2017-08-25 00:00:00 8
2017-08-28 00:00:00 买开: ['MAFI']
卖开: ['PFI', 'YFI']
买平 ['HCFI']
卖平 ['LFI', 'ZCFI']
0 2017-08-28 00:00:00 8
0 2017-08-29 00:00:00 8
0 2017-08-30 00:00:00 8
0 2017-08-31 00:00:00 8
0 2017-09-01 00:00:00 8
2017-09-04 00:00:00 买开: []
卖开: []
买平 []
卖平 []
0 2017-09-04 00:00:00 8
0 2017-09-05 00:00:00 8
0 2017-09-06 00:00:00 8
0 2017-09-07 00:00:00 8
0 2017-09-08 00:00:00 8
2017-09-11 00:00:00 买开: ['PPFI']
卖开: ['ALFI', 'IFI']
买平 ['ALFI']
卖平 ['PFI', 'YFI']
0 2017-09-11 00:00:00 8
0 2017-09-12 00:00:00 8
0 2017-09-13 00:00:00 8
0 2017-09-14 00:00:00 8
0 2017-09-15 00:00:00 8
2017-09-18 00:00:00 买开: ['PFI', 'YFI', 'ZCFI']
卖开: ['JMFI', 'RBFI']
买平 ['JMFI', 'JFI', 'PPFI']
卖平 ['RMFI', 'MFI']
0 2017-09-18 00:00:00 8
0 2017-09-19 00:00:00 8
0 2017-09-20 00:00:00 8
0 2017-09-21 00:00:00 8
0 2017-09-22 00:00:00 8
2017-09-25 00:00:00 买开: ['RMFI', 'MFI']
卖开: ['JFI']
买平 ['MAFI', 'YFI']
卖平 ['ALFI']
0 2017-09-25 00:00:00 8
0 2017-09-26 00:00:00 8
0 2017-09-27 00:00:00 8
0 2017-09-28 00:00:00 8
0 2017-09-29 00:00:00 8
2017-10-09 00:00:00 买开: []
卖开: []
买平 []
卖平 []
0 2017-10-09 00:00:00 8
0 2017-10-10 00:00:00 8
0 2017-10-11 00:00:00 8
0 2017-10-12 00:00:00 8
0 2017-10-13 00:00:00 8
2017-10-16 00:00:00 买开: ['ALFI']
卖开: ['MAFI']
买平 ['ZCFI']
卖平 ['RBFI']
0 2017-10-16 00:00:00 8
0 2017-10-17 00:00:00 8
0 2017-10-18 00:00:00 8
0 2017-10-19 00:00:00 8
0 2017-10-20 00:00:00 8
2017-10-23 00:00:00 买开: ['LFI', 'PPFI']
卖开: ['YFI']
买平 ['PFI', 'ALFI']
卖平 ['MAFI']
0 2017-10-23 00:00:00 8
0 2017-10-24 00:00:00 8
0 2017-10-25 00:00:00 8
0 2017-10-26 00:00:00 8
0 2017-10-27 00:00:00 8
2017-10-30 00:00:00 买开: ['PFI', 'HCFI', 'RBFI']
卖开: ['RMFI']
买平 ['RMFI', 'MFI', 'LFI']
卖平 ['YFI']
0 2017-10-30 00:00:00 8
0 2017-10-31 00:00:00 8
0 2017-11-01 00:00:00 8
0 2017-11-02 00:00:00 8
0 2017-11-03 00:00:00 8
2017-11-06 00:00:00 买开: ['MFI', 'LFI', 'MAFI']
卖开: ['HCFI', 'RBFI', 'ZCFI']
买平 ['HCFI', 'RBFI', 'PPFI']
卖平 ['RMFI', 'JMFI', 'IFI']
0 2017-11-06 00:00:00 8
0 2017-11-07 00:00:00 8
0 2017-11-08 00:00:00 8
0 2017-11-09 00:00:00 8
0 2017-11-10 00:00:00 8
2017-11-13 00:00:00 买开: ['JMFI', 'IFI', 'ZCFI']
卖开: ['RMFI', 'MFI', 'ALFI']
买平 ['PFI', 'MFI', 'LFI']
卖平 ['JFI', 'RBFI', 'ZCFI']
0 2017-11-13 00:00:00 8
0 2017-11-14 00:00:00 8
0 2017-11-15 00:00:00 8
0 2017-11-16 00:00:00 8
0 2017-11-17 00:00:00 8
2017-11-20 00:00:00 买开: ['RMFI', 'JFI']
卖开: ['PFI', 'LFI']
买平 ['IFI', 'ZCFI']
卖平 ['RMFI', 'MFI']
0 2017-11-20 00:00:00 8
0 2017-11-21 00:00:00 8
0 2017-11-22 00:00:00 8
0 2017-11-23 00:00:00 8
0 2017-11-24 00:00:00 8
2017-11-27 00:00:00 买开: ['IFI']
卖开: ['YFI']
买平 ['RMFI']
卖平 ['HCFI']
0 2017-11-27 00:00:00 8
0 2017-11-28 00:00:00 8
0 2017-11-29 00:00:00 8
0 2017-11-30 00:00:00 8
0 2017-12-01 00:00:00 8
2017-12-04 00:00:00 买开: ['RBFI']
卖开: []
买平 ['MAFI']
卖平 []
0 2017-12-04 00:00:00 8
0 2017-12-05 00:00:00 8
0 2017-12-06 00:00:00 8
0 2017-12-07 00:00:00 8
0 2017-12-08 00:00:00 8
2017-12-11 00:00:00 买开: ['RMFI', 'MAFI']
卖开: []
买平 ['JMFI', 'RBFI']
卖平 []
0 2017-12-11 00:00:00 8
0 2017-12-12 00:00:00 8
0 2017-12-13 00:00:00 8
0 2017-12-14 00:00:00 8
0 2017-12-15 00:00:00 8
2017-12-18 00:00:00 买开: ['JMFI', 'ZCFI']
卖开: []
买平 ['RMFI', 'MAFI']
卖平 []
0 2017-12-18 00:00:00 8
0 2017-12-19 00:00:00 8
0 2017-12-20 00:00:00 8
0 2017-12-21 00:00:00 8
0 2017-12-22 00:00:00 8
2017-12-25 00:00:00 买开: []
卖开: ['MFI']
买平 []
卖平 ['LFI']
0 2017-12-25 00:00:00 8
0 2017-12-26 00:00:00 8
0 2017-12-27 00:00:00 8
0 2017-12-28 00:00:00 8
0 2017-12-29 00:00:00 8
2018-01-02 00:00:00 买开: ['ALFI', 'LFI', 'PPFI']
卖开: ['JMFI', 'JFI', 'RBFI']
买平 ['JMFI', 'JFI', 'ZCFI']
卖平 ['PFI', 'MFI', 'ALFI']
0 2018-01-02 00:00:00 8
0 2018-01-03 00:00:00 8
0 2018-01-04 00:00:00 8
0 2018-01-05 00:00:00 8
2018-01-08 00:00:00 买开: ['JMFI']
卖开: ['HCFI', 'RMFI', 'MFI']
买平 ['LFI']
卖平 ['JMFI', 'JFI', 'YFI']
0 2018-01-08 00:00:00 8
0 2018-01-09 00:00:00 8
0 2018-01-10 00:00:00 8
0 2018-01-11 00:00:00 8
0 2018-01-12 00:00:00 8
2018-01-15 00:00:00 买开: ['LFI']
卖开: ['ZCFI']
买平 ['ALFI']
卖平 ['RBFI']
0 2018-01-15 00:00:00 8
0 2018-01-16 00:00:00 8
0 2018-01-17 00:00:00 8
0 2018-01-18 00:00:00 8
0 2018-01-19 00:00:00 8

In [91]:
lsCombo


Out[91]:
{Timestamp('2015-02-06 00:00:00'): {'long': ['PPFI', 'LFI', 'MAFI', 'ALFI'],
  'short': ['PFI', 'YFI', 'IFI', 'HCFI']},
 Timestamp('2015-02-13 00:00:00'): {'long': ['MAFI', 'PPFI', 'LFI', 'RMFI'],
  'short': ['YFI', 'ZCFI', 'HCFI', 'IFI']},
 Timestamp('2015-02-17 00:00:00'): {'long': ['PPFI', 'MAFI', 'LFI', 'RMFI'],
  'short': ['YFI', 'HCFI', 'IFI', 'ZCFI']},
 Timestamp('2015-02-27 00:00:00'): {'long': ['MAFI', 'PPFI', 'LFI', 'RMFI'],
  'short': ['JMFI', 'JFI', 'HCFI', 'ZCFI']},
 Timestamp('2015-03-06 00:00:00'): {'long': ['MAFI', 'LFI', 'PPFI', 'RMFI'],
  'short': ['JFI', 'HCFI', 'RBFI', 'IFI']},
 Timestamp('2015-03-13 00:00:00'): {'long': ['MAFI', 'RMFI', 'LFI', 'PPFI'],
  'short': ['RBFI', 'JFI', 'HCFI', 'IFI']},
 Timestamp('2015-03-20 00:00:00'): {'long': ['MAFI', 'RMFI', 'ALFI', 'PPFI'],
  'short': ['JMFI', 'PFI', 'JFI', 'IFI']},
 Timestamp('2015-03-27 00:00:00'): {'long': ['LFI', 'PPFI', 'ALFI', 'MAFI'],
  'short': ['ZCFI', 'PFI', 'JFI', 'IFI']},
 Timestamp('2015-04-03 00:00:00'): {'long': ['LFI', 'PPFI', 'ALFI', 'RMFI'],
  'short': ['HCFI', 'JFI', 'ZCFI', 'IFI']},
 Timestamp('2015-04-10 00:00:00'): {'long': ['PPFI', 'LFI', 'ALFI', 'YFI'],
  'short': ['RMFI', 'JFI', 'ZCFI', 'IFI']},
 Timestamp('2015-04-17 00:00:00'): {'long': ['MAFI', 'PPFI', 'LFI', 'YFI'],
  'short': ['RBFI', 'JFI', 'ZCFI', 'IFI']},
 Timestamp('2015-04-24 00:00:00'): {'long': ['MAFI', 'YFI', 'PPFI', 'LFI'],
  'short': ['JFI', 'RBFI', 'JMFI', 'ZCFI']},
 Timestamp('2015-04-30 00:00:00'): {'long': ['MAFI', 'YFI', 'IFI', 'PFI'],
  'short': ['RMFI', 'ZCFI', 'JFI', 'JMFI']},
 Timestamp('2015-05-08 00:00:00'): {'long': ['IFI', 'YFI', 'PFI', 'HCFI'],
  'short': ['LFI', 'ALFI', 'PPFI', 'MFI']},
 Timestamp('2015-05-15 00:00:00'): {'long': ['PFI', 'IFI', 'YFI', 'ZCFI'],
  'short': ['MAFI', 'MFI', 'JMFI', 'PPFI']},
 Timestamp('2015-05-22 00:00:00'): {'long': ['ZCFI', 'IFI', 'JMFI', 'PFI'],
  'short': ['LFI', 'PPFI', 'RMFI', 'MFI']},
 Timestamp('2015-05-29 00:00:00'): {'long': ['PFI', 'IFI', 'ZCFI', 'JMFI'],
  'short': ['PPFI', 'MFI', 'RMFI', 'LFI']},
 Timestamp('2015-06-05 00:00:00'): {'long': ['PFI', 'YFI', 'ZCFI', 'IFI'],
  'short': ['LFI', 'ALFI', 'RMFI', 'MFI']},
 Timestamp('2015-06-12 00:00:00'): {'long': ['IFI', 'JMFI', 'PPFI', 'LFI'],
  'short': ['RBFI', 'ALFI', 'RMFI', 'MFI']},
 Timestamp('2015-06-19 00:00:00'): {'long': ['PFI', 'MAFI', 'IFI', 'PPFI'],
  'short': ['ALFI', 'ZCFI', 'RBFI', 'HCFI']},
 Timestamp('2015-06-26 00:00:00'): {'long': ['LFI', 'PPFI', 'MAFI', 'MFI'],
  'short': ['JFI', 'ZCFI', 'RBFI', 'HCFI']},
 Timestamp('2015-07-03 00:00:00'): {'long': ['MFI', 'RMFI', 'LFI', 'PPFI'],
  'short': ['ZCFI', 'IFI', 'RBFI', 'HCFI']},
 Timestamp('2015-07-10 00:00:00'): {'long': ['MFI', 'RMFI', 'MAFI', 'LFI'],
  'short': ['JFI', 'RBFI', 'HCFI', 'IFI']},
 Timestamp('2015-07-17 00:00:00'): {'long': ['RMFI', 'MFI', 'ALFI', 'LFI'],
  'short': ['JFI', 'RBFI', 'HCFI', 'IFI']},
 Timestamp('2015-07-24 00:00:00'): {'long': ['RMFI', 'MFI', 'YFI', 'ALFI'],
  'short': ['JMFI', 'HCFI', 'MAFI', 'IFI']},
 Timestamp('2015-07-31 00:00:00'): {'long': ['RMFI', 'RBFI', 'ALFI', 'MFI'],
  'short': ['JMFI', 'PPFI', 'LFI', 'MAFI']},
 Timestamp('2015-08-07 00:00:00'): {'long': ['IFI', 'RBFI', 'JFI', 'HCFI'],
  'short': ['RMFI', 'PFI', 'LFI', 'MAFI']},
 Timestamp('2015-08-14 00:00:00'): {'long': ['IFI', 'RBFI', 'HCFI', 'JFI'],
  'short': ['ALFI', 'RMFI', 'PFI', 'MAFI']},
 Timestamp('2015-08-21 00:00:00'): {'long': ['IFI', 'JFI', 'YFI', 'RBFI'],
  'short': ['LFI', 'RMFI', 'PFI', 'MAFI']},
 Timestamp('2015-08-28 00:00:00'): {'long': ['IFI', 'MFI', 'LFI', 'YFI'],
  'short': ['RBFI', 'JMFI', 'MAFI', 'PFI']},
 Timestamp('2015-09-02 00:00:00'): {'long': ['IFI', 'LFI', 'MFI', 'PPFI'],
  'short': ['HCFI', 'MAFI', 'RBFI', 'PFI']},
 Timestamp('2015-09-11 00:00:00'): {'long': ['IFI', 'ALFI', 'ZCFI', 'LFI'],
  'short': ['RBFI', 'PFI', 'MAFI', 'RMFI']},
 Timestamp('2015-09-18 00:00:00'): {'long': ['IFI', 'ALFI', 'MFI', 'ZCFI'],
  'short': ['PFI', 'MAFI', 'PPFI', 'RBFI']},
 Timestamp('2015-09-25 00:00:00'): {'long': ['PFI', 'MAFI', 'JMFI', 'IFI'],
  'short': ['HCFI', 'JFI', 'RBFI', 'PPFI']},
 Timestamp('2015-09-30 00:00:00'): {'long': ['PFI', 'JMFI', 'YFI', 'MAFI'],
  'short': ['HCFI', 'PPFI', 'RBFI', 'IFI']},
 Timestamp('2015-10-09 00:00:00'): {'long': ['PFI', 'MAFI', 'YFI', 'JMFI'],
  'short': ['JFI', 'HCFI', 'RBFI', 'RMFI']},
 Timestamp('2015-10-16 00:00:00'): {'long': ['PFI', 'YFI', 'MAFI', 'MFI'],
  'short': ['JFI', 'ALFI', 'ZCFI', 'IFI']},
 Timestamp('2015-10-23 00:00:00'): {'long': ['PFI', 'YFI', 'LFI', 'MAFI'],
  'short': ['IFI', 'RBFI', 'ZCFI', 'ALFI']},
 Timestamp('2015-10-30 00:00:00'): {'long': ['YFI', 'PFI', 'LFI', 'RMFI'],
  'short': ['IFI', 'JFI', 'ZCFI', 'ALFI']},
 Timestamp('2015-11-06 00:00:00'): {'long': ['RMFI', 'YFI', 'JMFI', 'RBFI'],
  'short': ['ALFI', 'PPFI', 'IFI', 'ZCFI']},
 Timestamp('2015-11-13 00:00:00'): {'long': ['JMFI', 'MAFI', 'YFI', 'RMFI'],
  'short': ['PFI', 'ALFI', 'ZCFI', 'PPFI']},
 Timestamp('2015-11-20 00:00:00'): {'long': ['YFI', 'RBFI', 'HCFI', 'ALFI'],
  'short': ['IFI', 'LFI', 'ZCFI', 'PPFI']},
 Timestamp('2015-11-27 00:00:00'): {'long': ['YFI', 'PFI', 'ALFI', 'JMFI'],
  'short': ['ZCFI', 'JFI', 'IFI', 'PPFI']},
 Timestamp('2015-12-04 00:00:00'): {'long': ['PFI', 'YFI', 'HCFI', 'ALFI'],
  'short': ['JFI', 'MAFI', 'PPFI', 'IFI']},
 Timestamp('2015-12-11 00:00:00'): {'long': ['PFI', 'ALFI', 'YFI', 'HCFI'],
  'short': ['JFI', 'MAFI', 'PPFI', 'IFI']},
 Timestamp('2015-12-18 00:00:00'): {'long': ['HCFI', 'PFI', 'ALFI', 'LFI'],
  'short': ['JFI', 'PPFI', 'MAFI', 'IFI']},
 Timestamp('2015-12-25 00:00:00'): {'long': ['HCFI', 'ALFI', 'RBFI', 'PFI'],
  'short': ['MFI', 'JFI', 'IFI', 'MAFI']},
 Timestamp('2015-12-31 00:00:00'): {'long': ['HCFI', 'RBFI', 'IFI', 'PFI'],
  'short': ['MFI', 'YFI', 'JFI', 'PPFI']},
 Timestamp('2016-01-08 00:00:00'): {'long': ['IFI', 'HCFI', 'RBFI', 'MAFI'],
  'short': ['PFI', 'PPFI', 'YFI', 'JFI']},
 Timestamp('2016-01-15 00:00:00'): {'long': ['RBFI', 'IFI', 'HCFI', 'LFI'],
  'short': ['YFI', 'JFI', 'JMFI', 'ZCFI']},
 Timestamp('2016-01-22 00:00:00'): {'long': ['RBFI', 'ZCFI', 'LFI', 'HCFI'],
  'short': ['PFI', 'YFI', 'ALFI', 'JMFI']},
 Timestamp('2016-01-29 00:00:00'): {'long': ['ZCFI', 'PPFI', 'LFI', 'RBFI'],
  'short': ['HCFI', 'JMFI', 'YFI', 'PFI']},
 Timestamp('2016-02-05 00:00:00'): {'long': ['PPFI', 'LFI', 'IFI', 'ZCFI'],
  'short': ['MFI', 'RMFI', 'ALFI', 'JMFI']},
 Timestamp('2016-02-19 00:00:00'): {'long': ['IFI', 'LFI', 'PPFI', 'ZCFI'],
  'short': ['YFI', 'ALFI', 'MFI', 'RMFI']},
 Timestamp('2016-02-26 00:00:00'): {'long': ['IFI', 'JMFI', 'PPFI', 'JFI'],
  'short': ['YFI', 'MAFI', 'MFI', 'RMFI']},
 Timestamp('2016-03-04 00:00:00'): {'long': ['IFI', 'HCFI', 'PPFI', 'JFI'],
  'short': ['MAFI', 'YFI', 'RMFI', 'MFI']},
 Timestamp('2016-03-11 00:00:00'): {'long': ['IFI', 'HCFI', 'JFI', 'RBFI'],
  'short': ['YFI', 'LFI', 'RMFI', 'MFI']},
 Timestamp('2016-03-18 00:00:00'): {'long': ['IFI', 'HCFI', 'JFI', 'PPFI'],
  'short': ['YFI', 'ALFI', 'RMFI', 'MFI']},
 Timestamp('2016-03-25 00:00:00'): {'long': ['RBFI', 'HCFI', 'IFI', 'PFI'],
  'short': ['LFI', 'ALFI', 'MFI', 'JMFI']},
 Timestamp('2016-04-01 00:00:00'): {'long': ['JFI', 'HCFI', 'RBFI', 'PFI'],
  'short': ['RMFI', 'IFI', 'LFI', 'MFI']},
 Timestamp('2016-04-08 00:00:00'): {'long': ['JFI', 'HCFI', 'JMFI', 'PFI'],
  'short': ['PPFI', 'LFI', 'MAFI', 'IFI']},
 Timestamp('2016-04-15 00:00:00'): {'long': ['JFI', 'HCFI', 'JMFI', 'RBFI'],
  'short': ['MAFI', 'IFI', 'PPFI', 'LFI']},
 Timestamp('2016-04-22 00:00:00'): {'long': ['JFI', 'JMFI', 'HCFI', 'RBFI'],
  'short': ['RMFI', 'MAFI', 'PPFI', 'LFI']},
 Timestamp('2016-04-29 00:00:00'): {'long': ['JFI', 'JMFI', 'RBFI', 'IFI'],
  'short': ['YFI', 'PPFI', 'PFI', 'LFI']},
 Timestamp('2016-05-06 00:00:00'): {'long': ['JFI', 'MFI', 'RMFI', 'IFI'],
  'short': ['HCFI', 'PPFI', 'PFI', 'LFI']},
 Timestamp('2016-05-13 00:00:00'): {'long': ['MFI', 'RMFI', 'ALFI', 'PPFI'],
  'short': ['PFI', 'RBFI', 'HCFI', 'IFI']},
 Timestamp('2016-05-20 00:00:00'): {'long': ['MFI', 'RMFI', 'ALFI', 'ZCFI'],
  'short': ['PFI', 'IFI', 'HCFI', 'RBFI']},
 Timestamp('2016-05-27 00:00:00'): {'long': ['MFI', 'RMFI', 'ZCFI', 'ALFI'],
  'short': ['HCFI', 'JFI', 'RBFI', 'IFI']},
 Timestamp('2016-06-03 00:00:00'): {'long': ['RMFI', 'MFI', 'ZCFI', 'JMFI'],
  'short': ['JFI', 'HCFI', 'RBFI', 'IFI']},
 Timestamp('2016-06-08 00:00:00'): {'long': ['MFI', 'RMFI', 'ZCFI', 'PPFI'],
  'short': ['PFI', 'YFI', 'JFI', 'IFI']},
 Timestamp('2016-06-17 00:00:00'): {'long': ['MFI', 'RMFI', 'LFI', 'ZCFI'],
  'short': ['PFI', 'ALFI', 'JMFI', 'JFI']},
 Timestamp('2016-06-24 00:00:00'): {'long': ['RMFI', 'PPFI', 'ZCFI', 'MFI'],
  'short': ['YFI', 'MAFI', 'ALFI', 'PFI']},
 Timestamp('2016-07-01 00:00:00'): {'long': ['IFI', 'RBFI', 'RMFI', 'PPFI'],
  'short': ['JMFI', 'YFI', 'ALFI', 'PFI']},
 Timestamp('2016-07-08 00:00:00'): {'long': ['IFI', 'PPFI', 'RBFI', 'HCFI'],
  'short': ['YFI', 'RMFI', 'MFI', 'PFI']},
 Timestamp('2016-07-15 00:00:00'): {'long': ['IFI', 'RBFI', 'JFI', 'HCFI'],
  'short': ['MAFI', 'PFI', 'MFI', 'RMFI']},
 Timestamp('2016-07-22 00:00:00'): {'long': ['JFI', 'IFI', 'HCFI', 'RBFI'],
  'short': ['ALFI', 'PFI', 'MFI', 'RMFI']},
 Timestamp('2016-07-29 00:00:00'): {'long': ['JFI', 'IFI', 'JMFI', 'ZCFI'],
  'short': ['YFI', 'MAFI', 'MFI', 'RMFI']},
 Timestamp('2016-08-05 00:00:00'): {'long': ['JFI', 'IFI', 'ZCFI', 'JMFI'],
  'short': ['YFI', 'ALFI', 'RMFI', 'MFI']},
 Timestamp('2016-08-12 00:00:00'): {'long': ['JFI', 'JMFI', 'ZCFI', 'PFI'],
  'short': ['PPFI', 'ALFI', 'RMFI', 'MFI']},
 Timestamp('2016-08-19 00:00:00'): {'long': ['JFI', 'JMFI', 'RBFI', 'HCFI'],
  'short': ['LFI', 'MFI', 'PPFI', 'RMFI']},
 Timestamp('2016-08-26 00:00:00'): {'long': ['JFI', 'JMFI', 'PFI', 'HCFI'],
  'short': ['MFI', 'IFI', 'PPFI', 'RMFI']},
 Timestamp('2016-09-02 00:00:00'): {'long': ['JMFI', 'ZCFI', 'JFI', 'PFI'],
  'short': ['RBFI', 'RMFI', 'PPFI', 'IFI']},
 Timestamp('2016-09-09 00:00:00'): {'long': ['JMFI', 'PFI', 'YFI', 'ZCFI'],
  'short': ['RMFI', 'PPFI', 'RBFI', 'IFI']},
 Timestamp('2016-09-14 00:00:00'): {'long': ['ZCFI', 'JMFI', 'MAFI', 'LFI'],
  'short': ['RMFI', 'JFI', 'IFI', 'RBFI']},
 Timestamp('2016-09-23 00:00:00'): {'long': ['ZCFI', 'JMFI', 'MAFI', 'PFI'],
  'short': ['HCFI', 'PPFI', 'IFI', 'RBFI']},
 Timestamp('2016-09-30 00:00:00'): {'long': ['JMFI', 'JFI', 'MAFI', 'ZCFI'],
  'short': ['RMFI', 'IFI', 'HCFI', 'RBFI']},
 Timestamp('2016-10-14 00:00:00'): {'long': ['JMFI', 'JFI', 'ZCFI', 'MAFI'],
  'short': ['PPFI', 'PFI', 'RMFI', 'MFI']},
 Timestamp('2016-10-21 00:00:00'): {'long': ['JMFI', 'JFI', 'ZCFI', 'IFI'],
  'short': ['PFI', 'ALFI', 'RMFI', 'MFI']},
 Timestamp('2016-10-28 00:00:00'): {'long': ['JFI', 'JMFI', 'ZCFI', 'PPFI'],
  'short': ['YFI', 'PFI', 'RMFI', 'MFI']},
 Timestamp('2016-11-04 00:00:00'): {'long': ['JFI', 'JMFI', 'IFI', 'HCFI'],
  'short': ['PFI', 'YFI', 'RMFI', 'MFI']},
 Timestamp('2016-11-11 00:00:00'): {'long': ['JFI', 'JMFI', 'IFI', 'RBFI'],
  'short': ['RMFI', 'ALFI', 'YFI', 'MFI']},
 Timestamp('2016-11-18 00:00:00'): {'long': ['JFI', 'IFI', 'JMFI', 'HCFI'],
  'short': ['MFI', 'RMFI', 'LFI', 'ZCFI']},
 Timestamp('2016-11-25 00:00:00'): {'long': ['IFI', 'RBFI', 'HCFI', 'JFI'],
  'short': ['MFI', 'PPFI', 'LFI', 'ZCFI']},
 Timestamp('2016-12-02 00:00:00'): {'long': ['IFI', 'RBFI', 'HCFI', 'RMFI'],
  'short': ['JFI', 'JMFI', 'LFI', 'ZCFI']},
 Timestamp('2016-12-09 00:00:00'): {'long': ['MAFI', 'HCFI', 'RBFI', 'PPFI'],
  'short': ['ALFI', 'JFI', 'ZCFI', 'JMFI']},
 Timestamp('2016-12-16 00:00:00'): {'long': ['MAFI', 'RBFI', 'PPFI', 'HCFI'],
  'short': ['ALFI', 'JFI', 'ZCFI', 'JMFI']},
 Timestamp('2016-12-23 00:00:00'): {'long': ['MAFI', 'PPFI', 'LFI', 'YFI'],
  'short': ['ZCFI', 'IFI', 'JFI', 'JMFI']},
 Timestamp('2016-12-30 00:00:00'): {'long': ['MAFI', 'PPFI', 'LFI', 'YFI'],
  'short': ['RBFI', 'ZCFI', 'JMFI', 'JFI']},
 Timestamp('2017-01-06 00:00:00'): {'long': ['PFI', 'YFI', 'ALFI', 'RMFI'],
  'short': ['RBFI', 'JMFI', 'IFI', 'JFI']},
 Timestamp('2017-01-13 00:00:00'): {'long': ['ALFI', 'LFI', 'IFI', 'RMFI'],
  'short': ['RBFI', 'MAFI', 'PPFI', 'JFI']},
 Timestamp('2017-01-20 00:00:00'): {'long': ['IFI', 'RBFI', 'RMFI', 'ALFI'],
  'short': ['MAFI', 'ZCFI', 'JFI', 'JMFI']},
 Timestamp('2017-01-26 00:00:00'): {'long': ['IFI', 'RBFI', 'ALFI', 'HCFI'],
  'short': ['PPFI', 'LFI', 'YFI', 'PFI']},
 Timestamp('2017-02-03 00:00:00'): {'long': ['ALFI', 'IFI', 'RBFI', 'ZCFI'],
  'short': ['YFI', 'PFI', 'JMFI', 'JFI']},
 Timestamp('2017-02-10 00:00:00'): {'long': ['IFI', 'RBFI', 'MAFI', 'HCFI'],
  'short': ['PFI', 'YFI', 'JFI', 'JMFI']},
 Timestamp('2017-02-17 00:00:00'): {'long': ['IFI', 'MAFI', 'RBFI', 'ALFI'],
  'short': ['LFI', 'JMFI', 'YFI', 'PFI']},
 Timestamp('2017-02-24 00:00:00'): {'long': ['IFI', 'ZCFI', 'RBFI', 'JMFI'],
  'short': ['PPFI', 'LFI', 'YFI', 'PFI']},
 Timestamp('2017-03-03 00:00:00'): {'long': ['JFI', 'RBFI', 'JMFI', 'IFI'],
  'short': ['MAFI', 'PFI', 'LFI', 'PPFI']},
 Timestamp('2017-03-10 00:00:00'): {'long': ['JFI', 'JMFI', 'ZCFI', 'RBFI'],
  'short': ['MAFI', 'PFI', 'LFI', 'PPFI']},
 Timestamp('2017-03-17 00:00:00'): {'long': ['ZCFI', 'JFI', 'JMFI', 'RBFI'],
  'short': ['LFI', 'PPFI', 'HCFI', 'MAFI']},
 Timestamp('2017-03-24 00:00:00'): {'long': ['ZCFI', 'JFI', 'JMFI', 'ALFI'],
  'short': ['RBFI', 'HCFI', 'IFI', 'MAFI']},
 Timestamp('2017-03-31 00:00:00'): {'long': ['ZCFI', 'JFI', 'ALFI', 'JMFI'],
  'short': ['MAFI', 'HCFI', 'YFI', 'IFI']},
 Timestamp('2017-04-07 00:00:00'): {'long': ['ZCFI', 'JFI', 'ALFI', 'LFI'],
  'short': ['HCFI', 'RBFI', 'YFI', 'IFI']},
 Timestamp('2017-04-14 00:00:00'): {'long': ['ALFI', 'RMFI', 'MFI', 'ZCFI'],
  'short': ['JMFI', 'HCFI', 'RBFI', 'IFI']},
 Timestamp('2017-04-21 00:00:00'): {'long': ['ALFI', 'RMFI', 'MFI', 'LFI'],
  'short': ['HCFI', 'YFI', 'RBFI', 'IFI']},
 Timestamp('2017-04-28 00:00:00'): {'long': ['ALFI', 'RMFI', 'MFI', 'HCFI'],
  'short': ['JMFI', 'IFI', 'JFI', 'ZCFI']},
 Timestamp('2017-05-05 00:00:00'): {'long': ['RMFI', 'MFI', 'ALFI', 'YFI'],
  'short': ['ZCFI', 'IFI', 'JFI', 'JMFI']},
 Timestamp('2017-05-12 00:00:00'): {'long': ['PFI', 'YFI', 'RBFI', 'MFI'],
  'short': ['MAFI', 'IFI', 'JMFI', 'ZCFI']},
 Timestamp('2017-05-19 00:00:00'): {'long': ['RBFI', 'LFI', 'HCFI', 'PFI'],
  'short': ['JFI', 'RMFI', 'ZCFI', 'JMFI']},
 Timestamp('2017-05-26 00:00:00'): {'long': ['RBFI', 'LFI', 'PPFI', 'PFI'],
  'short': ['JFI', 'RMFI', 'JMFI', 'IFI']},
 Timestamp('2017-06-02 00:00:00'): {'long': ['LFI', 'ALFI', 'PPFI', 'PFI'],
  'short': ['RMFI', 'JFI', 'JMFI', 'IFI']},
 Timestamp('2017-06-09 00:00:00'): {'long': ['ZCFI', 'HCFI', 'MAFI', 'PPFI'],
  'short': ['RMFI', 'JFI', 'IFI', 'JMFI']},
 Timestamp('2017-06-16 00:00:00'): {'long': ['ZCFI', 'HCFI', 'MAFI', 'JFI'],
  'short': ['PFI', 'RMFI', 'JMFI', 'IFI']},
 Timestamp('2017-06-23 00:00:00'): {'long': ['ZCFI', 'JFI', 'HCFI', 'JMFI'],
  'short': ['RBFI', 'PFI', 'PPFI', 'LFI']},
 Timestamp('2017-06-30 00:00:00'): {'long': ['JFI', 'JMFI', 'HCFI', 'ZCFI'],
  'short': ['RMFI', 'MFI', 'ALFI', 'LFI']},
 Timestamp('2017-07-07 00:00:00'): {'long': ['JFI', 'JMFI', 'IFI', 'RBFI'],
  'short': ['PFI', 'YFI', 'ALFI', 'LFI']},
 Timestamp('2017-07-14 00:00:00'): {'long': ['JMFI', 'JFI', 'RBFI', 'HCFI'],
  'short': ['ZCFI', 'LFI', 'YFI', 'PFI']},
 Timestamp('2017-07-21 00:00:00'): {'long': ['JMFI', 'IFI', 'JFI', 'RBFI'],
  'short': ['RMFI', 'ZCFI', 'PFI', 'ALFI']},
 Timestamp('2017-07-28 00:00:00'): {'long': ['JMFI', 'JFI', 'IFI', 'HCFI'],
  'short': ['ALFI', 'YFI', 'MAFI', 'ZCFI']},
 Timestamp('2017-08-04 00:00:00'): {'long': ['IFI', 'HCFI', 'JMFI', 'JFI'],
  'short': ['PFI', 'ZCFI', 'MFI', 'RMFI']},
 Timestamp('2017-08-11 00:00:00'): {'long': ['JFI', 'JMFI', 'IFI', 'ALFI'],
  'short': ['ZCFI', 'PFI', 'MFI', 'RMFI']},
 Timestamp('2017-08-18 00:00:00'): {'long': ['JMFI', 'JFI', 'ALFI', 'HCFI'],
  'short': ['ZCFI', 'LFI', 'MFI', 'RMFI']},
 Timestamp('2017-08-25 00:00:00'): {'long': ['JFI', 'JMFI', 'ALFI', 'MAFI'],
  'short': ['YFI', 'PFI', 'RMFI', 'MFI']},
 Timestamp('2017-09-01 00:00:00'): {'long': ['JFI', 'MAFI', 'ALFI', 'JMFI'],
  'short': ['YFI', 'PFI', 'MFI', 'RMFI']},
 Timestamp('2017-09-08 00:00:00'): {'long': ['JFI', 'MAFI', 'PPFI', 'JMFI'],
  'short': ['MFI', 'RMFI', 'IFI', 'ALFI']},
 Timestamp('2017-09-15 00:00:00'): {'long': ['ZCFI', 'PFI', 'MAFI', 'YFI'],
  'short': ['ALFI', 'RBFI', 'IFI', 'JMFI']},
 Timestamp('2017-09-22 00:00:00'): {'long': ['RMFI', 'MFI', 'PFI', 'ZCFI'],
  'short': ['RBFI', 'JFI', 'JMFI', 'IFI']},
 Timestamp('2017-09-29 00:00:00'): {'long': ['ZCFI', 'RMFI', 'MFI', 'PFI'],
  'short': ['RBFI', 'JFI', 'JMFI', 'IFI']},
 Timestamp('2017-10-13 00:00:00'): {'long': ['RMFI', 'MFI', 'ALFI', 'PFI'],
  'short': ['MAFI', 'JMFI', 'IFI', 'JFI']},
 Timestamp('2017-10-20 00:00:00'): {'long': ['RMFI', 'MFI', 'PPFI', 'LFI'],
  'short': ['YFI', 'IFI', 'JMFI', 'JFI']},
 Timestamp('2017-10-27 00:00:00'): {'long': ['PFI', 'HCFI', 'PPFI', 'RBFI'],
  'short': ['RMFI', 'IFI', 'JMFI', 'JFI']},
 Timestamp('2017-11-03 00:00:00'): {'long': ['PFI', 'MFI', 'LFI', 'MAFI'],
  'short': ['RBFI', 'HCFI', 'ZCFI', 'JFI']},
 Timestamp('2017-11-10 00:00:00'): {'long': ['MAFI', 'IFI', 'ZCFI', 'JMFI'],
  'short': ['MFI', 'RMFI', 'HCFI', 'ALFI']},
 Timestamp('2017-11-17 00:00:00'): {'long': ['MAFI', 'JFI', 'JMFI', 'RMFI'],
  'short': ['PFI', 'LFI', 'ALFI', 'HCFI']},
 Timestamp('2017-11-24 00:00:00'): {'long': ['JMFI', 'JFI', 'IFI', 'MAFI'],
  'short': ['LFI', 'YFI', 'PFI', 'ALFI']},
 Timestamp('2017-12-01 00:00:00'): {'long': ['JFI', 'JMFI', 'IFI', 'RBFI'],
  'short': ['LFI', 'YFI', 'PFI', 'ALFI']},
 Timestamp('2017-12-08 00:00:00'): {'long': ['JFI', 'IFI', 'MAFI', 'RMFI'],
  'short': ['LFI', 'YFI', 'PFI', 'ALFI']},
 Timestamp('2017-12-15 00:00:00'): {'long': ['JFI', 'IFI', 'JMFI', 'ZCFI'],
  'short': ['LFI', 'YFI', 'PFI', 'ALFI']},
 Timestamp('2017-12-22 00:00:00'): {'long': ['IFI', 'JMFI', 'JFI', 'ZCFI'],
  'short': ['MFI', 'ALFI', 'PFI', 'YFI']},
 Timestamp('2017-12-29 00:00:00'): {'long': ['ALFI', 'PPFI', 'LFI', 'IFI'],
  'short': ['YFI', 'JMFI', 'RBFI', 'JFI']},
 Timestamp('2018-01-05 00:00:00'): {'long': ['IFI', 'JMFI', 'PPFI', 'ALFI'],
  'short': ['HCFI', 'RBFI', 'RMFI', 'MFI']},
 Timestamp('2018-01-12 00:00:00'): {'long': ['IFI', 'JMFI', 'LFI', 'PPFI'],
  'short': ['HCFI', 'ZCFI', 'RMFI', 'MFI']},
 Timestamp('2018-01-19 00:00:00'): {'long': ['PPFI', 'IFI', 'LFI', 'RBFI'],
  'short': ['MFI', 'JFI', 'MAFI', 'JMFI']}}

In [92]:
testdate = datetime.strptime('20150518', '%Y%m%d')
#lsCombo[test.backTestingDateList[8]]

In [93]:
def converToVolume(holdingclass):
    try:
        volume = holdingclass.volume * holdingclass.direction
        #volume =holdingclass.averageCost
    except:
        volume = np.NaN
    return volume

def converToAverageCost(holdingclass):
    try:
        #volume = holdingclass.volume * holdingclass.direction
        volume =holdingclass.averageCost
    except:
        volume = np.NaN
    return volume

In [94]:
pv = pd.DataFrame.from_dict(test.getAllPosition(), orient='index').applymap(converToVolume).sort_index(axis=1)
pa  = pd.DataFrame.from_dict(test.getAllPosition(), orient='index').applymap(converToAverageCost).sort_index(axis=1)

In [95]:
test.currentPositionDict


Out[95]:
{'HCFI': <BackTestingEngine.futureBackTestingEngine.holdingData at 0xe6ea518>,
 'IFI': <BackTestingEngine.futureBackTestingEngine.holdingData at 0xf65aba8>,
 'JMFI': <BackTestingEngine.futureBackTestingEngine.holdingData at 0xd9ec2e8>,
 'LFI': <BackTestingEngine.futureBackTestingEngine.holdingData at 0xdbacbe0>,
 'MFI': <BackTestingEngine.futureBackTestingEngine.holdingData at 0xfd70d30>,
 'PPFI': <BackTestingEngine.futureBackTestingEngine.holdingData at 0xf62a780>,
 'RMFI': <BackTestingEngine.futureBackTestingEngine.holdingData at 0xfc706a0>,
 'ZCFI': <BackTestingEngine.futureBackTestingEngine.holdingData at 0xea5a160>}

In [ ]:


In [96]:
i1 = pa.loc[pa["IFI"].isnull()].iloc[0].name
pa.loc[:i1].iloc[:-1]


Out[96]:
ALFI HCFI IFI JFI JMFI LFI MAFI MFI PFI PPFI RBFI RMFI YFI ZCFI
2015-05-11 -13458.661920 2494.355755 440.882483 NaN NaN -9761.441681 NaN -2733.197208 5034.236287 -8658.278949 NaN NaN 5850.061744 NaN
2015-05-14 -13458.661920 2494.355755 440.882483 NaN NaN -9761.441681 NaN -2733.197208 5034.236287 -8658.278949 NaN NaN 5850.061744 NaN
2015-05-15 -13458.661920 2494.355755 440.882483 NaN NaN -9761.441681 NaN -2733.197208 5034.236287 -8658.278949 NaN NaN 5850.061744 NaN
2015-05-18 NaN NaN 440.882483 NaN -671.834037 NaN -2510.557241 -2733.197208 5034.236287 -8658.278949 NaN NaN 5850.061744 423.585295
2015-05-19 NaN NaN 440.882483 NaN -671.834037 NaN -2510.557241 -2733.197208 5034.236287 -8658.278949 NaN NaN 5850.061744 423.585295
2015-05-20 NaN NaN 440.882483 NaN -671.834037 NaN -2510.557241 -2733.197208 5034.236287 -8658.278949 NaN NaN 5850.061744 423.585295
2015-05-21 NaN NaN 440.882483 NaN -671.834037 NaN -2510.557241 -2733.197208 5034.236287 -8658.278949 NaN NaN 5850.061744 423.585295
2015-05-22 NaN NaN 440.882483 NaN -671.834037 NaN -2510.557241 -2733.197208 5034.236287 -8658.278949 NaN NaN 5850.061744 423.585295
2015-05-25 NaN NaN 440.882483 NaN 681.228264 -9529.927584 NaN -2733.197208 5034.236287 -8658.278949 NaN -2104.415787 NaN 423.585295
2015-05-26 NaN NaN 440.882483 NaN 681.228264 -9529.927584 NaN -2733.197208 5034.236287 -8658.278949 NaN -2104.415787 NaN 423.585295
2015-05-27 NaN NaN 440.882483 NaN 681.228264 -9529.927584 NaN -2733.197208 5034.236287 -8658.278949 NaN -2104.415787 NaN 423.585295
2015-05-28 NaN NaN 440.882483 NaN 681.228264 -9529.927584 NaN -2733.197208 5034.236287 -8658.278949 NaN -2104.415787 NaN 423.585295
2015-05-29 NaN NaN 440.882483 NaN 681.228264 -9529.927584 NaN -2733.197208 5034.236287 -8658.278949 NaN -2104.415787 NaN 423.585295
2015-06-01 NaN NaN 440.882483 NaN 681.228264 -9529.927584 NaN -2733.197208 5034.236287 -8658.278949 NaN -2104.415787 NaN 423.585295
2015-06-02 NaN NaN 440.882483 NaN 681.228264 -9529.927584 NaN -2733.197208 5034.236287 -8658.278949 NaN -2104.415787 NaN 423.585295
2015-06-03 NaN NaN 440.882483 NaN 681.228264 -9529.927584 NaN -2733.197208 5034.236287 -8658.278949 NaN -2104.415787 NaN 423.585295
2015-06-04 NaN NaN 440.882483 NaN 681.228264 -9529.927584 NaN -2733.197208 5034.236287 -8658.278949 NaN -2104.415787 NaN 423.585295
2015-06-05 NaN NaN 440.882483 NaN 681.228264 -9529.927584 NaN -2733.197208 5034.236287 -8658.278949 NaN -2104.415787 NaN 423.585295
2015-06-08 -12980.968125 NaN 440.882483 NaN NaN -9529.927584 NaN -2733.197208 5034.236287 NaN NaN -2104.415787 5912.207897 423.585295
2015-06-09 -12980.968125 NaN 440.882483 NaN NaN -9529.927584 NaN -2733.197208 5034.236287 NaN NaN -2104.415787 5912.207897 423.585295
2015-06-10 -12980.968125 NaN 440.882483 NaN NaN -9529.927584 NaN -2733.197208 5034.236287 NaN NaN -2104.415787 5912.207897 423.585295
2015-06-11 -12980.968125 NaN 440.882483 NaN NaN -9529.927584 NaN -2733.197208 5034.236287 NaN NaN -2104.415787 5912.207897 423.585295
2015-06-12 -12980.968125 NaN 440.882483 NaN NaN -9529.927584 NaN -2733.197208 5034.236287 NaN NaN -2104.415787 5912.207897 423.585295
2015-06-15 -12980.968125 NaN 440.882483 NaN 690.752309 9517.479651 NaN -2733.197208 NaN 8484.290936 -2306.714111 -2104.415787 NaN NaN
2015-06-16 -12980.968125 NaN 440.882483 NaN 690.752309 9517.479651 NaN -2733.197208 NaN 8484.290936 -2306.714111 -2104.415787 NaN NaN
2015-06-17 -12980.968125 NaN 440.882483 NaN 690.752309 9517.479651 NaN -2733.197208 NaN 8484.290936 -2306.714111 -2104.415787 NaN NaN
2015-06-18 -12980.968125 NaN 440.882483 NaN 690.752309 9517.479651 NaN -2733.197208 NaN 8484.290936 -2306.714111 -2104.415787 NaN NaN
2015-06-19 -12980.968125 NaN 440.882483 NaN 690.752309 9517.479651 NaN -2733.197208 NaN 8484.290936 -2306.714111 -2104.415787 NaN NaN
2015-06-23 -12980.968125 -2350.887025 440.882483 NaN NaN NaN 2511.297776 NaN 5098.791124 8484.290936 -2306.714111 NaN NaN -419.790105
2015-06-24 -12980.968125 -2350.887025 440.882483 NaN NaN NaN 2511.297776 NaN 5098.791124 8484.290936 -2306.714111 NaN NaN -419.790105
2015-06-25 -12980.968125 -2350.887025 440.882483 NaN NaN NaN 2511.297776 NaN 5098.791124 8484.290936 -2306.714111 NaN NaN -419.790105
2015-06-26 -12980.968125 -2350.887025 440.882483 NaN NaN NaN 2511.297776 NaN 5098.791124 8484.290936 -2306.714111 NaN NaN -419.790105

In [97]:
pv.loc["2017-8-1":]


Out[97]:
ALFI HCFI IFI JFI JMFI LFI MAFI MFI PFI PPFI RBFI RMFI YFI ZCFI
2017-08-01 -1.0 14.0 16.0 7.0 17.0 NaN -13.0 NaN NaN NaN NaN NaN -3.0 -40.0
2017-08-02 -1.0 14.0 16.0 7.0 17.0 NaN -13.0 NaN NaN NaN NaN NaN -3.0 -40.0
2017-08-03 -1.0 14.0 16.0 7.0 17.0 NaN -13.0 NaN NaN NaN NaN NaN -3.0 -40.0
2017-08-04 -1.0 14.0 16.0 7.0 17.0 NaN -13.0 NaN NaN NaN NaN NaN -3.0 -40.0
2017-08-07 NaN 14.0 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN -15.0 NaN -40.0
2017-08-08 NaN 14.0 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN -15.0 NaN -40.0
2017-08-09 NaN 14.0 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN -15.0 NaN -40.0
2017-08-10 NaN 14.0 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN -15.0 NaN -40.0
2017-08-11 NaN 14.0 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN -15.0 NaN -40.0
2017-08-14 1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN -15.0 NaN -40.0
2017-08-15 1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN -15.0 NaN -40.0
2017-08-16 1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN -15.0 NaN -40.0
2017-08-17 1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN -15.0 NaN -40.0
2017-08-18 1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN -15.0 NaN -40.0
2017-08-21 1.0 14.0 NaN 7.0 17.0 -1.0 NaN -12.0 NaN NaN NaN -15.0 NaN -40.0
2017-08-22 1.0 14.0 NaN 7.0 17.0 -1.0 NaN -12.0 NaN NaN NaN -15.0 NaN -40.0
2017-08-23 1.0 14.0 NaN 7.0 17.0 -1.0 NaN -12.0 NaN NaN NaN -15.0 NaN -40.0
2017-08-24 1.0 14.0 NaN 7.0 17.0 -1.0 NaN -12.0 NaN NaN NaN -15.0 NaN -40.0
2017-08-25 1.0 14.0 NaN 7.0 17.0 -1.0 NaN -12.0 NaN NaN NaN -15.0 NaN -40.0
2017-08-28 1.0 NaN NaN 7.0 17.0 NaN 13.0 -12.0 -3.0 NaN NaN -15.0 -3.0 NaN
2017-08-29 1.0 NaN NaN 7.0 17.0 NaN 13.0 -12.0 -3.0 NaN NaN -15.0 -3.0 NaN
2017-08-30 1.0 NaN NaN 7.0 17.0 NaN 13.0 -12.0 -3.0 NaN NaN -15.0 -3.0 NaN
2017-08-31 1.0 NaN NaN 7.0 17.0 NaN 13.0 -12.0 -3.0 NaN NaN -15.0 -3.0 NaN
2017-09-01 1.0 NaN NaN 7.0 17.0 NaN 13.0 -12.0 -3.0 NaN NaN -15.0 -3.0 NaN
2017-09-04 1.0 NaN NaN 7.0 17.0 NaN 13.0 -12.0 -3.0 NaN NaN -15.0 -3.0 NaN
2017-09-05 1.0 NaN NaN 7.0 17.0 NaN 13.0 -12.0 -3.0 NaN NaN -15.0 -3.0 NaN
2017-09-06 1.0 NaN NaN 7.0 17.0 NaN 13.0 -12.0 -3.0 NaN NaN -15.0 -3.0 NaN
2017-09-07 1.0 NaN NaN 7.0 17.0 NaN 13.0 -12.0 -3.0 NaN NaN -15.0 -3.0 NaN
2017-09-08 1.0 NaN NaN 7.0 17.0 NaN 13.0 -12.0 -3.0 NaN NaN -15.0 -3.0 NaN
2017-09-11 -1.0 NaN -16.0 7.0 17.0 NaN 13.0 -12.0 NaN 7.0 NaN -15.0 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2017-12-08 -1.0 NaN 16.0 7.0 17.0 -1.0 NaN NaN -3.0 NaN 14.0 NaN -3.0 NaN
2017-12-11 -1.0 NaN 16.0 7.0 NaN -1.0 13.0 NaN -3.0 NaN NaN 15.0 -3.0 NaN
2017-12-12 -1.0 NaN 16.0 7.0 NaN -1.0 13.0 NaN -3.0 NaN NaN 15.0 -3.0 NaN
2017-12-13 -1.0 NaN 16.0 7.0 NaN -1.0 13.0 NaN -3.0 NaN NaN 15.0 -3.0 NaN
2017-12-14 -1.0 NaN 16.0 7.0 NaN -1.0 13.0 NaN -3.0 NaN NaN 15.0 -3.0 NaN
2017-12-15 -1.0 NaN 16.0 7.0 NaN -1.0 13.0 NaN -3.0 NaN NaN 15.0 -3.0 NaN
2017-12-18 -1.0 NaN 16.0 7.0 17.0 -1.0 NaN NaN -3.0 NaN NaN NaN -3.0 40.0
2017-12-19 -1.0 NaN 16.0 7.0 17.0 -1.0 NaN NaN -3.0 NaN NaN NaN -3.0 40.0
2017-12-20 -1.0 NaN 16.0 7.0 17.0 -1.0 NaN NaN -3.0 NaN NaN NaN -3.0 40.0
2017-12-21 -1.0 NaN 16.0 7.0 17.0 -1.0 NaN NaN -3.0 NaN NaN NaN -3.0 40.0
2017-12-22 -1.0 NaN 16.0 7.0 17.0 -1.0 NaN NaN -3.0 NaN NaN NaN -3.0 40.0
2017-12-25 -1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN NaN -3.0 40.0
2017-12-26 -1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN NaN -3.0 40.0
2017-12-27 -1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN NaN -3.0 40.0
2017-12-28 -1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN NaN -3.0 40.0
2017-12-29 -1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN NaN -3.0 40.0
2018-01-02 1.0 NaN 16.0 -7.0 -17.0 1.0 NaN NaN NaN 7.0 -14.0 NaN -3.0 NaN
2018-01-03 1.0 NaN 16.0 -7.0 -17.0 1.0 NaN NaN NaN 7.0 -14.0 NaN -3.0 NaN
2018-01-04 1.0 NaN 16.0 -7.0 -17.0 1.0 NaN NaN NaN 7.0 -14.0 NaN -3.0 NaN
2018-01-05 1.0 NaN 16.0 -7.0 -17.0 1.0 NaN NaN NaN 7.0 -14.0 NaN -3.0 NaN
2018-01-08 1.0 -14.0 16.0 NaN 17.0 NaN NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2018-01-09 1.0 -14.0 16.0 NaN 17.0 NaN NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2018-01-10 1.0 -14.0 16.0 NaN 17.0 NaN NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2018-01-11 1.0 -14.0 16.0 NaN 17.0 NaN NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2018-01-12 1.0 -14.0 16.0 NaN 17.0 NaN NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2018-01-15 NaN -14.0 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 NaN -15.0 NaN -40.0
2018-01-16 NaN -14.0 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 NaN -15.0 NaN -40.0
2018-01-17 NaN -14.0 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 NaN -15.0 NaN -40.0
2018-01-18 NaN -14.0 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 NaN -15.0 NaN -40.0
2018-01-19 NaN -14.0 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 NaN -15.0 NaN -40.0

118 rows × 14 columns


In [98]:
test.backTestingDateList


Out[98]:
DatetimeIndex(['2015-05-04', '2015-05-05', '2015-05-06', '2015-05-07',
               '2015-05-08', '2015-05-11', '2015-05-14', '2015-05-15',
               '2015-05-18', '2015-05-19',
               ...
               '2018-01-08', '2018-01-09', '2018-01-10', '2018-01-11',
               '2018-01-12', '2018-01-15', '2018-01-16', '2018-01-17',
               '2018-01-18', '2018-01-19'],
              dtype='datetime64[ns]', length=666, freq=None)

In [99]:
h = pd.DataFrame.from_dict(test.holdingPnlDict,orient='index').reindex(test.backTestingDateList).round(2)

In [100]:
#(p.sort_index(axis=1).index == h.sort_index(axis=1).index).any()

In [ ]:


In [ ]:


In [101]:
h.sort_index(axis=1).head(10).sum(axis=1)


Out[101]:
2015-05-04        0.00
2015-05-05        0.00
2015-05-06        0.00
2015-05-07        0.00
2015-05-08        0.00
2015-05-11    17135.42
2015-05-14     8285.71
2015-05-15    16459.63
2015-05-18    15607.72
2015-05-19    13857.70
dtype: float64

In [102]:
intersection = list(set(test.backTestingDateList) & set(endOfWeekList))

In [ ]:


In [103]:
closePrice = Close.loc[test.backTestingDateList[-1]]
holdingPnl ={}
for stkID, holding in test.getCurrentPosition().iteritems():
    print stkID, holding.direction,np.round(holding.averageCost,2),closePrice.loc[stkID]
    holdingPnl[stkID] = ( holding.direction*closePrice.loc[stkID] - holding.averageCost) * holding.volume


HCFI -1 -3838.12 3913.4144
MFI -1 -2776.14 2775.9027
LFI 1 10143.38 9846.6543
ZCFI -1 -639.06 653.3411
JMFI 1 1359.39 1286.7903
RMFI -1 -2295.79 2293.9899
IFI 1 509.65 545.2467
PPFI 1 9305.19 9461.4616

In [104]:
holdingPnl


Out[104]:
{'HCFI': -1054.1500291700031,
 'IFI': 569.51584640000056,
 'JMFI': -1234.1602922500035,
 'LFI': -296.72744749999947,
 'MFI': 2.8808799600064958,
 'PPFI': 1093.9117249024985,
 'RMFI': 26.995943399997486,
 'ZCFI': -571.24278399999639}

In [105]:
closePrice


Out[105]:
RBFI     3906.0007
ALFI    14805.5125
JFI      1985.6574
JMFI     1286.7903
ZCFI      653.3411
HCFI     3913.4144
MFI      2775.9027
RMFI     2293.9899
YFI      5698.6618
MAFI     2791.4619
PPFI     9461.4616
PFI      5154.6578
LFI      9846.6543
IFI       545.2467
Name: 2018-01-19 00:00:00, dtype: float64

In [106]:
test.showBackTestingResult()


2018-02-13 14:33:34.409000	期末净值:	0.9879
2018-02-13 14:33:34.410000	总盈亏:	-60,740.1659
2018-02-13 14:33:34.410000	年化收益率:	-0.0046
2018-02-13 14:33:34.410000	年化波动率:	0.0702
2018-02-13 14:33:34.411000	夏普比率:	-0.0652
2018-02-13 14:33:34.411000	最大回撤: 	0.0602
2018-02-13 14:33:34.411000	换手率: 	0.1397
2018-02-13 14:33:34.411000	总手续费: 	22,768.0646

In [107]:
tradePnl = pd.DataFrame.from_dict(test.tradingPnlDict, orient='index')

In [108]:
tradePnl.loc['2015-06-15'].sort_values()


Out[108]:
YFI    -701651.603317
ZCFI   -676294.299506
PFI    -608578.519884
LFI     476129.516142
PPFI              NaN
HCFI              NaN
ALFI              NaN
MAFI              NaN
RBFI              NaN
JMFI              NaN
JFI               NaN
IFI               NaN
RMFI              NaN
MFI               NaN
Name: 2015-06-15 00:00:00, dtype: float64

In [109]:
tradePnl


Out[109]:
YFI PPFI HCFI ALFI LFI PFI MAFI RBFI ZCFI JMFI JFI IFI RMFI MFI
2015-05-18 NaN NaN -6.951000e+05 669029.612395 483729.484773 NaN NaN NaN NaN NaN NaN NaN NaN NaN
2015-05-25 -693016.451734 NaN NaN NaN NaN NaN 648109.756451 NaN NaN 6.890951e+05 NaN NaN NaN NaN
2015-06-08 NaN 596647.878249 NaN NaN NaN NaN NaN NaN NaN -6.960976e+05 NaN NaN NaN NaN
2015-06-15 -701651.603317 NaN NaN NaN 476129.516142 -608578.519884 NaN NaN -6.762943e+05 NaN NaN NaN NaN NaN
2015-06-23 NaN NaN NaN NaN -475933.155726 NaN NaN NaN NaN -6.985124e+05 NaN NaN 631768.957547 640663.517678
2015-06-29 NaN NaN NaN 642812.298503 NaN -613642.572872 NaN NaN NaN NaN NaN -697929.693978 NaN NaN
2015-07-06 NaN NaN NaN NaN NaN NaN -651138.807337 NaN NaN NaN 6.164618e+05 NaN NaN NaN
2015-07-13 NaN -582782.872654 NaN NaN NaN NaN NaN NaN 6.731063e+05 NaN NaN NaN NaN NaN
2015-07-20 NaN NaN NaN NaN NaN NaN -612219.771881 NaN NaN NaN NaN NaN NaN NaN
2015-07-27 NaN NaN NaN NaN -467750.422056 NaN NaN 6.075424e+05 NaN NaN 5.651200e+05 NaN NaN NaN
2015-08-03 -661914.116440 NaN 6.174019e+05 NaN NaN NaN NaN NaN NaN NaN NaN 621318.231870 NaN NaN
2015-08-10 NaN 537748.323660 NaN -612442.341084 NaN NaN NaN NaN NaN 6.200171e+05 NaN NaN -651104.040490 -640799.061301
2015-08-17 NaN NaN NaN NaN 436301.153742 NaN NaN NaN NaN NaN NaN NaN NaN NaN
2015-08-24 NaN NaN -5.744740e+05 602537.514405 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2015-08-31 NaN NaN NaN NaN 423121.031496 NaN NaN -5.705117e+05 NaN NaN -5.679645e+05 NaN 629764.846086 NaN
2015-09-07 -652875.675104 NaN NaN NaN NaN NaN NaN NaN NaN 5.813837e+05 NaN NaN NaN NaN
2015-09-14 NaN -529609.031317 5.470541e+05 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN -638751.804635
2015-09-21 NaN NaN NaN NaN -422358.257943 NaN NaN NaN NaN NaN NaN NaN 615553.188718 NaN
2015-09-28 NaN NaN NaN -595414.397919 NaN 547465.911153 549915.686269 NaN -6.762943e+05 NaN NaN NaN NaN -637590.666827
2015-10-08 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 5.365154e+05 -596998.091558 NaN NaN
2015-10-12 NaN 510255.405869 NaN NaN NaN NaN NaN NaN NaN NaN NaN 595330.264634 NaN NaN
2015-10-19 NaN NaN 5.285729e+05 NaN NaN NaN NaN 5.330999e+05 NaN -5.864382e+05 NaN NaN 602580.666816 NaN
2015-10-26 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 5.248752e+05 NaN NaN -625128.987102
2015-11-02 NaN NaN NaN NaN NaN NaN -499766.990968 5.027615e+05 NaN NaN NaN NaN NaN NaN
2015-11-09 NaN NaN NaN NaN -404115.011055 -533994.913022 NaN NaN NaN NaN 5.011747e+05 NaN NaN NaN
2015-11-16 NaN NaN NaN NaN NaN NaN NaN -4.967661e+05 NaN NaN NaN 558822.866562 NaN NaN
2015-11-23 NaN NaN NaN 528405.167913 NaN 507066.060084 -480689.812171 NaN NaN -5.527274e+05 NaN NaN -571162.075786 NaN
2015-11-30 NaN NaN -4.821904e+05 NaN 372547.856215 NaN NaN -4.691601e+05 NaN NaN NaN NaN NaN NaN
2015-12-07 NaN NaN NaN NaN NaN NaN NaN NaN 6.731063e+05 -5.505128e+05 NaN NaN NaN NaN
2015-12-21 -663137.669716 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2017-06-05 NaN NaN NaN NaN NaN NaN NaN -8.278104e+05 NaN NaN NaN NaN NaN NaN
2017-06-12 NaN NaN NaN -688718.555496 -458408.651387 -632074.001666 NaN NaN NaN NaN NaN NaN NaN NaN
2017-06-19 NaN -551067.413623 NaN NaN NaN NaN NaN NaN NaN NaN 1.088680e+06 NaN NaN NaN
2017-06-26 NaN NaN NaN NaN NaN NaN -605538.525113 NaN NaN 1.115637e+06 NaN 704606.148246 672442.193819 NaN
2017-07-03 NaN 547416.461871 NaN NaN NaN 626737.793762 NaN 8.928289e+05 NaN NaN NaN NaN NaN NaN
2017-07-10 NaN NaN -9.090941e+05 NaN NaN NaN NaN NaN -9.133481e+05 NaN NaN NaN 676548.863507 661573.404365
2017-07-17 NaN NaN NaN 709020.953910 NaN NaN NaN NaN NaN NaN NaN -766035.010362 NaN NaN
2017-07-24 735593.241012 NaN -1.005010e+06 NaN 458228.350540 NaN NaN NaN NaN NaN NaN NaN NaN NaN
2017-07-31 NaN NaN NaN NaN NaN 647148.253765 NaN -9.779098e+05 NaN NaN NaN NaN 687827.901804 NaN
2017-08-07 742874.532342 NaN NaN 730913.739990 NaN NaN 644864.380678 NaN NaN NaN NaN NaN NaN NaN
2017-08-14 NaN NaN -1.075113e+06 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2017-08-21 NaN NaN NaN NaN NaN 648038.330245 NaN NaN NaN NaN NaN -869806.685944 NaN NaN
2017-08-28 NaN NaN -1.131508e+06 NaN 490132.199933 NaN NaN NaN 9.670631e+05 NaN NaN NaN NaN NaN
2017-09-11 761029.865110 NaN NaN -802696.262177 NaN 663681.410126 NaN NaN NaN NaN NaN NaN NaN NaN
2017-09-18 NaN -631133.104074 NaN NaN NaN NaN NaN NaN NaN -1.198608e+06 -1.338450e+06 NaN 659399.560538 659223.472012
2017-09-25 -760513.475277 NaN NaN 813172.317372 NaN NaN -707671.145862 NaN NaN NaN NaN NaN NaN NaN
2017-10-16 NaN NaN NaN NaN NaN NaN NaN 1.063126e+06 -1.018384e+06 NaN NaN NaN NaN NaN
2017-10-23 NaN NaN NaN -826122.507215 NaN -684237.789009 696228.765356 NaN NaN NaN NaN NaN NaN NaN
2017-10-30 734760.355641 NaN NaN NaN -487572.909170 NaN NaN NaN NaN NaN NaN NaN -672037.840481 -666697.775355
2017-11-06 NaN -635926.018174 -1.067893e+06 NaN NaN NaN NaN -1.012153e+06 NaN 1.243472e+06 NaN 785869.231391 665542.191946 NaN
2017-11-13 NaN NaN NaN NaN -490068.073401 -682293.691304 NaN 1.046298e+06 9.919944e+05 NaN 1.359911e+06 NaN NaN -667539.859375
2017-11-20 NaN NaN NaN NaN NaN NaN NaN NaN -1.008374e+06 NaN NaN -751845.797769 675043.314274 670246.272453
2017-11-27 NaN NaN 1.081693e+06 NaN NaN NaN NaN NaN NaN NaN NaN NaN -693242.206481 NaN
2017-12-04 NaN NaN NaN NaN NaN NaN -745241.263385 NaN NaN NaN NaN NaN NaN NaN
2017-12-11 NaN NaN NaN NaN NaN NaN NaN -1.125886e+06 NaN -1.267528e+06 NaN NaN NaN NaN
2017-12-18 NaN NaN NaN NaN NaN NaN -777518.364091 NaN NaN NaN NaN NaN -705008.088316 NaN
2017-12-25 NaN NaN NaN NaN 480678.035322 NaN NaN NaN NaN NaN NaN NaN NaN NaN
2018-01-02 NaN NaN NaN 773164.664880 NaN 646484.024005 NaN NaN -1.033228e+06 -1.327173e+06 -1.343197e+06 NaN NaN 668274.537496
2018-01-08 710621.968102 NaN NaN NaN -494489.805224 NaN NaN NaN NaN 1.360253e+06 1.409232e+06 NaN NaN NaN
2018-01-15 NaN NaN NaN -762782.521647 NaN NaN NaN 1.057872e+06 NaN NaN NaN NaN NaN NaN

132 rows × 14 columns


In [110]:
pa.loc['2015-06-15']


Out[110]:
ALFI   -12980.968125
HCFI             NaN
IFI       440.882483
JFI              NaN
JMFI      690.752309
LFI      9517.479651
MAFI             NaN
MFI     -2733.197208
PFI              NaN
PPFI     8484.290936
RBFI    -2306.714111
RMFI    -2104.415787
YFI              NaN
ZCFI             NaN
Name: 2015-06-15 00:00:00, dtype: float64

In [111]:
pv


Out[111]:
ALFI HCFI IFI JFI JMFI LFI MAFI MFI PFI PPFI RBFI RMFI YFI ZCFI
2015-05-11 -1.0 14.0 16.0 NaN NaN -1.0 NaN -12.0 3.0 -7.0 NaN NaN 3.0 NaN
2015-05-14 -1.0 14.0 16.0 NaN NaN -1.0 NaN -12.0 3.0 -7.0 NaN NaN 3.0 NaN
2015-05-15 -1.0 14.0 16.0 NaN NaN -1.0 NaN -12.0 3.0 -7.0 NaN NaN 3.0 NaN
2015-05-18 NaN NaN 16.0 NaN -17.0 NaN -13.0 -12.0 3.0 -7.0 NaN NaN 3.0 40.0
2015-05-19 NaN NaN 16.0 NaN -17.0 NaN -13.0 -12.0 3.0 -7.0 NaN NaN 3.0 40.0
2015-05-20 NaN NaN 16.0 NaN -17.0 NaN -13.0 -12.0 3.0 -7.0 NaN NaN 3.0 40.0
2015-05-21 NaN NaN 16.0 NaN -17.0 NaN -13.0 -12.0 3.0 -7.0 NaN NaN 3.0 40.0
2015-05-22 NaN NaN 16.0 NaN -17.0 NaN -13.0 -12.0 3.0 -7.0 NaN NaN 3.0 40.0
2015-05-25 NaN NaN 16.0 NaN 17.0 -1.0 NaN -12.0 3.0 -7.0 NaN -15.0 NaN 40.0
2015-05-26 NaN NaN 16.0 NaN 17.0 -1.0 NaN -12.0 3.0 -7.0 NaN -15.0 NaN 40.0
2015-05-27 NaN NaN 16.0 NaN 17.0 -1.0 NaN -12.0 3.0 -7.0 NaN -15.0 NaN 40.0
2015-05-28 NaN NaN 16.0 NaN 17.0 -1.0 NaN -12.0 3.0 -7.0 NaN -15.0 NaN 40.0
2015-05-29 NaN NaN 16.0 NaN 17.0 -1.0 NaN -12.0 3.0 -7.0 NaN -15.0 NaN 40.0
2015-06-01 NaN NaN 16.0 NaN 17.0 -1.0 NaN -12.0 3.0 -7.0 NaN -15.0 NaN 40.0
2015-06-02 NaN NaN 16.0 NaN 17.0 -1.0 NaN -12.0 3.0 -7.0 NaN -15.0 NaN 40.0
2015-06-03 NaN NaN 16.0 NaN 17.0 -1.0 NaN -12.0 3.0 -7.0 NaN -15.0 NaN 40.0
2015-06-04 NaN NaN 16.0 NaN 17.0 -1.0 NaN -12.0 3.0 -7.0 NaN -15.0 NaN 40.0
2015-06-05 NaN NaN 16.0 NaN 17.0 -1.0 NaN -12.0 3.0 -7.0 NaN -15.0 NaN 40.0
2015-06-08 -1.0 NaN 16.0 NaN NaN -1.0 NaN -12.0 3.0 NaN NaN -15.0 3.0 40.0
2015-06-09 -1.0 NaN 16.0 NaN NaN -1.0 NaN -12.0 3.0 NaN NaN -15.0 3.0 40.0
2015-06-10 -1.0 NaN 16.0 NaN NaN -1.0 NaN -12.0 3.0 NaN NaN -15.0 3.0 40.0
2015-06-11 -1.0 NaN 16.0 NaN NaN -1.0 NaN -12.0 3.0 NaN NaN -15.0 3.0 40.0
2015-06-12 -1.0 NaN 16.0 NaN NaN -1.0 NaN -12.0 3.0 NaN NaN -15.0 3.0 40.0
2015-06-15 -1.0 NaN 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2015-06-16 -1.0 NaN 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2015-06-17 -1.0 NaN 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2015-06-18 -1.0 NaN 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2015-06-19 -1.0 NaN 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2015-06-23 -1.0 -14.0 16.0 NaN NaN NaN 13.0 NaN 3.0 7.0 -14.0 NaN NaN -40.0
2015-06-24 -1.0 -14.0 16.0 NaN NaN NaN 13.0 NaN 3.0 7.0 -14.0 NaN NaN -40.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2017-12-08 -1.0 NaN 16.0 7.0 17.0 -1.0 NaN NaN -3.0 NaN 14.0 NaN -3.0 NaN
2017-12-11 -1.0 NaN 16.0 7.0 NaN -1.0 13.0 NaN -3.0 NaN NaN 15.0 -3.0 NaN
2017-12-12 -1.0 NaN 16.0 7.0 NaN -1.0 13.0 NaN -3.0 NaN NaN 15.0 -3.0 NaN
2017-12-13 -1.0 NaN 16.0 7.0 NaN -1.0 13.0 NaN -3.0 NaN NaN 15.0 -3.0 NaN
2017-12-14 -1.0 NaN 16.0 7.0 NaN -1.0 13.0 NaN -3.0 NaN NaN 15.0 -3.0 NaN
2017-12-15 -1.0 NaN 16.0 7.0 NaN -1.0 13.0 NaN -3.0 NaN NaN 15.0 -3.0 NaN
2017-12-18 -1.0 NaN 16.0 7.0 17.0 -1.0 NaN NaN -3.0 NaN NaN NaN -3.0 40.0
2017-12-19 -1.0 NaN 16.0 7.0 17.0 -1.0 NaN NaN -3.0 NaN NaN NaN -3.0 40.0
2017-12-20 -1.0 NaN 16.0 7.0 17.0 -1.0 NaN NaN -3.0 NaN NaN NaN -3.0 40.0
2017-12-21 -1.0 NaN 16.0 7.0 17.0 -1.0 NaN NaN -3.0 NaN NaN NaN -3.0 40.0
2017-12-22 -1.0 NaN 16.0 7.0 17.0 -1.0 NaN NaN -3.0 NaN NaN NaN -3.0 40.0
2017-12-25 -1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN NaN -3.0 40.0
2017-12-26 -1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN NaN -3.0 40.0
2017-12-27 -1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN NaN -3.0 40.0
2017-12-28 -1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN NaN -3.0 40.0
2017-12-29 -1.0 NaN 16.0 7.0 17.0 NaN NaN -12.0 -3.0 NaN NaN NaN -3.0 40.0
2018-01-02 1.0 NaN 16.0 -7.0 -17.0 1.0 NaN NaN NaN 7.0 -14.0 NaN -3.0 NaN
2018-01-03 1.0 NaN 16.0 -7.0 -17.0 1.0 NaN NaN NaN 7.0 -14.0 NaN -3.0 NaN
2018-01-04 1.0 NaN 16.0 -7.0 -17.0 1.0 NaN NaN NaN 7.0 -14.0 NaN -3.0 NaN
2018-01-05 1.0 NaN 16.0 -7.0 -17.0 1.0 NaN NaN NaN 7.0 -14.0 NaN -3.0 NaN
2018-01-08 1.0 -14.0 16.0 NaN 17.0 NaN NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2018-01-09 1.0 -14.0 16.0 NaN 17.0 NaN NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2018-01-10 1.0 -14.0 16.0 NaN 17.0 NaN NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2018-01-11 1.0 -14.0 16.0 NaN 17.0 NaN NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2018-01-12 1.0 -14.0 16.0 NaN 17.0 NaN NaN -12.0 NaN 7.0 -14.0 -15.0 NaN NaN
2018-01-15 NaN -14.0 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 NaN -15.0 NaN -40.0
2018-01-16 NaN -14.0 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 NaN -15.0 NaN -40.0
2018-01-17 NaN -14.0 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 NaN -15.0 NaN -40.0
2018-01-18 NaN -14.0 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 NaN -15.0 NaN -40.0
2018-01-19 NaN -14.0 16.0 NaN 17.0 1.0 NaN -12.0 NaN 7.0 NaN -15.0 NaN -40.0

661 rows × 14 columns


In [112]:
tradePnl.sort_index(axis=1)


Out[112]:
ALFI HCFI IFI JFI JMFI LFI MAFI MFI PFI PPFI RBFI RMFI YFI ZCFI
2015-05-18 669029.612395 -6.951000e+05 NaN NaN NaN 483729.484773 NaN NaN NaN NaN NaN NaN NaN NaN
2015-05-25 NaN NaN NaN NaN 6.890951e+05 NaN 648109.756451 NaN NaN NaN NaN NaN -693016.451734 NaN
2015-06-08 NaN NaN NaN NaN -6.960976e+05 NaN NaN NaN NaN 596647.878249 NaN NaN NaN NaN
2015-06-15 NaN NaN NaN NaN NaN 476129.516142 NaN NaN -608578.519884 NaN NaN NaN -701651.603317 -6.762943e+05
2015-06-23 NaN NaN NaN NaN -6.985124e+05 -475933.155726 NaN 640663.517678 NaN NaN NaN 631768.957547 NaN NaN
2015-06-29 642812.298503 NaN -697929.693978 NaN NaN NaN NaN NaN -613642.572872 NaN NaN NaN NaN NaN
2015-07-06 NaN NaN NaN 6.164618e+05 NaN NaN -651138.807337 NaN NaN NaN NaN NaN NaN NaN
2015-07-13 NaN NaN NaN NaN NaN NaN NaN NaN NaN -582782.872654 NaN NaN NaN 6.731063e+05
2015-07-20 NaN NaN NaN NaN NaN NaN -612219.771881 NaN NaN NaN NaN NaN NaN NaN
2015-07-27 NaN NaN NaN 5.651200e+05 NaN -467750.422056 NaN NaN NaN NaN 6.075424e+05 NaN NaN NaN
2015-08-03 NaN 6.174019e+05 621318.231870 NaN NaN NaN NaN NaN NaN NaN NaN NaN -661914.116440 NaN
2015-08-10 -612442.341084 NaN NaN NaN 6.200171e+05 NaN NaN -640799.061301 NaN 537748.323660 NaN -651104.040490 NaN NaN
2015-08-17 NaN NaN NaN NaN NaN 436301.153742 NaN NaN NaN NaN NaN NaN NaN NaN
2015-08-24 602537.514405 -5.744740e+05 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2015-08-31 NaN NaN NaN -5.679645e+05 NaN 423121.031496 NaN NaN NaN NaN -5.705117e+05 629764.846086 NaN NaN
2015-09-07 NaN NaN NaN NaN 5.813837e+05 NaN NaN NaN NaN NaN NaN NaN -652875.675104 NaN
2015-09-14 NaN 5.470541e+05 NaN NaN NaN NaN NaN -638751.804635 NaN -529609.031317 NaN NaN NaN NaN
2015-09-21 NaN NaN NaN NaN NaN -422358.257943 NaN NaN NaN NaN NaN 615553.188718 NaN NaN
2015-09-28 -595414.397919 NaN NaN NaN NaN NaN 549915.686269 -637590.666827 547465.911153 NaN NaN NaN NaN -6.762943e+05
2015-10-08 NaN NaN -596998.091558 5.365154e+05 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2015-10-12 NaN NaN 595330.264634 NaN NaN NaN NaN NaN NaN 510255.405869 NaN NaN NaN NaN
2015-10-19 NaN 5.285729e+05 NaN NaN -5.864382e+05 NaN NaN NaN NaN NaN 5.330999e+05 602580.666816 NaN NaN
2015-10-26 NaN NaN NaN 5.248752e+05 NaN NaN NaN -625128.987102 NaN NaN NaN NaN NaN NaN
2015-11-02 NaN NaN NaN NaN NaN NaN -499766.990968 NaN NaN NaN 5.027615e+05 NaN NaN NaN
2015-11-09 NaN NaN NaN 5.011747e+05 NaN -404115.011055 NaN NaN -533994.913022 NaN NaN NaN NaN NaN
2015-11-16 NaN NaN 558822.866562 NaN NaN NaN NaN NaN NaN NaN -4.967661e+05 NaN NaN NaN
2015-11-23 528405.167913 NaN NaN NaN -5.527274e+05 NaN -480689.812171 NaN 507066.060084 NaN NaN -571162.075786 NaN NaN
2015-11-30 NaN -4.821904e+05 NaN NaN NaN 372547.856215 NaN NaN NaN NaN -4.691601e+05 NaN NaN NaN
2015-12-07 NaN NaN NaN NaN -5.505128e+05 NaN NaN NaN NaN NaN NaN NaN NaN 6.731063e+05
2015-12-21 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN -663137.669716 NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2017-06-05 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN -8.278104e+05 NaN NaN NaN
2017-06-12 -688718.555496 NaN NaN NaN NaN -458408.651387 NaN NaN -632074.001666 NaN NaN NaN NaN NaN
2017-06-19 NaN NaN NaN 1.088680e+06 NaN NaN NaN NaN NaN -551067.413623 NaN NaN NaN NaN
2017-06-26 NaN NaN 704606.148246 NaN 1.115637e+06 NaN -605538.525113 NaN NaN NaN NaN 672442.193819 NaN NaN
2017-07-03 NaN NaN NaN NaN NaN NaN NaN NaN 626737.793762 547416.461871 8.928289e+05 NaN NaN NaN
2017-07-10 NaN -9.090941e+05 NaN NaN NaN NaN NaN 661573.404365 NaN NaN NaN 676548.863507 NaN -9.133481e+05
2017-07-17 709020.953910 NaN -766035.010362 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2017-07-24 NaN -1.005010e+06 NaN NaN NaN 458228.350540 NaN NaN NaN NaN NaN NaN 735593.241012 NaN
2017-07-31 NaN NaN NaN NaN NaN NaN NaN NaN 647148.253765 NaN -9.779098e+05 687827.901804 NaN NaN
2017-08-07 730913.739990 NaN NaN NaN NaN NaN 644864.380678 NaN NaN NaN NaN NaN 742874.532342 NaN
2017-08-14 NaN -1.075113e+06 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2017-08-21 NaN NaN -869806.685944 NaN NaN NaN NaN NaN 648038.330245 NaN NaN NaN NaN NaN
2017-08-28 NaN -1.131508e+06 NaN NaN NaN 490132.199933 NaN NaN NaN NaN NaN NaN NaN 9.670631e+05
2017-09-11 -802696.262177 NaN NaN NaN NaN NaN NaN NaN 663681.410126 NaN NaN NaN 761029.865110 NaN
2017-09-18 NaN NaN NaN -1.338450e+06 -1.198608e+06 NaN NaN 659223.472012 NaN -631133.104074 NaN 659399.560538 NaN NaN
2017-09-25 813172.317372 NaN NaN NaN NaN NaN -707671.145862 NaN NaN NaN NaN NaN -760513.475277 NaN
2017-10-16 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 1.063126e+06 NaN NaN -1.018384e+06
2017-10-23 -826122.507215 NaN NaN NaN NaN NaN 696228.765356 NaN -684237.789009 NaN NaN NaN NaN NaN
2017-10-30 NaN NaN NaN NaN NaN -487572.909170 NaN -666697.775355 NaN NaN NaN -672037.840481 734760.355641 NaN
2017-11-06 NaN -1.067893e+06 785869.231391 NaN 1.243472e+06 NaN NaN NaN NaN -635926.018174 -1.012153e+06 665542.191946 NaN NaN
2017-11-13 NaN NaN NaN 1.359911e+06 NaN -490068.073401 NaN -667539.859375 -682293.691304 NaN 1.046298e+06 NaN NaN 9.919944e+05
2017-11-20 NaN NaN -751845.797769 NaN NaN NaN NaN 670246.272453 NaN NaN NaN 675043.314274 NaN -1.008374e+06
2017-11-27 NaN 1.081693e+06 NaN NaN NaN NaN NaN NaN NaN NaN NaN -693242.206481 NaN NaN
2017-12-04 NaN NaN NaN NaN NaN NaN -745241.263385 NaN NaN NaN NaN NaN NaN NaN
2017-12-11 NaN NaN NaN NaN -1.267528e+06 NaN NaN NaN NaN NaN -1.125886e+06 NaN NaN NaN
2017-12-18 NaN NaN NaN NaN NaN NaN -777518.364091 NaN NaN NaN NaN -705008.088316 NaN NaN
2017-12-25 NaN NaN NaN NaN NaN 480678.035322 NaN NaN NaN NaN NaN NaN NaN NaN
2018-01-02 773164.664880 NaN NaN -1.343197e+06 -1.327173e+06 NaN NaN 668274.537496 646484.024005 NaN NaN NaN NaN -1.033228e+06
2018-01-08 NaN NaN NaN 1.409232e+06 1.360253e+06 -494489.805224 NaN NaN NaN NaN NaN NaN 710621.968102 NaN
2018-01-15 -762782.521647 NaN NaN NaN NaN NaN NaN NaN NaN NaN 1.057872e+06 NaN NaN NaN

132 rows × 14 columns


In [139]:
# 持仓pnl计算方式要修改!改为用持仓数据(volume)和持仓成本以及收盘价格算
totalPnl =pd.DataFrame.from_dict(test.holdingPnlDict, orient='index').round(2).sum(axis=1) \
+ pd.DataFrame.from_dict(test.tradingPnlDict, orient='index').reindex(test.backTestingDateList).round(2).sum(axis=1).cumsum().fillna(method='ffill')

In [140]:
totalPnl = totalPnl.fillna(0) + test.initCap
totalPnl


Out[140]:
2015-05-04    5000000.00
2015-05-05    5000000.00
2015-05-06    5000000.00
2015-05-07    5000000.00
2015-05-08    5000000.00
2015-05-11    5017135.42
2015-05-14    5008285.71
2015-05-15    5016459.63
2015-05-18    5473266.78
2015-05-19    5471516.76
2015-05-20    5468194.40
2015-05-21    5466575.13
2015-05-22    5464038.03
2015-05-25    6133212.17
2015-05-26    6146713.42
2015-05-27    6145757.03
2015-05-28    6148726.48
2015-05-29    6152588.00
2015-06-01    6177880.31
2015-06-02    6168344.20
2015-06-03    6148396.07
2015-06-04    6152833.49
2015-06-05    6142898.46
2015-06-08    6031832.40
2015-06-09    6020737.63
2015-06-10    6032771.29
2015-06-11    6037062.61
2015-06-12    6033769.26
2015-06-15    4553834.22
2015-06-16    4540893.72
                 ...    
2017-12-08    9410953.69
2017-12-11    7020325.27
2017-12-12    7029250.30
2017-12-13    7026441.13
2017-12-14    7001821.75
2017-12-15    7025046.27
2017-12-18    5629565.00
2017-12-19    5621737.05
2017-12-20    5599739.46
2017-12-21    5603520.80
2017-12-22    5646276.21
2017-12-25    6029340.00
2017-12-26    6038634.67
2017-12-27    5973624.45
2017-12-28    5976091.14
2017-12-29    5980910.55
2018-01-02    4277483.97
2018-01-03    4273914.06
2018-01-04    4243655.28
2018-01-05    4256802.42
2018-01-08    7306725.99
2018-01-09    7305785.53
2018-01-10    7287856.38
2018-01-11    7309186.44
2018-01-12    7301384.54
2018-01-15    7577065.33
2018-01-16    7531689.53
2018-01-17    7526832.97
2018-01-18    7519789.50
2018-01-19    7521098.58
Length: 666, dtype: float64

In [141]:
totalPnl = totalPnl / totalPnl.iloc[0]

In [143]:
def simplePlot(df,title=""):
    #  Visualization
    fig = plt.figure(figsize=(16,9))
    # Add a subplot
    ax = fig.add_subplot(111)
    df.plot(ax = ax, fontsize =13,title = title)
    ax.set_title(ax.get_title(),alpha=1, fontsize=25)

In [144]:
simplePlot(totalPnl,'Total Pnl')