La idea principal de esta estrategia es utilizar la cruz de oro y la cruz muerta de las medias móviles como señales comerciales, combinadas con la ruptura de precios de medias móviles duales para hacer entradas y paradas.
Los principios de funcionamiento detallados son los siguientes:
Calcular la media móvil simple de corto plazo (SMA) y la media móvil simple de largo plazo.
El precio por encima de los promedios móviles indica una posición larga, mientras que el precio por debajo muestra una posición corta.
Ir largo cuando el SMA corto cruza por encima del SMA largo; ir corto cuando el SMA corto cruza por debajo del SMA largo.
Cambiar entre posiciones largas y cortas.
Las principales ventajas de esta estrategia son las siguientes:
La doble estrategia de media móvil combina tanto el seguimiento de tendencias como la inversión media, lo que aprovecha el seguimiento de las tendencias del mercado y la captura de oportunidades de inversión.
La cruz dorada y la cruz muerta de las medias móviles tienen cierta persistencia, lo que ayuda a filtrar las fallas.
Basado en la teoría de la media móvil, es beneficioso para bloquear las ganancias durante tendencias y mercados de rango.
Los principales riesgos de esta estrategia son:
La estrategia de la media móvil dual es sensible a los parámetros.
Las rupturas fallidas pueden provocar pérdidas, por lo que deben implementarse paradas eficaces para controlar los riesgos.
No se garantiza el éxito de la reversión de la tendencia, ya que la tendencia inicial puede continuar y dar lugar a pérdidas.
Las principales direcciones de optimización:
Prueba y optimiza los parámetros de la media móvil para encontrar la mejor combinación de parámetros.
Añadir un indicador de determinación de tendencias para distinguir entre mercados de tendencias y mercados de variación.
Implementar un stop loss efectivo para controlar los riesgos, como el stop loss de seguimiento, el stop loss de la orden, etc.
Combinar con otros indicadores para mejorar la solidez de la estrategia.
En conclusión, como una doble estrategia de seguimiento de la inversión de promedios móviles, toma en consideración tanto el seguimiento de tendencias como el comercio de inversión. Con la optimización adecuada de parámetros y el control de riesgos, puede lograr buenos resultados. Sin embargo, cualquier estrategia enfrenta riesgos como errores direccionales, fallas de stop loss, etc. Se necesitan pruebas y optimización continuas para adaptarse a los mercados cambiantes.
/*backtest start: 2023-11-29 00:00:00 end: 2023-12-06 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © HPotter // Simple SMA strategy // // WARNING: // - For purpose educate only // - This script to change bars colors //@version=4 strategy(title="Simple SMA Strategy Backtest", shorttitle="SMA Backtest", precision=6, overlay=true) Resolution = input(title="Resolution", type=input.resolution, defval="D") Source = input(title="Source", type=input.source, defval=close) xSeries = security(syminfo.tickerid, Resolution, Source) Length = input(title="Length", type=input.integer, defval=14, minval=2) TriggerPrice = input(title="Trigger Price", type=input.source, defval=close) BarColors = input(title="Painting bars", type=input.bool, defval=true) ShowLine = input(title="Show Line", type=input.bool, defval=true) UseAlerts = input(title="Use Alerts", type=input.bool, defval=false) reverse = input(title="Trade Reverse", type=input.bool, defval=false) pos = 0 xSMA = sma(xSeries, Length) pos := iff(TriggerPrice > xSMA, 1, iff(TriggerPrice < xSMA, -1, nz(pos[1], 0))) nRes = ShowLine ? xSMA : na alertcondition(UseAlerts == true and pos != pos[1] and pos == 1, title='Signal Buy', message='Strategy to change to BUY') alertcondition(UseAlerts == true and pos != pos[1] and pos == -1, title='Signal Sell', message='Strategy to change to SELL') alertcondition(UseAlerts == true and pos != pos[1] and pos == 0, title='FLAT', message='Strategy get out from position') possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() nColor = BarColors ? possig == -1 ? color.red : possig == 1 ? color.green : color.blue : na barcolor(nColor) plot(nRes, title='SMA', color=#00ffaa, linewidth=2, style=plot.style_line)