加载中…
个人资料
德铭资本
德铭资本
  • 博客等级:
  • 博客积分:0
  • 博客访问:120,393
  • 关注人气:80
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
访客
加载中…
好友
加载中…
评论
加载中…
留言
加载中…
博文
(2020-02-24 11:06)
分类: 新系统开发
scaling_in是指分仓买入,scaling_in型系统会产生一个买入区域, 这个区域一般在买入信号数值上下浮动, all_in就是寻找最佳进场点全仓买入, 一般的认知是scaling_in比较好,因为能容纳较大资金而且产生更加高的夏普比率和更低的回撤,但all_in能产生更高的收益(如果进场点合理),而这个问题在2010年由 Schoenberg和Corwin用简单的数学单就收益而言做了证明,介绍之前简单重复一下这个所谓的价格一般不是指单一品种的价格,而是指一个stationarity序列,例如一个cointegrated对冲组合的对冲比率,它们应该看起来是下面这个样子的:


题外话:期货市场里面即使同一个黑色系几个品种的组合也不是cointegrated序列,同样贵金属金和银之间也不是,跨品种的风险就在这里,至于黄金指数和黄金有关的股票之间我没有测试过不知道,对于不稳定序列很多优秀的策略不太容易实现,要通过比较过硬的数据分析和风险
阅读  ┆ 禁止转载 ┆ 收藏 
(2020-02-19 16:31)
分类: 新系统开发
前文提过可以通过adf或者hurst测试来检验一个序列是否stationarity,那么多序列组合怎么办?因为按不同对冲比率结合就会产生不同的统计结果,这个比率怎么定呢?这就是cadf和Johansen测试存在的目的,
它们的原理网上很多这里不再重复,我们关心的是它们有什么用和怎么用,  把所有这些枯燥的原理和术语翻译成人话后就是:
我们可以通过它们来做两件事1:该组合是否适合mean_reverting策略 2:如果是我们需要知道对冲比率

下面是针对具体用法的一些简单的归纳:
  • 它们都是用来检测两个或多个对冲组合是否cointegrated的工具,cadf针对两个元素的组合而johansen可以对付多个组合
  • 主流软件都有对应的模组供直接调用,matlab通过jplv7 package模组而py通过statsmodels模组
  • 通过线性回归的原理得出hedge ratio对冲比率
  • cadf对标准数列需要指定所以需要算两次而johansen无需指定所以一次计算搞定
  • 其生成结果与adf测试类似,需要和三个critical value(临界值)比较确定其stationarity的程度,而且其拟合参数可以用来作为对冲比率
拿l和m的收盘
阅读  ┆ 禁止转载 ┆ 收藏 
分类: 新系统开发
任何策略指定之前都需要知道该策略针对什么市场,什么品种,一个均值回归策略奏效的前提是该策略对应的交易品种或者组合是一个stationarity序列,而同时我们也需要知道该品种均值回归的周期,简单说就是价格平均多长时间会回归均值,这个周期称之为‘halflife’,它就是我们计算平均值和标准差的窗口,通常来说一个序列越接近稳定序列它的回归周期halflife越短,对应的λ系数越小,先看看原理:



一个均值回归策略的制定第一步是通过基本的统计工具测试计算找到稳定序列,然后根据上面原理计算halflife,之后根据这个作为计算策略指标
阅读  ┆ 禁止转载 ┆ 收藏 
(2020-02-15 14:38)
分类: 新系统开发
挑选了期货市场过去9年主要活跃品种进行测试,计算出来的hurst系数与adf系数的相关性系数接近0.5,具有明显的正相关性,hurst系数越接近0其stationarity特征越强,反过来大于0.5就反映序列的趋势特征明显,对于0.5上下的数值基本可以认为是随机漫步,这个也可以通过adf测试相互验证,而对于adf系数来说除了具体数值之外还需要和三个critical_value比较,这两个工具都可以用来观察一个序列的mean_reverting程度,总体来说大部分期货品种都呈现出随机游走的特征,hurst系数在0.5上下的占多数,这些品种的adf数值也远没有达到10%的critical_value水平,一点也不意外,总体来说大部分真实市场的单一价格序列都非常接近随机游走的特征

