カマリラ・ピボット・ブレークアウト戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-04 16:17:06
タグ:

img

概要

カマリラ・ピボット・ブレイクアウト戦略は,入口と出口にカマリラ・ピボットレベルを使用する定量的な取引戦略である.この戦略は,伝統的な技術分析のサポートとレジスタンス理論をベースに,異なるタイムフレームでピボットポイントを計算するためにカマリラ数学式を組み合わせ,過剰なリターンを達成するために,これらのキーレベルのブレイクアウトをトレードオープニングと閉鎖の条件として設定する.

戦略の論理

この戦略の基本的な論理は: H4とL4を計算し,Camarilla公式から2つの主要なサポートとレジスタンスレベルを計算し,価格がこれらの2つのレベルを突破したときの取引信号を生成する.

戦略は,まず,現在のバーの最高,最低,閉じる価格の真ん中点をピボットポイントとして計算します.その後,価格範囲を計算します.範囲に基づいて,H4,H3,H2,H1およびL1,L2,L3,L4を含む様々なカマリラレベルをプロットすることができます.それらのうち,H4は最初のレジスタンスであり,L4は最初のサポートです.

トレードシグナルでは,閉値がH4値を超えるとロングシグナルが起動し,閉値がL4値を下回るとショートシグナルが起動する.S/R値のブレイクを把握することで,トレンドの方向性と勢いを判断し,トレードシグナルを生成する.

市場構造を決定し 取引信号を得ることです 市場構造を決定し 取引信号を得るために

利点分析

このカマリラの脱出戦略には いくつかの重要な強みがあります

  1. 証明された伝統的な技術理論,安定したバックテストに基づいています

カマリラ分析は古典的なサポート/レジスタンスの概念を使用します.そのような理論は時間の試練に耐え,製品や時間枠にわたって戦略の堅牢性を保証します.

  1. シンプルなパラメータ,簡単な実行

機械学習モデルと比較すると,Camarillaのルールは調整可能なメトリックが少なくてシンプルで,特に初心者にとっては,ライブ取引で理解し実行するのが簡単です.

  1. 明確な突破信号,シンプルなコード

H4/L4ブレイクアウトを監視することは,直接取引エントリに変換されます. 戦略信号は鮮明でコードはシンプルです. これにより,アイデアからライブ取引への迅速なプロトタイプができます.

  1. 高周波および低周波取引に適用される

カマリラ戦略は,高周波 (秒,分バー) と低周波 (日,週) の取引に有効である.この多様性は大きなプラスである.

リスク分析

しかし,このような単純な脱出戦略には,固有の弱点があります:

  1. 誤った脱出リスク

価格がブレイク後のトレンドに失敗して逆転する可能性があります. 損失を間に合うように削減しなければ大きな引き下げにつながる可能性があります. 偽の信号に対する保護が必要です.

  1. 脱出の機会を逃した

閉値のみを監視すると,以前のバー期間に潜在的なブレイクが欠落する可能性があります.信号の精度を向上させるために最適化が必要です.

  1. 利益の可能性は限られている

より洗練されたモデルと比較して カマリラへの依存は 利益率と幅を制限します ポジションサイズとレバレッジ管理によって 緩和することができます

したがって,ストップロスのリスク管理,エントリーロジックの最適化,ポジションサイズ調整は,そのような単純なブレークアウト方法の信頼性を確保するために必要である.

オプティマイゼーションの方向性

このカマリラの脱出戦略をさらに最適化するために 次のことに焦点を当てます

  1. 真のブレイクを検出するために追加のメトリックを組み込む

ボリューム,移動平均等を組み合わせて ブレイクアウトの真性を測定し 誤った信号を回避します

  1. ブレイクロックのロジックを最適化

逆テストで 突破量を緩めるとか 季節性に基づいて ルールを追加するとか

  1. ストップ・ロスの戦略を最適化

ストップ・ロスの範囲を絞り 早期ストップや ストップ・ロスの範囲を絞り

  1. ポジションサイズとレバレッジを動的に調整する

ポジションとレバレッジのパラメータを変化する市場体制に合わせて調整する.

  1. より高度な機械学習を組み込む

LSTMとRNNモデルを活用して 突破の可能性を予測し 諜報力を高める

概要

カマリラ・ピボット・ブレイクアウト戦略は,単純で直接的な定量的な取引戦略であり,実行が簡単です.成熟した技術分析ツールを使用して,主要なサポートおよびレジスタンスレベルのブレイクをキャプチャすることによって取引信号を生成します.このタイプの戦略は安定性と信頼性の利点があります.実用的な実行にも比較的簡単です.もちろん,ストップ損失,パラメータチューニング,リスク制御などのさらなる強化は,より高い効率を達成するために必要です.


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

//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
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)
    


shortCondition = close <dtime_l4
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)
    


もっと