
Die Strategie verwendet die RSI-Anzeige, um die Preisbewegung zu messen, um den Zeitpunkt des Eintritts zu bestimmen, indem die Standardabweichung der RSI-Veränderung berechnet wird. Wenn die RSI-Bewegung über die Standardabweichungsschwelle liegt und die Bewegung des vorherigen Augenblicks durch den Ausfallfaktor multipliziert wird, wird eine Überposition eröffnet, umgekehrt eine leere Position geöffnet.
Die Strategie nutzt die RSI-Dynamik und die Standardabweichung, um im Hochfrequenzumfeld umzukehren. Durch die Einführung von Ausfallfaktoren und einer begrenzten Preisniederlage kann die Strategie die Handelschancen von Preisschwankungen erfassen, während das Risiko kontrolliert wird. Die Strategie muss jedoch in der Praxis weiter optimiert werden, z. B. durch die Einführung von mehr Indikatoren, optimierte Parameter-Sets und die Einführung von Positionsmanagement und Trendfiltern, um die Stabilität und Profitabilitä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)