Python大数据与量化交易笔记

第一课

金融基础知识培训

金融,是指货币资金的融通

金融机构:

  • 中央银行
  • 银行
  • 非营利机构
  • 在境外开办的外资、侨资、中外合资的金融机构

金融市场:

  • 货币市场

    • 国债
  • 资本市场

    • 期限在一年以上的金融资产交易的市场
      • 银行中长期存贷款市场
  • 外汇市场

    • 经营外币和以外币计价的票据等有价证券买卖的市场
  • 黄金市场

    • 黄金买卖的交易中心或场所
  • 金融衍生工具市场

    • 远期市场
    • 期货市场
    • 期权市场
    • 互换市场

货币基础知识

  • 货币的功能

    1. 流通手段
    2. 价值尺度
    3. 贮藏手段
    4. 延期支付的标准
  • 货币的层次

    • M0 = 流通中的现金
    • M1 = M0 + 活期存款
    • M2 = M1 + 定期存款
    • M3 = M2 + 其他

信用

经济活动中的债权债务关系。

  • 信用分为五种形式:
    • 商业信用
    • 银行信用
    • 国家信用
    • 消费信用
    • 国际信用

金融市场

  • 金融市场的功能
    • 便利筹资和投资
    • 方便资金灵活转换
    • 引导资金流动和集中
    • 有利于中央银行进行调控

第二课 量化投资的发展和理工生跨界做量化的开启姿势

课程介绍

系统地做量化从系统地学习开始

  • 标准程序员
    • 去金融机构写代码
      • 重点学习量化系统架构和模块的搭建方法
      • 理解业务本质
    • 自己做宽客
      • 恶补实战课
      • 认真学逻辑
      • 忘掉代码
  • 有实盘经验
    • 策略逻辑
      • 用量化的手段检验逻辑靠不靠谱
    • 策略实现
      • Coding只是为了一个趁手的工具
    • 策略实战
      • 不停诊断、优化测试

学什么?学会什么?

  • 量化投资的发展和理工生跨界做量化的开启姿势
  • 上手搭建最简单的交易系统
  • 丰富你的信号系统
  • 仓位管理和风控管理功能实现
  • 怎么评价和诊断交易策略
  • 进入专业量化赛道的必修课

量化投资的发展

代表人物

  • 起源:Jules Regnault
  • 基石:Edward O.Thorp
  • 优势:James Simons

量化交易在中国的发展

算法交易:如何进行购买,一次买多少,买多少次?

金融工程模型分类

  1. 期货、债券
    1. CTA趋势
    2. Mean Reversion
    3. 统计套利
    4. 事件驱动
    5. 日内波动
  2. 股票、ETF
    1. Alpha
    2. 股票对冲
    3. 期现套利
  3. 期权策略
    1. 市场中性 Delta neutral
    2. I.V. strategy
    3. 3V maxtrix
    4. +Gramma +Theta

K线

高开低收

量化投资与主观投资的关系

交易观点

  • 理论驱动:通过分析经验、理论进行指定交易策略
  • 数据驱动:大数据统计得出算法结论

五大门派

  • 价值型:评估价值
  • 成长型:评估前景
  • 技术型:技术走向
  • 组合型:收益与风向评估
  • 指数型:买指数

EMH的三种形式

  1. 弱式有效市场假说
    • 市场价格已充分反应出所有历史的证券价格信息,这时的技术分析失去作用,基本分析还可以。
  2. 半强式有效市场假说
    • 价格已充分反映出所有已公开的有关公司运营前景的信息。
    • 基本分析失去作用,只有内部消息才起作用
  3. 强式有效市场假说
    • 价格已经反映了公司运营的所有情况
    • 大白于天下了,没办法获利了。

理查德·塞勒的理论

  • 禀赋效应:人们在决策过程中对利和害的权衡是不均衡的,对“避害”的考虑远大于对“趋利”的考虑
  • 跨期选择:人类恰恰是不擅长做跨期决策的,大多数时候会做出短视冲动的选择。
  • 心理账户&储蓄理论:人们在思考问题时,会在心li构建出分门别类的心理账户,分别进行计算。

赚谁的钱?赚什么钱?

  1. 市场在某一特定时间内的无效性,或者说是别人犯的错误
  2. 主动承担某种特定风险,继而获得承担该风险的风险溢价

认识一个量化交易策略

双均线策略

  • 代码至少有两个严重问题
  • 策略逻辑上的漏洞更多
  • 直接上实盘会死得很难看

普量云上的模型

理工生做量化有什么优势

对公式比较敏感吧

量化交易系统的基本架构

一个完整的交易系统

  • 市场——买卖什么
  • 逻辑——买卖思路
  • 头寸规模——买卖多少
  • 入市——何时买进
  • 止损——何时推出亏损的头寸
  • 离市——何时退出盈利的头寸

必要的基础知识

第三课 上手搭建最简单的量化交易系统

量化交易系统的处理流程

  1. 数据处理
    • 从TuShare获取行情数据
    • 从东财网页获取财报数据
    • 处理数据存在的问题
  2. 策略开发
    • 计算PE
    • 实现股票池选股逻辑
    • 实现股票池的收益统计
  3. 离线回测
    • 持仓的除权除股息处理
    • 卖出和买入交易实现
    • 收盘后交易信号判断
    • 收益统计
  4. 模拟跟踪
  5. 实盘交易
  6. 执行监控

低估值的股票池择时策略

  • 股票池
    • 0< PE < 30
    • PE从小到大排序,提出停牌,取前100只
    • 调整周期:7个交易日
  • 择时
    • 买入:当日K线上穿10日均线
    • 卖出:
      • 当天K线下穿10日均线
      • 被调出股票池

开发环境准备

  • MongoDB
  • Python3.7.0
  • PyCharm CE

获取行情和财报数据:API和爬虫

用分时图做数据是有问题的

量化基本功

  • 从数据源获取数据
  • 发现并处理数据中存在的问题
  • 通过基础数据计算出策略所需数据
  • 了解数据不同数据源的差异

不同的交易软件处理后的分钟数据不完全一致

明确一个行情数据接收和处理的概念,为今后搭建量化系统和进行策略开发打下基础。

任务

  • 从Tushare获取历史行情
    • 后复权(daily_hfq)
    • 不复权(daily)
  • 从东方财富抓取财务报表数据
  • code:股票代码
  • date:日期
  • index:是否为指数
  • open:开盘价
  • close:收盘价
  • high:最高价
  • low:最低价
  • volume:成交量
1
2
3
4
5
# database.py
from pymongo import MongoClient

#指定数据库的连接,quant_01是数据库名
DB_CONN = MongoClient('mongodb://127.0.0.1:27017')['quant_01']

补充停牌的日K数据

  • 问题
    • 从Tushare获取的数据,停牌日没有数据
  • 影响
    • 回测时,不能直接参与账户的净值计算,导致账户的净值以及收益计算不准确
  • 解决方法
    • 增加is_trading字段,区分停牌日和交易日
    • 补充停牌日的日K数据,根据当前数据现状,填充的数据位:open、close、high、low为停牌前最后一个交易日的close,volume为0,is_trading为false

数据定时增量入库

实现一个低PE的股票池

开发一组交易信号

实现策略回测

第四课 丰富你的信号系统

实现MACD、Boll、RSI和分型等技术信号的计算,并能够在回测流程中使用这些信号完成择时。

  • 技术指标

    • 均线型
    • 趋势型
    • 摆动型
    • 能量型
  • 趋势即牛熊

  • 三个关系

    • 供需关系
    • 因果关系
    • 努力与结果
  • 趋势线

  • 支撑

    • 在某个价位购买力超过了销售压力,需求吸收了全部供应
    • 当价格再次回到支撑位,反弹力度表明需求质量
  • 压力

    • 某个价位销售力量超过了购买力,供应超过了需求
    • 当价格再次回到压力值,价格回落力度表明供应是否扩大
  • MACD

    • 金叉和死叉
    • 价格变化的速度
    • (DIF-DEA)[可以X2增大程度以便观察]
  • RSI

    • 超买和超卖
  • Boll

    • 突破上轨和突破下轨
  • 分型

    • 顶分型和底分型
  • 功能实现

    • 信号计算
      • 实现信号算法
      • 检测历史信号
      • 保存到数据库
    • 信号使用
      • 提供查询接口
  • MACD算法

  • RSI-相对强弱指数

    • 一定时间窗口内,上涨幅度之和占整体涨跌幅度绝对值之和的比例
    • 买入愿意相对总体成交的强弱
    • 超卖区:RSI<20
    • 超买去:RSI>80
    • 强弱信号
      • 超买:RSI上穿80
      • 超卖:RSI下穿20
    • 计算公式
      • change = close - prev_close
      • up_change = max(change,0)
      • RSI = mean(up_change,N)*100 / mean(abs(change),N)
  • Boll

    • 基于统计学的标准差原理
    • 三条轨道
      • 上轨:压力线
      • 中轨:价格均线
      • 下轨:支撑线
  • 分型信号

    • 顶分型
    • 底分型

第五课 仓位管理和风险控制功能实现

止盈和止损的功能实现

  • 风险参考指标-波动率

    • 标准差
    • 平均真实波幅ATR
      • ATR:近N天真实波幅TR的算数平均值
      • TR:以下指标中的最大值
        • 今日最高价减去今日最低价
        • 今日最高价减去昨日收盘价的绝对值
        • 今日最低价减去昨日收盘价的绝对值
  • 目标盈利法和最大亏损法

  • 回撤止盈(浮动/跟踪止盈)

  • 技术信号止盈/止损

仓位管理工程实现

  • 交易系统中与盈利相关的要素

    • 策略的胜率
    • 每次交易的盈亏比
    • 头寸规模的确定
    • 资金量的大小
    • 交易机会的多少
    • 交易成本
  • 凯利公式

  • 仓位管理

    • 投入资金/总资金
    • 不同阶段:建仓、加仓/减仓、清仓
    • 资金分配:头寸规模的确定和分配
  • 确定头寸规模的四种模式

    • 每一固定交易金额交易一个单位
    • 等价值交易单位
    • 百分比风险模型
    • 百分比波动幅度模型
  • 常见的加仓方法

    • 均匀加仓
    • 金字塔式
    • 倒金字塔式
  • 仓位分配的其他考虑

    • 复利/不复利方式
    • 资金占比上限
    • 单日分配资金上限
    • 同时持仓股(数量)上限
    • 单只股票仓位上限
    • …..
  • 工程化实现的考虑

    • 可用资金不足时的处理
      • 限制新的购买,忽略该信号
      • 在增加新股票之前,消除业绩最差的头寸
      • 为继续购买新的,将头寸规模确定得小一些
    • 入选组合的优先级
      • 根据某种指标排序
      • 根据历史表现筛选

编写一个完整的交易策略

  1. 基准策略和测试环境
    • 股票池候选:上证50成分股,不调仓
    • 双均线策略
      • 日K级别,MA10 vs MA30
      • 开盘前检测信号,金叉买、死叉卖
    • 头寸规模确定
      • 均仓方案(等额资金分配)
    • 测试环境
  2. 按盈利比例均匀加仓
    • 记录每只持仓最后一次的买入价
    • 如以当日开盘价相对于前一次买入价的盈利比例超过某个阈值,则等额加一次仓
      • 前提是当日没有任何止损或其它买入信号发生。
  3. 按波动率分配资金
    • 计算一段时间内的ATR作为波动率值
    • 每只股票允许承担一定百分比的风险,折算到具体的风险金额
    • 以该风险金额和波动率的值来确定建仓个股的资金头寸
      • 波动率越大,分配的头寸越小
      • 波动率越小,分配的头寸越大
    • 基于基准策略进行改进实验

