資源の読み込みに... 荷物...

適性多態EMA-RSIモメントストラテジーは,ショッピネスインデックスフィルターシステム

作者: リン・ハーンチャオチャン開催日:2024年12月27日 14:05:32
タグ:C.I.RSIエイマATR

img

概要

この戦略は,トレンドフォローとレンジトレーディングを組み合わせる適応システムで,市場状況を決定するためにチャッピネスインデックス (CI) を使用し,対応する取引論理を適用する.トレンド市場では,戦略は EMAクロスオーバーとRSIオーバーバイト/オーバーセールシグナルを使用して取引する.レンジ市場では,主にRSI極端値に依存する.戦略には,リスクを制御し利益をロックするためのストップ・ロストとテイク・プロフィートメカニズムも含まれる.

戦略の原則

この戦略の核心は,市場をトレンド (CI<38.2) とレンジング (CI>61.8) の状態に分類するために,チャッピネス・インデックス (CI) を利用することにある.トレンド市場では,速いEMA (9期) がスローEMA (21期) を越えてRSIが70以下になるとロングポジションが開かれ,スローEMAが速いEMAを越えてRSIが30以上になるとショートポジションが開かれ.レンジング市場では,RSIが30以下になるとロングポジション,RSIが70以上になるとショートポジションが開かれ.この戦略には,2%ストップ・ロストと4%テイク・プロフィートレベルの対応した退出条件が含まれている.

戦略 の 利点

  1. 高い市場適応性: 市場状態をIC指標によって特定し,異なる市場環境で柔軟な戦略変更を可能にします
  2. 複数の信号の確認: 移動平均値,モメント指標,および波動指数を組み合わせて信号の信頼性を向上させる
  3. 総合的なリスク管理: 効果的なリスク管理のためのストップ・ロスト・メカニズムと利益を引き出すメカニズムを含む
  4. 明確な取引論理: 明確な取引規則を持つ傾向と変動する市場状態を区別する
  5. 高勝率:15分間の間に70~80%の勝利率を示しています

戦略リスク

  1. パラメータ感度:複数の技術指標には複雑なパラメータ最適化が必要です
  2. リスクは,市場状況の転換期における潜在的な誤った信号である.
  3. 低流動性市場条件において,大きな変動が起こり得る.
  4. 過剰取引: 市場の状態が頻繁に変化すると,過剰取引が起こる可能性があります.
  5. 市場依存: 戦略の業績は,特定の市場状況に大きく影響される可能性があります.

戦略の最適化方向

  1. ダイナミックパラメータ最適化: 異なる市場環境に基づいて指標パラメータを調整する
  2. 追加フィルター: 信号品質を改善するために音量および波動性フィルターを追加します.
  3. ストップ・ロスの最適化:ATRストップやトライリング・ストップのような動的ストップ・ロスのメカニズムを検討する.
  4. 国家識別の改善: 市場国家分類を精査し,中立な市場管理論理を追加
  5. シグナル確認システムの開発: 偽信号を減らすために追加のシグナル確認メカニズムを実施する

概要

この戦略は,複数の技術指標を組み合わせて,さまざまな市場環境で安定したパフォーマンスを維持することで,適応性の高い取引システムを構築する.その主な利点は,市場の適応性と包括的なリスク管理メカニズムにある.一方で,パラメータ最適化と市場状況依存性に注意を払わなければならない.継続的な最適化と改善を通じて,戦略はさまざまな市場状況でより良い取引結果を達成するための約束を示している.


/*backtest
start: 2024-12-19 00:00:00
end: 2024-12-26 00:00:00
period: 45m
basePeriod: 45m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nopology

//@version=6

strategy("CI, EMA, RSI", overlay=false)

// Input parameters
lengthCI = input(14, title="CI Length")
lengthRSI = input(14, title="RSI Length")
fastLength = input(9, title="Fast EMA Length")
slowLength = input(21, title="Slow EMA Length")

// Calculate CI
atr = ta.atr(lengthCI)
highLowRange = math.log10(math.max(high[lengthCI], high) - math.min(low[lengthCI], low))
sumATR = math.sum(atr, lengthCI)
ci = 100 * (math.log10(sumATR / highLowRange) / math.log10(lengthCI))

// Calculate RSI
rsi = ta.rsi(close, lengthRSI)

// Calculate EMAs
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)

// Define conditions
trendingMarket = ci < 38.2
rangingMarket = ci > 61.8
bullishSignal = ta.crossover(fastEMA, slowEMA) and rsi < 70
bearishSignal = ta.crossover(slowEMA, fastEMA) and rsi > 30

// Plot indicators for visualization
plot(ci, title="Choppiness Index", color=color.purple, linewidth=2)
plot(fastEMA, title="Fast EMA", color=color.blue)
plot(slowEMA, title="Slow EMA", color=color.red)

// Strategy Execution
if (trendingMarket)
    if (bullishSignal)
        strategy.entry("Long", strategy.long)
    if (bearishSignal)
        strategy.entry("Short", strategy.short)
else if (rangingMarket)
    if (rsi < 30)
        strategy.entry("Long", strategy.long)
    if (rsi > 70)
        strategy.entry("Short", strategy.short)

// Close positions when conditions no longer met or reverse
if (trendingMarket and not bullishSignal)
    strategy.close("Long")
if (trendingMarket and not bearishSignal)
    strategy.close("Short")
if (rangingMarket and rsi > 40)
    strategy.close("Long")
if (rangingMarket and rsi < 60)
    strategy.close("Short")

// Optional: Add stop loss and take profit
stopLossPerc = input.float(2, title="Stop Loss (%)", minval=0.1, step=0.1) / 100
takeProfitPerc = input.float(4, title="Take Profit (%)", minval=0.1, step=0.1) / 100

strategy.exit("Exit Long", "Long", stop=close*(1-stopLossPerc), limit=close*(1+takeProfitPerc))
strategy.exit("Exit Short", "Short", stop=close*(1+stopLossPerc), limit=close*(1-takeProfitPerc))

関連性

もっと