量化炼金术中低频量化交易策略研发读书笔记上

  • 1.’圣杯’的找寻
  • 2.策略复制性的强大
  • 3.策略的时效性和解释能力的周期性
  • 4.量化的本质是将思维转化为数理化规则,借由代码为工具进行直观表述
  • 5.量化流程设计与思考,量化策略构建
  • 6.本书大纲:
  • 6.1量化的特征与历史【国内发展不足】
  • 6.2对研发流程,框架进行总领性论述
  • 6.3问题以及处理办法
  • 6.4-6.14具体流程,相关案例【择时,选股】
  • 6.15量化策略评估报告
  • 6.16全书总结,本书不足

笔者自身对于本书的感受:

  • 1.书成系统,这个没错,而且有思路,有想法,但是要命的是都是依托于平台开发的策略,这点《量化投资技术分析实战》等都有这种毛病,数据的来源,数据的处理,数据的调用,交易运行等都没有看到,这点是很不利于新手的,而且市面上的书这种情况非常严重,既然要仿真无限接近真实的市场,那么为什么不手动搭建这些东西呢?我知道平台搭建非常难,但是这个是非常重要的,我不知道平台会不会盗取自己的核心策略,但是将这种策略全部依托于平台,一旦平台垮塌或者转型,很多东西就没了。
  • 2.受众定义不清楚,一开始的阅读还很友好,关键地方就上封装完毕的代码或者上高数等东西,一点过渡和铺垫都没有,这很难说是作者的写作习惯或者是为了行文的标准,但是这有一种1+1=2到高数的这种过渡。代码这种东西,展示出来,看多了就好了,封装的东西只能是一时不是一世,更重要的是自己的搭建和要求不一定和平台提供的相一致。
  • 3.从目前来看,尽可能分拆交易步骤和环节,为后面的扩容和修改做好准备,也为自己未来的学习方向和资料分类进行准备。
  • 数据源的解决【爬虫,购买,API】以及数据维护是一个PY文档,
  • 账户建立是一个PY文档【虚拟盘,实盘,止盈止损】,
  • 股票池是一个py文档
  • 回测以及图文展示是一个PY文档,
  • 策略池以及效果监控是一个py文档,
  • 投资回报报告是一个py文档,
  • 市场监控和分析是一个py文档,【市场简单分析,机器学习分析】
  • 自动交易是一个py文档
  • 4.书看多了是好事也是坏事,尤其是重新做笔记的话,重复的东西太多了,其实还是要把基础知识的东西搞清楚就行,看多了,如果无法归纳和总结,那么反而会被这种海量知识所淹没。
  • 5.代码少,自说自的比较多。

 第一章 引言:

1.1量化交易策略简述:

**1.量化的定义:**

以数理化手段【底层基础】,通过代码具象化,构成分析,决策的交易策略。

> 【数理化将作为量化的基础,尤其是策略开发的基础,尽可能降低主观的情绪干扰和投资冲动,一切的思考都必须通过数据化来处理】

**2.量化定义二:**

是通过数据的变形,来捕捉市场的变化和趋势,周期。通过尽可能多的因子,参数来进行捕捉,从而提高当前的判断能力,便于对未来进行决策。

**3.案例一:**

统计套利

> 套利策略的重要部分就是对交易成本进行判断,尽可能降低交易成本,从而保证足够的套利空间。

**4.案例二:**

高频交易

**5.案例三:**

【作者的】中低频量化交易策略

 1.2优缺点:

**优点:**

客观,便于得出结论以及数据展示,便于移植

【剩下时间,便于集中精力开发,创新策略】

**前沿:**

神经网络,支持向量机,隐马尔科夫等机器学习模型,科学交叉,大势所趋

**缺点:**

容易被复制,被盗窃,因子数量庞大只能做取舍,被小概率事件击垮

第二章 量化交易策略的研发流程

**2.1-1流程展示:**

**2.1-2设计思考:**

  • 1.**核心策略**【买卖持有】与数据处理,评估报告,虚拟盘以及实盘要合理切入。
  • 2.核心策略开发的**整体收益为正**。
  • 3.对于**不同环境**下的核心策略的调整【如1996年以前的T+0,如现在新股上市前5天涨跌幅无限制,如可转债涨跌幅无限制,t+0交易,如个股带帽,摘帽】,**参数的设置,模型的健壮性**。是否存在【卖空】机制。
  • 4.回避必须解决“**幸存者偏差**”的问题。
  • 5.**风险控制,仓位计算**【针对不同品种,不同的市场环境进行仓位变化和调整】,这里就不仅是账户初始化,银行资金账户也需要进行初始化。
  • 6.**策略时效性**引发的策略调整,多策略运行,市场监控
  • 7.交易运行的**交易报告阅读和分析**
  • 8.**基准对比**【沪深300】
  • 9.**历史数据以及新数据的获取,更新,维护**

