
La estrategia es un sistema de trading dinámico que combina varios indicadores técnicos, al mismo tiempo que integra un mecanismo flexible de stop-loss. La estrategia utiliza principalmente las señales cruzadas de los tres indicadores técnicos más comunes, el RSI, EMA y MACD, para juzgar la tendencia y el dinamismo del mercado y tomar decisiones de trading sobre esta base. La estrategia también introduce el concepto de porcentaje de stop-loss y el riesgo-beneficio ratio para optimizar la gestión de fondos y el control de riesgos.
El principio central de la estrategia es identificar oportunidades potenciales de negociación a través de la sinergia de varios indicadores. En concreto:
Cuando estos indicadores cumplen con ciertas condiciones al mismo tiempo, la estrategia dispara una señal de negociación. Por ejemplo, cuando el EMA a corto plazo se cruza por el EMA a largo plazo, el RSI está por debajo del nivel de sobreventa y el MACD está por encima de la línea de señal, se produce una señal de multiplicación. Las condiciones opuestas generan una señal de baja.
Además, la estrategia también incorpora un mecanismo de stop loss por ciento, lo que permite a los comerciantes establecer los niveles de stop loss y stop loss adecuados según sus preferencias de riesgo. La introducción de la proporción de ganancias por riesgo optimiza aún más la estrategia de gestión de fondos.
La estrategia multi-indicador de comercio de dinámica cruzada ofrece a los comerciantes un sistema de negociación completo mediante el uso integral de indicadores técnicos como RSI, EMA y MACD, junto con un mecanismo de parada y pérdida flexible. La estrategia tiene la ventaja de su capacidad para analizar el mercado desde múltiples ángulos y un método flexible de gestión de riesgos. Sin embargo, como todas las estrategias de negociación, también enfrenta riesgos como el exceso de comercio y la sensibilidad a los parámetros.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-10-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Crypto Futures Day Trading with Profit/Limit/Loss", overlay=true, margin_long=100, margin_short=100)
// Parameters for the strategy
rsiPeriod = input.int(14, title="RSI Period")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
emaShortPeriod = input.int(9, title="Short EMA Period")
emaLongPeriod = input.int(21, title="Long EMA Period")
macdFastLength = input.int(12, title="MACD Fast Length")
macdSlowLength = input.int(26, title="MACD Slow Length")
macdSignalSmoothing = input.int(9, title="MACD Signal Smoothing")
// Parameters for Take Profit, Stop Loss, and Limit
takeProfitPercent = input.float(3, title="Take Profit %", step=0.1) // 3% by default
stopLossPercent = input.float(1, title="Stop Loss %", step=0.1) // 1% by default
limitRiskRewardRatio = input.float(2, title="Risk/Reward Ratio", step=0.1) // Example: 2:1 ratio
// Calculate RSI
rsi = ta.rsi(close, rsiPeriod)
// Calculate EMA (Exponential Moving Average)
emaShort = ta.ema(close, emaShortPeriod)
emaLong = ta.ema(close, emaLongPeriod)
// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalSmoothing)
// Calculate take profit and stop loss levels
takeProfitLong = strategy.position_avg_price * (1 + takeProfitPercent / 100)
stopLossLong = strategy.position_avg_price * (1 - stopLossPercent / 100)
takeProfitShort = strategy.position_avg_price * (1 - takeProfitPercent / 100)
stopLossShort = strategy.position_avg_price * (1 + stopLossPercent / 100)
// Entry conditions for long position
longCondition = ta.crossover(emaShort, emaLong) and rsi < rsiOverbought and macdLine > signalLine
if (longCondition)
strategy.entry("Long", strategy.long)
// Exit conditions for long position based on stop loss and take profit
strategy.exit("Take Profit/Stop Loss Long", from_entry="Long", limit=takeProfitLong, stop=stopLossLong)
// Entry conditions for short position
shortCondition = ta.crossunder(emaShort, emaLong) and rsi > rsiOversold and macdLine < signalLine
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit conditions for short position based on stop loss and take profit
strategy.exit("Take Profit/Stop Loss Short", from_entry="Short", limit=takeProfitShort, stop=stopLossShort)
// Plot EMA lines on the chart
plot(emaShort, color=color.blue, title="Short EMA (9)")
plot(emaLong, color=color.red, title="Long EMA (21)")
// Plot MACD and signal lines in a separate window
plot(macdLine, color=color.green, title="MACD Line")
plot(signalLine, color=color.orange, title="Signal Line")
// Plot RSI
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, color=color.purple, title="RSI")