
Este artículo analiza principalmente la estrategia de comercio cuantitativa basada en el índice múltiple de promedios móviles (EMA) y el índice de fuerza relativa (RSI) desarrollado por Ravikant_sharma. La estrategia determina el valor de los diferentes períodos de cruce de los EMA y el RSI, identifica la tendencia de los precios y determina los momentos de entrada y salida.
La estrategia utiliza 5 EMA de diferentes períodos, incluyendo la línea de 9 días, la línea de 21 días, la línea de 51 días, la línea de 100 días y la línea de 200 días. El código solo traza los primeros 4 EMA. El parámetro RSI está configurado para 14.
La estrategia consiste en abrir más posiciones cuando se cumplen cualquiera de las siguientes condiciones:
El RSI también debe ser mayor que 65, lo que indica una fuerte tendencia alcista.
La estrategia de salida de la posición de equilibrio se ejecuta cuando se cumple una de las siguientes condiciones:
Es una estrategia típica de seguimiento de tendencias que tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
La estrategia también puede ser optimizada en las siguientes direcciones:
Esta estrategia en general es una estrategia de seguimiento de tendencias fiable y fácil de implementar. Utiliza EMA de varios períodos para determinar la dirección de la tendencia, y luego se combina con señales falsas de filtración RSI para optimizar los parámetros y optimizar los modelos sobre la base de un mejor efecto de retroalimentación. Se espera obtener ganancias estables.
/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Ravikant_sharma
//@version=5
strategy('new', overlay=true)
start = timestamp(1990, 1, 1, 0, 0)
end = timestamp(2043, 12, 12, 23, 59)
ema0 = ta.ema(close, 9)
ema1 = ta.ema(close, 21)
ema2 = ta.ema(close, 51)
ema3 = ta.ema(close, 100)
ema4 = ta.ema(close, 200)
rsi2=ta.rsi(ta.sma(close,14),14)
plot(ema0, '9', color.new(color.green, 0))
plot(ema1, '21', color.new(color.black, 0))
plot(ema2, '51', color.new(color.red, 0))
plot(ema3, '200', color.new(color.blue, 0))
//plot(ema4, '100', color.new(color.gray, 0))
//LongEntry = ( ta.crossover(ema0,ema3) or ta.crossover(ema0,ema2) or ta.crossunder(ema2,ema3) ) // ta.crossover(ema0,ema1) //
LongEntry=false
if ta.crossover(ema0,ema1)
if rsi2>65
LongEntry:=true
if ta.crossover(ema1,ema2)
if rsi2>65
LongEntry:=true
LongExit = ta.crossunder(ema0,ema2) or close >(strategy.position_avg_price*1.25) or rsi2 <40 or close < (strategy.position_avg_price*0.98)
if time >= start and time <= end
if(LongEntry and rsi2>60)
strategy.entry('Long', strategy.long, 1)
if(LongExit)
strategy.close('Long')