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

El autor:¿ Qué pasa?, Fecha: 2024-02-19 14:59:10
Las etiquetas:

img

Resumen general

La idea central de esta estrategia es combinar el indicador RSI y el promedio móvil para encontrar oportunidades de reversión del precio de las acciones y lograr comprar bajo y vender alto. Cuando el indicador RSI muestra que la acción está sobrevendida y el promedio móvil a corto plazo cruza por debajo del precio, sirve como señal de compra. Después de establecer el stop loss y tomar ganancias, espere a que el precio se invierta hacia arriba.

Principio de la estrategia

Esta estrategia utiliza principalmente el indicador RSI para juzgar las condiciones de sobreventa y sobrecompra, y la cruz dorada y la cruz muerta del promedio móvil para determinar las tendencias de precios. Específicamente, el indicador RSI puede juzgar efectivamente si una acción está sobreventa o sobrecompra. Cuando el RSI está por debajo de 30, está en el rango de sobreventa. Y cuando el promedio móvil a corto plazo (establecido a 9 días en esta estrategia) cruza por debajo del precio, significa que el precio está cayendo.

Así que cuando el indicador RSI está por debajo de 40, cerca del estado de sobreventa, y el promedio móvil de 9 días cruza por debajo del precio, se puede juzgar como un posible momento para que el precio de la acción se invierta, yendo largo para comprar.

Análisis de ventajas

Esta estrategia combina el indicador RSI y el promedio móvil, que pueden determinar efectivamente el momento de la compra. En comparación con un solo juicio de sobreventa, el juicio de condición agregada del promedio móvil evita la fluctuación en el área de sobreventa. La configuración de stop loss y take profit es flexible y puede variar de persona a persona.

Análisis de riesgos

Esta estrategia se basa en ajustes de parámetros como el umbral de juicio del RSI, la ventana de tiempo promedio móvil, etc. Diferentes parámetros pueden conducir a resultados diferentes.

Además, las comisiones de transacción también tendrán cierto impacto en las ganancias.

Dirección de optimización

Considere ajustar dinámicamente los parámetros de la media móvil, seleccionando diferentes parámetros para diferentes ciclos; o introducir otros indicadores para juzgar, como KDJ, MACD, etc., para formar un juicio completo basado en múltiples condiciones.

También es posible establecer un volumen de operaciones o un módulo de gestión de capital para controlar la proporción de fondos ocupados por una sola operación y reducir el impacto de una sola pérdida.

Resumen de las actividades

En general, esta estrategia utiliza indicadores RSI y promedios móviles para determinar el momento de compra y puede determinar efectivamente las reversiones de precios. Comprar en sobreventa y bloquear las ganancias con stop loss y take profit puede producir buenos resultados. Para futuras optimizaciones, vale la pena considerar la incorporación de más indicadores o agregar módulos adicionales de gestión de operaciones / fondos para hacer que la estrategia sea más robusta.


/*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)



Más.