Estrategia de trading de ruptura de canal de media móvil


Fecha de creación: 2024-01-29 14:31:25 Última modificación: 2024-01-29 14:31:25
Copiar: 0 Número de Visitas: 631
1
Seguir
1617
Seguidores

Estrategia de trading de ruptura de canal de media móvil

Descripción general

La estrategia se basa en el principio de la horquilla dorada de las medias móviles simples, y toma decisiones de compra y venta a través de la cruz de la media diaria de 7 días y la media diaria de 14 días. Se emite una señal de compra cuando la media diaria de 7 días se rompe desde la parte inferior de la media diaria de 14 días; se emite una señal de venta cuando la media diaria de 7 días se rompe desde la parte superior de la media diaria de 14 días.

Principio de estrategia

La lógica central de negociación de esta estrategia se basa en el principio de cruce de la línea media de 7 días y la línea media de 14 días. La tendencia a corto plazo del precio de reacción de la línea media de 7 días y la tendencia a mediano plazo del precio de reacción de la línea media de 14 días.

En concreto, la estrategia calcula las medias móviles simples de los días 7 y 14 a través del índice SMA. Después de la formación de cada línea K, compara la relación entre el tamaño de la línea 7 y la línea 14 en ese momento. Si la línea 7 atraviesa la línea 14 en ese momento, se emite una señal de multiplicación para entrar en una posición larga; si la línea 7 atraviesa la línea 14 por debajo de la línea 7 en ese momento, se emite una señal de vacío para entrar en una posición corta.

Además, la estrategia también establece paros, paradas y paradas de seguimiento para bloquear ganancias y controlar el riesgo. Los parámetros específicos pueden optimizarse según los resultados de la retroalimentación.

Ventajas estratégicas

La estrategia tiene las siguientes ventajas:

  1. Las reglas son sencillas, claras, fáciles de entender y adecuadas para los principiantes.
  2. El principio de cruzamiento equilíneo es efectivo y tiene una alta tasa de éxito.
  3. Dispone de paradas, frenadas y paradas de seguimiento para controlar el riesgo de manera eficaz;
  4. Menos parámetros, más fácil de probar y optimizar.

Riesgos y contramedidas

La estrategia también tiene sus riesgos:

  1. Cuando se produce un cambio de tendencia, la señal de cruce de línea media se retrasa y no puede reaccionar a tiempo para cambiar la tendencia, lo que puede provocar grandes pérdidas.
  2. En un mercado con un alto índice de volatilidad, las señales de cruce de línea media son frecuentes, lo que genera más señales falsas que afectan la eficacia de la estrategia.

Para hacer frente a estos riesgos, se pueden considerar las siguientes medidas:

  1. En combinación con otros indicadores de filtración de señales de cruce de línea uniforme, como MACD, KDJ, etc., para evitar señales erróneas en los puntos de cambio de tendencia;
  2. Incrementar el margen de pérdidas y reducir el período de tenencia de posiciones para reducir el impacto de las pérdidas individuales;
  3. Optimizar los parámetros de la línea media de acuerdo con las diferentes condiciones del mercado, aumentar adecuadamente el ciclo de la línea media en el mercado horizontal y reducir la frecuencia de las señales de cruce.

Dirección de optimización

La estrategia puede ser optimizada en las siguientes direcciones:

  1. Probar diferentes combinaciones y parámetros de línea media para encontrar el mejor parámetro.
  2. El objetivo de la estrategia es mejorar la eficacia de la estrategia mediante la adición de otros indicadores para filtrar la señal.
  3. Optimización de parámetros de stop loss, reducción de retiros y mejora de la rentabilidad;
  4. Ajuste de los parámetros según las diferentes variedades y períodos de negociación.

Resumir

La estrategia en general es muy adecuada para el aprendizaje de los principiantes, el principio es simple, fácil de entender y implementar. Al mismo tiempo, tiene una buena adaptabilidad al mercado, con un gran espacio para ajustar y optimizar los parámetros, y se espera obtener ganancias estables.

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

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © bensonsuntw

strategy("Strategy Template[Benson]", pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

backtest_year = input(2019, type=input.integer, title='backtest_year')
backtest_month = input(01, type=input.integer, title='backtest_month', minval=1, maxval=12)
backtest_day = input(01, type=input.integer, title='backtest_day', minval=1, maxval=31)
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)
stop_loss_and_tp = input(title="Enable Stop Loss and Take Profit", type=input.bool, defval=true)
trail_stop = input(title="Enable Trail Stop", type=input.bool, defval=true)
buy_stop_loss = input(0.2, type=input.float, title='buy_stop_loss')
sell_stop_loss = input(0.1, type=input.float, title='sell_stop_loss')
buy_tp = input(0.4, type=input.float, title='buy_tp')
sell_tp =input(0.2, type=input.float, title='sell_tp')
trail_stop_long = input(1.1, type=input.float, title='trail_stop_long')
trail_stop_short = input(0.9, type=input.float, title='trail_stop_short')
trail_stop_long_offset = input(0.05, type=input.float, title='trail_stop_long_offset')
trail_stop_short_offset = input(0.05, type=input.float, title='trail_stop_short_offset')


// you can set your own logic here
shortCondition = crossunder(sma(close,7),sma(close,14))
longCondition = crossover(sma(close,7),sma(close,14))

strategy.entry("Buy", strategy.long, when=longCondition  )
strategy.close("Buy", when=shortCondition)
strategy.exit("Close Buy","Buy", limit= stop_loss_and_tp?strategy.position_avg_price * (1+buy_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1-buy_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_long:na,trail_offset=trail_stop?-strategy.position_avg_price *trail_stop_long_offset:na)

strategy.entry("Sell", strategy.short, when=shortCondition)
strategy.close("Sell", when=longCondition)
strategy.exit("Close Sell","Sell", limit= stop_loss_and_tp?strategy.position_avg_price * (1-sell_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1+sell_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_short:na,trail_offset=trail_stop?strategy.position_avg_price *trail_stop_short_offset:na)


net_profit = strategy.netprofit + strategy.openprofit

plot(net_profit, title="Net Profit", linewidth=2, style=plot.style_area, transp=50, color=net_profit >= 0 ? #26A69A : color.red)