この戦略は,ボリンジャーバンドとストコスタスティックオシレーターに基づいた取引戦略である. 市場変動範囲を決定するためにボリンジャーバンドを使用し,市場のオーバーバイトとオーバーセール状態を判断するためにストコスタスティックオシレーターを使用する. 価格が上部ボリンジャーバンドを突破すると,戦略はロング;価格が下部ボリンジャーバンドを下回ると,戦略はショート. 同時に,戦略の正確性と信頼性を向上させるために,取引信号をフィルターするためにストコスタスティックオシレーターを使用する.
この戦略の核心は2つの技術指標である:ボリンジャーバンドとストカスティックオシレーターである.ボリンジャーバンドは3つの線から構成される:中間帯,上部帯,下部帯.中間帯は価格の単純な移動平均線であり,上部帯と下部帯は価格の標準偏差の一定倍数をプラスマイナスする中間帯である.価格が上部帯を超えると,市場は過買い可能であることを示す.価格が下部帯を下回ると,市場は過売り可能であることを示す.
ストカスティックオシレータは,2つの線から構成される. %K線と %D線. %K線は,最近の期間の最高値と最低値内の閉じる価格の位置を測定し, %D線は%K線の移動平均値である. %K線が%D線を越えると,市場は過買い可能であることを示す. %K線が%D線を下回ると,市場は過売り可能であることを示す.
この戦略は,これらの2つの指標を組み合わせます.価格が上位ボリンジャーバンドを突破し,ストカスティックオシレーター%K線が%D線を横切ると,戦略はロングになります.価格が下位ボリンジャーバンドを下回り,ストカスティックオシレーター%K線が%D線を下回ると,戦略はショートになります.この組み合わせは,不安定な市場での頻繁な取引を避けながら,市場のトレンドを効果的に把握することができます.
この戦略は,2つのクラシックな技術指標,ボリンジャーバンドとストカスティックオシレーターを組み合わせて,トレンドと振動する市場状態の両方で安定した収益を達成するためのシンプルで効果的な取引戦略です.この戦略にはいくつかのリスクと制限もありますが,適切な最適化と改善により,戦略のパフォーマンスと適応性をさらに向上させ,参照し学ぶ価値のある取引戦略になります.
/*backtest start: 2023-05-03 00:00:00 end: 2024-05-08 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Unique Bollinger Bands Strategy", overlay=true) src = input(close) length = input.int(34, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) 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 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)) // Parameters bbLength = input.int(34, title="Length", minval=1) bbMultiplier = input.float(2.0, title="Multiplier", minval=0.001, maxval=50) // Source priceData = close // Unique name for price data source // Bollinger Bands Calculation bbBasis = ta.sma(priceData, bbLength) bbDeviation = ta.stdev(priceData, bbLength) bbDeviationMultiplied = bbMultiplier * bbDeviation bbUpperBand = bbBasis + bbDeviationMultiplied bbLowerBand = bbBasis - bbDeviationMultiplied // Plot Bollinger Bands plot(bbBasis, color=color.blue, linewidth=2) plot(bbUpperBand, color=color.blue) plot(bbLowerBand, color=color.orange) // Strategy Logic for Entry and Exit enterLong = ta.crossover(priceData, bbUpperBand) enterShort = ta.crossunder(priceData, bbLowerBand) // Enter Long when price crosses over upper band if (enterLong) strategy.entry("Long", strategy.long) // Enter Short when price crosses under lower band if (enterShort) strategy.entry("Short", strategy.short) // Close Long when Short condition is met (i.e., price under lower band) if (enterShort) strategy.close("Long") // Close Short when Long condition is met (i.e., price over upper band) if (enterLong) strategy.close("Short")