def realtime_pool(findLastDays=7, isOpenLog=False): # 初始化algotrading的repo rat = repoForAT("algotrading", "12345678", None, isOpenLog=isOpenLog) # 初始化pool poolDataMarketGetter = marketDataGetter(isOpenLog=isOpenLog) poolDataRepoGetter = repo(isSqlite=False, isMysql=True, file_path="", user="******", password="******", ip=None, isOpenLog=isOpenLog) poolRecordSaver = tradingRecordSaver("algotrading", "12345678", None, isOpenLog=isOpenLog) poolRealTime = poolFromSinaApi(poolDataMarketGetter, True, poolRecordSaver, isOpenLog=isOpenLog) poolHistory = poolFromSinaApi(poolDataRepoGetter, False, poolRecordSaver, isOpenLog=isOpenLog) # 初始化quantAnalysisDict repoForQuantAnalysis = repo(isSqlite=False, isMysql=True, file_path="", user="******", password="******", ip=None, isOpenLog=isOpenLog) quantAnalysisDict = {} quantAnalysisDict[clientOrder.TWAP] = TWAPQuantAnalysis( isOpenLog=isOpenLog) quantAnalysisDict[clientOrder.VWAP] = VWAPQuantAnalysis( repoForQuantAnalysis, isOpenLog=isOpenLog) quantAnalysisDict[clientOrder.LINEARVWAP] = LinearVWAPQuantAnalysis( repoForQuantAnalysis, isOpenLog=isOpenLog) algoTradingEngine = algoTrading(rat, poolRealTime, quantAnalysisDict, findLastDays, isOpenLog=isOpenLog) log.info("init succ") index = 0 while (1): algoTradingEngine.set_time(datetime.datetime.now()) startTime = startTime + datetime.timedelta(minutes=1) algoTradingEngine.init_orders() algoTradingEngine.refresh() algoTradingEngine.trade_request() algoTradingEngine.complete_orders() index = index + 1 if index % 60 == 0: log.info("now time:" + str(startTime))
def test_history_pool(): # 初始化algotrading的repo rat = repoForAT("algotrading", "12345678", None, isOpenLog=False) # 初始化pool poolDataMarketGetter = marketDataGetter(isOpenLog=False) poolDataRepoGetter = repo(isSqlite=False, isMysql=True, file_path="", user="******", password="******", ip=None, isOpenLog=False) poolRecordSaver = tradingRecordSaver("algotrading", "12345678", None, isOpenLog=False) poolRealTime = poolFromSinaApi(poolDataMarketGetter, True, poolRecordSaver, isOpenLog=False) poolHistory = poolFromSinaApi(poolDataRepoGetter, False, poolRecordSaver, isOpenLog=False) # 初始化quantAnalysisDict repoForQuantAnalysis = repo(isSqlite=False, isMysql=True, file_path="", user="******", password="******", ip=None, isOpenLog=False) quantAnalysisDict = {} quantAnalysisDict[clientOrder.TWAP] = TWAPQuantAnalysis(isOpenLog=False) quantAnalysisDict[clientOrder.VWAP] = VWAPQuantAnalysis( repoForQuantAnalysis, isOpenLog=False) quantAnalysisDict[clientOrder.LINEARVWAP] = LinearVWAPQuantAnalysis( repoForQuantAnalysis, isOpenLog=False) findLastDays = 7 algoTradingEngine = algoTrading(rat, poolHistory, quantAnalysisDict, findLastDays, isOpenLog=False) log.info("init succ") order1 = clientOrder() stockId = 601377 startTime = datetime.datetime(2016, 12, 23, 10, 00) endTime = datetime.datetime(2016, 12, 23, 14, 00) stockAmount = 10000 buysell = 0 algChoice = 1 processId = 1 tradingType = 1 order1.create_order(stockId, startTime, endTime, stockAmount, buysell, algChoice, processId, tradingType) rat.insert_order(order1) order2 = clientOrder() buysell = 1 algChoice = 2 stockAmount = 1000 startTime = datetime.datetime(2016, 12, 22, 8, 00) endTime = datetime.datetime(2016, 12, 23, 19, 00) order2.create_order(stockId, startTime, endTime, stockAmount, buysell, algChoice, processId, tradingType) rat.insert_order(order2) order3 = clientOrder() buysell = 0 algChoice = 0 stockAmount = 1000000 startTime = datetime.datetime(2016, 12, 22, 10, 00) endTime = datetime.datetime(2016, 12, 22, 10, 10) order3.create_order(stockId, startTime, endTime, stockAmount, buysell, algChoice, processId, tradingType) rat.insert_order(order3) startTime = datetime.datetime(2016, 12, 22, 8, 00) index = 0 while (startTime < datetime.datetime(2016, 12, 23, 22)): algoTradingEngine.set_time(startTime) startTime = startTime + datetime.timedelta(minutes=1) algoTradingEngine.init_orders() algoTradingEngine.refresh() algoTradingEngine.trade_request() algoTradingEngine.complete_orders() index = index + 1 if index % 60 == 0: log.info("now time:" + str(startTime))
# ============================================================================== # Filename: MarketDataUnitTest.py # Author: Xiaofu Huang # E-mail: [email protected] # Last modified: 2016-11-06 12:45 # Description: marketdata 单元测试 # ============================================================================== import datetime from MarketData import MarketData import sys sys.path.append("../fetch_data/") from repo import repo from marketDataGetter import marketDataGetter if __name__ == '__main__': market = marketDataGetter() originArr = market.get_data(600000) marketData = MarketData(originArr) print marketData.sellPrice print marketData.sellAmount print marketData.buyPrice print marketData.buyAmount print marketData.time repoEngine = repo(isSqlite=False, isMysql=True, file_path="", user="******", password="******", ip=None, isOpenLog=False)