Estrategia de mediación de posiciones dinámicas del RSI

El autor:¿ Qué pasa?, Fecha: 2024-02-06 09:44:05
Las etiquetas:

img

Resumen general

Esta estrategia combina el índice de fuerza relativa (RSI) y los principios de promedio de posición de martingale. Inicia una posición larga cuando el RSI cae por debajo de la línea de sobreventa, y duplica la posición si el precio continúa disminuyendo. La obtención de ganancias se logra con objetivos pequeños. Esta estrategia es adecuada para monedas con alta capitalización de mercado en el comercio al contado para obtener ganancias constantes.

Estrategia lógica

  1. Utilice el indicador RSI para identificar las condiciones de sobreventa del mercado, con el período de RSI establecido en 14 y el umbral de sobreventa establecido en 30.
  2. Se iniciará la primera posición larga con el 5% del capital de la cuenta cuando el RSI < 30.
  3. Si el precio desciende un 0,5% desde el precio de entrada inicial, duplica el tamaño de la posición para promediarlo a la baja.
  4. Tome ganancias a un incremento del 0,5% cada vez.
  5. Repita el ciclo.

Análisis de ventajas

  • Identificar las condiciones de sobreventa del mercado con el RSI para los buenos puntos de entrada.
  • El promedio de la posición de Martingale reduce el precio de entrada promedio.
  • Las pequeñas ganancias permiten obtener ganancias constantes.
  • Adecuado para el comercio al contado de monedas de alta capitalización de mercado con riesgos controlados.

Análisis de riesgos

  • Una desaceleración prolongada del mercado puede provocar grandes pérdidas.
  • No hay stop loss significa una baja ilimitada.
  • Demasiados promedios bajos aumentan las pérdidas.
  • Todavía tiene riesgos inherentes en la dirección larga.

Direcciones de optimización

  1. Incorporar el stop loss para limitar la pérdida máxima.
  2. Optimice los parámetros del RSI para encontrar las mejores señales de sobrecompra / sobreventa.
  3. Establecer un rango razonable de obtención de beneficios basado en la volatilidad específica de la moneda.
  4. Determinar el ritmo promedio basado en el total de activos o en las reglas de posicionamiento.

Resumen de las actividades

Esta estrategia combina el indicador RSI y el promedio de posición martingale para aprovechar las situaciones de sobreventa con promedios hacia abajo apropiados, y tomar pequeñas ganancias para ganancias constantes.


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Stavolt

//@version=5
strategy("RSI Martingale Strategy", overlay=true, default_qty_type=strategy.cash, currency=currency.USD)

// Inputs
rsiLength = input(14, title="RSI Length")
oversoldThreshold = input(30, title="Oversold Threshold") // Keeping RSI threshold
profitTargetPercent = input(0.5, title="Profit Target (%)") / 100
initialInvestmentPercent = input(5, title="Initial Investment % of Equity")

// Calculating RSI
rsiValue = ta.rsi(close, rsiLength)

// State variables for tracking the initial entry
var float initialEntryPrice = na
var int multiplier = 1

// Entry condition based on RSI
if (rsiValue < oversoldThreshold and na(initialEntryPrice))
    initialEntryPrice := close
    strategy.entry("Initial Buy", strategy.long, qty=(strategy.equity * initialInvestmentPercent / 100) / close)
    multiplier := 1

// Adjusting for errors and simplifying the Martingale logic
// Note: This section simplifies the aggressive position size adjustments without loops
if (not na(initialEntryPrice))
    if (close < initialEntryPrice * 0.995) // 0.5% drop from initial entry
        strategy.entry("Martingale Buy 1", strategy.long, qty=((strategy.equity * initialInvestmentPercent / 100) / close) * 2)
        multiplier := 2 // Adjusting multiplier for the next potential entry

    if (close < initialEntryPrice * 0.990) // Further drop
        strategy.entry("Martingale Buy 2", strategy.long, qty=((strategy.equity * initialInvestmentPercent / 100) / close) * 4)
        multiplier := 4

    // Additional conditional entries could follow the same pattern

// Checking for profit target to close positions
if (strategy.position_size > 0 and (close - strategy.position_avg_price) / strategy.position_avg_price >= profitTargetPercent)
    strategy.close_all(comment="Take Profit")
    initialEntryPrice := na // Reset for next cycle


Más.