Exemplo n.º 1
0
 def OnRtnTrade(self, pTrade):
     """成交通知"""
     redis.publish("Trader:OnRtnTrade",
                   ujson.dumps({"pTrade": struct_to_dict(pTrade)}))
     # super().OnRtnTrade(pTrade)
     TradingAPI.insert_ctp_trade(self.account_name, pTrade)
     self.getPosition()
     self.getAccount()
     self.getInvestor()
Exemplo n.º 2
0
 def OnRspQryInvestor(self, pInvestor, pRspInfo, nRequestID, bIsLast):
     """请求查询投资者响应"""
     data = {
         "pInvestor": struct_to_dict(pInvestor),
         "pRspInfo": struct_to_dict(pRspInfo),
         "nRequestID": nRequestID,
         "bIsLast": bIsLast,
     }
     redis.publish(f"Trader:{self.account_name}:OnRspQryInvestor",
                   ujson.dumps(data))
     super().OnRspQryInvestor(pInvestor, pRspInfo, nRequestID, bIsLast)
Exemplo n.º 3
0
 def OnRspQryTradingAccount(self, pTradingAccount, pRspInfo, nRequestID,
                            bIsLast):
     """请求查询资金账户响应"""
     data = {
         "pTradingAccount": struct_to_dict(pTradingAccount),
         "pRspInfo": struct_to_dict(pRspInfo),
         "nRequestID": nRequestID,
         "bIsLast": bIsLast,
     }
     redis.publish(f"Trader:{self.account_name}:OnRspQryTradingAccount",
                   ujson.dumps(data))
     super().OnRspQryTradingAccount(pTradingAccount, pRspInfo, nRequestID,
                                    bIsLast)
Exemplo n.º 4
0
 def OnRspOrderAction(self, pInputOrderAction, pRspInfo, nRequestID,
                      bIsLast):
     """报单操作请求响应"""
     data = {
         "pInputOrderAction": struct_to_dict(pInputOrderAction),
         "pRspInfo": struct_to_dict(pRspInfo),
         "nRequestID": nRequestID,
         "bIsLast": bIsLast,
     }
     redis.publish(f"Trader:{self.account_name}:OnRspOrderAction",
                   ujson.dumps(data))
     super().OnRspOrderAction(pInputOrderAction, pRspInfo, nRequestID,
                              bIsLast)
Exemplo n.º 5
0
 def dump(self):
     if CLOSE_PERIOD[
             0] <= self.data['timestamp'] % HOUR_UNIT < CLOSE_PERIOD[1]:
         return
     # 把时间戳对齐到整数
     remainder = self.period[0] - (self.data['timestamp'] -
                                   self.period[1]) % self.period[0]
     bar = {
         'pre_settlement_price': self.data['pre_settlement_price'],
         'pre_close_price': self.data['pre_close_price'],
         'pre_open_interest': self.data['pre_open_interest'],
         'open_interest': self.data['open_interest'],
         'open': self.data['open'],
         'close': self.data['close'],
         'high': self.data['high'],
         'low': self.data['low'],
         'volume': self.data['end_volume'] - self.data['start_volume'],
         'timestamp': self.data['timestamp'] + remainder
     }
     redis.publish(f"BAR:{self.name}:{self.instrument}", ujson.dumps(bar))
     logger.info(f"dump {self.name} {self.instrument} @ {bar['timestamp']}")
     self.new()
Exemplo n.º 6
0
 def OnRtnTradingNotice(self, pTradingNoticeInfo):
     """交易通知"""
     redis.publish(f"Trader:{self.account_name}:OnRtnTradingNotice",
                   ujson.dumps(struct_to_dict(pTradingNoticeInfo)))
     super().OnRtnTradingNotice(pTradingNoticeInfo)