def addBuySellFlgAndExport(addr): dailyQuote = SourceDataDao.load_daily_quote(addr) startDate = dailyQuote.index[0][0] endDate = dailyQuote.index[-1][0] startYear = DateUtil.datetime2_year_str(startDate) endYear = DateUtil.datetime2_year_str(endDate) FORMAT = "%d-%d-%d" # c = time.strftime('%Y%m%d', time.strptime(y, '%Y-%m-%d')) for year in range(int(startYear), int(endYear) + 1, 1): for month in range(1 ,13): d = calendar.monthrange(year, month) exportStartDate = FORMAT % (year, month, 1) exportEndDate = FORMAT % (year, month, d[1]) # exportStartDate = str(year)+'-'+addZero(month)+'-'+'01' # exportEndDate = str(year) + '-' + addZero(month) + '-' + getMonthEndDay(month) subDailyQuote = SourceDataDao.select_by_date(dailyQuote, exportStartDate, exportEndDate) print('exportStartDate:' + exportStartDate) print('exportEndDate:' + exportEndDate) print( 'dailyQuote:' +str(len(subDailyQuote))) if(len(subDailyQuote) > 0): newSubDailyQuote = addBuySellFlg(subDailyQuote) SourceDataDao.export_to_hdfstore(newSubDailyQuote, StockConst.ROOT + StockConst.NEW_DAILY_QUOTE_H5)
def addDelistFlgAndExport(sourceAddr,targetAddr): dailyQuote = SourceDataDao.load_daily_quote(sourceAddr) # print(dailyQuote) lastTradingDay = max(list(dailyQuote.index.get_level_values(0).unique())) # lastTradingDayTsp = pd.Timestamp(DateUtil.datetime2Str(lastTradingDay)) # print('lastTradingDay:'+lastTradingDayTsp) # 全部退市股 delistDf = dailyQuote.groupby(level=StockConst.INNERCODE).apply(getDelist, lastTradingDay) # False True # print(delistDf) # 退市标记 dailyQuote.insert(len(dailyQuote.columns),'delistFlg', None) # 退市股delistFlg=1 for index, row in delistDf.iterrows(): tradingDay = index[1] innerCode = index[2] dailyQuote.ix[(tradingDay,innerCode), 'delistFlg'] = '1' # print(dailyQuote.ix[(tradingDay,innerCode)]) # 导出到h5 SourceDataDao.export_to_hdfstore(dailyQuote, StockConst.ROOT + '/' + targetAddr + '.h5') # dailyQuote.to_csv(StockConst.root + '\export\'+targetAddr+'.csv')
def printByInnerCodeAndDate(addr): dailyQuote = SourceDataDao.load_daily_quote(addr) dailyQuote = SourceDataDao.select_by_inner_code_and_date(dailyQuote, '2004-01-17', '000049.SZ') print(dailyQuote)
def testLoadDailyQuote(self): dailyQuote = SourceDataDao.load_daily_quote('') # self.assertEqual(self.sum(1, 2), 3) print('dailyQuote:'+str(len(dailyQuote))) self.assertNotEqual(len(dailyQuote), 0)