Diese Strategie ist ein auf dem Commodity Channel Index (CCI) basierendes Momentum-Handelssystem, das darauf ausgelegt ist, Handelschancen in überverkauften Bereichen zu erfassen, indem Preisentfernungen vom Durchschnitt überwacht werden.
Das Kernprinzip verwendet CCI, um die Preisentwicklung zu messen. Die CCI-Berechnung beinhaltet zunächst die Berechnung des typischen Preises (arithmetisches Mittel der hohen, niedrigen und schließenden Preise), dann die Berechnung des einfachen gleitenden Durchschnitts (SMA) des typischen Preises, schließlich die Ableitung von CCI, indem der SMA vom typischen Preis abgezogen, durch die mittlere Abweichung geteilt und um 0,015 multipliziert wird. Long-Positionen werden eingegeben, wenn der CCI unter -90 fällt, was auf mögliche Überverkaufsbedingungen hinweist; Positionen werden geschlossen, wenn der Preis über frühere Höchststände bricht, was den Aufwärtstrend bestätigt. Die Strategie bietet anpassbare Stop-Loss- und Take-Profit-Parameter, um unterschiedliche Risikopräferenzen zu berücksichtigen.
Diese Strategie erfasst Marktüberverkaufsmöglichkeiten durch CCI-Indikator, kombiniert mit Stop-Loss- und Take-Profit-Mechanismen, um ein vollständiges Handelssystem zu schaffen. Die Strategie verfügt über klare Logik, einfache Ausführung und gute Risikokontrollfähigkeiten. Durch Optimierungsmaßnahmen wie Signalfilterung und dynamische Schwellenwerte können die Stabilität und Rentabilität der Strategie weiter verbessert werden.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("CCI Threshold Strategy", overlay=false, initial_capital=50000, pyramiding=0, commission_type=strategy.commission.cash_per_contract, commission_value=0.05, slippage=1) // --- Input Parameters --- // Lookback period for CCI calculation lookbackPeriod = input.int(12, minval=1, title="CCI Lookback Period") // Buy threshold for CCI; typically represents an oversold condition buyThreshold = input.int(-90, title="CCI Buy Threshold") // Stop loss and take profit settings stopLoss = input.float(100.0, minval=0.0, title="Stop Loss in Points") takeProfit = input.float(150.0, minval=0.0, title="Take Profit in Points") // Checkboxes to enable/disable SL and TP useStopLoss = input.bool(false, title="Enable Stop Loss") useTakeProfit = input.bool(false, title="Enable Take Profit") // --- Calculate CCI --- // CCI (Commodity Channel Index) is used as a momentum indicator to identify oversold and overbought conditions cci = ta.cci(close, length=lookbackPeriod) // --- Define Buy and Sell Conditions --- // Buy condition: CCI drops below -90, indicating potential oversold levels longCondition = cci < buyThreshold // Sell condition: Close price crosses above the previous day's high, signaling potential exit sellCondition = close > ta.highest(close[1], 1) // --- Strategy Execution --- // Buy entry based on the long condition if (longCondition) strategy.entry("Buy", strategy.long) // Close the long position based on the sell condition if (sellCondition) strategy.close("Buy") // Optional: Add stop loss and take profit for risk management if (longCondition) strategy.exit("Sell", from_entry="Buy", loss=useStopLoss ? stopLoss : na, profit=useTakeProfit ? takeProfit : na) // --- Plotting for Visualization --- // Plot CCI with threshold levels for better visualization plot(cci, title="CCI", color=color.blue) hline(buyThreshold, "Buy Threshold", color=color.red, linestyle=hline.style_dotted) hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dotted)