El cambio tras la estrategia de consolidación

El autor:¿ Qué pasa?, Fecha: 2023-11-03 17:26:53
Las etiquetas:

img

Resumen general

La idea principal de esta estrategia es detectar una evidente consolidación a corto plazo en los movimientos de los precios de las acciones, y luego juzgar la próxima dirección probable sobre la base del patrón de consolidación formado durante la fase de consolidación, con el fin de tomar posiciones largas o cortas correspondientes.

Estrategia lógica

  1. La estrategia utiliza el indicador del oscilador estocástico para determinar si el precio de las acciones ha entrado en consolidación.

  2. Cuando el oscilador estocástico oscila, los cambios direccionales del candelabro se utilizan para detectar puntos de inversión de tendencia.

  3. Los objetivos de ganancia y el stop loss después de la entrada se establecen dinámicamente en función del precio de entrada utilizando los trailing stops.

  4. La estrategia apoya tanto el comercio de posición completa como parcial.

  5. Las horas de negociación también se configuran en la estrategia.

Análisis de ventajas

  1. El oscilador estocástico identifica con precisión la consolidación de precios a corto plazo.

  2. La negociación en los puntos de reversión después de la consolidación mejora la precisión.

  3. Las paradas de retroceso bloquean las ganancias a medida que el precio se mueve favorablemente.

  4. Apoya el comercio total y parcial de posiciones basado en la preferencia de riesgo.

  5. Las horas de negociación evitan las operaciones incorrectas durante los períodos volátiles.

Análisis de riesgos

  1. Oscilador estocástico propenso a señales falsas, entradas faltantes o entradas prematuras.

  2. Las inversiones de candlestick pueden no ser precisas para detectar cambios de tendencia.

  3. Las paradas de retroceso están sujetas a ser golpeadas por los golpes de precio.

  4. Mayor riesgo con el comercio de posiciones parciales, las pérdidas podrían aumentar en las reversiones.

  5. Los parámetros de stop loss y trailing stop deben ajustarse para diferentes instrumentos.

  6. Los eventos importantes pueden afectar el rendimiento de la estrategia.

Oportunidades de mejora

  1. Optimizar los parámetros del oscilador estocástico para una mejor detección de la consolidación.

  2. Añadir filtros para confirmar las señales del candelabro, mejorando la precisión.

  3. Mejorar los algoritmos de trailing stop para un mejor seguimiento.

  4. Añadir reglas de dimensionamiento de posiciones para limitar las pérdidas en acciones individuales.

  5. Evitar la volatilidad derivada de eventos importantes mediante la incorporación de un calendario de eventos.

  6. Mejorar el modelo de posición parcial para captar mejor las tendencias.

Conclusión

La estrategia de cambio después de la consolidación identifica la consolidación a corto plazo utilizando el oscilador estocástico y las operaciones en puntos de inversión de tendencia después de la fase de consolidación. Tiene una tasa de ganancia decente y permite bloquear las ganancias de segmentos en tendencias. Sin embargo, el estocástico es propenso a señales falsas. La precisión se puede mejorar optimizando parámetros, agregando filtros, etc. Además, optimizar las paradas traseras, controlar el tamaño de la posición y evitar los riesgos de evento son áreas que requieren enfoque.


