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

article/2025/9/19 9:11:59

目录

  • 获取数据
  • 1.通道突破简介
  • 2.唐奇安通道(Donchian Channel)
    • 2.1 唐奇安通道刻画
    • 2.2 在K线图中绘制唐奇安上下通道线
    • 2.3 Python捕捉唐奇安通道突破
    • 2.4 选择不同时间跨度
  • 3.布林带通道
    • 3.1 布林带通道概述
    • 3.2布林带通道计算方式
    • 3.3 开始编码
    • 3.4 布林带通道线及K线图绘制
    • 3.5 布林带通道与市场风险
      • 3.5.1 布林带通道的正态分布思想
      • 3.5.2 构造布林带风险函数
  • 4. 道路突破交易策略制定
    • 4.1 一般布林带上下通道突破策略
    • 4.2 特殊布林带通道突破策略

获取数据

照常,第一步我们首先要通过接口获取股价数据。我以Tushare接口获取的2020年全年洛阳钼业股价数据(603993.SH)数据为例。

# 导入相关模块
import numpy as np
import tushare as ts
import pandas as pd
import mplfinance as mpf
import matplotlib.pyplot as plttoken = 'Your token'   # 输入你的接口密匙,获取方式及相关权限见Tushare官网。
pro = ts.pro_api(token)
df = pro.daily(ts_code='603993.SH')  # daily为tushare的股票数据接口。# 将获取到的DataFrame数据进行标准化处理,转换为方便自己使用的一种规范格式。
df = df.loc[:, ['trade_date', 'open', 'high', 'low', 'close', 'vol']]
df.rename(columns={'trade_date': 'Date', 'open': 'Open','high': 'High', 'low': 'Low','close': 'Close', 'vol': 'Volume'},inplace=True)       # 重定义列名,方便统一规范操作。
df['Date'] = pd.to_datetime(df['Date'])  # 转换日期列的格式,便于作图
df.set_index(['Date'], inplace=True)  # 将日期列作为行索引
df = df.sort_index()  # 倒序,因为Tushare的数据是最近的交易日数据显示在DataFrame上方,倒序后方能保证作图时X轴从左到右时间序列递增。

1.通道突破简介

股市行情充满随机性,往往是“横看成岭侧成峰,远近高低各不同”。一次上涨或下跌是短期的波动,还是已经到来的大势,很难判断。通道模型适度地解决了这一难题,它利用过去的价格信息,绘制出了上下两条通道线(上轨,下轨),以此设定股价的相对高低界限。通道线可以包容市场波动行情的部分信息,过滤震荡行情中均线系统“假”突破信号。通道线除了涵盖市场价格高低信息以外,两条通道线的距离也体现了股票价格的震荡幅度。当价格波动幅度较小时,通道的宽度较小,当价格震荡较大时,通道线的宽度也相应变大。通道突破模型将价格高低价格震荡幅度融合在一起,成为判断市场中长期趋势的常用技术分析指标。


2.唐奇安通道(Donchian Channel)

唐奇安通道流行于上世纪七十年代,由著名海龟交易员Richard Donchian发明,最早用于日内交易,其主要思想是寻找一定时间内(如20日)出现的最高价和最低价,将最高价和最低价分布作为通道的上下轨道,当价格突破上轨道时,说明股价运动较强势,释放出买入信号;当价格线向下突破下轨道的时候,空方市场较为强势,市场下跌趋势较为明显,则释放出卖出信号。


2.1 唐奇安通道刻画

唐奇安通道由三条轨道线构成:

  • 通道上界 = 过去20日内的最高价
  • 通道下界 = 过去20日内的最低价
  • 中轨道 = 通 道 上 界 + 通 道 下 界 2 \displaystyle {\frac{通道上界 + 通道下界}{2} } 2+

绘图代码示例:

# 提取收盘价,最高价,最低价数据
Close = df.Close
High = df.High
Low = df.Low# 设定上、下、中通道线初始值
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)

效果展示如下:
在这里插入图片描述


2.3 Python捕捉唐奇安通道突破

