ストカスティックRSIとEMAクロスオーバーに基づいた暗号リバック取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-03-08 16:44:51
タグ:

img

戦略の概要

この戦略は,ストカスティックRSIとEMAを組み合わせて,トレンドを検出し,取引シグナルを検証する.価格がEMA20を超えてEMA9とEMA14の間に戻ると,ストカスティックRSIが過剰販売レベル以下になると,ロングシグナルが生成される.価格がEMA20を下回ってEMA9とEMA14の間に戻ると,ストカスティックRSIが過剰購入レベル以上になると,ショートシグナルが生成される.

戦略の原則

  1. 価格のトレンド状態を決定するために,異なる期間の3つの EMA,すなわち EMA9,EMA14,EMA20を計算するために,ta.ema関数を使用します.
  2. RSIを計算するために ta.rsi関数を使用し,その後ta.stoch関数を使用して,RSIをストカスティックRSIに変換し,価格が過買いか過売れているかどうかを判断します.
  3. 閉じる価格> EMA20と閉じる価格 < EMA9とEMA14とストカスティックRSI < 過売値では,ロング信号が起動し,買い取引が実行されます.
  4. 閉じる価格 < EMA20 と閉じる価格 > EMA9 と EMA14 とストカスティックRSI > の値が買い値を超えると,ショート信号が発信され,セール・オペレーションが実行されます.

この戦略の主なアイデアは,ストカスティックRSIを使用して,メイントレンド (EMA20によって代表される) の価格リトラセーションが適切なオーバーバイトまたはオーバーセールエリアに達したかどうかを判断することであり,リトラセーションの強さを検証するために,高速EMAと中間EMAを使用することです.価格が高速EMAと中間EMAを突破した場合,リトラセーションが終了し,トレンドが逆転することがあり,ポジションに入場するには適しません.価格がEMA9とEMA14の間にリトラセーションを行うときのみ,トレンドの方向にポジションに入場すると考えられます.この多条件の検証方法は,信号品質を効果的に改善し,誤った判断を減らすことができます.

戦略 の 利点

  1. 傾向指標 (EMA) とオシレーター指標 (RSI) を組み合わせて,傾向や過買い/過売タイミングを把握する.
  2. ストカスティックRSIを採用し,元のRSI指標と比較して2つの利点があります.一つは指標のスムーズさを向上させ,もう一つは指標が長期間にわたって極端な値に固執することを避けることです.
  3. 多条件検証は多くの誤った信号を効果的にフィルタリングし,信号の信頼性を向上させることができます.
  4. コードロジックは明確でシンプルで,理解し修正しやすいもので,初心者が学ぶためのテンプレートとして使用できます.

戦略リスク

  1. EMAが頻繁に交差するため,多くの誤った信号を生む可能性があるため,横向市場には適していません.
  2. 傾向が非常に強く,価格が一方的に上昇または下落すると,この戦略は,引き下げが非常に浅いので多くの機会を逃します.
  3. EMAのパラメータの選択は戦略に大きな影響を及ぼし,異なる品種と期間ごとに個別に調整する必要があります.
  4. ストカスティックRSIパラメータも実際の状況に応じて調整する必要があるし,現在のデフォルト値は一部の品種でうまく機能しない可能性があります.

オプティマイゼーションの方向性

  1. ATR指標の導入を検討し,異なる変動レベルに適応するために過買い値と過売値を動的に調整する.
  2. 価格回転の位置をより正確に記述するために,異なる期間の EMA を追加します.
  3. ストップ・ロストと/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または
  4. ピンバーやエングルフィングパターンのようなキャンドルスティックパターンは,正確性を向上させるための補足条件としてトレンド逆転を判断するのに役立ちます.

概要

この戦略は,トレンドリトレースを把握しながらリスクを効果的に制御するために,ストーカスティックRSIとEMA多条件検証を組み合わせています.全体的な考え方はシンプルで理解しやすいもので,初心者が学び,使用するのに適しています.しかし,戦略自体には,横向市場でのパフォーマンスが悪いこと,トレンド動きの把握が不十分であるなど,いくつかの制限もあります.実際の状況に応じて柔軟に調整する必要があります.将来,ダイナミックパラメータ,より多くの指標検証,より堅牢なリターンを得るためのマネーマネジメントなどの側面から戦略を最適化し改善することも検討できます.一般的に,この戦略は,変更および拡張できる基本的なテンプレートとして機能し,良い出発点および学習材料です.


/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Crypto-EMA_Pullback=-", overlay=true,initial_capital = 10000000,default_qty_type=strategy.percent_of_equity, default_qty_value=10.0, pyramiding = 10)

// Inputs
lengthRsi = input(14, title="RSI Length")
k = input(3, title="Stoch %K")
d = input(3, title="Stoch %D")
lengthStoch = input(14, title="Stochastic RSI Length")
overSold = input(25, title="Oversold Level")
overBought = input(85, title="Overbought Level")
emaFastLength = input(9, title="Fast EMA Length")
emaMediumLength = input(14, title="Medium EMA Length")
emaSlowLength = input(20, title="Slow EMA Length")

// Calculating EMAs
emaFast = ta.ema(close, emaFastLength)
emaMedium = ta.ema(close, emaMediumLength)
emaSlow = ta.ema(close, emaSlowLength)

// Calculating the RSI and Stoch RSI
rsi = ta.rsi(close, lengthRsi)
stochRsiK = ta.sma(ta.stoch(rsi, rsi, rsi, lengthStoch), k)
stochRsiD = ta.sma(stochRsiK, d)

// Entry Conditions
bullishCondition = close > emaSlow and close < emaFast and close < emaMedium and stochRsiK < overSold
bearishCondition = close < emaSlow and close > emaFast and close > emaMedium and stochRsiK > overBought

// Strategy Execution
if (bullishCondition)
    strategy.entry("Long", strategy.long)

if (bearishCondition)
    strategy.entry("Short", strategy.short)

// Plotting
plot(emaFast, color=color.blue, title="Fast EMA")
plot(emaMedium, color=color.orange, title="Medium EMA")
plot(emaSlow, color=color.red, title="Slow EMA")
hline(overSold, "Oversold", color=color.green)
hline(overBought, "Overbought", color=color.red)


もっと