kungfu icon indicating copy to clipboard operation
kungfu copied to clipboard

Future Commission Fee

Open dingo9 opened this issue 3 years ago • 0 comments

In core/python/kungfu/wingchun/book/position.py

def _apply_close(self, trade):
        if self.volume < trade.volume:
            raise Exception("{} over close position, current volume is {}, {} to close".format(self.uname, self.volume, trade.volume))
        if trade.offset == Offset.CloseToday and self.volume - self.yesterday_volume < trade.volume:
            raise Exception("{} over close today position, current volume is {}, {} to close".format(self.uname, self.volume - self.yesterday_volume, trade.volume))
        margin = self.contract_multiplier * trade.price * trade.volume * self.margin_ratio
        self.margin -= margin
        self.book.avail += margin
        self.volume -= trade.volume
        if self.yesterday_volume > 0 and trade.offset != Offset.CloseToday:
            self.yesterday_volume = 0 if self.yesterday_volume <= trade.volume else \
                self.yesterday_volume - trade.volume
        realized_pnl = (trade.price - self.avg_open_price) * trade.volume * \
                       self.contract_multiplier * (1 if self.direction == Direction.Long else -1)
        self.realized_pnl += realized_pnl
        self.book.realized_pnl += realized_pnl

对于中国期货市场,平今仓的时候应该返还开仓保证金,在Rolling Day的时候应该按照逐日盯市的方式重新计算保证金,平昨仓按照新的保证金返还。

dingo9 avatar Apr 23 '21 04:04 dingo9