ドンチャンチャネルのブレークスルー戦略


作成日: 2023-12-04 14:16:33 最終変更日: 2023-12-04 14:16:33
コピー: 0 クリック数: 641
1
フォロー
1619
フォロワー

ドンチャンチャネルのブレークスルー戦略

概要

唐津通道突破策は,価格行動とトレンドに基づく突破取引策である.これは,唐津通道の上下を潜在的突破点を識別するために利用し,価格が通道突破時に多頭または空頭ポジションを開きます.

戦略原則

この戦略の核心的な論理は:

  1. Ta.highestとTa.lowestの関数を用いて,一定の周期 (例えば60根のK線) の最高値と最低値を計算し,唐通路の上線と下線を構成する.

  2. 価格が上線を突破する時,市場が多頭トレンドに入る可能性があると考えて,上線が次のK線開盤を突破する時に多行する.価格が下線を突破する時,市場が空頭トレンドに入る可能性があると考えて,下線が次のK線開盤を突破する時に空行する.

  3. 価格が再び上線を突破したり下線を突破したりすると,トレンドが逆転したと考えられ,現在の多頭または空頭ポジションを平準化します.

  4. リスクを制御するために,多額の空白の後でのストップ・ロスは,開設価格のマイナスまたは最小のジャンプ価格の追加として設定されます.

このチャネルブレイクベースの戦略はシンプルで直接的で,価格行動とトレンド特性を考慮し,操作が簡単で安定しています.

優位分析

この戦略には以下の利点があります.

  1. 戦略の論理は明快で簡潔で,理解し実行しやすい,実用的なものです.

  2. トンチアン通路は,トレンドの方向を判断するために使用され,ノイズを効果的にフィルターし,信頼できる突破信号を識別できます.

  3. 余分な空白の後,ストップ・ロスの設定は合理的で,単一損失を十分に制御できます.

  4. この戦略は,市場がどのような状態にあるかに関係なく,価格が有効な突破を起こす限り,潜在的トレンドを捉えるために順調に実行できます.

  5. 策略パラメータが少なく,適合しやすくない,パラメータ最適化スペースが広く,可塑性が強い。

リスク分析

この戦略にはいくつかのリスクがあります.

  1. 逆転を捉えられないトレンドフォローの戦略

  2. ストップポイントの近くには,価格の短線波動が止まる可能性があります.

  3. 経路の長さが正しく設定されていない場合,偽突破の可能性が増加します.

上記のリスクに対して,以下の対策を講じることができます.

  1. 他の指標と組み合わせて,潜在的な反転信号を認識し,フォローを強制しないようにする.

  2. 合理的な尾行ストップを設定して,死板の初期ストップではなく,利益をロックします.

  3. 異なるパラメータをテストして,最適なパラメータの組み合わせを見つけます.

最適化の方向

この戦略は,さらに最適化できる余地があります.

  1. 双通道突破戦略を試す. 一通道は入場点を決定し,もう一通道は止損または停止点を決定する.

  2. 価格突破チャネルが一定にティックした後に,偽突破をフィルタリングするために,再びポジションを開きます.

  3. 取引量または変動率の指標フィルターを追加し,価格が激しく変動するときに誤った取引を避ける.

  4. トレンドフォロー戦略や逆転戦略など,異なるポジション戦略を試す.複数の組み合わせでより良い結果が得られるかもしれない.

  5. リスク管理モジュールを追加し,最大1日の損失,最大回収などを制御します.

要約する

トンチ・アン・チャネル・ブレイク戦略は,全体として非常に実用的な短期間のトレンドフォロー戦略である.価格行動を判断し,潜在的トレンドの変化を認識し,チャネル・ブレイクを利用してポジションを開く.戦略の論理は簡潔で,操作は簡単で,複数の市場で良い結果を得ることができる.さらにパラメータ設定,ストップ・メカニズム,逆転認識などを最適化することで,この戦略のパフォーマンスは大きく向上する余地がある.それは,量化取引のための優れたスタートポイント戦略として使用できる.

ストラテジーソースコード
/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Step 1. Define strategy settings
strategy(title="Price action and breakout Channel Forexrn", overlay=true,
     pyramiding=0, initial_capital=100000,
     commission_type=strategy.commission.cash_per_order,
     commission_value=4, slippage=2)

dochLen = input.int(60, title="Price action and breackout Channel Forexrn")

// Position sizing inputs
usePosSize    = input.bool(true, title="Use Position Sizing?")
atrLen        = input.int(10, title="ATR Length")
atrRiskOffset = input.float(4, title="ATR Risk Offset Multiple", step=0.25)

maxRisk = input.float(2, title="Max Position Risk %", step=.25, 
     minval=0.25, maxval=15)
maxExposure = input.float(10, title="Max Position Exposure %", step=1, 
     minval=1, maxval=100)
marginPerc = input.int(10, title="Margin %", minval=1, maxval=100)

// Step 2. Calculate strategy values
upperband = ta.highest(high, dochLen)[1]
lowerband = ta.lowest(low, dochLen)[1]

// Calculate position size
riskEquity = (maxRisk * 0.01) * strategy.equity
riskTrade  = (ta.atr(atrLen) * atrRiskOffset) * syminfo.pointvalue

maxPos = ((maxExposure * 0.01) * strategy.equity) /
     ((marginPerc * 0.01) * (close * syminfo.pointvalue))

posSize = usePosSize ? math.min(math.floor(riskEquity / riskTrade), maxPos) : 1

// Step 3. Output strategy data
plot(upperband, color=color.green, linewidth=2, title="DoCh Upperband")
plot(lowerband, color=color.red, linewidth=2, title="DoCh Lowerband")

// Step 4. Determine trading conditions
tradeWindow  = true

tradeAllowed = tradeWindow and bar_index > dochLen

// Step 5. Submit entry orders
if tradeAllowed
    if strategy.position_size < 1
        strategy.entry("EL", strategy.long, qty=posSize,
             stop=upperband + syminfo.mintick)

    if strategy.position_size > -1
        strategy.entry("ES", strategy.short, qty=posSize,
             stop=lowerband - syminfo.mintick)

// Step 6. Submit exit orders
if not tradeWindow
    strategy.close_all()