
La idea principal de esta estrategia es el comercio de retiros a corto plazo en la dirección de la tendencia a largo plazo. En concreto, el uso de la media móvil simple de 200 días para determinar la dirección de la tendencia a largo plazo, el uso de la media móvil simple de 10 días para determinar la dirección de la tendencia a corto plazo.
La estrategia utiliza la media móvil simple de 200 días y la media móvil simple de 10 días para determinar la tendencia del mercado. Cuando el precio cruza la línea de 200 días, se considera que se entra en el mercado de tiendas cerradas, y cuando el precio cruza la línea de 200 días, se considera que se entra en el mercado de tiendas cerradas. En el mercado de tiendas cerradas, si el precio cae cerca de la línea de 10 días, se muestra una corrección a corto plazo, y se hace más, con el objetivo de seguir la tendencia de tiendas cerradas a largo plazo.
Concretamente, cuando se cumplen las siguientes condiciones, se hace más entrada en el campo: el precio es superior a la línea de 200 días, el precio es inferior a la línea de 10 días, y no se ha mantenido ninguna posición anteriormente. Cuando se cumplen las siguientes condiciones, la salida de la posición baja en el campo: el precio es superior a la línea de 10 días, y se ha mantenido una posición de varios titulares. Para evitar grandes pérdidas, se establece un stop loss FAILSAFE, si el retiro desde el punto más alto es superior al 10%, el stop loss sale directamente.
Se puede ver que la lógica de negociación de esta estrategia se basa principalmente en el forko de oro de la línea de paridad, y las compras de reversión y las paradas de seguimiento de la tendencia en la dirección de la tendencia después de la determinación de la línea de paridad larga y corta son típicas de las estrategias de seguimiento de tendencias.
La mayor ventaja de esta estrategia es que se puede seguir la tendencia con un bajo costo de capital y buscar beneficios adicionales. Las ventajas concretas son las siguientes:
El uso de una combinación de líneas medias largas y cortas para determinar la dirección de la tendencia en los niveles principales y secundarios puede bloquear eficazmente las oportunidades de tendencia de líneas medias y largas y evitar ser engañados por la situación a corto plazo.
El método de retiro a corto plazo permite reducir al máximo el costo de compra y, por lo tanto, obtener un mayor margen de beneficio.
Configurar el mecanismo de detención de pérdidas FAILSAFE para controlar eficazmente las pérdidas individuales y proteger los fondos de la cuenta.
Permite el seguimiento de las salidas de las paradas, aprovechando las oportunidades de tendencia de la línea media larga y obteniendo un Alfa adicional.
La adopción de un método de negociación puramente mecanizado, que evita la influencia subjetiva de las emociones, hace que las estrategias sean más fáciles de implementar.
El principal riesgo de esta estrategia es:
Riesgo de ajuste de datos de retrospectiva. Las condiciones reales del mercado pueden diferir de los datos históricos, lo que puede afectar a la efectividad de las transacciones en el mercado real.
Riesgo de falsa ruptura. La probabilidad de una reversión de la corrección es mayor si el precio solo toca cerca de la línea media, lo que puede provocar una acumulación de pequeñas pérdidas.
Riesgo de reversión de tendencia. Es frecuente que la tendencia de la línea media-larga cambie repentinamente, lo que puede causar grandes pérdidas al mantener una posición.
Las respuestas son las siguientes:
Incrementar la cantidad de muestras, usar más datos históricos para la validación de robustez y asegurar que los resultados sean fiables.
Optimización de parámetros, ajuste de la combinación de parámetros del sistema de medición para garantizar la calidad de la señal de negociación.
La liberación adecuada de la línea de parada, dando un cierto margen de retroceso a los precios y evitando la parada demasiado sensible.
La estrategia puede ser optimizada en los siguientes aspectos:
El aumento de las condiciones de filtración, como el filtro de volumen de transacciones, puede reducir de manera efectiva las transacciones innecesarias provocadas por las brechas falsas.
Combinado con otros indicadores, como KDJ, MACD, etc., para formar una combinación de indicadores, puede mejorar la calidad de la señal de negociación.
Prueba de diferentes tiempos de tenencia de posiciones, optimización de las estrategias de stop loss y stop loss, y mejora de los indicadores de Sharp.
Ajuste dinámico de los parámetros de acuerdo con las condiciones del mercado, formando un mecanismo de optimización de parámetros de adaptación, para que la estrategia sea más robusta.
El aumento de módulos de negociación algorítmicos, el uso de métodos como el aprendizaje automático para generar señales de negociación y la reducción de la intervención humana.
La idea general de esta estrategia es clara y fácil de implementar, se puede obtener un Alfa estable siguiendo tendencias de línea media y larga a bajo costo. Pero también existe el riesgo de que la probabilidad sea aprovechada, y se necesita una optimización adicional para mejorar la estabilidad. En general, esta estrategia está diseñada desde el punto de vista del seguimiento de tendencias, vale la pena investigar y aplicar más. Si los parámetros se ajustan adecuadamente, se debe obtener un buen efecto en el disco.
/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
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/
// © irfanp056
// @version=5
strategy("Simple Pullback Strategy",
overlay=true,
initial_capital=100000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=1000, // 100% of balance invested on each trade
commission_type=strategy.commission.cash_per_contract,
commission_value=0.005) // Interactive Brokers rate
// Get user input
i_ma1 = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2 = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")
// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)
// Check filter(s)
f_dateFilter = true
// Check buy/sell conditions
var float buyPrice = 0
buyCondition = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition = strategy.position_size > 0 and stopDistance > i_stopPercent
// Enter positions
if buyCondition
strategy.entry(id="Long", direction=strategy.long)
if buyCondition[1]
buyPrice := open
// Exit positions
if sellCondition or stopCondition
strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
buyPrice := na
// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)