ドンキアン・トレンド戦略は,市場における潜在的なエントリー・アウトプット点を識別するためにドンキアン・チャネル指標を使用するトレンドフォローアプローチである.この戦略の主要なパラメータは,高値と低値の計算のためのバックバック期間を決定するドンキアン・チャネルの長さである.
トレーディング・シグナルをさらに精製するために,この戦略は2つの移動平均を組み込みます. 急速なMA (5期) と遅いMA (45期). 急速なMAが遅いMAを超えると買い信号が生成され,急速なMAが遅いMAを下回ると売り信号が生成されます.
この戦略の核心指標はドンキアン・チャネルである.ドンキアン・チャネルは,指定された期間で最も高い高値と最も低い低値を取ることで,上下チャネル線がそれぞれ高値と低値をつなげることで描かれている.チャネルの幅は市場の波動性を表している.
この戦略は,ドンチアンチャネルを利用してトレンド方向を決定する.特に,上方のチャネル上の価格が上昇傾向を示し,戦略は価格が上方のチャネルに近づく次のときにロングポジションを確立することを検討する.逆に,下方のチャネル下の価格が下降傾向を表し,戦略は価格が下方のチャネルに近づく次のときにショートポジションを構築することを検討する.
偽ブレイクアウトをフィルタリングするために,戦略は高速移動平均 (5期) とスロー移動平均 (45期) を組み合わせて取引信号を生成する.高速MAがスローMAを超えると購入信号が生成される.高速MAがスローMAを下回ると販売信号が生成される.
ストップ・ロスの出口は ドンチアン・チャネルに再び接近する価格に基づいて設定されます
この戦略の重要な利点は,トレンドがしっかりと確立された後にしか市場に参入しないことであり,偽のブレークアウトに誤った購入によって引き起こされる損失を効果的に削減することである.ドンキアンチャネル自体にはすでに非常に強力なトレンド識別能力があり,フィルタリングのための二重移動平均値と組み合わせると,信頼性が高くなります.
さらに,ドンキアンチャネルパラメータの調整性もこの戦略に柔軟性をもたらします.チャネル長さが長くなるほど,参照履歴データ時間が長くなるほど,トレンド判断はより保守的で,誤ったブレイクを避ける確率は高くなります.しかし,短期的な機会が逃れることがあります.私たちは市場状況と個人的な好みに基づいてチャネルパラメータを選択することができます.
この戦略の最大引き上げもよく制御されている.その傾向が特性を追っているため,大きな市場変動の際に損失を効果的に制御することができます.
この戦略の主なリスクは,トレンドを誤って判断し,誤ったタイミングでロングまたはショートポジションを確立することです.これは価格がより大きな逆転または下落を隠しているときに起こることがあります.移動平均のパラメータを適切に調整することによって,そのような状況を軽減することができます.
また,範囲限定市場での過剰取引のリスクもあります.これは取引数と佣金費用を増やすでしょう.ストップ損失率を増やしたり,保持期間を適切に延長したりすることで対処できます.
この戦略は,主に以下の側面に焦点を当てた,大きな最適化余地があります:
ドンチアン運河の長さ 異なるパラメータ値をテストして 最適なパラメータを見つけます
移動平均値の組み合わせを試して 移動平均値と移動平均値の組み合わせを見つけます
絶対点やATR停止を試す
基本的な取引シグナルに加えて,フィルタリングのために,RSI,MACDなどの指標を追加することができます.
概要すると,ドンキアントレンド戦略は,ドンキアンチャネルを使用してトレンド方向を決定し,エントリーのための二重移動平均値で補完し,戦略に従う安定したトレンドになります.トレンドが明確に形成され,損失を効果的に制御した後のみ市場に参入します.同時に,戦略にはパラメータの大きな最適化スペースがあり,市場状況に基づいて調整することができます.リスクが効果的に制御されれば,この戦略は安定した長期的リターンを達成する可能性があります.
/*backtest start: 2022-11-21 00:00:00 end: 2023-11-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="DON-SS-TREND", overlay=true,default_qty_type = strategy.percent_of_equity,default_qty_value=100,initial_capital=1000,pyramiding=0,commission_value=0.01)//@version=5 length = input.int(42, minval=1) lower = ta.lowest(length) upper = ta.highest(length) basis = math.avg(upper, lower) updiff = upper - close downdiff = lower - close dontrend = updiff + downdiff emalength = input.int(45, minval=1) emax = ta.ema(-dontrend,emalength) plot(-dontrend, "DON-SS", color=color.blue,style = plot.style_histogram) plot(emax, "EMA-SS", color=color.black) emalength1 = input.int(5, minval=1) emax1 = ta.ema(-dontrend,emalength1) plot(emax1, "EMA-FF", color=color.black) /////////////////////// STRATEGY // Check for Long Entry longCondition = ta.crossover(emax1,emax) if longCondition strategy.entry('Long', strategy.long, comment = "BUY") buyclose = ta.crossunder(emax1,emax) // Exit condition with trailing stop and take profit strategy.close('Long', when=buyclose, comment = "BUY STOP") // Check for Short Entry ShortCondition = ta.crossunder(emax1,emax) if ShortCondition strategy.entry('Short', strategy.short, comment = "SELL") sellclose = ta.crossover(emax1,emax) // Exit condition with trailing stop and take profit strategy.close('Short', when=sellclose, comment = "SELL STOP")