예제 #1
0
파일: t.py 프로젝트: lllzzz/NewCTPService
from service.ControlService import CTPService, ModelService

# s = ModelService('src/py/online.py demo aa', [], 'v0001')
# print s.cmd
# s.start()

# print s.status()

# s.stop()

# s = CTPService('bin/marketService', [], 'SRV_MARKET')
# print s.cmd
# s.start()
# print s.status()
# s.stop()

from common.Data import Data

d = Data()

cnt, data = d.getTickHistory('hc', ['hc1805'], '20180312 21:00:00',
                             '20180312 21:01:00')
print cnt
print data[0]['price']
예제 #2
0
    def __init__(self,
                 strat,
                 startRunningTime,
                 orderWaitingTime,
                 dataLogFixedTimeWindow,
                 dailyExitTime=None):
        self.strat = strat
        self.user_data = UserData()
        self.strat.initialize(self)
        self.startRunningTime = startRunningTime
        self.timeInterval = history.frequency_to_seconds[
            self.frequency]  # 每次循环结束之后睡眠的时间, 单位:秒
        self.orderWaitingTime = orderWaitingTime  # 每次等待订单执行的最长时间
        self.dataLogFixedTimeWindow = dataLogFixedTimeWindow  # 每隔固定的时间打印账单信息,单位:秒
        self.coinMarketType = helper.getCoinMarketTypeFromSecurity(
            self.security)
        self.dailyExitTime = dailyExitTime  # 如果设置,则为每天程序的退出时间
        self.TimeFormatForFileName = "%Y%m%d%H%M%S%f"
        self.TimeFormatForLog = "%Y-%m-%d %H:%M:%S.%f"
        self.huobiService = huobiService
        coin_type = helper.coinTypeStructure[
            self.coinMarketType]["huobi"]["coin_type"]
        self.huobi_min_quantity = self.huobiService.getMinimumOrderQty(
            coin_type)
        self.huobi_min_cash_amount = self.huobiService.getMinimumOrderCashAmount(
        )
        self.last_data_log_time = None
        # order query retry maximum times
        self.huobi_order_query_retry_maximum_times = 5

        # setup timeLogger
        self.timeLogger = logging.getLogger('timeLog')
        self.timeLogger.setLevel(logging.DEBUG)
        timeLogHandler = logging.FileHandler(self.getTimeLogFileName())
        timeLogHandler.setLevel(logging.DEBUG)
        consoleLogHandler = logging.StreamHandler()
        consoleLogHandler.setLevel(logging.DEBUG)
        # 定义handler的输出格式
        formatter = logging.Formatter(
            '%(asctime)s - %(levelname)s - %(message)s')
        timeLogHandler.setFormatter(formatter)
        consoleLogHandler.setFormatter(formatter)
        # 给timeLogger添加handler
        self.timeLogger.addHandler(timeLogHandler)
        self.timeLogger.addHandler(consoleLogHandler)

        # setup dataLogger
        self.dataLogger = logging.getLogger('dataLog')
        self.dataLogger.setLevel(logging.DEBUG)
        dataLogHandler = logging.FileHandler(self.getDataLogFileName())
        dataLogHandler.setLevel(logging.DEBUG)
        self.dataLogger.addHandler(dataLogHandler)

        # setup context.log
        self.log = WQLogger(self.timeLogger)

        # setup context.data
        data = Data()
        data.get_price = history.get_price
        data.get_current_price = history.get_current_price
        data.get_all_securities = history.get_all_securities
        self.data = data

        # setup context.order
        order = Order()
        order.buy = self.buy
        order.buy_limit = self.buy_limit
        order.sell = self.sell
        order.sell_limit = self.sell_limit
        self.order = order

        # setup context.account and context.account_initial
        self.account = Account()
        self.account_initial = Account()
        self.updateAccountInfo(initial_setup=True)

        # setup context.time
        self.time = Time(self.startRunningTime)

        # setup handle_data
        self.handle_data = self.strat.handle_data