> 一个负的策略可以马上排除,但是一个正的策略并不意味着好,还需要进行监测,持续跑批,优化处理等。

**2.2量化交易策略研究流程的进一步论述**

**2.2.1量化选股策略的研发流程**

  • 1. 不同的策略,不同的风险控制,不同的仓位设计
  • 2. 多投资品种间的并行和交易设计
  • 3. 无限贴近市场的**真实交易**

**2.2.2量化策略研发流程的变化形式**

> 流程的设计上应该是直线的传导方式,而不是BABA这样子的操作。因为个人投资者受限于数据,运算能力,计算能力,开发能力等,在设计上应该更加直接和紧凑,更多的应该是放在策略的开发和市场的分析,监控之上,并生成投资报告,便于及时发现市场的变化,策略的变化和有效性。

2.2.3量化交易策略的整体工作流程:

– **数据处理**:

  • 历史数据下载和保存,
  • 退市个股的停止循环【减少计算压力】,
  • 新上市个股要及时下载保存,
  • 注意区分是否是ST,
  • 是否是创业板
  • 是否存在卖空机制
  • 是否是创业板新上市的前五天【考虑到能否成交的细节】。
  • 新数据的增加,导入,维护
  • 配合策略的交易级别【分钟级别,日线,周线,月线】的下载速度和获取数据的及时性,便于当前交易和第二天交易的参考和需要【实时传输数据,收市以后传输数据】。
  • 数据结构的前后一致性【分表管理】任何时间段的回测

**市场监控以及市场风险/收益的报告**

  • 主板市场的风险【主板和构成指数】
  • 指数市场的风险【构成指数和构成个股】
  • 行业市场的风险【行业和行业个股】
  • 强势涨幅/跌幅的个股风险
  • 别的交易品种的分析,监测

【通过市场监控和风险报告,筛选出交易的可选标的,减少对于系统的运行压力,通过强势涨幅来进行补充,执行策略交易,两个环节来补充整个市场的可选标的,如果出现系统性风险,应当对于品种进行选择,以规避市场的系统性风险】

**品种选择和仓位选择**

**交易成本预判和估计**

**策略选择**

**执行策略**

**实时监控和报告**

**交易结束的后交易报告和评估**

  • 报告载体:plt,csv,word,软件展示等

**策略的优化和改进**

 第三章 注意事项与应对

**3.1未来信息的规避**

– 未来函数的规避和限制【由于日线的数据不能实时拿到,所以当前的买点和卖点只能在收盘后才能够形成并且发出信号,所以对此的处理是,1.在回测部分,将整体下移一位,2.在实盘中列入自选股】

**3.2过拟合与欠拟合**

  • – 数学语言:残差无限趋近于0或者无限趋近于无穷大
  • – 模型解释:过于复杂或者简单
  • – 市场表现:对于行情解释能力较弱【泛化能力较差】
  • – 账户盈亏:交易出现风险的可能性很高
  • – 样本影响:随着数据的增加,策略效果会发生变化,尤其是先【小样本】再【大样本】再【总体】会发生策略额概率变化,因此合理的【选择样本】(choice_sample)是影响策略的使用情况。

> **先验概率**:这里我们要强调的是,策略是先验概率,是通过观察和分析得到的,是历史的结果,它能否解释未来,是需要未来的走势能不能重复,或者贴近走势,才能再次实现的。本身来讲,策略有【先入为主】的观点。

> **后验概率**:则是通过大数据挖掘,统计等方式发现其共同点,从而寻求交易的可能性。

> **参数考虑:**参数越多,越会影响数据拟合交易的能力,从而导致整个策略失灵,但是这个要辩证的来看待。其次,我们最终要做的是将能够解释能力较强,有因果关系的【因子-股价】的关系进行分析,但实际上这种不现实,它不能像生物科学一样物理假设一样等情况,通过增加或者减少甚至抑制因子的情况下来进行重复检验,重复测试,这对于量化来讲是很不友好的,我们不能去取消【成交量】、【均线】、【基本面】等情况来看待【股价】的变化,事实上也无法做到这一步,更重要的是无法进行重复试验,还能够得到同样的结论和结果,在套用统计理论上,我们得到更多的应该是协方差,R2系数,却不能解释协方差,R2中品种之间,因子之间是否存在【因果关系】的情况。

