
この戦略の主な考えは,パラボリックSARとEMAの2つの指標を同時に使用して,トレンドの方向と入札のタイミングを識別することです.その中で,パラボリックSARは現在のトレンドの方向を判断するために使用され,EMAは特定の入札のタイミングを決定するために使用されます.SARが価格の上部で熊市であるとき,SARが価格下部で牛市であるとき.入札は,価格の突破を要求し,EMAはトレンドが形成され始めると考え,その時点でトレンドの方向に従って入札します.
この戦略の核心指標は,価格を追跡し,トレンド反転を判断できる技術分析ツールであるParabolic SARである.その計算公式はより複雑だが,原理はよりシンプルで直感的なものである.SAR指標は,常に自分の位置を調整することによって,常に価格の後ろに留まり,価格が反転すると,それはすぐに価格の反対側に位置を調整する.したがって,SAR指標の価格に対する位置を観察するだけで,現在のトレンドの方向を判断できる.
この戦略を補助する別の指標は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()