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

In [3]:
# Libraries To Use
from __future__ import division 
import numpy as np
import pandas as pd
import statsmodels.api as sm
import os
from datetime import datetime,time,date
import matplotlib.pyplot as plt
import seaborn as sns
import time
import os 
import h5py
import talib


c:\python27\lib\site-packages\statsmodels\compat\pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.
  from pandas.core import datetools

In [5]:
# Import My own library for factor testing
from SingleFactorTest import factorFilterFunctions as ff
#from config import *
from SingleFactorTest.calcOwnFactors import CalOwnFactor

In [6]:
%load_ext line_profiler

In [7]:
%matplotlib inline

In [8]:
path = ff.data_path # path

In [ ]:


In [9]:
# Constants
startTime =  datetime.strptime('20120104', '%Y%m%d')
endTime = datetime.strptime('20170928', '%Y%m%d')

In [ ]:
###### 注意,使用时各因子dataframe文件的长度应相等,可以使用CalOwnFactor类中的sliceData(startTime,endTime)方法来切片确保长度相等

In [6]:
# --------------------------------------- Global Functions to def---------------------------------- #

In [ ]:
# --------------------------------------- neutralize class ---------------------------------- #

In [10]:
class neutralize(CalOwnFactor):
    classname = 'neutralize'
    
    def __init__(self, path,filenameFCAP,factorData):
        super(neutralize,self).__init__(path) # arguments in super method should be exactly same as the args in parent class
        self.logFCAP = np.log10(ff.readh5data(path,filenameFCAP))
        self.factorData = factorData
        
    def simpleNormalize(self,factorData):
        factorDatatemp = factorData.copy()
        dataWinsorizedTrans = factorDatatemp.T
        MAD = 1.483*np.abs(dataWinsorizedTrans-dataWinsorizedTrans.median(skipna=True))
        return ((dataWinsorizedTrans - dataWinsorizedTrans.mean(axis=0, skipna=True))/\
                               dataWinsorizedTrans.std(axis=0, skipna=True)).T
    def neutralizeFactor(self, datelist):
        normalizedLFCAPDF = self.simpleNormalize(self.logFCAP)
        normalizedFactor= self.simpleNormalize(self.factorData)
        factorNeutralized = pd.DataFrame(index=normalizedFactor.index, columns=normalizedFactor.columns, data=None, dtype = float)
        for date in datelist:
            LFCAPIndice = normalizedLFCAPDF.loc[date].dropna()
            factorIndice = normalizedFactor.loc[date].dropna()
            intersectionStocks = list(set(LFCAPIndice.index) & set(factorIndice.index))
            #dummy_Matrix = pd.get_dummies(IndustryDF.loc[date]).T.iloc[:-1]
            #dummy_Matrix = dummy_Matrix[intersectionStocks].append(LFCAPIndice.loc[intersectionStocks])
            try:
                result = sm. OLS(factorIndice.loc[intersectionStocks].T, LFCAPIndice.loc[intersectionStocks].T).fit()
                factorNeutralized.loc[date][intersectionStocks] = result.resid
            except:
                factorNeutralized.loc[date] = np.NaN
        self.factorNeutralized = factorNeutralized.round(4)
neutralizedILLIQ = neutralize(path,filenameFCAP,illiq.ILLIQ) neutralizedILLIQ.neutralizeFactor(neutralized.factorData.index) neutralizedILLIQ.saveData(neutralizedILLIQ.factorNeutralized,'OwnFactorADJILLIQ')

In [ ]:


In [ ]:


In [ ]:


In [12]:
# top functions 
# 标准化去极值函数,下面有使用示例
def simpleNormalize(narrowedData):
    dataWinsorized = narrowedData.copy()
    dataWinsorizedTrans = dataWinsorized.T
    MAD = 1.483*np.abs(dataWinsorizedTrans-dataWinsorizedTrans.median(skipna=True))
    return ((dataWinsorizedTrans - dataWinsorizedTrans.mean(axis=0, skipna=True))/dataWinsorizedTrans.std(axis=0, skipna=True)).T

In [13]:
# top function
# 中性化函数,下面有使用示例
def neutralizeFactor(normalizedFactorDF, normalizedLFCAPDF, datelist):
    factorNeutralized = pd.DataFrame(index=normalizedFactorDF.index, columns=normalizedFactorDF.columns, data=None, dtype = float)
    for date in datelist:
        LFCAPIndice = normalizedLFCAPDF.loc[date].dropna()
        factorIndice = normalizedFactorDF.loc[date].dropna()
        intersectionStocks = list(set(LFCAPIndice.index) & set(factorIndice.index))
        #dummy_Matrix = pd.get_dummies(IndustryDF.loc[date]).T.iloc[:-1]
        #dummy_Matrix = dummy_Matrix[intersectionStocks].append(LFCAPIndice.loc[intersectionStocks])
        try:
            result = sm. OLS(factorIndice.loc[intersectionStocks].T, LFCAPIndice.loc[intersectionStocks].T).fit()
            factorNeutralized.loc[date][intersectionStocks] = result.resid
        except:
            factorNeutralized.loc[date] = np.NaN
    return factorNeutralized

In [ ]:


In [9]:
# --------------------------------------- Function Section End ---------------------------------- #

In [ ]:


In [36]:
# 对对数市值进行标准化去极值操作
filenameFCAP =  'LZ_CN_STKA_VAL_A_FCAP.h5'
# Data prepared for Neuralization
FCAP1 = np.log10(ff.readh5data(path,filenameFCAP))
NormalizedFCAP = simpleNormalize(FCAP1)


c:\python27\lib\site-packages\ipykernel\__main__.py:5: RuntimeWarning: invalid value encountered in absolute

In [ ]:


In [ ]:
# --------------------------------------- AdjustedPrice ---------------------------------- #

In [ ]:
# 前复权收盘价计算

In [155]:
filenameAdjustFactor = 'LZ_CN_STKA_CMFTR_CUM_FACTOR.h5'
filenameClose = 'LZ_CN_STKA_QUOTE_TCLOSE.h5'
filenameOpen =  'LZ_CN_STKA_QUOTE_TOPEN.h5'

In [152]:
# first thing is to calculate forward adjusted pice
class AdjustedPrice(CalOwnFactor):
    classname = 'AdjustedPrice'
    def __init__(self,path):
        super(AdjustedPrice,self).__init__(path) # arguments in super method should be exactly same as the args in parent class
        #self.setting = setting
    def calAdjustedPrice(self,adjFacBackward,originalPrice):
        AdjFacforward = adjFacBackward / adjFacBackward.iloc[-1]
        self.adjustedPrice = (AdjFacforward * originalPrice).round(3)

In [153]:
# 前复权收盘价
adjc = AdjustedPrice(path)
adjc.addData('adjf',filenameAdjustFactor)
adjc.addData('close',filenameClose)
adjc.calAdjustedPrice(adjc.datadict['adjf'],adjc.datadict['close'])
adjc.saveData(adjc.adjustedPrice,'OwnfactorAdjustedClose')


c:\python27\lib\site-packages\pandas\core\series.py:1295: RuntimeWarning: invalid value encountered in rint
  result = _values_from_object(self).round(decimals)

In [156]:
# 前复权开盘价
adjo = AdjustedPrice(path)
adjc.addData('adjf',filenameAdjustFactor)
adjc.addData('open',filenameOpen)
adjc.calAdjustedPrice(adjc.datadict['adjf'],adjc.datadict['open'])
adjc.saveData(adjc.adjustedPrice,'OwnfactorAdjustedOpen')

In [ ]:
# --------------------------------------- end  AdjustedPrice section ---------------------------------- #

In [12]:
# --------------------------------------- Mass Index ---------------------------------- #

In [ ]:
# mass index:9日均线的EMA / 9日均线的EMA的EMA ,之后再取25日平均值

In [71]:
filenameOpen = 'LZ_CN_STKA_QUOTE_TOPEN.h5' # 开盘价
filenameClose = 'LZ_CN_STKA_QUOTE_TCLOSE.h5'  # 收盘价
filenameHigh = 'LZ_CN_STKA_QUOTE_THIGH.h5'   # 最高价
filenameLow = 'LZ_CN_STKA_QUOTE_TLOW.h5'  # 最低价
# 

filenameVolume = 'LZ_CN_STKA_QUOTE_TVOLUME.h5'

In [14]:
class MassIndex(CalOwnFactor):
    classname = 'MassIndex'
    def __init__(self,path):
        super(MassIndex,self).__init__(path) # arguments in super method should be exactly same as the args in parent class
        #self.setting = setting
    def calEma(self,data,window = 9):
        Ema = data.copy()
        NanCount =0
        for name in data.columns:
            try:
                Ema[name] = talib.EMA(data[name].values,timeperiod = window)
            except Exception as e:
                #print str(e) 
                #print 'too much NaN value for stock %s'%name
                assert str(e)== 'inputs are all NaN'
                Ema [name] = np.NaN
                NanCount+=1
        return Ema
    def calMassIndex(self,hlRange,rolling_window=25):
        self.singleEMA = self.calEma(hlRange)
        self.doubleEMA = self.calEma(self.singleEMA)
        self.MassIndex = (self.singleEMA / self.doubleEMA).rolling(window=rolling_window, min_periods=25).sum().round(3)

In [15]:
# cal massindex
massindex = MassIndex(path)
massindex.addData('high',filenameHigh)
massindex.addData('low',filenameLow)

massindex.calMassIndex(massindex.datadict['high'] - massindex.datadict['low'])

massindex.saveData(massindex.MassIndex,'OwnfactorMassIndex')


c:\python27\lib\site-packages\pandas\core\series.py:1295: RuntimeWarning: invalid value encountered in rint
  result = _values_from_object(self).round(decimals)

In [16]:
# --------------------------------------- end Mass Index  section ---------------------------------- #

In [ ]:


In [ ]:
# --------------------------------------- Calculate  daily deal Amount(yuan) (DDA)  ---------------------------------- #

In [ ]:
# DDA:前复权收盘价 * 成交量的20天滚动平均

In [14]:
filenameVolume = 'LZ_CN_STKA_QUOTE_TVOLUME.h5'
filenameAdjClose = 'OwnfactorAdjustedClose.h5'

In [15]:
class DDA(CalOwnFactor):
    classname = 'DDA'
    def __init__(self,path):
        super(DDA,self).__init__(path) # arguments in super method should be exactly same as the args in parent class
        #self.setting = setting
    def calDDA(self,turnOver,adjPrice,rolling_window=20):
        self.DDA = (turnOver * adjPrice).rolling(window=rolling_window, min_periods=20).mean().round(3)

In [17]:
# cal dda
dda = DDA(path)
dda.addData('turnover',filenameVolume)
dda.addData('adjprice', filenameAdjClose)
dda.calDDA(dda.datadict['turnover'], dda.datadict['adjprice'])
dda.saveData(dda.DDA,'OwnfactorDDA20D')


c:\python27\lib\site-packages\pandas\core\series.py:1295: RuntimeWarning: invalid value encountered in rint
  result = _values_from_object(self).round(decimals)

In [18]:
# --------------------------------------- end dda section  ---------------------------------- #

In [ ]:


In [ ]:
# --------------------------------------- Calculate  x-days return Skew ---------------------------------- #

In [ ]:
# 股票收益率的250日skew

In [19]:
class ReturnSkew(CalOwnFactor):
    classname = 'ReturnSkew'
    def __init__(self,path):
        super(ReturnSkew,self).__init__(path) # arguments in super method should be exactly same as the args in parent class
        #self.setting = setting
    def calReturnSkew(self,adjPrice,rolling_window=250):
        self.ReturnSkew = adjPrice.pct_change().rolling(window=rolling_window, min_periods=250).skew().round(3)

In [21]:
# cal dda
rs= ReturnSkew(path)
rs.addData('adjprice', filenameAdjClose)
rs.calReturnSkew(rs.datadict['adjprice'])
rs.saveData(rs.ReturnSkew,'OwnfactorReturnSkew250D')

In [ ]:
# --------------------------------------- end return Skew section---------------------------------- #

In [ ]:


In [ ]:
# --------------------------------------- Calculate  SortinoRatio ---------------------------------- #

In [ ]:
# N日股票的SortinoRatio,(年华收益率/下行波动率)

In [28]:
class SortinoRatio(CalOwnFactor):
    classname = 'SortinoRatio'
    
    def __init__(self,path):
        super(SortinoRatio,self).__init__(path) # arguments in super method should be exactly same as the args in parent class
        #self.setting = setting
    def calDownsideRisk(self,adjPrice,rolling_window=20,period=120):
        returndf = adjPrice.pct_change()
        averageReturn = returndf.rolling(window=rolling_window, min_periods=20).mean().round(3)
        self.downsideRisk = (returndf[returndf < averageReturn] .rolling(min_periods=120,window=period,center=False).std()) \
        * np.sqrt(252/period)
    def calSortinoRatio(self,adjPrice,period = 252):
        annualReturn = (adjPrice.pct_change().rolling(window=period, min_periods=20).mean().round(3) +1) ** (252 /period) - 1
        self.SortinoRatio = annualReturn / self.downsideRisk

In [29]:
# cal dda
sr= SortinoRatio(path)
sr.addData('adjprice', filenameAdjClose)
sr.calDownsideRisk(sr.datadict['adjprice'])
sr.calSortinoRatio(sr.datadict['adjprice'])
sr.saveData(sr.SortinoRatio,'OwnfactorSortinoRatio252D')

In [30]:
# --------------------------------------- End SortinoRatio---------------------------------- #

In [ ]:


In [ ]:
# --------------------------------------- Calculate  TurnOver Rate Volatility ---------------------------------- #

In [ ]:
# 20天换手率的标准差/20天换手率的标准差(中性化)

In [40]:
filenameTOR= 'LZ_CN_STKA_VAL_TURN.h5'  # 换手率

In [31]:
# the illiquid factor
class TORV(CalOwnFactor):
    classname = 'TORV'
    def __init__(self,path):
        super(TORV,self).__init__(path) # arguments in super method should be exactly same as the args in parent class
        #self.setting = setting
    def calTORV(self,turnoverdf,period =20):
        self.TORV = turnoverdf.rolling(min_periods=20,window=period,center=False).std()

In [35]:
# cal turnOverRate std
torv = TORV(path)
torv.addData('turnOverRate', filenameTOR)
torv.calTORV(torv.datadict['turnOverRate'])
torv.saveData(torv.TORV,'OwnFactorTurnoverVolatility20D')

In [ ]:
# TO nuetralize torv
NormalizedTORV = simpleNormalize(torv.TORV)
neutralizedTORV = neutralizeFactor(NormalizedTORV, NormalizedFCAP, NormalizedTORV.index)
ff.saveh5data(neutralizedTORV,path,'OwnFactorADJTORV')

In [ ]:
# --------------------------------------- End  TurnOver Rate Volatility  Section---------------------------------- #

In [ ]:


In [ ]:
# --------------------------------------- ILLQ Factor(5-days average) ---------------------------------- #

In [ ]:
# 非流动性,(收盘价 - 开盘价) / 成交量 ,该指标的N日滚动平均

In [81]:
# the illiquid factor
class ILLIQ(CalOwnFactor):
    classname = 'ILLIQ'
    def __init__(self,path):
        super(ILLIQ,self).__init__(path) # arguments in super method should be exactly same as the args in parent class
        #self.setting = setting
    def calILLIQ(self,openPrice,closePrice,volume):
        if openPrice.shape != closePrice.shape:
            print openPrice.shape, closePrice.shape
            print 'data shape is not equal!'
        else:
            newdf = np.abs((closePrice - openPrice)/openPrice)/volume
            self.ILLIQ= (newdf.rolling(min_periods=5,window=5,center=False).mean()* 10000000).round(4)

In [82]:
# cal ILLIQ
illiq = ILLIQ(path)
illiq .addData('open',filenameOpen)
illiq .addData('close',filenameClose)
illiq .addData('volume', filenameVolume)
illiq .calILLIQ(illiq.datadict['open'],illiq.datadict['close'],illiq.datadict['volume'])
illiq .saveData(illiq.ILLIQ,'OwnFactorILLIQ')


c:\python27\lib\site-packages\ipykernel\__main__.py:12: RuntimeWarning: invalid value encountered in absolute

In [ ]:


In [99]:
# TO nuetralize ILLIQ
NormalizedILLQ = simpleNormalize(illiq.ILLIQ)
neutralizedILLQ = neutralizeFactor(NormalizedILLQ, NormalizedFCAP, NormalizedILLQ.index)
#neutralizedILLQ.index.name = 'Own_Factor_ADJ_ILLQ_1D'
ff.saveh5data(neutralizedILLQ,path,'OwnFactorADJILLIQ')


c:\python27\lib\site-packages\ipykernel\__main__.py:5: RuntimeWarning: invalid value encountered in absolute

In [ ]:
datasample = ff.readh5data(path,'OwnFactorADJILLIQ.h5')

In [84]:
# --------------------------------------- end ILLQ Factor section ---------------------------------- #

In [ ]:


In [ ]:
# --------------------------------------- spreadbais Factor ---------------------------------- #

In [ ]:
# 个股行业偏差 = 个股价格/个股所在行业平均价格的对数 
#   行业偏差= (个股行业偏差  - 个股行业偏差 的N日滚动均值) / 个股行业偏差 的std

In [30]:
filenameINDUClass ='LZ_CN_STKA_INDU_ZX.h5'
filenmaeINDUIndex = 'LZ_CN_STKA_INDXQUOTE_CLOSE.h5'
filenameAdjClose = 'OwnfactorAdjustedClose.h5'

In [33]:
# the illiquid factor
class InduSpreadBias(CalOwnFactor):
    classname = 'InduSpreadBias'
    def __init__(self,path):
        super(InduSpreadBias,self).__init__(path) # arguments in super method should be exactly same as the args in parent class
        #self.setting = setting
        
    @staticmethod
    def fullName(x):
        if np.isnan(x):
            return np.NaN
        else:
            if x<10:
                return 'CI00500'+str(int(x))+'.WI'
            else:
                return 'CI0050'+str(int(x))+'.WI'
            
    def fillname(self,Induclassdf):
        self.stkindumap = Induclassdf.applymap(self.fullName)
    
    def mapStkInduIndex(self,indusIndex):
        for date in self.stkindumap.index:
            #print date
            indusIndexSlice = indusIndex.loc[date]
            sparedfSlice = self.stkindumap.loc[date]   
            stkList = sparedfSlice.dropna().index.tolist() 
            self.stkindumap.set_value(date, stkList, indusIndexSlice .loc[sparedfSlice.dropna()].values)
            
    def calInduSpreadBias(self,closePrice):
        self.InduSpreadBias = np.log((closePrice / self.stkindumap).astype(float))
        self.InduSpreadBias = (self.InduSpreadBias - self.InduSpreadBias.rolling(min_periods=60,window=60,center=False).mean()) / self.\
                                InduSpreadBias.rolling(min_periods=60,window=60,center=False).std()

In [35]:
induspreadbias = InduSpreadBias(path)
induspreadbias .addData('induclass',filenameINDUClass)
induspreadbias.addData('induindex',filenmaeINDUIndex)
induspreadbias.addData('adjprice', filenameAdjClose)
induspreadbias.sliceData(startTime,endTime)
induspreadbias .fillname(induspreadbias.datadict['induclass'])
induspreadbias.mapStkInduIndex(induspreadbias.datadict['induindex'])
induspreadbias.calInduSpreadBias(induspreadbias.datadict['adjprice'])
induspreadbias .saveData(induspreadbias.InduSpreadBias.round(4),'OwnFactorInduSpreadBias')


