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')
Content source: kamiseko/factor-test
Similar notebooks: