Esta estrategia utiliza una combinación de varios indicadores técnicos, como el sistema de línea media, el indicador RSI y el indicador Stoch, para juzgar la tendencia de los precios y el estado de sobreventa y sobreventa. La estrategia reúne las ventajas de varios indicadores para tomar decisiones comerciales más estables y confiables.
Principio de la estrategia:
Calcula el promedio de EMA de varios grupos para determinar la tendencia de la línea media larga.
Calcular el RSI y el indicador Stoch para determinar si el mercado está sobrecomprado o sobrevendido.
Cuando el sistema de la línea media emite señales para hacer más, cuando el RSI no está sobrecomprado y cuando el Stoch no está sobrecomprado, realice más operaciones.
Cuando el sistema de línea media emite una señal de baja, el RSI no está sobrevendido y el Stoch no está sobrevendido, se realiza una operación de baja.
Cuando un indicador emite una señal de reversión, se realiza una operación de posición plana.
Las ventajas de esta estrategia:
La verificación de la combinación de varios indicadores reduce la probabilidad de transacciones erróneas.
Los indicadores se complementan entre sí para mejorar el conocimiento del mercado.
Las reglas de transacción son claras, lo que facilita la retroalimentación y el registro.
El riesgo de esta estrategia:
Se debe evaluar cuidadosamente la repetibilidad de los indicadores y evitar la excesiva redundancia.
Los parámetros de optimización de la combinación de múltiples indicadores son más complejos.
El aumento de los indicadores no necesariamente mejora la eficacia de la estrategia.
En resumen, la combinación de múltiples indicadores puede mejorar la eficacia de la toma de decisiones, pero hay que tener en cuenta la dificultad de optimización y la duplicación de indicadores, manteniendo la estrategia simple y confiable.
/*backtest
start: 2022-09-06 00:00:00
end: 2023-09-12 00:00:00
period: 3d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// strategy(title='Combined Strategy', default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=.0020, pyramiding=0, slippage=3, overlay=true)
//----------//
// MOMENTUM //
//----------//
ema8 = ta.ema(close, 5)
ema13 = ta.ema(close, 9)
ema21 = ta.ema(close, 13)
ema34 = ta.ema(close, 21)
ema55 = ta.ema(close, 34)
plot(ema8, color=color.new(color.red, 0), style=plot.style_line, title='5', linewidth=1)
plot(ema13, color=color.new(color.orange, 0), style=plot.style_line, title='9', linewidth=1)
plot(ema21, color=color.new(color.yellow, 0), style=plot.style_line, title='13', linewidth=1)
plot(ema34, color=color.new(color.aqua, 0), style=plot.style_line, title='21', linewidth=1)
plot(ema55, color=color.new(color.lime, 0), style=plot.style_line, title='34', linewidth=1)
longEmaCondition = ema8 > ema13 and ema13 > ema21 and ema21 > ema34 and ema34 > ema55
exitLongEmaCondition = ema13 < ema55
shortEmaCondition = ema8 < ema13 and ema13 < ema21 and ema21 < ema34 and ema34 < ema55
exitShortEmaCondition = ema13 > ema55
// ---------- //
// OSCILLATORS //
// ----------- //
rsi = ta.rsi(close, 14)
longRsiCondition = rsi < 70 and rsi > 40
exitLongRsiCondition = rsi > 70
shortRsiCondition = rsi > 30 and rsi < 60
exitShortRsiCondition = rsi < 30
Stochastic
length = 14, smoothK = 3, smoothD = 3
kFast = ta.stoch(close, high, low, 14)
dSlow = ta.sma(kFast, smoothD)
longStochasticCondition = kFast < 80
exitLongStochasticCondition = kFast > 95
shortStochasticCondition = kFast > 20
exitShortStochasticCondition = kFast < 5
//----------//
// STRATEGY //
//----------//
longCondition = longEmaCondition and longRsiCondition and longStochasticCondition and strategy.position_size == 0
exitLongCondition = (exitLongEmaCondition or exitLongRsiCondition or exitLongStochasticCondition) and strategy.position_size > 0
if (longCondition)
strategy.entry("LONG", strategy.long)
if (exitLongCondition)
strategy.close("LONG")
shortCondition = shortEmaCondition and shortRsiCondition and shortStochasticCondition and strategy.position_size == 0
exitShortCondition = (exitShortEmaCondition or exitShortRsiCondition or exitShortStochasticCondition) and strategy.position_size < 0
if (shortCondition)
strategy.entry("SHORT", strategy.short)
if (exitShortCondition)
strategy.close("SHORT")