金融数据分析与挖掘 -2
貌似三个月没有更新博客园了,当时承诺的第二篇金融数据分析与挖掘这几天刚好又做了总结,在国内经济不景气的现在来对这个话题结个尾。 1、(量化)投资的方法基础分析1.1 投资的两种方法
2、趋势追踪? ? ? ? ?趋势追踪,就是假设之前价格的上涨预示着之后一段时间内也会上涨,很多交易都是围绕着趋势追踪模型。比如各种突破的信号等。?趋势追踪属于技术分析。常用的技术指标:
接下来我们挨个分析,首先要了解一下什么是双均线策略双均线策略是量化策略中经典的策略之一,其属于趋势跟踪策略,实现思想如下:
分析
作用
2.1 MACD分析第一个问题,什么是什么是MACD指标,请看下图: ? ? ? ? 指数平滑异同移动平均线(Moving Average Convergence /Divergence,MACD)是股票交易中一种常见的技术分析工具,由Gerald Appel于1970年代提出,用于研判股票价格变化的强度、方向、能量,以及趋势周期,以便把握股票买进和卖出的时机。 2.1.1 MACD的原理以及计算公式原理:MACD的意义和双移动平均线基本相同,即由快、慢均线的离散、聚合表征当前的多空状态和股价可能的发展变化趋势,但阅读起来更方便。计算公式:
交易信号种类:
交易信号分析:
2.1.2 TA-Lib库进行指标运算2.1.3 接下来我们自己动手一步步计算MACD指标、然后画出图形效果图:第一步:导入包import pandas as pd import talib import matplotlib.pyplot as plt import numpy as np from mpl_finance import candlestick_ochl 第二步:获取股票日线数据实现思路和步骤是:
# 读取日线的数据 stock_day = pd.read_csv("./data/stock_day/stock_day.csv") stock_day = stock_day.sort_index()[:200] stock_day[‘index‘] = [i for i in range(stock_day.shape[0])] arr = stock_day[[‘index‘,‘open‘,‘close‘,‘high‘,‘low‘]].values 第三步:分析
方法: 使用股票的收盘价格(close)去计算MACD指标数据 快速移动周期为12,慢速移动周期为26,DIF的移动平均线的周期为9日# dif: 12, 与26日的差别 # dea:dif的9日以移动平均线 dif,dea,macd_hist = talib.MACD(stock_day[‘close‘].values,fastperiod=12,slowperiod=26,signalperiod=9)
# 构造画布,里面包含了一个axes fig,axes = plt.subplots(nrows=1,ncols=1,figsize=(20,8),dpi=100) # 产生一个x的单维数组 index = [i for i in range(200)] # 画出dif这根差离值线 plt.plot(index,dif,color=‘y‘,label="差离值 DIF") plt.plot(index,color=‘b‘,label="讯号线 DEA") # 画出MACD柱状图 # 分开正负的柱状图去画出来 # 画第一个bar, macd_hist,如果大于0, 保留当前值,如果小于0,变为0,得出一个red_hist # 画出第二个bar,macd_hisr,如果小于0, 保留当前值,如果大于0,直接变为0 red_hist = np.where(macd_hist > 0,macd_hist,0) green_hist = np.where(macd_hist < 0,0) plt.bar(index,red_hist,label="红色MACD值",color=‘r‘) plt.bar(index,green_hist,label="绿色MACD值",color=‘g‘) # 显示一下K线图对比MACD指标图 candlestick_ochl(axes,arr,width=0.2,colorup=‘r‘,colordown=‘g‘) plt.legend(loc="best") plt.show() ? ? 了解一下背离分析,如果解释得不全面可以自行百度:当股价创新低,但MACD并没有相应创新低(牛市背离或顶背离),视为利多讯息,股价跌势或将完结。相反,若股价创新高,但MACD并没有相应创新高(熊市背离或底背离),视为利空讯息。我们对MACD做个总结? ? ? MACD是一种中长线的研判指标。当股市强烈震荡或股价变化巨大(如送配股拆细等)时,可能会给出错误的信号。所以在决定股票操作时,应该谨慎参考其他指标,以及市场状况,不能完全信任差离值的单一研判,避免造成损失。2.2 RSI分析什么是RSI?2.2.1 RSI相对强弱指数相对强弱指数(RSI)是通过比较一段时期内的平均收盘涨数和平均收盘跌数来分析市场买沽盘的意向和实力,从而作出未来市场的走势。注:RSI在1978年6月由WellsWider创制的一种通过特定时期内股价的变动情况计算市场买卖力量对比,来判断股票价格内部本质强弱、推测价格未来的变动方向的技术指标。2.2.2 RSI原理和计算方法
为了更好的理解上面的公式,通过下面的计算案例:2.2.3 RSI交易信号判断RSI值的意义
长短线结合来判断交易
2.2.4 RSI指标计算以及交易判断实现
# 通过taLib计算出RSI的指标值 # 断线RSI short_rsi = talib.RSI(stock_day[‘close‘].values,timeperiod=6) # 长线RSI long_rsi = talib.RSI(stock_day[‘close‘].values,timeperiod=12) 交易判断实现
# 进行交易的一个判断 for i in range(1,200): # 取出短线RSI s = short_rsi[i] # 取出长线的RSI值 l = long_rsi[i] # 交易信号信号输入 # 卖出信号:在交叉点之前,短线< 长线,交叉点之后:断线 >长线 if s < 45 and short_rsi[i-1] < long_rsi[i-1] and short_rsi[i] > long_rsi[i]: # 进行买入 print("买入某某股票多少股") # 交易信号,卖出的判断:在交叉点之前,短线 > 长线,交叉点之后:短线 <长线 if s > 65 and short_rsi[i-1] > long_rsi[i-1] and short_rsi[i] < long_rsi[i]: print("卖出的某某股票多少股") ? 我们对RSI做个总结? ??尤其在市场剧烈震荡时,还应参考其它指标进行综合分析,不能简单地依赖RSI的信号来作出买卖决定,可以和MACD结合一起使用。2.3 布林线分析2.3.1 BOLL指标布林线(BOLL)利用统计原理,求出的标准差及其信赖区间,从而确定股价的波动范围及未来走势,利用波带显示股价的安全高低价位,因而也被称为布林带。其上下限范围不固定,随股价的滚动而变化。股价波动在上限和下限的区间之内,这条带状区的宽窄,随着股价波动幅度的大小而变化,股价涨跌幅度加大时,带状区变宽,涨跌幅度狭小盘整时,带状区则变窄。
2.3.2 BOLL指标的计算方法BOLL指标的计算公式
强弱指标的计算公式如下
2.3.3 BOLL交易信号判断BOLL布林线的意义
2.3.4 BOLL布林线计算以及交易判断实现
upperband,middleband,lowerband = talib.BBANDS(df["close"].values[:200],timeperiod=20,nbdevdn=2,nbdevup=2) candlestick_ochl(axes[2],quotes=arr,colordown=‘g‘); axes[2].plot(range(200),upperband) axes[2].plot(range(200),middleband) axes[2].plot(range(200),lowerband) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |