程序员的个人财富课
王喆
璞元科技高级顾问,Roku 推荐系统架构负责人
18908 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 36 讲
程序员的个人财富课
15
15
1.0x
00:00/00:00
登录|注册

26|量化实战:从0到1搭建起一套简单的量化投资系统(上)

你好,我是王喆。
在“投资进阶篇”这个模块里,我们已经学习了价值投资、趋势跟踪等 6 种投资策略。到了最后两讲,就是我们在实战中把这些策略融会贯通的时候了。我会带你应用最近学习的投资策略,搭建起一个简单的量化投资系统。
认真学习了前面课程的同学看到这里,应该会会心一笑:这一讲又到了发挥我们程序员技术优势的时候了。我们会在 19 讲 介绍的量化投资框架基础上,搭建出一个包含了管理模块、策略模块、回测平台、数据中心、业绩分析模块和模拟交易模块在内的一整套量化投资系统。
当然,跟专业的系统比起来,它还稍显稚嫩,但也可以做到“麻雀虽小,五脏俱全”。我们这两节实战课,不是为了构建一个大而全的系统,而是要帮助有志于此的程序员同学迈上更高的台阶。学完这两讲,你可以熟悉量化投资系统的框架,掌握关键模块的基本原理,并以此为出发点,按照你自己的投资思想完善更多的细节。

温故知新:量化投资项目框架图

首先,来和我一起回顾下量化投资系统的框架吧。下面的图 1 是我们在 19 讲 介绍过的典型量化投资系统的框架,它包括 6 个主要的模块。
其中“管理模块”是整个系统的管理者,负责调度所有的模块执行相应的任务;“策略模块”用来实现并执行不同的投资策略;“交易模块”执行具体的交易操作;“回测平台”类似于机器学习中的离线测试平台,用来试验各种新策略;“业绩分析模块”用来评判各个策略的盈亏情况和各个环节的运行情况;“数据中心”用来存储整个系统的所有基础数据。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

如何搭建一个简单的量化投资系统 本文介绍了如何从零开始搭建一个简单的量化投资系统。作者首先回顾了量化投资系统的框架,包括管理模块、策略模块、交易模块、回测平台、业绩分析模块和数据中心。接着,作者展示了一个基于Python的量化投资系统的具体技术框图,并介绍了一个名为“量化一号”的基金的收益率和风险特性。在文章中还介绍了数据中心的数据格式和如何使用Python实现数据接口。作者以二八轮动的可空仓版本为例,详细讲解了策略模块的实现细节。整体而言,本文通过实例和代码演示了如何搭建一个简单的量化投资系统,对于有志于量化投资的读者具有很好的指导意义。 文章还介绍了回测平台的主要逻辑,包括准备数据、调用不同策略函数生成历史仓位记录、确定组合策略的权重占比以及进行业绩分析并显示结果。通过对16年数据的回测,可以看到,“量化一号”实现了18.8%的年化收益率和29.8%的最大回撤,相比中证500、沪深300的原始指数有较大改善。最后,作者总结了今天这一讲的几个要点,包括系统模块、策略实现细节和“量化一号”的表现。下一讲将继续进行量化实战项目的讲解。 通过本文,读者可以了解量化投资系统的框架和实现细节,以及如何利用Python构建简单的量化投资系统。同时,读者还可以通过修改代码验证二八轮动策略在不同参数下的效果,从而加深对量化投资系统的理解。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《程序员的个人财富课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • cymx66688
    for i in range(1, len(target_wgt)): t = target_wgt.index[i] t0 = target_wgt.index[i - 1] if N_day_ret.loc[t0, 'hs300'] >= N_day_ret.loc[t0, 'csi500'] and N_day_ret.loc[t0, 'hs300'] > 0: target_wgt.loc[t, 'hs300'] = 1 elif N_day_ret.loc[t0, 'hs300'] < N_day_ret.loc[t0, 'csi500'] and N_day_ret.loc[t0, 'csi500'] > 0: target_wgt.loc[t, 'csi500'] = 1 ------------------------------ 老师,在可空仓策略模块中,我有一个疑问,就是为什么当天的沪深300和中证500比较时,给予的权重是放在下一个交易日而不是当天呢?当天的涨跌幅也是基于历史的数据来的呀。

    作者回复: 这是为了避免使用到未来信息,因为t日的目标权重需要在t日收盘前计算出来,所以只能用截止前一天t0的信息来判定

    2021-09-18
    5
  • 进化菌
    终于可以实战量化代码了,晚点回去试一下~

    作者回复: 赞行动派

    2021-09-11
    3
  • 布衣小酱
    可空仓版本的二八轮动策略,在 N=10,N=20,N=30 时的年化收益分别为 16.2 18.8 14.9

    作者回复: 非常赞的实验。可以看到30年的年化能达到14.9%是一个非常优秀的指标。

    2021-11-07
    2
  • cymx66688
    王喆老师,Annvol和Calmar是什么指标呀?

    作者回复: Annvol是年化波动率 Calmar是一种高阶指标,叫卡玛比率,值越高说明表现越好,感兴趣的话可以搜索一下具体的定义方式。

    2021-11-02
    2
  • cymx66688
    王喆老师,股票或基金的详情数据我们可以从哪里获取呢

    作者回复: 请参考其他回答,目前没有免费的公开数据集,还是借助于一些量化投资平台会更容易落地。

    2021-09-16
    2
  • 茂松
    N=18,even better: 年化收益=19.1%,最大回撤=24.6%
    2024-03-09归属地:广东
  • Chengfei.Xu
    思考: 1、回测是首选的能够直观看到量化系统威力的方式,但历史往往不代表着未来,如何利用策略来预期、捕捉未来的超额收益真是一件美妙的事情,交易能极大给我们带来愉悦; 2、鸡蛋不要放在一个篮子里,组合投资能够很好的分散风险、平滑收益曲线,而且顶层再追加量化系统以执行交易,能很大程度上解决人力,人是有可能犯错的,但机器只要你给正确的代码就基本不会。
    2023-12-15归属地:浙江
  • Betterme
    代码在那个仓库
    2022-04-18
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部