quantlab5.1代码发布,含10+个策略以及期货实盘对接(代码+数据)

包含本周提及的所有策略:海龟,RSRS,动量,布林带,大类资产配置,风险平价等。

另外,backtrader进行了封装,支持参数优化、多策略运行等

图片

还有人留言cue我说——有本事你搞个私募呀。

其实这是我在想的事情,至少具备一个优秀小型私募的职业投资能力。——以出世的心态,做入世的事情。

至于做不做资管,目前想法可能是不,做自营就好了,没有那么多条条框框,也不想向外界证明什么。

面上几乎能找到的开源框架都用过,多数代码都读过,设计的理念,优缺点——自己也从零写过。

私募策略长什么样子,以交易为生的目标应该是什么样的?

多因子策略容量大,策略比较简单,主要就是“找因子”。——对比传统的规则信号,则是构建指标。——比如前面咱们分享的海龟策略。借由唐奇安通道,使用ATR来加仓或止损。

可以看看一个私募策略的样子:

下面这样的回测+实盘曲线看着就比较舒服——年化收益:33.78%,最大回撤:5.04%。 图片

 这是一家规模3亿左右的私募的短周期截面CTA。

交易标的:交易30+活跃品种,持仓周期:1-3天,价量数据为主,盘前数据参考均来自三方,盘中有自研交易体系做交叉验证,剔除噪音。

因子&迭代:90%截面因子+10%时序因子,均为逻辑因子,单因子较复杂,严控入池条件,原先利用子策略波动率平价系统进行净值波动控制,现利用长周期时序信号调整波动率预期,进而进行择时。

策略模型:多因子打分系统,多前50%空后50%,控市值中性。

几个要点:量价数据为主,但截面多因子轮动,多前空后。截面因子就是横向对比。

先控回测,再谈收益。

如何控制回撤,一是分散,二是仓位,三是止损。

多个标的——相关性越低越好,本身组合在一起就会降低波动(相互对冲——从风控的角度,如公募,单股票不得超过10%也是这个目的,担心过于集中的风险暴露)。多标的一定是截面多因子轮动。

如同我们在大类资产配置里使用的那样。年化达21%(K=1),最大回撤35%,K=3时,卡玛比最优,最大回撤20%(年化15.2%)| Quantlab5.0代码发布

咱们的目标是实盘。量化而言,就是把人工盯盘这种低效,无法积累的事情取代掉。

就算你是主观交易高手,需要在交易时间一直盯着盘,就算你可以稳定地赢利,以交易为生——这已经很不容易了。但这仍然是“打了一份工”,你是一个自由职业者罢了,它仍然不是“被动收入”。

如何把你的时间解放出来,做更有意义的事情。

这是量化系统的终极要义。

自动化的事情,部分智能化的事情,交给计算机做。

咱们要基于backtrader搭建实盘通道,我们从期货开始——从基础设施来讲,期货更加成熟,像股票量化接口,你需要与券商去沟通,有些还有资金门槛,另外股票默认不支持日内交易(你自己构建底仓另说),不支持做空——在下行市就没事可做等等。

实盘与回测最大的区别——数据准备方面,实盘的数据是实时进来的,而回测的数据是一次性加载上来的。

在实盘之前,还有一个状态,仿真模拟盘——所有的状态接近实盘,包括数据状态,这是实战中必备的一步。

SimNow是上海期货交易所全资子公司上期技术公司专为投资者打造的期货模拟仿真交易平台,为上海期货交易所投资者教育网认证的期货模拟仿真系统。该产品仿真各交易所的交易及结算规则研发,目前已经支持国内各期货交易所的商品期货业务。

官方网站

在SimNow上注册一个账号,非常简单,然后咱们就可以直接登录了:

图片

backtrader的设计本身就支持实盘。

with open('./params.json', 'r') as f:
    ctp_setting = json.load(f)

cerebro = bt.Cerebro(live=True)

store = CTPStore(ctp_setting, debug=True)
cerebro.addstrategy(SmaCross, store=store)

#由于历史回填数据从akshare拿,最细1分钟bar,所以以下实盘也只接收1分钟bar
#https://www.akshare.xyz/zh_CN/latest/data/futures/futures.html#id106

data0 = store.getdata(dataname='ag2112.SHFE', timeframe=bt.TimeFrame.Minutes, #注意符号必须带交易所代码。
                      num_init_backfill=100 if is_trading_period() else 0)     #初始回填bar数,使用TEST服务器进行模拟实盘时,要设为0