选定一个时间段后,唐奇安通道突破的主要规则是:当价格线走强,而突破前n期的最高价时做多;当价格线向下运动,价格低于前n期最低价时做空。一般而言,n=20为投资者较为常用的时间段设定。
我们继续以20日为时间跨度,捕捉唐奇安通道突破日期,设定买卖点交易,并计算交易获胜率。

# 首先,先定义向上突破和向下突破函数upbreak()和downbreak()
def upbreak(tsLine, tsRefLine):n = min(len(tsLine), len(tsRefLine))tsLine = tsLine[-n:]tsRefLine = tsRefLine[-n:]signal = pd.Series(0, index=tsLine.index)for i in range(1, len(tsLine)):if all([tsLine[i]>tsRefLine[i], tsLine[i-1]<tsRefLine[i-1]]):signal[i] = 1return(signal)# downbreak()函数
def downbreak(tsLine, tsRefLine):n = min(len(tsLine), len(tsRefLine))tsLine = tsLine[-n:]tsRefLine = tsRefLine[-n:]signal = pd.Series(0, index=tsLine.index)for i in range(1, len(tsLine)):if all([tsLine[i] < tsRefLine[i], tsLine[i-1] > tsRefLine[i-1]]):signal[i] = 1return(signal)# 唐奇安通道突破策略
UpBreak = upbreak(Close[upboundDC.index[0]:], upboundDC)
DownBreak = downbreak(Close[downboundDC.index[0]:], downboundDC)# 制定交易策略
# 上穿,signal为1
# 下穿,signal为-1
# 合并上下穿突破总信号
BreakSig = UpBreak - DownBreak
# 计算预测获胜率
tradeSig = BreakSig.shift(1)['2020']
ret = Close / Close.shift(1) - 1  # 这里的Close依然是全时间序列的
tradeRet = (ret * tradeSig).dropna()  # 一次乘法加dropna()之后,Close()多的时间序列就被过滤掉了。
winRate = len(tradeRet[tradeRet > 0]) / len(tradeRet[tradeRet != 0])
print(winRate) 

在这里插入图片描述

2.4 选择不同时间跨度

唐奇安通道突破的规则相对简单,但是要注意,时间跨度n的选择尤为重要。n的取值不同,结果也随之而变,寻找合适的时间跨度n是唐奇安通道突破策略的关键。

# 在20到60的时间跨度中寻找该股票唐奇安通道突破策略胜率最大 的时间跨度
list1 = []
list2 = []
for m in range(20,61):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(m,len(Close)):upboundDC[i] = max(High[(i-m):i])downboundDC[i] = min(Low[(i-m):i])upboundDC = upboundDC[m:]downboundDC = downboundDC[m:]midboundDC = midboundDC[m:]# 唐奇安通道突破策略UpBreak = upbreak(Close[upboundDC.index[0]:], upboundDC)DownBreak = downbreak(Close[downboundDC.index[0]:], downboundDC)BreakSig = UpBreak - DownBreak# 计算预测获胜率tradeSig = BreakSig.shift(1)['2020']ret = Close / Close.shift(1) - 1  # 这里的Close依然是全时间序列的tradeRet = (ret * tradeSig).dropna()  # 一次乘法加dropna()之后,Close()多出的时间序列就被过滤掉了。winRate = len(tradeRet[tradeRet > 0]) / len(tradeRet[tradeRet != 0])list1.append(m)list2.append(winRate)
print('该股票2020年唐奇安道路突破策略时间跨度为m为{}时胜率最大为{}'.format(list1[list2.index(max(list2))], max(list2))) 

结果输出:
在这里插入图片描述

结果我们可以看出,在20-60的时间跨度内,2020年度选择50日日时间跨度是唐安奇通道突破策略胜率最大。


3.布林带通道

