
この戦略は標準的な唐津通路指標に基づいて開発された. 取引信号を発信する前に,この戦略は,連続した2つの高点 (または低点) の確認を待って,市場作りの偽りの市場商に負けないようにします.
この戦略は,新しい高値や新しい低値が発生したときに,戦略がすぐに取引信号を発信できるように,二重確認の仕組みをオフにすることも可能である.
戦略は空白取引をフィルターするオプションも提供しています.
この戦略は,唐通路指標の上線と下線に基づいています. 上線は過去n根K線の最高値の最大値であり,下線は過去n根K線の最低値の最小値である. nの値は20をデフォルトとする.
中間軌道は上軌と下軌の平均値であり,トレンド方向を判断するために用いられる.
価格が上線を突破すると,多頭ポジションが空である前提で戦略は開きます.価格が下線を突破すると,空頭ポジションが空である前提で戦略は開きます.
偽突破をフィルターするために,戦略はデフォルトで,二重確認の待機の選択をオンにします. これは,取引信号を発信するには,連続した2つの高い高い点 (または低い低い点) が必要であることを意味します.
この戦略の利点は以下の通りです.
唐通路の指標はシンプルで実用的で,理解しやすく実装されています.
双重確認メカニズムは,偽の突破を効果的にフィルターし,隠蔽を防ぐことができます.
異なる市場環境に対応するためにカスタマイズ可能なチャネルサイクルの長さ
異なる投資家のニーズに応える空頭取引のオプションを提供
簡単に理解し,二次開発できる.
この戦略にはいくつかのリスクがあります.
双重確認のメカニズムは,取引の機会を逃しているかもしれない.
経路周期の設定が不適切である場合,取引が頻度や稀に発生する可能性があります.
長期にわたって持っていたら リスクが抑えられないかもしれません
空頭取引がもたらす追加リスクに注意してください.
データの一致を検出するリスクには注意が必要です.
対応方法:
双重確認のメカニズムをオフにしたり,双重確認の間隔を適切に短縮することもできます.
パラメータを最適化し,適切な通路周期を選択します.
単一損失を合理的に制御するストップまたはストップを設定します.
取引を禁止し,取引を制限する.
異なる市場環境で何度も反省し,厳格に評価する戦略.
この戦略の最適化方向は以下の通りです.
波動率指数に基づいてポジションのサイズを動的に調整する.
突破力の指標に基づいて偽突破をフィルターする.
モバイル・ストップ・メカニズムに参加し,トレンドの動きを追跡する.
重要な転換点を逃さないように,他の指標と組み合わせてトレンドの方向を判断します.
機械学習によるパラメータの自動最適化
これらの最適化策は,戦略の安定性と収益性をさらに向上させることができます.
この戦略は,唐通路の二重確認機構をベースに,リスクを制御しながら,シンプルで効果的なトレンド追跡を実現している.パラメータの最適化と機能拡張により,この戦略は,より広範な市場環境に適応し,優れた実用性を有している.
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Donchian Channels", shorttitle="DC", overlay=true, initial_capital=10000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick=true)
length = input(20, minval=1)
lower = lowest(length)
upper = highest(length)
basis = avg(upper, lower)
bool inShortPos = false
bool inLongPos = false
bool wait4confirmation = input(true, title="Wait for double confirmation?")
bool doShort = input(true, title="Include short positions")
plot(basis, "Basis", color=#FF6D00)
u = plot(upper, "Upper", color=#2962FF)
l = plot(lower, "Lower", color=#2962FF)
fill(u, l, color=color.rgb(33, 150, 243, 95), title="Background")
//if(inShortPos == false and inLongPos == false)
if(not inLongPos and upper > upper[1])
if(wait4confirmation)
if(not inLongPos and upper > upper[1] and upper[1] > upper[2])
strategy.close("Short", true)
strategy.entry("Buy", true)
else
strategy.close("Short", true)
strategy.entry("Buy", true)
else
if(not inShortPos and lower < lower[1])
if(wait4confirmation)
if(not inShortPos and lower < lower[1] and lower[1] < lower[2])
strategy.close("Buy", true)
if(doShort)
strategy.entry("Short", true)
else
strategy.close("Buy", true)
if(doShort)
strategy.entry("Short", true)