この戦略は,上位および下位帯を形成するために,特定の期間で最も高い高値と最も低い低値を計算する.価格は上位帯を超えるとロングになり,価格は下位帯を超えるとポジションを閉じる.この戦略は,トレンドブレイクによって強いトレンド相を捕捉することを目的としています.
この戦略は,上位および下位帯を形成するために,過去20バーで最も高い高値と最も低い低値を計算します.現在のバーの閉じる価格が上位帯を超えると,ロングになります.価格が下位帯を下回ると,ポジションを閉じる.
この戦略は,過去20バーの最高値と最低値を計算するために,最高値と最低値の関数を使用し,範囲を形成します.その後,現在のバーの閉値が上位帯を超えているかどうかをチェックします.そうであれば,ロングになります.価格が下位帯を下回る場合は,ポジションを終了します.
この戦略は,エントリーシグナルを決定するためにトレンドブレイクに依存する.これはトレンドフォローシステムで,単にロングではなくショートになります.強くトレンドする楽器に適しています.
この戦略には以下の利点があります.
戦略の論理は単純で分かりやすいです
トレンドブレイクで 強いトレンドを把握します
リスクを制御し損失を制限するために移動ストップ損失を使用します.
トレンドする市場に適しています
期間長さとストップ・ロスの設定可能なパラメータ
この戦略には次のリスクもあります
傾向の逆転を特定できず,上位で購入する可能性があります.
ストップ・ロスは大きな即時価格ギャップによって容易に引き起こすことができます
傾向が変わると 複数の小さな損失を生む可能性があります
ダウントレンドから利益を得ることはできません
パラメータの設定が正しくない場合,過敏度や鈍さが生じる可能性があります.
戦略は以下の点で改善できる:
トレンド識別指標を追加して逆転の取引を避ける.例えばMACD.
ストップ・ロスの戦略を最適化してリスク管理を図る.例えば,ストップ・ロスの遅れ.
ダウントレンドから利益を得るために ショートポジションの論理を追加します
バックテストして最適化して 最高の組み合わせを見つけます
市場状況に基づいて動的パラメータ最適化を追加します
単一の時間枠で誤解を招かないように,複数の時間枠の分析を組み込む
ストロップ・ロスは,ブレイクアウトを通じて強いトレンドを捕捉し,明確なシンプルなロジックを持っています.ストップ・ロスの経由でリスクを制御します.しかし,不正確なトレンド判断やストップ・ロスのトリガーなどの弱点もあります.トレンド識別,ストップ・ロスの戦略,ショートポジション,パラメータ最適化により戦略をより堅牢にすることで改善することができます.
/*backtest start: 2023-10-22 00:00:00 end: 2023-10-24 17:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Donchian Wicks Strategy - Long Only with Customizable Donchian Exit and Stop Loss", "DWS", overlay = true) // INPUTS iLength = input(20, "Length", minval = 1) stopLossPercent = input(1.0, "Stop Loss Percentage", type=input.float) / 100 // SETTING float up = na up := close > open ? high : nz(up[1]) float down = na down := close < open ? low : nz(down[1]) highest = highest(up, iLength) lowest = lowest(down, iLength) // PLOT p1 = plot(highest, "Highest", color.black, 2) p2 = plot(lowest, "Lowest", color.black, 2) fill(p1, p2, color.new(color.navy, 90), title="Range") // ENTRY SIGNALS wickDown = low < lowest // STRATEGY IMPLEMENTATION strategy.entry("Buy", strategy.long, when = wickDown) strategy.exit("Sell at Donchian High", from_entry="Buy", limit=highest) // Customizable Stop Loss stopLossLevel = close * (1 - stopLossPercent) strategy.exit("Stop Loss", from_entry="Buy", stop=stopLossLevel)