2012-01-04 00:00:00
2012-01-05 00:00:00
2012-01-06 00:00:00
2012-01-09 00:00:00
2012-01-10 00:00:00
2012-01-11 00:00:00
2012-01-12 00:00:00
2012-01-13 00:00:00
2012-01-16 00:00:00
2012-01-17 00:00:00
2012-01-18 00:00:00
2012-01-19 00:00:00
2012-01-20 00:00:00
2012-01-30 00:00:00
2012-01-31 00:00:00
2012-02-01 00:00:00
2012-02-02 00:00:00
2012-02-03 00:00:00
2012-02-06 00:00:00
2012-02-07 00:00:00
2012-02-08 00:00:00
2012-02-09 00:00:00
2012-02-10 00:00:00
2012-02-13 00:00:00
2012-02-14 00:00:00
2012-02-15 00:00:00
2012-02-16 00:00:00
2012-02-17 00:00:00
2012-02-20 00:00:00
2012-02-21 00:00:00
2012-02-22 00:00:00
2012-02-23 00:00:00
2012-02-24 00:00:00
2012-02-27 00:00:00
2012-02-28 00:00:00
2012-02-29 00:00:00
2012-03-01 00:00:00
2012-03-02 00:00:00
2012-03-05 00:00:00
2012-03-06 00:00:00
2012-03-07 00:00:00
2012-03-08 00:00:00
2012-03-09 00:00:00
2012-03-12 00:00:00
2012-03-13 00:00:00
2012-03-14 00:00:00
2012-03-15 00:00:00
2012-03-16 00:00:00
2012-03-19 00:00:00
2012-03-20 00:00:00
2012-03-21 00:00:00
2012-03-22 00:00:00
2012-03-23 00:00:00
2012-03-26 00:00:00
2012-03-27 00:00:00
2012-03-28 00:00:00
2012-03-29 00:00:00
2012-03-30 00:00:00
2012-04-05 00:00:00
2012-04-06 00:00:00
2012-04-09 00:00:00
2012-04-10 00:00:00
2012-04-11 00:00:00
2012-04-12 00:00:00
2012-04-13 00:00:00
2012-04-16 00:00:00
2012-04-17 00:00:00
2012-04-18 00:00:00
2012-04-19 00:00:00
2012-04-20 00:00:00
2012-04-23 00:00:00
2012-04-24 00:00:00
2012-04-25 00:00:00
2012-04-26 00:00:00
2012-04-27 00:00:00
2012-05-02 00:00:00
2012-05-03 00:00:00
2012-05-04 00:00:00
2012-05-07 00:00:00
2012-05-08 00:00:00
2012-05-09 00:00:00
2012-05-10 00:00:00
2012-05-11 00:00:00
2012-05-14 00:00:00
2012-05-15 00:00:00
2012-05-16 00:00:00
2012-05-17 00:00:00
2012-05-18 00:00:00
2012-05-21 00:00:00
2012-05-22 00:00:00
2012-05-23 00:00:00
2012-05-24 00:00:00
2012-05-25 00:00:00
2012-05-28 00:00:00
2012-05-29 00:00:00
2012-05-30 00:00:00
2012-05-31 00:00:00
2012-06-01 00:00:00
2012-06-04 00:00:00
2012-06-05 00:00:00
2012-06-06 00:00:00
2012-06-07 00:00:00
2012-06-08 00:00:00
2012-06-11 00:00:00
2012-06-12 00:00:00
2012-06-13 00:00:00
2012-06-14 00:00:00
2012-06-15 00:00:00
2012-06-18 00:00:00
2012-06-19 00:00:00
2012-06-20 00:00:00
2012-06-21 00:00:00
2012-06-25 00:00:00
2012-06-26 00:00:00
2012-06-27 00:00:00
2012-06-28 00:00:00
2012-06-29 00:00:00
2012-07-02 00:00:00
2012-07-03 00:00:00
2012-07-04 00:00:00
2012-07-05 00:00:00
2012-07-06 00:00:00
2012-07-09 00:00:00
2012-07-10 00:00:00
2012-07-11 00:00:00
2012-07-12 00:00:00
2012-07-13 00:00:00
2012-07-16 00:00:00
2012-07-17 00:00:00
2012-07-18 00:00:00
2012-07-19 00:00:00
2012-07-20 00:00:00
2012-07-23 00:00:00
2012-07-24 00:00:00
2012-07-25 00:00:00
2012-07-26 00:00:00
2012-07-27 00:00:00
2012-07-30 00:00:00
2012-07-31 00:00:00
2012-08-01 00:00:00
2012-08-02 00:00:00
2012-08-03 00:00:00
2012-08-06 00:00:00
2012-08-07 00:00:00
2012-08-08 00:00:00
2012-08-09 00:00:00
2012-08-10 00:00:00
2012-08-13 00:00:00
2012-08-14 00:00:00
2012-08-15 00:00:00
2012-08-16 00:00:00
2012-08-17 00:00:00
2012-08-20 00:00:00
2012-08-21 00:00:00
2012-08-22 00:00:00
2012-08-23 00:00:00
2012-08-24 00:00:00
2012-08-27 00:00:00
2012-08-28 00:00:00
2012-08-29 00:00:00
2012-08-30 00:00:00
2012-08-31 00:00:00
2012-09-03 00:00:00
2012-09-04 00:00:00
2012-09-05 00:00:00
2012-09-06 00:00:00
2012-09-07 00:00:00
2012-09-10 00:00:00
2012-09-11 00:00:00
2012-09-12 00:00:00
2012-09-13 00:00:00
2012-09-14 00:00:00
2012-09-17 00:00:00
2012-09-18 00:00:00
2012-09-19 00:00:00
2012-09-20 00:00:00
2012-09-21 00:00:00
2012-09-24 00:00:00
2012-09-25 00:00:00
2012-09-26 00:00:00
2012-09-27 00:00:00
2012-09-28 00:00:00
2012-10-08 00:00:00
2012-10-09 00:00:00
2012-10-10 00:00:00
2012-10-11 00:00:00
2012-10-12 00:00:00
2012-10-15 00:00:00
2012-10-16 00:00:00
2012-10-17 00:00:00
2012-10-18 00:00:00
2012-10-19 00:00:00
2012-10-22 00:00:00
2012-10-23 00:00:00
2012-10-24 00:00:00
2012-10-25 00:00:00
2012-10-26 00:00:00
2012-10-29 00:00:00
2012-10-30 00:00:00
2012-10-31 00:00:00
2012-11-01 00:00:00
2012-11-02 00:00:00
2012-11-05 00:00:00
2012-11-06 00:00:00
2012-11-07 00:00:00
2012-11-08 00:00:00
2012-11-09 00:00:00
2012-11-12 00:00:00
2012-11-13 00:00:00
2012-11-14 00:00:00
2012-11-15 00:00:00
2012-11-16 00:00:00
2012-11-19 00:00:00
2012-11-20 00:00:00
2012-11-21 00:00:00
2012-11-22 00:00:00
2012-11-23 00:00:00
2012-11-26 00:00:00
2012-11-27 00:00:00
2012-11-28 00:00:00
2012-11-29 00:00:00
2012-11-30 00:00:00
2012-12-03 00:00:00
2012-12-04 00:00:00
2012-12-05 00:00:00
2012-12-06 00:00:00
2012-12-07 00:00:00
2012-12-10 00:00:00
2012-12-11 00:00:00
2012-12-12 00:00:00
2012-12-13 00:00:00
2012-12-14 00:00:00
2012-12-17 00:00:00
2012-12-18 00:00:00
2012-12-19 00:00:00
2012-12-20 00:00:00
2012-12-21 00:00:00
2012-12-24 00:00:00
2012-12-25 00:00:00
2012-12-26 00:00:00
2012-12-27 00:00:00
2012-12-28 00:00:00
2012-12-31 00:00:00
2013-01-04 00:00:00
2013-01-07 00:00:00
2013-01-08 00:00:00
2013-01-09 00:00:00
2013-01-10 00:00:00
2013-01-11 00:00:00
2013-01-14 00:00:00
2013-01-15 00:00:00
2013-01-16 00:00:00
2013-01-17 00:00:00
2013-01-18 00:00:00
2013-01-21 00:00:00
2013-01-22 00:00:00
2013-01-23 00:00:00
2013-01-24 00:00:00
2013-01-25 00:00:00
2013-01-28 00:00:00
2013-01-29 00:00:00
2013-01-30 00:00:00
2013-01-31 00:00:00
2013-02-01 00:00:00
2013-02-04 00:00:00
2013-02-05 00:00:00
2013-02-06 00:00:00
2013-02-07 00:00:00
2013-02-08 00:00:00
2013-02-18 00:00:00
2013-02-19 00:00:00
2013-02-20 00:00:00
2013-02-21 00:00:00
2013-02-22 00:00:00
2013-02-25 00:00:00
2013-02-26 00:00:00
2013-02-27 00:00:00
2013-02-28 00:00:00
2013-03-01 00:00:00
2013-03-04 00:00:00
2013-03-05 00:00:00
2013-03-06 00:00:00
2013-03-07 00:00:00
2013-03-08 00:00:00
2013-03-11 00:00:00
2013-03-12 00:00:00
2013-03-13 00:00:00
2013-03-14 00:00:00
2013-03-15 00:00:00
2013-03-18 00:00:00
2013-03-19 00:00:00
2013-03-20 00:00:00
2013-03-21 00:00:00
2013-03-22 00:00:00
2013-03-25 00:00:00
2013-03-26 00:00:00
2013-03-27 00:00:00
2013-03-28 00:00:00
2013-03-29 00:00:00
2013-04-01 00:00:00
2013-04-02 00:00:00
2013-04-03 00:00:00
2013-04-08 00:00:00
2013-04-09 00:00:00
2013-04-10 00:00:00
2013-04-11 00:00:00
2013-04-12 00:00:00
2013-04-15 00:00:00
2013-04-16 00:00:00
2013-04-17 00:00:00
2013-04-18 00:00:00
2013-04-19 00:00:00
2013-04-22 00:00:00
2013-04-23 00:00:00
2013-04-24 00:00:00
2013-04-25 00:00:00
2013-04-26 00:00:00
2013-05-02 00:00:00
2013-05-03 00:00:00
2013-05-06 00:00:00
2013-05-07 00:00:00
2013-05-08 00:00:00
2013-05-09 00:00:00
2013-05-10 00:00:00
2013-05-13 00:00:00
2013-05-14 00:00:00
2013-05-15 00:00:00
2013-05-16 00:00:00
2013-05-17 00:00:00
2013-05-20 00:00:00
2013-05-21 00:00:00
2013-05-22 00:00:00
2013-05-23 00:00:00
2013-05-24 00:00:00
2013-05-27 00:00:00
2013-05-28 00:00:00
2013-05-29 00:00:00
2013-05-30 00:00:00
2013-05-31 00:00:00
2013-06-03 00:00:00
2013-06-04 00:00:00
2013-06-05 00:00:00
2013-06-06 00:00:00
2013-06-07 00:00:00
2013-06-13 00:00:00
2013-06-14 00:00:00
2013-06-17 00:00:00
2013-06-18 00:00:00
2013-06-19 00:00:00
2013-06-20 00:00:00
2013-06-21 00:00:00
2013-06-24 00:00:00
2013-06-25 00:00:00
2013-06-26 00:00:00
2013-06-27 00:00:00
2013-06-28 00:00:00
2013-07-01 00:00:00
2013-07-02 00:00:00
2013-07-03 00:00:00
2013-07-04 00:00:00
2013-07-05 00:00:00
2013-07-08 00:00:00
2013-07-09 00:00:00
2013-07-10 00:00:00
2013-07-11 00:00:00
2013-07-12 00:00:00
2013-07-15 00:00:00
2013-07-16 00:00:00
2013-07-17 00:00:00
2013-07-18 00:00:00
2013-07-19 00:00:00
2013-07-22 00:00:00
2013-07-23 00:00:00
2013-07-24 00:00:00
2013-07-25 00:00:00
2013-07-26 00:00:00
2013-07-29 00:00:00
2013-07-30 00:00:00
2013-07-31 00:00:00
2013-08-01 00:00:00
2013-08-02 00:00:00
2013-08-05 00:00:00
2013-08-06 00:00:00
2013-08-07 00:00:00
2013-08-08 00:00:00
2013-08-09 00:00:00
2013-08-12 00:00:00
2013-08-13 00:00:00
2013-08-14 00:00:00
2013-08-15 00:00:00
2013-08-16 00:00:00
2013-08-19 00:00:00
2013-08-20 00:00:00
2013-08-21 00:00:00
2013-08-22 00:00:00
2013-08-23 00:00:00
2013-08-26 00:00:00
2013-08-27 00:00:00
2013-08-28 00:00:00
2013-08-29 00:00:00
2013-08-30 00:00:00
2013-09-02 00:00:00
2013-09-03 00:00:00
2013-09-04 00:00:00
2013-09-05 00:00:00
2013-09-06 00:00:00
2013-09-09 00:00:00
2013-09-10 00:00:00
2013-09-11 00:00:00
2013-09-12 00:00:00
2013-09-13 00:00:00
2013-09-16 00:00:00
2013-09-17 00:00:00
2013-09-18 00:00:00
2013-09-23 00:00:00
2013-09-24 00:00:00
2013-09-25 00:00:00
2013-09-26 00:00:00
2013-09-27 00:00:00
2013-09-30 00:00:00
2013-10-08 00:00:00
2013-10-09 00:00:00
2013-10-10 00:00:00
2013-10-11 00:00:00
2013-10-14 00:00:00
2013-10-15 00:00:00
2013-10-16 00:00:00
2013-10-17 00:00:00
2013-10-18 00:00:00
2013-10-21 00:00:00
2013-10-22 00:00:00
2013-10-23 00:00:00
2013-10-24 00:00:00
2013-10-25 00:00:00
2013-10-28 00:00:00
2013-10-29 00:00:00
2013-10-30 00:00:00
2013-10-31 00:00:00
2013-11-01 00:00:00
2013-11-04 00:00:00
2013-11-05 00:00:00
2013-11-06 00:00:00
2013-11-07 00:00:00
2013-11-08 00:00:00
2013-11-11 00:00:00
2013-11-12 00:00:00
2013-11-13 00:00:00
2013-11-14 00:00:00
2013-11-15 00:00:00
2013-11-18 00:00:00
2013-11-19 00:00:00
2013-11-20 00:00:00
2013-11-21 00:00:00
2013-11-22 00:00:00
2013-11-25 00:00:00
2013-11-26 00:00:00
2013-11-27 00:00:00
2013-11-28 00:00:00
2013-11-29 00:00:00
2013-12-02 00:00:00
2013-12-03 00:00:00
2013-12-04 00:00:00
2013-12-05 00:00:00
2013-12-06 00:00:00
2013-12-09 00:00:00
2013-12-10 00:00:00
2013-12-11 00:00:00
2013-12-12 00:00:00
2013-12-13 00:00:00
2013-12-16 00:00:00
2013-12-17 00:00:00
2013-12-18 00:00:00
2013-12-19 00:00:00
2013-12-20 00:00:00
2013-12-23 00:00:00
2013-12-24 00:00:00
2013-12-25 00:00:00
2013-12-26 00:00:00
2013-12-27 00:00:00
2013-12-30 00:00:00
2013-12-31 00:00:00
2014-01-02 00:00:00
2014-01-03 00:00:00
2014-01-06 00:00:00
2014-01-07 00:00:00
2014-01-08 00:00:00
2014-01-09 00:00:00
2014-01-10 00:00:00
2014-01-13 00:00:00
2014-01-14 00:00:00
2014-01-15 00:00:00
2014-01-16 00:00:00
2014-01-17 00:00:00
2014-01-20 00:00:00
2014-01-21 00:00:00
2014-01-22 00:00:00
2014-01-23 00:00:00
2014-01-24 00:00:00
2014-01-27 00:00:00
2014-01-28 00:00:00
2014-01-29 00:00:00
2014-01-30 00:00:00
2014-02-07 00:00:00
2014-02-10 00:00:00
2014-02-11 00:00:00
2014-02-12 00:00:00
2014-02-13 00:00:00
2014-02-14 00:00:00
2014-02-17 00:00:00
2014-02-18 00:00:00
2014-02-19 00:00:00
2014-02-20 00:00:00
2014-02-21 00:00:00
2014-02-24 00:00:00
2014-02-25 00:00:00
2014-02-26 00:00:00
2014-02-27 00:00:00
2014-02-28 00:00:00
2014-03-03 00:00:00
2014-03-04 00:00:00
2014-03-05 00:00:00
2014-03-06 00:00:00
2014-03-07 00:00:00
2014-03-10 00:00:00
2014-03-11 00:00:00
2014-03-12 00:00:00
2014-03-13 00:00:00
2014-03-14 00:00:00
2014-03-17 00:00:00
2014-03-18 00:00:00
2014-03-19 00:00:00
2014-03-20 00:00:00
2014-03-21 00:00:00
2014-03-24 00:00:00
2014-03-25 00:00:00
2014-03-26 00:00:00
2014-03-27 00:00:00
2014-03-28 00:00:00
2014-03-31 00:00:00
2014-04-01 00:00:00
2014-04-02 00:00:00
2014-04-03 00:00:00
2014-04-04 00:00:00
2014-04-08 00:00:00
2014-04-09 00:00:00
2014-04-10 00:00:00
2014-04-11 00:00:00
2014-04-14 00:00:00
2014-04-15 00:00:00
2014-04-16 00:00:00
2014-04-17 00:00:00
2014-04-18 00:00:00
2014-04-21 00:00:00
2014-04-22 00:00:00
2014-04-23 00:00:00
2014-04-24 00:00:00
2014-04-25 00:00:00
2014-04-28 00:00:00
2014-04-29 00:00:00
2014-04-30 00:00:00
2014-05-05 00:00:00
2014-05-06 00:00:00
2014-05-07 00:00:00
2014-05-08 00:00:00
2014-05-09 00:00:00
2014-05-12 00:00:00
2014-05-13 00:00:00
2014-05-14 00:00:00
2014-05-15 00:00:00
2014-05-16 00:00:00
2014-05-19 00:00:00
2014-05-20 00:00:00
2014-05-21 00:00:00
2014-05-22 00:00:00
2014-05-23 00:00:00
2014-05-26 00:00:00
2014-05-27 00:00:00
2014-05-28 00:00:00
2014-05-29 00:00:00
2014-05-30 00:00:00
2014-06-03 00:00:00
2014-06-04 00:00:00
2014-06-05 00:00:00
2014-06-06 00:00:00
2014-06-09 00:00:00
2014-06-10 00:00:00
2014-06-11 00:00:00
2014-06-12 00:00:00
2014-06-13 00:00:00
2014-06-16 00:00:00
2014-06-17 00:00:00
2014-06-18 00:00:00
2014-06-19 00:00:00
2014-06-20 00:00:00
2014-06-23 00:00:00
2014-06-24 00:00:00
2014-06-25 00:00:00
2014-06-26 00:00:00
2014-06-27 00:00:00
2014-06-30 00:00:00
2014-07-01 00:00:00
2014-07-02 00:00:00
2014-07-03 00:00:00
2014-07-04 00:00:00
2014-07-07 00:00:00
2014-07-08 00:00:00
2014-07-09 00:00:00
2014-07-10 00:00:00
2014-07-11 00:00:00
2014-07-14 00:00:00
2014-07-15 00:00:00
2014-07-16 00:00:00
2014-07-17 00:00:00
2014-07-18 00:00:00
2014-07-21 00:00:00
2014-07-22 00:00:00
2014-07-23 00:00:00
2014-07-24 00:00:00
2014-07-25 00:00:00
2014-07-28 00:00:00
2014-07-29 00:00:00
2014-07-30 00:00:00
2014-07-31 00:00:00
2014-08-01 00:00:00
2014-08-04 00:00:00
2014-08-05 00:00:00
2014-08-06 00:00:00
2014-08-07 00:00:00
2014-08-08 00:00:00
2014-08-11 00:00:00
2014-08-12 00:00:00
2014-08-13 00:00:00
2014-08-14 00:00:00
2014-08-15 00:00:00
2014-08-18 00:00:00
2014-08-19 00:00:00
2014-08-20 00:00:00
2014-08-21 00:00:00
2014-08-22 00:00:00
2014-08-25 00:00:00
2014-08-26 00:00:00
2014-08-27 00:00:00
2014-08-28 00:00:00
2014-08-29 00:00:00
2014-09-01 00:00:00
2014-09-02 00:00:00
2014-09-03 00:00:00
2014-09-04 00:00:00
2014-09-05 00:00:00
2014-09-09 00:00:00
2014-09-10 00:00:00
2014-09-11 00:00:00
2014-09-12 00:00:00
2014-09-15 00:00:00
2014-09-16 00:00:00
2014-09-17 00:00:00
2014-09-18 00:00:00
2014-09-19 00:00:00
2014-09-22 00:00:00
2014-09-23 00:00:00
2014-09-24 00:00:00
2014-09-25 00:00:00
2014-09-26 00:00:00
2014-09-29 00:00:00
2014-09-30 00:00:00
2014-10-08 00:00:00
2014-10-09 00:00:00
2014-10-10 00:00:00
2014-10-13 00:00:00
2014-10-14 00:00:00
2014-10-15 00:00:00
2014-10-16 00:00:00
2014-10-17 00:00:00
2014-10-20 00:00:00
2014-10-21 00:00:00
2014-10-22 00:00:00
2014-10-23 00:00:00
2014-10-24 00:00:00
2014-10-27 00:00:00
2014-10-28 00:00:00
2014-10-29 00:00:00
2014-10-30 00:00:00
2014-10-31 00:00:00
2014-11-03 00:00:00
2014-11-04 00:00:00
2014-11-05 00:00:00
2014-11-06 00:00:00
2014-11-07 00:00:00
2014-11-10 00:00:00
2014-11-11 00:00:00
2014-11-12 00:00:00
2014-11-13 00:00:00
2014-11-14 00:00:00
2014-11-17 00:00:00
2014-11-18 00:00:00
2014-11-19 00:00:00
2014-11-20 00:00:00
2014-11-21 00:00:00
2014-11-24 00:00:00
2014-11-25 00:00:00
2014-11-26 00:00:00
2014-11-27 00:00:00
2014-11-28 00:00:00
2014-12-01 00:00:00
2014-12-02 00:00:00
2014-12-03 00:00:00
2014-12-04 00:00:00
2014-12-05 00:00:00
2014-12-08 00:00:00
2014-12-09 00:00:00
2014-12-10 00:00:00
2014-12-11 00:00:00
2014-12-12 00:00:00
2014-12-15 00:00:00
2014-12-16 00:00:00
2014-12-17 00:00:00
2014-12-18 00:00:00
2014-12-19 00:00:00
2014-12-22 00:00:00
2014-12-23 00:00:00
2014-12-24 00:00:00
2014-12-25 00:00:00
2014-12-26 00:00:00
2014-12-29 00:00:00
2014-12-30 00:00:00
2014-12-31 00:00:00
2015-01-05 00:00:00
2015-01-06 00:00:00
2015-01-07 00:00:00
2015-01-08 00:00:00
2015-01-09 00:00:00
2015-01-12 00:00:00
2015-01-13 00:00:00
2015-01-14 00:00:00
2015-01-15 00:00:00
2015-01-16 00:00:00
2015-01-19 00:00:00
2015-01-20 00:00:00
2015-01-21 00:00:00
2015-01-22 00:00:00
2015-01-23 00:00:00
2015-01-26 00:00:00
2015-01-27 00:00:00
2015-01-28 00:00:00
2015-01-29 00:00:00
2015-01-30 00:00:00
2015-02-02 00:00:00
2015-02-03 00:00:00
2015-02-04 00:00:00
2015-02-05 00:00:00
2015-02-06 00:00:00
2015-02-09 00:00:00
2015-02-10 00:00:00
2015-02-11 00:00:00
2015-02-12 00:00:00
2015-02-13 00:00:00
2015-02-16 00:00:00
2015-02-17 00:00:00
2015-02-25 00:00:00
2015-02-26 00:00:00
2015-02-27 00:00:00
2015-03-02 00:00:00
2015-03-03 00:00:00
2015-03-04 00:00:00
2015-03-05 00:00:00
2015-03-06 00:00:00
2015-03-09 00:00:00
2015-03-10 00:00:00
2015-03-11 00:00:00
2015-03-12 00:00:00
2015-03-13 00:00:00
2015-03-16 00:00:00
2015-03-17 00:00:00
2015-03-18 00:00:00
2015-03-19 00:00:00
2015-03-20 00:00:00
2015-03-23 00:00:00
2015-03-24 00:00:00
2015-03-25 00:00:00
2015-03-26 00:00:00
2015-03-27 00:00:00
2015-03-30 00:00:00
2015-03-31 00:00:00
2015-04-01 00:00:00
2015-04-02 00:00:00
2015-04-03 00:00:00
2015-04-07 00:00:00
2015-04-08 00:00:00
2015-04-09 00:00:00
2015-04-10 00:00:00
2015-04-13 00:00:00
2015-04-14 00:00:00
2015-04-15 00:00:00
2015-04-16 00:00:00
2015-04-17 00:00:00
2015-04-20 00:00:00
2015-04-21 00:00:00
2015-04-22 00:00:00
2015-04-23 00:00:00
2015-04-24 00:00:00
2015-04-27 00:00:00
2015-04-28 00:00:00
2015-04-29 00:00:00
2015-04-30 00:00:00
2015-05-04 00:00:00
2015-05-05 00:00:00
2015-05-06 00:00:00
2015-05-07 00:00:00
2015-05-08 00:00:00
2015-05-11 00:00:00
2015-05-12 00:00:00
2015-05-13 00:00:00
2015-05-14 00:00:00
2015-05-15 00:00:00
2015-05-18 00:00:00
2015-05-19 00:00:00
2015-05-20 00:00:00
2015-05-21 00:00:00
2015-05-22 00:00:00
2015-05-25 00:00:00
2015-05-26 00:00:00
2015-05-27 00:00:00
2015-05-28 00:00:00
2015-05-29 00:00:00
2015-06-01 00:00:00
2015-06-02 00:00:00
2015-06-03 00:00:00
2015-06-04 00:00:00
2015-06-05 00:00:00
2015-06-08 00:00:00
2015-06-09 00:00:00
2015-06-10 00:00:00
2015-06-11 00:00:00
2015-06-12 00:00:00
2015-06-15 00:00:00
2015-06-16 00:00:00
2015-06-17 00:00:00
2015-06-18 00:00:00
2015-06-19 00:00:00
2015-06-23 00:00:00
2015-06-24 00:00:00
2015-06-25 00:00:00
2015-06-26 00:00:00
2015-06-29 00:00:00
2015-06-30 00:00:00
2015-07-01 00:00:00
2015-07-02 00:00:00
2015-07-03 00:00:00
2015-07-06 00:00:00
2015-07-07 00:00:00
2015-07-08 00:00:00
2015-07-09 00:00:00
2015-07-10 00:00:00
2015-07-13 00:00:00
2015-07-14 00:00:00
2015-07-15 00:00:00
2015-07-16 00:00:00
2015-07-17 00:00:00
2015-07-20 00:00:00
2015-07-21 00:00:00
2015-07-22 00:00:00
2015-07-23 00:00:00
2015-07-24 00:00:00
2015-07-27 00:00:00
2015-07-28 00:00:00
2015-07-29 00:00:00
2015-07-30 00:00:00
2015-07-31 00:00:00
2015-08-03 00:00:00
2015-08-04 00:00:00
2015-08-05 00:00:00
2015-08-06 00:00:00
2015-08-07 00:00:00
2015-08-10 00:00:00
2015-08-11 00:00:00
2015-08-12 00:00:00
2015-08-13 00:00:00
2015-08-14 00:00:00
2015-08-17 00:00:00
2015-08-18 00:00:00
2015-08-19 00:00:00
2015-08-20 00:00:00
2015-08-21 00:00:00
2015-08-24 00:00:00
2015-08-25 00:00:00
2015-08-26 00:00:00
2015-08-27 00:00:00
2015-08-28 00:00:00
2015-08-31 00:00:00
2015-09-01 00:00:00
2015-09-02 00:00:00
2015-09-07 00:00:00
2015-09-08 00:00:00
2015-09-09 00:00:00
2015-09-10 00:00:00
2015-09-11 00:00:00
2015-09-14 00:00:00
2015-09-15 00:00:00
2015-09-16 00:00:00
2015-09-17 00:00:00
2015-09-18 00:00:00
2015-09-21 00:00:00
2015-09-22 00:00:00
2015-09-23 00:00:00
2015-09-24 00:00:00
2015-09-25 00:00:00
2015-09-28 00:00:00
2015-09-29 00:00:00
2015-09-30 00:00:00
2015-10-08 00:00:00
2015-10-09 00:00:00
2015-10-12 00:00:00
2015-10-13 00:00:00
2015-10-14 00:00:00
2015-10-15 00:00:00
2015-10-16 00:00:00
2015-10-19 00:00:00
2015-10-20 00:00:00
2015-10-21 00:00:00
2015-10-22 00:00:00
2015-10-23 00:00:00
2015-10-26 00:00:00
2015-10-27 00:00:00
2015-10-28 00:00:00
2015-10-29 00:00:00
2015-10-30 00:00:00
2015-11-02 00:00:00
2015-11-03 00:00:00
2015-11-04 00:00:00
2015-11-05 00:00:00
2015-11-06 00:00:00
2015-11-09 00:00:00
2015-11-10 00:00:00
2015-11-11 00:00:00
2015-11-12 00:00:00
2015-11-13 00:00:00
2015-11-16 00:00:00
2015-11-17 00:00:00
2015-11-18 00:00:00
2015-11-19 00:00:00
2015-11-20 00:00:00
2015-11-23 00:00:00
2015-11-24 00:00:00
2015-11-25 00:00:00
2015-11-26 00:00:00
2015-11-27 00:00:00
2015-11-30 00:00:00
2015-12-01 00:00:00
2015-12-02 00:00:00
2015-12-03 00:00:00
2015-12-04 00:00:00
2015-12-07 00:00:00
2015-12-08 00:00:00
2015-12-09 00:00:00
2015-12-10 00:00:00
2015-12-11 00:00:00
2015-12-14 00:00:00
2015-12-15 00:00:00
2015-12-16 00:00:00
2015-12-17 00:00:00
2015-12-18 00:00:00
2015-12-21 00:00:00
2015-12-22 00:00:00
2015-12-23 00:00:00
2015-12-24 00:00:00
2015-12-25 00:00:00
2015-12-28 00:00:00
2015-12-29 00:00:00
2015-12-30 00:00:00
2015-12-31 00:00:00
2016-01-04 00:00:00
2016-01-05 00:00:00
2016-01-06 00:00:00
2016-01-07 00:00:00
2016-01-08 00:00:00
2016-01-11 00:00:00
2016-01-12 00:00:00
2016-01-13 00:00:00
2016-01-14 00:00:00
2016-01-15 00:00:00
2016-01-18 00:00:00
2016-01-19 00:00:00
2016-01-20 00:00:00
2016-01-21 00:00:00
2016-01-22 00:00:00
2016-01-25 00:00:00
2016-01-26 00:00:00
2016-01-27 00:00:00
2016-01-28 00:00:00
2016-01-29 00:00:00
2016-02-01 00:00:00
2016-02-02 00:00:00
2016-02-03 00:00:00
2016-02-04 00:00:00
2016-02-05 00:00:00
2016-02-15 00:00:00
2016-02-16 00:00:00
2016-02-17 00:00:00
2016-02-18 00:00:00
2016-02-19 00:00:00
2016-02-22 00:00:00
2016-02-23 00:00:00
2016-02-24 00:00:00
2016-02-25 00:00:00
2016-02-26 00:00:00
2016-02-29 00:00:00
2016-03-01 00:00:00
2016-03-02 00:00:00
2016-03-03 00:00:00
2016-03-04 00:00:00
2016-03-07 00:00:00
2016-03-08 00:00:00
2016-03-09 00:00:00
2016-03-10 00:00:00
2016-03-11 00:00:00
2016-03-14 00:00:00
2016-03-15 00:00:00
2016-03-16 00:00:00
2016-03-17 00:00:00
2016-03-18 00:00:00
2016-03-21 00:00:00
2016-03-22 00:00:00
2016-03-23 00:00:00
2016-03-24 00:00:00
2016-03-25 00:00:00
2016-03-28 00:00:00
2016-03-29 00:00:00
2016-03-30 00:00:00
2016-03-31 00:00:00
2016-04-01 00:00:00
2016-04-05 00:00:00
2016-04-06 00:00:00
2016-04-07 00:00:00
2016-04-08 00:00:00
2016-04-11 00:00:00
2016-04-12 00:00:00
2016-04-13 00:00:00
2016-04-14 00:00:00
2016-04-15 00:00:00
2016-04-18 00:00:00
2016-04-19 00:00:00
2016-04-20 00:00:00
2016-04-21 00:00:00
2016-04-22 00:00:00
2016-04-25 00:00:00
2016-04-26 00:00:00
2016-04-27 00:00:00
2016-04-28 00:00:00
2016-04-29 00:00:00
2016-05-03 00:00:00
2016-05-04 00:00:00
2016-05-05 00:00:00
2016-05-06 00:00:00
2016-05-09 00:00:00
2016-05-10 00:00:00
2016-05-11 00:00:00
2016-05-12 00:00:00
2016-05-13 00:00:00
2016-05-16 00:00:00
2016-05-17 00:00:00
2016-05-18 00:00:00
2016-05-19 00:00:00
2016-05-20 00:00:00
2016-05-23 00:00:00
2016-05-24 00:00:00
2016-05-25 00:00:00
2016-05-26 00:00:00
2016-05-27 00:00:00
2016-05-30 00:00:00
2016-05-31 00:00:00
2016-06-01 00:00:00
2016-06-02 00:00:00
2016-06-03 00:00:00
2016-06-06 00:00:00
2016-06-07 00:00:00
2016-06-08 00:00:00
2016-06-13 00:00:00
2016-06-14 00:00:00
2016-06-15 00:00:00
2016-06-16 00:00:00
2016-06-17 00:00:00
2016-06-20 00:00:00
2016-06-21 00:00:00
2016-06-22 00:00:00
2016-06-23 00:00:00
2016-06-24 00:00:00
2016-06-27 00:00:00
2016-06-28 00:00:00
2016-06-29 00:00:00
2016-06-30 00:00:00
2016-07-01 00:00:00
2016-07-04 00:00:00
2016-07-05 00:00:00
2016-07-06 00:00:00
2016-07-07 00:00:00
2016-07-08 00:00:00
2016-07-11 00:00:00
2016-07-12 00:00:00
2016-07-13 00:00:00
2016-07-14 00:00:00
2016-07-15 00:00:00
2016-07-18 00:00:00
2016-07-19 00:00:00
2016-07-20 00:00:00
2016-07-21 00:00:00
2016-07-22 00:00:00
2016-07-25 00:00:00
2016-07-26 00:00:00
2016-07-27 00:00:00
2016-07-28 00:00:00
2016-07-29 00:00:00
2016-08-01 00:00:00
2016-08-02 00:00:00
2016-08-03 00:00:00
2016-08-04 00:00:00
2016-08-05 00:00:00
2016-08-08 00:00:00
2016-08-09 00:00:00
2016-08-10 00:00:00
2016-08-11 00:00:00
2016-08-12 00:00:00
2016-08-15 00:00:00
2016-08-16 00:00:00
2016-08-17 00:00:00
2016-08-18 00:00:00
2016-08-19 00:00:00
2016-08-22 00:00:00
2016-08-23 00:00:00
2016-08-24 00:00:00
2016-08-25 00:00:00
2016-08-26 00:00:00
2016-08-29 00:00:00
2016-08-30 00:00:00
2016-08-31 00:00:00
2016-09-01 00:00:00
2016-09-02 00:00:00
2016-09-05 00:00:00
2016-09-06 00:00:00
2016-09-07 00:00:00
2016-09-08 00:00:00
2016-09-09 00:00:00
2016-09-12 00:00:00
2016-09-13 00:00:00
2016-09-14 00:00:00
2016-09-19 00:00:00
2016-09-20 00:00:00
2016-09-21 00:00:00
2016-09-22 00:00:00
2016-09-23 00:00:00
2016-09-26 00:00:00
2016-09-27 00:00:00
2016-09-28 00:00:00
2016-09-29 00:00:00
2016-09-30 00:00:00
2016-10-10 00:00:00
2016-10-11 00:00:00
2016-10-12 00:00:00
2016-10-13 00:00:00
2016-10-14 00:00:00
2016-10-17 00:00:00
2016-10-18 00:00:00
2016-10-19 00:00:00
2016-10-20 00:00:00
2016-10-21 00:00:00
2016-10-24 00:00:00
2016-10-25 00:00:00
2016-10-26 00:00:00
2016-10-27 00:00:00
2016-10-28 00:00:00
2016-10-31 00:00:00
2016-11-01 00:00:00
2016-11-02 00:00:00
2016-11-03 00:00:00
2016-11-04 00:00:00
2016-11-07 00:00:00
2016-11-08 00:00:00
2016-11-09 00:00:00
2016-11-10 00:00:00
2016-11-11 00:00:00
2016-11-14 00:00:00
2016-11-15 00:00:00
2016-11-16 00:00:00
2016-11-17 00:00:00
2016-11-18 00:00:00
2016-11-21 00:00:00
2016-11-22 00:00:00
2016-11-23 00:00:00
2016-11-24 00:00:00
2016-11-25 00:00:00
2016-11-28 00:00:00
2016-11-29 00:00:00
2016-11-30 00:00:00
2016-12-01 00:00:00
2016-12-02 00:00:00
2016-12-05 00:00:00
2016-12-06 00:00:00
2016-12-07 00:00:00
2016-12-08 00:00:00
2016-12-09 00:00:00
2016-12-12 00:00:00
2016-12-13 00:00:00
2016-12-14 00:00:00
2016-12-15 00:00:00
2016-12-16 00:00:00
2016-12-19 00:00:00
2016-12-20 00:00:00
2016-12-21 00:00:00
2016-12-22 00:00:00
2016-12-23 00:00:00
2016-12-26 00:00:00
2016-12-27 00:00:00
2016-12-28 00:00:00
2016-12-29 00:00:00
2016-12-30 00:00:00
2017-01-03 00:00:00
2017-01-04 00:00:00
2017-01-05 00:00:00
2017-01-06 00:00:00
2017-01-09 00:00:00
2017-01-10 00:00:00
2017-01-11 00:00:00
2017-01-12 00:00:00
2017-01-13 00:00:00
2017-01-16 00:00:00
2017-01-17 00:00:00
2017-01-18 00:00:00
2017-01-19 00:00:00
2017-01-20 00:00:00
2017-01-23 00:00:00
2017-01-24 00:00:00
2017-01-25 00:00:00
2017-01-26 00:00:00
2017-02-03 00:00:00
2017-02-06 00:00:00
2017-02-07 00:00:00
2017-02-08 00:00:00
2017-02-09 00:00:00
2017-02-10 00:00:00
2017-02-13 00:00:00
2017-02-14 00:00:00
2017-02-15 00:00:00
2017-02-16 00:00:00
2017-02-17 00:00:00
2017-02-20 00:00:00
2017-02-21 00:00:00
2017-02-22 00:00:00
2017-02-23 00:00:00
2017-02-24 00:00:00
2017-02-27 00:00:00
2017-02-28 00:00:00
2017-03-01 00:00:00
2017-03-02 00:00:00
2017-03-03 00:00:00
2017-03-06 00:00:00
2017-03-07 00:00:00
2017-03-08 00:00:00
2017-03-09 00:00:00
2017-03-10 00:00:00
2017-03-13 00:00:00
2017-03-14 00:00:00
2017-03-15 00:00:00
2017-03-16 00:00:00
2017-03-17 00:00:00
2017-03-20 00:00:00
2017-03-21 00:00:00
2017-03-22 00:00:00
2017-03-23 00:00:00
2017-03-24 00:00:00
2017-03-27 00:00:00
2017-03-28 00:00:00
2017-03-29 00:00:00
2017-03-30 00:00:00
2017-03-31 00:00:00
2017-04-05 00:00:00
2017-04-06 00:00:00
2017-04-07 00:00:00
2017-04-10 00:00:00
2017-04-11 00:00:00
2017-04-12 00:00:00
2017-04-13 00:00:00
2017-04-14 00:00:00
2017-04-17 00:00:00
2017-04-18 00:00:00
2017-04-19 00:00:00
2017-04-20 00:00:00
2017-04-21 00:00:00
2017-04-24 00:00:00
2017-04-25 00:00:00
2017-04-26 00:00:00
2017-04-27 00:00:00
2017-04-28 00:00:00
2017-05-02 00:00:00
2017-05-03 00:00:00
2017-05-04 00:00:00
2017-05-05 00:00:00
2017-05-08 00:00:00
2017-05-09 00:00:00
2017-05-10 00:00:00
2017-05-11 00:00:00
2017-05-12 00:00:00
2017-05-15 00:00:00
2017-05-16 00:00:00
2017-05-17 00:00:00
2017-05-18 00:00:00
2017-05-19 00:00:00
2017-05-22 00:00:00
2017-05-23 00:00:00
2017-05-24 00:00:00
2017-05-25 00:00:00
2017-05-26 00:00:00
2017-05-31 00:00:00
2017-06-01 00:00:00
2017-06-02 00:00:00
2017-06-05 00:00:00
2017-06-06 00:00:00
2017-06-07 00:00:00
2017-06-08 00:00:00
2017-06-09 00:00:00
2017-06-12 00:00:00
2017-06-13 00:00:00
2017-06-14 00:00:00
2017-06-15 00:00:00
2017-06-16 00:00:00
2017-06-19 00:00:00
2017-06-20 00:00:00
2017-06-21 00:00:00
2017-06-22 00:00:00
2017-06-23 00:00:00
2017-06-26 00:00:00
2017-06-27 00:00:00
2017-06-28 00:00:00
2017-06-29 00:00:00
2017-06-30 00:00:00
2017-07-03 00:00:00
2017-07-04 00:00:00
2017-07-05 00:00:00
2017-07-06 00:00:00
2017-07-07 00:00:00
2017-07-10 00:00:00
2017-07-11 00:00:00
2017-07-12 00:00:00
2017-07-13 00:00:00
2017-07-14 00:00:00
2017-07-17 00:00:00
2017-07-18 00:00:00
2017-07-19 00:00:00
2017-07-20 00:00:00
2017-07-21 00:00:00
2017-07-24 00:00:00
2017-07-25 00:00:00
2017-07-26 00:00:00
2017-07-27 00:00:00
2017-07-28 00:00:00
2017-07-31 00:00:00
2017-08-01 00:00:00
2017-08-02 00:00:00
2017-08-03 00:00:00
2017-08-04 00:00:00
2017-08-07 00:00:00
2017-08-08 00:00:00
2017-08-09 00:00:00
2017-08-10 00:00:00
2017-08-11 00:00:00
2017-08-14 00:00:00
2017-08-15 00:00:00
2017-08-16 00:00:00
2017-08-17 00:00:00
2017-08-18 00:00:00
2017-08-21 00:00:00
2017-08-22 00:00:00
2017-08-23 00:00:00
2017-08-24 00:00:00
2017-08-25 00:00:00
2017-08-28 00:00:00
2017-08-29 00:00:00
2017-08-30 00:00:00
2017-08-31 00:00:00
2017-09-01 00:00:00
2017-09-04 00:00:00
2017-09-05 00:00:00
2017-09-06 00:00:00
2017-09-07 00:00:00
2017-09-08 00:00:00
2017-09-11 00:00:00
2017-09-12 00:00:00
2017-09-13 00:00:00
2017-09-14 00:00:00
2017-09-15 00:00:00
2017-09-18 00:00:00
2017-09-19 00:00:00
2017-09-20 00:00:00
2017-09-21 00:00:00
2017-09-22 00:00:00
2017-09-25 00:00:00
2017-09-26 00:00:00
2017-09-27 00:00:00
2017-09-28 00:00:00