总结

  • 风险控制方法
  • 仓位管理方法
  • 编写一个完整的交易策略
    • 完整交易系统的要素
    • 仓位管理和止盈/止损的编写示例
    • 渐进式的改进过程

第六课 怎么评价和诊断交易策略

几种常用评价指标的工程实现

  • 四个维度

    • 收益
    • 风险
    • 胜率
    • 稳定性
  • 年化收益

    • 年化收益率是指把一段时间内的收益率换算成年收益率
    • 单利/复利年化收益
  • 策略的评价指标-夏普比率

  • 最大回撤

    • 在选定周期内任一历史时点往后推,策略的净值走到最低点时的收益率回撤幅度的最大值
    • 用来描述策略可能出现的最糟糕情况,衡量了最极端可能的亏损。
  • 信息率

    • 信息率用来衡量承担主动风险所带来的超额收益,表示单位主动风险所带来的超额收益
    • 在承担适度风险的情况下,尽量追求高信息率

什么样的策略是好策略

不以目标需求为依据的策略性能评估都是耍流氓

  • 如何评价

    • 夏普比率
      • 风险与收益的权衡
      • 索提诺比率
    • 最大回撤
      • 最坏的情况
    • 年化收益
      • 按复利计算
    • 心理因子
      • 舒适度
    • 信息率
      • 投资经理的能力
  • 翻盘念书 = 最大回撤/年化收益

  • 稳健型

    • 正收益
    • 回撤小
  • 进取型

    • 收益风险平衡
    • 风险至上
  • 激进型

    • 在可承受的风险范围内追求收益最大化
    • 极端行情配套的风控和严格的压力测试

从哪些方面去改进策略

总结

  • 年化收益、夏普比率、最大回撤、信息率的实现
  • 评价策略性能要从投资目标出发
  • 策略的改进要从逻辑下手

第七课 进入专业量化赛道的必修课

最根本的数据处理:Level1 Ticks

  • 排查错误的需要
    • 在不同交易软件处理后的分钟数据不完全一致
      • 切分点不懂(OHLC值的差异)
      • 左右边界(时间戳)靠拢方式不同
    • 附加信息的处理
      • 交易状态
      • 涨跌停价的处理
      • 资金流向(超大中小单)统计
      • 换手率、量比、成交量/额等的积累
Tick级别 Level 1 Level 2
行情数据类别 快照行情 逐笔行情
推送频度 固定间隔(~3秒) 委托队列和逐笔成交明细
盘口报价显示 五档行情 十档行情(深交所千档)
使用方式 免费(客户端) 付费使用
  • 交易状态的处理
    • 记录交易状态(正常交易或停/复牌)的重要性
      • 回测错误和无效交易指令
      • 技术指标计算误差
    • 交易状态的获取
      • 第三方的量化API(通常已有)
      • 交易所行情接收
      • 盘前/盘中信息库
      • Tick消息字段
      • 紧急公告消息(临时停牌)

深入探讨两个实战量化策略

Hans123

  • Hans123策略即增强

    • 日内交易策略,趋势突破系统
    • 在开盘30(或N)分钟后准备入场
    • 上轨 = 开盘后30分钟内的高点
    • 下轨 = 开盘后30分钟内的低点
    • 当价格突破上轨,买入开仓
    • 当价格跌穿下轨,卖出开仓
    • 突破时如已有持仓,则先止损再反手
    • 如有持仓,在收盘前无条件平仓
  • 遇到极端情况

    • Hans窗口内的振幅限制
    • 日内止盈/止损(小周期K线)
    • 大周期涨跌空间及后市判断
    • 每交易日的开平仓次数限制
  • 如何适用于股票自动交易?

    • T+1制度的限制
    • 指数/板块到个股
    • 从日内到日间
    • 止盈/止损措施

