本策略基于玻尔带指标设计,当价格突破玻尔带上下轨时,采取相应做多或做空操作。策略通过捕捉突破行情来获利。
具体来说,该策略首先计算长度为length的中轨SMA,以及以mult倍标准差计算的上下轨。当收盘价从下向上突破下轨时,做多入场;从上向下突破上轨时,做空入场。同时设置起止时间限定交易区间。每日开盘前强制平仓。
该策略试图捕捉价格突破上下轨后的扩张行情。突破下轨时看多方力量增强,突破上轨时看空方力量增强,这时交易同方向有利。
可通过优化入场条件,添加止损策略,引入趋势过滤等方式来降低上述风险。
本策略为基于玻尔带的突破策略,通过捕捉突破展开的行情获利。优点是思路简单,易于实现;缺点是容易受到曲折行情的误导。可通过参数优化、止损策略、交易时间控制等方式提高策略效果并控制风险。该策略可使交易者理解指标应用和突破交易的基本方法。
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy("Noro's Bollinger Strategy v1.0", shorttitle = "Bollinger str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
length = input(20, minval=1)
mult = input(1.0, minval=0.001, maxval=50)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
source = close
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
up = close < lower
dn = close > upper
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)
if up
strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
if dn
strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
if time > timestamp(toyear, tomonth, 31, 00, 00) or exit
strategy.close_all()