VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 6
声望: 1

场景: 在布林线上轨出设置限价单, 订单在上轨成交后,想立刻下反手单,在on_trade中应该用offset还是direction来作为条件?
def on_trade(self, trade: TradeData):
if self.pos > 0:
self.sell(self.boll_up0, self.fixed_size) #设置布林线上轨限价单
if self.pos < 0:
self.cover(self.boll_down0, self.fixed_size) #设置布林线下轨限价单
if self.pos ==0:
if trade.direction==LONG: #此处如何判断限价单平仓时的方向
self.short(self.trade.price, self.fixed_size)
else:
self.buy(self.trade.price, self.fixed_size)

Administrator
avatar
加入于:
帖子: 4579
声望: 331

可以用offset作为过滤判断是否为开仓委托,开仓的话再下止损。但是注意对于锁仓交易模式来说要做另外的调整

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

用Python的交易员 wrote:

可以用offset作为过滤判断是否为开仓委托,开仓的话再下止损。但是注意对于锁仓交易模式来说要做另外的调整

可能提问不是很明确, 我想了解平仓后反手开仓, 如何知道刚刚平仓的是平多仓,还是平空仓。 比如,我买多1手, 遇到布林线上轨,平多仓后,如何从ontrade的成交数据中判断,刚才的平仓是平多头?

Administrator
avatar
加入于:
帖子: 4579
声望: 331

策略代码顶部

from vnpy.trader.constant import Direction

on_trade回调函数下面,写:

if trade.direction == Direction.LONG:
     xxx
else:
     xxx
© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

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