3.1 布林带通道概述

  • “布林通道”又称“布林带状(Bollinger Bands, BBands)”,或者保力加通道,是通道的形式之一。与唐奇安通道类似,布林带通道也有刻画股票价格变化和波动幅度大小的作用。布林带通道是由美国投资者约翰·布林格(John Bollinger)在20世纪后期结合统计学理论发明的一种技术分析指标。
  • 在分析股价运动时,一般选取股价平均线作为参照线,而布林带在均线的基础上增添了上下两条“股价通道”线。布林带的中轨道线是股价的平均线,上通道为均线加上一定倍数的标准差,下通道则是均线减去一定倍数的标准差得到的。
  • 布林带通道的趋势主要由中轨道平均线决定,当平均线呈现上升趋势的时候,布林带通道也会向上走,当平均线走低时,布林带通道也会有向下的趋势。布林带通道的宽由股价的标准差决定;而股价的标准差刻画了股价波动的范围的大小,当股价的波动较大时,标准差较大,布林带通道带宽也越大;反之股价波动幅度较小的时候,标准差较小,布林带带宽会相应变窄。

3.2布林带通道计算方式

  • 布林带中轨道线: μn = 1 n ∑ i = 1 n p i \displaystyle {\frac{1}{n} }{\sum_{i=1}^n p_i } n1i=1npi
    其中un是第t期观测到的前n期股票价格均值
  • 第t期观测到,股价在过去n期的标准差为
    σn = 1 n ∑ i = 1 n ( p i − μ n ) 2 \displaystyle \sqrt{{\frac{1}{n}}{\sum_{i=1}^n \left(p_i-μ_n \right)^2}} n1i=1n(piμn)2
  • 布林带上轨道线值 B u p _ n \displaystyle \ B_{up\_n}  Bup_n
    B u p _ n \displaystyle \ B_{up\_n}  Bup_n = un + a × σn
  • 布林带下轨道线值 B d o w n _ n \displaystyle \ B_{down\_n}  Bdown_n
    B d o w n _ n \displaystyle \ B_{down\_n}  Bdown_n = un - a × σn
  • a表示标准差的倍数。
  • 从上述公式可以看出,时间区间n和标准差倍数a的取值可以影响到布林带三条通道的计算结果。一般吧n取值为20天,a取值为2,依此设定暂有:
  • σ20 = 1 20 ∑ i = 1 n ( p i − μ 20 ) 2 \displaystyle \sqrt{{\frac{1}{20}}{\sum_{i=1}^n \left(p_i-μ_{20} \right)^2}} 201i=1n(piμ20)2
  • B u p _ 20 \displaystyle \ B_{up\_20}  Bup_20 = u20 + a × σ20
  • B d o w n _ 20 \displaystyle \ B_{down\_20}  Bdown_20 = u20 - a × σ20

3.3 开始编码

# 定义布林带通道函数bbands()
def bbands(tsPrice, period=20, times=2):upBBand = pd.Series(0.0, index=tsPrice.index)midBBand = pd.Series(0.0, index=tsPrice.index)downBBand = pd.Series(0.0, index=tsPrice.index)sigma = pd.Series(0.0, index=tsPrice.index)for i in range(period-1, len(tsPrice)):midBBand[i] = np.nanmean(tsPrice[i-(period-1):(i+1)])   # nanmean忽略Nan计算均值sigma[i] = np.nanstd(tsPrice[i-(period-1):(i+1)])    # nanstd忽略Nan计算标准差upBBand[i] = midBBand[i] + times * sigma[i]downBBand[i] = midBBand[i] - times * sigma[i]BBands = pd.DataFrame({'upBBand':upBBand[(period-1):],\'midBBand':midBBand[(period-1):],\'downBBand':downBBand[(period-1):],\'sigma':sigma[(period-1):]})return(BBands)											# 计算20日布林带通道线
LymyBBands = bbands(Close, 20, 2)
# 提取数据
UpBBands = LymyBBands.upBBand['2020']
DownBBands = LymyBBands.downBBand['2020']
MidBBands = LymyBBands.midBBand['2020']

3.4 布林带通道线及K线图绘制

s = mpf.make_mpf_style(base_mpf_style='nightclouds', rc={'font.family': 'SimHei'}) 
add_plot=[mpf.make_addplot(UpBBands),mpf.make_addplot(DownBBands),mpf.make_addplot(MidBBands)]
mpf.plot(df['2020'], type='candle', style=s, title="洛阳钼业2020年K线图及布林带通道线", addplot=add_plot, volume=True)

