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

CCIの拡張適応型商品の底部漁業取引戦略

作者: リン・ハーンチャオチャン開催日:2023年12月21日 14時30分03秒
タグ:

img

概要

この戦略は,コモディティチャネルインデックス (CCI) 指標に基づいており,トレンド逆転のタイミングを決定するために動的適応入口レベルを使用し,利益をロックするためにトレーリングストップ損失を使用しています. 戦略名"コモディティのための拡張適応CCI底部漁業取引戦略"は,この戦略の主要な側面を把握しています.CCI指標を使用して,逆転機会のために漁獲する過剰販売ゾーンを特定し,エントリータイミングを最適化するために適応入口レベルを採用します.

戦略の論理

CCIの基本指標は,過剰販売ゾーンを特定するために使用され,したがってトレンド逆転の機会を暗示する.また,CCI過剰販売ゾーンの範囲は,異なる楽器や市場環境によって異なります.したがって,この戦略は,特定の見直し期間の最低CCIレベルを調査し,CCI購入エントリーレベルを動的に設定する"遠見"アプローチを採用しています.過去40日間の最低CCIが-90を超えると,-90は新しい過剰販売ゾーンの限界値になります.この適応型デザインにより,異なる市場条件に動的に適合し,強いダウントレンドの間により保守的なエントリーを追求し,範囲限定市場ではより積極的なエントリーを追求できます.

戦略は,過去40日,50日,その他の異なるバックバック日間の最低CCI読み上げをチェックします.最低CCIが次のレベル,例えば -90よりも高くなった場合, -90は新しいエントリーレベルになります.そして,エントリーレベルは -145 / -90 / -70 / -50 / -4 / 0 / +25 / +50 / +70の間を動的に切り替えることができます.CCIが対応レベルを下回ると,長いエントリー信号が起動されます.

さらに,ストップ・ロスは,価格とともにストップレベルが上昇する利益をロックするために使用されます.

利点分析

  • CCI を利用して過売り地域を特定するための明確で信頼性の高いアプローチ
  • 入場レベルの適応設計により,戦略は自動的に異なる市場環境に適応できます
  • トレイリングストップ損失は,利益を効果的にロックするのに役立ちます

固定エントリーレベルと比較して,このようなダイナミックなデザインは,最適化されたエントリータイミングを可能にします. 強いダウントレンドの間により保守的なエントリーを追求することでリスクが軽減され,レンジ・バインド市場ではより低いエントリーによりより多くの機会が獲得できます. これにより,戦略の適応性が向上します.

CCI自体は過買い/過売りレベルを特定するための明確で信頼性の高い指標です.CCIに基づいてトレンド逆転を判断する論理は証明されています.ダイナミックなエントリーデザインと組み合わせると,この戦略の全体的な利点は重要です.

リスク分析

  • CCIは完璧ではないし,いくつかの欠陥がある.価格がCCI値から急速に逸脱した場合,判断は失敗する可能性があります.
  • 市場環境の変化に完全に対応できない.調整の遅延は,最適なエントリータイミングの欠如を引き起こす可能性があります.
  • 商品市場の変動が高く ストップ・ロスの設定が不適切なら 大きな損失を伴う

トレンド逆転点を検出する論理には,いくつかの遅れの属性がある. 急激な価格急上昇またはクラッシュの間にエントリータイミングが正確ではない可能性があります. また,適応メカニズムは現在の市場環境に完璧に適合しない可能性があります. その結果,最適でないエントリーになります. 最後に,商品市場の高い変動は,ストップ損失パラメータが適切に設定されていない場合,大きな損失を引き起こす可能性があります.

改善 の 方向

  • CCI パラメータとスムージング 期間を最適化し,異なる CCI 長さのテスト効果
  • より多くのエントリーレベルのタイプをテストし,より良いデフォルト値や適応設計を見つけます
  • 異なるストップ・ロスのパラメータをテストし,商品市場の高変動性属性に対応するためにストップ・ロスの範囲を適切に上昇させる

主にCCI自身,エントリーレベル設計,ストップ損失パラメータが改善される.特定のインstrumentの最適なパラメータを正確に特定することで戦略のパフォーマンスを向上させることができます.

概要

この戦略は,過買い/過売りゾーンを検出するためにCCIを使用する論理と,トレンド逆転を把握するためのダイナミックな適応性エントリーレベルデザインを組み合わせている.固定パラメータと比較して,ダイナミックエントリーレベルは適応性を大幅に向上させる.このストップロスの追跡付きのエントリー逆転キャプチャモデルでは,強い勢いで機会を掴み,時間をかけて損失を削減することができる.適切に構成されたパラメータにより,この戦略は持続可能性と強度を示している.より高い安定性と収益性を達成するために,CCIパラメータとエントリーレベルルールを常に最適化することで,さらなる改善が可能である.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Extended Adaptive CCI Entry Strategy for Commodities", shorttitle="Ext_Adaptive_CCI_Entry_Com", overlay=true)

