En la carga de los recursos... Cargando...

Estrategia dinámica de toma de ganancias y adición de posiciones dinámicas de la banda de Bollinger

El autor:¿ Qué pasa?, Fecha: 2024-03-22 15:49:28
Las etiquetas:

img

Resumen de la estrategia

Esta estrategia se basa en el indicador de la banda de Bollinger. Abre posiciones cuando el precio alcanza la banda superior o inferior, y establece la lógica de ganancia dinámica y la adición de posición dinámica. Cuando el precio se rebota de la banda inferior y rompe la banda media, la estrategia considera que se ha formado una tendencia alcista. En este momento, la estrategia agregará posiciones cuando el precio se retire a un cierto porcentaje de la banda media. Cuando el precio finalmente rompe la banda superior, la estrategia cierra posiciones para obtener ganancias. En una tendencia bajista, la estrategia adopta la lógica de operación opuesta. A través de la ganancia dinámica y la adición de posición dinámica basada en las bandas de Bollinger, esta estrategia puede obtener más ganancias en los mercados de tendencia.

Principio de la estrategia

Los principios principales de esta estrategia son los siguientes:

  1. Calcular las bandas superior, media e inferior de las bandas de Bollinger. Las bandas superior e inferior se calculan sumando y restando N veces la desviación estándar de la banda media, donde N se puede personalizar.

  2. Cuando el precio de cierre rompe la banda inferior y no se ha abierto ninguna posición antes, la estrategia abre una posición larga; cuando el precio de cierre rompe la banda superior y no se ha abierto ninguna posición antes, la estrategia abre una posición corta.

  3. Después de abrir una posición larga, si el precio de cierre rompe hacia arriba a través de la banda media, se considera que se ha formado una tendencia alcista, y la variable baseCrossed se marca como verdadera.

  4. En el caso de una posición larga, si el precio de cierre rompe la banda inferior y la baseCrossed es verdadera, y el precio actual ha caído en más del 2% desde el precio de apertura original, la estrategia agrega posiciones en este momento, y restablece baseCrossed a falso al mismo tiempo.

  5. Si el precio de cierre rompe la banda superior al mantener una posición larga, o el precio de cierre rompe la banda inferior al mantener una posición corta, la estrategia cierra todas las posiciones, obtiene ganancias y restablece varias variables marcadoras para prepararse para la próxima apertura.

A través de la apertura dinámica anterior, la adición de posiciones y la lógica de toma de ganancias, esta estrategia puede operar de manera flexible en mercados de tendencia para obtener mayores ganancias.

Análisis de ventajas

  1. Dinámica de toma de ganancias: Esta estrategia ajusta dinámicamente el nivel de toma de ganancias a través de las bandas superior e inferior de las bandas de Bollinger.

  2. Adición dinámica de posiciones: en la etapa de retroceso después de que se forme la tendencia, la estrategia agregará posiciones gradualmente, lo que puede obtener mayores ganancias en los mercados de tendencia.

  3. Parámetros flexibles: Los parámetros de las bandas de Bollinger, como los valores N y P, pueden ajustarse de forma flexible para adaptarse a las diferentes características del mercado y estilos de negociación.

  4. La banda de Bollinger es un indicador técnico clásico con una buena capacidad de captura de tendencias.

  5. Lógica clara: Las condiciones de apertura y cierre y la lógica de adición y reducción de posiciones de esta estrategia son muy claras y fáciles de entender, lo que es conveniente para que los operadores entiendan y controlen.

Análisis de riesgos

  1. Mercado oscilante: las estrategias de Bollinger Band a menudo tienen un mal rendimiento en los mercados oscilantes.

  2. Inversión de tendencia: en el momento clave de la inversión de tendencia, esta estrategia puede experimentar un retraso en el juicio, lo que lleva a agregar posiciones en la dirección equivocada, lo que resulta en una mayor reducción.

  3. Situaciones extremas: en situaciones extremas (como subidas y caídas bruscas), la tendencia de las bandas de Bollinger puede ser anormal, causando el fracaso de la estrategia.

  4. Configuración de parámetros: la configuración inadecuada de parámetros afectará seriamente el rendimiento de esta estrategia. Por ejemplo, establecer el valor N demasiado bajo dará lugar a transacciones frecuentes, y establecer el valor N demasiado grande dará lugar a retraso de la señal.

  5. Eventos de cisne negro: si hay grandes eventos políticos y económicos, esta estrategia puede enfrentar una mayor exposición al riesgo.

Para controlar los riesgos anteriores, podemos comenzar desde dos aspectos: 1) Establecer razonablemente parámetros y optimizar parámetros para diferentes objetivos y condiciones de mercado; 2) Agregar más condiciones de filtrado a la estrategia, como juicio de tendencia, filtrado de volatilidad, etc., para mejorar la calidad de las señales.