生成图像效果如下:
在这里插入图片描述

  • 价格接近或突破上轨道或下轨道表明市场处于明显上涨或下跌趋势。
  • 蜡烛图上下波动大的时候,布林带通道的带宽也相对较大。
  • 蜡烛图波动幅度小的时候,布林带通道的带宽也相对较小。
  • 整体而言,K线图大部分都在通道内部运行,K线图与布林带中轨道多次交叉,但价格基本上在布林带上下通道内部运动,布林带通道过滤掉了部分价格穿破均线的“虚假信号”。

3.5 布林带通道与市场风险

3.5.1 布林带通道的正态分布思想

布林带通道的设定蕴含着统计学原理,假设股票价格走势呈现正态分布,正态分布是关于均值呈对称分布的均值加减两倍标准差范围内的数据大概占据了整个数据的95.44%,布林带通道以价格的平均值加减两个标准差来设定上下通道。
从正态分布的角度来看,布林带通道刻画了股票价格的主要变化范围,即大部分时间股价都在布林带通道内运动,股价只有大约5%的概率会突破布林带通道的上轨道或者下轨道。因此在正常情况下,当价格线超出布林带通道的上轨道或者下轨道的时候,可以认为价格线有偏离,未来价格很可能回落到布林带通道内部。
在这里插入图片描述

  • 由于布林带通道的设定与标准差的倍数有关,布林带通道可以与股市风险联系起来一起分析市场行情。当以加减2倍标准差刻画时,股价有95.44%的概率在正负2倍标准差内部波动,异常波动的概率为4.56%。
  • 将股价波动到布林带通道外部的情况定义为布林带风险(Bollinger Risk)
  • 由统计学原理,在置信水平为α的条件下,布林带风险BRα 的计算公式为: BRα = d m d t × 100 \displaystyle \frac{d_m}{d_t}×100% dtdm×100
    其中 ,dt 表示观察的股价数据总期数,dm表示观察期内股价在布林带上下通道外部的总期数。一般而言,置信水平为α的取值可以为1%,5%或者10%。在不同置信水平下,布林带上下通道的界定不同。
    α=10%时, B u p _ n \displaystyle \ B_{up\_n}  Bup_n = un + 1.65 × σn B d o w n _ n \displaystyle \ B_{down\_n}  Bdown_n = un - 1.65 × σn
    α=5%时, B u p _ n \displaystyle \ B_{up\_n}  Bup_n = un + 1.96 × σn B d o w n _ n \displaystyle \ B_{down\_n}  Bdown_n = un - 1.96 × σn
    α=1%时, B u p _ n \displaystyle \ B_{up\_n}  Bup_n = un + 2.58 × σn B d o w n _ n \displaystyle \ B_{down\_n}  Bdown_n = un - 2.58 × σn

3.5.2 构造布林带风险函数

# 构建布林带风险函数
def CalBollRisk(tsPrice, multiplier):k = len(multiplier)overUp = []belowDown = []BollRisk = []for i in range(k):BBands=bbands(tsPrice, 20, multiplier[i])a = 0b = 0for j in range(len(BBands)):tsPrice=tsPrice[-(len(BBands)):]if tsPrice[j] > BBands.upBBand[j]:a += 1elif tsPrice[j] < BBands.downBBand[j]:b += 1overUp.append(a)belowDown.append(b)BollRisk.append(100*(a+b)/len(tsPrice))return(BollRisk)
# 设定不同的置信水平,来比较洛阳钼业股价在不同年份的布林带风险
multiplier = [1, 1.65, 1.96, 2, 2.58]
  • 下边计算不同年份的布林带风险
# 2016
price2016 = Close['2016']
BBandRisk2016 = CalBollRisk(price2016,multiplier)
print(BBandRisk2016)

结果如下:
在这里插入图片描述

#2017
price2017 = Close['2017']
BBandRisk2017 = CalBollRisk(price2017,multiplier)
print(BBandRisk2017)

结果如下:
在这里插入图片描述

