Estrategia de reversión de la media móvil de impulso


Fecha de creación: 2024-02-19 14:59:10 Última modificación: 2024-02-19 14:59:10
Copiar: 4 Número de Visitas: 622
1
Seguir
1617
Seguidores

Estrategia de reversión de la media móvil de impulso

Descripción general

La idea central de esta estrategia es combinar el indicador RSI y el promedio móvil para buscar oportunidades de reversión en el precio de las acciones y lograr una venta baja y alta. Cuando el indicador RSI muestra que las acciones están en una situación de sobreventa y el precio se cruza por debajo del promedio móvil a corto plazo, como una señal de compra.

Principio de estrategia

La estrategia utiliza principalmente el RSI para determinar la tendencia de los precios de las sobreventa y sobreventa, y la horquilla de los promedios móviles. En concreto, el RSI puede determinar eficazmente si una acción está sobrevendida o sobrecomprada. Cuando el RSI está por debajo de 30, está en el rango de la sobreventa.

Por lo tanto, cuando el indicador RSI está por debajo de 40, es decir, está cerca de la situación de sobreventa, y el precio cruza por debajo de la media móvil del día 9, se puede considerar que es el momento en que el precio de las acciones puede revertirse.

Análisis de las ventajas

La estrategia combina el indicador RSI y el promedio móvil para determinar con eficacia el momento de comprar. En comparación con un solo juicio de sobreventa, aumenta la determinación condicional del promedio móvil y evita la oscilación de la zona de sobreventa. La configuración del stop loss es flexible y puede variar según las personas.

Análisis de riesgos

La estrategia depende de la configuración de los parámetros, como el umbral de juicio RSI, la ventana de tiempo de la media móvil, etc. Los diferentes parámetros pueden producir resultados diferentes. Y en ciertas condiciones de mercado, aún es posible que se produzcan paros.

Además, los gastos de transacción también tienen un cierto impacto en las ganancias. En el futuro, se puede considerar agregar un módulo de volumen de transacción o de administración de fondos para optimizar.

Dirección de optimización

Se puede considerar ajustar dinámicamente los parámetros de las medias móviles, seleccionando diferentes parámetros en diferentes períodos; o introducir otros indicadores de juicio, como KDJ, MACD, etc., para formar una evaluación integral de múltiples condiciones.

También se puede crear un módulo de volumen de transacciones o de administración de fondos para controlar la proporción de capital que ocupa una sola transacción y reducir el impacto de una sola pérdida.

Resumir

La estrategia en su conjunto, utiliza el indicador RSI y las medias móviles para determinar el momento de comprar, puede determinar eficazmente la reversión de los precios, comprar cuando se sobreventa y obtener una mayor tasa de éxito. La combinación de los stop-loss para bloquear los beneficios, puede obtener un mejor efecto. La dirección de la optimización posterior, se puede considerar la adición de más indicadores o la creación de módulos adicionales de gestión de operaciones / fondos para fortalecer la estrategia.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 30m
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/
// © Coinrule

//@version=4
strategy(shorttitle='MARSI',title='Moving Average', overlay=true, initial_capital=1000,  default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true

//MA inputs and calculations
inshort=input(9, title='MA short period')
MAshort= sma(close, inshort)

// RSI inputs and calculations
lengthRSI = input(14, title = 'RSI period', minval=1)
RSI = rsi(close, lengthRSI)

//Entry 
strategy.entry(id="long", long = true, when = MAshort<close and RSI<40 and window())

//Exit
longLossPerc = input(title="Long Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=1.5) * 0.01
longTakePerc = input(title="Long Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=3) * 0.01
longSL  = strategy.position_avg_price * (1 - longLossPerc)
longTP  = strategy.position_avg_price * (1 + longTakePerc)
if (strategy.position_size > 0 and window())
    strategy.exit(id="TP/SL", stop=longSL, limit=longTP)


bgcolor(color = showDate and window() ? color.gray : na, transp = 90)  
plot(MAshort, color=color.purple, linewidth=4)