ダブル・ドンキアン・チャネル・ブレイクアウト戦略は,ドンキアン・チャネルをベースとした定量的な取引戦略である.この戦略は,低リスク高リターンブレイクアウト取引を達成するために,速いと遅いドンキアン・チャネルの組み合わせを使用する.価格がスローチャネルを突破してストップ損失で退出したとき,ロング/ショートまたは価格が高速チャネルを突破すると利益を得ます.
この戦略は主に2つのドンチアンチャンネルを利用し,より長い期間を持つより遅いチャンネルと,より短い期間を持つより速いチャンネルを含む.
スロードンキアンチャネルは,市場騒音を効果的にフィルタリングできるより長い期間を持ち,ブレイクアウト信号をより信頼性のあるものとする. ストラテジーは,価格がスローチャネルの上部帯を超えると長続きし,価格が下部帯を下回ると短縮する.
迅速なドンキアンチャネルは,短期的な価格変動に迅速に対応できる短い期間を有します.価格がこのチャネルを通って戻ると,トレンドの逆転をシグナル化し,ストップ損失または利益を得るための出口を提示します.
さらに,波動性条件はエントリー信号のフィルターとして設定されています.この戦略は,価格動きが事前に決定された百分比の限界を超えるとのみエントリーを起動します.これはレンジ限定統合中に頻繁なウィップソウを回避します.
これらのリスクは,パラメータの最適化,合理的なストップロスの配置,イベント認識などによって軽減できます.
ダブル・ドンキアン・チャネル・ブレイクアウト戦略は,全体として比較的安定した信頼性の高いトレンドフォロー戦略である.トレンドキャプチャとリスクコントロールの両方の強みを組み合わせ,さまざまな株式取引戦略における基本的なモジュールとして適している.パラメータチューニングと論理精製によりパフォーマンスのさらなる改善が期待できる.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © omererkan //@version=5 strategy(title="Double Donchian Channel Breakout", overlay=true, initial_capital = 1000, commission_value = 0.05, default_qty_value = 100, default_qty_type = strategy.percent_of_equity) slowLen = input.int(50, title="Slow Donchian") fastLen = input.int(30, title="Fast Donchian") volatility = input.int(3, title="Volatility (%)") longProfitPerc = input.float(2, title="Long TP1 (%)", minval=0.0, step=0.1) * 0.01 shortProfitPerc = input.float(2, title="Short TP1 (%)", minval=0.0, step=0.1) * 0.01 TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)") ubSlow = ta.highest(close, slowLen)[1] lbSlow = ta.lowest(close, slowLen)[1] ubFast = ta.highest(close, fastLen)[1] lbFast = ta.lowest(close, fastLen)[1] plot(ubSlow, color=color.green, linewidth=2, title="Slow DoCh - Upperband") plot(lbSlow, color=color.green, linewidth=2, title="Slow DoCh - Lowerband") plot(ubFast, color=color.blue, linewidth=2, title="Fast DoCh - Upperband") plot(lbFast, color=color.blue, linewidth=2, title="Fast DoCh - Lowerband") fark = (ubSlow - lbSlow) / lbSlow * 100 longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) longCondition = ta.crossover(close, ubSlow) and fark > volatility if (longCondition) strategy.entry("Long", strategy.long) shortCondition = ta.crossunder(close, lbSlow) and fark > volatility if (shortCondition) strategy.entry("Short", strategy.short) if strategy.position_size > 0 and ta.crossunder(close, lbFast) strategy.close("Long", "Close All") if strategy.position_size < 0 and ta.crossover(close, ubFast) strategy.close("Short", "Close All") // Take Profit if strategy.position_size > 0 strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice) if strategy.position_size < 0 strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)