Estrategia de tendencia progresiva BB KC


Fecha de creación: 2024-01-26 15:10:41 Última modificación: 2024-01-26 15:10:41
Copiar: 0 Número de Visitas: 725
1
Seguir
1617
Seguidores

Estrategia de tendencia progresiva BB KC

Descripción general

Esta estrategia utiliza una combinación de señales de la banda de Brin y la línea de Kate para identificar tendencias en el mercado. La banda de Brin es una herramienta de análisis técnico para definir canales en función del rango de fluctuación de los precios; La señal de la línea de Kate es un indicador técnico que combina la volatilidad de los precios con la tendencia para determinar soporte o presión.

Principio de estrategia

  1. Se calcula el promedio, el promedio superior y el promedio inferior de 20 ciclos de Bryn, y se establece el doble de la diferencia estándar en el ancho de banda.
  2. Se calcula el orbital central, el orbital superior y el orbital inferior de Kate de 20 ciclos, y el ancho de banda se determina a través de 2,2 veces el rango de fluctuación real.
  3. Haga más cuando Kate está en línea en la vía de la banda de Bryn en la vía y el volumen de intercambio es mayor que el promedio de 10 ciclos.
  4. Cuando Kate pasa por la banda de Brin y la transacción es mayor que el promedio de 10 ciclos, se deja en blanco.
  5. Si la línea K de 20 no se retira después de abrir la posición, se forzará la retirada del stop loss.
  6. Después de hacer más, establece un stop loss del 1.5% y un stop loss del -1.5% después de hacer menos; después de hacer más, establece un stop loss del 2% y un stop loss del 2% después de hacer menos.

La estrategia se basa principalmente en la banda de Brin para determinar el rango y la intensidad de las oscilaciones. Utilizando la verificación asistida de la línea de Kate, el uso conjunto de dos indicadores con diferentes parámetros pero de naturaleza similar puede mejorar la precisión de la señal, y la introducción de volúmenes de intercambio también puede reducir eficazmente la señal no válida.

Análisis de las ventajas

  1. La combinación de las ventajas de los indicadores Brin Belt y Kate Line mejora la precisión de las señales comerciales.
  2. La combinación de indicadores de volumen de transacción puede reducir eficazmente las señales de invalidez de las líneas de impacto frecuentes del mercado.
  3. Establezca mecanismos de detención y seguimiento de pérdidas para controlar el riesgo de manera efectiva.
  4. El parón de frenado forzado después de la señal de invalidación se puede detener rápidamente.

Análisis de riesgos

  1. Las bandas de Bryn y las líneas de Kate son indicadores basados en medias móviles y combinados con cálculos de volatilidad, que son propensos a generar señales erróneas en situaciones de agitación.
  2. El mecanismo de no retorno de ganancias, que puede ser usado repetidamente, puede causar pérdidas excesivas.
  3. Las señales de reversión son más comunes, y es fácil perder oportunidades de tendencia después de ajustar los parámetros. La amplitud de parada de pérdidas se puede relajar adecuadamente, o se pueden agregar señales de filtración de indicadores auxiliares como MACD para reducir el riesgo de señales falsas.

Dirección de optimización

  1. Se puede probar el efecto de diferentes parámetros en la rentabilidad de la estrategia, como la longitud de la línea media ajustada, el múltiplo de la diferencia estándar, etc.
  2. Se pueden agregar otros indicadores para determinar la señal, como el indicador KDJ o el indicador MACD.
  3. Los parámetros se pueden optimizar automáticamente mediante métodos de aprendizaje automático.

Resumir

Esta estrategia utiliza el indicador de la banda de Brin y la línea de Kate para identificar las tendencias del mercado, y se complementa con el indicador de volumen de transacciones para verificar la señal. La estrategia se puede fortalecer aún más a través de la optimización de parámetros, la adición de otros indicadores técnicos, etc., para que pueda adaptarse a una situación de mercado más amplia.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
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/
// © jensenvilhelm

