均值回归理论

均值回归策略应用了股市投资中经典的高抛低吸思想,该类型策略一般在震荡市中表现优异; 但是在单边趋势行情中一般表现糟糕,往往会大幅跑输市场;

均值回归:“跌下去的迟早要涨上来” , 选股用, 不适合做择时,因为不知道什么时候是偏离最低

均值回归的理论基于以下观测:价格的波动一般会以它的均线为中心。也就是说,

当标的价格由于波动而偏离移动均线时,它将调整并重新归于均线。

定义偏离程度:(MA-P)/MA —MA均线,P价格

均值回归策略:在每个调仓日进行

计算股票池中所有股票的N日均线

计算股票池中所有股票与均线的偏离度

选取偏离度最高的M只股票并调仓,比如某只股票前几年波动较小,突然出现波动很大的情况,就有持有的价值

python实现

0. 引库

%matplotlib inline
import matplotlib.pyplot as plt
import seaborn
plt.style.use('seaborn')
import matplotlib as mpl
mpl.rcParams['font.family'] = 'serif'
import warnings; warnings.simplefilter('ignore')    # 忽略警告信息
import numpy as np
import pandas as pd
import tushare as ts

1. 数据准备 & 回测准备

data = ts.get_k_data('hs300', start = '2010-01-01', end='2016-06-30')[['date','close']]
data.rename(columns={'close': 'price'}, inplace=True)
data.set_index('date', inplace = True)
data['price'].plot(figsize = (10,8));

2. 策略开发思路

data['returns'] = np.log(data['price'] / data['price'].shift(1))
SMA = 50
data['SMA'] = data['price'].rolling(SMA).mean()
data.tail()

# 选取 阈值
threshold = 250
data['distance'] = data['price'] - data['SMA']
data['distance'].dropna().plot(figsize=(10, 6), legend=True);
plt.axhline(threshold, color='r');
plt.axhline(-threshold, color='r');
plt.axhline(0, color='r');     

 # 使用np.nan的作用是为了填充
data['position'] = np.where(data['distance'] > threshold, -1, np.nan) # data['position']作用是 不小于 -threshold和原来值相同, 不改变
data['position'] = np.where(data['distance'] < -threshold, 1, data['position']) # 穿越 data['distance']= 0 的点
data['position'] = np.where(data['distance'] * data['distance'].shift(1) < 0, 0, data['position'])# ffill() 向前填充  fillna(0) np.nan填充为0
data['position'] = data['position'].ffill().fillna(0)
data['position'].ix[SMA:].plot(ylim=[-1.1, 1.1], figsize=(10, 6));

3. 计算策略年化收益并可视化

data['strategy'] = data['position'].shift(1) * data['returns']
data[['returns', 'strategy']].dropna().cumsum().apply(np.exp).plot(figsize=(10, 6));

# 计算年化收益
data[['returns', 'strategy']].mean() * 252
returns    -0.018261
strategy   -0.080739
dtype: float64

策略思想总结

均值回归策略应用了股市投资中经典的高抛低吸思想,该类策略一般在震荡市中表现优异;但在单边趋势行情中一般表现糟糕,往往会大幅跑输市场

