カマリラ・チャネルに基づく脱出戦略

作者: リン・ハーンチャオチャン開催日:2023年10月24日 16:18:30
タグ:

img

概要

この戦略は主にCamarillaチャネルと移動平均を使用して,市場のブレイクポイントを特定し,したがってトレンドフォローを実装します.この戦略は比較的シンプルですが,かなり実践的です.

戦略の論理

  1. Camarillaチャネル,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)
    


もっと