//@version=5
strategy("BB and KC Strategy", overlay=true)

// Define the input parameters for the strategy, these can be changed by the user to adjust the strategy
kcLength = input.int(20, "KC Length", minval=1) // Length for Keltner Channel calculation
kcStdDev = input.float(2.2, "KC StdDev") // Standard Deviation for Keltner Channel calculation
bbLength = input.int(20, "BB Length", minval=1) // Length for Bollinger Bands calculation
bbStdDev = input.float(2, "BB StdDev") // Standard Deviation for Bollinger Bands calculation
volumeLength = input.int(10, "Volume MA Length", minval=1) // Length for moving average of volume calculation
stopLossPercent = input.float(1.5, "Stop Loss (%)") // Percent of price for Stop loss 
trailStopPercent = input.float(2, "Trail Stop (%)") // Percent of price for Trailing Stop
barsInTrade = input.int(20, "Bars in trade before exit", minval = 1) // Minimum number of bars in trade before considering exit

// Calculate Bollinger Bands and Keltner Channel
[bb_middle, bb_upper, bb_lower] = ta.bb(close, bbLength, bbStdDev) // Bollinger Bands calculation
[kc_middle, kc_upper, kc_lower] = ta.kc(close, kcLength, kcStdDev) // Keltner Channel calculation

// Calculate moving average of volume
vol_ma = ta.sma(volume, volumeLength) // Moving average of volume calculation

// Plotting Bollinger Bands and Keltner Channels on the chart
plot(bb_upper, color=color.red) // Bollinger Bands upper line
plot(bb_middle, color=color.blue) // Bollinger Bands middle line
plot(bb_lower, color=color.red) // Bollinger Bands lower line
plot(kc_upper, color=color.rgb(105, 255, 82)) // Keltner Channel upper line
plot(kc_middle, color=color.blue) // Keltner Channel middle line
plot(kc_lower, color=color.rgb(105, 255, 82)) // Keltner Channel lower line

// Define entry conditions: long position if upper KC line crosses above upper BB line and volume is above MA of volume
// and short position if lower KC line crosses below lower BB line and volume is above MA of volume
longCond = ta.crossover(kc_upper, bb_upper) and volume > vol_ma // Entry condition for long position
shortCond = ta.crossunder(kc_lower, bb_lower) and volume > vol_ma // Entry condition for short position

// Define variables to store entry price and bar counter at entry point
var float entry_price = na // variable to store entry price
var int bar_counter = na // variable to store bar counter at entry point

// Check entry conditions and if met, open long or short position
if (longCond)
    strategy.entry("Buy", strategy.long) // Open long position
    entry_price := close // Store entry price
    bar_counter := 1 // Start bar counter
if (shortCond)
    strategy.entry("Sell", strategy.short) // Open short position
    entry_price := close // Store entry price
    bar_counter := 1 // Start bar counter

// If in a position and bar counter is not na, increment bar counter
if (strategy.position_size != 0 and na(bar_counter) == false)
    bar_counter := bar_counter + 1 // Increment bar counter

// Define exit conditions: close position if been in trade for more than specified bars
// or if price drops by more than specified percent for long or rises by more than specified percent for short
if (bar_counter > barsInTrade) // Only consider exit after minimum bars in trade
    if (bar_counter >= barsInTrade)
        strategy.close_all() // Close all positions
    // Stop loss and trailing stop
    if (strategy.position_size > 0)
        strategy.exit("Sell", "Buy", stop=entry_price * (1 - stopLossPercent/100), trail_points=entry_price * trailStopPercent/100) // Set stop loss and trailing stop for long position
    else if (strategy.position_size < 0)
        strategy.exit("Buy", "Sell", stop=entry_price * (1 + stopLossPercent/100), trail_points=entry_price * trailStopPercent/100) // Set stop loss and trailing stop for short position