Estrategia de cruce de medias móviles RSI


Fecha de creación: 2023-10-25 11:46:49 Última modificación: 2023-10-25 11:46:49
Copiar: 2 Número de Visitas: 1164
1
Seguir
1617
Seguidores

Estrategia de cruce de medias móviles RSI

Descripción general

La estrategia utiliza el principio de la cruz equilánea, en combinación con el indicador RSI, para determinar la dirección de la tendencia y realizar operaciones de compra y venta.

Principio de estrategia

La estrategia utiliza un promedio de EMA de 3 períodos diferentes: la línea rápida, la línea media y la línea lenta. Se considera una señal de compra cuando la línea rápida cruza la línea media; se considera una señal de venta cuando la línea rápida cruza la línea media.

Al mismo tiempo, la estrategia también utiliza el indicador RSI para juzgar el exceso de compra y venta. El RSI muestra la fortaleza relativa de un activo a través del promedio de alza y caída promedio en un ciclo. Cuando el RSI supera la línea de compra y venta establecida, se considera que está en un estado de sobreventa; cuando el RSI está por debajo de la línea de venta establecida, se considera que está en un estado de sobreventa.

Las condiciones de compra de la estrategia son:

  1. Los precios están en línea rápida, media y lenta.
  2. Línea de venta por encima del RSI

Las condiciones de venta son:

  1. La línea de abajo a través de la línea media
  2. Línea media bajo el RSI

Esta estrategia combina el comercio de tendencias y el comercio de inversiones para determinar la dirección de la tendencia general en combinación con el RSI y detectar oportunidades de sobreventa y sobreventa en el corto plazo.

Análisis de las ventajas

La estrategia combina el cruce de medias y el indicador RSI para juzgar la tendencia y el sobrecompra y sobreventa al mismo tiempo, y puede filtrar algunos de los intercambios de ruido causados por falsas rupturas. El uso de tres medias permite juzgar el estado de la tendencia con mayor claridad.

La configuración del RSI también permite a la estrategia aprovechar los mejores momentos de entrada y salida en las zonas de sobreventa y sobrecompra.

La estrategia también tiene en cuenta los costos de las transacciones, evitando la estafa al entrar en el mercado solo cuando el precio supera las tres medias.

Análisis de riesgos

El riesgo de que la estrategia se ajuste a la retrospectiva persiste. Los cambios en el entorno del mercado en el mercado físico pueden hacer que los parámetros ya no se adapten a las nuevas condiciones del mercado.

En situaciones de crisis, esta estrategia puede generar falsas señales que pueden provocar pérdidas.

La configuración de los parámetros del RSI debe ajustarse a los diferentes mercados. Si los parámetros no se ajustan correctamente, es fácil que se pierdan oportunidades o se generen señales falsas.

Dirección de optimización

  1. Se puede considerar la posibilidad de volver a validar la señal en un gráfico de un período de tiempo más largo para evitar la interferencia del ruido del mercado a corto plazo.

  2. Se puede probar antes de entrar en el mercado, esperar la ruptura o volver a la línea de paridad para entrar nuevamente y verificar aún más la señal.

  3. Se puede combinar con otros indicadores, como MACD, banda de Brin, etc., combinando señales de varios indicadores para mejorar la tasa de mortalidad de Entry.

  4. Se pueden utilizar algoritmos de aprendizaje automático para ayudar a optimizar los parámetros y hacer que las estrategias sean más adaptables.

  5. Se puede considerar la inclusión de una estrategia de stop loss para detener los pérdidas a tiempo cuando la tendencia es incierta.

Resumir

La estrategia integra el cruce equilíneo y el indicador RSI, al mismo tiempo que determina la tendencia, descubre oportunidades de reversión de tendencia a corto plazo. Utiliza eficazmente las ventajas del comercio de tendencia y el comercio de reversión, y al mismo tiempo puede mantenerse en la dirección favorable a largo plazo. La estrategia tiene cierto espacio de optimización, y puede hacer que la estrategia sea más estable y confiable mediante la verificación adicional de señales, parámetros de optimización y la adición de paradas.