量化策略的完整研发和系统搭建

如何优化你的量化策略:再谈人工智能

预告:你未来必踩的坑-怎么上实盘?

第八课 实战型量化投资必备知识

量化投资策略类型及模型原理

  • 常见品种

    • 股票
    • ETF
    • 商品期货
    • 股指期货
    • 期权
    • 债券
    • 外汇
  • 股票

    • 公司基本资料
    • 财务数据和分析
    • 新闻公告及重大事项
    • 行业分析
    • 技术分析
  • ETF

    • 交易型开放式指数基金

趋势型策略模型原理

  • 供需关系

    • 趋势的动力来自于供需关系的不平衡
  • 因果关系

    • 趋势形成之前需要准备过程
  • 势力与结果

    • 成交量的增长没有使价格大幅增长,这是走势停止行为。
  • 要点总结

    • 头寸和退出
      • 可以小亏,必须大赚
    • 风险
      • 截断亏损,让利润奔跑
    • 分散化
      • 永远不要把鸡蛋放一个篮子

配对交易策略原理

  • 套利交易-策略

    • 无风险套利
    • 配对交易
    • 统计套利
  • 对冲/套期保值-手段

    • 反向交易,规避单边持仓风险
    • 期现、跨期、跨品种、跨市场
  • 市场中性(消除beta) vs Alpha(绝对收益)

  • 波动率套利

    • 利用转债中的期权,对冲个股风险。当转债所包含的期权相对其标的股票低估时,通常其隐含波动率处于历史低位,此时买入转债同时做空一定数量的股票(根据模型计算获得)
    • 在随后的交易日中,通过调整做空比例来达到市场中性,并赚取转债固定利息和期权固执上升所带来的低风险收益,其风险远小于单买股票或债券。
  • 期权套利

    • 期权套利是由期权合约或合约之间定价偏差所带来的套利机会。
    • 期权套利策略灵活多样,包括买卖期权平价关系套利策略、价差期权组合套利策略、期权凸性套利策略、期权箱体套利策略等等。
  • ETF套利

    • ETF套利策略同样分为折价套利和溢价套利
    • 折价套利是当ETF价值小于对应的一篮子股票市值,则买日ETF后,赎回一篮子股票,再在股票市场卖出进行套利。
    • 溢价套利是当ETF价值大于对应的一篮子股票市值,则从股票市场购入一篮子股票,申购ETF份额,然后从二级市场卖出ETF份额进行套利。
  • 跨期套利

量化策略研发流程与基本技能

常用的量化平台概述及如何选择

  • 第三方量化平台分类和举例
    • 本地(图标/后台交易)
      • 金字塔、MC、TB、WH、TS、MT4
    • 云端(SaaS/券商定制)
      • 聚宽、优矿、米筐
    • SDK/量化API(+终端/Web UI)
      • 万得、东财Choice、掘金量化
    • 开源框架(基于Python)
      • PyCTP、VNPY、QuickLib、Zipline

如何把你的主观交易逻辑变成一个量化模型

第九课 以量化角度重新认识技术指标

经典技术指标的基本原理及量化要点

  • 客观看待,理性应用
    • 扬长避短
      • 间接性、滞后性、钝化
      • 连续背离现象
      • 时间周期相关
    • 综合判断
      • 靠单一指标解决问题是不现实的
      • 交叉验证,辅助决策
    • 概率思维
      • 行情多变,市场不可预测
      • 量化即概率,大数定律

编写程序去量化一个趋势型技术指标

  • 指标之王MACD

  • 环境准备

  • 上传文件

    • jukuan_db.py
      • 数据获取接口
    • jukuan_macd_config.py
      • macd信号检测配置文件
    • jukuan_macd_signal.py
      • 历史数据缓存以及信号检测
    • signal_statistics
      • 信号统计

编写趋势型技术指标的性能评价指标

