均值回归_Mean Reverting Strategy

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));

data.head()
price
date
2010-01-04 3535.229
2010-01-05 3564.038
2010-01-06 3541.727
2010-01-07 3471.456
2010-01-08 3480.130

2. 策略开发思路

data['returns'] = np.log(data['price'] / data['price'].shift(1))
SMA = 50
data['SMA'] = data['price'].rolling(SMA).mean()
data.tail()
price returns SMA
date
2016-06-24 3077.16 -0.012967 3135.5614
2016-06-27 3120.54 0.013999 3132.7446
2016-06-28 3136.40 0.005070 3129.9560
2016-06-29 3151.39 0.004768 3127.5396
2016-06-30 3153.92 0.000802 3126.0490
# 阈值
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');

data['position'] = np.where(data['distance'] > threshold, -1, np.nan)
data['position'] = np.where(data['distance'] < -threshold, 1, data['position'])
data['position'] = np.where(data['distance'] * data['distance'].shift(1) < 0, 0, data['position'])
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)

    均值回归理论 均值回归策略应用了股市投资中经典的高抛低吸思想,该类型策略一般在震荡市中表现优异: 但是在单边趋势行情中一般表现糟糕,往往会大幅跑输市场: 均值回归:"跌下去的迟早要涨上来&q ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 对于目前流行的量化投资与smart beta策略的一些看法

    转载自:http://www.dataguru.cn/article-5433-1.html 对于目前流行的量化投资,指数基金,以及smart beta,论坛里已经有帖子做了些介绍(见[1],[2]) ...

最新文章

  1. 34.2. terminal
  2. powermock模拟对象_使用PowerMock测试对象的内部状态
  3. c语言随机迷宫生成器,作为新手该如何快速上手 C++
  4. 阿里数据库内核月报:2015年06月
  5. Spring Security 学习-环境搭建(一)
  6. pycharm设置中文
  7. 谷歌翻译接口_QTranslate:电脑全局翻译神器
  8. [Ynoi2015]此时此刻的光辉
  9. codeforce #401 div2 Alyona and Spreadsheet 思维题
  10. android studio seekbar 简单音乐播放器
  11. AIGC在营销图片生成技术综述
  12. linux 上端口占用的程序
  13. java基于springboot+Vue+nodejs的高校运动会报名管理系统 element
  14. 制作U盘启动CDLinux
  15. 2020-12-16 今日学习Date类
  16. 每位iOS开发者不容错过的10大有用工具
  17. 无聊科技正经事周刊(第5期):五一长假与虚拟旅行
  18. PMP第六版_1~3章
  19. oracle_SQL实验一
  20. 大数据在职研究生哪个好_报考大数据在职研究生未来的就业的方向有哪些

热门文章

  1. 【UML建模】(X) UML建模之Enterprise Architect 15的使用
  2. 计算机如何将两个磁盘合在一起,Win7系统如何合并磁盘分区将两个或多个合并到一起...
  3. 力扣319——灯泡开关(数学)
  4. 堆——“数据结构与算法”
  5. 【iScroll源码学习01】准备阶段 - 叶小钗
  6. 使用button标签让文字垂直水平居中
  7. 计算机主板电池没电什么情况,主板电池没电了会出现什么情况
  8. SAP ABAP PAI里field module的on input和on request区别
  9. Unity 3d地形系统自定义画笔
  10. 【温故而知新-Javascript】为DOM元素设置样式