In [ ]:
# --------------------------------------- end spreadbais Factor ---------------------------------- #

In [ ]:


In [1]:
# --------------------------------------- HibertTransform Factor ---------------------------------- #

In [ ]:
# 希尔波特变化因子,根据talib计算

In [2]:
filenameAdjClose = 'OwnfactorAdjustedClose.h5'

In [34]:
class HibertTransform(CalOwnFactor):
    classname = 'HibertTransform'
    def __init__(self,path):
        super(HibertTransform,self).__init__(path) # arguments in super method should be exactly same as the args in parent class
        #self.setting = setting
    def calHB(self,data):
        hb = data.copy()
        NanCount =0
        datamodi = np.array(data.values,dtype='f8')
        for name in data.columns:
            nameindex = data.columns.tolist().index(name)
            try:
                hb[name] = talib.HT_TRENDLINE(datamodi[:,nameindex])
            except Exception as e:
                #print str(e) 
                #print 'too much NaN value for stock %s'%name
                assert str(e)== 'inputs are all NaN'
                hb[name] = np.NaN
                NanCount+=1
        return hb
    def calHBRatio(self,adjClose,rolling_window=20):
        self.HBRatio = (self.calHB(adjClose)/ adjClose).rolling(window=rolling_window, min_periods=20).mean().round(4)

