ガン・ダブルチャネル・ブレークアウト・トレーディング・戦略

作者: リン・ハーンチャオチャン, 日付: 2023-09-12 14:33:08
タグ:

この戦略は,ガンのダブルチャネル理論に基づいている.ガン氏は,移動平均プラス/マイナス波動性帯によって構築されたチャネル内で株価が変動すると考えていた.価格がチャネルを突破すると,トレンド逆転をシグナル化する.この戦略は,トレンドターンを特定し,取引を行うためにダブルチャネルシステムを構築することによって,この理論を使用する.

戦略の論理

  1. 内外ガーンチャネルを構成する.内側チャネルは1x標準偏差帯で81日間のMAを使用する.外側チャネルは2x標準偏差帯で81日間のMAを使用する.

  2. 中央チャネルを突破すると,ロングに行く.これは価格が新しい上昇傾向を開始する可能性があることを示唆します.

  3. 中央チャネルを下回ると,ショートします.これは価格が新しい下落傾向を開始する可能性があることを示します.

  4. 外側のチャネルはストップロストとして動作する.内側のブレイクによってロングが誘発された場合,価格が外側の下帯を下回る場合は,閉じる.内側のブレイクによってショートが誘発された場合,価格が外側の上帯を下回る場合は,閉じる.

この戦略の利点:

  1. 拡大する帯は,偽のブレイクを避けるのに役立ちます.

  2. ブレイクトレードも 傾向に続く

  3. ダブルチャネルストップ・ロスは リスクを制御するのに役立ちます

この戦略のリスク:

  1. 市場が揺れ動いているとき チャンネルが繰り返し壊れて 誤った信号を生成する可能性があります チャンネルを安定させるために 細かな調整パラメータが必要です

  2. 突破信号は高値や低値の近くで 発生する傾向がある

  3. ストップ・ロスは短期間変動によって引き起こす可能性があります.ストップ・ロスの範囲を緩和することを検討してください.

結論として,この戦略は,ダブル・ガン・チャネルを使用してトレンド逆転を特定し,ブレイクアウト取引アプローチを採用し,リスク管理と利益を取りをバランスします.最適化されたパラメータと厳格なリスク管理により,良い結果を達成することができます.しかし,すべての市場条件で機能する技術戦略はありません.投資家は慎重に適用し,自分のリスク耐性と調整する必要があります.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-01-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("[VJ] Gann Double Band Buy Sell", overlay=true)
tim=input('375')
//skip buying near upper band and selling near lower band
out1 = security(syminfo.tickerid, tim, open)
out2 = security(syminfo.tickerid, tim, close)

// gann 81, 1 & 81, 2 as channel
length = input(81, minval=1)
src = input(close, title="Source")

Band1 = input(1.0, minval=0.001, maxval=10, step=0.1)
basis = sma(src, length)
dev = Band1 * stdev(src, length)
upper = basis + dev
lower = basis - dev

Band2 = input(2.0, minval=0.001, maxval=10, step=0.1)
dev2 = Band2 * stdev(src, length)
upper2 = basis + dev2
lower2 = basis - dev2

plot(basis, color=black ,linewidth=3 )
p1a = plot(upper, color=green,linewidth=2)
p1b = plot(lower, color=green,linewidth=2)

p2a = plot(upper2, color=blue, linewidth=3)
p2b = plot(lower2, color=blue, linewidth=3)



longCondition = crossover(security(syminfo.tickerid, tim, close),security(syminfo.tickerid, tim, open)) and close < upper
if (longCondition)
    strategy.entry("long", strategy.long)
shortCondition = crossunder(security(syminfo.tickerid, tim, close),security(syminfo.tickerid, tim, open)) and close > lower
if (shortCondition)
    strategy.entry("short", strategy.short)





もっと