700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 金融量化— 简单均值回归策略(Mean Reverting Strategy)

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

时间:2024-01-06 16:29:27

相关推荐

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

均值回归理论

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

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

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

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

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

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

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

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

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

python实现

0. 引库

%matplotlib inlineimport matplotlib.pyplot as pltimport seabornplt.style.use('seaborn')import matplotlib as mplmpl.rcParams['font.family'] = 'serif'import warnings; warnings.simplefilter('ignore') # 忽略警告信息

import numpy as npimport pandas as pdimport tushare as ts

1. 数据准备 & 回测准备

data = ts.get_k_data('hs300', start = '-01-01', end='-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 = 50data['SMA'] = data['price'].rolling(SMA).mean()

data.tail()

# 选取 阈值threshold = 250data['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填充为0data['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.018261strategy -0.080739dtype: float64

策略思想总结

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。