#2018
price2018 = Close['2018']
BBandRisk2018 = CalBollRisk(price2018,multiplier)
print(BBandRisk2018)

结果如下:
在这里插入图片描述

#2019
price2019 = Close['2019']
BBandRisk2019 = CalBollRisk(price2019,multiplier)
print(BBandRisk2019)

结果如下:
在这里插入图片描述

#2020
price2020 = Close['2020']
BBandRisk2020 = CalBollRisk(price2020,multiplier)
print(BBandRisk2020)

结果如下:
在这里插入图片描述
由以上数据可知,置信水平α越大,对应的布林带通道越窄,布林带突破上下界的机会也就越大,因此呈现出的布林带风险也就越大。


4. 道路突破交易策略制定

4.1 一般布林带上下通道突破策略

布林带通道最常见的策略就是根据价格线突破布林带通道上下界来制定交易策略。

  • 当股价向上突破布林带上通道的时候,股票可能产生了异常上涨,未来股价会跌落到布林带通道内部,此时宜看空。
  • 当股价向下突破布林带下通道时,股票可能产生了异常跌势,未来股价会上升到布林带通道内部,此时宜做多。
# 布林带上下通道突破策略
BBands = bbands(Close['2020'], 20, 2)
upbreakBB1 = upbreak(Close, BBands.upBBand)
downbreakBB1 = downbreak(Close, BBands.downBBand)# 信号出现两天后进行交易
upBBSig1 = upbreakBB1.shift(2)
downBBSig1 = downbreakBB1.shift(2)
tradSignal1 = upBBSig1 + downBBSig1
tradSignal1[tradSignal1 == -0] = 0
  • 构造交易评价函数
def perform(tsPrice, tsTradSig):ret = tsPrice/tsPrice.shift(1) - 1tradRet = (ret * tsTradSig).dropna()ret = ret[-len(tradRet):]winRate = [len(ret[ret > 0]) / len(ret[ret != 0]), len(tradRet[tradRet > 0]) / len(tradRet[tradRet != 0])]meanWin = [np.mean(ret[ret > 0]), np.mean(tradRet[tradRet > 0])]meanLoss = [np.mean(ret[ret < 0]), np.mean(tradRet[tradRet < 0])]Performance = pd.DataFrame({'WinRate': winRate, 'meanWin': meanWin, 'meanLoss': meanLoss})Performance.index = ['Stock', 'Trade']return Performance
#计算平均损失、平均获胜率以及交易获胜率
Performance1 = perform(Close['2020'], tradSignal1)
print(Performance1)

输出结果:
在这里插入图片描述


4.2 特殊布林带通道突破策略

布林带通道的上下轨道线的刻画,由选取的时间周期和标准差倍数两部分决定。如果布林带通道线设定不合理,股票价格向上穿过布林带上通道先以后,中短期内一直出于上升趋势,且不会回落到通道线内部,或者股价跌破布林带下通道线以后,可能会比较晚地回升到下通道线上方。为了降低“回落到通道内部”这个期望落空的风险,可以改变布林带通道突破交易策略。交易规则如下:

  • 当价格线由布林带上通道线的上方穿到布林带通道内部的时候,说明股价从异常上升行期要恢复到正常波动行期,股票短期有下跌趋势,此时做空。
  • 当价格线由布林带下通道的下方穿到布林带通道内部时,说明股价从异常下跌行期要恢复到正常波动行期,股票短期有上升趋势,此时做多。

交易代码如下

# 另一种布林带通道突破策略
# 价格向上穿下通道,做多
# 价格向下穿上通道,看空upbreakBB2 = upbreak(Close['2020'], BBands.downBBand)
downbreakBB2 = downbreak(Close['2020'], BBands.upBBand)# 交易执行
upBBSig2 = upbreakBB2.shift(2)
downBBSig2 = - downbreakBB2.shift(2)
trdaSignal2 = upBBSig2 + downBBSig2# 交易策略实现
Performance2 = perform(Close['2020'], trdaSignal2)
print(Performance2)

输出结果如图所示:
在这里插入图片描述


