Diese Strategie nutzt den RSI-Indikator, um die Kursdynamik zu messen und die Eintrittszeiten durch Berechnung der Standardabweichung der Veränderungen des RSI zu bestimmen. Sie tritt in eine Long-Position ein, wenn die RSI-Dynamik die Standardabweichungsschwelle überschreitet und kleiner ist als die vorherige Dynamik multipliziert mit einem Erschöpfungskonzentrationsfaktor und tritt unter den entgegengesetzten Bedingungen in eine Short-Position ein. Die Strategie verwendet Limit-Orders für den Ausstieg und kontrolliert das Risiko durch Festlegen von Gewinnziel und Stop-Loss-Ticks. Die Strategie wird bei jedem Preis-Tick ausgeführt, um alle potenziellen Preisbewegungen zu erfassen.
Diese Strategie nutzt RSI-Momentum und Standardabweichungsschwellen, um Umkehrhandel in einer Hochfrequenzumgebung durchzuführen. Durch die Einführung eines Erschöpfungsschubs und Limit-Order-Ausgangs ist die Strategie in der Lage, Handelschancen zu erfassen, die durch Kursbewegungen gebracht werden, während das Risiko kontrolliert wird. Die Strategie muss jedoch bei der tatsächlichen Anwendung noch weiter optimiert werden, z. B. durch die Einführung mehrerer Indikatoren, die Optimierung von Parameter-Einstellungen, die Einführung von Positionsmanagement und Trendfilterung usw., um die Stabilität und Rentabilität der Strategie zu verbessern.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MCOTs Intuition Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=50000, calc_on_every_tick=true) // Input for RSI period rsiPeriod = input(14, title="RSI Period") // Input for standard deviation multiplier stdDevMultiplier = input(1.0, title="Standard Deviation Multiplier") // Input for exhaustion detection exhaustionMultiplier = input(1.5, title="Exhaustion Multiplier") // Input for profit target and stop loss in ticks profitTargetTicks = input(8, title="Profit Target (ticks)") stopLossTicks = input(32, title="Stop Loss (ticks)") // Calculate RSI rsiValue = ta.rsi(close, rsiPeriod) // Calculate standard deviation of RSI changes rsiStdDev = ta.stdev(ta.change(rsiValue), rsiPeriod) // Calculate momentum momentum = ta.change(rsiValue) // Conditions for entering a long position longCondition = momentum > rsiStdDev * stdDevMultiplier and momentum < momentum[1] * exhaustionMultiplier if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Take Profit Long", "Long", limit=close + profitTargetTicks * syminfo.mintick) strategy.exit("Stop Loss Long", "Long", stop=close - stopLossTicks * syminfo.mintick) // Conditions for entering a short position shortCondition = momentum < -rsiStdDev * stdDevMultiplier and momentum > momentum[1] * exhaustionMultiplier if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Take Profit Short", "Short", limit=close - profitTargetTicks * syminfo.mintick) strategy.exit("Stop Loss Short", "Short", stop=close + stopLossTicks * syminfo.mintick) // Plotting RSI value for reference plot(rsiValue, title="RSI", color=color.blue)