カマリラチャネルベースのブレイクアウト戦略


作成日: 2023-10-24 16:18:30 最終変更日: 2023-10-24 16:18:30
コピー: 0 クリック数: 788
1
フォロー
1617
フォロワー

カマリラチャネルベースのブレイクアウト戦略

概要

この戦略は,カマリラ通路と移動平均線に基づいて市場の突破点を判断し,トレンドを追跡する.戦略は比較的シンプルですが,強力な実用性を持っています.

戦略原則

  1. カマリラ通路のサポートとレジスタンスラインを計算する. H4,L4などの線を含む.

  2. 価格が通路線を突破したかどうかを判断する.例えば,閉盘価格の上部でH4線を突破し,開盘価格がH4線より下部で,突破信号があると考える.

  3. 移動平均線判断に加入して,さらに突破信号を確認する.例えば,閉盘価格よりEMAが低い場合は多頭突破である.

  4. 多頭ポジションへのアクセス,固定ストップポイントの設定,ストップトラッキングの方法などのストップとストップ条件の設定

  5. 仮説を立てたのは,空頭についても同じです.

以上は戦略の主要な判断論理であり,比較的単純で直感的で,容易に理解し,実行できる.動的にストップロスを追跡することで,トレンドが逆転するまで継続的に利益を得ることができる.

優位分析

この戦略の利点は以下の通りです.

  1. カマリラ通路を基に,潜在的サポートとレジスタンスを正確に位置づけることができる.

  2. 均線フィルターと組み合わせると,突破信号の真偽を効果的に区別することができる.

  3. ストップを追跡することで,反転ストップを回避し,継続的に利益を得ることができます.

  4. 戦略信号はシンプルで明快で,操作を判断しやすい.

  5. パラメータを頻繁に調整する必要なく,パラメータが固定された自動取引に適しています.

リスクと解決策

この戦略には以下のリスクもあります.

  1. カマリーラ・カナルは,トレンドの逆転点を効果的に判断できず,損失の拡大を招く可能性がある.

    • 解決方法: 振動指数などの他の指標と組み合わせて,トレンドの逆転を判断する
  2. 不合理なストップポイントの設定は,早期のストップまたは損失の拡大につながる可能性があります.

    • 解決策:異なるストップポイント設定を最適化してテストする
  3. 突破シグナルに偽突破が発生する可能性があります.

    • 解決方法: 確認のためにより多くの波指標を追加するか,破綻の判定基準を適切に緩和する.
  4. 市場が激しく揺れ動いた中,偽のブレイクが繰り返されている.

    • 解決策は,不況期間の取引を避けるか,破綻基準を適切に緩和することです.

改善の提案

この戦略は,以下の点で最適化できます.

  1. 複合フィルタリング指標を増やして突破精度を向上させる.KDJ,MACDなども考慮できる.

  2. ダイナミックストップやATR指標の組み合わせなど,ストップ・ストップ・ストップ戦略の最適化

  3. 異なる品種のパラメータを最適化し,安定性を向上させる.

  4. 大周期的なトレンドの判断を高め,逆向きの取引を避ける.

  5. 分析した結果,その日の量に合わせて,集中した結果,その日の量に合わせて,その日の量に集中した結果,その日の量に合わせて,その日の量に合わせて,その日の量に合わせて,その日の量に合わせて,その日の量に合わせて,その日の量に合わせて,その日の量に合わせて.

  6. 自動パラメータ最適化プログラムを開発し,リアルタイムでパラメータ最適化を行う.

  7. 価格差を利用する多種多様なアベरेज戦略に拡大.

要約する

この戦略の全体的な構想は明確でシンプルで,実用性が強く,典型的な突破追跡戦略である.カマリラ通路によって潜在的サポート抵抗を判断し,その後均線フィルターと組み合わせて突破方向を決定する.止損方法も合理的である.しかし,この戦略は拡張性があり,より多くの指標を導入して最適化することができ,戦略をより堅牢に安定させることができる.また,複数の種類の戦略に拡張することもできる.全体的に言えば,この戦略は優れた改善の可能性を持っている.

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

//@version=2
//Created by CristianD
strategy(title="CamarillaStrategyV1", shorttitle="CD_Camarilla_StrategyV1", overlay=true) 
//sd = input(true, title="Show Daily Pivots?")
EMA = ema(close,8)

