day33 Python与金融量化分析(三)

第三部分 实现简单的量化框架

框架内容:

  • 开始时间、结束时间、现金、持仓数据
  • 获取历史数据
  • 交易函数
  • 计算并绘制收益曲线
  • 回测主体框架
  • 计算各项指标
  • 用户待写代码:初始化、每日处理函数

第四部分 在线平台与量化投资

本节内容:

  • 第一个简单的策略(了解平台)
  • 双均线策略
  • 因子选股策略
  • 多因子选股策略
  • 小市值策略
  • 海龟交易法则
  • 均值回归策略
  • 动量策略
  • 反转策略
  • 羊驼交易法则
  • PEG策略
  • 鳄鱼交易法则

JoinQuant平台

  • 主要框架

    • initialize
    • handle_data
    • ……
  • 获取历史数据
  • 交易函数
  • 回测频率:
    • 按天回测
    • 按分钟回测
  • 风险指标

双均线策略

  • 均线:对于每一个交易日,都可以计算出前N天的移动平均值,然后把这些移动平均值连起来,成为一条线,就叫做N日移动平均线。
  • 移动平均线常用线有5天、10天、30天、60天、120天和240天的指标。 5天和10天的是短线操作的参照指标,称做日均线指标; 30天和60天的是中期均线指标,称做季均线指标; 120天、240天的是长期均线指标,称做年均线指标。
  • 金叉:短期均线上穿长期均线
  • 死叉:短期均线下穿长期均线

因子选股策略

  • 因子:

    • 标准 增长率,市值,ROE,……
  • 选股策略:
    • 选取该因子最大(或最小)的N只股票持仓
  • 多因子选股:如何同时考虑多个因子?

均值回归理论

  • 均值回归:“跌下去的迟早要涨上来”
  • 均值回归的理论基于以下观测:价格的波动一般会以它的均线为中心。也就是说,当标的价格由于波动而偏离移动均线时,它将调整并重新归于均线。
  • 偏离程度:(MA-P)/MA
  • 策略:在每个调仓日进行(每月调一次仓)
    • 计算池内股票的N日移动均线;
    • 计算池内所有股票价格与均线的偏离度;
    • 选取偏离度最高的num_stocks支股票并进行调仓。

布林带策略

  • 布林带/布林线/保利加通道(Bollinger Band):由三条轨道线组成,其中上下两条线分别可以看成是价格的压力线和支撑线,在两条线之间是一条价格平均线。
  • 计算公式:
    • 中间线=20日均线
    • up线=20日均线+N*SD(20日收盘价)
    • down线=20日均线-N*SD(20日收盘价)

PEG策略

  • 彼得·林奇:任何一家公司股票如果定价合理的话,市盈率就会与收益增长率相等。
  • 每股收益(EPS)
  • 股价(P)
  • 市盈率(PE)= P/EPS
  • 收益增长率(G)= (EPSi – EPSi-1)/ EPSi-1
  • PEG = PE / G / 100
  • PEG越低,代表股价被低估的可能性越大,股价会涨的可能性越大。
  • PEG是一个综合指标,既考察价值,又兼顾成长性。PEG估值法适合应用于成长型的公司。
  • 注意:过滤掉市盈率或收益增长率为负的情况

羊驼交易法则

  • 起始时随机买入N只股票,每天卖掉收益率最差的M只,再随机买入剩余股票池的M只。

海龟交易法则

  • 唐奇安通道:

    • 上线=Max(前N个交易日的最高价)
    • 下线=Min(前N个交易日的最低价)
    • 中线=(上线+下线)/2

分钟回测

  • 入市:若当前价格高于过去20日的最高价,则买入一个Unit
  • 加仓:若股价在上一次买入(或加仓)的基础上上涨了0.5N,则加仓一个Unit
  • 止盈:当股价跌破10日内最低价时(10日唐奇安通道下沿),清空头寸
  • 止损:当价格比最后一次买入价格下跌2N时,则卖出全部头寸止损(损失不会超过2%)
时间: 2024-10-05 22:21:54

day33 Python与金融量化分析(三)的相关文章

day32 Python与金融量化分析(二)

第一部分:金融与量化投资 股票: 股票是股份公司发给出资人的一种凭证,股票的持有者就是股份公司的股东. 股票的面值与市值 面值表示票面金额 市值表示市场价值 上市/IPO: 企业通过证券交易所公开向社会增发股票以募集资金 股票的作用: 出资证明.证明股东身份.对公司经营发表意见 公司分红.交易获利 股票的分类 股票按业绩分类: 蓝筹股:资本雄厚.信誉优良的公司的股票 绩优股:业绩优良公司的股票 ST股:特别处理股票,连续两年亏损或每股净资产低于股票面值 股票按上市地区分类: A股:中国大陆上市,

