栏目:5000元炒股一年赚多少 作者:767股票学习网 更新:2026-06-18 阅读:7
<怎么买股票>期货新手必看:如何用BOLL闪电图做单,突破即信号怎么买股票>
导语:在股票交易当中,BOLL指标是一个非常常用的指标,因为它对股票价格的突破有很好的表现,在商品期货交易当中,BOLL指标也是一个很好的衡量突破的指标。之前已经有帖子展现了BOLL指标在股票交易中的一种应用方法如何用期货闪电图做单,本文旨在通过构建商品期货的BOLL信帯突破策略来展现BOLL指标在商品期货交易中的应用。
不知道BOLL指标?看这里↓
BOLL指标并不是一个单一指标,而是由三个不同的指标组成,三个指标构成的三条线构成了一个通道如何用期货闪电图做单,这个通道就叫做BOLL信道期货新手必看:如何用BOLL闪电图做单,突破即信号,具体长什么样子呢?我们来看一张图片:

图中可以很清楚的看出BOLL信道的上轨、中轨和下轨。
从图中可以看出如何用期货闪电图做单,商品期货的价格几乎都在BOLL信道之中波动,很少会突破BOLL信道,而一旦突破了BOLL信道上轨或下轨,往往便意味着一段向上或向下的小趋势的开始。
BOLL究竟怎么计算呢?
话不多说,先上公式!
中轨:
上轨:
下轨:
其中:其中:
。days表示计算days日的BOLL指标
。MID、UP与DOWN分别表示中轨、上轨与下轨
。a是一个置信系数,一般情况下默认取2:
C表示第i日收盘价:
。MA(days)表示的是days日的移动平均线,如果对移动平均线不太了解,可以查看量化课堂双均线策略。STD(days)表示的是days日的标准差,如果对标准差不太了解,可以查看量化课堂均值回归进阶策略
举个栗子
举个例子
这里我们取商品铜20日的价格. 8460.47290 47510 47380 4720 ,45020,45430., 44520, 45250., 44160, 44720, 45620, 45810. 45500.
则我们便可以计算BOLL中轨:
47450 + 47760 +. + -= 46235.520
计算标准差:

到这里我们已经会计算BOLL指标了,可以开始做策略了!
本帖策略
本帖策略的主要思想是将BOLL当做突破指标,当期货价格突破上轨,我们就做多仓,期货价格突破下轨我们就做空仓。
首先我们先来看一张沪铜期货分钟K线图:

从图中我们可以看到,当期货价格突破BOLL下轨之时,会有向下的趋势,当突破上轨之时,会有向上的趋势,在这个基本思想上,我们将这个策略补充完整。
当期货价格突破BOLL上轨之时,若有空头仓位,平空头仓位期货新手必看:如何用BOLL闪电图做单,突破即信号,建多头仓位:
当期货价格突破BOLL下轨之时,若有多头仓位,平多头仓位,建空头仓位;
当持有空头仓位时,若期货价格高于持仓期间最低价的1.15,则进行空头止损:
当持有多头仓位时,若期货价格低于持仓期间最高价的0.85,则进行多头止损:
每次建仓的数量(手)为(0.85总现金0.15每手吨数期货价格)/(
0.85总现金0.15每手吨数期货价格)
回测
让我们来看一看这个策略在回测中表现怎么样~