data1 = store.getdata(dataname='rb2201.SHFE', timeframe=bt.TimeFrame.Minutes, #注意符号必须带交易所代码。
                      num_init_backfill=100 if is_trading_period() else 0)     #初始回填bar数,使用TEST服务器进行模拟实盘时,要设为0

cerebro.adddata(data0)
cerebro.adddata(data1)

cerebro.run()

只是我们添加的data,需要按backtrader的datafeed来设计,通过CTP读取实时数据。

backtrader推荐的实盘模式是store,调用自己的datafeed和broker。这部分代码咱们明天展开:

图片

吾日三省吾身

昨天我们分享的RSRS研报,在backtrader里计算了RSRS指标。

RSRS研报复现——年化21.5%,含RSRS标准分,右偏标准分的Backtrader指标计算(代码+数据)

值得注意的是,这两年RSRS指标效果并不好——这份代码,很好的演示了如何自定义,扩展backtrader的指标。

以前,关于过拟合,更多出现在机器学习相关的评价里,技术分析规则策略,我们很少提及。

其实,这里的参数或者值,本身也存在过拟合,或者说就是过拟合。

我们总能找到一些不错的参数,让过去的收益率或者夏普比率“显得”很漂亮,你会“惊讶地”发现,很快就失效了。

从这个意思上来讲,如何努力呢?

其实投资是讲求“模糊的正确”,赢的时候多赢,输的时候少输,你无法预测市场,但可以建立体系。

比如,一个箱子里有70个白球,30个黑球。你每次抓一个球,仍然是“随机”的,但你“赌”结果是白球的胜率肯定高,长期下来,你就能获得超额收益——如果别人以为箱子里白球与黑球数相等。

新手花太多时间,搞新指标,拟合参数,挖掘因子。

其实——稳定赢利的人,并不是“预测”能力有多厉害,没有人可以预测市场。

而是无论是什么情况下,他的系统可以自适应,亏的时候少,可以止损;赢的时候多赢,让利润奔跑。

包含本周提及的所有策略:海龟,RSRS,动量,布林带,大类资产配置,风险平价等。

另外,backtrader进行了封装,支持参数优化、多策略运行等

图片

还有人留言cue我说——有本事你搞个私募呀。

其实这是我在想的事情,至少具备一个优秀小型私募的职业投资能力。——以出世的心态,做入世的事情。

至于做不做资管,目前想法可能是不,做自营就好了,没有那么多条条框框,也不想向外界证明什么。

面上几乎能找到的开源框架都用过,多数代码都读过,设计的理念,优缺点——自己也从零写过。

私募策略长什么样子,以交易为生的目标应该是什么样的?

多因子策略容量大,策略比较简单,主要就是“找因子”。——对比传统的规则信号,则是构建指标。——比如前面咱们分享的海龟策略。借由唐奇安通道,使用ATR来加仓或止损。

可以看看一个私募策略的样子:

下面这样的回测+实盘曲线看着就比较舒服——年化收益:33.78%,最大回撤:5.04%。 图片

 这是一家规模3亿左右的私募的短周期截面CTA。

交易标的:交易30+活跃品种,持仓周期:1-3天,价量数据为主,盘前数据参考均来自三方,盘中有自研交易体系做交叉验证,剔除噪音。

因子&迭代:90%截面因子+10%时序因子,均为逻辑因子,单因子较复杂,严控入池条件,原先利用子策略波动率平价系统进行净值波动控制,现利用长周期时序信号调整波动率预期,进而进行择时。

策略模型:多因子打分系统,多前50%空后50%,控市值中性。

几个要点:量价数据为主,但截面多因子轮动,多前空后。截面因子就是横向对比。

先控回测,再谈收益。

如何控制回撤,一是分散,二是仓位,三是止损。

多个标的——相关性越低越好,本身组合在一起就会降低波动(相互对冲——从风控的角度,如公募,单股票不得超过10%也是这个目的,担心过于集中的风险暴露)。多标的一定是截面多因子轮动。

如同我们在大类资产配置里使用的那样。年化达21%(K=1),最大回撤35%,K=3时,卡玛比最优,最大回撤20%(年化15.2%)| Quantlab5.0代码发布

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103207
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 26 日
下一篇 2024 年 7 月 26 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注