阅读  ┆ 禁止转载 ┆ 收藏 
pip install smop
去Anaconda2安装路径找smop.exe运行
打开cmd去.m文件路径运行smop xx.m后出现一行行str,然后生成xx.py
不过这个转换后和直接看matlab代码没太大区别
阅读  ┆ 禁止转载 ┆ 收藏 
分类: 新系统开发
常见的对冲组合(hedge)在股票里指的是同行业的股票,期货指的是长短合约,当然我们可以找任意两个品种跨行业的品种进行组合不过这种组合的稳定性有待商榷,无论如何我们的目的是需要寻找最佳的组合进行对冲,这里需要理清楚mean_reverting(均值回归),Stationarity(稳定),Cointegration(协整)和Correlation(相关)之间的差别,一个序列具有mean_reverting的特征此序列称之为stationarity, 对于典型的均值回归策略最重要的是需要寻找一个Stationarity的序列,无论是单一品种还是组合对冲,Stationarity主要指的是一个序列价格始终围绕着一个标准价格运动(这个标准价格多是隐藏价格来衡量两个对冲品种之间的差异,对于期货而言就是某个品种的隐藏价格(长短合约都会朝这个价格靠拢),而且不一定是静止的多半是运动的,更加需要注意的是所谓的序列价格多半是经过权重计算的,并不是两个品种之间的直接加减,其中多项式拟合是一个常用工具来找到对应的头寸比例来计算序列价格,而这个权重计算系数称之为hedge ratio对冲系数),所以任何单一品种不太容易找到稳定的Stationarity序列,组合对冲(hedging)更加常见,这个具体均值回归的程度可以用adf测试,hurst系数计算还有V
阅读  ┆ 禁止转载 ┆ 收藏 
(2020-02-09 17:41)
量化交易的核心之一就是寻找价格与时间的关系,我们的目的是寻找一种序列值和时间之间稳定的关系,稳定的关系要求之一就是对于任何交易品种得出的关系图形都必须一致,而且对时间窗口长度不敏感,但矛盾的是我们已知价格序列本身并不是稳定序列(stationary), 所以任何尝试寻找价格和时间之间的直接关系是徒劳的,但是寻找价格的变化率(return)和时间的关系却容易得多,这个关系在求解Hurst系数的过程中得到一定的启发,hurst系数本身反映了一个价格序列里面有多少百分比是随机的,其数值从0到1,小于0.5偏向随机,大于0.5则偏向于趋势,求解hurst系数本身是一个估算的过程,计算步骤比较复杂而且方法很多,本文并不想探讨hurst系数的计算过程,但是我们能在hurst系数计算原理上面得出一些启示,针对的是真实市场的时间序列,基本上我们日常打交道的都是时间序列,例如价格走势,波动率走势,成交量走势等等二维数据都称之为时间序列,这些都在本文的讨论范围

先看看原理:
阅读  ┆ 禁止转载 ┆ 收藏 
(2020-02-07 18:01)
分类: wavelet
小波转换一个重要功能就是压缩,就是在能还原的基础上尽量把数据压缩,除了前文提到的haar,D4等基本转换之外还有一种叫packet的转换,转换原理的区别就是packet的coef系数在每一个spectrum计算完后也会作为源数据参与下一个spectrum的计算,这与haar的coef系数只计算一次把avg作为源数据计算下一个spectrum不一样,如下图:

基本的packet转换很简单,py实现如下:


packet转换复杂的地方是best basis和cost func,cost func是筛选函数,用来得到best basis,我们先从原理看一下:
阅读  ┆ 禁止转载 ┆ 收藏 
分类: wavelet
除了前文介绍的d4之外在haar的基础上有四个改进版,haar和linear是通过even预测odd(predict),然后根据Odd更新even(update),interp(多项式插入)是在前两个步骤后面加一个interp步骤,而最后的modification里面把update放在第一步然后才进行predict, 这个predict的步骤其实就是interp,具体四个原理如下图:


下面是具体四个改进版本的Py代码,所有代码都和下载的java代码校验过确定无误
代码有点长,我写了一个class_wavelets_predict的类归纳这四种方法
通用函数


linear
阅读  ┆ 禁止转载 ┆ 收藏 
分类: wavelet
小波预测(wavelets predict)的基本原理就是通过even预测odd, 如下图



文章中介绍的predict方法有三种,分别常规的haar模型,然后是linear和Polynomial Interpolation
要理解这三种原理先要弄懂下面三幅图:




阅读  ┆ 禁止转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有