VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 6
声望: 0
                    buy_price=price -self.over_pred_price*sign
                    open_id=self.buy(buy_price, self.fixed_size)
                    print(dt.datetime.today)
                    if not (open_id):
                        print("开仓返回值为0")
                    self.open_ids.extend(open_id)

这是部分代码,想请教一下大家。这里的open_id返回值经常为[]是要怎么修改,可能是什么原因?
还有一个问题是,我原来经常用```
self.open_ids.append(open_id[0])

现在list为空用不了了。为什么order返回的是list啊?一个订单可以对应多个交易可以理解,难道一个订单还会对应对个orderid?
恳请大家指教!
Member
avatar
加入于:
帖子: 6134
声望: 381

因为会可能会拆单,比如说你使用了锁仓模式发出平仓委托,可平的昨仓比你此次委托的数量少,那么为了避免平今惩罚,剩下的数量就会以反向开仓的形式发出,那此时不就是有两个委托了。还有比如说SHFE/INE的合约也会进行转换。所以是否转换要看你委托的情况的,想进一步了解可以自己去看一下converter.py的代码

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

xiaohe wrote:

因为会可能会拆单,比如说你使用了锁仓模式发出平仓委托,可平的昨仓比你此次委托的数量少,那么为了避免平今惩罚,剩下的数量就会以反向开仓的形式发出,那此时不就是有两个委托了。还有比如说SHFE/INE的合约也会进行转换。所以是否转换要看你委托的情况的,想进一步了解可以自己去看一下converter.py的代码

谢谢!还有一个问题就是buy/short返回的vt_orderids: List为[],想请教一下这个是什么情况

Member
avatar
加入于:
帖子: 6134
声望: 381

是回测还是实盘呢?如果是回测,可以看一下策略trading状态是否为False