Este artículo presenta principalmente una estrategia de negociación cuantitativa llamada
La lógica de negociación de esta estrategia es muy simple y clara.
Utilice el cruce de SMA de 14 períodos y SMA de 28 períodos como la señal para largo y corto. Cuando la SMA de 14 períodos supera la SMA de 28 períodos, vaya largo. Cuando la SMA de 14 períodos baja la SMA de 28 períodos, vaya corto.
Calcular el indicador ATR y multiplicarlo por un factor para obtener la posición dinámica de toma de ganancias. Por ejemplo, establecer la longitud de ATR a 7, multiplicador a 1,5, entonces el ancho del canal dinámico de toma de ganancias es 1,5 veces el ATR de 7 períodos.
Cuando la dirección de la posición es larga, se suma el precio alto y el ancho del canal de toma de ganancias dinámicas para obtener la línea de toma de ganancias larga.
Una vez que el precio excede esta línea dinámica de toma de ganancias, toma de ganancias para salir inmediatamente.
A través de los pasos anteriores, esta estrategia logra un efecto simple pero eficiente de seguimiento de ganancias y toma rápida de ganancias. El canal ATR proporciona la capacidad de ajuste dinámico para la línea de toma de ganancias, mientras que la condición de 1 barra recientemente agregada asegura que la línea de toma de ganancias se active solo en condiciones de mercado favorables repentinas. Esto puede reducir efectivamente la salida prematura debido a la toma de ganancias.
La
La idea es sencilla y clara, fácil de entender e implementar, adecuada para que los principiantes aprendan.
El ATR dinámico puede seguir automáticamente las ganancias y evitar dejar las ganancias en la mesa.
Añadir 1 bar de alta / baja condición evita tomar el beneficio de desencadenar en movimientos más pequeños.
La longitud y el multiplicador del ATR se pueden ajustar para ajustar el grado de obtención de beneficios.
Puede salir rápidamente para capturar movimientos de precios favorables.
Las operaciones de inversión de capital de riesgo se basan en el valor de las operaciones de inversión de capital de riesgo.
También hay algunos riesgos con esta estrategia:
La repentina expansión del ATR puede causar una salida prematura de las ganancias.
No puede filtrar eficazmente el ruido del mercado, propenso a señales falsas.
Confiar únicamente en el cruce de SMA para la toma de decisiones, ineficaz para situaciones de mercado complejas.
No hay un mecanismo de stop loss para limitar las pérdidas de manera efectiva.
Es posible que el parámetro predeterminado no se adapte a todos los productos, se necesita optimización.
Para reducir los riesgos anteriores, podemos optimizar desde los siguientes aspectos:
Añadir reglas de filtro basadas en otros indicadores para eliminar señales falsas.
Añadir estrategias de stop loss para controlar estrictamente la pérdida por operación.
Optimice los parámetros utilizando el análisis de marcha adelante.
Optimizar los parámetros de los diferentes productos por separado.
Aumentar los modelos de aprendizaje automático para decisiones más inteligentes.
Sobre la base del análisis de riesgos, las direcciones de optimización incluyen principalmente:
Añadir filtro de señal: Añadir reglas de filtro basadas en indicadores como MACD, banda de Bollinger, etc. después de la señal para evitar el ruido.
Añadir línea de stop lossSe aplicarán las siguientes medidas para determinar el valor de las pérdidas de las operaciones:
Optimización de parámetros: Optimice parámetros como la longitud ATR, el multiplicador ATR utilizando el aprendizaje automático.
Ajuste de riesgos: Ajuste del tamaño de las posiciones, parámetros de riesgo basados en diferentes productos.
Modelo de fusión: Combine esta estrategia con aprendizaje automático, redes neuronales para mejorar la precisión.
Intervención manual: Permitir la anulación manual de los niveles de toma de ganancias/detención de pérdidas en momentos críticos.
Con la optimización en las direcciones anteriores, la rentabilidad y la estabilidad de la estrategia pueden mejorarse en gran medida.
En resumen, la
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Peter_O //@version=5 strategy("TrailingTakeProfit example", overlay=true, margin_long=100, margin_short=100, default_qty_value = 1, initial_capital = 100) longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28)) shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) if longCondition strategy.entry("Long", strategy.long, comment="long", alert_message="long") if shortCondition strategy.entry("Short", strategy.short, comment="short", alert_message="short") atr_length=input.int(7, title="ATR Length") atr_multiplier = input.float(1.5, title="ATR Multiplier") atr_multiplied = atr_multiplier * ta.atr(atr_length) ttp_top_bracket = strategy.position_size>0 ? high[1]+atr_multiplied : na ttp_bottom_bracket = strategy.position_size<0 ? low[1]-atr_multiplied : na plot(ttp_top_bracket, title="ttp_top_bracket", color=color.lime, style=plot.style_linebr, offset=1) plot(ttp_bottom_bracket, title="ttp_bottom_bracket", color=color.red, style=plot.style_linebr, offset=1) strategy.exit("closelong", from_entry="Long", limit=ttp_top_bracket, alert_message = "closelong") strategy.exit("closeshort", from_entry="Short", limit=ttp_bottom_bracket, alert_message = "closeshort") // var table alertsDisplayTable = table.new(position.top_right, 1, 5, color.black) // if barstate.islastconfirmedhistory // table.cell(alertsDisplayTable, 0, 0, "TradingConnector-compatible alerts sent", text_color=color.white) // table.cell(alertsDisplayTable, 0, 1, "at Long Entry: long", text_color=color.white) // table.cell(alertsDisplayTable, 0, 2, "at Short Entry: short", text_color=color.white) // table.cell(alertsDisplayTable, 0, 3, "at Long Exit: closelong", text_color=color.white) // table.cell(alertsDisplayTable, 0, 4, "at Short Exit: closeshort", text_color=color.white)