この戦略は,パラボリックSAR指標に基づい,モメンタムトラッキングストップ損失効果を達成するためにバックテストのための時間窓を組み込む.主に強いトレンドを持つ製品に適しており,トレンドトラッキングストップ損失を実現するためにストップ損失点を動的に調整する.
この戦略は,パラボリック・SAR (Parabolic Stop and Reverse) インジケーターをメインの技術指標として使用する.パラボリック・SARは非常に正確な逆転信号を提供することができる.価格が上昇傾向にあるとき,パラボリック・SARは上昇傾向を追跡するために上昇し続けます.価格が落ち始めると,パラボリック・SARはストップ・ロスの信号を提供するために急速に下がります.
この戦略は,最初にスタート値,インクリメント値,最大値を含むパラボリックSARの3つのパラメータを設定する.その後,パラボリックSARの値を計算する.この戦略は,パラボリックSARをダイナミックストップロスのポイントとして使用する.価格が上昇すると,パラボリックSARよりも長くなります.価格がパラボリックSARを下回ると,ロングポジションを閉じる.同様に,価格が下がると,パラボリックSAR以下にショートになります.価格がパラボリックSARを超越すると,ショートポジションを閉じる.
この方法で,戦略は価格がトレンドしているときにトレンドを追跡し,価格が逆転するとすぐに損失を止め,取引サイクルを完了することができます.
この戦略は,パラボリックSAR指標の効率的なストップロスの機能を完全に活用し,モメンタムトラッキングストップロスの効果を達成する.固定ストップロスのポイントと比較して,ストップロスのトレンドを動的に自動的に調整してストップロスのトレンドを追跡することができ,早期にストップアウトポジションを回避する.一方,戦略のリスクは無視できないし,さまざまな市場で安定したパフォーマンスのために多次元的な最適化と強化が必要です.全体として,トレンドトラッキングのためのストロスの著しく効果的な方法を提供し,さらなる研究と適用に値します.
/*backtest start: 2023-09-26 00:00:00 end: 2023-10-26 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // === by @Aldovitch === // PSAR Strategy // Based on Parabolic SAR Strategy provided by TradingView // added a Time Window for Backtests // strategy("Parabolic SAR Strategy w/ Time Window", shorttitle="PSAR Strategy w/ TW", overlay=true) // === INPUT INDEXES PARAMETERS === start = input(0.02) increment = input(0.02) maximum = input(0.2) // === INPUT BACKTEST RANGE === FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromYear = input(defval = 2018, title = "From Year", minval = 2016) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === CONTROL & APPEARENCE === timeStart = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window timeFinish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window // === FUNCTIONS === window() => true // create function "within window of time" // === COMPUTING INDEXES === psar = sar(start, increment, maximum) if (psar > high) strategy.entry("ParLE", strategy.long, stop=psar, comment="ParLE", when=window()) else strategy.cancel("ParLE") if (psar < low) strategy.entry("ParSE", strategy.short, stop=psar, comment="ParSE", when=window()) else strategy.cancel("ParSE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)