Estrategia comercial de consolidación y ruptura del mercado indio


Fecha de creación: 2023-12-15 11:59:08 Última modificación: 2023-12-15 11:59:08
Copiar: 1 Número de Visitas: 610
1
Seguir
1621
Seguidores

Estrategia comercial de consolidación y ruptura del mercado indio

Descripción general

La estrategia es una estrategia de indicadores de ruptura integrada para el comercio intradía de la bolsa de valores de la India. Combina condiciones de tiempo, comisiones delegadas y seguimiento de pérdidas. La ventaja de esta estrategia es la claridad de la lógica, la flexibilidad de ajuste de parámetros y la capacidad de adaptarse a los cambios en el mercado.

Principio de estrategia

La lógica central de la estrategia se basa en el indicador de la banda de Brin. Utiliza un promedio móvil simple de longitud como longitud como eje central, el eje superior y el eje inferior, respectivamente, para calcular la diferencia estándar multiplicada por MULT. La estrategia de negociación de Range Breakout se forma cuando el precio de cierre genera una señal de compra cuando el precio de cierre cruza la trayectoria desde abajo y genera una señal de venta cuando el precio de cierre se cruza la trayectoria desde arriba.

Para controlar el riesgo, se combina con el indicador ATR para calcular el límite de pérdida. Al mismo tiempo, se tiene en cuenta el tiempo de negociación de la bolsa de valores de la India y se liquidaron todas las posiciones en 14:57.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. La lógica es clara, los parámetros son fáciles de ajustar y se puede adaptar con flexibilidad a las condiciones del mercado
  2. Integración de la lógica de control de stop loss y tiempo para controlar el riesgo de manera efectiva
  3. Compatibilidad: toma en cuenta el mecanismo de negociación especial de las bolsas indias y se adapta al entorno local.
  4. La frecuencia de las transacciones debe ser moderada y evitar el exceso de transacciones.
  5. Escalabilidad para la optimización de algoritmos

Análisis de riesgos

La estrategia también tiene ciertos riesgos:

  1. La configuración de los parámetros de Brinbelt depende de la experiencia y no es adecuada para todos los entornos
  2. Un solo indicador puede generar señales falsas
  3. El paro de ATR sólo puede controlar parte del riesgo
  4. No se tiene en cuenta el impacto de un gran evento de cisnes negros

El riesgo puede reducirse de la siguiente manera:

  1. Combinación de señales de filtro de varios indicadores
  2. Reglas para optimizar la configuración de los parámetros
  3. Combinado con el juicio de la brecha de salto aéreo
  4. Aumentar la robustez de los algoritmos de detención de pérdidas
  5. Combinado con un indicador de sentimiento del mercado

Dirección de optimización

La estrategia puede ser optimizada en las siguientes direcciones:

  1. Optimizar las reglas de configuración de parámetros para que sean más adaptables
  2. Añadir más indicadores para evitar señales falsas
  3. Optimización y mejora de la robustez de los algoritmos de detención de pérdidas
  4. La dirección de las tendencias en combinación con más métodos analíticos
  5. Considere ajustar automáticamente el tamaño de su posición

A través de la optimización de algoritmos y modelos, se puede mejorar la capacidad de ajuste de parámetros y filtrado de señales de la estrategia para adaptarse a un entorno de mercado más amplio y soportar un mayor riesgo.

Resumir

La estrategia en general es una estrategia de negociación de ruptura diaria clara y fácil de entender. Tiene en cuenta las características del mercado indio y controla el riesgo de negociación. La estrategia tiene ciertas ventajas y hay espacio para optimizar.

Código Fuente de la Estrategia
/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Consolidation Breakout [Indian Market Timing]",overlay = true , pyramiding = 0 ,initial_capital = 50000, default_qty_value=5, currency = currency.NONE,commission_type = strategy.cash, commission_value = 30, slippage = 1 )


// ══════════════════════════════════//
// ————————> INPUT VALUES <————————— //
// ══════════════════════════════════//

LENGTH = input.int(title='LENGTH', defval = 75, minval = 10 ,maxval = 300)
MULT = input.float(title='MULT_STDEV',defval = 3.2 , minval = 1 , maxval = 7 , step =0.1)

//EMA1 = input.int(title='EMA1', defval = 50, minval = 10 ,maxval = 550)
//EMA2 = input.int(title='EMA2', defval = 135, minval = 10 ,maxval = 550)
factor_tr = input.float(title = "ATR TRAIL", defval = 10, step = 0.1)

// ══════════════════════════════════//
// ————————> DAY TIME LIMIT <——————— //
// ══════════════════════════════════//

t = time(timeframe.period, '0935-1430:1234567')
time_condition = not na(t)

//**********************// ════════════════════════════════//
//**********************// ————————> ATR & PLOT <————————— //
//**********************// ════════════════════════════════//
//ema1 = ta.ema(close,EMA1)
//ema2 = ta.ema(close,EMA2)

//plot(ema1, color=color.new(color.blue, 0), style=plot.style_linebr, title='ema1')
//plot(ema2, color=color.new(color.yellow, 0), style=plot.style_linebr, title='ema2')

atr_tr = ta.atr(16)*factor_tr

longStop = close - atr_tr
shortStop = close + atr_tr

Entry = close
length = LENGTH
mult = MULT
basis = ta.sma(Entry , length)
dev = mult * ta.stdev(Entry , length)
upper = (basis + dev)
lower = (basis - dev)
buyEntry = ta.crossover(Entry , upper)
sellEntry = ta.crossunder(Entry , lower)

//plot(upper, color=color.new(color.red, 0), style=plot.style_linebr, title="short stop")
//plot(lower, color=color.new(color.green, 0), style=plot.style_linebr, title="Long stop")

plot(upper, color=close[1] > upper and close > upper ? color.green : color.red, linewidth=2)
plot(lower, color=close[1] > lower and close > lower ? color.green : color.red, linewidth=2)




// ══════════════════════════════════//
// ————————> LONG POSITIONS <————————//
// ══════════════════════════════════//
//******barinstate.isconfirmed used to avoid repaint in real time*******

if ( buyEntry and strategy.opentrades==0 and barstate.isconfirmed and time_condition)
    strategy.entry(id= "Long" ,direction = strategy.long, comment = "B")
    
plot(longStop , color=color.new(color.blue, 0), style=plot.style_linebr, title='long Stop')

if strategy.position_size > 0 
    strategy.exit("long tsl", "Long" , stop = longStop , comment='S')

// ═════════════════════════════════════//
// ————————> SHORT POSITIONS <————————— //
// ═════════════════════════════════════//
if ( sellEntry and strategy.opentrades==0 and barstate.isconfirmed and time_condition)
    strategy.entry(id = "Short" ,direction = strategy.short,  comment = "S") 

if strategy.position_size < 0
    strategy.exit("short tsl", "Short" , stop = shortStop ,comment='B')

// ════════════════════════════════════════════════//
// ————————> CLOSE ALL POSITIONS BY 3PM <————————— //
// ════════════════════════════════════════════════//
strategy.close_all(when = hour == 14 and minute == 57)