BB%B戦略は,ボリンジャーバンドの百分比B値を投資決定に利用する定量的な取引戦略である.価格がボリンジャーバンドの上下線に近づくときに購入・売却信号を生成することができ,トレンドフォロー戦略に属する.
この戦略は,最初に指定された期間における閉値のSMAと標準偏差を計算し,ボリンジャーバンドの上下線を得ます. BB%B指標は,公式 (現在の価格 - 下線) / (上線 - 下線) によって計算されたボリンジャーバンド内の現在の価格の位置を表します. BB%Bが過売値を下回ると,購入信号が生成されます. BB%Bが過売値を超えると,販売信号が生成されます. 取引信号が起動した後,BB%Bが逆の値に戻ると,ポジションが閉鎖されます.
具体的には,戦略はまず21日間のSMAと2倍標準偏差を計算し,ボリンジャーバンドの上下線を得ます.その後,現在の閉じる価格
この戦略は,現在の価格が上向きまたは下向きに過剰に伸びているかどうかを判断するためにBB%B指標に依存し,また,現在のトレンド方向を判断するためにSMAを使用する.価格がボリンジャーバンドレールを超えると取引信号を生成する.異なるパラメータを調整することで,戦略の頻度を調整することができます.
ボリンジャー帯の上下線は,現在の価格の一定の標準偏差範囲を表している.上下線信号超売状態に近づいたり触れたりする価格が,下下線信号超売状態に近づいたり触れたりしている. BB%B戦略は,適切なエントリーと出口点を決定するためにこの特徴を完全に利用する.
BB%B
ボリンジャー帯で過剰購入/過剰売却の決定に加えて,SMAを組み合わせて全体的な傾向を判断し,トレンドに反する取引を避ける.
価格がボリンジャーバンドレールに初めて触れたとき,オーバーバイト/オーバーセールの可能性は高いが,短期的な偽ブレイクでもあり得る.この戦略はプルバックの
この戦略は,トレンドに反して取引と損失につながる可能性のある全体的な傾向を無視して,潜在的な逆転を決定するためにボリンジャーバンド指標のみを見ています.
引き戻し限界が高く設定された場合,トレンドの逆転がタイミングでポジション変更を誘発せず,機会を逃す可能性があります.
市場変動が増加すると,上下線間の距離も増加し,入口と出口の価格差が大きくなり,取引ごとにリスクが高くなります.
長期戦略と比較して,この戦略は取引頻度が高く,取引コストとスライドが高くなります.
トレンドを決定する指標をMACDやKDJに追加して トレンドの方向に沿った取引を誘発するだけで,反トレンドの取引を避ける.
取引リスクごとに固定額または百分比ストップ損失を制御し,損失拡大を避ける.
最適なパラメータ組み合わせを見つけ,より多くのノイズをフィルタリングし,安定性を改善するために,SMA期間,BB%Bの
異なる製品については,影響を減らすために,取引コストプロファイルに基づいて,取引頻度が低いようにパラメータを調整する.
BB%B戦略は,シンプルで実践的な定量的な取引戦略である.潜在的な逆転価格点を特定するためにボリンジャーバンドを使用し,トレンド方向性のためにSMAと組み合わせ,過買い/過売値の周りに取引する.この戦略は頻度調整に柔軟である.しかし,全体的なトレンド,ストップ損失,取引コストなどの要因を考慮し,さらなる改善を必要とするリスクもあります.安定性と収益性を高めるために.適切に使用すると,BB%B戦略は定量的な取引システムの効果的な構成要素になることができます.
/*backtest start: 2023-08-25 00:00:00 end: 2023-09-24 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // strategy(title = "BB%B Strat", shorttitle = "BB%B Strat", format=format.price, precision=2, default_qty_type=strategy.percent_of_equity, default_qty_value=20) length = input.int(21, minval=1) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") ob = input.float(1.2, "Overbought Line", step=0.1) ob_close = input.float(1.0, "Overbought Close", step=0.1) os = input.float(-0.2, "Oversold Line", step=0.1) os_close = input.float(0.2, "Oversold Close", step=0.1) basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev bbr = (src - lower)/(upper - lower) p = plot(bbr, "Bollinger Bands %B", color=#26A69A) ob_hline = hline(ob, "Overbought", color=color.red, linestyle=hline.style_dashed) obc_hline = hline(ob_close, "Overbought Close", color=color.red, linestyle=hline.style_dashed) os_hline = hline(os, "Oversold", color=color.green, linestyle=hline.style_dashed) osc_hline = hline(os_close, "Oversold Close", color=color.green, linestyle=hline.style_dashed) fill(ob_hline, obc_hline, color=color.new(color.red, 80), title="Overbought") fill(os_hline, osc_hline, color=color.new(color.green, 80), title="Overbought") bgcolor(bbr > ob ? color.new(color.fuchsia, 80) : (bbr < os ? color.new(color.lime, 80) : na)) if bbr < os and strategy.position_size == 0 strategy.entry("L", strategy.long) if bbr >= os_close and strategy.position_size > 0 strategy.close_all() if bbr > ob and strategy.position_size == 0 strategy.entry("S", strategy.short) if bbr <= ob_close and strategy.position_size < 0 strategy.close_all()