本次的分享就到这里,感谢大家的访问与支持,您的支持将是博主坚持更新的最大动力!如果博主的文章对您的学习或者交易能够有所帮助,别忘了小手指点一下界面的 收藏+关注。更多金融量化精彩内容敬请关注!


http://chatgpt.dhexx.cn/article/OHabj7Tk.shtml

相关文章

常用技术指标之一文读懂BOLL布林线指标

什么是布林线指标&#xff1f; 布林线BOLL指标(Bollinger Bands)是股市技术分析的常用工具之一&#xff0c;由美国金融分析师John Bollinger根据移动平均线和统计学中的标准差原理于1980年代设计出来。 如上图所示&#xff0c;布林线指标由上、中、下三条轨线组成&#xff0c;…

Python绘制BOLL布林线指标图

写在前面布林线&#xff08;BOLL&#xff09;技术指标简介BOLL公式详解参数设置 用到的主要Python库Python代码&详解参考文献推荐阅读 写在前面 本文代码部分总结自Packt出版社的《Learn Algorithmic Trading - Fundamentals of Algorithmic Trading》&#xff08;图1&…

Boll布林带突破策略

1.策略原理 一个很简单的策略 突破上轨&#xff0c;且Rsi没有超卖时做多&#xff0c;价格回归中轨时平仓 代码&#xff1a; seting {name: BB, symbol: ETHUSDT, kTime: 15m, bb_len: 129, bb_mult: 2.259, rsi_len: 22, rsi_long_min: 15, rsi_long_max: 76, rsi_short_mi…

布林带-BOLL (Bollinger Band)

也叫布林通道。 一般价格的波动是在一定的区间内的&#xff0c;区间的宽度代表价格的变动幅度&#xff0c;越宽表示价格变动幅度越大&#xff0c;越窄表示价格变动幅度越小。 布林带由支撑线(LOWER)、阻力线(UPER) 和中线(MID) 三者组成。 价格突破阻力线/支撑线,表示卖出/买入…

如何利用布林带构建量化交易策略?

布林带之于交易就像莎士比亚之于文学&#xff0c;如果你想在交易世界中留下印记&#xff0c;这非常重要而且很难避免。布林带是一种技术指标&#xff0c;用于以更好的方式分析市场并帮助我们对资产价格做出更好的假设&#xff0c;即资产是否超买或超卖。 布林带实际上由三个波…

量化进阶—— 高胜算交易策略(布林线)

阅读原文&#xff1a;京东量化平台-为投资者提供数据支持、策略开发到策略输出的量化生态服务 京东金融官方资讯QQ群:417082141 有什么想咨询的都可以来询问我们哦 金融投机家保持100笔交易成功率达85%以上&#xff0c;得益于高胜算的趋势交易策略。综合技术应用顾比均线系统、…

【量化交易笔记】6.布林带的实现

上一讲介绍A股移动平均值&#xff08;MA&#xff09;指标&#xff0c;本讲我们来讲解布林布的实现。 布林线&#xff08;BOLL&#xff09;技术指标简介 布林线&#xff08;Bollinger Bands&#xff0c;BOLL&#xff09;又称布林带&#xff0c;是约翰布林&#xff08;John Bol…

Python股票量化学习(3)——简单的策略回测

搞一个简单的交易策略回测&#xff08;难点的我也不会啊&#xff09;。此策略基于布林通道&#xff0c;当股价低于布林通道下轨线且持仓为0时&#xff0c;以下轨线价格全仓买入&#xff08;不关心风险&#xff0c;反正也不要本钱&#xff09;。当股价突破布林线上轨且有持仓时&…

量化交易——布林带策略

一、布林带策略介绍 布林带/布林线/保利加通道(Bollinger Band)&#xff1a;由三条轨道线组成&#xff0c;其中上下两条线分别可以看成是价格的压力线和支撑线&#xff0c;在两条线之间是一条价格平均线。 一般来说&#xff0c;股价会运行在压力线和支撑线所形成的通道中。 与M…

【vn.py】源码解析之布林通道(BollChannel)策略

