Abu框架总结

Abu是一个人写的教量化投资的书,我的里面的理念和教授方法持保留意见,了解它也是觉得研究过别人,才有发言权,不然就是纯愤青了。

以下文字可以让你不用跳进代码,就能较快了解其主要特征。

择时策略

海龟的N日突破买入和N日突破卖

在图上绘制出来买点和买点,并用阴影标记出来这对买卖区间。

买入策略中,可以加入多个监控周期,如60和42;当任何一个突破周期发生突破事件后,就会发出买卖信号。

示例中,将60/42的向上突破作为买入信号,将120向下突破作为卖出信号。

择时策略优化

(1)增加止损止盈。

在60/42买入,120卖出的基础上。增加AtrNStop,这个Stop可以包含止盈止损。

C * ATR当日 > 买入价 - 当日收盘价;作为止损,表示某日的收盘价跌破了C倍的ATR,达到了最大容忍范围。

C * ATR当日 > 当日收盘价 - 买入价;作为止盈,表示某日的收盘价高过了C倍的ATR,达到了盈利预期范围,进行止盈。

(2)盘中急跌止损(风险控制止损)

当日盘中价格 - 昨收 > C * 当日ATR,表示当日急跌超过了风险忍受程度,进行止损。

这样的止损点一般是无法在发出信号的价格处卖出的,因为是急跌,短短几秒就会造成很大的下跌,因此,回测的滑点效应会很大,需要重新考虑实际成交的止损价怎么计算,单纯用信号价进行计算,几乎毫无意义。

(3)保护利润止盈

前一日股价是从买点算起盈利的。 当日盘中价 - 昨收 > C * 当日ATR,表示在盈利状态回撤的价格超过了容忍限度,卖出保护现有利润(有可能利润已经没了)。

上述3中情况的卖点(包含止损止盈,盘中风险控制),[sell_point1, sell_point2, sell_point3, sell_point4] 四个卖点组合成一个sell_factors,连同前面的buy_factors,构成一个买卖组合。

需要注意的是,上述的多个卖点组合sell_factors采取的是或关系,即只要有一个满足要求,就触发卖出。多个买点也是这种关系。

滑点策略和交易手续费

确定交易价格 一个称为滑点的类来实现

交易价格算法 (H+L)/2;H为当日最高价,L为当日最低价。

这样确定交易价格的问题是,只有到临近收盘才有可能知道当日最高价和最低价是什么,平均价会不会出现还另说呢,谁能保证收盘价就是平均价。因此这种确定价格的方式不可接受,没有意义。

交易手续费

交易手续费的设置放置在Capital类中,扣款时进行。

多股票择时回测和仓位管理

多股票择时

所有股票使用的周期参数都相同,买入数量的多少,根据ATR来决定。

仓位管理

通过胜率,平均获利期望,平均亏损期望三个参数,利用凯利公式来计算仓位。

kelly比例 = 胜率 - (1-胜率)/ (平均盈利期望/平均亏损期望)

例如:胜率 40%,平均盈利期望4%,平均亏损期望1.5%。

则kelly 比例 = 0.4 - (1-0.4) / (0.04 / 0.015) = 0.4 - 0.6 / 2.67 = 0.175

也就是,买入比例是现存资金的 17.5%

对不同的股票,配置不同的买卖点周期参数

为每个股票,设置一个买卖点周期参数,保存在dict中,传入到执行器执行。

并行执行

设定进程数,用多个进程来并发执行回测。

选股

角度选股

根据近期股票走势的价格,拟合出一条线段,根据线段的角度在某个最大角,最小角区间内来进行选股。

可以设定在一个给定的股票种子集内进行选股。

价格区间选股

给定一个价格区间,如10元到20元;选出市场中所有在这个价格区间内股票。

多条件选股

可以为选股添加多个条件,多个条件是与关系,必须同时满足;这点与这时不同,那里是或关系,满足一个条件即可。

并行执行选股

开多个进程,并行执行选股程序,节省选股时间。

回测结果度量

度量基本使用

(1)胜率信息

(2)策略收益与基准收益对照

(3)策略收益曲线

(4)策略收益柱状统计图显示(概率密度图),起始没经过贝叶斯处理,或者有大量样本点支持的情况下,不太方便称其为严格的概率密度图,叫柱状统计图更恰当。

度量的可视化

(1)收益,年化收益

(2)胜率,盈亏比

(3)平均获利期望

(4)夏普率,信息比率

(5)策略波动率,阿尔法,贝塔

因子生效统计,看信号发生都是哪些因子,以及其计数。

少了最大回撤信息,但是很好算,不应算作一个问题。

寻找策略最优参数

参数取值范围

给出止盈止损的范围,按照grid search法,逐个step的尝试哪个值是最优参数。

评分是按照度量值中的四个,默认等权重计算谁好,也可以自定义权重,表示对度量值中某个度量的倾向性。

A股市场回测

股票标记设定为A股中的标记,跑上面的流程即可。

UMP主裁系统

原理

过滤出回测系统里的失败交易样本,专门分析这些样本,设定一个裁判系统分析新的交易是否符合这些失败交易的特征,如果较大概率判定为失败交易,则选择不执行这个新的交易信号。是一种风险防范措施。

所谓的主裁,边裁;就是多个模型的聚合评价,essemble作用。

裁判模型可以用:角度,跳空,波动等特征来构造。

这种裁判式的想法,看着有点像协同过滤。

如:可以分析失败交易时,信号发生时刻以往价格数据的拟合角度特征。

----------------------------
关注微信公众号号:
挖金矿工:goldminer1024
为您的量化投资理想插上翅膀

时间: 2024-10-16 20:32:45

Abu框架总结的相关文章

基于jquery开发的UI框架整理分析