In [35]:
# cal HibertTransform Factor
hiberttransform = HibertTransform(path)
hiberttransform .addData('adjprice',filenameAdjClose)

hiberttransform .calHBRatio(hiberttransform.datadict['adjprice'])

hiberttransform.saveData(hiberttransform.HBRatio,'OwnfactorHibertTransform20D')

In [36]:
hiberttransform.HBRatio.tail(5)


Out[36]:
000005.SZ 600601.SH 600602.SH 600651.SH 600652.SH 600653.SH 600654.SH 600656.SH 000004.SZ 000002.SZ ... 300705.SZ 300707.SZ 603103.SH 002903.SZ 002906.SZ 603110.SH 002905.SZ 300708.SZ 603499.SH 603829.SH
date
2017-10-10 0.9696 0.9672 0.9863 0.9839 1.0055 0.9988 1.3214 NaN 0.9674 0.8860 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2017-10-11 0.9699 0.9685 0.9845 0.9845 1.0056 0.9986 1.3544 NaN 0.9675 0.8863 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2017-10-12 0.9710 0.9707 0.9815 0.9847 1.0059 0.9993 1.3850 NaN 0.9692 0.8904 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2017-10-13 0.9754 0.9732 0.9785 0.9841 1.0081 0.9997 1.4107 NaN 0.9711 0.8947 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2017-10-16 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

5 rows × 3487 columns


In [ ]:
# --------------------------------------- End HibertTransform Factor ---------------------------------- #

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:
# --------------------------------------- research basedon 1min data section ---------------------------------- #

In [69]:
savepath = 'C:/Users/LZJF_02/Desktop/myownliarbry/stkdata1m/'
desktop = 'C:/Users/LZJF_02/Desktop/'
stkname = '600050'
data = ff.readh5data(savepath,stkname+'.h5')
#data['time'] = [datetime.strptime(str(int(time)),'%H%M%S').time() for time in data['time']]

#data1 = ff.readh5data(savepath,stkname+'.h5')
#datelist = sorted(set(data.index))

In [278]:
dataslice = data[data.index == datelist[0]]

In [284]:
posPnl = dataslice[dataslice['close'] > dataslice['open']]
negPnl = dataslice[dataslice['close'] < dataslice['open']]
posPnl['volume']


Out[284]:
286.60000000000014

In [298]:
def calVolQuantileRatio(stk):
    data = ff.readh5data(savepath, stk+'.h5')
    data['time'] = [datetime.strptime(str(int(time)), '%H%M%S').time() for time in data['time']]
    dataPos = data[data['close']>data['open']]['volume']
    
    dataNeg = data[data['close']<data['open']]['volume']
    datelist = sorted(set(data.index))
    Qdf = pd.DataFrame(index=datelist, columns=[stk], dtype=float)
    for date in datelist:
        try:
            posSlice =  dataPos[dataPos.index ==date]
        #print posSlice
            negSlice = dataNeg[dataNeg.index ==date]
        except:
            print 'error'
            Qdf.loc[date] = np.NaN
            continue
        totalVolume = data[data.index==date]['volume'].sum()
        #print totalVolume
        if posSlice.shape[0] > 4:
            posVol = posSlice.quantile(0.8)
        else:
            posVol = 0
        if negSlice.shape[0] > 4:
            negVol = negSlice.quantile(0.8)
        else:
            negVol = 0
        try:
            Qdf.loc[date] = 1000*(posVol - negVol) / totalVolume
        except:
            Qdf.loc[date] = np.NaN
    return Qdf.round(3)

In [310]:
stkname = '603999'
c = calVolQuantileRatio(stkname)

In [216]:
negPnl['volume'].hist()


Out[216]:
<matplotlib.axes._subplots.AxesSubplot at 0x564aeda0>

In [191]:
dataNoneZero = data[data.volume >1]
dataNoneZero


Out[191]:
open close high low amount volume time
date
2012-01-04 3.26 3.29 3.29 3.26 38558.0 118.0 09:30:00
2012-01-04 3.29 3.29 3.29 3.28 40126.0 122.0 09:31:00
2012-01-04 3.28 3.28 3.29 3.28 62322.0 190.0 09:32:00
2012-01-04 3.28 3.28 3.28 3.28 23747.0 72.0 09:33:00
2012-01-04 3.28 3.28 3.28 3.28 19680.0 60.0 09:34:00
2012-01-04 3.29 3.31 3.31 3.28 124241.0 378.0 09:35:00
2012-01-04 3.29 3.35 3.36 3.29 111684.0 335.0 09:36:00
2012-01-04 3.35 3.34 3.35 3.34 69581.0 208.0 09:37:00
2012-01-04 3.34 3.33 3.34 3.33 43016.0 129.0 09:38:00
2012-01-04 3.34 3.33 3.34 3.33 70677.0 212.0 09:39:00
2012-01-04 3.34 3.34 3.34 3.33 25707.0 77.0 09:40:00
2012-01-04 3.33 3.34 3.34 3.33 55023.0 165.0 09:41:00
2012-01-04 3.34 3.34 3.34 3.33 107094.0 321.0 09:42:00
2012-01-04 3.34 3.33 3.34 3.33 6665.0 20.0 09:43:00
2012-01-04 3.34 3.33 3.34 3.33 9001.0 27.0 09:44:00
2012-01-04 3.33 3.33 3.33 3.33 7992.0 24.0 09:45:00
2012-01-04 3.33 3.33 3.33 3.33 8658.0 26.0 09:46:00
2012-01-04 3.32 3.32 3.32 3.32 28890.0 87.0 09:47:00
2012-01-04 3.33 3.33 3.33 3.30 75807.0 229.0 09:48:00
2012-01-04 3.33 3.33 3.33 3.33 53928.0 162.0 09:49:00
2012-01-04 3.30 3.30 3.30 3.30 9900.0 30.0 09:51:00
2012-01-04 3.30 3.30 3.30 3.30 3300.0 10.0 09:52:00
2012-01-04 3.31 3.31 3.31 3.31 3227.0 9.0 09:53:00
2012-01-04 3.31 3.31 3.31 3.30 44086.0 134.0 09:54:00
2012-01-04 3.30 3.30 3.30 3.30 9900.0 30.0 09:55:00
2012-01-04 3.30 3.30 3.30 3.30 22358.0 67.0 09:56:00
2012-01-04 3.30 3.30 3.30 3.30 14272.0 44.0 09:57:00
2012-01-04 3.29 3.29 3.29 3.29 2961.0 9.0 09:58:00
2012-01-04 3.29 3.28 3.29 3.28 26523.0 80.0 09:59:00
2012-01-04 3.28 3.28 3.28 3.28 6560.0 20.0 10:00:00
... ... ... ... ... ... ... ...
2016-09-13 11.16 11.16 11.17 11.16 482208.0 432.0 14:28:00
2016-09-13 11.17 11.16 11.17 11.16 325792.0 292.0 14:29:00
2016-09-13 11.16 11.18 11.19 11.15 1675600.0 1500.0 14:30:00
2016-09-13 11.18 11.18 11.18 11.17 401296.0 359.0 14:31:00
2016-09-13 11.18 11.18 11.18 11.17 329808.0 295.0 14:32:00
2016-09-13 11.18 11.17 11.18 11.17 314992.0 282.0 14:33:00
2016-09-13 11.17 11.16 11.17 11.16 457600.0 410.0 14:34:00
2016-09-13 11.17 11.18 11.18 11.16 926304.0 829.0 14:35:00
2016-09-13 11.18 11.19 11.19 11.18 546800.0 489.0 14:36:00
2016-09-13 11.19 11.19 11.19 11.18 507904.0 454.0 14:37:00
2016-09-13 11.19 11.18 11.19 11.18 504400.0 451.0 14:38:00
2016-09-13 11.18 11.17 11.18 11.17 480400.0 430.0 14:39:00
2016-09-13 11.16 11.16 11.17 11.16 841488.0 754.0 14:40:00
2016-09-13 11.16 11.16 11.17 11.16 272416.0 244.0 14:41:00
2016-09-13 11.16 11.15 11.16 11.15 1709488.0 1533.0 14:42:00
2016-09-13 11.15 11.13 11.15 11.13 1060304.0 952.0 14:43:00
2016-09-13 11.12 11.12 11.13 11.12 901200.0 810.0 14:44:00
2016-09-13 11.13 11.15 11.15 11.12 192704.0 173.0 14:45:00
2016-09-13 11.15 11.15 11.16 11.14 570896.0 512.0 14:46:00
2016-09-13 11.15 11.16 11.17 11.15 967808.0 867.0 14:47:00
2016-09-13 11.15 11.18 11.18 11.15 1204384.0 1078.0 14:48:00
2016-09-13 11.19 11.20 11.20 11.18 671312.0 600.0 14:49:00
2016-09-13 11.19 11.19 11.20 11.19 1782496.0 1592.0 14:50:00
2016-09-13 11.19 11.18 11.19 11.17 1062608.0 950.0 14:51:00
2016-09-13 11.17 11.16 11.18 11.16 1203200.0 1077.0 14:52:00
2016-09-13 11.17 11.16 11.18 11.16 1147792.0 1028.0 14:53:00
2016-09-13 11.18 11.16 11.18 11.16 1163504.0 1042.0 14:54:00
2016-09-13 11.16 11.16 11.17 11.16 1327296.0 1189.0 14:55:00
2016-09-13 11.17 11.17 11.17 11.16 1612304.0 1444.0 14:56:00
2016-09-13 11.17 11.17 11.17 11.17 1908992.0 1709.0 14:59:00

248368 rows × 7 columns


In [90]:
datelist = sorted(set(data.index))
Qdf = pd.DataFrame(index=datelist, columns=[stkname], dtype=float)
for date in datelist:
    breakdate = date
    try:
        dataslice = dataNoneZero[dataNoneZero.index == date]
    except:
        Qdf.loc[date] = np.NaN
        continue
    #dataslice = dataNoneZero[dataNoneZero.index == date]
    #dataNoneZero = dataslice.loc[dataslice.volume>0]
    if dataslice.shape[0] >= 60 and dataslice.loc[dataslice['high'] == dataslice['low']].shape[0] < 0.5 \
            * dataslice.shape[0]:  # nonzero volumes should be at least 120
        dataslice['impact'] = np.abs(dataslice['close'] - dataslice['open']) / np.log10(dataslice['volume'])/dataslice['open']
        datanew = dataslice.sort_values(['impact'], ascending=False)
        try:
            q1 = datanew.loc[datanew.volume.cumsum() <= datanew.volume.sum() * 0.3][['amount', 'volume']]
            Qdf.loc[date] = (q1.amount.sum() / q1.volume.sum()) / (datanew.amount.sum() / datanew.volume.sum())
        except ZeroDivisionError:
            Qdf.loc[date] = np.NaN
    else:
        Qdf.loc[date] = np.NaN


c:\python27\lib\site-packages\ipykernel\__main__.py:13: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

In [84]:
filenameHS300Member = 'LZ_CN_STKA_INDEX_HS300MEMBER.h5'
filenameCSI500Member = 'LZ_CN_STKA_INDEX_CSI500MEMBER.h5'

In [89]:
def getMemberList(path,filename):
    df = ff.readh5data(path,filename).iloc[-1]
    return df.loc[df==1].index.tolist()
hs300MemberList = getMemberList(path,filenameHS300Member )
csi500MemberList = getMemberList(path,filenameCSI500Member)
finalList = hs300MemberList+csi500MemberList
finalList


