vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 4
声望: 0

`class SpreadData:

def calculate_price(self):
    """"""
    self.clear_price()

    # Go through all legs to calculate price
    for n, leg in enumerate(self.legs.values()):   
        # Filter not all leg price data has been received
        if not leg.bid_volume or not leg.ask_volume:  
            self.clear_price()
            return

        # Calculate price
        price_multiplier = self.price_multipliers[leg.vt_symbol]   
        if price_multiplier > 0:
            self.bid_price += leg.bid_price * price_multiplier      
            self.ask_price += leg.ask_price * price_multiplier
        else:
            self.bid_price += leg.ask_price * price_multiplier        
            self.ask_price += leg.bid_price * price_multiplier`

这个是价差交易里面计算价格的函数
self.bid_price += leg.bid_price price_multiplier 这一行一直没有弄明白,为什么价差的买价只用单条腿的买价价格乘数计算?
而不是用主动腿(leg1)和被动腿(leg2)的差值计算?self.bid_price += leg1.bid_price price_multiplier - leg2.ask_price price_multiplier?
请教各位。

Administrator
avatar
加入于:
帖子: 4138
声望: 230

这是在一个循环里做累加,如果采用leg1/2写死的方式,就没法支持更多腿的情况了。

Member
avatar
加入于:
帖子: 4
声望: 0

用Python的交易员 wrote:

这是在一个循环里做累加,如果采用leg1/2写死的方式,就没法支持更多腿的情况了。

已解决,谢谢

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3