この戦略の主な考え方は,トレンド方向と市場への参入のタイミングを特定するためにパラボリックSARとEMAインジケーターの両方を使用することです.パラボリックSARは現在のトレンド方向を決定するために使用され,EMAは市場への参入の特定のタイミングを決定するのに役立ちます.SARが価格以上になると,それは熊市場です.SARが価格を下回ると,それは牛市場です.市場に参入する際に,トレンドが形成されていると考えられる前にEMAを突破する価格も必要です.この時点で,市場に入るためにトレンド方向に従ってください.
この戦略のコアインジケーターは,価格を追跡し,トレンド逆転を判断できる技術分析ツールであるParabolic SARです.その計算式はより複雑ですが,原理はシンプルで直感的です.SARインジケーターは常に価格の後ろに常に位置を調整します.価格が逆転すると,すぐに価格の反対側に位置を調整します.したがって,現在の方向性トレンドを判断するために価格との関係でSARインジケーターの位置を観察するだけです.
この戦略を支援するもう1つの指標はEMAである.SARとは異なり,EMAはトレンドの持続性を判断するのにより適している.市場に入る前に価格がEMAを突破することを要求することによって,いくつかのノイズが効果的にフィルタリングすることができます.またEMAは逆転信号を確認するためにも使用できます.例えば,価格が上昇傾向EMAを突破すると,それはトレンド逆転の信号である可能性が高い.
この戦略の具体的な取引規則は以下です.
パラボリック SAR を使って主要なトレンドを決定し,誤った信号を EMA でフィルタリングすることで,リスクを制御しながらトレンドをロックし,効果的なトレンド追跡を実現することができます.
この戦略には以下の主な利点があります.
一般的には,この戦略は複数の指標の利点を統合し,傾向を把握しながら,効果的なリスク管理を達成し,安定した傾向追跡戦略であり,習得が容易です.
この戦略には多くの利点がありますが,実際の運用中に注意する必要があるリスクは依然としてあります.主なリスクは次のとおりです.
上記のリスクを軽減するために,最適化は次の側面で行うことができます:
この戦略をさらに最適化するために,次の側面を考慮してください.
パラメータ設定を最適化する.遺伝子アルゴリズムなどの方法を使用して,最適なパラメータ組み合わせを見つけるために,EMAとSARのパラメータをテストし最適化することができます.
トレンド判断ツールを追加します.トレンドを確認し精度を向上させるために,MACDやボリンジャー帯などの他の指標を追加できます.
動的ストップ損失を設定します.より柔軟なストップのためにATRなどの指標に基づいて動的ストップ損失点を設定します.
取引コストを考慮し,絶対的利益よりも純利益を最適化するためにスリップと佣金パラメータを導入します.
多レベルエントリーと出口 より複雑な多レベルエントリーと出口メカニズムは,異なるトレンド段階の段階でポジションを構築またはストップ損失を設定することができます.
上記の最適化により,傾向を追跡しながら,戦略はより高い安定性,より正確な判断,より強力なリスク管理能力を得ることができ,それによってより良いパフォーマンスを達成することが期待できます.
パラボリックSARとEMAのトレンド追跡戦略は,トレンド方向とエントリータイミングを判断するために複数の指標の利点を統合している.SARをストップ損失ポイントとして設定すると,リスクは制御下にある.これは比較的安定した定量戦略である.この戦略には高い判断精度と簡単なマスターなどの利点があります.しかし,特定のリスクもあります.より良いパフォーマンスを達成するために,パラメータとストップ損失方法のさらなる最適化が必要です.投資家が参照して学ぶ価値があります.
/*backtest start: 2022-12-15 00:00:00 end: 2023-12-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Parabolic SAR Strategy w/ EMA", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) emalength = input(100 , "EMA Length") emaoffset = input(0.00, "EMA Offset %") start = input(0.015) increment = input(0.005) maximum = input(0.2) //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date Inputs 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 = 2019, title = "From Year", minval = 1970) // To Date Inputs toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2020, title = "To Year", minval = 1970) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true //////////////////////////////////////////////////////////////////////////////// psar = sar(start, increment, maximum) ema = ema(close, emalength) offset = (emaoffset / 100) * ema // Signals psar_long = high[1] < psar[2] and high > psar[1] psar_short = low[1] > psar[2] and low < psar[1] // Plot PSAR plotshape(psar, location = location.absolute, style = shape.cross, size = size.tiny, color = low < psar[1] and not psar_long ? green : red) //Plot EMA plot(ema) if(psar_long) strategy.close("Short") if(psar_short) strategy.close("Long") if (psar < low and time_cond and close > ema + offset) strategy.entry("Long", strategy.long, comment="Long", stop = psar) if (psar > high and time_cond and close < ema - offset) strategy.entry("Short", strategy.short, comment="Short", stop = psar) if (not time_cond) strategy.close_all()