
La estrategia utiliza el indicador RSI para medir el movimiento de los precios y determinar el momento de entrada calculando la diferencia estándar de los cambios en el RSI. Se abre una posición cuando el RSI supera el umbral de diferencia estándar y es menor que el movimiento del momento anterior multiplicado por el factor de falla. La estrategia utiliza posiciones de precio limitado y sencillo para controlar el riesgo estableciendo paradas y puntos de parada. La estrategia se ejecuta en cada cambio de precio para capturar todas las posibles fluctuaciones de precios.
La estrategia utiliza la dinámica del RSI y el umbral de la diferencia estándar para invertir en un entorno de alta frecuencia. Al introducir un factor de decadencia y una posición de paridad limitada, la estrategia puede capturar las oportunidades de negociación generadas por las fluctuaciones de los precios mientras controla el riesgo. Sin embargo, la estrategia necesita ser optimizada aún más en la aplicación real, como la introducción de más indicadores, la configuración de parámetros optimizados, la introducción de gestión de posiciones y filtración de tendencias, entre otros, para mejorar la estabilidad y la rentabilidad de la estrategia.
/*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)