Estrategia de ruptura alcista intradiaria

El autor:¿ Qué pasa?, Fecha: 2024-03-29 16:13:30
Las etiquetas:

img

Resumen general

Esta estrategia es una estrategia de negociación alcista intradiaria basada en indicadores técnicos. Utiliza principalmente tres indicadores técnicos para determinar el momento de las entradas largas: 1.

Principios de estrategia

La estrategia se basa principalmente en los siguientes principios:

  1. En una tendencia alcista, los precios de las acciones a menudo se retracen y forman mínimos locales, que a menudo son buenas oportunidades de compra.
  2. Algunos patrones especiales de velas a menudo indican reversiones o continuidades de tendencia.
  3. El precio de las acciones puede rebotar en cualquier momento. La estrategia utiliza el indicador de sobreventa extrema para capturar estas oportunidades de compra de reversión.
  4. Las fluctuaciones de los precios de las acciones tienen periodicidad y similitud, que pueden medirse mediante el indicador ATR y utilizarse para calcular las distancias de stop-loss y take-profit apropiadas.

Ventajas estratégicas

  1. Combinar tres indicadores técnicos clásicos para formar un sistema de negociación cuantitativo riguroso, evitando los inconvenientes de la subjetividad.
  2. Los niveles de stop-loss y take-profit se basan en el indicador de volatilidad ATR, que puede cuantificarse objetivamente, evitando los inconvenientes de la subjetividad.
  3. Amplia gama de aplicaciones, sin restricciones en los plazos o activos subyacentes, lo que permite la plena utilización de las ventajas para obtener beneficios.

Riesgos estratégicos

  1. Alta precisión para juzgar las tendencias alcistas unilaterales, pero las entradas frecuentes en un mercado volátil pueden conducir a mayores pérdidas.
  2. El nivel de obtención de beneficios es demasiado alto, lo que resulta en una obtención de beneficios lenta y una baja utilización del capital.
  3. El indicador de sobreventa extrema tiene una capacidad limitada para juzgar las reversiones y puede fallar en los mercados de tendencia.

Direcciones para la optimización de la estrategia

  1. Considere agregar indicadores de tendencia, como MA y MACD, para determinar la dirección general de la tendencia.
  2. Considere optimizar el algoritmo para encontrar los parámetros óptimos, especialmente la selección de los multiplicadores ATR. El multiplicador de ganancia puede ser más pequeño para acelerar la obtención de ganancias.
  3. El indicador de sobreventa extrema se puede optimizar, por ejemplo, cambiándolo a indicadores de sobreventa más maduros como KDJ o RSI.

Resumen de las actividades

Esta estrategia de ruptura alcista intradiaria es una estrategia de negociación cuantitativa basada en mínimos de swing, patrones alcistas y reversiones de sobreventa. Utiliza tres indicadores técnicos para capturar puntos de entrada largos desde diferentes ángulos. Al mismo tiempo, utiliza el indicador de volatilidad ATR para calcular niveles dinámicos de stop-loss y take-profit. Puede capturar completamente las ganancias en tendencias alcistas, pero enfrenta el riesgo de operaciones frecuentes en mercados volátiles.


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

//@version=5
strategy("Intraday Bullish Script", overlay=true, margin_long=100, margin_short=100)



// Settings for Strategy 1
entryCondition1 = input.bool(true, title="Use Entry Condition - Strategy 1")

// Input for ATR multiplier for stop loss 
atrMultiplierforstoploss = input.float(2, title="ATR Multiplier for Stop Loss")

// Input for ATR multiplier for target price
atrMultiplierforlongs = input.float(4, title="ATR Multiplier for Target Price")

// Calculate ATR
atrLength = input.int(14, title="ATR Length")
atrValue = ta.atr(atrLength)

// Swing low condition - Strategy 1
swingLow1 = low == ta.lowest(low, 12) or low[1] == ta.lowest(low, 12)


/// 
maj_qual = 6  //input(6)
maj_len = 30  //input(30)
min_qual = 5  //input(5)
min_len = 5  //input(5)

lele(qual, len) =>
    bindex = 0.0
    bindex := nz(bindex[1], 0)
    sindex = 0.0
    sindex := nz(sindex[1], 0)
    ret = 0
    if close > close[4]
        bindex := bindex + 1
        bindex
    if close < close[4]
        sindex := sindex + 1
        sindex
    if bindex > qual and close < open and high >= ta.highest(high, len)
        bindex := 0
        ret := -1
        ret
    if sindex > qual and close > open and low <= ta.lowest(low, len)
        sindex := 0
        ret := 1
        
major = lele(maj_qual, maj_len)
minor = lele(min_qual, min_len)

ExaustionLow  = major ==  1 ? 1 : 0

Bullish3LineStrike = close[3] < open[3] and close[2] < open[2] and close[1] < open[1] and close > open[1]

// Entry and Exit Logic for Strategy 2
// Create variables to track trade directions and entry prices for each strategy
var int tradeDirection1 = na

var float entryLongPrice1 = na


// Calculate entry prices for long positions - Strategy 1
if (swingLow1 or Bullish3LineStrike)
    entryLongPrice1 := close
    tradeDirection1 := 1



// Calculate target prices for long positions based on ATR - Strategy 1
targetLongPrice1 = entryLongPrice1 + (atrMultiplierforlongs * atrValue)



// Calculate stop loss prices for long positions based on entry - Strategy 1
stopLossLongPrice1 = entryLongPrice1 - (atrMultiplierforstoploss * atrValue)


// Entry conditions for Strategy 1
if (tradeDirection1 == 1 and (swingLow1 or Bullish3LineStrike))
    strategy.entry("Long - Strategy 1", strategy.long)


// Exit conditions for long positions: When price reaches or exceeds the target - Strategy 1
if (close >= targetLongPrice1)
    strategy.close("Long - Strategy 1", comment="Take Profit Hit")

// Exit conditions for long positions: When price hits stop loss - Strategy 1
if (close <= stopLossLongPrice1)
    strategy.close("Long - Strategy 1", comment="Stop Loss Hit")

Más.