> **设计考量**:希望投资者能够重视这个情况。

**3.3回溯测试与真实环境的差异**

– 当前交易上存在的差异与当天收盘数据的差异:当日最高价可能会触发交易信号,然后收盘价格会低于最高价,信号消失。尤其是历史回测中,这种情况很容易出现,如果一旦放开交易策略则很容易导致策略的效应失败概率会进一步上升【提示:盘中交易存在风险】,图例展示中,股价触及信号点达到三次,但是最终也没有形成信号:

**均线交易解决问题:**

  • (1)尾盘交易
  • (2)增加限制条件
  • (3)延缓交易日期,增强交易策略的健壮性,忽略骗线

– **实际交易**:存在滑点,交易费,手续费,正手交易等交易成本,停牌,临停等市场制度,不同的交易市场品种的涨跌幅交易限制,资金门槛等。

– **流动性**:因为个股行情的变化,突然暴跌,突然暴涨封板,信号触发,但无法买入或者卖出的情况。

– **股票价格**:因为不同市场计算导致账户无钱买入同等金额,比如可转债市场,沪市可转债后面有**两位小数**,深市,创业板等价格后面有**三位小数**。

> 尽可能谨慎相信回测的结果,增加回测的样本,加强回测数据的健壮性。通过平均值等统计量进行分析。

 第四章 简单的择时策略:

**4.1基本框架:**

**基本框架:**

  • – 单侧做多
  • – 只涉及【买卖】-【收益评估】,其他不考虑
  • – 交易状态【多头】、【空头】,资金账面反映是【持币】、【持股】两个阶段
  • – 跟随系统,不做预测

**基本框架2.0版本:**

  • – 双边交易
  • – 涉及双向买卖 交易周期拉长
  • – 成交机会增加
  • – 【多头交易机会】、【空头交易机会】、【持币阶段】

> 择时上的策略调整,嵌套最容易,系统健壮性最强。

> 机器学习模型和量化模型不能【拿来主义】,要弄清楚**内部的逻辑**,尤其是针对策略核心而言,相比于数据处理,更重要是数据结构和处理内容必须保持一致,清洗数据是必然的。

**4.2均线趋势策略的简单优化**

  • – 策略内容:短期均线【N】,长期均线【M】,N>M,sign:buy,N<=M,sign:sell.
  • – 对象:全体数据
  • – 案例:沪深300股股指期货主力合约
  • – 优化:N,M不限制特定值,可以通过穷举法进行测算【这里就必须要求策略进行封装,然后通过迭代进行测算】
  • – 优化1.0:通过斐波那契数列对N,M进行赋值,生成收益矩阵,并展示。

**4.3均线反转策略的简单优化:**

  • – 本章没有写清楚,笔者找了个案例
  • – 案例文章:《量化策略:如何用均线生成反转信号》

“`python

#理论定义:

#均线交易的特点:1.把握趋势,2.简单可靠,3.确定支撑和阻力位,设置止损和止盈4.统计显示,趋势上升必然趋势下降【理论的来源】,物极#必反。

#其实也就是和一般的均线交易策略进行相反交易,不同的是一般的均线交易策略是右侧交易,而反转交易则是左侧交易。

#作者提出一个概念:移动平均宽度指标(moving average width indicator),简称MAWI。

#策略构建步骤:

#1.建立两条不同的均线,

#2,计算不同均线之间的宽度【但是没有看到有绝对值,负值的情况说明】,这里应该要取绝对值,根据后面策略的部署来看。

#4.归一化处理

#5.数据展示:

#收盘价、MAWI(N,M)数据,归一化数据MAWI(P)。

#6.逻辑判断:

#归一化的MAWI(P)[i]==0,归一化的MAWI(P)[i-1] >0,做多。

#MAWI(P)[i]==100 and MAWI[i-1]<100,做空。

#7.运行并成果展示

“`

**4.4自回归策略的简单优化**

**1.理论介绍:**

> 由于作者在这里一段都是大段文字说明,所以笔者搜索一下网上的相关资料进行补充,便于学习和加深印象,同时进行整理和归纳,为后面的统计学习深入奠定基础。

