Esta estrategia combina el RSI y las medias móviles para el sesgo de tendencia y agrega paradas de seguimiento para la gestión del riesgo.
Estrategia lógica:
Calcule el índice de reposición para juzgar los niveles de sobrecompra/sobreventa.
Cálcule los promedios móviles rápidos y lentos, la cruz dorada indica tendencia alcista.
Un aumento constante del RSI también indica una entrada larga.
Después de entrar, establece el stop loss y toma las líneas de ganancia.
Detener la trayectoria de pérdida por debajo del precio, tomar la trayectoria de ganancias por encima.
Salga cuando el precio se detenga o tome ganancias.
Ventajas:
RSI evita perseguir arriba y abajo.
Las medias móviles identifican la dirección de la tendencia.
Las paradas/beneficios de seguimiento se ajustan dinámicamente al precio.
Riesgos:
El RSI y el MA son propensos a señales falsas en mercados variados.
La anchura de la parada trasera requiere una calibración prudente, demasiado ancha o demasiado estrecha es problemática.
Incapaz de limitar el tamaño de las pérdidas, corre el riesgo de grandes pérdidas de operaciones.
En resumen, esta estrategia combina RSI y MAs y luego utiliza trailing stops para la gestión del riesgo.
/*backtest start: 2022-09-06 00:00:00 end: 2023-09-12 00:00:00 period: 4d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI and MA Strategy with Trailing Stop Loss and Take Profit", overlay=true, initial_capital=1000, process_orders_on_close=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1) showDate = input(defval=true, title='Show Date Range') timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0) notInTrade = strategy.position_size <= 0 //==================================Buy Conditions============================================ //RSI length = input(14) rsi = ta.rsi(close, length) buyCondition1 = rsi > 50 //MA SMA9 = ta.sma(close, 9) SMA50 = ta.sma(close, 50) SMA100 = ta.sma(close, 100) plot(SMA9, color = color.green) plot(SMA50, color = color.orange) plot(SMA100, color = color.blue) buyCondition2 = SMA9 > SMA50//ta.crossover(SMA9, SMA100) //RSI Increase increase = 5 buyCondition3 = (rsi > rsi[1] + increase) if (buyCondition1 and buyCondition2 and buyCondition3 and timePeriod) //and buyCondition strategy.entry("Long", strategy.long) //==================================Sell Conditions============================================ //Trailing Stop Loss and Take Profit longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=2) * 0.01 shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01 longStopPrice = 0.0 shortStopPrice = 0.0 longStopPrice := if strategy.position_size > 0 stopValue = close * (1 - longTrailPerc) math.max(stopValue, longStopPrice[1]) else 0 shortStopPrice := if strategy.position_size < 0 stopValue = close * (1 + shortTrailPerc) math.min(stopValue, shortStopPrice[1]) else 999999 strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)