
この戦略は,ブリン帯の指標に基づいており,収束価格が上線を突破したときに多頭ポジションを開く,収束価格が下線を突破したときに空頭ポジションを開く.多頭平仓の条件は価格が中線を突破したため,空頭平仓の条件は価格が中線を突破したためである.この戦略は,ブリン帯の上線下線位置に対する価格の相対的な方向性を判断し,開拓ポジションのタイミングを利用する.
この戦略は,ブリンを介してトレンドを捕捉する古典的なトレンド追跡型の戦略である.戦略の論理は明確で,優位性は明らかであり,同時に一定のリスクもある.戦略のパフォーマンスを改善し,適応性を向上させることができる.しかし,いかなる戦略も限界があり,実際の市場状況と組み合わせて柔軟に適用する必要があります.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0
// This displays the traditional Bollinger Bands, the difference is
// that the 1st and 2nd StdDev are outlined with two colors and two
// different levels, one for each Standard Deviation
strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true)
src = input(close)
length = input.int(20, minval=1, title = "Length")
mult = input.float(2.0, minval=0.001, maxval=50, title = "Multiplier")
basis = ta.sma(src, length)
dev = ta.stdev(src, length)
dev2 = mult * dev
upper1 = basis + dev
lower1 = basis - dev
upper2 = basis + dev2
lower2 = basis - dev2
// Strategy
long_condition = ta.crossover(close, upper1)
short_condition = ta.crossunder(close, lower1)
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)
// Exit conditions
exit_long_condition = ta.crossunder(close, basis)
exit_short_condition = ta.crossover(close, basis)
if (exit_long_condition)
strategy.close("Long")
if (exit_short_condition)
strategy.close("Short")
colorBasis = src >= basis ? color.blue : color.orange
pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0))
fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pUpper1, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))
fill(pLower1, pLower2, color=color.new(color.orange, 80))