Código Fuente de la Estrategia
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 1h
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/
// © chadsadachai

//@version=5
strategy("EMA Cross V1", overlay= true)

//rsi
length = input.int(title = "Rsi Lenght" , defval=26 , minval=1, maxval=50)
overS = input.int(title = "Rsi OVS line" , defval=30 , minval=1, maxval=40)
overB = input.int(title = "Rsi OVB line" , defval=70 , minval=1, maxval=100)
mLine = input.int(title = "Rsi Medium line" , defval=42 , minval=1, maxval=60)
price = close
vrsi = ta.rsi(price, length)
co = vrsi >= mLine and vrsi < overB 
cu = ta.crossunder(vrsi, overB)
//ema
F = input.int(title = "EMA Fast" , defval=17 , minval=1, maxval=50)
M = input.int(title = "EMA Medium" , defval=35, minval=1, maxval=100)
S = input.int(title = "EMA Slow" , defval=142, minval=1, maxval=200)
emaF = ta.ema(price , F)
emaM = ta.ema(price , M)
emaS = ta.ema(price , S)

//plot
plot(emaF , color = color.green , linewidth=1)
plot(emaM , color = color.yellow , linewidth=1)
plot(emaS , color = color.red , linewidth=1)

//Time Stamp
start = timestamp(input.int(title = "Start Year" , defval=2011 , minval=2011, maxval=2025), input.int(title = "Start Month" , defval=1 , minval=1, maxval=12), input.int(title = "Start Day" , defval=1 , minval=1, maxval=31), 0, 0)
end = timestamp(input.int(title = "End Year" , defval=2025 , minval=2011, maxval=2025), input.int(title = "End Month" , defval=1 , minval=1, maxval=12), input.int(title = "End Day" , defval=1 , minval=1, maxval=31), 0, 0)
// years = input.int(title = "Year" , defval=2018 , minval=2011, maxval=2025)
// months = input.int(title = "Month" , defval=1 , minval=1, maxval=12)
// days = input.int(title = "Day" , defval=1 , minval=1, maxval=31)

//longCondition Default
// longCondition1 = EMA_Fast >= EMA_Slow and EMA_Fast >= EMA_Medium//ta.crossover(EMA_Fast, EMA_Slow)  EMA_Fast > EMA_Slow and EMA_Medium > EMA_Slow
// longCondition3 = price >= EMA_Medium and price > EMA_Slow
// longCondition2 = vrsi >= overSold and vrsi <= overBought 

//longCondition & shortCondition ETHUSD
// 1.price > emaF > emaM > emaS
// 2.rsi overcross overS
longC1 = price > emaF and price > emaM and price > emaS 
// longC1 = ta.crossover(emaF, emaM)
longC2 = if longC1
    co
// shortC1 = EMA_Fast < EMA_Medium //and EMA_Fast < EMA_Slow and EMA_Medium < EMA_Slow //and cu
// shortC2 = overBought > vrsi //and vrsi < overBought //overSold < vrsi and vrsi < mediumLine

// exitLong Condition
// 1.price < emaF < emaM < emaS
// 2.rsi overcross mediumLine
exitLong1 = ta.crossunder(emaF, emaM) //or emaF < emaM//and price < emaM and price < emaF
exitLong2 = ta.crossunder(vrsi,mLine)
//exitLong3 = price < emaM
//strategy.entry
if time >=start and time <=end
    strategy.entry("Buy", strategy.long , when = longC1 and longC2)

// if(exitLong1 or exitLong2)
strategy.close("Buy" , when = exitLong1 or exitLong2)
    
// exitShort1 = EMA_Fast > EMA_Medium
// //exitShort2 = ta.crossover(vrsi , mediumLine) 
// exitShort2 = ta.crossunder (vrsi,mediumLine)
// strategy.close("Short" , when = exitShort1 or exitShort2)
// //shortCondition = cu


// //if (shortCondition1 and shortCondition2)
//     //strategy.entry("My Short Entry Id", strategy.short)