12年年化收益14.5%的大小盘轮动,投资应该可以很简单的(代码+数据下载)

今天来一个比昨天还简单的策略,创业板ETF动量择时:年化21%,最大回撤18%。

图片

图片

创业板择时策略代码如下:

def gen_cy_picktime():
    proj = ProjConfig()
    proj.name = '创业板动量择时'
    proj.commission = 0.0001
    proj.slippage = 0.0001
    proj.symbols = ['159915.SZ']  # 证券池列表
    proj.benchmark = '159915.SZ'
    proj.start_date = '20100101'
    proj.data_folder = 'etfs'  # 这里指定data/数据目录

    fields = ['roc(close,20)']
    names = ['roc_20']
    proj.fields = fields
    proj.names = names

    # 这里是策略算子列表
    proj.algos.append(
        AlgoConfig(name=SelectBySignal().name, kwargs={'rules_buy': ['roc_20>0.08'], 'rules_sell': ['roc_20<-0.0']})

    )
    #proj.algos.append(
    #    AlgoConfig(name=SelectTopK().name, kwargs={'factor_name': 'roc_20'})
    #)
    proj.algos.append(AlgoConfig(name=WeightEqually().name))
    proj.algos.append(AlgoConfig(name=Rebalance().name))

    return proj

昨天的策略,再优化一下,年化20.3%,就两个标的:沪深300ETF和创业板ETF两个宽基ETF。

图片

大家选择“大小盘轮动”策略即可:

图片

代码在个位置:

图片

之前的文章提及的DeepAlphaGen:

DeepAlphaGen:强化学习的因子组合挖掘:框架代码+数据下载

代码在如下目录:

图片

代码已经同步至星球:

【优惠券】知识星球与开源项目:万物之中,希望至美

图片

吾日三省吾身

“凡事发生必有利于我”。

上周开始,眼晴不舒服,初步判断是干眼症。

想来,沉浸式写代码,做研究,用眼过度。

停下来,思考方向,人的精力真的很有限,专注做好能力圈的一点事情就好。

做有积累的事情,尽量自动化。一次时间投入,多次复用的事情。

如无必要,勿增实体。

投资应该是轻松,愉悦,甚至是略显无聊的事情,它不需要你特别努力,也不是你努力就有用的。关键是你要做对的事情,方向对就好。

后续的重心: 

Dagster盘后更新数据,在线的, SAAS化的回测系统,不排除可转接对实盘。数据上会专注把ETF先搞扎实,当然技术栈,框架,因子挖掘,我相信都是通用的,大家愿意用在股票上,期货上,甚至加密货币上,都是可以的。

后端的框架应该还是Django,如果需要前后端分离,会使用django-ninja 一个类似fastapi的框架。前端暂时不想引入nodejs,太麻烦,还是喜欢bootstrap(jquery)的老方式。

我们那个年代的程序员,对于SEO是有执念的,也不知道有没有用。

SAAS版本AI量化回测系统,最大的挑战在于,任务可能需要异步运行,当然django也有celery这样的框架。

后面咱们社群的规则:

1、每周打包更新系统源代码及数据1次(暂定每周五)

2、加一条主线:给星友们提供线上化的回测系统,避免新同学安装,使用的成本。(代码仍然会提供下载)。

3、官方提供成熟可实盘策略供订阅

从很多量化书上最简单,但最实用的——大小盘轮动策略:

def gen_rollong():
proj = ProjConfig()
proj.name = '大小盘轮动策略'
proj.commission = 0.0001
proj.slippage = 0.0001
proj.symbols = ['159915.SZ', '510300.SH'] # 证券池列表
proj.benchmark = '000300.SH'
proj.start_date = '20120528'
proj.data_folder = 'etfs' # 这里指定data/数据目录

fields = ['roc(close,20)']

names = ['roc_20']
proj.fields = fields
proj.names = names

# 这里是策略算子列表 proj.algos.append( AlgoConfig(name=SelectBySignal().name, kwargs={'rules_buy': ['roc_20>0.02'], 'rules_sell': ['roc_20<-0.02']}) ) proj.algos.append( AlgoConfig(name=SelectTopK().name, kwargs={'factor_name': 'roc_20'}) ) proj.algos.append(AlgoConfig(name=WeightEqually().name)) proj.algos.append(AlgoConfig(name=Rebalance().name))

return proj

图片

12年年化20.3%,某ETF软件上,这个策略是20%+,这个大家可以仔细检查一下。

后面我会把类似这样的策略SAAS化,同步每边自动更新数据,盘后自动更新策略。

吾日三省吾身

这个系列源于”N阶行动计划“,就是1件事情,先干它1000天再说。

不知不觉,日更了365天,一个真正意义上的完整年份,挺有成就感的

收获了600+位星友的支持。

大家的提问,参与,提供了动力,坚持的意义。

当然,有时候也会焦虑,大家的基础不一样,比如python如何安装,环境都是问题,尽管我们一直在努力营造星球的学习氛围。但肯定还有很大的提升空间。

另外一个更关键的是:如何提供价值。

用户的认可,来自价值创造,解决问题。

几次例会,从公募,到私募,到分钟级,到高频,到订单簿… 从深度学习到强化学习,GPU,超级计算。。。

但突然想到,曲高而和寡。C++的人少,python次之,excel更多,更多人就是理财诉求。

或者说,傻瓜式的操作,或者直接给策略。大家当然对策略感兴趣。尤其是收益高,夏普比还高的策略。

提供工具类的,我在想,就算是傻瓜向导式,用户就能用得起来么?看着热闹罢了。——当然也是一种模式。策略不在于多而在于有效,而且会自动进化。

用户需要安装python环境或者软件都是门槛,完全可以SAAS化。

我们的初心是什么?——投资是件必须做,但应该是轻松、美好的事情。

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

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

相关推荐

发表回复

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