Out[89]:
['000002.SZ',
 '000001.SZ',
 '000009.SZ',
 '600606.SH',
 '000008.SZ',
 '000503.SZ',
 '600637.SH',
 '600649.SH',
 '600660.SH',
 '600663.SH',
 '600674.SH',
 '600682.SH',
 '600685.SH',
 '600688.SH',
 '600690.SH',
 '000538.SZ',
 '600804.SH',
 '000559.SZ',
 '600816.SH',
 '600820.SH',
 '000540.SZ',
 '600827.SH',
 '600837.SH',
 '601607.SH',
 '000555.SZ',
 '000568.SZ',
 '600871.SH',
 '600886.SH',
 '600887.SH',
 '600893.SH',
 '600895.SH',
 '600705.SH',
 '600703.SH',
 '600704.SH',
 '600718.SH',
 '000402.SZ',
 '000415.SZ',
 '000423.SZ',
 '600737.SH',
 '600739.SH',
 '600741.SH',
 '000425.SZ',
 '000413.SZ',
 '000623.SZ',
 '000627.SZ',
 '000651.SZ',
 '000630.SZ',
 '000671.SZ',
 '000060.SZ',
 '000686.SZ',
 '600795.SH',
 '000718.SZ',
 '000709.SZ',
 '600060.SH',
 '600066.SH',
 '600061.SH',
 '600068.SH',
 '000625.SZ',
 '000776.SZ',
 '000728.SZ',
 '600089.SH',
 '600074.SH',
 '600085.SH',
 '000738.SZ',
 '000768.SZ',
 '600100.SH',
 '000750.SZ',
 '000793.SZ',
 '000783.SZ',
 '600109.SH',
 '000792.SZ',
 '600118.SH',
 '000069.SZ',
 '600111.SH',
 '000839.SZ',
 '600115.SH',
 '000063.SZ',
 '600104.SH',
 '600009.SH',
 '000826.SZ',
 '000876.SZ',
 '000858.SZ',
 '600157.SH',
 '600150.SH',
 '600153.SH',
 '600170.SH',
 '600188.SH',
 '600196.SH',
 '600177.SH',
 '000895.SZ',
 '000917.SZ',
 '600208.SH',
 '000938.SZ',
 '600000.SH',
 '600221.SH',
 '000959.SZ',
 '000963.SZ',
 '000961.SZ',
 '600008.SH',
 '600256.SH',
 '000977.SZ',
 '600233.SH',
 '000983.SZ',
 '000156.SZ',
 '000157.SZ',
 '600276.SH',
 '600297.SH',
 '600019.SH',
 '600038.SH',
 '600016.SH',
 '600309.SH',
 '600369.SH',
 '000725.SZ',
 '600332.SH',
 '600037.SH',
 '600010.SH',
 '600376.SH',
 '600518.SH',
 '600383.SH',
 '600588.SH',
 '600372.SH',
 '600028.SH',
 '600498.SH',
 '600519.SH',
 '600362.SH',
 '600583.SH',
 '600585.SH',
 '600373.SH',
 '600036.SH',
 '600415.SH',
 '600535.SH',
 '600050.SH',
 '600522.SH',
 '600549.SH',
 '600030.SH',
 '600436.SH',
 '600031.SH',
 '600271.SH',
 '600029.SH',
 '600352.SH',
 '600485.SH',
 '600489.SH',
 '600547.SH',
 '600015.SH',
 '600406.SH',
 '600021.SH',
 '600900.SH',
 '600570.SH',
 '600446.SH',
 '600340.SH',
 '000100.SZ',
 '002007.SZ',
 '002008.SZ',
 '600482.SH',
 '002024.SZ',
 '002027.SZ',
 '002044.SZ',
 '002049.SZ',
 '601988.SH',
 '600048.SH',
 '601006.SH',
 '601111.SH',
 '002065.SZ',
 '002074.SZ',
 '600018.SH',
 '601398.SH',
 '002081.SZ',
 '601872.SH',
 '601333.SH',
 '601628.SH',
 '601166.SH',
 '601318.SH',
 '002131.SZ',
 '601998.SH',
 '000338.SZ',
 '601600.SH',
 '601328.SH',
 '601919.SH',
 '002142.SZ',
 '601009.SH',
 '002146.SZ',
 '002152.SZ',
 '002153.SZ',
 '601169.SH',
 '002174.SZ',
 '601939.SH',
 '601088.SH',
 '601857.SH',
 '002183.SZ',
 '601390.SH',
 '002195.SZ',
 '601866.SH',
 '601601.SH',
 '002202.SZ',
 '601099.SH',
 '601186.SH',
 '601958.SH',
 '601899.SH',
 '002230.SZ',
 '002236.SZ',
 '002241.SZ',
 '002252.SZ',
 '601766.SH',
 '601727.SH',
 '601668.SH',
 '601788.SH',
 '002292.SZ',
 '601618.SH',
 '601888.SH',
 '002299.SZ',
 '300017.SZ',
 '300024.SZ',
 '300027.SZ',
 '002304.SZ',
 '600999.SH',
 '002310.SZ',
 '601989.SH',
 '300033.SZ',
 '601117.SH',
 '601877.SH',
 '002352.SZ',
 '601688.SH',
 '300059.SZ',
 '002385.SZ',
 '300070.SZ',
 '300072.SZ',
 '002411.SZ',
 '002415.SZ',
 '002424.SZ',
 '002426.SZ',
 '601288.SH',
 '002450.SZ',
 '002456.SZ',
 '300104.SZ',
 '601718.SH',
 '601818.SH',
 '002465.SZ',
 '002466.SZ',
 '002470.SZ',
 '002475.SZ',
 '300124.SZ',
 '601018.SH',
 '601377.SH',
 '300133.SZ',
 '002500.SZ',
 '002508.SZ',
 '300144.SZ',
 '601933.SH',
 '601118.SH',
 '300168.SZ',
 '601216.SH',
 '601992.SH',
 '002555.SZ',
 '002558.SZ',
 '002594.SZ',
 '002602.SZ',
 '300251.SZ',
 '601901.SH',
 '601633.SH',
 '601669.SH',
 '601555.SH',
 '601336.SH',
 '601800.SH',
 '002673.SZ',
 '300315.SZ',
 '601608.SH',
 '603993.SH',
 '000333.SZ',
 '600023.SH',
 '002714.SZ',
 '601225.SH',
 '002736.SZ',
 '601021.SH',
 '002739.SZ',
 '000166.SZ',
 '601198.SH',
 '600958.SH',
 '600959.SH',
 '601985.SH',
 '601211.SH',
 '601155.SH',
 '001979.SZ',
 '002797.SZ',
 '601611.SH',
 '601127.SH',
 '601966.SH',
 '600919.SH',
 '600977.SH',
 '601997.SH',
 '601163.SH',
 '603160.SH',
 '600926.SH',
 '601229.SH',
 '603858.SH',
 '600909.SH',
 '002831.SZ',
 '601375.SH',
 '002841.SZ',
 '601881.SH',
 '002839.SZ',
 '600651.SH',
 '000012.SZ',
 '000006.SZ',
 '600611.SH',
 '600614.SH',
 '600655.SH',
 '600618.SH',
 '000501.SZ',
 '600628.SH',
 '600633.SH',
 '600635.SH',
 '600639.SH',
 '600640.SH',
 '600642.SH',
 '600643.SH',
 '600645.SH',
 '600648.SH',
 '600657.SH',
 '000025.SZ',
 '600664.SH',
 '000517.SZ',
 '000028.SZ',
 '600600.SH',
 '000027.SZ',
 '600673.SH',
 '000031.SZ',
 '000519.SZ',
 '000513.SZ',
 '600687.SH',
 '000528.SZ',
 '600694.SH',
 '000541.SZ',
 '000536.SZ',
 '000547.SZ',
 '600699.SH',
 '000543.SZ',
 '600801.SH',
 '600805.SH',
 '000552.SZ',
 '600808.SH',
 '600809.SH',
 '600811.SH',
 '000563.SZ',
 '000021.SZ',
 '600826.SH',
 '600831.SH',
 '600835.SH',
 '600839.SH',
 '600848.SH',
 '000039.SZ',
 '600859.SH',
 '600862.SH',
 '600863.SH',
 '000566.SZ',
 '000572.SZ',
 '600872.SH',
 '600869.SH',
 '000050.SZ',
 '000049.SZ',
 '600874.SH',
 '600879.SH',
 '600880.SH',
 '600881.SH',
 '600884.SH',
 '000592.SZ',
 '600894.SH',
 '000587.SZ',
 '000598.SZ',
 '000600.SZ',
 '000401.SZ',
 '600717.SH',
 '600729.SH',
 '600720.SH',
 '000417.SZ',
 '600736.SH',
 '000426.SZ',
 '600743.SH',
 '600751.SH',
 '600750.SH',
 '600748.SH',
 '000612.SZ',
 '000596.SZ',
 '600755.SH',
 '600757.SH',
 '600759.SH',
 '600754.SH',
 '000620.SZ',
 '600765.SH',
 '000616.SZ',
 '600773.SH',
 '600770.SH',
 '600776.SH',
 '000652.SZ',
 '000656.SZ',
 '000636.SZ',
 '000667.SZ',
 '000669.SZ',
 '000662.SZ',
 '000661.SZ',
 '000061.SZ',
 '000681.SZ',
 '600787.SH',
 '000680.SZ',
 '000685.SZ',
 '000690.SZ',
 '000062.SZ',
 '600790.SH',
 '001696.SZ',
 '000697.SZ',
 '000418.SZ',
 '000703.SZ',
 '000712.SZ',
 '000758.SZ',
 '000400.SZ',
 '600053.SH',
 '000766.SZ',
 '600064.SH',
 '600056.SH',
 '600059.SH',
 '000727.SZ',
 '600062.SH',
 '600058.SH',
 '000778.SZ',
 '000786.SZ',
 '600079.SH',
 '600086.SH',
 '000066.SZ',
 '600094.SH',
 '000732.SZ',
 '600073.SH',
 '000762.SZ',
 '000777.SZ',
 '000729.SZ',
 '600098.SH',
 '000816.SZ',
 '600108.SH',
 '000848.SZ',
 '600120.SH',
 '000829.SZ',
 '600138.SH',
 '000761.SZ',
 '600126.SH',
 '600158.SH',
 '000806.SZ',
 '000089.SZ',
 '600122.SH',
 '600125.SH',
 '000810.SZ',
 '000878.SZ',
 '600166.SH',
 '600151.SH',
 '600161.SH',
 '600160.SH',
 '000830.SZ',
 '600169.SH',
 '000581.SZ',
 '600171.SH',
 '000825.SZ',
 '600198.SH',
 '600183.SH',
 '000860.SZ',
 '600187.SH',
 '000078.SZ',
 '000877.SZ',
 '600195.SH',
 '600201.SH',
 '600266.SH',
 '600200.SH',
 '000897.SZ',
 '600176.SH',
 '600141.SH',
 '000926.SZ',
 '000930.SZ',
 '000090.SZ',
 '600006.SH',
 '000937.SZ',
 '000939.SZ',
 '600220.SH',
 '600216.SH',
 '600219.SH',
 '000960.SZ',
 '600500.SH',
 '000999.SZ',
 '000970.SZ',
 '600259.SH',
 '000969.SZ',
 '000975.SZ',
 '000988.SZ',
 '000979.SZ',
 '600240.SH',
 '600300.SH',
 '600260.SH',
 '600289.SH',
 '000158.SZ',
 '600267.SH',
 '600277.SH',
 '000099.SZ',
 '600291.SH',
 '000997.SZ',
 '600298.SH',
 '600282.SH',
 '600280.SH',
 '600366.SH',
 '600292.SH',
 '000488.SZ',
 '600422.SH',
 '000998.SZ',
 '600316.SH',
 '600307.SH',
 '000726.SZ',
 '600338.SH',
 '600270.SH',
 '600388.SH',
 '600466.SH',
 '600312.SH',
 '600335.SH',
 '600315.SH',
 '600528.SH',
 '600395.SH',
 '600329.SH',
 '600380.SH',
 '600566.SH',
 '600418.SH',
 '600596.SH',
 '600428.SH',
 '600582.SH',
 '600536.SH',
 '600026.SH',
 '600496.SH',
 '600580.SH',
 '600426.SH',
 '600503.SH',
 '600416.SH',
 '600565.SH',
 '600586.SH',
 '600597.SH',
 '600516.SH',
 '600551.SH',
 '600557.SH',
 '600587.SH',
 '600499.SH',
 '600511.SH',
 '600525.SH',
 '600563.SH',
 '600458.SH',
 '600537.SH',
 '600521.SH',
 '600460.SH',
 '600039.SH',
 '600481.SH',
 '600392.SH',
 '600584.SH',
 '600251.SH',
 '600409.SH',
 '600435.SH',
 '600348.SH',
 '600487.SH',
 '600478.SH',
 '600517.SH',
 '600184.SH',
 '600545.SH',
 '600325.SH',
 '600284.SH',
 '600594.SH',
 '600572.SH',
 '600410.SH',
 '600993.SH',
 '600967.SH',
 '600143.SH',
 '002001.SZ',
 '002002.SZ',
 '002004.SZ',
 '002005.SZ',
 '600022.SH',
 '002011.SZ',
 '002013.SZ',
 '002018.SZ',
 '002019.SZ',
 '002022.SZ',
 '002028.SZ',
 '002030.SZ',
 '600971.SH',
 '600978.SH',
 '002038.SZ',
 '600970.SH',
 '002041.SZ',
 '002048.SZ',
 '002050.SZ',
 '002051.SZ',
 '601001.SH',
 '002056.SZ',
 '002063.SZ',
 '002064.SZ',
 '601699.SH',
 '600017.SH',
 '002073.SZ',
 '002078.SZ',
 '002092.SZ',
 '002093.SZ',
 '002106.SZ',
 '601002.SH',
 '002118.SZ',
 '002120.SZ',
 '002122.SZ',
 '002123.SZ',
 '002127.SZ',
 '002128.SZ',
 '601168.SH',
 '002147.SZ',
 '002155.SZ',
 '002176.SZ',
 '002179.SZ',
 '002190.SZ',
 '002191.SZ',
 '002194.SZ',
 '002217.SZ',
 '002221.SZ',
 '002223.SZ',
 '002233.SZ',
 '002242.SZ',
 '002244.SZ',
 '002249.SZ',
 '002250.SZ',
 '002251.SZ',
 '002254.SZ',
 '002261.SZ',
 '002266.SZ',
 '002268.SZ',
 '002269.SZ',
 '002271.SZ',
 '002273.SZ',
 '002276.SZ',
 '002277.SZ',
 '002281.SZ',
 '002285.SZ',
 '300001.SZ',
 '300002.SZ',
 '300010.SZ',
 '300026.SZ',
 '002308.SZ',
 '002309.SZ',
 '002311.SZ',
 '002315.SZ',
 '002317.SZ',
 '002325.SZ',
 '300032.SZ',
 '300039.SZ',
 '002332.SZ',
 '300043.SZ',
 '002340.SZ',
 '002342.SZ',
 '002344.SZ',
 '002345.SZ',
 '002353.SZ',
 '002354.SZ',
 '002358.SZ',
 '601678.SH',
 '300055.SZ',
 '300058.SZ',
 '002366.SZ',
 '002368.SZ',
 '002371.SZ',
 '002373.SZ',
 '002375.SZ',
 '002384.SZ',
 '002390.SZ',
 '002392.SZ',
 '002400.SZ',
 '002405.SZ',
 '002407.SZ',
 '002408.SZ',
 '002410.SZ',
 '300088.SZ',
 '002416.SZ',
 '002422.SZ',
 '002428.SZ',
 '002431.SZ',
 '002396.SZ',
 '002437.SZ',
 '002439.SZ',
 '601000.SH',
 '002440.SZ',
 '002444.SZ',
 '002414.SZ',
 '601717.SH',
 '002460.SZ',
 '002463.SZ',
 '300113.SZ',
 '300115.SZ',
 '300116.SZ',
 '002468.SZ',
 '002477.SZ',
 '002479.SZ',
 '300122.SZ',
 '002482.SZ',
 '002489.SZ',
 '002491.SZ',
 '300134.SZ',
 '300136.SZ',
 '002503.SZ',
 '002505.SZ',
 '601777.SH',
 '002512.SZ',
 '601880.SH',
 '002517.SZ',
 '300146.SZ',
 '300147.SZ',
 '300156.SZ',
 '300159.SZ',
 '300166.SZ',
 '002544.SZ',
 '002551.SZ',
 '300199.SZ',
 '002572.SZ',
 '300202.SZ',
 '002573.SZ',
 '601233.SH',
 '002583.SZ',
 '601311.SH',
 '002588.SZ',
 '002589.SZ',
 '002601.SZ',
 '300244.SZ',
 '002603.SZ',
 '300253.SZ',
 '601886.SH',
 '300257.SZ',
 '300266.SZ',
 '300273.SZ',
 '300274.SZ',
 '002635.SZ',
 '601928.SH',
 '002640.SZ',
 '002642.SZ',
 '002646.SZ',
 '300287.SZ',
 '300291.SZ',
 '601231.SH',
 '601929.SH',
 '002657.SZ',
 '300296.SZ',
 '300297.SZ',
 '002663.SZ',
 '002665.SZ',
 '601012.SH',
 '002670.SZ',
 '002672.SZ',
 '603001.SH',
 '603000.SH',
 '002681.SZ',
 '300324.SZ',
 '002690.SZ',
 '603077.SH',
 '603766.SH',
 '002699.SZ',
 '002701.SZ',
 '002707.SZ',
 '002709.SZ',
 '300376.SZ',
 '300383.SZ',
 '603005.SH',
 '603328.SH',
 '002727.SZ',
 '603369.SH',
 '603806.SH',
 '603188.SH',
 '601016.SH',
 '600917.SH',
 '603169.SH',
 '603019.SH',
 '603698.SH',
 '603799.SH',
 '601689.SH',
 '603025.SH',
 '603883.SH',
 '603567.SH',
 '603355.SH',
 '603198.SH',
 '603568.SH',
 '603589.SH',
 '603866.SH',
 '603377.SH',
 '601020.SH',
 '603868.SH',
 '603528.SH',
 '601811.SH',
 '603569.SH',
 '600936.SH',
 '603515.SH',
 '603658.SH',
 '002807.SZ',
 '002815.SZ',
 '603816.SH',
 '603888.SH',
 '002818.SZ',
 '603556.SH',
 '600996.SH',
 '603444.SH',
 '603228.SH',
 '603877.SH']

In [66]:
dataslice


Out[66]:
open close high low amount volume time impact
date
2015-07-09 6.44 6.44 6.44 6.44 2537360.0 3940.0 09:30:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 738024.0 1146.0 09:31:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 530656.0 824.0 09:32:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 475272.0 738.0 09:33:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 81788.0 127.0 09:34:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 153272.0 238.0 09:35:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 228620.0 355.0 09:36:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 83076.0 129.0 09:37:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 66976.0 104.0 09:38:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 137172.0 213.0 09:39:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 30912.0 48.0 09:40:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 79856.0 124.0 09:41:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 53452.0 83.0 09:42:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 6440.0 10.0 09:43:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 31556.0 49.0 09:44:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 34132.0 53.0 09:45:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 182252.0 283.0 09:46:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 693588.0 1077.0 09:47:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 88872.0 138.0 09:48:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 799848.0 1242.0 09:49:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 189980.0 295.0 09:50:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 2147096.0 3334.0 09:51:00 0.000000
2015-07-09 6.44 6.44 6.44 6.44 27956040.0 43410.0 09:52:00 0.000000
2015-07-09 6.44 6.98 6.98 6.44 98121799.0 152275.0 09:53:00 0.016179
2015-07-09 6.98 7.06 7.09 6.98 2993924.0 4279.0 09:54:00 0.003156
2015-07-09 6.82 7.00 7.05 6.82 1862598.0 2663.0 09:55:00 0.007705
2015-07-09 7.01 6.88 7.01 6.87 2364720.0 3394.0 09:56:00 0.005252
2015-07-09 6.88 6.88 6.88 6.82 2276879.0 3326.0 09:57:00 0.000000
2015-07-09 6.90 7.07 7.07 6.90 1922881.0 2745.0 09:58:00 0.007165
2015-07-09 7.07 7.16 7.16 7.06 3897225.0 5491.0 09:59:00 0.003404
... ... ... ... ... ... ... ... ...
2015-07-09 7.88 7.88 7.88 7.88 11820.0 15.0 14:08:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 3940.0 5.0 14:10:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 11820.0 15.0 14:14:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 15760.0 20.0 14:16:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 3940.0 5.0 14:17:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 11820.0 15.0 14:18:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 3940.0 5.0 14:21:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 61464.0 78.0 14:22:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 4728.0 6.0 14:23:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 14972.0 19.0 14:25:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 7880.0 10.0 14:26:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 48856.0 62.0 14:28:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 126080.0 160.0 14:29:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 1348.0 2.0 14:30:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 16548.0 21.0 14:32:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 4728.0 6.0 14:35:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 3152.0 4.0 14:41:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 5516.0 7.0 14:42:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 3940.0 5.0 14:43:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 14972.0 19.0 14:44:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 3018040.0 3830.0 14:47:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 28368.0 36.0 14:48:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 152084.0 193.0 14:49:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 20488.0 26.0 14:50:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 113472.0 144.0 14:51:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 55948.0 71.0 14:53:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 49644.0 63.0 14:54:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 103228.0 131.0 14:55:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 13396.0 17.0 14:56:00 0.000000
2015-07-09 7.88 7.88 7.88 7.88 4854868.0 6161.0 14:59:00 0.000000

208 rows × 8 columns


In [42]:
dataslice = dataNoneZero[dataNoneZero.index == datelist[6]]

In [56]:
dataslice['impact'] = 100*np.abs(dataslice['close'] - dataslice['open']) / np.log10(dataslice['volume'])/dataslice['open']


c:\python27\lib\site-packages\ipykernel\__main__.py:1: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  if __name__ == '__main__':
Out[56]:
open close high low amount volume time impact
date
2012-01-12 3.45 3.45 3.45 3.44 351004.0 1017.0 09:30:00 0.000000
2012-01-12 3.44 3.43 3.44 3.43 36386.0 106.0 09:31:00 0.143533
2012-01-12 3.43 3.43 3.43 3.43 33957.0 99.0 09:32:00 0.000000
2012-01-12 3.42 3.42 3.42 3.42 684.0 2.0 09:33:00 0.000000
2012-01-12 3.43 3.43 3.43 3.43 12348.0 36.0 09:34:00 0.000000
2012-01-12 3.44 3.44 3.44 3.43 57782.0 168.0 09:35:00 0.000000
2012-01-12 3.44 3.44 3.44 3.43 32678.0 95.0 09:36:00 0.000000
2012-01-12 3.43 3.44 3.44 3.43 26453.0 77.0 09:37:00 0.154544
2012-01-12 3.44 3.44 3.44 3.44 10664.0 31.0 09:38:00 0.000000
2012-01-12 3.43 3.43 3.43 3.43 1715.0 5.0 09:39:00 0.000000
2012-01-12 3.44 3.44 3.44 3.44 4816.0 14.0 09:40:00 0.000000
2012-01-12 3.43 3.44 3.44 3.43 9280.0 27.0 09:41:00 0.203684
2012-01-12 3.43 3.43 3.44 3.43 60799.0 177.0 09:42:00 0.000000
2012-01-12 3.44 3.44 3.44 3.44 88752.0 258.0 09:43:00 0.000000
2012-01-12 3.44 3.44 3.44 3.44 5851.0 17.0 09:44:00 0.000000
2012-01-12 3.45 3.44 3.45 3.44 59188.0 172.0 09:45:00 0.129658
2012-01-12 3.44 3.44 3.44 3.44 76021.0 221.0 09:46:00 0.000000
2012-01-12 3.44 3.44 3.44 3.44 29928.0 87.0 09:47:00 0.000000
2012-01-12 3.44 3.44 3.44 3.44 40248.0 117.0 09:50:00 0.000000
2012-01-12 3.44 3.44 3.44 3.44 48163.0 140.0 09:51:00 0.000000
2012-01-12 3.44 3.45 3.45 3.44 49640.0 144.0 09:52:00 0.134684
2012-01-12 3.44 3.45 3.45 3.44 11698.0 34.0 09:53:00 0.189815
2012-01-12 3.45 3.44 3.46 3.44 169394.0 491.0 09:54:00 0.107710
2012-01-12 3.45 3.45 3.45 3.45 9660.0 28.0 09:55:00 0.000000
2012-01-12 3.45 3.46 3.46 3.45 107205.0 309.0 09:56:00 0.116410
2012-01-12 3.44 3.46 3.46 3.44 64195.0 186.0 09:57:00 0.256176
2012-01-12 3.45 3.45 3.45 3.45 12075.0 35.0 09:58:00 0.000000
2012-01-12 3.45 3.45 3.45 3.45 11730.0 34.0 09:59:00 0.000000
2012-01-12 3.46 3.46 3.46 3.46 77095.0 223.0 10:00:00 0.000000
2012-01-12 3.47 3.46 3.47 3.46 106225.0 307.0 10:01:00 0.115870
... ... ... ... ... ... ... ... ...
2012-01-12 3.64 3.63 3.64 3.63 24760.0 68.0 14:28:00 0.149918
2012-01-12 3.64 3.63 3.64 3.63 26150.0 72.0 14:29:00 0.147914
2012-01-12 3.64 3.64 3.64 3.64 3640.0 10.0 14:30:00 0.000000
2012-01-12 3.64 3.64 3.64 3.64 5100.0 14.0 14:31:00 0.000000
2012-01-12 3.65 3.64 3.65 3.64 13100.0 36.0 14:32:00 0.176041
2012-01-12 3.65 3.65 3.65 3.64 79820.0 219.0 14:33:00 0.000000
2012-01-12 3.65 3.65 3.65 3.65 3650.0 10.0 14:34:00 0.000000
2012-01-12 3.65 3.67 3.67 3.65 254740.0 696.0 14:35:00 0.192761
2012-01-12 3.67 3.67 3.68 3.67 23860.0 65.0 14:36:00 0.000000
2012-01-12 3.67 3.65 3.67 3.65 127670.0 348.0 14:37:00 0.214418
2012-01-12 3.65 3.65 3.65 3.65 23360.0 64.0 14:38:00 0.000000
2012-01-12 3.65 3.64 3.65 3.64 1830.0 5.0 14:39:00 0.391966
2012-01-12 3.65 3.65 3.65 3.64 32800.0 90.0 14:40:00 0.000000
2012-01-12 3.64 3.64 3.65 3.64 51330.0 141.0 14:41:00 0.000000
2012-01-12 3.64 3.64 3.64 3.64 52050.0 143.0 14:42:00 0.000000
2012-01-12 3.64 3.63 3.64 3.63 125610.0 346.0 14:43:00 0.108199
2012-01-12 3.62 3.62 3.63 3.62 77460.0 214.0 14:44:00 0.000000
2012-01-12 3.62 3.62 3.63 3.62 103960.0 287.0 14:45:00 0.000000
2012-01-12 3.63 3.62 3.63 3.62 68960.0 190.0 14:46:00 0.120892
2012-01-12 3.62 3.62 3.63 3.62 124290.0 343.0 14:47:00 0.000000
2012-01-12 3.62 3.62 3.62 3.62 5790.0 16.0 14:48:00 0.000000
2012-01-12 3.61 3.62 3.62 3.61 75130.0 208.0 14:49:00 0.119500
2012-01-12 3.61 3.62 3.62 3.61 49880.0 138.0 14:50:00 0.129450
2012-01-12 3.61 3.61 3.62 3.61 51300.0 142.0 14:51:00 0.000000
2012-01-12 3.61 3.61 3.61 3.61 101090.0 280.0 14:52:00 0.000000
2012-01-12 3.61 3.61 3.61 3.60 83720.0 232.0 14:53:00 0.000000
2012-01-12 3.61 3.61 3.61 3.60 176450.0 489.0 14:54:00 0.000000
2012-01-12 3.61 3.61 3.61 3.60 73600.0 204.0 14:55:00 0.000000
2012-01-12 3.60 3.60 3.61 3.60 248090.0 689.0 14:56:00 0.000000
2012-01-12 3.60 3.60 3.60 3.60 491680.0 1366.0 14:59:00 0.000000

235 rows × 8 columns


In [312]:
fileList = []
for filename in os.listdir(savepath):
    if filename.endswith('.h5') and 'VolQuantileRatio' in filename:
        fileList.append(filename.split('.')[0])
        #print(os.path.join(savepath, file))