文章目录 Boll&#xff08;布林线&#xff09;指标CCI&#xff08;Commodity Channel Index&#xff09;指标布林通道策略布林通道策略源码分析1、完整源码2、策略参数与变量3、策略执行逻辑 Boll&#xff08;布林线&#xff09;指标 布林线是一种金融衍生品价格走势图中常用的…

量化交易——传统技术分析布林通道BollingerBands的原理及实现

布林通道 布林通道线是根据统计学的标准差来计算的&#xff0c;其具体可由上中下三条曲线展示。其中上下两线分别代表上升压力线和下降支撑线&#xff0c;故而可以根据K线图是否突破布林曲线来判断较好的买卖节点。三条曲线计算方法如下&#xff1a; 中轨线(MID)收盘价的M日移…

Lyndon的量化修炼之路——布林通道优化策略(二)

策略参数优化 //期市妖风大&#xff0c;小心被刮飞。本文不构成任何实质性建议&#xff0c;也不对任何依此进行的交易结果负责参数优化几乎是优化每一个量化交易策略的必经之路&#xff0c;对于参数优化的基本方法已经在双均线优化策略中介绍过&#xff0c;再次不多做介绍&…

【Python量化】布林带策略

文章目录 一、计算布林带三、构建策略&#xff0c;计算持仓头寸序列和买卖信号序列四、计算策略收益五、绘制交易信号 此文章首发于公众号&#xff1a;Python for Finance 链接&#xff1a;https://mp.weixin.qq.com/s/CJR2gwXkkzFRavZ8I98qdw 布林带&#xff08;BOLL&#x…

Lyndon的量化修炼之路——布林通道优化策略(一)

//期市妖风大&#xff0c;小心被刮飞。本文不构成任何实质性建议&#xff0c;也不对任何依此进行的交易结果负责经过某位大佬的提醒&#xff0c;原来大白有另外的含义&#xff0c;侵权了侵权了&#xff08;原谅我孤陋寡闻&#xff09;&#xff0c;所以还是简单点好。 我也不知…

现货黄金指标精讲(布林通道)

现货黄金的特点在于可以多空双向交易&#xff0c;如果投资者能精通一到两种的技术分析手段&#xff0c;必定能大幅提高交易的成功率。布林通道指标不仅能揭示金价运行的趋势&#xff0c;还能提供清晰的买卖信号&#xff0c;帮助长、中、短线的投资者提高交易决策的质量。 一、布…

布林通道 Bollinger Bands——非炒股向个人学习笔记

有一组数据&#xff0c;大多数是以时间序列的数据&#xff0c;如年、月、日为度量的某指标变化。&#xff08;上图的绿线不用管&#xff09; 布林通道的作用是描述数值的近期波动程度&#xff0c;具体表现就表现在轨道的收窄与拓宽上。 一、基本概念 作图需设定的变量&#x…

eclipse安装教程与使用教程

第一首先在电脑的浏览器中输入“eclipse官网”。 然后在网页中点击进入eclipse的官方下载网站。 2 第二然后再点击页面右边的“download”。 在弹出的页面下面点击“download packages”。 3 第三然后在下面找到“eclipse IDE for java developers”的选项。 在选项右边有…

eclipse基础实用教程

一、打开eclipse&#xff0c;创建java文件 1.点击eclipse.exe文件 Workspace&#xff1a;&#xff08;这个是你写的代码存放位置&#xff0c;可以自己选择创建一个文件夹&#xff09; 2.新装的eclipse中在new里面未找到java project&#xff0c; 点击Open Perspective&#…

eclipse使用教程(图文)

很多人都知道要用eclipse来做java开发&#xff0c;但很多的新手朋友却不知道怎么下载和安装eclipse。下面给你介绍一下怎么下载和安装eclipse来用于自己的学习或者项目开发&#xff0c; 很多人都知道要用eclipse来做java开发&#xff0c;但很多的新手朋友却不知道怎么下载和安装…

Eclipse详细安装教程

Eclipse安装教程 前言一、Eclipse是什么&#xff1f;二、安装步骤1. Eclipse下载下载网址 2. Eclipse安装 前言 Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。 一、Eclipse是什么&#xff1f; Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言…