La combinación de RSI y promedio móvil MT5 Estrategia de scalping Martingale

El autor:¿ Qué pasa?, Fecha: 2023-12-01 17:56:56
Las etiquetas:

img

Resumen general

La estrategia se llama RSI y Combinación de promedio móvil MT5 Martingale Scalping Strategy. Combina el indicador de doble promedio móvil y el indicador de índice de fuerza relativa (RSI) para implementar el comercio de scalping de alta frecuencia, al tiempo que incorpora el principio de promedio de posición Martingale para controlar el nivel de riesgo general de la estrategia.

Estrategia lógica

  1. La estrategia utiliza primero el indicador estocástico para dibujar un oscilador personalizado con el oscilador de parámetrosPeriodo establecido en 5, y establece umbrales superiores e inferiores k1 y k2 para construir el área de consolidación.

  2. El indicador de RSI puede identificar eficazmente el momento de la penetración del mercado de los límites superiores e inferiores. Esta estrategia establece la línea de sobrecompra de RSI en 70 y la línea de sobreventa en 30.

  3. Además, la estrategia también introduce el factor tendenciaActividad como el principal filtro de tendencia.Cuando el indicador estocástico y el RSI cumplen las condiciones de reversión al mismo tiempo, también verifica si la tendencia principal sigue siendo lo suficientemente activa como para evitar pérdidas debido a falsas rupturas en el mercado de choque.

  4. Por último, la estrategia utiliza el clásico principio de promedio de posiciones de Martingale para controlar el riesgo general. Al ajustar dinámicamente el volumen de negociación, se colocan posiciones adicionales cuando la posición inicial está en pérdida para lograr el punto de equilibrio y, por lo tanto, controlar el aprovechamiento máximo.

Análisis de ventajas

  1. La incorporación del indicador RSI puede identificar eficazmente los fenómenos de sobrecompra y sobreventa para ayudar a juzgar el momento de la reversión.

  2. Ajustar el oscilador para determinar el área de consolidación puede filtrar algunas señales falsas de ruptura.

  3. El ajuste del filtro de tendencia principal evita pérdidas en mercados volátiles.

  4. El promedio de la posición de Martingale controla efectivamente el aprovechamiento máximo de la estrategia y es clave para una rentabilidad sostenible.

Análisis de riesgos

  1. En condiciones de mercado anormales, el indicador RSI puede fallar y causar una evaluación errónea de las condiciones de sobrecompra y sobreventa.

  2. La configuración incorrecta de los parámetros del oscilador también puede conducir a un filtrado excesivo de la señal o a la identificación de falsas rupturas, lo que requiere una optimización de parámetros basada en datos históricos del mercado.

  3. El promedio de la posición de Martingale conducirá a pérdidas en cascada en ciertos entornos.

  4. La estrategia solo se ha verificado en datos de pares de divisas GBPUSD de 15 minutos.

Direcciones de optimización

  1. Optimizar los parámetros del RSI para encontrar parámetros más adecuados para el entorno actual del mercado.

  2. Prueba y optimiza los parámetros del oscilador para que pueda juzgar el área de consolidación con mayor precisión.

  3. Añadir la lógica de stop loss: detener activamente las pérdidas cuando las pérdidas alcanzan un cierto nivel para controlar eficazmente las pérdidas individuales.

  4. Optimizar las reglas de ajuste del filtro de tendencia principal para evitar la pérdida de oportunidades de inversión.

  5. Teste diferentes ajustes de dimensionamiento de posición adicionales. Necesidad de asegurarse de que la cantidad adicional no es demasiado grande para causar pérdida rápida.

Resumen de las actividades

Esta estrategia combina el doble indicador de promedio móvil, el indicador RSI y el oscilador personalizado para juzgar los fenómenos de ruptura de límite superior e inferior en el corto plazo, y utiliza el filtro de tendencia principal para evitar fallas falsas para una operación de scalping eficiente. Al mismo tiempo, se introduce el clásico principio de promedio de posición Martingale para controlar el nivel general de riesgo. La estrategia tiene el potencial de generar retornos estables después de la optimización de parámetros y una gestión de riesgos rigurosa.


/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
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/
// © cloudofw

//@version=5
strategy("F2.2 Martingale Scalping Strategy", overlay=true)

// Input parameters
rsiOverbought = input.int(70, "RSI Overbought Threshold")
rsiOversold = input.int(30, "RSI Oversold Threshold")
oscillatorPeriod = input.int(5, "Period for oscillator")
k1 = input.float(0.2, "K1 for oscillator's zone")
k2 = input.float(0.5, "K2 for oscillator's zone")
trendActivity = input.float(1.0, "Main Trend filter", minval=0.1)
decreasePerOrder = input.float(0.1, "Trend filter decrease per order", minval=0.01)

// Calculate custom oscillator and RSI
oscillator = ta.stoch(close, high, low, oscillatorPeriod)
rsiValue = ta.rsi(close, 14)

zoneHigh = 100 - k1 * 100
zoneLow = k2 * 100

// Entry conditions
longCondition = oscillator < zoneLow and trendActivity > 0 and rsiValue < rsiOversold
shortCondition = oscillator > zoneHigh and trendActivity > 0 and rsiValue > rsiOverbought

// Martingale logic
var lot_multiplier = 1.0
var last_lot_size = strategy.equity * 0.01
var trade_1_profit = 0.0
if (strategy.position_size != 0)
    lot_multiplier := last_lot_size / strategy.position_size < 1.5 ? lot_multiplier * 1.5 : 1.0
    trade_1_profit := strategy.grossprofit
else
    lot_multiplier := 1.0
    trade_1_profit := 0.0
lot_size = strategy.equity * 0.01 * lot_multiplier + trade_1_profit
last_lot_size := lot_size

// Trading logic
if longCondition and strategy.position_size == 0
    strategy.entry("Long", strategy.long)
    
if shortCondition and strategy.position_size == 0
    strategy.entry("Short", strategy.short)

// Exit conditions
if longCondition == false and strategy.position_size > 0
    strategy.close("Long")

if shortCondition == false and strategy.position_size < 0
    strategy.close("Short")

// Indicators on chart
plotshape(series=longCondition, title="Buy Entry", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, title="Sell Entry", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

plot(oscillator, color=color.blue, title="Oscillator")
hline(zoneHigh, "Upper Zone", color=color.red)
hline(zoneLow, "Lower Zone", color=color.green)


Más.

¿Qué es lo que está pasando?¿Por qué copiar directamente el código de la simulación y descubrir que no se realiza la operación de acoplamiento al llegar al punto de acoplamiento?