acidsweet / gitblog Goto Github PK
View Code? Open in Web Editor NEWMy Blog
My Blog
TOC:
TOC:
我们先收集一下主要指数的信息如下:
指数代码 | 指数名称 | 发布日期 | 行情开始日期 | 指数简写 | 指数权重开始日期 |
---|---|---|---|---|---|
000001.XSHG | 上证指数 | 1991-07-15 | 2005-01-04 | SZZS | 2011-05-31 |
399106.XSHE | 深证综指 | 1991-04-04 | 2005-01-04 | SZZZ | 无 |
000016.XSHG | 上证50 | 2004-01-02 | 2005-01-04 | SZ50 | 2011-03-28 |
000300.XSHG | 沪深300 | 2005-04-08 | 2005-04-08 | HS300 | 2005-04-29 |
000905.XSHG | 中证500 | 2007-01-15 | 2007-01-15 | ZZ500 | 2005-01-31 |
000852.XSHG | 中证1000指数 | 2014-10-17 | 2014-10-17 | ZZ1000 | 2014-10-31 |
399303.XSHE | 国证2000 | 2014-03-28 | 2014-03-28 | GZ2000 | 2014-03-31 |
399101.XSHE | 中小板综 | 2005-12-01 | 2005-12-01 | ZXBZ | 2016-05-31 |
399005.XSHE | 中小板指 | 2006-01-24 | 2006-01-24 | ZXBZ | 2009-09-30 |
399006.XSHE | 创业板指 | 2010-06-01 | 2010-06-01 | CYBZ | 2010-06-30 |
000688.XSHG | 科创50 | 2020-07-23 | 2020-07-23 | KC50 | 2020-07-31 |
这里分别介绍一下各个指数的信息:
深圳成指
的区别,深圳成指是选取了500家在深市上市公司编制而成)我们先看一下各个指数在市值
纬度下小市值策略的表现(benchmark是指数本身):
指数代码 | 指数名称 | 回测开始日期 | 回测结束日期 | 策略年化 | 最大回撤 | 夏普比率 | 日均超额收益 |
---|---|---|---|---|---|---|---|
000001.XSHG | 上证指数 | 2005-01-05 | 2023-04-18 | 33.3% | 48.8% | 1.14 | 0.10% |
399106.XSHE | 深证综指 | 2005-01-05 | 2023-04-18 | 37.6% | 51.1% | 1.33 | 0.09% |
000016.XSHG | 上证50 | 2005-01-05 | 2023-04-18 | 3.5% | 71% | -0.01 | -0.01% |
000300.XSHG | 沪深300 | 2006-01-01 | 2023-04-18 | 16.2% | 67.8% | 0.4 | 0.03% |
000905.XSHG | 中证500 | 2008-01-01 | 2023-04-18 | 11.3% | 65.2% | 0.24 | 0.04% |
000852.XSHG | 中证1000指数 | 2015-06-01 | 2023-04-18 | 8.4% | 48.1% | 0.15 | 0.07% |
399303.XSHE | 国证2000 | 2015-06-01 | 2023-04-18 | 33% | 42.7% | 1.043 | 0.14% |
399101.XSHE | 中小板综 | 2006-06-01 | 2023-04-18 | 37.9% | 57.4% | 1.278 | 0.09% |
399005.XSHE | 中小板指 | 2007-01-01 | 2023-04-18 | 12.2% | 74.3% | 0.273 | 0.02% |
399006.XSHE | 创业板指 | 2011-06-01 | 2023-04-18 | 4.1% | 73.4% | 0.004 | -0.02% |
我们可以看到(科创50回测失败,剔除):
既然我们知道上证指数、深证综指上小市值是有超额收益的,那么我们使用股票池:
借助alphalens做一次小市值因子的单因子分析:
原因:
双均线的择时可以说:相当失败,所以果然择时是最难的事情,通过传统双均线进行择时无疑自杀行为
乖离率(BIAS),又称偏离率,简称Y值,是通过计算市场指数或收盘价与某条移动平均线之间的差距百分比,以反映一定时期内价格与其MA偏离程度的指标,从而得出价格在剧烈波动时因偏离移动平均趋势而造成回档或反弹的可能性,以及价格在正常波动范围内移动而形成继续原有势的可信度。乖离率,是用百分比来表示价格与MA间的偏离程度(差距率)。乖离率曲线(BIAS),是将各BIAS值连成线,得到的一条以0值为横向中轴之波动伸延的曲线。
根据上面的科普我们知道乖离率是一个(-100,100)之间的数,一般我们使用它标识超买区和超卖区,我们先用N=[6,12,24]分析一下历史乖离率:
可以看到从时间维度看乖离率的稳定性还不错,从直方图看也比较正态,不存在肥尾等现象。
我们定一个策略:
幂等
概念如何理解,可以类比纯函数的概念:在多次GET同个uri时不会产生任何副作用,返回的结果也完全一致;而POST多用于提交数据,由于提交的数据在data而非请求行里,所以浏览器地址栏不可见,但是需要注意默认这里也是明文的。目的:找到一个最优的追涨组合
首先我们通过akshare获得所有的标的历史数据并merge到一起:
然后我们计算每个标的的收益率矩阵,并作处理使得收益为正(包含0)时=1,收益为负数时=-1:
我们可以发现:
所以很明显可以的确可以分成三个聚类部分:
下面我们尝试对三个聚类内部的标的进行比较和分析:
HashMap是广大程序员使用的最多、面试被问最多的一个容器了:
我个人也经常面试别人的时候会用hashmap切入去问容器、线程安全、锁等方面内容,但是其实hashmap真正的源码并没有特别认真的通读过;这个文章就是从HashMap源码入手,详细解析一下HashMap(android-30)的实现;
我们首先看一下HashMap的声明:
public class HashMap<K,V> extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable
我们先从interface开始解析:
public interface Serializable {
}
这里有篇文章说的很好 → https://blog.csdn.net/weixin_44209555/article/details/107837108
我在这里主要提炼一下主要观点:
public interface Cloneable {
}
这里也引用一篇文章 → https://www.jianshu.com/p/ea8f7b1fbbb1
提炼的重点:
internalClone
是一个native的浅拷贝快速实现,需要实现深拷贝需要自己Override Clone接口在这里就全说完了,那么我们这里可以对HashMap实现的接口做定义:
HashMap是一个可以(反)序列化、可以克隆的Map
public abstract class AbstractMap<K,V> implements Map<K,V>
This class provides a skeletal implementation of the Map interface, to minimize the effort required to implement this interface.
// 常亮
private static final long serialVersionUID = 362498820763181265L;
static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16
static final int MAXIMUM_CAPACITY = 1 << 30;
static final float DEFAULT_LOAD_FACTOR = 0.75f;
static final int TREEIFY_THRESHOLD = 8;
static final int UNTREEIFY_THRESHOLD = 6;
static final int MIN_TREEIFY_CAPACITY = 64;
// 变量
transient Node<K,V>[] table;
transient Set<Map.Entry<K,V>> entrySet;
transient int size;
transient int modCount;
int threshold;
final float loadFactor;
首先,我们看一下HashMap里的成员:
TREEIFY_THRESHOLD
约定了当单个节点下链表长度大于8时会转成红黑树,而MIN_TREEIFY_CAPACITY是又添加了一条约束:只有当整个map里节点数量超过64个时才会允许树化,这里主要是萎了防止hashmap使用初期就进行树化而不是直接resizetransient
关键字,它表示这个变量不会被(反)序列化 → https://blog.csdn.net/qq_44543508/article/details/103232007目的:利用纳指期货对持仓纳指做择时\仓位控制
TOC:
整体策略分为有位置优势(IP)和没位置优势(OOP)两种情况:
可以游玩的手牌:
可以面对open的手牌(不包含SB\BB):
超参设定:
策略核心:
用多个因子对market_cap(市值)进行回归
market_cap = f(x1...xn)
然后用当前时刻(t)的因子去预测下一个周期的市值:market_cap(predict t+1)
Δmarket_cap = market_cap(predict t+1) - market_cap(t)
Δmarket_cap基本等同于本周期的预测收益率;取Δmarket_cap最大的前10%标的进入轮动池
通过alphalens对可转债的价格、溢价率、规模以及其复合指标进行因子分析
首先我们针对单因子,也就是价格、溢价率、规模进行单独的分析:
可以发现:
接下来我们计算一下简单的两个复合因子:双低(低溢价+低价格)和三低(低溢价+低价格+低剩余规模)的因子有效性分析
可以看到两个复合因子都体现了较好的分离度,都有一定有效性;我们进行一下简单的IC分析:
目前看来双低的确是一个很有效的因子
因子分子只分析了因子在横截面上的有效性,那从历史数据看我们先针对三个单因子进行回测(每三天选15只进行轮动):
目标:
先看一下补剂的ABC分类:
接下来排一下雷:
再调研一下常见的补剂(乳清蛋白、肌酸、咖啡因、硼):
最后我个人总结一下我的选择:
REF:
[1] https://www.bilibili.com/video/BV1dB4y187qM
[2] https://zhuanlan.zhihu.com/p/461486268
[3] https://www.bilibili.com/video/BV1pW411N7AV
[4] https://www.zhihu.com/question/45595317/answer/1744300152
权益池:沪深300、中证500、创业板指
现金池:国债、黄金、招商双债、存单
目标:
- | 沪深300 | 中证500 | 创业板 | 国债 | 黄金 |
---|---|---|---|---|---|
平均收益率 | 8.04% | 7.56% | 7.13% | 2% | 5.93 |
最大回撤 | 44% | 63% | 69% | 26% | 20% |
Sharpe | 0.17 | 0.13 | 0.09 | -0.1 | 0.15 |
波动率 | 0.227 | 0.27 | 0.33 | 0.188 | 0.129 |
由于现金仓实现的方式多变,这里就不多研究,接下来会以黄金作为现金仓持仓继续研究。
+黄金 | 沪深300 | 中证500 | 创业板 |
---|---|---|---|
平均收益率 | 8.18% | 8.20% | 8.41% |
最大回撤 | 23% | 31% | 37% |
Sharpe | 0.313 | 0.285 | 0.25 |
波动率 | 0.13 | 0.14 | 0.17 |
我们可以看到:
针对组合,将HS300比例从10%提高到90%,依次回测查看相应指标:
HS300+黄金 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 |
---|---|---|---|---|---|---|---|---|---|
平均收益率 | 6.51% | 7.04% | 7.48% | 7.89% | 8.18% | 8.38% | 8.43% | 8.47% | 8.44% |
最大回撤 | 17% | 15% | 15% | 19% | 23% | 28% | 32% | 36% | 41% |
Sharpe | 0.211 | 0.267 | 0.303 | 0.32 | 0.313 | 0.293 | 0.262 | 0.236 | 0.209 |
波动率 | 0.119 | 0.114 | 0.115 | 0.122 | 0.134 | 0.15 | 0.169 | 0.19 | 0.213 |
上图中的比例表示配置权益仓的比例,可以看到
40%HS300+50%黄金 | 5 | 15 | 30 | 60 | 120 | 240 |
---|---|---|---|---|---|---|
平均收益率 | 7.86% | 7.87% | 7.83% | 7.89% | 8.17% | 7.41% |
最大回撤 | 19% | 19% | 19% | 19% | 20% | 22% |
Sharpe | 0.314 | 0.317 | 0.314 | 0.32 | 0.342 | 0.272 |
波动率 | 0.123 | 0.122 | 0.122 | 0.122 | 0.122 | 0.126 |
我们回测了从一周到一年为再平衡周期的各种情况发现:
基于4:6比例以及120交易日(半年)再平衡周期的HS300+黄金的组合可以取得一个平均8%,历史最大回撤20%的投资组合:
todos:
What:什么是ANR
Why:为什么有ANR
When:什么时候发生ANR
How:如何处理ANR
扩展阅读:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.