この戦略は主にCamarillaチャネルと移動平均を使用して,市場のブレイクポイントを特定し,したがってトレンドフォローを実装します.この戦略は比較的シンプルですが,かなり実践的です.
Camarillaチャネル,H4,L4などを使ってサポートとレジスタンスレベルを計算する.
価格がこれらのチャネルラインを突破するかどうかを特定します.例えば,H4以上の閉店とH4以下の開店は,突破信号を示します.
さらに確認するために移動平均フィルターを追加します.例えば,EMAが接近を下回っている場合,それは上昇ブレイクです.
ストップ・ロストでロング・ポジションを入力し,利益を得ます. 固定ストップ・ロストポイントやストップ・ロストをフォローします.
同じ論理がショートポジションにも当てはまります
ストップ・ロスは,トレンドを効果的に乗り切ることができます.
この戦略の利点は
カマリラチャネルは 潜在的サポートと抵抗を正確に位置付けます
移動平均値のフィルターは 真のブレイクシグナルを検証するのに役立ちます
トレイリングストップ・ロスはリバース・ストップを避けながら利益を得ます
信号は明確で 行動するのは簡単です
自動取引には頻繁な調整は必要ありません
認識すべきいくつかのリスクがあります.
カマリラのチャンネルは 転換点を効果的に特定できません
不適切なストップ・ロストポイント設定は,早期離脱や損失拡大につながる可能性があります.
突破信号は 偽信号になるかもしれない
多くの偽のブレイクが 市場に起こりうるのです
この戦略は,次の側面からさらに改善できます.
KDJ,MACDなど,ブレイクアウトの精度を高めるためにフィルターとしてより多くの指標を追加します.
ダイナミック・トライリング・ストップ・ロスト,ATRの統合など,アウトアウトを最適化します.
耐久性を高めるため,異なる製品のパラメータを最適化します.
逆トレンド取引を避けるため,より高いタイムフレームトレンドフィルターを追加します.
確認のために 大量の突破に集中する
ダイナミックなチューニングのための自動パラメータ最適化を開発します
複数の商品の仲介戦略に 拡大する
この戦略は,強力な実用性を持つ明確でシンプルな論理を持っています. カマリラを使用して潜在的なサポートとレジスタンスを特定し,移動平均値でブレイクアウト方向を確認します. アクシート方法も合理的です. さらに多くの指標を追加し,マルチ製品拡張など,強化の可能性も大きいです. 全体的にこれは良い可能性を持つ有望な戦略です.
/*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)