Estrategia de abertura inversa para engullir

El autor:¿ Qué pasa?, Fecha: 2023-11-22 16:05:24
Las etiquetas:

img

Resumen general

La estrategia de engulfing de apertura inversa es una estrategia de negociación intradiaria simple basada en el primer candelero después de la apertura. La idea central de esta estrategia es juzgar la tendencia alcista o descendente del primer candelero cuando aparece después de la apertura todos los días, y tomar operaciones contrarias. Si el primer candelero es una línea de yang roja, vaya largo; si el primer candelero es una línea de yin verde, vaya corto. La estrategia también establece mecanismos de stop loss y take profit para salir de posiciones.

Estrategia lógica

El principio detrás de esta estrategia es la peculiaridad del primer candelero después de la apertura. Cuando el mercado se abre, las fuerzas de los largos y cortos se enfrentan más intensamente, y la probabilidad de una reversión es relativamente grande.

Específicamente, después de la apertura de un nuevo día, la estrategia registrará el precio de apertura, el precio de cierre y el cambio de precio del primer candelabro. Si el precio de apertura es mayor que el precio de cierre (línea yin verde), significa que los bajistas han ganado y debemos hacer long; si el precio de apertura es menor que el precio de cierre (línea yang roja), significa que los alcistas han ganado y debemos hacer short. Al tomar tales operaciones contrarias, la estrategia intenta capturar oportunidades de reversión después de la apertura.

Mientras tanto, la estrategia también establece mecanismos de stop loss y take profit, incluidos el precio de stop loss largo, el precio de take profit largo, el precio de stop loss corto y el precio de take profit corto, para controlar los riesgos y las ganancias de las posiciones largas y cortas, evitando pérdidas excesivas o tomar beneficios prematuros.

Análisis de ventajas

La estrategia de abertura inversa para engullir tiene las siguientes ventajas:

  1. La lógica es sencilla y clara, fácil de entender e implementar.
  2. Utiliza el alto valor predictivo del segmento de apertura para capturar oportunidades de reversión.
  3. Las configuraciones de stop loss y take profit pueden controlar los riesgos de manera efectiva.
  4. La idea de estrategia tiene universalidad y es adecuada para la mayoría de las acciones.
  5. El coste de participación es relativamente bajo y el control de capital es fácil.

Análisis de riesgos

La estrategia de abertura inversa también tiene algunos riesgos, que incluyen principalmente:

  1. Una señal de reversión fallida del primer candelabro puede causar enormes pérdidas.
  2. Incapacidad para filtrar eficazmente las acciones de baja calidad La estrategia carece de un análisis fundamental suficiente y puede seleccionar algunas acciones con fundamentos deficientes.
  3. Incapacidad para controlar eficazmente los riesgos sistémicos derivados de los eventos del cisne negro, como el impacto de noticias significativamente negativas.
  4. Las configuraciones incorrectas de stop loss y take profit pueden dar lugar a pérdidas ampliadas o ganancias reducidas.

Direcciones de optimización

La estrategia de abertura inversa para engullir se puede optimizar en los siguientes aspectos:

  1. Aumentar la prueba de validez de las señales de apertura de inversión para evitar señales no válidas, por ejemplo, combinar el análisis de volumen.
  2. Seleccionar grupos de existencias integrando el análisis fundamental y técnico para filtrar las existencias de baja calidad.
  3. Añadir módulos de monitoreo para eventos y noticias importantes para controlar los riesgos sistémicos.
  4. Utilizar algoritmos genéticos, aprendizaje automático y otros métodos para optimizar dinámicamente los ajustes de stop loss y take profit.

Resumen de las actividades

La estrategia de engulfamiento de apertura inversa intenta capturar oportunidades de inversión después de la apertura al juzgar la dirección del primer candelabro y tomar operaciones contrarias. La idea de la estrategia es simple con bajos costos de participación y tiene cierto valor práctico. Pero también debemos ser conscientes de los riesgos y mejorar y optimizar constantemente la estrategia en la práctica para hacerla más robusta y confiable.


/*backtest
start: 2023-10-22 00:00:00
end: 2023-11-21 00:00:00
period: 3h
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/
// © vikris
//@version=4
strategy("[VJ]First Candle Strategy", overlay = true,calc_on_every_tick = true,default_qty_type=strategy.percent_of_equity,default_qty_value=100,initial_capital=750,commission_type=strategy.commission.percent, 
     commission_value=0.02)


// ********** Strategy inputs - Start **********

// Used for intraday handling
// Session value should be from market start to the time you want to square-off 
// your intraday strategy
// Important: The end time should be at least 2 minutes before the intraday
// square-off time set by your broker
var i_marketSession = input(title="Market session", type=input.session, 
     defval="0915-1455", confirm=true)

// Make inputs that set the take profit % (optional)
longProfitPerc = input(title="Long Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=1) * 0.01

shortProfitPerc = input(title="Short Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
     
// Set stop loss level with input options (optional)
longLossPerc = input(title="Long Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01

shortLossPerc = input(title="Short Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01    


// ********** Strategy inputs - End **********


// ********** Supporting functions - Start **********

// A function to check whether the bar or period is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0



// Figure out take profit price
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Determine stop loss price
longStopPrice  = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)


// ********** Supporting functions - End **********


// ********** Strategy - Start **********
// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)

// Trade only if intraday session is active

//=================Strategy logic goes in here===========================
 
// If start of the daily session changed, then it's first bar of the new session
isNewDay = time("D") != time("D")[1]
var firstBarCloseValue = close
var firstBarOpenValue = open
if isNewDay
    firstBarCloseValue := close
    firstBarOpenValue := open


greenCandle = firstBarOpenValue < firstBarCloseValue
redCandle = firstBarOpenValue > firstBarCloseValue

buy = redCandle
sell = greenCandle


// plot(firstBarCloseValue)
// plot(firstBarOpenValue)



//Final Long/Short Condition
longCondition = buy
shortCondition =sell
 
//Long Strategy - buy condition and exits with Take profit and SL
if (longCondition and intradaySession)
    stop_level = longStopPrice
    profit_level = longExitPrice
    strategy.entry("My Long Entry Id", strategy.long)
    strategy.exit("TP/SL", "My Long Entry Id", stop=stop_level, limit=profit_level)


//Short Strategy - sell condition and exits with Take profit and SL
if (shortCondition and intradaySession)
    stop_level = shortStopPrice
    profit_level = shortExitPrice
    strategy.entry("My Short Entry Id", strategy.short)
    strategy.exit("TP/SL", "My Short Entry Id", stop=stop_level, limit=profit_level)
 
 
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")

// ********** Strategy - End **********

Más.