从图中我们可以看到,在趋势性明显的行情中,该策略都有很好的表现,但当市场趋势不明确的时候,该策略的表现就没有那么的突出。
因此不难得出结论:BOLL指标用作一个突破型指标需要市场有向上或者向下的趋势,而这也给我们对策略的优化提供了方向。
这一次的策略分享到这里就全部结束了,大家可以克隆下方策略代码,把自己对BOLL指标的理解运用在里边哦~
策略代码:
# 导入函数库
.api as sm
from .tsa.
## 初始化函数,设定基准等等
def ():
# 设置参数
()
# 设定沪深300作为基准
((g.))
# 开启动态复权模式(真实价格)
('', True)
# 过滤掉order系列API产生的比error级别低的log
log.('order', 'error')
# 初始化标的
g. = (g.)
g. = None
### 期货相关设定 ###
# 设定账户为金融账户
(
(cash=.., type='')
# 期货类每笔交易时的手续费是:买入时万分之0.23,卖出时万分之0.23,平今仓为万分之23
((=0., =0.,on=0.0023), type='')
# 设定保证金比例
('', 0.15)
# 运行函数(为运行时间的参考标的;传入的标的只做种类区分,因此传入'.CCFX'或'.CCFX'是一样的)
# 开盘前运行
( , time='', =(g.))
# 开盘时运行
( , time='', =(g.))
# 收盘后运行
( , time='', =(g.))
def ():
# 设置BOLL时间窗口
g. = 10
# 设置BOLL波动系数
g.dev = 2
# 最高价指标,用作移动止损
g. = 0
# 设置合约简称
g. = 'CU'
## 设置两个指标判断多空仓位情况
# 多头仓位
g. = False
# 空头仓位
g. = False
## 开盘前运行函数
def ():

## 获取要操作的股票(g.为全局变量)
# 获取当月沪深300指数期货合约
g. = (g.)
## 开盘时运行函数
def ():
# 当月合约
= g.
# 如果期货标的改变,重置参数
if g. == None:
g. = g.
elif g. != g.:
if g.:
(g., 0, side = 'long')
g. = False
elif g.:
(g., 0, side = 'short')
g. = False
g. = g.
g. = 0
("主力合约改变,平仓!")
## 交易
,,, = (.,,g.,g.dev)
# 前一bar收盘价高于布林带上线期货新手必看:如何用BOLL闪电图做单,突破即信号,且没有多头仓位
if p:
# 如果持仓空头
if g.:
('###############################################################')
(, 0, side='short')
g. = False
g. = 0
("空头仓位平仓成功!: {},: {}".(,))
# 创建多头仓位
if not g.:
('--------------------------------------------------------------')
= (,)
order(, , side='long')
if ... 0:
g. = True
g. = ...price
("收盘价高于上线,: {},: {}".(,))
("创建多头仓位成功,时间: "+str(..time()))
# 前一bar收盘价低于布林带下线,且没有空头仓位
if own:
# 如果持仓多头
if g.:
('###############################################################')
(, 0, side='long')
g. = False
g. = 0
("多头仓位平仓成功!: {},: {}".(,))
# 创建空头仓位
if not g.:
('--------------------------------------------------------------')
= (,)
order(, , side='short')
if ... 0:
g. = True
g. = ...price
("收盘价低于下线,: {},: {}".(,))
("创建空头仓位成功,时间: "+str(..time()))
if g. == True or g. == True:
# 判断今日是否出现最高价
(,)
# 得到止损信号
= (,)
# 止损平仓
if :
(, 0, side='short')
(, 0, side='long')
g. = False
g. = False
g. = 0
def (,):
if g. == True:
g. = min(...price,g.)
elif g. == True:
g. = max(...price,g.)
def (,):
if g. == True:
if ...price =1.15*g.:
("空头仓位止损,时间: "+str(..time()))
True
else:
False
elif g. == True:
if ...price = 0.85*g.:
("多头仓位止损,时间: "+str(..time()))
True
else:
False
def (dt,,win,d):
# 当月合约价格
= (win, '1d', 'close', )

# 计算过去20日的移动平均线作为中轨
mid=np.mean()
# 计算昨日20日的标准差
std=np.std()
#用up来保存昨日的上轨线
up=mid+g.dev*std
#用down来保存昨日的下轨线
down=mid-g.dev*std
up,mid,down,
def (,price):
= {'A':10, 'AG':15, 'AL':5, 'AU':1000,
'B':10, 'BB':500, 'BU':10, 'C':10,
'CF':5, 'CS':10, 'CU':5, 'ER':10,
'FB':500, 'FG':20, 'FU':50, 'GN':10,
'HC':10, 'I':100, 'IC':200, 'IF':300,
'IH':300, 'J':100, 'JD':5, 'JM':60,
'JR':20, 'L':5, 'LR':10, 'M':10,
'MA':10, 'ME':10, 'NI':1, 'OI':10,
'P':10, 'PB':5, 'PM':50, 'PP':5,
'RB':10, 'RI':20, 'RM':10, 'RO':10,
'RS':10, 'RU':10, 'SF':5, 'SM':5,
'SN':1, 'SR':10, 'T':10000, 'TA':5,
'TC':100, 'TF':10000, 'V':5, 'WH':20,
'WR':10, 'WS':50, 'WT':10, 'Y':10,
'ZC':100, 'ZN':5}
0.85*../(0.15*
g.
*price)
## 收盘后运行函数
def ():
pass
########################## 获取期货合约信息,请保留 #################################
# 获取当天时间正在交易的期货主力合约
def ():
= {'A':'A9999.XDCE', 'AG':'.XSGE', 'AL':'.XSGE', 'AU':'.XSGE',
'B':'B9999.XDCE', 'BB':'.XDCE', 'BU':'.XSGE', 'C':'C9999.XDCE',
'CF':'.XZCE', 'CS':'.XDCE', 'CU':'.XSGE', 'ER':'.XZCE',
'FB':'.XDCE', 'FG':'.XZCE', 'FU':'.XSGE', 'GN':'.XZCE',
'HC':'.XSGE', 'I':'I9999.XDCE', 'IC':'.CCFX', 'IF':'.CCFX',
'IH':'.CCFX', 'J':'J9999.XDCE', 'JD':'.XDCE', 'JM':'.XDCE',
'JR':'.XZCE', 'L':'L9999.XDCE', 'LR':'.XZCE', 'M':'M9999.XDCE',
'MA':'.XZCE', 'ME':'.XZCE', 'NI':'.XSGE', 'OI':'.XZCE',
'P':'P9999.XDCE', 'PB':'.XSGE', 'PM':'.XZCE', 'PP':'.XDCE',
'RB':'.XSGE', 'RI':'.XZCE', 'RM':'.XZCE', 'RO':'.XZCE',
'RS':'.XZCE', 'RU':'.XSGE', 'SF':'.XZCE', 'SM':'.XZCE',
'SN':'.XSGE', 'SR':'.XZCE', 'T':'T9999.CCFX', 'TA':'.XZCE',
'TC':'.XZCE', 'TF':'.CCFX', 'V':'V9999.XDCE', 'WH':'.XZCE',
'WR':'.XSGE', 'WS':'.XZCE', 'WT':'.XZCE', 'Y':'Y9999.XDCE',
'ZC':'.XZCE', 'ZN':'.XSGE'}
try:
:
': 无此合约'
# 获取当天时间正在交易的国债期货合约
def code(,,month=''):
'''
获取当天时间正在交易的国债期货合约。其中:
:
'T' #10年期国债期货
'TF' #5年期国债期货
month:
'' #最近期
'next' #次近期
'skip' #最远期
'''
= {'T':'10年期国债期货','TF':'5年期国债期货'}
= {'':0, 'next':1, 'skip':2}
=
n =
dt = ..date()
a = (types=
''
, date=dt)
try:
df = a
(a. == ) & (a. = dt) & (a. = dt)
df.index
:
': 无此合约'
# 获取金融期货合约到期日
def ():
# 获取金融期货合约到期日
().