//Camarilla
pivot = (high + low + close ) / 3.0 
range = high - low
h5 = (high/low) * close 
h4 = close + (high - low) * 1.1 / 2.0
h3 = close + (high - low) * 1.1 / 4.0
h2 = close + (high - low) * 1.1 / 6.0
h1 = close + (high - low) * 1.1 / 12.0
l1 = close - (high - low) * 1.1 / 12.0
l2 = close - (high - low) * 1.1 / 6.0
l3 = close - (high - low) * 1.1 / 4.0
l4 = close - (high - low) * 1.1 / 2.0
h6 = h5 + 1.168 * (h5 - h4) 
l5 = close - (h5 - close)
l6 = close - (h6 - close)

// Daily line breaks
//sopen = request.security(syminfo.tickerid, "D", open [1])
//shigh = request.security(syminfo.tickerid, "D", high [1])
//slow = request.security(syminfo.tickerid, "D", low [1])
//sclose = request.security(syminfo.tickerid, "D", close [1])
//
// Color
//dcolor=sopen != sopen[1] ? na : black
//dcolor1=sopen != sopen[1] ? na : red
//dcolor2=sopen != sopen[1] ? na : green

//Daily Pivots 
dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1]) 
dtime_h6 = request.security(syminfo.tickerid, 'D', h6[1]) 
dtime_h5 = request.security(syminfo.tickerid, 'D', h5[1]) 
dtime_h4 = request.security(syminfo.tickerid, 'D', h4[1]) 
dtime_h3 = request.security(syminfo.tickerid, 'D', h3[1]) 
dtime_h2 = request.security(syminfo.tickerid, 'D', h2[1]) 
dtime_h1 = request.security(syminfo.tickerid, 'D', h1[1]) 
dtime_l1 = request.security(syminfo.tickerid, 'D', l1[1]) 
dtime_l2 = request.security(syminfo.tickerid, 'D', l2[1]) 
dtime_l3 = request.security(syminfo.tickerid, 'D', l3[1]) 
dtime_l4 = request.security(syminfo.tickerid, 'D', l4[1]) 
dtime_l5 = request.security(syminfo.tickerid, 'D', l5[1]) 
dtime_l6 = request.security(syminfo.tickerid, 'D', l6[1]) 

//offs_daily = 0
//plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",color=dcolor, linewidth=2)
//plot(sd and dtime_h6 ? dtime_h6 : na, title="Daily H6", color=dcolor2, linewidth=2)
//plot(sd and dtime_h5 ? dtime_h5 : na, title="Daily H5",color=dcolor2, linewidth=2)
//plot(sd and dtime_h4 ? dtime_h4 : na, title="Daily H4",color=dcolor2, linewidth=2)
//plot(sd and dtime_h3 ? dtime_h3 : na, title="Daily H3",color=dcolor1, linewidth=3)
//plot(sd and dtime_h2 ? dtime_h2 : na, title="Daily H2",color=dcolor2, linewidth=2)
//plot(sd and dtime_h1 ? dtime_h1 : na, title="Daily H1",color=dcolor2, linewidth=2)
//plot(sd and dtime_l1 ? dtime_l1 : na, title="Daily L1",color=dcolor2, linewidth=2)
//plot(sd and dtime_l2 ? dtime_l2 : na, title="Daily L2",color=dcolor2, linewidth=2)
//plot(sd and dtime_l3 ? dtime_l3 : na, title="Daily L3",color=dcolor1, linewidth=3)
//plot(sd and dtime_l4 ? dtime_l4 : na, title="Daily L4",color=dcolor2, linewidth=2)
//plot(sd and dtime_l5 ? dtime_l5 : na, title="Daily L5",color=dcolor2, linewidth=2)
//plot(sd and dtime_l6 ? dtime_l6 : na, title="Daily L6",color=dcolor2, linewidth=2)

longCondition = close >dtime_h4 and open < dtime_h4 and EMA < close
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit ("Exit Long","Long",  trail_points = 140,trail_offset = 1, loss =170) 
    //trail_points = 40, trail_offset = 3, loss =70 and


shortCondition = close <dtime_l4 and open >dtime_l4 and EMA > close
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit ("Exit Short","Short", trail_points = 110,trail_offset = 1, loss =120)