
El sistema de trading de indicadores de oscilación múltiple es una estrategia de trading cuantitativa basada en análisis técnico, cuyo núcleo se basa en la identificación de los altos y bajos de oscilación para determinar los cambios en la tendencia del mercado. La estrategia construye un nivel de stop loss de seguimiento dinámico, como el límite de decisión de la negociación de múltiples espacios, mediante el seguimiento de los precios más altos y más bajos de los últimos N períodos. El sistema ejecuta automáticamente una señal de compra cuando el precio supera el nivel TSL y ejecuta automáticamente una señal de venta cuando el precio cae por debajo del nivel TSL, mientras que administra automáticamente las posiciones, asegurando que cada posición tenga una dirección.
La lógica central de la estrategia gira en torno al seguimiento de los niveles de stop loss (TSL) y se implementa de la siguiente manera:
Nivel de precios clave en el ciclo de cálculo:
ta.highest(high, no)Calcula el precio más alto de los últimos no ciclos (res)ta.lowest(low, no)Calcula el precio mínimo de los últimos no ciclos (sup)Determina la posición del precio con respecto a los altos y bajos anteriores:
Construir un nivel de seguimiento de pérdidas (TSL):
Se generan señales de transacción:
Ejecutar las operaciones de transacción:
El sistema también incluye componentes visuales, como marcas de puntos de compra y venta, líneas K y fondos de cambios de color, y líneas horizontales que muestran los precios de apertura en tiempo real, lo que mejora la experiencia visual del proceso de negociación.
Capacidad de captura de tendencias: mediante el cálculo dinámico de precios máximos y mínimos, puede capturar eficazmente los cambios en la tendencia del mercado y adaptarse a las fluctuaciones de los diferentes ciclos del mercado.
Alta automatización: el sistema realiza automáticamente la identificación de señales de compra y venta y la ejecución de las transacciones, reduciendo la intervención humana y el impacto emocional.
Mecanismo de negociación bidireccional: soporta tanto el comercio de tiendas como el de tiendas en blanco, lo que permite obtener ganancias tanto en mercados altos como bajos.
Gestión de riesgos integrada: el diseño de seguimiento de los niveles de stop loss (TSL) contiene esencialmente una función de stop loss que limita la pérdida máxima de una sola operación.
Visualización de la retroalimentación de las operaciones: muestra claramente las señales de negociación y los precios de apertura de posiciones a través de una interfaz gráfica, lo que permite a los operadores monitorear y evaluar el rendimiento de la estrategia en tiempo real.
Flexibilidad de los parámetros: Se puede adaptar a las características del mercado en diferentes períodos de tiempo mediante el ajuste de los parámetros de ciclo de oscilación (no), que pueden aplicarse desde líneas cortas hasta líneas medianas y largas.
Indicaciones claras: el sistema proporciona señales de doble señal, tanto visuales como escritas, para reducir la posibilidad de una operación errónea.
Mal desempeño en los mercados de oscilación: en los mercados de oscilación horizontal, la estrategia puede generar falsas señales frecuentes, lo que lleva a pérdidas continuas.
Punto de deslizamiento y riesgo de retraso en la ejecución: En el mercado real, puede haber un desfase en el tiempo entre la generación de la señal y la ejecución de la orden, lo que hace que el precio de transacción real se desvíe del precio ideal.
Limitaciones de gestión de posiciones fijas: la estrategia actual utiliza unidades fijas ((qty = 1) para operar, y no hay mecanismos para ajustar el tamaño de las posiciones en función de la volatilidad del mercado o el tamaño de la cuenta.
Sensibilidad de parámetros: el rendimiento de la estrategia depende en gran medida de la configuración de los parámetros de los ciclos de oscilación ((no), que pueden requerir diferentes valores de parámetros en diferentes entornos de mercado.
La capacidad de respuesta a emergencias es débil: los niveles de stop loss pueden no ajustarse a tiempo en el caso de cambios rápidos en los precios causados por noticias importantes o eventos de Black Swan, lo que puede provocar grandes pérdidas.
Los métodos para mitigar estos riesgos incluyen: la confirmación de señales en combinación con otros indicadores, la implementación de gestión de posiciones dinámicas, el establecimiento de límites máximos de pérdida, el ajuste de parámetros en función de la volatilidad y el seguimiento periódico y la optimización de los parámetros de la estrategia.
volatility = ta.atr(14) / close * 100 // 计算波动率百分比
position_size = strategy.equity * 0.01 / volatility // 根据波动率调整仓位
rsi = ta.rsi(close, 14)
valid_buy = Buy and rsi < 70 // 避免在超买区域买入
valid_sell = Sell and rsi > 30 // 避免在超卖区域卖出
Parámetros de adaptación: Parámetros de ciclo de oscilación ajustados en función de la dinámica de la volatilidad del mercado (no), se usan valores menores en entornos de baja volatilidad y valores mayores en entornos de alta volatilidad.
Añadir objetivos de ganancias: establecer objetivos de ganancias basados en ATR o niveles de soporte/resistencia para bloquear parte de las ganancias cuando el mercado se mueve lo suficiente hacia una dirección favorable.
Filtro de tiempo: añade restricciones a las ventanas de tiempo de negociación para evitar períodos de mercado con poca liquidez o con fluctuaciones inusuales.
Mecanismo de control de retiro: Implementa un mecanismo de suspensión de operaciones basado en el porcentaje de retiro de intereses de la cuenta, que suspende las operaciones cuando las pérdidas continuas alcanzan el umbral predeterminado.
Confirmación de múltiples períodos: combina la dirección de la tendencia de los períodos de tiempo más altos y abre posiciones solo en la dirección que coincide con la tendencia de los períodos más altos, lo que aumenta la probabilidad de ganar.
Estas direcciones de optimización pueden mejorar significativamente la solidez y la adaptabilidad de las estrategias, especialmente al ofrecer mejores retornos de ajuste al riesgo en la transformación de diferentes entornos de mercado.
Un sistema de trading de indicadores de oscilación múltiple es una estrategia de trading automatizada basada en análisis técnico que capta los cambios en la tendencia del mercado mediante el seguimiento dinámico de los niveles de stop loss (TSL) y ejecuta operaciones bidireccionales de múltiples franjas. La estrategia funciona bien en mercados con una tendencia clara, puede seguir de manera efectiva el movimiento de los precios y administrar automáticamente las posiciones.
La ventaja central de la estrategia radica en su mecanismo de generación de señales simple y eficaz y en la función de gestión de riesgos incorporada, especialmente adecuada para el comercio de tendencias a corto y medio plazo. Sin embargo, la estrategia puede enfrentarse a desafíos de falsas señales frecuentes en mercados inestables y necesita ser optimizada aún más para mejorar su adaptabilidad en diversos entornos de mercado.
La estrategia puede mejorar aún más su rentabilidad y estabilidad de ajuste al riesgo mediante la implementación de medidas de optimización como la gestión dinámica de la posición, la confirmación de señales de múltiples indicadores y el ajuste de parámetros de adaptación. Para los operadores cuantitativos, este sistema automatizado basado en reglas claras ofrece un marco fiable que reduce la interferencia emocional y mantiene la disciplina comercial.
En última instancia, el éxito de la aplicación de esta estrategia depende de la delicada adaptación de los parámetros de los operadores y la comprensión de las características del mercado. Se recomienda realizar una revisión exhaustiva de la historia y la verificación de las transacciones en simulación antes de su aplicación en el mercado real.
/*backtest
start: 2024-05-06 00:00:00
end: 2025-03-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Accurate Swing Trading System with Auto Entry (Long & Short)", overlay=true)
// Parameters
no = input.int(3, title="Swing")
Barcolor = input.bool(true, title="Barcolor")
Bgcolor = input.bool(false, title="Bgcolor")
// Calculate TSL (Trailing Stop Level)
res = ta.highest(high, no)
sup = ta.lowest(low, no)
avd = close > res[1] ? 1 : close < sup[1] ? -1 : 0
avn = ta.valuewhen(avd != 0, avd, 0)
tsl = avn == 1 ? sup : res
// Define Buy and Sell Conditions
Buy = ta.crossover(close, tsl)
Sell = ta.crossunder(close, tsl)
plotshape(Buy, "BUY", shape.labelup, location.belowbar, color.green, text="BUY", textcolor=color.black)
plotshape(Sell, "SELL", shape.labeldown, location.abovebar, color.red, text="SELL", textcolor=color.black)
// Plot TSL
colr = close >= tsl ? color.green : close <= tsl ? color.red : na
plot(tsl, color=colr, linewidth=3, title="TSL")
barcolor(Barcolor ? colr : na)
bgcolor(Bgcolor ? colr : na)
// Alerts
alertcondition(Buy, title="Buy Signal", message="Buy")
alertcondition(Sell, title="Sell Signal", message="Sell")
// Automatic Entry & Exit with 1 Unit
if (Buy)
strategy.entry("Long", strategy.long, qty=1) // Enter long with 1 unit
strategy.close("Short") // Close any open short positions
alert("Buy Signal - Entry Long", alert.freq_once_per_bar_close)
alert("Buy Entry Sound", alert.freq_once_per_bar_close)
if (Sell)
strategy.entry("Short", strategy.short, qty=1) // Enter short with 1 unit
strategy.close("Long") // Close any open long positions
alert("Sell Signal - Entry Short", alert.freq_once_per_bar_close)
alert("Sell Entry Sound", alert.freq_once_per_bar_close)
// Plotting lines for open trades
var float long_price = na
var float short_price = na
// For Long Position: Plot the entry line at the price of the open position
if (strategy.opentrades > 0)
if (strategy.opentrades.entry_id(0) == "Long" and not na(strategy.opentrades.entry_price(0)))
long_price := strategy.opentrades.entry_price(0)
if (strategy.opentrades.entry_id(0) == "Short" and not na(strategy.opentrades.entry_price(0)))
short_price := strategy.opentrades.entry_price(0)
plot(long_price, color=color.green, style=plot.style_line, linewidth=2, title="Long Entry Line", offset=-1)
plot(short_price, color=color.red, style=plot.style_line, linewidth=2, title="Short Entry Line", offset=-1)