In [313]:
fileList


Out[313]:
['VolQuantileRatio1000',
 'VolQuantileRatio1500',
 'VolQuantileRatio2000',
 'VolQuantileRatio2500',
 'VolQuantileRatio3000',
 'VolQuantileRatio3200',
 'VolQuantileRatio3400',
 'VolQuantileRatio4000',
 'VolQuantileRatio500']

In [123]:
from multiprocessing import Pool, cpu_count

In [126]:
def calNetIn(stk):
    data = ff.readh5data(savepath,stk+'.h5')[['amount','open','close','time']]
    data['time'] = [datetime.strptime(str(int(time)),'%H%M%S').time() for time in data['time']]

    datelist = sorted(set(data.index))
    Qdf = pd.DataFrame(index = datelist,columns = [stk],dtype=float)
    for date in datelist:
        try:
            dataslice = data[data.index ==date]
            Qdf.loc[date] = (dataslice['amount'] * np.sign(dataslice['close'] - dataslice['open'])).sum()
        except:
            Qdf.loc[date] = np.NaN
    return Qdf

In [127]:
%lprun -f calNetIn(stkname)

In [ ]:


In [20]:
def calSmartMoney(stk):
    data = ff.readh5data(savepath,stk+'.h5')
    data['time'] = [datetime.strptime(str(int(time)),'%H%M%S').time() for time in data['time']]

    datelist = sorted(set(data.index))
    Qdf = pd.DataFrame(index = datelist,columns = [stk],dtype=float)
    for date in datelist:
        dataslice = data[data.index ==date]
        dataNoneZero = dataslice.loc[dataslice.volume>0]
        if len(dataNoneZero) >= 60 and dataNoneZero.loc[dataNoneZero['high']==dataNoneZero['low']].shape[0] < \
        0.5 * dataNoneZero.shape[0]: # nonzero volumes should be at least 120
            dataNoneZero['impact'] = np.abs(dataNoneZero['close'] - dataNoneZero['open']) / dataNoneZero['volume']/dataNoneZero['open']
            datanew = dataNoneZero.sort_values(['impact'],ascending =False)
            q1 = datanew.loc[datanew.volume.cumsum() <= datanew.volume.sum() *0.2]
            Qdf.loc[date] = (q1.amount.sum() / q1.volume.sum()) / (datanew.amount.sum() / datanew.volume.sum())
        else:
            Qdf.loc[date] = np.NaN
    return Qdf

In [21]:
finaldf = pd.DataFrame()
for stk in fileList:
    print stk
    temp = ff.readh5data(path,stk+'.h5')
    finaldf  = pd.concat([finaldf,temp],axis=1)


000001
c:\python27\lib\site-packages\ipykernel\__main__.py:11: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
000002
000003
000004
000005
000006
000007
000008
000009
000010

In [167]:
resultlist = []
for filename in os.listdir(savepath):
    if filename.endswith('.h5') and 'OwnfactorNetIn' in filename:
        resultlist.append(filename.split('.')[0])
        #print(os.path.join(savepath, file))
resultlist


Out[167]:
['OwnfactorNetIn1000',
 'OwnfactorNetIn2000',
 'OwnfactorNetIn3000',
 'OwnfactorNetIn4000']

In [315]:
resultlist = []
for filename in os.listdir(savepath):
    if filename.endswith('.h5') and 'VolQuantileRatio' in filename:
        resultlist.append(filename.split('.')[0])
        #print(os.path.join(savepath, file))
resultlist


Out[315]:
['VolQuantileRatio1000',
 'VolQuantileRatio1500',
 'VolQuantileRatio2000',
 'VolQuantileRatio2500',
 'VolQuantileRatio3000',
 'VolQuantileRatio3200',
 'VolQuantileRatio3400',
 'VolQuantileRatio4000',
 'VolQuantileRatio500']

In [316]:
resultdf = pd.DataFrame()
for stk in resultlist:
    temp = ff.readh5data(savepath,stk+'.'+'h5')
    resultdf = pd.concat([resultdf,temp],axis=1)

In [355]:
ff.saveh5data(resultdf,path,'VolQuantileRatio')

In [356]:
resultdf.tail()


Out[356]:
000993 000995 000996 000997 000998 000999 001696 001896 001979 002001 ... 000979 000980 000981 000982 000983 000985 000987 000988 000989 000990
date
2017-09-27 -2.161 NaN 0.363 1.097 1.526 -3.564 NaN 0.277 -0.434 0.550 ... NaN 2.160 -3.530 -1.715 2.327 -1.961 0.647 2.712 -5.974 -0.525
2017-09-28 -7.216 NaN 0.750 0.912 0.656 -3.237 NaN 1.129 -3.834 -0.192 ... NaN -0.012 -8.805 4.083 -6.314 -4.663 -1.856 -1.218 -0.280 1.026
2017-09-29 -0.929 NaN -2.188 0.652 1.813 -0.447 NaN 1.466 2.113 0.820 ... NaN -1.572 4.535 2.688 0.056 0.954 0.867 1.608 5.757 -0.427
2017-10-09 -1.775 NaN 0.030 0.879 -1.914 -0.666 NaN 1.211 1.045 -0.955 ... NaN 1.861 4.306 -4.740 -1.682 2.279 0.092 1.002 -4.778 -2.790
2017-10-10 1.962 NaN -0.987 2.356 -2.211 0.917 NaN -2.242 -1.086 -0.283 ... NaN -3.016 -6.088 -3.801 0.459 -0.190 -0.242 4.094 -1.517 -2.558

5 rows × 3494 columns


In [178]:
resultdf = resultdf.rolling(min_periods=20,window=20,center=False).mean()
resultdf


Out[178]:
000001 000002 000003 000004 000005 000006 000007 000008 000009 000010 ... 603987 603988 603989 603990 603991 603993 603996 603997 603998 603999
date
2012-01-04 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-05 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-06 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-09 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-11 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-12 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-13 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-16 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-17 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-18 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-19 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-20 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-30 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-01-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-01 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-02 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-03 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-06 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-07 1237842.35 -16158931.85 NaN 902356.65 0.00 -1278091.60 -333856.10 297197.10 2349419.40 0.00 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-08 4538017.75 -11180476.50 NaN 997152.50 0.00 -1410626.05 67627.85 293094.45 13078482.65 0.00 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-09 3449949.60 -12246189.00 NaN 941782.70 0.00 -996358.50 250669.85 298711.55 15008388.55 0.00 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-10 4014113.95 -6392688.95 NaN 981589.90 0.00 -936296.10 214673.25 286328.60 14117943.95 0.00 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-13 2710425.65 -10738442.15 NaN 1035589.80 0.00 -890345.95 273496.55 287021.45 8330175.55 0.00 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-14 915352.65 -11256282.95 NaN 996856.00 0.00 -930020.35 352064.40 258870.55 6845981.20 0.00 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-15 1379001.35 -5851542.25 NaN 1211422.45 0.00 -827696.45 955466.25 273890.85 6040727.90 0.00 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-16 -1414980.15 -6891747.30 NaN 1330979.80 0.00 -686713.15 695915.10 298464.35 9677265.50 0.00 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-17 1057713.30 -6463947.80 NaN 1360137.20 0.00 376691.25 675157.05 317816.35 7896230.20 0.00 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-20 -3094391.20 -3310745.25 NaN 1354655.25 0.00 517374.20 622912.70 338392.65 12871768.30 0.00 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-21 -1930030.85 155021.85 NaN 32410.40 0.00 364357.75 313621.10 335873.30 1709010.40 0.00 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2017-08-23 290469.25 -32558641.65 NaN 1153394.40 -660956.00 -837710.20 -1568923.70 3029373.75 -17217756.65 1040144.95 ... 1443592.40 1788534.15 -4004491.25 512681.50 3870846.10 -57115452.25 4889630.00 -2588000.60 -259706.55 -527029.80
2017-08-24 5465929.65 -20499797.25 NaN 426987.20 -878362.10 -824055.50 110596.80 3847613.70 -16052928.75 1115007.05 ... 734760.40 1530843.05 -4163568.20 434219.45 3481333.50 -44739704.85 4912876.80 -3227373.05 -715410.80 -991126.70
2017-08-25 8441358.85 -33355639.55 NaN 622572.30 -930930.40 -908971.85 1521011.80 4225360.10 -36473761.75 1277830.20 ... 1214794.15 1531942.95 -4006658.35 684443.00 3663271.75 -56386428.55 4800982.15 -2168104.25 -346093.10 -569144.65
2017-08-28 25155985.65 -12904175.55 NaN 642920.45 -967192.90 -1106054.55 1133242.30 4607649.85 -32396470.70 1484722.40 ... 1458484.65 1413731.15 -3982091.10 886165.10 4362545.35 -82743467.95 4358042.30 -1564161.85 12369.05 -230005.85
2017-08-29 20529666.45 -12075591.20 NaN 463958.10 -1206935.70 -2327665.30 -1442969.25 3415588.35 -20264714.30 1472072.10 ... 1578060.50 1421974.90 -4510765.60 628607.35 4431848.10 -68251350.65 4047039.50 -354047.45 282804.00 -526385.10
2017-08-30 -551505.95 -18839466.15 NaN 469280.05 -1451113.40 2371398.35 -103757.10 3783747.10 -22380768.25 1556231.90 ... 1553919.65 1385953.30 -4296710.05 553284.20 3988953.50 -76873392.05 3987745.70 -528388.35 -165487.05 -275407.00
2017-08-31 -8670047.75 -3299928.45 NaN 436224.60 -1387036.65 3767496.10 -97567.95 4758951.40 -18604129.20 1602307.60 ... 1706269.40 1740462.85 -3010094.75 325512.10 4590958.30 -46143620.65 4859562.80 -379394.60 -88806.30 -477205.30
2017-09-01 -33697549.30 -11120543.75 NaN 394347.20 -1160059.35 4222712.45 -201694.60 4254299.00 -10640798.55 1503702.70 ... 1765601.05 1389602.20 -3715742.65 102395.70 4499640.25 -13869346.25 3876276.50 360955.70 -93714.15 -478832.75
2017-09-04 -8399231.00 -13738037.85 NaN -63707.40 -1022482.55 8308672.85 329733.70 4817257.30 -9952674.10 1495397.00 ... 1658276.40 1327685.65 -2177613.40 176299.95 3201703.80 -18253672.65 3168155.15 427702.25 -230747.95 -394322.85
2017-09-05 -11026349.00 -3986140.35 NaN 66703.95 -1040248.50 7842609.45 -678911.45 5437423.35 -6849257.45 1604003.75 ... 1543690.00 1199159.65 -650467.00 295457.45 1101623.40 -19963185.05 2494798.40 114941.20 886560.25 -564228.45
2017-09-06 3587168.30 -8882496.95 NaN 458853.35 -936742.60 10507796.65 -606664.40 4978765.80 210928.70 1460453.20 ... 1224732.95 1159247.10 -968386.40 150585.20 1186250.90 10272596.95 1632150.00 -203274.25 1320086.15 -406752.05
2017-09-07 -1772163.75 52942095.10 NaN 850993.20 -531105.05 17844204.65 -646558.40 5275900.05 1553457.80 1694363.00 ... 1915248.55 1233168.35 -1056952.55 254447.65 676924.20 27137215.75 192096.35 752142.85 1574986.65 789293.25
2017-09-08 23254668.25 61970258.90 NaN 1299877.90 3874093.00 26181379.00 -825433.70 4810616.20 12677791.05 2725955.05 ... 3101156.90 1411486.30 -480677.70 174488.05 2314017.75 49310603.80 -327839.85 822362.30 1573458.05 409432.85
2017-09-11 29502433.35 67975967.80 NaN 1669821.05 1429624.00 25933121.80 -913419.80 4488900.45 13721304.40 2501573.30 ... 2101680.05 1428832.05 -385334.25 214392.00 1692212.10 85138694.20 -578958.20 775773.95 1384343.20 461829.25
2017-09-12 20892910.25 62587837.30 NaN 502610.80 -1344445.05 25597239.90 -622268.15 4435412.20 9506214.90 2181580.00 ... 1183098.90 1205995.50 -343548.95 -228962.15 872947.35 53405264.60 -637979.15 -261313.05 1839802.75 274147.20
2017-09-13 18187230.10 55754546.40 NaN -16791.05 -1749938.95 25217054.50 -139233.10 3252595.55 13058359.80 1869917.80 ... 1239785.00 974735.15 -525381.25 -357797.30 -1312161.70 63700074.10 -727389.60 -543543.30 2787921.25 -398349.20
2017-09-14 5038217.95 79909654.90 NaN -146030.65 -1864833.25 25148217.65 -176288.70 4482711.55 918119.75 1159198.00 ... 320943.25 560166.80 -924729.25 -357330.10 404803.20 58895625.70 -829509.95 -468255.90 2552801.60 -684415.90
2017-09-15 -1885766.05 88821211.20 NaN -204089.00 -1986637.55 24505848.15 -187880.05 8081573.30 523508.80 1593829.00 ... -677745.10 541450.10 -1364418.30 -249538.15 -983365.60 34290878.70 -706370.05 -252349.25 2799373.15 -586802.90
2017-09-18 -4485748.85 66599417.00 NaN -243647.60 -1717541.55 24449202.90 34842.40 7147827.75 5119933.15 1604938.40 ... -575815.00 412726.85 -488358.65 -374451.85 -928127.50 35592959.45 -830362.65 -889628.20 2790108.15 -779128.15
2017-09-19 -14746976.30 65839556.20 NaN -286860.55 -1020506.10 24710642.45 210931.55 11193513.65 -978139.45 1676989.50 ... -366655.50 -299495.45 -465266.70 -136735.90 -673084.00 5832198.25 -818214.90 -903451.65 2360504.65 -161219.15
2017-09-20 -27461730.30 58421766.40 NaN -77006.85 -1044687.55 24757041.60 -24619.35 9958365.60 -1441827.65 1580936.45 ... -441875.25 -267990.25 429366.25 -101064.70 -377356.15 29412694.75 -1463856.05 -1006919.80 3058748.25 1164063.65
2017-09-21 -20866657.45 57907412.50 NaN 36560.35 -1258877.95 24526340.95 -720957.20 9347317.70 -3161219.05 968842.10 ... -383310.00 -122.45 -85456.80 263717.20 -33339.85 18221600.35 -2670105.80 -1312134.30 2961194.35 573765.45
2017-09-22 -24218418.45 56988030.50 NaN 185614.85 -1434152.30 24718208.00 -771492.65 10146254.00 -3883732.45 653370.75 ... -632573.75 47809.50 -529358.30 1361656.20 -31032.35 -5797390.75 -2734527.90 -1356024.25 2966964.45 77227.65
2017-09-25 -34435125.40 30106992.60 NaN 151055.60 -1786994.70 24890964.65 -650762.60 9586872.85 -7533181.60 1127851.70 ... -934195.00 187116.40 -584700.80 537540.20 -527298.15 -6471991.55 -2584036.25 -1780262.75 2599131.40 -682554.25
2017-09-26 -61845533.80 33721105.80 NaN 224019.25 -1714101.20 25020917.55 148297.20 9999449.75 -10173545.25 911282.25 ... -1197001.05 254399.75 -363790.95 821773.35 -563978.75 -12773905.10 -2441695.55 -2996078.30 2356819.75 -587352.85
2017-09-27 -56683994.20 38080868.80 NaN 401843.75 -1438907.70 22114459.60 -86232.25 9205020.30 -8930742.10 1225724.25 ... -1057498.15 160580.90 -396968.65 1167840.00 598977.80 -1243208.40 -2293714.85 -2762752.60 2238513.75 -505704.85
2017-09-28 -48309723.50 31795145.60 NaN 93895.20 -1512716.85 22351110.90 302827.75 8176996.80 -9413712.20 1089137.50 ... -1469703.70 -252404.05 -760993.35 1191794.15 -1093514.30 -38986550.40 -1886265.30 -3429187.80 2562048.90 -984722.10
2017-09-29 -27611067.25 33592037.80 NaN 452140.25 -1448729.60 22148182.60 422812.75 9859226.20 -9907257.05 1665763.90 ... -1171486.80 -226784.40 -630808.70 1473009.10 -1640622.30 -24324613.95 -1532323.05 -3185884.45 2677765.35 -1001443.30
2017-10-09 -53207439.55 24811059.70 NaN 990136.80 -1368880.05 18029343.95 3227.70 9827676.00 -10435024.50 1568132.15 ... -1142160.55 -218342.35 -1596619.05 1368535.70 -1916427.35 -31118201.95 -1873487.30 -2430748.00 2572500.25 -1144916.30
2017-10-10 -44962471.65 15867255.30 NaN 1422130.70 -1317628.40 17744173.35 327469.15 8829103.40 -12745983.30 2033745.65 ... -758186.75 -86317.10 -3000354.70 2009291.90 -1809233.60 -34947640.55 -1597295.10 -1237699.85 1556988.40 -531219.60

1399 rows × 3494 columns


In [179]:
lcap = ff.readh5data(path,filenameFCAP)
codelcap = [x.split('.')[0] for x in lcap.columns]
lcap.columns = codelcap
codedf = resultdf.columns 
finalstklist = list(set(codedf) & set(codelcap))
finalindex = list(set(resultdf.index.tolist()) & set(lcap.index.tolist()))

In [180]:
newdf = (resultdf.loc[finalindex ][finalstklist] / lcap.loc[finalindex][finalstklist]).round(4)

In [181]:
newdf = newdf.sort_index()

In [ ]:


In [17]:
Qdf = pd.DataFrame(index = datelist,columns = [stk],dtype=float)
condition1=0
condition2 =0
for date in datelist:
    print date
    dataslice = data[data.index ==date]
    dataNoneZero = dataslice.loc[dataslice.volume>0]
    if len(dataNoneZero) >= 60 and dataNoneZero.loc[dataNoneZero['high']==dataNoneZero['low']].shape[0] < 0.5 * dataNoneZero.shape[0]: # nonzero volumes should be at least 120
        #condition1+=1

        #condition2+=1
        dataNoneZero['impact'] = np.abs(dataNoneZero['close'] - dataNoneZero['open']) / dataNoneZero['volume']/dataNoneZero['open']
        datanew = dataNoneZero.sort_values(['impact'],ascending =False)
        q1 = datanew.loc[datanew.volume.cumsum() <= datanew.volume.sum() *0.2]
        Qdf.loc[date] = (q1.amount.sum() / q1.volume.sum()) / (datanew.amount.sum() / datanew.volume.sum())
        
    else:
        Qdf.loc[date] = np.NaN


