この戦略の主なアイデアは,モメントインディケーターの1つであるパラボリックSARを,異なるタイムフレームで交互に利用して,市場のトレンド逆転を捕捉することです.この戦略は,複数のタイムフレームで同時にパラボリックSAR信号をモニターし,より高いタイムフレームでSAR信号がトリガーされると,対応するロングまたはショートポジションに入ります.
まず,この戦略では,パラボリックSAR値を異なる時間枠 (15m,D,W,M) で別々に計算します.
第二に,戦略は,週間のSAR値を監視します.週間のSARが最近の高値を超えると長値になり,週間のSARが最近の低値を下回ると短値になります.
最後に,戦略は,毎週SARをストップ・ロースとして使用します.特に,既にロングである場合,毎週SARは,そのロングポジションのストップ・ロースとして設定されます.既にショートである場合,毎週SARは,そのショートポジションのストップ・ロースとして設定されます.
この方法により,戦略はより高い時間枠からの信号に基づいて入力し,より低い時間枠で停止する.毎週SAR信号をモニタリングすることで,トレンド逆転をより正確に特定することができ,15mSARを停止すると,逆転が起こるときに過剰な引き下げを避けるために迅速なカット損失を実現することができます.
このパラボリックSARの交替タイムフレーム戦略には次の利点はあります
異なるタイムフレームにおけるSARの利点を利用する.毎週SARは,トレンド逆転を正確に特定し,ウィップソー損失を減らすことができます. 15mSARは,迅速なストップ損失管理を可能にします.
高い柔軟性.SARパラメータは,戦略のパフォーマンスを最適化するために,異なる製品と市場条件に調整できます.
取引頻度が低い.より高い時間枠のSARからの信号のみを入力し,過剰取引を避けます.
高い資本利用効率 資本を稼働させるのは,逆転の可能性が高い場合に限ります.
リスク管理が簡単です.固定ストップ・ロスのポイントを採用することで,各ポジションのリスク露出を明確に計算できます.
この戦略にはいくつかのリスクもあります:
SAR パラメータの設定が正しくない場合,ストップロスは幅が大きくすぎたり,狭すぎたりし,戦略のパフォーマンスに影響を与える可能性があります.
急激な価格上昇はストップ・ロスのレベルを直接突破し,大きな損失につながる可能性があります.
SAR 信号だけに頼るということは,トレンドの間には他の統計的に有利な機会を逃す可能性があります.
異なるタイムフレームで矛盾する信号がSARから発生する可能性があります.信号優先順位を処理する必要があります.
不適切な時間枠選択,低期に騒音が多すぎたり,高期に逆転を特定する遅延の両方が戦略の有効性に影響を与える可能性があります.
戦略は以下の点で改善できる:
SAR パラメータを最適化して,ウィップソー発生を減らす.最適なパラメータの組み合わせを見つけるために複数のバックテストを実行できます.
ストップ・ロスの戦略を追加します. トレーリング・ストップ,段階的なストップ・ロスのように,単一の取引損失をさらに制御します.
MACD,KDJなどの他の指標を組み込むことで トレンド逆転の証拠を もっと見つけることができ 取引の誤りも減少します
各ポジションのサイズを調整し,全体的な戦略リスクを制御するために,固定分数のポジションサイズ,固定リスク/リターン比など,資本管理戦略を追加します.
タイムフレームの組み合わせを最適化して 戦略のパフォーマンスを異なる期間設定でテストして 最適なマッチを見つけます
この戦略は,パラボリックSARを時間枠にわたって順番に利用し,高期に逆転点を特定し,低期に停止し,シネージ効果を達成する.それは効果的にウィップソー取引と誤ったブレイクアウトによるリスクを軽減する.パラメータ最適化,ストップ損失戦略,資本管理などのさらなる強化により,優れた戦略の結果を達成することができます.
/*backtest start: 2023-09-18 00:00:00 end: 2023-10-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy ("SAR alternating timeframe", overlay=true) //resolution res1=input("15", title="Resolution") res2=input("D", title="Resolution") res3=input("W", title="Resolution") res4=input("M", title="Resolution") //output functions out = sar(0.02,0.02,0.2) // Security SAR1 = request.security(syminfo.tickerid, res1, out) SAR2 = request.security(syminfo.tickerid, res2, out) SAR3 = request.security(syminfo.tickerid, res3, out) SAR4 = request.security(syminfo.tickerid, res4, out) //Plots //plot(SAR1 , title="SAR 15", color = red, linewidth = 2) //plot(SAR2 , title="SAR D", color = green, linewidth = 3) plot(SAR3 , title="SAR W", color =blue, linewidth = 4) //plot(SAR4 , title="SAR W", color =purple, linewidth = 5)) ///////////////////////////////////////////////////////////////////// //trade if (SAR3 >= high) strategy.entry("ParLE", strategy.long, stop=SAR3, comment="ParLE") else strategy.cancel("ParLE") if (SAR3 <= low) strategy.entry("ParSE", strategy.short, stop=SAR3, comment="ParSE") else strategy.cancel("ParSE")