Estrategia de negociación de presión del canal Tang Xiao inverso


Fecha de creación: 2024-01-24 15:07:18 Última modificación: 2024-01-24 15:07:18
Copiar: 0 Número de Visitas: 595
1
Seguir
1617
Seguidores

Estrategia de negociación de presión del canal Tang Xiao inverso

Descripción general

La estrategia de trading de presión inversa en el canal de Tangshou es una estrategia de trading cuantitativa basada en el indicador del canal de Tangshou. La estrategia combina la suspensión de pérdidas y el seguimiento de las pérdidas para lograr la gestión de riesgos.

Cuando el precio toque el límite superior y inferior del canal Tangshou, abra una posición para hacer más tiempo libre, al mismo tiempo que establece un stop loss y un stop stop. Si se produce un stop loss, se suspenderá la apertura de una nueva posición hasta después de un cierto tiempo. Durante la tenencia de la posición, bloquee las ganancias mediante el seguimiento de los stop losses.

Principio de estrategia

La estrategia utiliza un indicador de 20 días en el canal Tangshou, que incluye el tren de arriba, el tren de abajo y el tren central.

La lógica de la apertura de posición

Se abre una posición cuando el precio toca la baja; se abre una posición vacía cuando el precio toca la alta.

Si antes se produce un stop loss en el mismo sentido, se debe suspender el ciclo (por ejemplo, 3 líneas K) para evitar el seguimiento de dragones.

Detener el daño y la lógica de parada

Cada vez que se abre una posición, se establece un stop loss de proporción fija y un take profit ajustado dinámicamente.

El take profit se calcula en función del porcentaje de ganancias por riesgo (por ejemplo, 2) y el porcentaje de pérdidas por parada (por ejemplo, 22%).

Seguimiento de la lógica de deterioro

Activar el seguimiento de la pérdida durante la fase de mantenimiento:

Cuando se mantiene una posición con varios titulares, se ajusta el stop loss al punto medio entre el precio de entrada y el precio de la línea media si el precio cruza la línea media.

El equipo se ajustó al cruzar la línea media con la cabeza en blanco.

Ventajas estratégicas

  1. El uso del indicador del canal Tangshou tiene cierta capacidad para captar situaciones de ruptura.

  2. La estrategia de la operación inversa es la de abrir posiciones bajo presión.

  3. La suspensión de pérdidas evita la persecución de dragones, el seguimiento de las pérdidas detiene el bloqueo de ganancias, y tiene una buena gestión de riesgos.

  4. Las reglas de la estrategia son claras, fáciles de entender y de implementar.

Riesgo estratégico

  1. Como indicador de tendencia, el canal Tangshou es propenso a falsas rupturas en la consolidación de la situación, lo que puede provocar pérdidas.

  2. El stop-loss fijo es fácil de encajar, por lo que el alcance del stop-loss debe ajustarse adecuadamente.

  3. La amplitud de ajuste de la parada de seguimiento es fácil de golpear, y la frecuencia de ajuste debe ser equilibrada.

  4. La configuración incorrecta de los parámetros también puede afectar el rendimiento de la estrategia.

Dirección de optimización de la estrategia

  1. La longitud del canal Tangshao puede ser optimizada para buscar la combinación óptima de parámetros.

  2. Añadir módulos de administración de posiciones, como el reseteo periódico de los períodos de suspensión.

  3. En combinación con otros indicadores para juzgar la tendencia, evitar falsos saltos de tendencia.

  4. Activar el stop dinámico y ajustar la posición del stop en tiempo real.

Resumir

La estrategia de trading de presión en el canal inverso de Tangshou integra varias funciones, como el juicio de tendencias, la gestión de riesgos y otras funciones, y los fundamentos son completos. A través de la optimización continua de los parámetros y la combinación con otros indicadores o modelos, se puede aumentar aún más la robustez de la estrategia y aumentar la rentabilidad.

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

//@version=4
strategy("Contrarian Donchian Channel Strategy - Touch Entry with Post-SL Pause and Trailing Stop", overlay=true, default_qty_value=0.01, default_qty_type=strategy.percent_of_equity)

// Inputs
length = input(20, minval=1, title="Donchian Channel Length")
riskRewardRatio = input(2, title="Risk/Reward Ratio")
stopLossPercent = input(0.22, title="Stop Loss (%)") / 100
pauseCandles = input(3, minval=1, title="Pause After SL (Candles)")

// Donchian Channel Calculation
upper = highest(high, length)
lower = lowest(low, length)
centerline = (upper + lower) / 2  // Calculating the Centerline

// Plotting Donchian Channel and Centerline
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")
plot(centerline, color=color.blue, title="Centerline")

// Tracking Stop Loss Hits and Pause
var longSLHitBar = 0
var shortSLHitBar = 0
var int lastTradeDirection = 0 // 1 for long, -1 for short, 0 for none

// Update SL Hit Bars
if (strategy.position_size[1] > 0 and strategy.position_size == 0)
    if (close[1] < strategy.position_avg_price[1])
        longSLHitBar := bar_index
        lastTradeDirection := 1

if (strategy.position_size[1] < 0 and strategy.position_size == 0)
    if (close[1] > strategy.position_avg_price[1])
        shortSLHitBar := bar_index
        lastTradeDirection := -1

// Entry Conditions - Trigger on touch
longCondition = (low <= lower) and (bar_index - longSLHitBar > pauseCandles or lastTradeDirection != 1)
shortCondition = (high >= upper) and (bar_index - shortSLHitBar > pauseCandles or lastTradeDirection != -1)

// Trade Execution
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Initial Stop Loss and Take Profit Calculation
stopLoss = strategy.position_avg_price * (1 - stopLossPercent)
takeProfit = strategy.position_avg_price * (1 + stopLossPercent * riskRewardRatio)

// Trailing Stop Loss Logic
var float trailingStopLong = na
var float trailingStopShort = na

// Update Trailing Stop for Long Position
if (strategy.position_size > 0)
    if (close > centerline)
        trailingStopLong := (strategy.position_avg_price + centerline) / 2
    stopLoss := na(trailingStopLong) ? stopLoss : max(trailingStopLong, stopLoss)

// Update Trailing Stop for Short Position
if (strategy.position_size < 0)
    if (close < centerline)
        trailingStopShort := (strategy.position_avg_price + centerline) / 2
    stopLoss := na(trailingStopShort) ? stopLoss : min(trailingStopShort, stopLoss)

// Setting Stop Loss and Take Profit for each trade
strategy.exit("SL_TP_Long", "Long", stop=stopLoss, limit=takeProfit)
strategy.exit("SL_TP_Short", "Short", stop=stopLoss, limit=takeProfit)