2012-01-04 00:00:00
2012-01-05 00:00:00
2012-01-06 00:00:00
2012-01-09 00:00:00
2012-01-10 00:00:00
2012-01-11 00:00:00
2012-01-12 00:00:00
2012-01-13 00:00:00
2012-01-16 00:00:00
2012-01-17 00:00:00
2012-01-18 00:00:00
2012-01-19 00:00:00
2012-01-20 00:00:00
2012-01-30 00:00:00
2012-01-31 00:00:00
2012-02-01 00:00:00
2012-02-02 00:00:00
2012-02-03 00:00:00
2012-02-06 00:00:00
2012-02-07 00:00:00
2012-02-08 00:00:00
2012-02-09 00:00:00
2012-02-10 00:00:00
2012-02-13 00:00:00
2012-02-14 00:00:00
2012-02-15 00:00:00
2012-02-16 00:00:00
2012-02-17 00:00:00
2012-02-20 00:00:00
2012-02-21 00:00:00
2012-02-22 00:00:00
2012-02-23 00:00:00
2012-02-24 00:00:00
2012-02-27 00:00:00
2012-02-28 00:00:00
2012-02-29 00:00:00
2012-03-01 00:00:00
2012-03-02 00:00:00
2012-03-05 00:00:00
2012-03-06 00:00:00
2012-03-07 00:00:00
2012-03-08 00:00:00
2012-03-09 00:00:00
2012-03-12 00:00:00
2012-03-13 00:00:00
2012-03-14 00:00:00
2012-03-15 00:00:00
2012-03-16 00:00:00
2012-03-19 00:00:00
2012-03-20 00:00:00
2012-03-21 00:00:00
2012-03-22 00:00:00
2012-03-23 00:00:00
2012-03-26 00:00:00
2012-03-27 00:00:00
2012-03-28 00:00:00
2012-03-29 00:00:00
2012-03-30 00:00:00
2012-04-05 00:00:00
2012-04-06 00:00:00
2012-04-09 00:00:00
2012-04-10 00:00:00
2012-04-11 00:00:00
2012-04-12 00:00:00
2012-04-13 00:00:00
2012-04-16 00:00:00
2012-04-17 00:00:00
2012-04-18 00:00:00
2012-04-19 00:00:00
2012-04-20 00:00:00
2012-04-23 00:00:00
2012-04-24 00:00:00
c:\python27\lib\site-packages\ipykernel\__main__.py:12: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
2012-04-25 00:00:00
2012-04-26 00:00:00
2012-04-27 00:00:00
2012-05-02 00:00:00
2012-05-03 00:00:00
2012-05-04 00:00:00
2012-05-07 00:00:00
2012-05-08 00:00:00
2012-05-09 00:00:00
2012-05-10 00:00:00
2012-05-11 00:00:00
2012-05-14 00:00:00
2012-05-15 00:00:00
2012-05-16 00:00:00
2012-05-17 00:00:00
2012-05-18 00:00:00
2012-05-21 00:00:00
2012-05-22 00:00:00
2012-05-23 00:00:00
2012-05-24 00:00:00
2012-05-25 00:00:00
2012-05-28 00:00:00
2012-05-29 00:00:00
2012-05-30 00:00:00
2012-05-31 00:00:00
2012-06-01 00:00:00
2012-06-04 00:00:00
2012-06-05 00:00:00
2012-06-06 00:00:00
2012-06-07 00:00:00
2012-06-08 00:00:00
2012-06-11 00:00:00
2012-06-12 00:00:00
2012-06-13 00:00:00
2012-06-14 00:00:00
2012-06-15 00:00:00
2012-06-18 00:00:00
2012-06-19 00:00:00
2012-06-20 00:00:00
2012-06-21 00:00:00
2012-06-25 00:00:00
2012-06-26 00:00:00
2012-06-27 00:00:00
2012-06-28 00:00:00
2012-06-29 00:00:00
2012-07-02 00:00:00
2012-07-03 00:00:00
2012-07-04 00:00:00
2012-07-05 00:00:00
2012-07-06 00:00:00
2012-07-09 00:00:00
2012-07-10 00:00:00
2012-07-11 00:00:00
2012-07-12 00:00:00
2012-07-13 00:00:00
2012-07-16 00:00:00
2012-07-17 00:00:00
2012-07-18 00:00:00
2012-07-19 00:00:00
2012-07-20 00:00:00
2012-07-23 00:00:00
2012-07-24 00:00:00
2012-07-25 00:00:00
2012-07-26 00:00:00
2012-07-27 00:00:00
2012-07-30 00:00:00
2012-07-31 00:00:00
2012-08-01 00:00:00
2012-08-02 00:00:00
2012-08-03 00:00:00
2012-08-06 00:00:00
2012-08-07 00:00:00
2012-08-08 00:00:00
2012-08-09 00:00:00
2012-08-10 00:00:00
2012-08-13 00:00:00
2012-08-14 00:00:00
2012-08-15 00:00:00
2012-08-16 00:00:00
2012-08-17 00:00:00
2012-08-20 00:00:00
2012-08-21 00:00:00
2012-08-22 00:00:00
2012-08-23 00:00:00
2012-08-24 00:00:00
2012-08-27 00:00:00
2012-08-28 00:00:00
2012-08-29 00:00:00
2012-08-30 00:00:00
2012-08-31 00:00:00
2012-09-03 00:00:00
2012-09-04 00:00:00
2012-09-05 00:00:00
2012-09-06 00:00:00
2012-09-07 00:00:00
2012-09-10 00:00:00
2012-09-11 00:00:00
2012-09-12 00:00:00
2012-09-13 00:00:00
2012-09-14 00:00:00
2012-09-17 00:00:00
2012-09-18 00:00:00
2012-09-19 00:00:00
2012-09-20 00:00:00
2012-09-21 00:00:00
2012-09-24 00:00:00
2012-09-25 00:00:00
2012-09-26 00:00:00
2012-09-27 00:00:00
2012-09-28 00:00:00
2012-10-08 00:00:00
2012-10-09 00:00:00
2012-10-10 00:00:00
2012-10-11 00:00:00
2012-10-12 00:00:00
2012-10-15 00:00:00
2012-10-16 00:00:00
2012-10-17 00:00:00
2012-10-18 00:00:00
2012-10-19 00:00:00
2012-10-22 00:00:00
2012-10-23 00:00:00
2012-10-24 00:00:00
2012-10-25 00:00:00
2012-10-26 00:00:00
2012-10-29 00:00:00
2012-10-30 00:00:00
2012-10-31 00:00:00
2012-11-01 00:00:00
2012-11-02 00:00:00
2012-11-05 00:00:00
2012-11-06 00:00:00
2012-11-07 00:00:00
2012-11-08 00:00:00
2012-11-09 00:00:00
2012-11-12 00:00:00
2012-11-13 00:00:00
2012-11-14 00:00:00
2012-11-15 00:00:00
2012-11-16 00:00:00
2012-11-19 00:00:00
2012-11-20 00:00:00
2012-11-21 00:00:00
2012-11-22 00:00:00
2012-11-23 00:00:00
2012-11-26 00:00:00
2012-11-27 00:00:00
2012-11-28 00:00:00
2012-11-29 00:00:00
2012-11-30 00:00:00
2012-12-03 00:00:00
2012-12-04 00:00:00
2012-12-05 00:00:00
2012-12-06 00:00:00
2012-12-07 00:00:00
2012-12-10 00:00:00
2012-12-11 00:00:00
2012-12-12 00:00:00
2012-12-13 00:00:00
2012-12-14 00:00:00
2012-12-17 00:00:00
2012-12-18 00:00:00
2012-12-19 00:00:00
2012-12-20 00:00:00
2012-12-21 00:00:00
2012-12-24 00:00:00
2012-12-25 00:00:00
2012-12-26 00:00:00
2012-12-27 00:00:00
2012-12-28 00:00:00
2012-12-31 00:00:00
2013-01-04 00:00:00
2013-01-07 00:00:00
2013-01-08 00:00:00
2013-01-09 00:00:00
2013-01-10 00:00:00
2013-01-11 00:00:00
2013-01-14 00:00:00
2013-01-15 00:00:00
2013-01-16 00:00:00
2013-01-17 00:00:00
2013-01-18 00:00:00
2013-01-21 00:00:00
2013-01-22 00:00:00
2013-01-23 00:00:00
2013-01-24 00:00:00
2013-01-25 00:00:00
2013-01-28 00:00:00
2013-01-29 00:00:00
2013-01-30 00:00:00
2013-01-31 00:00:00
2013-02-01 00:00:00
2013-02-04 00:00:00
2013-02-05 00:00:00
2013-02-06 00:00:00
2013-02-07 00:00:00
2013-02-08 00:00:00
2013-02-18 00:00:00
2013-02-19 00:00:00
2013-02-20 00:00:00
2013-02-21 00:00:00
2013-02-22 00:00:00
2013-02-25 00:00:00
2013-02-26 00:00:00
2013-02-27 00:00:00
2013-02-28 00:00:00
2013-03-01 00:00:00
2013-03-04 00:00:00
2013-03-05 00:00:00
2013-03-06 00:00:00
2013-03-07 00:00:00
2013-03-08 00:00:00
2013-03-11 00:00:00
2013-03-12 00:00:00
2013-03-13 00:00:00
2013-03-14 00:00:00
2013-03-15 00:00:00
2013-03-18 00:00:00
2013-03-19 00:00:00
2013-03-20 00:00:00
2013-03-21 00:00:00
2013-03-22 00:00:00
2013-03-25 00:00:00
2013-03-26 00:00:00
2013-03-27 00:00:00
2013-03-28 00:00:00
2013-03-29 00:00:00
2013-04-01 00:00:00
2013-04-02 00:00:00
2013-04-03 00:00:00
2013-04-08 00:00:00
2013-04-09 00:00:00
2013-04-10 00:00:00
2013-04-11 00:00:00
2013-04-12 00:00:00
2013-04-15 00:00:00
2013-04-16 00:00:00
2013-04-17 00:00:00
2013-04-18 00:00:00
2013-04-19 00:00:00
2013-04-22 00:00:00
2013-04-23 00:00:00
2013-04-24 00:00:00
2013-04-25 00:00:00
2013-04-26 00:00:00
2013-05-02 00:00:00
2013-05-03 00:00:00
2013-05-06 00:00:00
2013-05-07 00:00:00
2013-05-08 00:00:00
2013-05-09 00:00:00
2013-05-10 00:00:00
2013-05-13 00:00:00
2013-05-14 00:00:00
2013-05-15 00:00:00
2013-05-16 00:00:00
2013-05-17 00:00:00
2013-05-20 00:00:00
2013-05-21 00:00:00
2013-05-22 00:00:00
2013-05-23 00:00:00
2013-05-24 00:00:00
2013-05-27 00:00:00
2013-05-28 00:00:00
2013-05-29 00:00:00
2013-05-30 00:00:00
2013-05-31 00:00:00
2013-06-03 00:00:00
2013-06-04 00:00:00
2013-06-05 00:00:00
2013-06-06 00:00:00
2013-06-07 00:00:00
2013-06-13 00:00:00
2013-06-14 00:00:00
2013-06-17 00:00:00
2013-06-18 00:00:00
2013-06-19 00:00:00
2013-06-20 00:00:00
2013-06-21 00:00:00
2013-06-24 00:00:00
2013-06-25 00:00:00
2013-06-26 00:00:00
2013-06-27 00:00:00
2013-06-28 00:00:00
2013-07-01 00:00:00
2013-07-02 00:00:00
2013-07-03 00:00:00
2013-07-04 00:00:00
2013-07-05 00:00:00
2013-07-08 00:00:00
2013-07-09 00:00:00
2013-07-10 00:00:00
2013-07-11 00:00:00
2013-07-12 00:00:00
2013-07-15 00:00:00
2013-07-16 00:00:00
2013-07-17 00:00:00
2013-07-18 00:00:00
2013-07-19 00:00:00
2013-07-22 00:00:00
2013-07-23 00:00:00
2013-07-24 00:00:00
2013-07-25 00:00:00
2013-07-26 00:00:00
2013-07-29 00:00:00
2013-07-30 00:00:00
2013-07-31 00:00:00
2013-08-01 00:00:00
2013-08-02 00:00:00
2013-08-05 00:00:00
2013-08-06 00:00:00
2013-08-07 00:00:00
2013-08-08 00:00:00
2013-08-09 00:00:00
2013-08-12 00:00:00
2013-08-13 00:00:00
2013-08-14 00:00:00
2013-08-15 00:00:00
2013-08-16 00:00:00
2013-08-19 00:00:00
2013-08-20 00:00:00
2013-08-21 00:00:00
2013-08-22 00:00:00
2013-08-23 00:00:00
2013-08-26 00:00:00
2013-08-27 00:00:00
2013-08-28 00:00:00
2013-08-29 00:00:00
2013-08-30 00:00:00
2013-09-02 00:00:00
2013-09-03 00:00:00
2013-09-04 00:00:00
2013-09-05 00:00:00
2013-09-06 00:00:00
2013-09-09 00:00:00
2013-09-10 00:00:00
2013-09-11 00:00:00
2013-09-12 00:00:00
2013-09-13 00:00:00
2013-09-16 00:00:00
2013-09-17 00:00:00
2013-09-18 00:00:00
2013-09-23 00:00:00
2013-09-24 00:00:00
2013-09-25 00:00:00
2013-09-26 00:00:00
2013-09-27 00:00:00
2013-09-30 00:00:00
2013-10-08 00:00:00
2013-10-09 00:00:00
2013-10-10 00:00:00
2013-10-11 00:00:00
2013-10-14 00:00:00
2013-10-15 00:00:00
2013-10-16 00:00:00
2013-10-17 00:00:00
2013-10-18 00:00:00
2013-10-21 00:00:00
2013-10-22 00:00:00
2013-10-23 00:00:00
2013-10-24 00:00:00
2013-10-25 00:00:00
2013-10-28 00:00:00
2013-10-29 00:00:00
2013-10-30 00:00:00
2013-10-31 00:00:00
2013-11-01 00:00:00
2013-11-04 00:00:00
2013-11-05 00:00:00
2013-11-06 00:00:00
2013-11-07 00:00:00
2013-11-08 00:00:00
2013-11-11 00:00:00
2013-11-12 00:00:00
2013-11-13 00:00:00
2013-11-14 00:00:00
2013-11-15 00:00:00
2013-11-18 00:00:00
2013-11-19 00:00:00
2013-11-20 00:00:00
2013-11-21 00:00:00
2013-11-22 00:00:00
2013-11-25 00:00:00
2013-11-26 00:00:00
2013-11-27 00:00:00
2013-11-28 00:00:00
2013-11-29 00:00:00
2013-12-02 00:00:00
2013-12-03 00:00:00
2013-12-04 00:00:00
2013-12-05 00:00:00
2013-12-06 00:00:00
2013-12-09 00:00:00
2013-12-10 00:00:00
2013-12-11 00:00:00
2013-12-12 00:00:00
2013-12-13 00:00:00
2013-12-16 00:00:00
2013-12-17 00:00:00
2013-12-18 00:00:00
2013-12-19 00:00:00
2013-12-20 00:00:00
2013-12-23 00:00:00
2013-12-24 00:00:00
2013-12-25 00:00:00
2013-12-26 00:00:00
2013-12-27 00:00:00
2013-12-30 00:00:00
2013-12-31 00:00:00
2014-01-02 00:00:00
2014-01-03 00:00:00
2014-01-06 00:00:00
2014-01-07 00:00:00
2014-01-08 00:00:00
2014-01-09 00:00:00
2014-01-10 00:00:00
2014-01-13 00:00:00
2014-01-14 00:00:00
2014-01-15 00:00:00
2014-01-16 00:00:00
2014-01-17 00:00:00
2014-01-20 00:00:00
2014-01-21 00:00:00
2014-01-22 00:00:00
2014-01-23 00:00:00
2014-01-24 00:00:00
2014-01-27 00:00:00
2014-01-28 00:00:00
2014-01-29 00:00:00
2014-01-30 00:00:00
2014-02-07 00:00:00
2014-02-10 00:00:00
2014-02-11 00:00:00
2014-02-12 00:00:00
2014-02-13 00:00:00
2014-02-14 00:00:00
2014-02-17 00:00:00
2014-02-18 00:00:00
2014-02-19 00:00:00
2014-02-20 00:00:00
2014-02-21 00:00:00
2014-02-24 00:00:00
2014-02-25 00:00:00
2014-02-26 00:00:00
2014-02-27 00:00:00
2014-02-28 00:00:00
2014-03-03 00:00:00
2014-03-04 00:00:00
2014-03-05 00:00:00
2014-03-06 00:00:00
2014-03-07 00:00:00
2014-03-10 00:00:00
2014-03-11 00:00:00
2014-03-12 00:00:00
2014-03-13 00:00:00
2014-03-14 00:00:00
2014-03-17 00:00:00
2014-03-18 00:00:00
2014-03-19 00:00:00
2014-03-20 00:00:00
2014-03-21 00:00:00
2014-03-24 00:00:00
2014-03-25 00:00:00
2014-03-26 00:00:00
2014-03-27 00:00:00
2014-03-28 00:00:00
2014-03-31 00:00:00
2014-04-01 00:00:00
2014-04-02 00:00:00
2014-04-03 00:00:00
2014-04-04 00:00:00
2014-04-08 00:00:00
2014-04-09 00:00:00
2014-04-10 00:00:00
2014-04-11 00:00:00
2014-04-14 00:00:00
2014-04-15 00:00:00
2014-04-16 00:00:00
2014-04-17 00:00:00
2014-04-18 00:00:00
2014-04-21 00:00:00
2014-04-22 00:00:00
2014-04-23 00:00:00
2014-04-24 00:00:00
2014-04-25 00:00:00
2014-04-28 00:00:00
2014-04-29 00:00:00
2014-04-30 00:00:00
2014-05-05 00:00:00
2014-05-06 00:00:00
2014-05-07 00:00:00
2014-05-08 00:00:00
2014-05-09 00:00:00
2014-05-12 00:00:00
2014-05-13 00:00:00
2014-05-14 00:00:00
2014-05-15 00:00:00
2014-05-16 00:00:00
2014-05-19 00:00:00
2014-05-20 00:00:00
2014-05-21 00:00:00
2014-05-22 00:00:00
2014-05-23 00:00:00
2014-05-26 00:00:00
2014-05-27 00:00:00
2014-05-28 00:00:00
2014-05-29 00:00:00
2014-05-30 00:00:00
2014-06-03 00:00:00
2014-06-04 00:00:00
2014-06-05 00:00:00
2014-06-06 00:00:00
2014-06-09 00:00:00
2014-06-10 00:00:00
2014-06-11 00:00:00
2014-06-12 00:00:00
2014-06-13 00:00:00
2014-06-16 00:00:00
2014-06-17 00:00:00
2014-06-18 00:00:00
2014-06-19 00:00:00
2014-06-20 00:00:00
2014-06-23 00:00:00
2014-06-24 00:00:00
2014-06-25 00:00:00
2014-06-26 00:00:00
2014-06-27 00:00:00
2014-06-30 00:00:00
2014-07-01 00:00:00
2014-07-02 00:00:00
2014-07-03 00:00:00
2014-07-04 00:00:00
2014-07-07 00:00:00
2014-07-08 00:00:00
2014-07-09 00:00:00
2014-07-10 00:00:00
2014-07-11 00:00:00
2014-07-14 00:00:00
2014-07-15 00:00:00
2014-07-16 00:00:00
2014-07-17 00:00:00
2014-07-18 00:00:00
2014-07-21 00:00:00
2014-07-22 00:00:00
2014-07-23 00:00:00
2014-07-24 00:00:00
2014-07-25 00:00:00
2014-07-28 00:00:00
2014-07-29 00:00:00
2014-07-30 00:00:00
2014-07-31 00:00:00
2014-08-01 00:00:00
2014-08-04 00:00:00
2014-08-05 00:00:00
2014-08-06 00:00:00
2014-08-07 00:00:00
2014-08-08 00:00:00
2014-08-11 00:00:00
2014-08-12 00:00:00
2014-08-13 00:00:00
2014-08-14 00:00:00
2014-08-15 00:00:00
2014-08-18 00:00:00
2014-08-19 00:00:00
2014-08-20 00:00:00
2014-08-21 00:00:00
2014-08-22 00:00:00
2014-08-25 00:00:00
2014-08-26 00:00:00
2014-08-27 00:00:00
2014-08-28 00:00:00
2014-08-29 00:00:00
2014-09-01 00:00:00
2014-09-02 00:00:00
2014-09-03 00:00:00
2014-09-04 00:00:00
2014-09-05 00:00:00
2014-09-09 00:00:00
2014-09-10 00:00:00
2014-09-11 00:00:00
2014-09-12 00:00:00
2014-09-15 00:00:00
2014-09-16 00:00:00
2014-09-17 00:00:00
2014-09-18 00:00:00
2014-09-19 00:00:00
2014-09-22 00:00:00
2014-09-23 00:00:00
2014-09-24 00:00:00
2014-09-25 00:00:00
2014-09-26 00:00:00
2014-09-29 00:00:00
2014-09-30 00:00:00
2014-10-08 00:00:00
2014-10-09 00:00:00
2014-10-10 00:00:00
2014-10-13 00:00:00
2014-10-14 00:00:00
2014-10-15 00:00:00
2014-10-16 00:00:00
2014-10-17 00:00:00
2014-10-20 00:00:00
2014-10-21 00:00:00
2014-10-22 00:00:00
2014-10-23 00:00:00
2014-10-24 00:00:00
2014-10-27 00:00:00
2014-10-28 00:00:00
2014-10-29 00:00:00
2014-10-30 00:00:00
2014-10-31 00:00:00
2014-11-03 00:00:00
2014-11-04 00:00:00
2014-11-05 00:00:00
2014-11-06 00:00:00
2014-11-07 00:00:00
2014-11-10 00:00:00
2014-11-11 00:00:00
2014-11-12 00:00:00
2014-11-13 00:00:00
2014-11-14 00:00:00
2014-11-17 00:00:00
2014-11-18 00:00:00
2014-11-19 00:00:00
2014-11-20 00:00:00
2014-11-21 00:00:00
2014-11-24 00:00:00
2014-11-25 00:00:00
2014-11-26 00:00:00
2014-11-27 00:00:00
2014-11-28 00:00:00
2014-12-01 00:00:00
2014-12-02 00:00:00
2014-12-03 00:00:00
2014-12-04 00:00:00
2014-12-05 00:00:00
2014-12-08 00:00:00
2014-12-09 00:00:00
2014-12-10 00:00:00
2014-12-11 00:00:00
2014-12-12 00:00:00
2014-12-15 00:00:00
2014-12-16 00:00:00
2014-12-17 00:00:00
2014-12-18 00:00:00
2014-12-19 00:00:00
2014-12-22 00:00:00
2014-12-23 00:00:00
2014-12-24 00:00:00
2014-12-25 00:00:00
2014-12-26 00:00:00
2014-12-29 00:00:00
2014-12-30 00:00:00
2014-12-31 00:00:00
2015-01-05 00:00:00
2015-01-06 00:00:00
2015-01-07 00:00:00
2015-01-08 00:00:00
2015-01-09 00:00:00
2015-01-12 00:00:00
2015-01-13 00:00:00
2015-01-14 00:00:00
2015-01-15 00:00:00
2015-01-16 00:00:00
2015-01-19 00:00:00
2015-01-20 00:00:00
2015-01-21 00:00:00
2015-01-22 00:00:00
2015-01-23 00:00:00
2015-01-26 00:00:00
2015-01-27 00:00:00
2015-01-28 00:00:00
2015-01-29 00:00:00
2015-01-30 00:00:00
2015-02-02 00:00:00
2015-02-03 00:00:00
2015-02-04 00:00:00
2015-02-05 00:00:00
2015-02-06 00:00:00
2015-02-09 00:00:00
2015-02-10 00:00:00
2015-02-11 00:00:00
2015-02-12 00:00:00
2015-02-13 00:00:00
2015-02-16 00:00:00
2015-02-17 00:00:00
2015-02-25 00:00:00
2015-02-26 00:00:00
2015-02-27 00:00:00
2015-03-02 00:00:00
2015-03-03 00:00:00
2015-03-04 00:00:00
2015-03-05 00:00:00
2015-03-06 00:00:00
2015-03-09 00:00:00
2015-03-10 00:00:00
2015-03-11 00:00:00
2015-03-12 00:00:00
2015-03-13 00:00:00
2015-03-16 00:00:00
2015-03-17 00:00:00
2015-03-18 00:00:00
2015-03-19 00:00:00
2015-03-20 00:00:00
2015-03-23 00:00:00
2015-03-24 00:00:00
2015-03-25 00:00:00
2015-03-26 00:00:00
2015-03-27 00:00:00
2015-03-30 00:00:00
2015-03-31 00:00:00
2015-04-01 00:00:00
2015-04-02 00:00:00
2015-04-03 00:00:00
2015-04-07 00:00:00
2015-04-08 00:00:00
2015-04-09 00:00:00
2015-04-10 00:00:00
2015-04-13 00:00:00
2015-04-14 00:00:00
2015-04-15 00:00:00
2015-04-16 00:00:00
2015-04-17 00:00:00
2015-04-20 00:00:00
2015-04-21 00:00:00
2015-04-22 00:00:00
2015-04-23 00:00:00
2015-04-24 00:00:00
2015-04-27 00:00:00
2015-04-28 00:00:00
2015-04-29 00:00:00
2015-04-30 00:00:00
2015-05-04 00:00:00
2015-05-05 00:00:00
2015-05-06 00:00:00
2015-05-07 00:00:00
2015-05-08 00:00:00
2015-05-11 00:00:00
2015-05-12 00:00:00
2015-05-13 00:00:00
2015-05-14 00:00:00
2015-05-15 00:00:00
2015-05-18 00:00:00
2015-05-19 00:00:00
2015-05-20 00:00:00
2015-05-21 00:00:00
2015-05-22 00:00:00
2015-05-25 00:00:00
2015-05-26 00:00:00
2015-05-27 00:00:00
2015-05-28 00:00:00
2015-05-29 00:00:00
2015-06-01 00:00:00
2015-06-02 00:00:00
2015-06-03 00:00:00
2015-06-04 00:00:00
2015-06-05 00:00:00
2015-06-08 00:00:00
2015-06-09 00:00:00
2015-06-10 00:00:00
2015-06-11 00:00:00
2015-06-12 00:00:00
2015-06-15 00:00:00
2015-06-16 00:00:00
2015-06-17 00:00:00
2015-06-18 00:00:00
2015-06-19 00:00:00
2015-06-23 00:00:00
2015-06-24 00:00:00
2015-06-25 00:00:00
2015-06-26 00:00:00
2015-06-29 00:00:00
2015-06-30 00:00:00
2015-07-01 00:00:00
2015-07-02 00:00:00
2015-07-03 00:00:00
2015-07-06 00:00:00
2015-07-07 00:00:00
2015-07-08 00:00:00
2015-07-09 00:00:00
2015-07-10 00:00:00
2015-07-13 00:00:00
2015-07-14 00:00:00
2015-07-15 00:00:00
2015-07-16 00:00:00
2015-07-17 00:00:00
2015-07-20 00:00:00
2015-07-21 00:00:00
2015-07-22 00:00:00
2015-07-23 00:00:00
2015-07-24 00:00:00
2015-07-27 00:00:00
2015-07-28 00:00:00
2015-07-29 00:00:00
2015-07-30 00:00:00
2015-07-31 00:00:00
2015-08-03 00:00:00
2015-08-04 00:00:00
2015-08-05 00:00:00
2015-08-06 00:00:00
2015-08-07 00:00:00
2015-08-10 00:00:00
2015-08-11 00:00:00
2015-08-12 00:00:00
2015-08-13 00:00:00
2015-08-14 00:00:00
2015-08-17 00:00:00
2015-08-18 00:00:00
2015-08-19 00:00:00
2015-08-20 00:00:00
2015-08-21 00:00:00
2015-08-24 00:00:00
2015-08-25 00:00:00
2015-08-26 00:00:00
2015-08-27 00:00:00
2015-08-28 00:00:00
2015-08-31 00:00:00
2015-09-01 00:00:00
2015-09-02 00:00:00
2015-09-07 00:00:00
2015-09-08 00:00:00
2015-09-09 00:00:00
2015-09-10 00:00:00
2015-09-11 00:00:00
2015-09-14 00:00:00
2015-09-15 00:00:00
2015-09-16 00:00:00
2015-09-17 00:00:00
2015-09-18 00:00:00
2015-09-21 00:00:00
2015-09-22 00:00:00
2015-09-23 00:00:00
2015-09-24 00:00:00
2015-09-25 00:00:00
2015-09-28 00:00:00
2015-09-29 00:00:00
2015-09-30 00:00:00
2015-10-08 00:00:00
2015-10-09 00:00:00
2015-10-12 00:00:00
2015-10-13 00:00:00
2015-10-14 00:00:00
2015-10-15 00:00:00
2015-10-16 00:00:00
2015-10-19 00:00:00
2015-10-20 00:00:00
2015-10-21 00:00:00
2015-10-22 00:00:00
2015-10-23 00:00:00
2015-10-26 00:00:00
2015-10-27 00:00:00
2015-10-28 00:00:00
2015-10-29 00:00:00
2015-10-30 00:00:00
2015-11-02 00:00:00
2015-11-03 00:00:00
2015-11-04 00:00:00
2015-11-05 00:00:00
2015-11-06 00:00:00
2015-11-09 00:00:00
2015-11-10 00:00:00
2015-11-11 00:00:00
2015-11-12 00:00:00
2015-11-13 00:00:00
2015-11-16 00:00:00
2015-11-17 00:00:00
2015-11-18 00:00:00
2015-11-19 00:00:00
2015-11-20 00:00:00
2015-11-23 00:00:00
2015-11-24 00:00:00
2015-11-25 00:00:00
2015-11-26 00:00:00
2015-11-27 00:00:00
2015-11-30 00:00:00
2015-12-01 00:00:00
2015-12-02 00:00:00
2015-12-03 00:00:00
2015-12-04 00:00:00
2015-12-07 00:00:00
2015-12-08 00:00:00
2015-12-09 00:00:00
2015-12-10 00:00:00
2015-12-11 00:00:00
2015-12-14 00:00:00
2015-12-15 00:00:00
2015-12-16 00:00:00
2015-12-17 00:00:00
2015-12-18 00:00:00
2015-12-21 00:00:00
2015-12-22 00:00:00
2015-12-23 00:00:00
2015-12-24 00:00:00
2015-12-25 00:00:00
2015-12-28 00:00:00
2015-12-29 00:00:00
2015-12-30 00:00:00
2015-12-31 00:00:00
2016-01-04 00:00:00
2016-01-05 00:00:00
2016-01-06 00:00:00
2016-01-07 00:00:00
2016-01-08 00:00:00
2016-01-11 00:00:00
2016-01-12 00:00:00
2016-01-13 00:00:00
2016-01-14 00:00:00
2016-01-15 00:00:00
2016-01-18 00:00:00
2016-01-19 00:00:00
2016-01-20 00:00:00
2016-01-21 00:00:00
2016-01-22 00:00:00
2016-01-25 00:00:00
2016-01-26 00:00:00
2016-01-27 00:00:00
2016-01-28 00:00:00
2016-01-29 00:00:00
2016-02-01 00:00:00
2016-02-02 00:00:00
2016-02-03 00:00:00
2016-02-04 00:00:00
2016-02-05 00:00:00
2016-02-15 00:00:00
2016-02-17 00:00:00
2016-02-18 00:00:00
2016-02-19 00:00:00
2016-02-22 00:00:00
2016-02-23 00:00:00
2016-02-24 00:00:00
2016-02-25 00:00:00
2016-02-26 00:00:00
2016-02-29 00:00:00
2016-03-01 00:00:00
2016-03-02 00:00:00
2016-03-03 00:00:00
2016-03-04 00:00:00
2016-03-07 00:00:00
2016-03-08 00:00:00
2016-03-09 00:00:00
2016-03-10 00:00:00
2016-03-11 00:00:00
2016-03-14 00:00:00
2016-03-15 00:00:00
2016-03-16 00:00:00
2016-03-17 00:00:00
2016-03-18 00:00:00
2016-03-21 00:00:00
2016-03-22 00:00:00
2016-03-23 00:00:00
2016-03-24 00:00:00
2016-03-25 00:00:00
2016-03-28 00:00:00
2016-03-29 00:00:00
2016-03-30 00:00:00
2016-03-31 00:00:00
2016-04-01 00:00:00
2016-04-05 00:00:00
2016-04-06 00:00:00
2016-04-07 00:00:00
2016-04-08 00:00:00
2016-04-11 00:00:00
2016-04-12 00:00:00
2016-04-13 00:00:00
2016-04-14 00:00:00
2016-04-15 00:00:00
2016-04-18 00:00:00
2016-04-19 00:00:00
2016-04-20 00:00:00
2016-04-21 00:00:00
2016-04-22 00:00:00
2016-04-25 00:00:00
2016-04-26 00:00:00
2016-04-27 00:00:00
2016-04-28 00:00:00
2016-04-29 00:00:00
2016-05-03 00:00:00
2016-05-04 00:00:00
2016-05-05 00:00:00
2016-05-06 00:00:00
2016-05-09 00:00:00
2016-05-10 00:00:00
2016-05-11 00:00:00
2016-05-12 00:00:00
2016-05-13 00:00:00
2016-05-16 00:00:00
2016-05-17 00:00:00
2016-05-18 00:00:00
2016-05-19 00:00:00
2016-05-20 00:00:00
2016-05-23 00:00:00
2016-05-24 00:00:00
2016-05-25 00:00:00
2016-05-26 00:00:00
2016-05-27 00:00:00
2016-05-30 00:00:00
2016-05-31 00:00:00
2016-06-01 00:00:00
2016-06-02 00:00:00
2016-06-03 00:00:00
2016-06-06 00:00:00
2016-06-07 00:00:00
2016-06-08 00:00:00
2016-06-13 00:00:00
2016-06-14 00:00:00
2016-06-15 00:00:00
2016-06-16 00:00:00
2016-06-17 00:00:00
2016-06-20 00:00:00
2016-06-21 00:00:00
2016-06-22 00:00:00
2016-06-23 00:00:00
2016-06-24 00:00:00
2016-06-27 00:00:00
2016-06-28 00:00:00
2016-06-29 00:00:00
2016-06-30 00:00:00
2016-07-01 00:00:00
2016-07-04 00:00:00
2016-07-05 00:00:00
2016-07-06 00:00:00
2016-07-07 00:00:00
2016-07-08 00:00:00
2016-07-11 00:00:00
2016-07-12 00:00:00
2016-07-13 00:00:00
2016-07-14 00:00:00
2016-07-15 00:00:00
2016-07-18 00:00:00
2016-07-19 00:00:00
2016-07-20 00:00:00
2016-07-21 00:00:00
2016-07-22 00:00:00
2016-07-25 00:00:00
2016-07-26 00:00:00
2016-07-27 00:00:00
2016-07-28 00:00:00
2016-07-29 00:00:00
2016-08-01 00:00:00
2016-08-02 00:00:00
2016-08-03 00:00:00
2016-08-04 00:00:00
2016-08-05 00:00:00
2016-08-08 00:00:00
2016-08-09 00:00:00
2016-08-10 00:00:00
2016-08-11 00:00:00
2016-08-12 00:00:00
2016-08-15 00:00:00
2016-08-16 00:00:00
2016-08-17 00:00:00
2016-08-18 00:00:00
2016-08-19 00:00:00
2016-08-22 00:00:00
2016-08-23 00:00:00
2016-08-24 00:00:00
2016-08-25 00:00:00
2016-08-26 00:00:00
2016-08-29 00:00:00
2016-08-30 00:00:00
2016-08-31 00:00:00
2016-09-01 00:00:00
2016-09-02 00:00:00
2016-09-05 00:00:00
2016-09-06 00:00:00
2016-09-07 00:00:00
2016-09-08 00:00:00
2016-09-09 00:00:00
2016-09-12 00:00:00
2016-09-13 00:00:00
2016-09-14 00:00:00
2016-09-19 00:00:00
2016-09-20 00:00:00
2016-09-21 00:00:00
2016-09-22 00:00:00
2016-09-23 00:00:00
2016-09-26 00:00:00
2016-09-27 00:00:00
2016-09-28 00:00:00
2016-09-29 00:00:00
2016-09-30 00:00:00
2016-10-10 00:00:00
2016-10-11 00:00:00
2016-10-12 00:00:00
2016-10-13 00:00:00
2016-10-14 00:00:00
2016-10-17 00:00:00
2016-10-18 00:00:00
2016-10-19 00:00:00
2016-10-20 00:00:00
2016-10-21 00:00:00
2016-10-24 00:00:00
2016-10-25 00:00:00
2016-10-26 00:00:00
2016-10-27 00:00:00
2016-10-28 00:00:00
2016-10-31 00:00:00
2016-11-01 00:00:00
2016-11-02 00:00:00
2016-11-03 00:00:00
2016-11-04 00:00:00
2016-11-07 00:00:00
2016-11-08 00:00:00
2016-11-09 00:00:00
2016-11-10 00:00:00
2016-11-11 00:00:00
2016-11-14 00:00:00
2016-11-15 00:00:00
2016-11-16 00:00:00
2016-11-17 00:00:00
2016-11-18 00:00:00
2016-11-21 00:00:00
2016-11-22 00:00:00
2016-11-23 00:00:00
2016-11-24 00:00:00
2016-11-25 00:00:00
2016-11-28 00:00:00
2016-11-29 00:00:00
2016-11-30 00:00:00
2016-12-01 00:00:00
2016-12-02 00:00:00
2016-12-05 00:00:00
2016-12-06 00:00:00
2016-12-07 00:00:00
2016-12-08 00:00:00
2016-12-09 00:00:00
2016-12-12 00:00:00
2016-12-13 00:00:00
2016-12-14 00:00:00
2016-12-15 00:00:00
2016-12-16 00:00:00
2016-12-19 00:00:00
2016-12-20 00:00:00
2016-12-21 00:00:00
2016-12-22 00:00:00
2016-12-23 00:00:00
2016-12-26 00:00:00
2016-12-27 00:00:00
2016-12-28 00:00:00
2016-12-29 00:00:00
2016-12-30 00:00:00
2017-01-03 00:00:00
2017-01-04 00:00:00
2017-01-05 00:00:00
2017-01-06 00:00:00
2017-01-09 00:00:00
2017-01-10 00:00:00
2017-01-11 00:00:00
2017-01-12 00:00:00
2017-01-13 00:00:00
2017-01-16 00:00:00
2017-01-17 00:00:00
2017-01-18 00:00:00
2017-01-19 00:00:00
2017-01-20 00:00:00
2017-01-23 00:00:00
2017-01-24 00:00:00
2017-01-25 00:00:00
2017-01-26 00:00:00
2017-02-03 00:00:00
2017-02-06 00:00:00
2017-02-07 00:00:00
2017-02-08 00:00:00
2017-02-09 00:00:00
2017-02-10 00:00:00
2017-02-13 00:00:00
2017-02-14 00:00:00
2017-02-15 00:00:00
2017-02-16 00:00:00
2017-02-17 00:00:00
2017-02-20 00:00:00
2017-02-21 00:00:00
2017-02-22 00:00:00
2017-02-23 00:00:00
2017-02-24 00:00:00
2017-02-27 00:00:00
2017-02-28 00:00:00
2017-03-01 00:00:00
2017-03-02 00:00:00
2017-03-03 00:00:00
2017-03-06 00:00:00
2017-03-07 00:00:00
2017-03-08 00:00:00
2017-03-09 00:00:00
2017-03-10 00:00:00
2017-03-13 00:00:00
2017-03-14 00:00:00
2017-03-15 00:00:00
2017-03-16 00:00:00
2017-03-17 00:00:00
2017-03-20 00:00:00
2017-03-21 00:00:00
2017-03-22 00:00:00
2017-03-23 00:00:00
2017-03-24 00:00:00
2017-03-27 00:00:00
2017-03-28 00:00:00
2017-03-29 00:00:00
2017-03-30 00:00:00
2017-03-31 00:00:00
2017-04-05 00:00:00
2017-04-06 00:00:00
2017-04-07 00:00:00
2017-04-10 00:00:00
2017-04-11 00:00:00
2017-04-12 00:00:00
2017-04-13 00:00:00
2017-04-14 00:00:00
2017-04-17 00:00:00
2017-04-18 00:00:00
2017-04-19 00:00:00
2017-04-20 00:00:00
2017-04-21 00:00:00
2017-04-24 00:00:00
2017-04-25 00:00:00
2017-04-26 00:00:00
2017-04-27 00:00:00
2017-04-28 00:00:00
2017-05-02 00:00:00
2017-05-03 00:00:00
2017-05-04 00:00:00
2017-05-05 00:00:00
2017-05-08 00:00:00
2017-05-09 00:00:00
2017-05-10 00:00:00
2017-05-11 00:00:00
2017-05-12 00:00:00
2017-05-15 00:00:00
2017-05-16 00:00:00
2017-05-17 00:00:00
2017-05-18 00:00:00
2017-05-19 00:00:00
2017-05-22 00:00:00
2017-05-23 00:00:00
2017-05-24 00:00:00
2017-05-25 00:00:00
2017-05-26 00:00:00
2017-05-31 00:00:00
2017-06-01 00:00:00
2017-06-02 00:00:00
2017-06-05 00:00:00
2017-06-06 00:00:00
2017-06-07 00:00:00
2017-06-08 00:00:00
2017-06-09 00:00:00
2017-06-12 00:00:00
2017-06-13 00:00:00
2017-06-14 00:00:00
2017-06-15 00:00:00
2017-06-16 00:00:00
2017-06-19 00:00:00
2017-06-20 00:00:00
2017-06-21 00:00:00
2017-06-22 00:00:00
2017-06-23 00:00:00
2017-06-26 00:00:00
2017-06-27 00:00:00
2017-06-28 00:00:00
2017-06-29 00:00:00
2017-06-30 00:00:00
2017-07-03 00:00:00
2017-07-04 00:00:00
2017-07-05 00:00:00
2017-07-06 00:00:00
2017-07-07 00:00:00
2017-07-10 00:00:00
2017-07-11 00:00:00
2017-07-12 00:00:00
2017-07-13 00:00:00
2017-07-14 00:00:00
2017-07-17 00:00:00
2017-07-18 00:00:00
2017-07-19 00:00:00
2017-07-20 00:00:00
2017-07-21 00:00:00
2017-07-24 00:00:00
2017-07-25 00:00:00
2017-07-26 00:00:00
2017-07-27 00:00:00
2017-07-28 00:00:00
2017-07-31 00:00:00
2017-08-01 00:00:00
2017-08-02 00:00:00
2017-08-03 00:00:00
2017-08-04 00:00:00
2017-08-07 00:00:00
2017-08-08 00:00:00
2017-08-09 00:00:00
2017-08-10 00:00:00
2017-08-11 00:00:00
2017-08-14 00:00:00
2017-08-15 00:00:00
2017-08-16 00:00:00
2017-08-17 00:00:00
2017-08-18 00:00:00
2017-08-21 00:00:00
2017-08-22 00:00:00
2017-08-23 00:00:00
2017-08-24 00:00:00
2017-08-25 00:00:00
2017-08-28 00:00:00
2017-08-29 00:00:00
2017-08-30 00:00:00
2017-08-31 00:00:00
2017-09-01 00:00:00
2017-09-04 00:00:00
2017-09-05 00:00:00
2017-09-06 00:00:00
2017-09-07 00:00:00
2017-09-08 00:00:00
2017-09-11 00:00:00
2017-09-12 00:00:00
2017-09-13 00:00:00
2017-09-14 00:00:00
2017-09-15 00:00:00
2017-09-18 00:00:00
2017-09-19 00:00:00
2017-09-20 00:00:00
2017-09-21 00:00:00
2017-09-22 00:00:00
2017-09-25 00:00:00
2017-09-26 00:00:00
2017-09-27 00:00:00
2017-09-28 00:00:00
2017-09-29 00:00:00
2017-10-09 00:00:00
2017-10-10 00:00:00