金融量化— 简单均值回归策略(Mean Reverting Strategy)相关推荐

  1. 量化投资 — 简单均值回归策略(Mean Reverting Strategy)

    均值回归_Mean Reverting Strategy 0. 引库 %matplotlib inline import matplotlib.pyplot as plt import seaborn ...

  2. 量化交易——均值回归策略

    一.均值回归理论 均值回归:股票价格无论高于或低于价值中枢(或均值)都会以很高的概率向价值中枢回归的趋势.何时会发生均值回归,属于"随机漫步"范畴. 均值回归的理论基于以下观测:价 ...

  3. 手把手教你用Python搭建自己的量化回测框架【均值回归策略】

    1 引言 大部分量化策略都可以归类为均值回归与动量策略.事实上,只有当股票价格是均值回归或趋势的,交易策略才能盈利.否则,价格是随机游走的,交易将无利可图.均值回归是金融学的一个重要概念,指股票价格无 ...

  4. 【量化策略系列】股票均值回归策略之一——配对交易策略(Pairs Trading)

    本文持续更新中.最后更新时间:11/11/2019 文章目录 1. 往期文章回顾 2. 均值回归策略简介 3. 配对交易策略简介 4. 配对交易策略构建流程 5. 代码实现与回测结果 Python 代 ...

  5. 量化交易 聚宽 均值回归策略

    量化交易 聚宽 均值回归策略 # 导入函数库 from jqdata import *# 初始化函数,设定基准等等 def initialize(context):# 设定沪深300作为基准set_b ...

  6. 布林线均值回归策略(股票)

    1. 原理 提起布林线均值回归策略,就不得不提布林带这个概念.布林带是利用统计学中的均值和标准差联合计算得出的,分为均线,上轨线和下轨线.布林线均值回归策略认为,标的价格在上轨线和下轨线围成的范围内浮 ...

  7. 【Python】均值回归策略回测(日内高频数据)

    文章采用均值为SMA(close, time_period = 3日),利用(收盘价 - 三日均线)计算偏离程度. 如果大于阈值(首个收盘价的2%)则开仓买入(卖出) 如果收盘价穿过均线说明均值偏离情 ...

  8. 数据分析--均值回归策略(选股)

    数据分析--均值回归策略(选股) 均值回归理论 均值回归:"跌下去的迟早要涨上来"  ,  选股用, 不适合做择时,因为不知道什么时候是偏离最低 均值回归的理论基于以下观测:价格的 ...

  9. Python 金融量化 均线系统交易策略专题(简单移动平均,加权移动平均,指数加权移动平均,异同移动平均MACD等解读与绘图)

    捕捉趋势最普遍的方法为移动平均线,根据求平均的方式不同,移动平均数又可分为简单移动平均数(Simple Moving Average, SMA),加权移动平均数(Weighted Moving Ave ...

最新文章

  1. R语言dplyr包arrage函数排序dataframe实战:单列排序、多列排序、自定义排序
  2. linux suse 共享目录_SUSE Linux 创建NFS共享文件夹
  3. 第四百一十六天 how can I 坚持
  4. CMAKE_CURRENT_BINARY_DIR
  5. AnimalTFDB 3.0:动物转录因子注释和预测的综合资源库
  6. python 调用另一个py_跟我自学python 第9章 类(9.4.6 在一个模块中导入另一个模块)...
  7. kerberos安装配置、配置kerberos server、client、日常操作与常见问题、卸载kerberos、hive整合kerberos
  8. java 抽象类与接口区别是什么_JAVA中抽象类与接口的区别,分别在什么情况下使用它们...
  9. 企业发卡修复版源码(短链二维码)
  10. oracle的merge into
  11. win32开发(文件、字体和色彩)
  12. [转载] python里字典的用法_python中字典(Dictionary)用法实例详解
  13. 全栈工程师的3个关键技能是什么?
  14. codeforces round #257 div2 C、D
  15. Apache HttpClient 客户端使用详解
  16. 算法设计与分析(第二版)上机实验题——Java实现
  17. Linux下J2sdk的安装
  18. 2019杭电多校训练营(第一场)
  19. 还想野蛮生长?互联网金融有《意见》了
  20. 【转】关于“手动重新生成注册表性能计数器”的问题

热门文章

  1. Linux kodi添加中文,开源媒体中心Kodi 18.2的安装与中文界面的设置
  2. 11.30黄金原油价格涨跌最新走势分析及黄金白银操作建议
  3. 【python】psnr原理简介及代码实现
  4. java数组从小到大排序_JAVA数组从小到大排序代码
  5. 从实际蹲坑中涨姿势之——彻底搞懂Mysql事务隔离级别
  6. python opencv压缩图片大小_使用OpenCV Python调整图像大小的最佳方法
  7. CAD填充:CAD制图软件中填充无效怎么办?
  8. 云计算ACA练习题5
  9. 程序员最爱-权利的游戏第八集第一集
  10. sklearn参数优化方法