根据调查得知,现在市场中的UI框架差不多40个左右,不知大家都习惯性的用哪个框架,现在市场中有几款UI框架稍微的成熟一些,也是大家比较喜欢的一种UI框架,那应该是jQuery,有部分UI框架都是根据jQuery研发出来的产品,现在也很常见了. 国产jQuery UI框架 (jUI) DWZ DWZ富客户端框架(jQuery RIA framework), 是中国人自己开发的基于jQuery实现的Ajax RIA开源框架.设计目标是简单实用,快速开发,降低ajax开发成本. jQuery 部件布局

静态网页框架设计首次体验(文章改)

根据教材与上网成功解决了Tomcat与Myeclipse的安装,同时熟悉了Java web创建项目到部署运行整个过程.今天起正式开始学习有关Java web的编程部分.Java web静态网页(HTML网页)的标记含义.基本语法的介绍到框架设计基本模板与案例,今天的学习的内容,让网页编程有了一个初步的框架.结合自身所在协会的情况,计划制作一个关于协会的网页,已有初步想法,望通过学习不断完善和修改协会网站.根据今天所学,并参考书本30页框架设计案例对网页进行初步搭建. 具体代码如下 TW.jsp:

.NET深入解析LINQ框架(五:IQueryable、IQueryProvider接口详解)

阅读目录: 1.环路执行对象模型.碎片化执行模型(假递归式调用) 2.N层对象执行模型(纵横向对比链式扩展方法) 3.LINQ查询表达式和链式查询方法其实都是空壳子 4.详细的对象结构图(对象的执行原理) 5.IQueryable<T>与IQueryProvider一对一的关系能否改成一对多的关系 6.完整的自定义查询 1]. 环路执行对象模型.碎片化执行模型(假递归式调用) 这个主题扯的可能有点远,但是它关系着整个LINQ框架的设计结构,至少在我还没有搞懂LINQ的本意之前,在我脑海里一直频

.NET深入解析LINQ框架(一:LINQ优雅的前奏)

阅读目录: 1.LINQ简述 2.LINQ优雅前奏的音符 2.1.隐式类型 (由编辑器自动根据表达式推断出对象的最终类型) 2.2.对象初始化器 (简化了对象的创建及初始化的过程) 2.3.Lambda表达式 (对匿名方法的改进,加入了委托签名的类型推断并很好的与表达式树的结合) 2.4.扩展方法 (允许在不修改类型的内部代码的情况下为类型添加独立的行为) 2.5.匿名类型 (由对象初始化器推断得出的类型,该类型在编译后自动创建) 2.6.表达式目录树(用数据结构表示程序逻辑代码) 3.LINQ

.NET深入解析LINQ框架(二:LINQ优雅的前奏)

阅读目录: 1.LINQ框架的主要设计模型 1.1.链式设计模式 (以流水线般的链接方式设计系统逻辑) 1.2.链式查询方法(逐步加工查询表达式中的每一个工作点) 2.LINQ框架的核心设计原理 2.1.托管语言之上的语言(LINQ查询表达式) 2.2.托管语言构造的基础(LINQ依附通用接口与查询操作符对应的方法对接) 2.3.深入IEnumerable.IEnumerable<T>.Enumerable(LINQ to Object框架的入口) 2.4.深入IQueryable.IQuer

.NET深入解析LINQ框架(四:IQueryable、IQueryProvider接口详解)

阅读目录: 1.开篇介绍 2.扩展Linq to Object (应用框架具有查询功能) 2.1.通过添加IEnumerable<T>对象的扩展方法 2.2.通过继承IEnumerable<T>接口 2.3.详细的对象结构图 3.实现IQueryable<T> .IQueryProvider接口 3.1.延迟加载IEnumertor<T>对象(提高系统性能) 3.2.扩展方法的扩展对象之奥秘(this IQueryable<TSource> so

.NET深入解析LINQ框架(三:LINQ优雅的前奏)

阅读目录: 1.动态LINQ查询(动态构建Expression<T>表达式树) 2.DLR动态语言运行时(基于CLR之上的动态语言运行时) 1].动态LINQ查询(动态构建Expression<T>表达式树) 什么是动态LINQ查询?LINQ的编写是静态的,因为C#是基于静态类型系统原理设计的,在编写时已经确定类型,也就是在编译时就已经知道将要执行什么样的查询,条件是什么.排序方式是什么等等.那么很大一部分应用场合中我们需要根据用户的选择来查询数据源,以往我们都是通过判断的方式来拼

Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案 (精髓)

前言 刚开始创建MVC与Web API的混合项目时,碰到好多问题,今天拿出来跟大家一起分享下.有朋友私信我问项目的分层及文件夹结构在我的第一篇博客中没说清楚,那么接下来我就准备从这些文件怎么分文件夹说起.问题大概有以下几点: 1.项目层的文件夹结构 2.解决MVC的Controller和Web API的Controller类名不能相同的问题 3.给MVC不同命名空间的Area的注册不同的路由 4.让Web API路由配置也支持命名空间参数 5.MVC及Web API添加身份验证及错误处理的过滤器

10大APP界面框架设计模式详解

随着移动互联网的发展,移动app已经成为了每个互联网公司的标配了,那作为产品经理,我们如何设计出更加符合用户体验的app产品呢?今天和大家分享的就是10中最常见的app界面光甲设计模式,一起来看看吧. 1.标签导航 标签导航是十大界面框架设计里最常用的界面框架设计,也是被业界之内公认的一种普遍使用的页面框架设计.那么这种页面框架设计在作业方面对一个用户来说也是最常见的一种页面框架设计,比如说微博.微信.手机百度.支付宝.淘宝,这些我们所谓的超级APP都是运用的标签导航,无一例外.从这个角度也可以