/*backtest
start: 2022-10-27 00:00:00
end: 2023-11-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Cross', overlay=true, initial_capital=1000 )

// Creditos : Cleber.martinelli
////////////////////////////////////////////////////////
//                                                    //
//                                                    //
//                    CALENDARIO                      //
//                                                    //
//                                                    //
////////////////////////////////////////////////////////

//052)
// trading view solicita que se ja informado data para gerar backtest a partir de tal data
//começa backtest do trading sistem em qual data ?

ano = input.int(2022, minval=1, title="Ano")
mes = input.int(1, minval=1, maxval=12, title="Mes")
dia = input.int(1, minval=1, maxval=31, title="Dia")
hora = input.int(1, minval=1, maxval=23, title="hora")
minuto = input.int(0, minval=0, maxval=59, title="minuto")
horaabertura = input.int(10, minval=1, maxval=23, title="hora Inicio Operacao Robo")
minutoabertura = input.int(40, minval=1, maxval=59, title="Minuto Encerra Tudo")
horaencerra = input.int(17, minval=1, maxval=23, title="hora Fechamento")
minutoencerra = input.int(50, minval=1, maxval=59, title="Minuto Encerra Novas Operacoes")
minutofinaliza = input.int(50, minval=1, maxval=59, title="Minuto Encerra Tudo")

//valida se o dia de hoje é posterior ao dia informado acima
Validadia = year >= ano and month >= mes and dayofmonth >= dia

//cria horario de abertura de negociaçao, considerar default 10 hs, pois os indicadores ja estarão corrigidos
abreloja = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaabertura
//and minute >= minutoabertura)

//cria horario de fechamento de todas as negociaçoes, considerar default 17:00 hs
//nenhuma ordem pode ser aberta depois dessa data e as abertas devem ser fechadas
fechaloja = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaencerra
//and minute >= minutoencerra)

fechaloja2 = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaencerra
//and minute >= minutofinaliza)

//valida horario de negociação, pra liberar as operacoes.
lojaaberta = abreloja == true and fechaloja == false and fechaloja2 == false

////////////////////////////////////////////////////////
//                                                    //
//                                                    //
//                 Codigo Operacional                 //
//                                                    //
//                                                    //
////////////////////////////////////////////////////////

// Inputs da Estratégia
pmax = input.int(90, minval=0, maxval=100, title="Estocastico Alvo - Para Short")
pmin = input.int(10, minval=0, maxval=100, title="Estocastico Alvo - Para Buy ")

parcial = input(title="Parcial ? ", defval=true)
p_gain = input.int(150, minval=0, maxval=1000, title="Pontos para Gain ")
p_loss = input.int(150, minval=0, maxval=1000, title="Pontos para Loss")
p_parcial = input.int(50, minval=0, maxval=100, title="Pontos para Parcial ")

// puxando os indicadores que usaremos 
estoc = ta.stoch(close,high,low,5)

if (estoc >=pmax and close < open)
    strategy.entry("Vende", strategy.short ,qty = 2)


if (estoc <=pmax and close > open)
    strategy.entry("Compra", strategy.long ,qty  =  2 )


pm_ativo = strategy.opentrades.entry_price(0)

if strategy.position_size > 0 and parcial// Posicionado na compra 
    if strategy.position_size == 2 // Mão cheia
        if close < pm_ativo - 100
            strategy.exit("Fecha Compra", "Compra", loss=p_loss , qty  =  2 )
        if close > pm_ativo + 50
            strategy.exit("Fecha Compra", "Compra", profit=p_gain , qty  =  1 )
    if strategy.position_size == 1// Mão cheia
        if close < pm_ativo 
            strategy.exit("Fecha Compra", "Compra", loss=0 , qty  =  1 )
        if close > pm_ativo + 100
            strategy.exit("Fecha Compra", "Compra", profit= p_gain * 1.5 , qty  =  1 )    
    
if strategy.position_size < 0 and parcial // Posicionado na Venda 
    if strategy.position_size == -2 // Mão cheia
        if close > pm_ativo - 100
            strategy.exit("Fecha Venda", "Vende", loss=p_loss , qty  =  2 )
        if close < pm_ativo + 50
            strategy.exit("Fecha Venda", "Vende", profit=p_gain , qty  =  1 )
    if strategy.position_size == -1// Mão cheia
        if close > pm_ativo 
            strategy.exit("Fecha Venda", "Vende", loss=0 , qty  =  1 )
        if close < pm_ativo + 100
            strategy.exit("Fecha Venda", "Vende", profit=p_gain*1.5 , qty  =  1 )    
    
if strategy.position_size > 0 and parcial == false // Sem Parcial 
    strategy.exit("Fecha Compra", "Compra", loss=p_loss , profit = p_gain , qty  =  2 )
if strategy.position_size < 0 and parcial == false // Sem Parcial 
    strategy.exit("Fecha Venda", "Vende", loss=p_loss , profit = p_gain , qty  =  2 )





















Más.