// Inputs
cciLength = input(20, title="CCI Period")
defaultCCIEntryOversold = input(-145, title="Default CCI Entry Oversold Level")
adaptiveCCIEntryLevel90 = input(-90, title="Adaptive CCI Entry Level for 40 Days")
adaptiveCCIEntryLevel70_50Days = input(-70, title="Adaptive CCI Entry Level for 50 Days")
adaptiveCCIEntryLevel50 = input(-50, title="Adaptive CCI Entry Level for 60 Days")
adaptiveCCIEntryLevel4 = input(-4, title="Adaptive CCI Entry Level for 90 Days")
adaptiveCCIEntryLevel0 = input(0, title="Adaptive CCI Entry Level for 120 Days")
adaptiveCCIEntryLevel25 = input(25, title="Adaptive CCI Entry Level for 140 Days")
adaptiveCCIEntryLevel50_160Days = input(50, title="Adaptive CCI Entry Level for 160 Days")
adaptiveCCIEntryLevel70_180Days = input(70, title="Adaptive CCI Entry Level for 180 Days")
lookback40 = input(40, title="Lookback Period for -90 Level")
lookback50 = input(50, title="Lookback Period for -70 Level")
lookback60 = input(60, title="Lookback Period for -50 Level")
lookback90 = input(90, title="Lookback Period for -4 Level")
lookback120 = input(120, title="Lookback Period for 0 Level")
lookback140 = input(140, title="Lookback Period for +25 Level")
lookback160 = input(160, title="Lookback Period for +50 Level")
lookback180 = input(180, title="Lookback Period for +70 Level")

// Indicator Calculation
cci = ta.cci(close, cciLength)

// Determine adaptive entry level based on lookback periods
var float entryLevel = defaultCCIEntryOversold // Initialize with the default level
if ta.lowest(cci, lookback40) > adaptiveCCIEntryLevel90
    entryLevel := adaptiveCCIEntryLevel90
if ta.lowest(cci, lookback50) > adaptiveCCIEntryLevel70_50Days
    entryLevel := adaptiveCCIEntryLevel70_50Days
if ta.lowest(cci, lookback60) > adaptiveCCIEntryLevel50
    entryLevel := adaptiveCCIEntryLevel50
if ta.lowest(cci, lookback90) > adaptiveCCIEntryLevel4
    entryLevel := adaptiveCCIEntryLevel4
if ta.lowest(cci, lookback120) > adaptiveCCIEntryLevel0
    entryLevel := adaptiveCCIEntryLevel0
if ta.lowest(cci, lookback140) > adaptiveCCIEntryLevel25
    entryLevel := adaptiveCCIEntryLevel25
if ta.lowest(cci, lookback160) > adaptiveCCIEntryLevel50_160Days
    entryLevel := adaptiveCCIEntryLevel50_160Days
if ta.lowest(cci, lookback180) > adaptiveCCIEntryLevel70_180Days
    entryLevel := adaptiveCCIEntryLevel70_180Days

// Entry Condition
longCondition = cci < entryLevel

// Entry and Exit
if (longCondition)
    strategy.entry("Long", strategy.long, qty=1)
    alert("Long entry executed at " + str.tostring(close), alert.freq_once_per_bar)

trailOffset = input(10.0, title="Trailing Stop Offset in USD")
strategy.exit("Trailing Stop", "Long", trail_offset = trailOffset, trail_price = close)
if (close < entryLevel - trailOffset)
    alert("Long position closed at " + str.tostring(close), alert.freq_once_per_bar)

// Plotting
plot(series=cci, color=color.purple, title="CCI")
hline(price=defaultCCIEntryOversold, color=color.red, title="Default CCI Entry Oversold Level")
hline(price=adaptiveCCIEntryLevel90, color=color.orange, title="CCI -90 Level (40 Days)")
hline(price=adaptiveCCIEntryLevel70_50Days, color=color.yellow, title="CCI -70 Level (50 Days)")
hline(price=adaptiveCCIEntryLevel50, color=color.green, title="CCI -50 Level (60 Days)")
hline(price=adaptiveCCIEntryLevel4, color=color.blue, title="CCI -4 Level (90 Days)")
hline(price=adaptiveCCIEntryLevel0, color=color.purple, title="CCI 0 Level (120 Days)")
hline(price=adaptiveCCIEntryLevel25, color=color.aqua, title="CCI +25 Level (140 Days)")
hline(price=adaptiveCCIEntryLevel50_160Days, color=color.black, title="CCI +50 Level (160 Days)")
hline(price=adaptiveCCIEntryLevel70_180Days, color=color.gray, title="CCI +70 Level (180 Days)")


もっと