不知如何选股?不知哪种指标策略可靠?量化分析比较VRSI、BBIBOLL、WR、BIAS、RSI指标策略收益情况

前言

从股票市场开始到现在,已经研究出了众多的指标,但是在使用的时候会发现,由于第二天股价的未知波动,指标显示的情况并不一定每次都准确,总是会存在误判的情况。对于这种不可避免的情况而言,我们只能想办法将其量化、计算根据策略操作后的收益率、估计误判的概率等

本文先选择了 VRSI、BBIBOLL、WR、BIAS、RSI 五种指标来量化(一共会考虑了三十多种指标,由于篇幅问题一次讨论五种),然后用十支股票来测试这五种策略的效果(实际情况是用了 3600+ 股票来统计策略效果,目前不方便展示结果)

免责声明

此构想和分析中的任何内容均不应解释为投资建议,过去的表现并不一定表示未来的结果。


指标策略量化分析

前言

免责声明

数据准备

指标介绍

VRSI指标

BBIBOLL指标

WR指标

BIAS指标

RSI指标

最后的量化结果




数据准备

选择了 600519 贵州茅台、600031 三一重工、002594 比亚迪、601633 长城汽车、002074 国轩高科、300750 宁德时代、300014 亿纬锂能、000591 太阳能、002475 立讯精密、600862 中航高科 这十支股票 2020年1月1日 ~ 2021年1月15日 的数据来测试

部分代码片段

import pandas_datareader.data as web

import datetime


start = datetime.datetime(2020, 1, 1)

end = datetime.datetime(2021, 1, 15)

df = web.DataReader(ticker, "yahoo", start, end)


指标介绍

VRSI指标

sma是平滑移动指标的计算函数

def vrsi(df, n=6):

_vrsi = pd.DataFrame()

_vrsi['date'] = df['date']

px = df['volume'] - df['volume'].shift(1)

px[px < 0] = 0

_vrsi['vrsi'] = sma(px, n) / sma((df['volume'] - df['volume'].shift(1)).abs(), n) * 100

return _vrsi

BBIBOLL指标

_ma是移动平均线的计算函数,_md是标准差的计算函数

def bbiboll(df, n=10, k=3):

# pd.set_option('display.max_rows', 1000)

_bbiboll = pd.DataFrame()

_bbiboll['date'] = df.date

_bbiboll['bbi'] = (_ma(df.close, 3) + _ma(df.close, 6) + _ma(df.close, 12) + _ma(df.close, 24)) / 4

_bbiboll['boll_md'] = _md(_bbiboll.bbi, n)

_bbiboll['upr'] = _bbiboll.bbi + k * _bbiboll.boll_md

_bbiboll['dwn'] = _bbiboll.bbi - k * _bbiboll.boll_md

return _bbiboll

WR指标

_ema是指数移动平均线的计算函数

def wr(df, n=14):

_wr = pd.DataFrame()

_wr['date'] = df['date']

higest = df.high.rolling(n).max()

_wr['wr'] = (higest - df.close) / (higest - df.low.rolling(n).min()) * 100

return _wr

BIAS指标

sma是平滑移动指标的计算函数

def bias(df, n=12):

_bias = pd.DataFrame()

_bias['date'] = df.date

_mav = df.close.rolling(n).mean()

_bias['bias'] = (np.true_divide((df.close - _mav), _mav)) * 100

return _bias

RSI指标

_md是标准差的计算函数

def rsi(df, n=6):

_rsi = pd.DataFrame()

_rsi['date'] = df['date']

px = df.close - df.close.shift()

px[px < 0] = 0

_rsi['rsi'] = sma(px, n) / sma((df['close'] - df['close'].shift()).abs(), n) * 100

return _rsi


最后的量化结果

由于篇幅和展示不便,不在文章中展示可视化的买入卖出点位以及资金变动曲线

为了最简洁的了解策略效果,初始资金设置为10000元,并且为了简便不考虑必须整手买入的限制,每次都10000元全部买入,测试五种指标策略效果的同时测试2020.1.1买入并持有到2021.1.15的策略,比较最后资金多少来衡量策略效果

HOLD行是表示2020.1.1买入并持有到2021.1.15的策略最后的资金


数据可视化在这里不作展示,有数据后可以按照自己的习惯绘图制表;更多的评估数据也不作展示

图表中我们注意到

600031 这支股票采用WR指标策略的收益要高于一直持有策略

并且WR指标策略在 601633 这支上也有优于一直持有策略的表现

000591这支股票采用BIAS指标策略的收益要高于一直持有策略

虽然大部分的情况下按照指标操作的效果并不如长期持有策略,但是策略没有持股的时候作为交易员当然会寻找新的机会,创造收益!


0 views0 comments

A leading day trading platform, specializing in U.S. equity markets with operations worldwide.

CONTACT US:

 

Mon - Fri 9:00 - 17:30 HK

‭+852 55745397

marketing@shewutrade.com

RM06,13A/F, South Tower, World Finance Centre, 17 Canton Road, Tsim Sha Tsui, HK.

Options involve risk and are not suitable for all investors. All investment strategies and investments involve risk of loss. Nothing contained in this website should be construed as investment advice. Any reference to an investment's past or potential performance is not, and should not be construed as, a recommendation or as a guarantee of any specific outcome or profit. Margin borrowing is only for experienced investors with high risk tolerance. You may lose more than your initial investment. Lower investment costs will increase your overall return on investment, but lower costs do not guarantee that your investment will be profitable. Any trading symbols displayed are for illustrative purposes only and are not intended to portray recommendations. Past performance is not necessarily indicative of future results.

  • Facebook
  • LinkedIn
  • Twitter
  • Instagram
  • TikTok
  • YouTube