Dirección de optimización

  1. Filtración de tendencia: agregar la lógica del juicio de tendencia al abrir posiciones, como usar el arreglo alcista de MA como una condición de filtración para ir largo, y el arreglo bajista de MA como una condición de filtración para ir corto, lo que puede mejorar la tasa de éxito de la captura de tendencia.

  2. Filtración de volatilidad: Las bandas de Bollinger son en realidad un tipo de indicador de volatilidad. Se pueden introducir indicadores de volatilidad como ATR y volatilidad histórica para identificar el estado de volatilidad del mercado. Las posiciones se pueden reducir adecuadamente en estados de alta volatilidad y aumentar en estados de baja volatilidad, para controlar mejor los riesgos.

  3. Optimización de parámetros dinámicos: Los parámetros de las bandas de Bollinger se pueden ajustar dinámicamente de acuerdo con las condiciones del mercado. Por ejemplo, el valor de N se puede aumentar en mercados de tendencia y disminuir en mercados oscilantes. Esto requiere el uso de aprendizaje automático y otras tecnologías para encontrar los parámetros óptimos a través de la capacitación en datos históricos.

  4. Estrategias combinadas: Esta estrategia puede combinarse con otras estrategias clásicas como el MACD y el RSI para formar estrategias combinadas, mejorando la robustez y rentabilidad del sistema.

  5. Añadir una lógica de stop-loss: en la actualidad, esta estrategia carece de una lógica de stop-loss clara. Podemos considerar la adición de mecanismos como el stop de seguimiento o el stop-loss de porcentaje fijo para controlar la pérdida máxima de una sola transacción.

  6. Optimización de la gestión de posiciones: en el proceso de adición y reducción de posiciones, se pueden utilizar métodos clásicos de gestión de posiciones como la fórmula de Kelly y el valor óptimo de F para maximizar las ganancias bajo riesgos controlables.

A través de las optimizaciones anteriores, la relación riesgo-beneficio de esta estrategia puede mejorarse aún más, lo que le permite adaptarse mejor a los entornos cambiantes del mercado y brindar rendimientos estables a los operadores.

Resumen de las actividades

La estrategia de Bollinger Bands es una estrategia clásica de seguimiento de tendencias. Se basa en Bollinger Bands, busca mayores ganancias de tendencia ajustando dinámicamente las posiciones. Esta estrategia tiene una lógica clara, parámetros flexibles y una fuerte adaptabilidad. Es una estrategia de trading cuantitativa digna de investigación y aplicación en profundidad. Pero al mismo tiempo, también debemos ver que esta estrategia tiene un desempeño pobre en los mercados oscilantes y carece de la capacidad de lidiar con situaciones extremas y eventos de cisne negro. Esto requiere que nos centremos en la optimización de parámetros, el control de riesgos y la estrategia de combinación en la aplicación real, y probemos regularmente la efectividad de la estrategia en diferentes condiciones de mercado. Al comprender profundamente la lógica interna de esta estrategia y optimizar y mejorar continuamente, creo que esta estrategia puede convertirse en una herramienta importante para que los traders cuantitativos y los inversores obtengan retornos estables y a largo plazo.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//  Bollinger Bands 1Bb 상하한 크로스 롱숏 실행

strategy(shorttitle="BB", title="Bollinger Bands", overlay=true )
 // bb
length = input.int(12, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
add = input.float(0.98, step = 0.001)
// plot(upper - lower, "Basis", color=color.red, offset = offset)
var bool entryMade = false
var bool basisCrossed = false
var bool upperCrossed = false
var bool lowerCrossed = false
strategy.initial_capital = 50000
if close < lower and not entryMade
    strategy.entry("롱", strategy.long, qty = strategy.initial_capital/10000)
    entryMade := true
if ta.crossover(close, basis) and entryMade and not upperCrossed
    basisCrossed := true
if close > upper
    upperCrossed := true
if close < lower and entryMade and basisCrossed and not upperCrossed and close < strategy.position_avg_price*add
    strategy.entry("추가롱", strategy.long, strategy.initial_capital/10000)
    basisCrossed := false
if close > upper
    strategy.close("롱")
    strategy.close("추가롱")
    entryMade := false
    basisCrossed := false
    upperCrossed := false
///////////반대 포지션
if close > upper and not entryMade
    strategy.entry("s", strategy.short, qty = strategy.initial_capital/10000)
    entryMade := true
if ta.crossunder(close, basis) and entryMade and not lowerCrossed
    basisCrossed := true
if close < lower
    lowerCrossed := true
if close > upper and entryMade and basisCrossed and not lowerCrossed and close > strategy.position_avg_price*add
    strategy.entry("추가s", strategy.short, strategy.initial_capital/10000)
    basisCrossed := false
if close < lower
    strategy.close("s")
    strategy.close("추가s")
    entryMade := false
    basisCrossed := false
    upperCrossed := false


Más.