예제 #1
0
def create_h5():

    ## ms = MSSQL(host="localhost",user="******",pwd="123456",db="PythonWeiboStatistics")
    ## #返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段
    ## ms.ExecNonQuery("insert into WeiBoUser values('2','3')")

    # ms = MSSQLHelper.getMSSQLInstance()
    #
    # #连接
    # sqlserverCon = ms.getConnect()
    # sql = 'SELECT NatureDay,WindCode,IfTradingDay FROM AsIndexComponentZZ500 order by NatureDay,WindCode'
    #
    # # resList = ms.ExecQuery(sql)
    # # for (NatureDay,WindCode,IfTradingDay) in resList:
    # #     print(str(NatureDay) + ' ' + str(WindCode) + ' ' + str(IfTradingDay))
    #
    # #sqlserrver转成h5
    # df = pd.read_sql(sql, con=sqlserverCon)
    # print('df:')
    # print(df)
    # exportToHDFStore(df, StockConst.root + '/' + targetAddr + '.h5')

    hs300df = SourceDataDao.load_h5(StockConst.ROOT + StockConst.HS300H5)
    zz500df = SourceDataDao.load_h5(StockConst.ROOT + StockConst.ZZ500H5)
    zz800df = hs300df.append(zz500df)
    zz800df = zz800df.sort_values(by=['NatureDay', 'WindCode'], ascending=True)

    SourceDataDao.export_to_hdfstore(zz800df,
                                     StockConst.ROOT + StockConst.ZZ800H5)
예제 #2
0
def createFakeSignalData(addr):
    signalData = SourceDataDao.load_signal_data(addr)
    startDate = signalData.index[0][0]
    endDate = signalData.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)
            subSignalData = SourceDataDao.select_by_date(
                signalData, exportStartDate, exportEndDate)
            print('exportStartDate:' + exportStartDate)
            print('exportEndDate:' + exportEndDate)
            print('subSignalData:' + str(len(subSignalData)))
            if (len(subSignalData) > 0):
                newSubSignalData = subSignalData.copy()
                newSubSignalData['Mom2'] = subSignalData['Mom']
                newSubSignalData['Mom3'] = subSignalData['Mom']
                SourceDataDao.export_to_hdfstore(
                    newSubSignalData,
                    StockConst.ROOT + StockConst.FAKE_SIGNAL_DATA_H5)
예제 #3
0
def createSignalDataHill():
    # dateList = ['2010-01-01','2010-01-02','2010-01-03','2010-01-04']
    dateList1 = pd.date_range('2004-01-01', '2004-06-30')
    dateList2 = pd.date_range('2004-07-01', '2004-12-31')

    df1 = createSignalDataHillMain(dateList1, True)
    df2 = createSignalDataHillMain(dateList2, False)
    df = df1.append(df2)
    # print(df)
    SourceDataDao.export_to_hdfstore(
        df, StockConst.ROOT + '/export/SignalDataHill.h5')
예제 #4
0
def createFakeIndexQuote2():
    dateRange = pd.date_range(start='2005-01-01', end='2005-12-31')
    codeList = [
        StockConst.HS300_CODE, StockConst.ZZ500_CODE, StockConst.ZZ800_CODE
    ]
    multi_index = pd.MultiIndex.from_product([dateRange, codeList],
                                             names=['TradingDay', 'WindCode'])
    indexDF = pd.DataFrame(index=multi_index, columns=['ChangePCT'])
    indexDF['ChangePCT'] = 1  #百分之
    # print(indexDF)
    SourceDataDao.export_to_hdfstore(
        indexDF, StockConst.ROOT + StockConst.FAKE_INDEX_QUOTE_H5_2)
    indexDF.to_csv(StockConst.ROOT + '\\export\\fakeIndexQuoteH5_2.csv')
예제 #5
0
def mergeSignalWithIndexMain(signalDataDf, indexDf, addr):
    # print(signalDataDf)
    # print(indexDf)
    # newIndexDf = indexDf.apply(convertDate, axis=1)
    # # indexDf['NatureDay'] = DateUtil.str2Datetime(indexDf['NatureDay'])
    # print(newIndexDf)

    # 取交集
    df = pd.merge(indexDf, signalDataDf, left_on=['NatureDay','WindCode'], right_index=True)  # NatureDay,WindCode
    # 取3列
    df = df[['NatureDay','WindCode','Mom']]
    # 重命名
    df. rename(columns={'NatureDay': 'TradingDay'}, inplace=True)
    # 设置索引
    df = df.set_index(['TradingDay','WindCode'])
    # 导出h5
    SourceDataDao.export_to_hdfstore(df, StockConst.ROOT + addr)
예제 #6
0
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)
예제 #7
0
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')
예제 #8
0
def create_h5():

    ## ms = MSSQL(host="localhost",user="******",pwd="123456",db="PythonWeiboStatistics")
    ## #返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段
    ## ms.ExecNonQuery("insert into WeiBoUser values('2','3')")

    ms = MSSQLHelper.get_mssql_instance_default()

    #连接
    sqlserverCon = ms.get_connect()
    sql = 'SELECT NatureDay,WindCode,IfTradingDay FROM AsIndexComponentHS300 order by NatureDay,WindCode'

    # resList = ms.ExecQuery(sql)
    # for (NatureDay,WindCode,IfTradingDay) in resList:
    #     print(str(NatureDay) + ' ' + str(WindCode) + ' ' + str(IfTradingDay))

    #sqlserrver转成h5
    df = pd.read_sql(sql, con=sqlserverCon)
    # print('df:')
    # print(df)
    # exportToHDFStore(df, StockConst.root + '/' + targetAddr + '.h5')
    SourceDataDao.export_to_hdfstore(df, StockConst.ROOT + StockConst.HS300H5)

    sqlserverCon.close()