デュアルレールトレンドトラッキング戦略 (Dual Rail Trend Tracking Strategy) は,ボリンジャーバンドをベースとした短期間の取引戦略である.この戦略は,ボリンジャーバンドの上下両レールを,短期間の取引を実施するための買い売り信号として利用する.
この戦略の主な構成要素は以下の通りである.
ボリンジャーバンドの中部,上部,下部レールを計算する.中部レールは閉盤価格のn日間の単純な移動平均値で,ボリンジャーバンドの幅は閉盤価格のn日間の標準偏差の2倍で決定される.
閉じる価格が下から下線を越えるとロングで,閉じる価格が上から下線を越えるとポジションを閉じる.
デフォルト n 値は 20 日で,市場状況に応じて調整できます.帯域の幅は標準偏差倍数で制御されます.デフォルトは 2x です.
この戦略は シンプルで 実行が簡単で 市場の動向を効果的に追跡し 変動から利益を得ることができます
双列車戦略には以下の利点があります.
シンプルで直感的な論理で 簡単に実行できます
市場の変化をタイムリーに追跡し,短期的な取引機会を把握できる.
数学的根拠を提供するボリンジャー帯の統計特性を利用します
早期入国や遅延した出出出を防ぐ
パラメータは異なる市場状況に合わせて調整できます.
市場動向を予測する必要はない ただ市場をフォローするだけです
この戦略にはいくつかのリスクもあります:
ボリンジャー・バンドはトレンド逆転点を正確に予測できません
誤った信号が多くなるかもしれない
範囲限定市場でのノイズを効果的にフィルタリングできません
合理的なボリンジャー・バンドのパラメータが必要で,そうでなければ戦略のパフォーマンスに影響を与える可能性があります.
市場統合の際にこの戦略を使用しないべきです.
遅延がある 追跡エラーを監視すべきだ
パラメータを調整し,他の指標と組み合わせてリスクを減らすことができます.
この戦略は,次の側面で最適化できます.
MACD,KDJなどの他の指標と組み合わせると 誤った信号をフィルターします
変化する市場状況に基づいてボリンジャー帯のパラメータを動的に調整します.
ストップ・ロスを設定し 利益を取って 単一の取引リスクを適切に制御します
入口と出口を最適化します.例えば帯が完全に浸透するまで待つ.
移動平均長度,標準偏差倍数等に関するパラメータ最適化
方向性取引における牛と熊の市場を区別する.
デュアルレール戦略は,シンプルで実用的な短期取引戦略である.短期トレンドを効果的に把握するためにボリンジャーバンドの統計特性を利用する.この戦略は,単純な論理で実行しやすいが,いくつかの欠点もある.さらなる最適化は,ライブ取引でのパフォーマンスを向上させることができる.全体として,デュアルレール戦略は,短期取引機会を探している投資家に適している.
/*backtest start: 2023-08-18 00:00:00 end: 2023-09-17 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Strategy", overlay=true) length = input.int(20, minval=1) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev offset = input.int(0, "Offset", minval = -500, maxval = 500) plot(basis, "Basis", color=#FF6D00, offset = offset) p1 = plot(upper, "Upper", color=#2962FF, offset = offset) p2 = plot(lower, "Lower", color=#2962FF, offset = offset) fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95)) // Buy condition: Price crosses below the lower Bollinger Band buy_condition = ta.crossover(src, lower) strategy.entry("Buy", strategy.long, when=buy_condition) // Sell condition: Price crosses above the upper Bollinger Band sell_condition = ta.crossunder(src, upper) strategy.close("Buy", when=sell_condition)