サイドウェイズブレークスルー振動戦略 (Sideways Breakthrough Oscillation Strategy) は,ボリンジャーバンドとMACDインジケーターを用いて購入・販売シグナルを決定する定量的な取引戦略である.この戦略は,主に株式指数先物,フォレックス,デジタル通貨などの振動製品に適している.この戦略の主なアイデアは,価格がボリンジャーバンドの上下帯を突破すると購入・販売シグナルを発行することである.
横向突破振動戦略は,価格変動の範囲を判断するためにボリンジャーバンドを使用する.ボリンジャーバンドには中帯,上帯,下帯が含まれます.中帯はn日間の単純な移動平均値で,上帯と下帯はそれぞれ中帯の上,下部のn日間の真の範囲のk倍です.価格が下帯を突破すると,市場は逆転する可能性があると考えられ,購入信号が発行されます.価格が上帯を突破すると,市場は逆転する可能性があると考えられ,販売信号が発行されます.
この戦略は,取引ポイントを決定するためにボリンガー帯を使用することに加えて,取引信号を決定するためにMACD指標も組み込む.MACD指標にはDIFライン,DEAライン,MACDラインが含まれます.DIFラインは12日指数移動平均値と26日指数移動平均値の差であり,DEAラインは9日指数移動平均値であり,MACDラインはDIFラインとDEAラインの差です.MACDラインがマイナスから正に変わるときに買い信号が生成され,正から負に変わるときに売り信号が生成されます.
ボリンジャーバンドとMACDインジケーターを組み合わせると,サイドウェイズブレークスルー振動戦略の取引信号生成規則は:価格がボリンジャーチャネルの下部バンドを突破すると購入信号が発行される.価格がボリンジャーチャネル上部バンドを突破すると販売信号が発行される.価格が再びチャネルレールを突破するとポジションを閉じる.
横向突破振動戦略には以下の利点があります.
横向突破振動戦略には多くの利点があるが,実際の取引には依然としていくつかのリスクがあり,これらは主に以下の側面に反映されている.
上記のリスクを減らすために,次の側面から最適化することができます:
横向突破振動戦略にはさらに最適化できる余地があり,主に以下の方向で行うことができます.
サイドウェイズブレークスルー振動戦略は,エントリーと出口タイミングを決定するためにボリンジャーバンドとMACD指標を統合し,両サイドの価格ブレークスルーを使用して振動傾向の逆転機会を効果的に捉えることができます.この戦略はシンプルで,パラメータ選択に柔軟で,さまざまな製品でうまく機能します.しかし,さらなるテストと最適化を必要とする戦略にはまだいくつかのリスクがあります.我々はいくつかの最適化アイデアを提案しました.継続的な改善により,この戦略のパフォーマンスはますます良くなると信じています.一般的に,サイドウェイズブレークスルー振動戦略は推奨される定量戦略です.
/*backtest start: 2023-12-26 00:00:00 end: 2024-01-02 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Seitwärtsdoppelpenetration", overlay=false) //Keltner Channel source = open useTrueRange = input(true) length = input(20, minval=1) mult = input(4.0) ma = sma(source, length) range = useTrueRange ? tr : high - low rangema = sma(range, length) upper = ma + rangema * mult lower = ma - rangema * mult crossUpper = crossover(source, upper) crossLower = crossunder(source, lower) //Entry buyEntry = cross(lower,source) sellEntry = cross(upper,source) if (cross(lower,source)) strategy.entry("buyEntry", strategy.long, comment="buyEntry") if (cross(source, upper)) strategy.entry("sellEntry", strategy.short, comment="sellEntry") buyExit = cross(source, upper) sellExit = cross(lower,source) strategy.close("buyEntry", buyExit) strategy.close("sellEntry", sellExit)