如何根据性能数据判断持仓周期

  • 交易成本的影响
  • 持仓周期、资金利用率与年化收益
  • 交易机会的多少与交易频次
  • 资金管理与风险控制

第十课 基于多因子分析的股票

股票池选择策略的原因及基本框架

  • 一个交易系统的要素
    • 市场:买卖什么
    • 头寸规模:要卖多少?
    • 入市:什么时候买卖
    • 止损:什么时候放弃一个亏损的头寸?
    • 退出:什么时候退出一个盈利的头寸?
    • 战术:怎么买卖?

基于多因子分析的股票池设计与实现

  • 多因子模型的选股框架

    • 大类因子权重
    • 最终权重
  • 对每只股票

    • 根据单因子分层进行打分
    • 根据分层打分的因子权重进行股票得分的综合计算
    • 根据综合打分进行排序,选取得分前10%股票进入股票池
  • 单因子检验-零投资组合检验

  • 多因子模型的原则

    • 因子尽量少
    • 因子间尽量独立
    • 时间尽可能长

股票池的性能评估

  • 股票池设计

    • 基本面:排除劣质
      • 剔除总市值排名最小的10%的股票
      • 剔除PE(TTM)小于0或大于100的股票
      • 剔除ST股票
    • 技术面:超跌反弹
      • 取25日跌幅前10%的股票
  • 单因子检验-市值

  • 单因子检验-PE

  • 股票池定义

    • 选股条件
      • 剔除总市值排名最小的10%的股票
      • 剔除PE(TTM)小于0或大于100的股票
      • 剔除ST股票
      • 取25日跌幅前10%的股票
    • 再平衡周期
      • 25个交易日
    • 容量
      • 无限制
  • 股票池检验

    • 股票池第一次构建
      • 买入股票池中所有的股票
    • 股票池每次再平衡
      • 卖出持仓股中已经不在股票池中的股票
      • 买入股票池中新纳入的股票
    • 仓位
      • 平均分配可用资金
  • 股票池优化探讨

    • 引入质量因子:ROE
    • 引入资金面因子:连续N日主力资金净流入
    • 引入综合财务指标:财务优秀

使用定制化财务因子构建股票池

  • 风险

    • 资产负债率
    • 净资产负债率
    • 流动比率
    • 速动比率
  • 运营效率

    • 总资产周转率
    • 固定资产周转率
    • 存货周转率
    • 应收账款周转率
  • 盈利能力及质量

    • 营业收入增长率
    • 净利润增长率
    • 总资产增长率
    • 净资产增长率
  • 前景与评估

  • 盈利能力及质量评价因子

    • 因子评价=风险得分*0.1+运营效率得分*0.25+盈利能力及质量得分*0.4+前景与评估得分*0.25
  • 财务指标计算-资产负债率

  • 财务指标计算-流动比率

  • 财务指标计算-净资产收益率

  • 财务指标计算-销售收现比率

第十一课 趋势型策略的设计与实现

趋势型策略原理以及股票池机制的设计

  • 趋势与三个关系
    • 供需关系
    • 因果关系
    • 努力与结果

什么样的股票迎来趋势的概率高?

  • 事件驱动
    • 高送转
    • 重大资产重组
    • 产业政策优惠
  • 技术分析
    • 上升通道
    • 突破压力位
  • 过渡反应后的均值回复
    • 反转后的小海龟

趋势型择时信号的设计方法与编程实现

编写一个趋势策略并做回测与性能评估

  • 买入条件

    • 条件一:
      • 15分钟bar,MA5上穿MA30
    • 条件二:
      • 15分钟bar,MACD底背离(DIF vs Close)
      • 5分钟bar,MACD连续底背离
  • 头寸分配

    • 均仓
    • 根据历史不完全统计,采用一个相对“不激进”的均仓方式

优化趋势型策略的思路及方法

第十二课 量化体系中的风险控制

风险的度量-波动率

  • 标准差
  • 平均真实波幅ATR
    • ATR:近N填真是波幅TR的算术平均值
    • TR:以下指标中的最大值
      • 今日最高价减去今日最低价
      • 今日最高价减去昨日收盘价的绝对值
      • 今日最低价减去昨日收盘价的绝对值

常用的风险控制方法

  • 系统性风险

    • 政策面
    • 资金面
    • 国际环境
    • 黑天鹅事件
  • 大盘调制指数

    • 指数均线
    • 金叉/死叉
    • 多头排列/空头排列
    • 最大回撤倍数
  • 流动性限制

    • 持仓头寸不超过该股票流通市值的2%
    • 日成交量不超过该股票成交量的10%
  • 期货的隔夜风险控制

    • 持仓不过节
    • 隔夜操作需要控制仓位,降低第二天反向跳空爆仓的风险

策略性能的评估与优化

  • 止盈止损系统

    • 止盈
      • 最大盈利法
      • 技术信号止盈
    • 止损
      • 最大亏损法
      • 技术信号止损
    • 联合止盈止损
      • 跟踪止盈止损
  • 跟踪止盈止损

    • 回撤N倍ATR止盈止损

实现止盈止损模块以提高策略性能

探讨波动率与风险的关系

  • A股特质-缓涨急跌

    • 波动率与股市经常呈明显的负相关
      • 熊市阶段:波动率放大
      • 牛市逐步上涨阶段:波动率稳定
      • 牛市末期:波动率放大
      • 震荡市:波动率缩小
  • 绝对风险

    • 波动率大的交易标的风险大,需要更加严格控制其买入风险
  • 相对风险

    • 交易标的波动率随时间逐步放大,当超过一定阈值,需要更加严格控制其买入风险
    • 波动率的圆形底形态

第十三课 量化体系中的资金管理

量化策略中的经典资金管理模型

  • 确定头寸规模的四种模型

    • 每一固定金额交易一个单位
    • 等价值交易单位
    • 百分比风险模型
    • 百分比波动幅度模型
  • 头寸管理模型的应用

    • 标的价格差别
    • 风险偏好类型
    • 总风险控制
    • 标的波动差别
  • 波动率的衡量

    • 标准差
    • 考虑前期时间窗口波动率的变化

用Python编程实现资金管理模块

构建一个完善的量化交易策略

  • 股票池

  • 细节考虑-流动性风险

    • 持仓头寸不超过该股票流通市值的2%
    • 日成交量不超过该股票成交量的10%
  • 细节考虑-资金

    • 单日可用资金上限
    • 单个交易标的资金上限
    • 总可用资金上限

再讨论:策略的性能评估和优化

  • 平均分配风险
    • 预计建仓N个交易标的,按照风险平均分配原则,每个交易标的承担的风险为:总风险/N
    • 头寸数量 = (总风险/N)/单个头寸风险

第十四课 期货趋势型策略开发

趋势型量化策略必备的期货知识

  • 典型的交易

    • 股票
    • 期货
    • 债券
    • 外汇
    • 期货
    • 数字货币
    • ……
  • 期货交易的基本特征

    • 合约标准化
    • 交易集中化
    • 双向交易和对冲机制
    • 杠杆机制
    • 每日无负债结算制度
    • T+0交易
  • 期货市场的构成

    • 套期保值者(企业)
      • 期现
      • 基差
    • 投机者
      • 机构投资者
        • 期限
        • 对冲
        • 套利
        • 单边
      • 个人散户投机者
        • 套利
        • 单边
  • 期货投资分析方法综述

    • 技术分析
      • 市场行为涵益一切信息
      • 价格沿趋势移动
      • 历史会重演
    • 基本分析
      • 因果关系明确,结论确定
      • 完备的即时资料
      • 极高的行业经验专业素质
    • 程序化交易
      • 技术分析程序化
      • 数量统计分析、交易
      • 高频交易
  • 期货投资者的通病

    • 满仓操作
    • 逆势开仓
    • 持仓综合征
    • 判顶断底
    • 死不认输
    • 逆势抢反弹
    • 频繁全天候操作
    • 把握不好进出场时机
    • 盲目跟风
    • 主力盯单心态