量化资料学习《Python与量化投资从基础到实战》+《量化交易之路用Python做股票量化分析》+《组织与管理研究的实证方法第2版》

我们需要利用Python进行数据分析的指南,有大量的关于数据处理分析的应用,重点学习如何高效地利用Python解决投资策略问题,推荐学习<Python与量化投资从基础到实战>等电子资料. 学习<Python与量化投资从基础到实战>电子书,主要讲解如何利用Python进行量化投资,包括对数据的获取.整理.分析挖掘.信号构建.策略构建.回测.策略分析等.<Python与量化投资>利用Python进行数据分析的指南,有大量的关于数据处理分析的应用,并将重点介绍如何高效地利用P

金融量化分析策略

JoinQuant平台 1 双均线策略: 均线:对于每一个交易日,都可以计算出前N天的移动平均值,然后把这些移动平均值连起来,成为一条线,就叫做N日移动平均线. 移动平均线常用线有5天.10天.30天.60天.120天和240天的指标. 5天和10天的是短线操作的参照指标,称做日均线指标: 30天和60天的是中期均线指标,称做季均线指标: 120天.240天的是长期均线指标,称做年均线指标. 金叉:短期均线上穿长期均线 死叉:短期均线下穿长期均线 2 因子选股策略: 因子:标准 增长率,市值,R

量化分析

学习目标 金融量化简介 数据分析简介 常用库简介 1.学习目标 ? 谈到金融量化分析,可能大多数人想到的肯定就是海量的股票数据,交叉错乱的股票数据图表,让从未接触过金融的人无法入手,就会想这种东西我怎么可能学的会.但是在我们有着扎实的Python编程基础就完全不需要担心这些东西了,我们只需要通过编程的方式编写出对应的策略就能通过计算机帮我们进行自动化交易. ? 从本文的标题当中就可以看到,我们的目标就是金融量化分析,在前面已经简单介绍过金融了,所以说我们就直接来看量化,量化这个词在当前这个时代已

哗啦啦python金融量化之路 - 1 - 简单的数据处理并画图

金融量化的第一步:数据统计和分析. 我选择的教材是:利用python进行数据分析 O‘reilly出版 实用案例 1. 处理来自bit.ly的1.usa.gov数据. 1) 数据: http://www.usa.gov/About/developer-resources/1usagov.shtml 该数据为常见的json格式 2)将json转换成字典 注意事项:我是将该数据以TXT格式保存到本地进行处理的.需要去掉分隔符,同时因为内部有BOM字符,需要去除这些字符.再将这些字典读到列表中. im

为什么我最后选择做量化分析

如题,作为一个自我探索者,我高中参加过noip并获得省级二等奖,大学做微电子,毕业以后做过新闻类的数据挖掘推荐.然后做了一段时间图像处理.本科学得比较好的是信号处理相关,信息论.数字信号处理.信号与系统.图像处理等信息科学. 想做什么? 有一个是想做数据分析,然后是想做金融大数据分析. 一直想往金融方向转,但是由于自己一直浑浑噩噩,目标不明确,荒废了一些时日,打算从现在起重新做人,现在大环境较好,比较适合做这个. 学习过什么? 股票信息主要是信号较多.本科是学信号的,对于各种信号处理技术,离散,

python的计数引用分析(一)

python的垃圾回收采用的是引用计数机制为主和分代回收机制为辅的结合机制,当对象的引用计数变为0时,对象将被销毁,除了解释器默认创建的对象外.(默认对象的引用计数永远不会变成0) 所有的计数引用+1的情况: 一.对象被创建:1.a = 23 这里23这个对象并没有在内存中新建,因为在Python启动解释器的时候会创建一个小整数池,-5~256之间的这些对象会被自动创建加载到内存中等待调用:a = 23是为23这个整数对象增加了一个引用.执行代码: >>> import sys >

python的引用计数分析(二)

python所有对象引用计数被减少1的情况: 一.对象的别名被赋予新的对象; a = 23345455 # 增加了一个引用 b = a # 增加了一个引用 print(sys.getrefcount(a)) b = 1.4 # 减少了一个23345455整数的引用 print(sys.getrefcount(a)) 结果:3:2 二.对象的别名被显式销毁; a = 23345455 # 增加了一个引用 b = a # 增加了一个引用 list = [a, b] # 增加了2个引用 del a p

进击的Python【第六章】:Python的高级应用(三)面向对象编程

Python的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法.对象指的是类的实例. 已经被证实的是,面向对象程序设计推广了程序的灵活性和可维护性,并且在大型项目设计中广为应用. 此外,支持者声称面向对象程序设计要比以往的做法更加便于学习,因为它