RSIとCCIの合併戦略

作者: リン・ハーンチャオチャン, 日時: 2023-09-19 16:42:18
タグ:

概要

RSI-CCI Fusion戦略は,RSIとCCI指標の強みを組み合わせて強力な取引アプローチを形成しています.より包括的な市場評価のために,勢いと周期的動態の両方を把握します.

戦略原則

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

  2. 比較性を高めるため,RSIとCCIをzスコアを用いて標準化します.

  3. 標準化されたRSIとCCIを指定された重量でフィューズします

  4. 超買/超売レベルを特定するために動的上位および下位帯を計算する.

  5. 核融合指標が上部帯を下回るときは短く,下部帯を下回るときは長く考える.

利点分析

この戦略の利点は,RSIやCCIを単独で使うことと比べて以下の通りです.

  1. 精度向上のために 両方の指標の強みを統合します

  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")


もっと