根据指定股票通道指标的算法,能用过去一定时间段的交易数据绘制出上下两条通道线,即价格通道里的上下轨道。一般来说,当股价向上突破上轨时,即预测后市将涨,反之当股价向下突破下轨时,即预测后市将跌。
这里将根据若干算法,计算并绘制多种价格通道,从中大家一方面可以积累股市分析的经验,另一方面还能进一步掌握基于pandas的数据分析方法,以及基于matplotlib的可视化技巧。
1 计算并绘制唐奇安通道
唐奇安通道是由上阻力线、下支撑线和中心线这三条线组成。
上阻力线 = 过去N天的最高价
下支撑线 = 过去N天的最低价
中心线 =(上线 + 下线)除以 2
在实际的分析场景里,N的取值一般是20,在如下的DisplayDonChannel.py范例中,就用20天为周期,来计算并绘制唐奇安通道。
复制代码
01 # coding=utf-8
02 import pandas as pd
03 import matplotlib.pyplot as plt
04 from mpl_finance import candlestick2_ochl
05 # 读数据
06 stockDf = pd.read_csv(‘D:/work/data/ch11/600530.ss.csv’)
07 fig, ax = plt.subplots()
08 candlestick2_ochl(ax = ax, opens=stockDf[“Open”].values, closes=stockDf[“Close”].values, highs=stockDf[“High”].values, lows=stockDf[“Low”].values, width=0.75, colorup=‘red’, colordown=‘green’)
09 stockDf[‘up’] = stockDf[‘High’].rolling(window=20).max()
10 stockDf[‘up’].plot(color=“green”,label=‘上阻力线’)
11 stockDf[‘down’] = stockDf[‘Low’].rolling(window=20).min()
12 stockDf[‘down’].plot(color=“navy”,label=‘下支撑线’)
13 stockDf[‘mid’] = (stockDf[‘up’]+stockDf[‘down’])/2
14 stockDf[‘mid’].plot(color=“red”,label=‘中心线’)
15 ax.set_ylabel(“收盘价(元)”)
16 ax.grid() # 带网格线
17 ax.legend() # 绘制图例
18 #设置x轴文字间隔和旋转角度
19 index=stockDf.index[stockDf.index%70]
20 xtics=stockDf[‘Date’][stockDf.index%70]
21 plt.xticks(index,xtics)
22 plt.setp(plt.gca().get_xticklabels(), rotation=30)
23 plt.rcParams[‘font.sans-serif’]=[‘SimHei’]
24 plt.title(“600530交大昂立20天唐奇安通道效果图”)
25 plt.show()