Estrategia ascendente/descendiente consecutiva de N días
Este artículo presentará en detalle la lógica de negociación, los pros, los riesgos potenciales y el resumen de la estrategia de N días consecutivos de subida/baja.
Esta es una estrategia de largo plazo que determina entradas y salidas basadas en días ascendentes y días descendentes consecutivos definidos por el usuario.
Estrategia lógica
En primer lugar, tenemos que establecer dos parámetros:
consecutivoBarsUp: días consecutivos hasta días consecutivos de inactividad: días consecutivos de inactividad
Luego registramos dos variables:
días de alza: días de alza consecutivos corrientes dns: días de inactividad consecutivos actuales
Cada día comparamos el precio de cierre con el cierre anterior para determinar si es un día de alza o baja.
Cuando las ups alcanzan consecutiveBarsUp, vamos a largo.
Esa es la lógica simple de una estrategia ascendente/descendiente consecutiva. Solo vamos mucho tiempo después de días ascendentes consecutivos desde abajo. Y salimos después de días descendentes consecutivos. Esto evita el comercio frecuente en mercados de rango.
Ventajas
Lógica sencilla, fácil de entender e implementar
Filtración de las fluctuaciones a corto plazo por el ajuste de los días consecutivos
Solo largo, menos operaciones, menores costes de transacción e impacto del deslizamiento
Fácil de configurar para detener pérdidas, controlar eficazmente pérdidas de una sola operación
Riesgos potenciales
Incapacidad para hacer compras cortas, oportunidades perdidas para hacer compras cortas
Necesita días consecutivos para entrar, posiblemente perdiendo el mejor punto de entrada
Tiempo de retraso, no captura giros en tiempo real
Pérdidas de transacciones individuales grandes sin stop loss
Resumen de las actividades
La estrategia de días ascendentes/descendientes consecutivos es muy popular por su simplicidad y su baja frecuencia de negociación. Con el ajuste adecuado de los parámetros, puede filtrar los problemas de manera efectiva. Pero también tiene limitaciones como el retraso en el tiempo y la incapacidad de hacer compras cortas.
/*backtest start: 2023-08-12 00:00:00 end: 2023-09-11 00:00:00 period: 12h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Strategy // strategy("Up/Down Long Strategy", overlay=true, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash) // There will be no short entries, only exits from long. // strategy.risk.allow_entry_in(strategy.direction.long) consecutiveBarsUp = input(1) consecutiveBarsDown = input(1) price = close ups = 0.0 ups := price > price[1] ? nz(ups[1]) + 1 : 0 dns = 0.0 dns := price < price[1] ? nz(dns[1]) + 1 : 0 // Strategy Backesting startDate = input(timestamp("2021-01-01T00:00:00"), type = input.time) finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time) time_cond = true // Messages for buy and sell message_buy = input("{{strategy.order.alert_message}}", title="Buy message") message_sell = input("{{strategy.order.alert_message}}", title="Sell message") // Strategy Execution if (ups >= consecutiveBarsUp) and time_cond strategy.entry("Long", strategy.long, stop = high + syminfo.mintick, alert_message = message_buy) if (dns >= consecutiveBarsDown) and time_cond strategy.entry("Short", strategy.short, stop = low + syminfo.mintick, alert_message = message_sell)