VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 55
声望: 1

策略on_bar中有:
elif self.pos < 0:
if XXXXX:
self.cover(bar.close_price+5, abs(self.pos), stop=True)
self.write_log(f"cover at price: {bar.close_price} with size {self.pos}")
on_trade中有
self.write_log("on trade")
然而在下单时本应该是close_price+5下出去,却以市价下的单,怎么会出现的呢?
是因为我下单时的价钱低于最新价不能成交了,所以市价单追的?如果是这样,实现在逻辑在哪里啊?

description

Super Moderator
avatar
加入于:
帖子: 561
声望: 44

因为stop=True表示你使用的是本地停止单。
cover停止单只有在价格跌破停止单价格时才会触发并发出委托,所以就是相当于以出发时的市价下单了

Member
avatar
加入于:
帖子: 55
声望: 1

停止单发给交易所,交易所根据当前的价格来决定是否用市价下单?是这样吗?

Member
avatar
加入于:
帖子: 3270
声望: 219

本地停止单是缓存在本地没有发给交易所,可以看下文档https://www.vnpy.com/docs/cn/cta_strategy.html#id19

Member
avatar
加入于:
帖子: 55
声望: 1

这个本地停止单的逻辑就是下的单都会是市价单吗?
那就有点奇怪啊,之前发的停止单好像没有市价单啊,
我接下来再观察一下

Member
avatar
加入于:
帖子: 3270
声望: 219

description

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

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】