agent.py 文件源码

python
阅读 31 收藏 0 点赞 0 评论 0

项目:pyktrader2 作者: harveywwu 项目源码 文件源码
def update_instrument(self, tick):      
        inst = tick.instID    
        curr_tick = tick.tick_id
        if (self.instruments[inst].exchange == 'CZCE') and (self.instruments[inst].last_update == tick.tick_id) and \
                ((self.instruments[inst].volume < tick.volume) or (self.instruments[inst].ask_vol1 != tick.askVol1) or \
                    (self.instruments[inst].bid_vol1 != tick.bidVol1)):
                if tick.tick_id % 10 < 5:
                    tick.tick_id += 5
                    tick.timestamp = tick.timestamp + datetime.timedelta(milliseconds=500)
        self.tick_id = max(curr_tick, self.tick_id)
        self.instruments[inst].up_limit   = tick.upLimit
        self.instruments[inst].down_limit = tick.downLimit        
        tick.askPrice1 = min(tick.askPrice1, tick.upLimit)
        tick.bidPrice1 = max(tick.bidPrice1, tick.downLimit)
        self.instruments[inst].last_update = curr_tick
        self.instruments[inst].bid_price1 = tick.bidPrice1
        self.instruments[inst].ask_price1 = tick.askPrice1
        self.instruments[inst].mid_price = (tick.askPrice1 + tick.bidPrice1)/2.0
        if (self.instruments[inst].mid_price > tick.upLimit) or (self.instruments[inst].mid_price < tick.downLimit):
            return False
        self.instruments[inst].bid_vol1   = tick.bidVol1
        self.instruments[inst].ask_vol1   = tick.askVol1
        self.instruments[inst].open_interest = tick.openInterest
        last_volume = self.instruments[inst].volume       
        if tick.volume > last_volume:
            self.instruments[inst].price  = tick.price
            self.instruments[inst].volume = tick.volume
            self.instruments[inst].last_traded = curr_tick
        if inst in self.inst2spread:
            for spd_key in self.inst2spread[inst]:
                self.spread_data[spd_key].update()
        return True
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号