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

在回测研究vnpy自带的策略时发现,self.boll_up, self.boll_down = am.boll(self.boll_window, self.boll_dev)这句代码并不能正确输出布林带上下轨的准确数据,由于遇到开仓规则如下的代码,出现每根bar都交易的问题:

## 问题代码
        self.boll_up, self.boll_down = am.boll(self.boll_window, self.boll_dev)   # 生成bolling带上下轨
        boll_width = self.boll_up - self.boll_down                                # 计算bolling带宽度
        if self.pos == 0:
            atr_fix = am.atr(self.atr_window)                     # 计算atr指标
            self.trading_size = int(self.risk_level / atr_fix)    # 根据用风险控制水平除以atr得到开仓量,吗每单固定风险,根据atr调整仓位大小

            self.intra_trade_high = bar.high_price
            self.intra_trade_low = bar.low_price
            self.long_stop = 0
            self.short_stop = 0

            self.buy(self.boll_up, self.trading_size, stop=True)        # 在bolling带上轨开多仓
            self.short(self.boll_down, self.trading_size, stop=True)    # 在bolling带下轨开空仓

发生问题如下:

自带的回测策略出现大幅连续亏损
description
查看成交单,发现每一根bar都有交易,过度交易的手续费和滑点吃掉了本金
description

self.boll_up, self.boll_down = am.boll(self.boll_window, self.boll_dev)
print("up_down:" + str(self.boll_up) + "," + str(self.boll_down)     # 新增调试代码

输出self.boll_up和self.boll_down发现,am.boll()返回的self.boll_up和self.boll_down值是一样的,测试过所有调用am.boll()函数的策略都有这个问题

description

请教大家有没有遇到相同情况的?

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

vnpy版本是官网下载的vnstudio自带的vntrader2.1.7

Member
avatar
加入于:
帖子: 2104
声望: 139

我直接拿的自带的boll_channel策略跑的,打印出来boll_up/boll_down是不一样的,请自行检查一下代码及数据吧
description

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

那就奇怪了,数据用的是rqdata,代码也是vnpy自带的。我再卸载重装一次吧

Administrator
avatar
加入于:
帖子: 4646
声望: 266

2.1.7之前发布时有一个BUG,请在启动VN Station后点击右下角的【升级】按钮,自动升级即可

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

沪公网安备 31011502017034号