Python 金融量化 道路突破策略(唐奇安道路突破策略&布林带通道及其市场风险)

设定上、下、中通道线初始值

upboundDC = pd.Series(0.0, index=Close.index)

downboundDC = pd.Series(0.0, index=Close.index)

midboundDC = pd.Series(0.0, index=Close.index)

求唐奇安上、中、下通道

for i in range(20,len(Close)):

upboundDC[i] = max(High[(i-20):i])

downboundDC[i] = min(Low[(i-20):i])

midboundDC[i] = 0.5 * (upboundDC[i] + downboundDC[i])

upboundDC = upboundDC[20:]

downboundDC = downboundDC[20:]

midboundDC = midboundDC[20:]

绘制2020年洛阳钼业价格唐奇安通道上中下轨道线图

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

plt.plot(Close[‘2020’], label=“Close”, color=“k”)

plt.plot(upboundDC[‘2020’], label=“upboundDC”, color=“b”, linestyle=“dashed”)

plt.plot(midboundDC[‘2020’], label=“midboundDC”, color=“r”, linestyle=“-.”)

plt.plot(downboundDC[‘2020’],label=“downboundDC”, color=“b”, linestyle=“dashed”)

plt.title(“2020年洛阳钼业股价唐奇安通道”)

plt.xlabel(‘日期’)

plt.ylabel(‘values’)

plt.grid(True)

plt.legend()

plt.show()

生成图像效果如下:

在这里插入图片描述

  • 以价格运动趋势来观察,我们不难看出,当整体价格趋势呈现出上升趋势的时候,三条均线也同时会呈现出一定的上升趋势;当股价大幅回落的时候,三条线也会有明显的向下运动趋势。

  • 从曲线的平滑程度来观察,价格线的上下波动较频繁,且三条轨道线相对平滑。从上下通道的间距情况大致可以看出来股价的震荡情况。股价波动较小时,两条轨道线的间距大致稳定,股价波动较大时,带宽也时大时小,股价与中间轨道交叉的次数也越多。


2.2 在K线图中绘制唐奇安上下通道线


未来看到更多的价格信息和股票价格运动情况,我们在K线图中绘制唐奇安的上下通道线,代码如下:

s = mpf.make_mpf_style(base_mpf_style=‘nightclouds’, rc={‘font.family’: ‘SimHei’}) # 解决mplfinance绘制输出中文乱码

add_plot=[

mpf.make_addplot(upboundDC[‘2020’]),

mpf.make_addplot(midboundDC[‘2020’]),

mpf.make_addplot(downboundDC[‘2020’])]

mpf.plot(df[‘2020’], type=‘candle’, style=s, title=‘洛阳钼业2020年K线图及唐奇安通道线’, addplot=add_plot, volume=True)

图像效果如下:

在这里插入图片描述

这里选择的时间跨度较大,实际研究可以选择更细节的时间跨度。

使用mplfinance库我们只需要传入参数mav,就可以添加上指定时间跨度的均线图一起研究(以5日,10日,20日,40日为例):

s = mpf.make_mpf_style(base_mpf_style=‘nightclouds’, rc={‘font.family’: ‘SimHei’})

add_plot=[

mpf.make_addplot(upboundDC[‘2020’]),

mpf.make_addplot(midboundDC[‘2020’]),

mpf.make_addplot(downboundDC[‘2020’])]

mpf.plot(df[‘2020’], type=‘candle’, style=s, title=‘洛阳钼业2020年K线图附唐奇安通道线及均线’, mav=(5,10,20,40),addplot=add_plot, volume=True)

效果展示如下

唐奇安通道布林通道都是常用的技术分析指标,用于判断股票价格的趋势和波动情况。下面是对唐奇安通道布林通道的介绍和Python代码实现: 1. 唐奇安通道 唐奇安通道是由三条轨道线构成的,分别是通道上界、通道下界和中轨道。其中,通道上界等于过去20日内的最高价,通道下界等于过去20日内的最低价,中轨道等于通道上界和通道下界的平均值。唐奇安通道突破是指股票价格突破通道上界或通道下界,这通常被视为一个买入或卖出信号。 2. 布林通道 布林通道也是由三条轨道线构成的,分别是通道上界、通道下界和中轨道。其中,通道上界等于中轨道加上两倍的标准差,通道下界等于中轨道减去两倍的标准差,中轨道等于股票价格的移动平均线。布林通道突破是指股票价格突破通道上界或通道下界,这通常被视为一个买入或卖出信号。 下面是Python代码实现唐奇安通道布林通道: ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt # 计算唐奇安通道 def donchian_channel(high, low, window=20): channel_up = high.rolling(window=window).max() channel_down = low.rolling(window=window).min() channel_mid = (channel_up + channel_down) / 2 return channel_up, channel_down, channel_mid # 计算布林通道 def bollinger_band(close, window=20, k=2): std = close.rolling(window=window).std() band_up = close.rolling(window=window).mean() + k * std band_down = close.rolling(window=window).mean() - k * std band_mid = close.rolling(window=window).mean() return band_up, band_down, band_mid # 读取股票数据 df = pd.read_csv('stock.csv', index_col='date', parse_dates=True) # 计算唐奇安通道布林通道 channel_up, channel_down, channel_mid = donchian_channel(df['high'], df['low']) band_up, band_down, band_mid = bollinger_band(df['close']) # 绘制K线图和唐奇安通道布林通道 fig, ax = plt.subplots(figsize=(16, 8)) ax.set_title('Stock Price') ax.set_ylabel('Price') ax.grid(True) candlestick_ohlc(ax, zip(mdates.date2num(df.index.to_pydatetime()), df['open'], df['high'], df['low'], df['close']), width=0.6, colorup='red', colordown='green') ax.plot(df.index, channel_up, label='Donchian Channel Up', color='blue') ax.plot(df.index, channel_down, label='Donchian Channel Down', color='blue') ax.plot(df.index, band_up, label='Bollinger Band Up', color='orange') ax.plot(df.index, band_down, label='Bollinger Band Down', color='orange') ax.legend(loc='upper left') plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值