期货量化工具介绍

  • 期货量化平台选择
    • TB(交易开拓者)
    • MC(Multicharts)
    • 金字塔
    • WH8(文华赢智)
    • VN.PY(开源框架)
    • 自行研发

趋势型策略原理

  • 增仓动作(有持仓情况下)

    • 多头:相对于上次入场价格,每上涨N/2就新增一个单位的多头头寸,每根K线内可多次加仓
    • 空头:相对于上次入场价格,每下跌N/2就新增一个单位的空头头寸,每根K先内可多次加仓
  • 退出(有持仓情况下)

    • 新增规则:相对于上次入场价格,如超过最大允许的损失幅度(2*N),则清仓。
    • 加仓所在的那根K线内,不进行止损。
  • 其它细节

    • 长周期突破点保障信号
      • 入市过滤条件
    • 前次突破失败与否的判别
      • 盈利性退出
      • 亏损性退出
  • 期货交易策略的注意事项

    • 移仓换月(主力合约切换)
    • 杠杆效应(保证金交易)
    • 波动幅度(隔夜跳空风险)
    • 套利机会(跨期、跨品种)

用TB开发商品期货趋势型策略

第十五课 均值回复型策略的设计与开发

均值回复型策略原理

  • 理查德·塞勒的基金的理念

  • 行为金融学指导下的交易策略

  • 巴菲特的投资密码

    • 别人贪婪我恐惧,别人恐惧我贪婪
    • 很平常的价钱买一家很棒的公司远远超过用很棒的价钱买一家平常的公司
  • 做趋势 VS. 做震荡

    • 大尺度:趋势+反转
    • 中尺度:趋势跟随+均值回复
    • 小尺度:均值回复
    • 微小尺度:随机游走
  • 思考

    • 时段1和时段2间隔时间长度的影响
      • 对应:均值回复的尺度
    • 不同起始点的影响
      • 对应:在什么样的大趋势下有此特征

思路-短期市场反转

  1. 建立一个股票池:过去3(或1)个月表现最差的N只股票构成的组合
  2. 再平衡周期:1个月
  3. 头寸管理:
    • 所有入选股票均仓
    • 按照市值加权
  4. 多空组合
    • 做多表现最差组合
    • 做空表现最好组合

在聚宽上编写一个均值回复型股票量化策略

  • 策略编写的考虑
    • 投资标的选择
      • 投资组合的容量
      • 期货VS.股票
    • 多空双向交易
      • 纯多头
      • 做多/做空机制

策略对交易成本的敏感范围检测

压力测试-考虑各种成本

  • 各类交易费用
    • 交易所手续费
    • 券商佣金
  • 保证金账户设置
    • 融资/融券利率
    • 保证金比率
  • 滑点;冲击成本

在策略中实现头寸管理进行策略优化

头寸管理

  • 分配资金方式:均仓(现有方式)VS.按波动率

  • 波动率增大,意味着风险增加,分配的仓位就小,反之亦然

  • 平均真实波幅ATR=MA(TR,N)

    • TR = 当日的真实波动幅度 =Max(H-L,|H-PDC|,|PDC-L|)
    • 其中:H=当日最高价,L=当日最低价,PDC=前一日收盘价
  • 头寸规模单位 = 账户的%风险/(ATR*每一最小交易单位)

  • 更多优化方向

    • 调仓时,卖旧买新的逻辑如何更接近实战
    • 大小周期,加择时,止盈止损
    • 借鉴海龟交易法的动态头寸管理
    • 行业板块占比均衡
    • 成分股筛选和权重调整
    • 参数优化(但要避免拟合)

总结

  • 均值回复策略的原理,思路验证
  • 纯多头和多空双向的实现和比较
  • 评估交易成本的影响
  • 通过头寸管理方法进行策略优化