RSI CCI ウィリアムズ%R 定量取引戦略


作成日: 2024-01-24 11:18:08 最終変更日: 2024-01-24 11:18:08
コピー: 0 クリック数: 1155
1
フォロー
1617
フォロワー

RSI CCI ウィリアムズ%R 定量取引戦略

##戦略概要 この戦略は,RSI,CCI,およびウィリアムズ指数の3つの分類指標を組み合わせた中短期戦略であり,買入シグナルの効果的な組み合わせを実現する. 3つの指標が同時にオーバーバイまたはオーバーセールシグナルを示すとき,戦略は取引信号を発信する. 特定の指標を使用するよりも,この組み合わせ戦略は,より多くの偽信号をフィルターすることができ,その結果,戦略の安定性を向上させる.

戦略の名称は,RSI,CCI,William指数の組み合わせを意味する三線トラウラー戦略である.トラウラーは,この戦略が,漁船のように網を張るチャンスであると述べています.

戦略原則

この戦略は,以下のような指標によって判断されます.

  1. RSIは 超買いと超売れを判断する
  2. CCIの指標は,市場転換点を判断している.
  3. ウィリアムズ %Rの指数は,再び買い買いのタイミングを確認しました.

RSIが25を下回るとオーバーセール,75を超えるとオーバーバイ.CCIが-130を下回るとオーバーセール,130を超えるとオーバーバイ.Williams %Rが-85を下回るとオーバーセール,15を超えるとオーバーバイ.

上記の3つの指標が同時に買い信号を示しているとき,すなわちRSI < 25,CCI < -130,ウィリアムズ%R < -85,戦略は多; 販売信号を示しているとき,すなわちRSI > 75,CCI > 130,ウィリアムズ%R > -15,戦略は空.

これにより,単一の指標によって生成される偽信号を避け,信号の信頼性を高めることができる.また,単一の取引のリスクと利益を制御するために,ストップ・ロスとストップ・ストップを配置することができる.

戦略的優位性

  1. 偽信号をフィルタリングする多指数組み合わせ
    この戦略は,RSI,CCI,ウィリアムズ%Rの3つの指標の組み合わせを使用して,単一の指標Belowの偽の買入シグナルを効果的にフィルターして,信号の信頼性を向上させることができます.

  2. 自動停止 リスク管理
    策略には,ストップとストップ・ロスの設定が内蔵されており,各取引に自動的にストップとストップ・ロスの価格を設定し,単一取引の損失を効果的に制御し,許容範囲を超えてはならない.

  3. 中短期取引に適用される
    この戦略は,指標の組み合わせで判断するより明確な中短期トレンドの逆転に適した中短期取引に適しています. 短期ノイズと中長期のトレンド識別能力は弱いです.

  4. 観測データは十分です
    この戦略は,ユーロ対ドル45分K線を用いており,これは,外為市場において流動性があり,データに充足した品種であり,データ不足による過適合リスクを軽減する.

戦略リスク

  1. 中長期トレンド判断能力の弱さ
    この戦略は,指標の反転信号に依存し,中長期のトレンドを判断し,追跡する能力が弱く,長期にわたる一方的な状況に遭遇した場合,取引収益の余地が制限されます.

  2. 短期的な価格変動を逃す可能性
    戦略は45分周期で,より高い周波数の短期的な価格変動の利得の機会を捉えることができない.短期的により大きな価格変動がある場合,戦略はこれらの機会を逃す可能性があります.

  3. システム上のリスクの影響
    この戦略は主にユーロ対米ドル品種に用いられる.もし重大な経済危機に遭遇し,世界外為市場がBelow波動を起こした場合,戦略の取引規則は失効し,大きな損失をもたらす可能性がある.

戦略最適化の方向性

  1. トレンドフォローの指標と組み合わせて
    MA,Bollなどの平均指標を戦略に含め,中長期のトレンドを判断し,トレンドの方向がより明確であるときにポジションを開くことで,利益の確率を高めることができます.

  2. ストップ・ストップ・ストップ戦略の最適化
    より多くの歴史的データを回測して,異なるストップ・ストップパラメータが最終利益に与える影響を評価し,最適のパラメータの組み合わせを探することができる.さらに,ダイナミック・ストップ・ストップを考慮することもできる.

  3. 適用品種を拡大
    現在の戦略は主にユーロ対米ドルの品種に適用されます. この戦略を他の主流の品種,例えばポンド,日元,オーストラリアドルなどにも適用し,その安定性と拡張性をテストすることができます.

要約する

三歩トラウラー戦略は,RSI,CCI,ウィリアムズ%Rの3つの指標の組み合わせで価格の逆転点を判断し,オーバーバイのオーバーセール時に取引信号を発する.単一の指標と比較して,この組み合わせは,より多くの偽信号をフィルタリングし,信号の正確性を効果的に向上させることができる.自動化されたストップ・ストップ・損失管理により,取引リスクを制御する.全体的に,この戦略は,より安定的で,中短期の操作に適しており,私たちの量化取引システムにモジュールを追加することができます.しかし,我々は,この戦略が中長期のトレンドを判断し,短期間の価格変動を捉えるという点で欠けていることに注意する必要があります.

ストラテジーソースコード
/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-23 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI CCI Williams %R Strategy with TP and SL", overlay=true)

// Input parameters for indicators
rsi_period = input(14, title="RSI Period")
cci_period = input(20, title="CCI Period")
williams_period = input(14, title="Williams %R Period")

// Thresholds for overbought and oversold conditions
rsi_oversold = input(25, title="RSI Oversold Level")
rsi_overbought = input(75, title="RSI Overbought Level")
cci_oversold = input(-130, title="CCI Oversold Level")
cci_overbought = input(130, title="CCI Overbought Level")
williams_oversold = input(-85, title="Williams %R Oversold Level")
williams_overbought = input(-15, title="Williams %R Overbought Level")

// Take profit and stop loss levels as a percentage
take_profit_pct = input(1.2, title="Take Profit (%)") / 100
stop_loss_pct = input(0.45, title="Stop Loss (%)") / 100

// Indicator calculations
rsi = ta.rsi(close, rsi_period)
cci = ta.cci(close, cci_period)
highestHigh = ta.highest(high, williams_period)
lowestLow = ta.lowest(low, williams_period)
williamsR = (highestHigh - close) / (highestHigh - lowestLow) * -100

// Entry conditions
longCondition = rsi < rsi_oversold and cci < cci_oversold and williamsR < williams_oversold and strategy.position_size == 0
shortCondition = rsi > rsi_overbought and cci > cci_overbought and williamsR > williams_overbought and strategy.position_size == 0

// Execute strategy entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit or Stop Loss Long", "Long", limit=close * (1 + take_profit_pct), stop=close * (1 - stop_loss_pct))

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit or Stop Loss Short", "Short", limit=close * (1 - take_profit_pct), stop=close * (1 + stop_loss_pct))

// Plot the signals on the chart
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, text="SELL")

// Plot the indicators for visualization
plot(rsi, title="RSI", color=color.blue)
plot(cci, title="CCI", color=color.purple)
plot(williamsR, title="Williams %R", color=color.orange)