> 引用文章一:

> [《时间序列预测基础教程系列(7)_如何用自回归模型(AR)预测时间序列预测(Python)》](
https://blog.csdn.net/yangwohenmai1/article/details/85071683)

【代码后面再写,先将读书笔记整理出来】

第五章 简单的选股策略

**5.1因子选股的基本框架**

**笔者的感悟:**

> 如果技术指标还有一点让人相信的话,那么单因子,多因子的解释上就差强人意,毕竟【价增量增】、【缩量上涨】等都是能够让人信服和解释,而且重要的是,一旦量能的变化与个股的变化也一致,这里就解释了一个关键,当终止一个因子的时候,或者限制一个因子的时候,股价就发生了变化。但是因子这种东西,原有的加上变化的因子,无法搞清楚这些因子对于股票的影响,同时由于数据上的跨度过大,还是需要进行归一化处理才行。至少笔者没有看到这种【因果关系】上的论证。

> 相比于技术面的分析,基本面的调用上更加复杂,相对于一般投资者而言,运行和维护多因子的推论上是一件很困难的事情,相反,单因子反而很好处理。

> 相关的数学说明就不写了,因为笔者的统计学读书笔记也写到这里了,就不再废话了。

**5.2市值因子**

1. **举例:**2009年开始的中小市值大涨,2017年的权重股大涨

2. **法玛的研究表明:**股价随着市值变化而变化

3. **作者验证以及结论:**

  • 试验对象:主板,中小企业板,创业板分类的全部A股【每个分类要抽取30个样本以上才可以】,
  • 试验时间:1991-2010年【跨度牛熊市】,
  • 交易周期:月调仓,
  • 交易策略:按因子大小排序若干等分,进行交易
  • 试验目的:股价未来收益与因子的关联程度
  • 真实市场的考虑:存在停牌,涨跌停,临时停牌等无法交易的情况以及无法做空
  • 对策:先筛选,剔除,再交易
  • 交易价格和仓位:每月收盘价,等金额买入。
  • 评估参数:r.mean()

**5.2.1市值因子选股3等分**

就是将上面的按市值大小进行分类和迭代。

**5.2.2市值因子选股10等分**

进一步划分,增加间隔,找出因子与股价的关联

**5.2.3市值因子选股30等分**

同理

**5.3反转因子**

笔者能够理解的是【扭亏为盈】、【由盈到亏】。

**5.4多因子选股策略的简单优化**

【多元线性回归】

> 这里笔者说几句,这里的多因子分析一定要将因子进行相关性分析,将能够解释价格的因子或者与因子变化关联度高的进行多元线性回归,不然很难得到正确的解释,进行构建,迭代也是【差之毫厘谬以千里】。

【笔者回测过浦发银行,反而发现另一个问题,主营业务收入和股价没有关联性,反而是跟主营业务增收率与股价反应一致】

 第6章 推进分析

**6.1推进分析框架**

  • 1. 检验是否存在过拟合,欠拟合等情况
  • 2. 思路大体与机器学习高度重合,这里笔者就不展开学习了。
  • 3. 策略经过周期检验时长,增加策略的可靠性,但是不能忽略的是,策略有时效性,尽管建立在能够解释价格的基础上,我们仍然要警惕这种解释能力随着时间的变化引发市场变化导致的衰退,失灵。
  • 4. 持续迭代和喂入数据的做法对个人投资者在部署上的计算机成本要求很高,尤其是面临注册制的环境下,这里就很能够感受到市场变化,市场的复杂程度,我们的框架只能不断逼近这个过程,无法完全模拟和仿真。
  • 5. 我们要对市场的走势进行先期定义和标记,才能在封装后出来的数据进行合理的判断。

**6.2多层推进分析**

– 解释策略的泛化能力

**6.3推进分析下的验证**

作者这个完全就是机器学习的思路来对策略进行监测,但是分层抽样需要严格定义,迭代周期长度需要严格定义【因此必须剔除停牌,退市的个股】,但是策略的泛化能力会大打折扣,毕竟我们的假设都是个股是【存续期间】,不同的环境定义和分割只会造成不同的筛选对象。从这点来讲,要想真的做到这一点很难。只能缩短回测周期,降低【幸存者偏差】的概率,防止这种临停存在对于策略的干扰和冲击。

**第七章 推进的择时策略**

**7.1均线趋势策略的推进分析**

– 笔者还是那句话,均线这些都是存在滞后性的,只能用历史、成本的角度来对于当前位置的分析和探索,是否可靠存在一定的偏差,用滞后性的东西来解释当前和未来,必须要承认【历史会影响到当前和未来】的逻辑关系上,如果我们否认这个关系,那么均线的策略交易是没有意义的。更重要的是均线在年份不好的情况下,解释能力极差,短线交易频率上升,假信号,骗线等事项更多,似乎只有当前走势强,才能带动均线的强势和可靠性,那么这样子,均线又怎么能够反过来解释日线的走势呢?这是一个非常矛盾的地方。而且由于不同市值的个股在突破,强势突破的数据不相一致,则必须进行归一化处理,将突破的成功的可能性进行处理,从而得到一个区间,必要的时候还要对这个区间进行再次分类,提高精度。

– 推进分析必须将周期长度的环境进行定义,或者说先将样本与标的进行相关性分析

– 在这里,笔者思考到,如果我们的环境中只存在【平缓】、【周期】的情况下,是如何在数据关系紧凑的情况下得到一个稳定的收益的?我们更多还是通过捕捉到【市场的异常点】来发现市场的巨大变化,如同2015.4.20南北车合并开市以后,巨量,暴跌,连续暴跌,并导致人死亡以后,才发现牛市可能终结的情况?更为怪异的是,笔者曾经对2015年的各个行业指数进行复盘,发现,券商自2015.4就停止了上涨,开始不断下跌的趋势。如果我们还是依靠【平均值】等统计学上的认知来进行分析,监控市场,会得出很大的问题,造成认知上的巨大偏差的。

– 涨幅,巨大涨幅,跌幅,巨大跌幅都应该存在着异常,我们应该将离群点进行高度重视和认识,集中我们的精力来对待某些异常点,这里对于均线上的认识也是一样,如果我们通过验证,得到在股市背景环境下的定义的时候【即先行对市场,主板市场进行判断牛、熊、猴】对于均线突破的点进行异常点判断,同时进行归一化处理,便于计算和数据展示,报告说明。

– 如果我们单对点进行背景分析,那么我们可能只会得到一个结论:行情好的时候,任何指标的突破都是真突破的概率更高,而行情差的时候,任何指标突破都是假,跌破反而真的概率更高的情况,而这种情况下,即便是爆发【风格】、【行业】等背景的个股的联动,都会被这种解释性的平均化所稀释,从而导致整体市场观念的破碎,这种分析是存在很可怕的认知偏差的,因此,在某种程度上来讲,我认可作者在对于样本分组上的不断细化,从而找出更多的异常点与背景进行比较,从而找出关联度较高的因子情况,并将这种解释性的因子对其他个股进行迭代,从而进行证伪。我们无法阻止限制股市的因子或者取消这个要素,毕竟它的每一笔变化都在增加其他数据,这个是无法规避的,不能像生物科学一样,物理实验一样。所以我们能够得到的更多是相关性上的高度关联,而不能得到相应的因果关系。这是任何模型建设和构建中必须注意和引起警惕的。

**- 7.2均线反转策略的推进分析**

【略】

**7.3均线回合策略的推进分析**

  • – 从本书的作者的净值走势上来看,我们会发现统计学上的缺陷性认知和策略泛化上对于市场捕捉能力的严重偏差。
  • – 通过图例我们可以看到,净值变化中无法解释2013年的上海自贸区的大涨,毕竟相对于整体而言,样本的数量,体积占比实在是太少了,所以你几乎看不到这种局部牛市存在的情况。
  • – 更多的是,牛市到来,带来整体收益的上升,这也就是意味着不是均线解释了牛市,而是牛市使得均线策略变得更加可靠。
  • – 如果这种关联性建立起来,就会发现这种颇为荒谬的结论而陷入巨大的矛盾之中无法自拔。

**7.4自回归策略的推进分析**

由于作者没有给出严格的数学推理,代码,我看不懂,对于时间序列这块还没有深入研究,所以只能忽略。

但是从图例来看,自回归的分析上有一定的解释能力,但是在收益上的变现过于陡峭,高点的位置续存时间不长,突破前期收益的代价【回测】,耗时都有一定的距离,需要有很明显的耐心和预测能力。

**7.5自回归策略的多层推进分析**

【略】

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

(0)
股市刺客的头像股市刺客
上一篇 1小时前
下一篇 47分钟前

相关推荐

发表回复

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