RSI-CCI融合戦略


作成日: 2023-09-19 16:42:18 最終変更日: 2023-09-19 16:42:18
コピー: 0 クリック数: 1136
1
フォロー
1617
フォロワー

概要

RSI-CCI融合戦略は,RSIとCCIの2つの指標の優位性を統合することで,強力な取引戦略を形成します.それは,同時に動量と周期的な変化を捕捉し,市場状況をより全面的に判断することができます.

戦略原則

  1. RSIとCCIの値を計算する.

  2. z-scoreを使用してRSIとCCIの値を標準化し,比較性を高めます.

  3. 標準化されたRSIとCCIを一定の重みで融合させる.

  4. 計算の動向を把握し,超買いと超売りを識別する.

  5. 融合指数で軌道に乗るときは空きを考慮し,融合指数で軌道に乗るときは多行を考慮する.

優位分析

RSIまたはCCIを単独で使用するよりも,この戦略は以下の利点があります.

  1. この2つの指標の優位性を組み合わせることで,判断の正確さを向上させました.

  2. ダイナミックな上下軌道設定は科学的に合理化され,誤判を減らす.

  3. 標準化された処理により,異なる指標を比較し,融合効果を高める.

  4. 傾向と過剰買いと過剰売れを同時に判断できる.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. パラメータが正しく設定されず,重要な取引のタイミングを逃す可能性があります.

  2. 体重を正しく設定しないと,指標の効果が弱まります.

  3. 逆のトレードが起こりうる.

  4. 上下軌道が緩やかすぎたり密集すぎたりして誤判の危険がある.

最適化の方向

ウェブのコンテンツを最適化するには,以下のポイントを考慮する必要があります.

  1. 異なるパラメータをテストし,最適なパラメータを見つけます.

  2. 市場状況に応じて指標を最適化する.

  3. トレンド指数と量値指数の組み合わせにより,正確性が向上します.

  4. ストップダストストップを設定し,リスクをコントロールする.

  5. 上下軌のパラメータを最適化し,感度と騒音のバランスをとる.

要約する

RSI-CCI融合戦略は,指標融合の考え方により判断力を高め,科学的にパラメータを設定し,リスクをコントロールする前提下,全体的な効果は単一の指標戦略よりも優れている.しかし,市場調整方案に応じて注意が必要です.

ストラテジーソースコード
/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Julien_Eche

//@version=5
// strategy("RSI-CCI Fusion Strategy", shorttitle="RSI-CCI Fusion Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

length = input(14, title="Length")
rsi_weight = input.float(0.5, title="RSI Weight", minval=0.0, maxval=1.0)
cci_weight = 1.0 - rsi_weight

enableShort = input(false, "Enable Short Positions")

src = close
rsi = ta.rsi(src, length)
cci = ta.cci(src, length)

// Standardize the RSI and CCI values using z-score
rsi_std = ta.stdev(rsi, length)
rsi_mean = ta.sma(rsi, length)
rsi_z = (rsi - rsi_mean) / rsi_std

cci_std = ta.stdev(cci, length)
cci_mean = ta.sma(cci, length)
cci_z = (cci - cci_mean) / cci_std

// Combine the standardized RSI and CCI
combined_z = rsi_weight * rsi_z + cci_weight * cci_z

// Rescale to the original scale
rescaled = combined_z * ta.stdev(combined_z, length) + ta.sma(combined_z, length)

// Calculate dynamic upper and lower bands
upper_band = ta.sma(rescaled, length) + ta.stdev(rescaled, length)
lower_band = ta.sma(rescaled, length) - ta.stdev(rescaled, length)

// Buy and sell conditions
buySignal = ta.crossover(rescaled, lower_band)
sellSignal = ta.crossunder(rescaled, upper_band)

// Enter long position
if buySignal
    strategy.entry("Buy", strategy.long)

// Exit long position
if sellSignal
    strategy.close("Buy")

// Enter short position if enabled
if enableShort and sellSignal
    strategy.entry("Sell", strategy.short)

// Exit short position if enabled
if enableShort and buySignal
    strategy.close("Sell")