Example #1
0
    def write(self, obj):
        filename = ''
        if isinstance(obj,TickData):
            filename = '{}_{}.tick'.format(obj.code,current_date_string())
        if isinstance(obj,BarData):
            filename = '{}_{}_{}.bar'.format(obj.code,current_date_string(),obj.cycle)

        filepath = os.path.join(self.path,filename)
        text = obj.json()
        fp =  open(filepath,'a+')
        fp.write(text+'\n')
        fp.close()
Example #2
0
    def siglog_print(self,*args,**kwargs):
        message =''
        for s in args:
            message += '{} '.format(s)
        if kwargs:
            message += ' '
        for k,v in kwargs.items():
            message+= "{}={} ,".format(k ,v)

        print message

        if not self.sig_log:
            curdate = current_date_string()
            name = os.path.join(PWD, 'sig-{}-{}.txt'.format(self.id, curdate))
            self.sig_log = open(name, 'w')

        self.sig_log.write(message)
        self.sig_log.write('\n')
        self.sig_log.flush()


        self.pub_log_trade.publish_or_produce(message)

        self.log_print(title='Signal',message = message)
        if not self.order_enable:
            return
def main():
    strategy_id  ='AJ_Test1'
    # 初始化系统参数控制器
    paramctrl = stbase.MongoParamController()
    paramctrl.open(host='192.168.1.252')
    # 策略控制器
    stbase.controller.init('z:/ams/tdx')
    # 添加运行日志处理
    stbase.controller.getLogger().addAppender(stbase.FileLogAppender('TDX'))
    stbase.controller.setParamController(paramctrl)

    param = paramctrl.get(strategy_id)                  # 读取指定策略id的参数
    conn_url = paramctrl.get_conn_url(param.conn_url)   # 读取策略相关的交易账户信息

    # 初始化行情对象
    market = TDX_StockMarket().init(**conn_url.dict())
    # 添加行情记录器
    market.setupRecorder( strecoder.MarketMongoDBRecorder(db_prefix='TDX_'+current_date_string(), host='192.168.1.252'))  # 安裝行情記錄器
    # 装备行情对象到股票产品
    stbase.stocks.setupMarket(market)
    # 初始化交易对象
    trader = TDX_StockTrader().init(**conn_url.dict())
    stbase.stocks.setupTrader(trader)

    # 初始化策略对象
    strategy = MyStrategy(strategy_id,stbase.stocks).init()
    #设置策略日志对象
    strategy.getLogger().addAppender(strecoder.StragetyLoggerMongoDBAppender(db_prefix='{}_'.format(strategy_id)+current_date_string()+"_",host='192.168.1.252'))
    # 添加策略到 控制器
    stbase.controller.addStrategy(strategy)
    # 控制器运行
    stbase.controller.run()
Example #4
0
def main():
    onInit()

    from mantis.sg.fisher.stutils import get_trade_database_name
    # 初始化系统参数控制器
    paramctrl = stbase.MongoParamController()
    paramctrl.open(host=mongodb_host, dbname=get_trade_database_name())
    # 策略控制器
    stbase.controller.init('./tdx')
    # 添加运行日志处理
    stbase.controller.getLogger().addAppender(stbase.FileLogAppender('TDX'))
    stbase.controller.setParamController(paramctrl)

    param = paramctrl.get(strategy_id)  # 读取指定策略id的参数
    conn_url = paramctrl.get_conn_url(param.conn_url)  # 读取策略相关的交易账户信息

    # 初始化行情对象
    market = TDX_StockMarket().init(**conn_url.dict())
    # 添加行情记录器
    market.setupRecorder(
        strecoder.MarketMongoDBRecorder(db_prefix='TDX_' +
                                        current_date_string(),
                                        host=mongodb_host))  # 安裝行情記錄器
    # 装备行情对象到股票产品
    stbase.stocks.setupMarket(market)
    # 初始化交易对象
    # trader = TDX_StockTrader().init(**conn_url.dict())
    # stbase.stocks.setupTrader(trader)

    # 初始化策略对象
    strategy = StrategyMarketRecorder(strategy_id, stbase.stocks).init()
    #设置策略日志对象
    # strategy.getLogger().addAppender(strecoder.StragetyLoggerMongoDBAppender(db_prefix='{}_'.format(strategy_id)+current_date_string()+"_",host=mongodb_host))
    # 添加策略到 控制器
    stbase.controller.addStrategy(strategy)
    # 控制器运行
    stbase.controller.run()