En la carga de los recursos... Cargando...

Estrategia de cruce de la media móvil triple

El autor:¿ Qué pasa?, Fecha: 2023-11-06 09:48:33
Las etiquetas:

img

Resumen general

La estrategia triple de cruce de promedios móviles utiliza el cruce de promedios móviles en diferentes períodos de tiempo como señales comerciales, pertenecientes a estrategias de seguimiento de tendencias.

Estrategia lógica

En primer lugar, la estrategia calcula los promedios móviles a corto plazo (default 7 días), a mediano plazo (default 25 días) y a largo plazo (default 99 días).

  1. Cuando el MA a corto plazo se cruza por encima del MA a mediano plazo, se genera una señal de compra.

  2. Cuando el MA a corto plazo se cruza por debajo del MA a mediano plazo, se genera una señal de venta.

  3. Cuando el MA a corto plazo se cruza por encima del MA a largo plazo, se genera una señal de compra rápida.

  4. Cuando el MA a corto plazo se cruza por debajo del MA a largo plazo, se genera una señal de venta rápida.

La estrategia cree que el cruce de MA a corto plazo por encima del MA a mediano plazo indica una tendencia alcista, por lo que se genera una señal de compra. Y el cruce de MA a corto plazo por debajo del MA a mediano plazo indica una tendencia bajista, por lo que se genera una señal de venta. Del mismo modo, el cruce entre el MA a corto plazo y el MA a largo plazo también genera señales comerciales rápidas para capturar los cambios de tendencia a largo plazo.

Análisis de ventajas

  • La lógica de la estrategia es simple y fácil de entender e implementar.

  • El uso de análisis de marcos de tiempo múltiples puede capturar eficazmente los cambios en las tendencias del mercado.

  • Los parámetros se pueden optimizar ajustando los períodos de admisión.

  • Las señales de cruce visual reflejan intuitivamente los cambios de tendencia.

Análisis de riesgos

  • Los MAs tienen problemas de retraso y pueden perder los puntos de inversión de tendencia.

  • Demasiadas señales falsas cuando el MA a corto plazo cruza por encima del MA a largo plazo en los mercados alcistas.

  • Demasiadas señales falsas cuando el MA a corto plazo se cruza por debajo del MA a largo plazo en los mercados bajistas.

  • Las señales de negociación rápida pueden ser demasiado sensibles, aumentando la frecuencia de negociación y las comisiones.

Los ajustes adecuados de los períodos de MA o la adición de condiciones de filtro pueden ayudar a optimizar y reducir las señales falsas.

Direcciones de optimización

  • Añadir condiciones de filtro, como generar señales solo cuando se cumplen ciertos volúmenes de negociación o porcentajes de cambio de precios.

  • Combina con otros indicadores como MACD, KDJ para evitar operaciones erróneas cuando no hay una tendencia clara.

  • Optimizar las combinaciones de períodos de MA para reducir las señales falsas.

  • Distinguir los mercados alcista y bajista, optimizar los parámetros de compra y venta por separado.

  • Considera los costos de negociación, ajusta los parámetros de negociación rápida para controlar la frecuencia.

Resumen de las actividades

La estrategia triple de cruce de MA es relativamente simple, juzgando la dirección de la tendencia a través del cruce de diferentes MAs de marcos de tiempo para generar señales comerciales. Es fácil de implementar con ajustes de parámetros flexibles para capturar los cambios de tendencia. Pero también tiene los problemas de retraso de MA y señales falsas excesivas. Métodos como agregar filtros y optimizar combinaciones de parámetros pueden mejorar la estrategia.


/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1h
basePeriod: 15m
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/
// © dadashkadir

//@version=4
strategy("Üç Hareketli Ortalama Str.", overlay=true, initial_capital=10000, commission_value=0.047, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, calc_on_order_fills=true)

kisa = input(title = "Kısa Vade - Gün", defval = 7,  minval = 1)
orta = input(title = "Orta Vade - Gün", defval = 25, minval = 1)
uzun = input(title = "Uzun Vade - Gün", defval = 99, minval = 1)

sma7  = sma(close, kisa)
sma25 = sma(close, orta)
sma99  = sma(close, uzun)

alTrend  = plot (sma7, color=#2323F1, linewidth=2, title="Har.Ort. Kısa Vade", transp=0)
satTrend = plot (sma25, color=#FF0C00, linewidth=3, title="Har.Ort. Orta Vade", transp=0)
ort99    = plot (sma99, color=#DFB001, linewidth=3, title="Har.Ort. Uzun Vade", transp=0)

zamanaralik = input (2020, title="Backtest Başlangıç Tarihi")

al  = crossover (sma7, sma25) and zamanaralik <= year
sat = crossover (sma25, sma7) and zamanaralik <= year

hizlial = crossover (sma7, sma99) and zamanaralik <= year
hizlisat = crossover (sma99, sma7) and zamanaralik <= year

alkosul  = sma7 >= sma25
satkosul = sma25 >= sma7

hizlialkosul  = sma7 >= sma99
hizlisatkosul = sma99 >= sma7

plotshape(al,  title = "Buy",  text = 'Al',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sat, title = "Sell", text = 'Sat', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

plotshape(hizlial,  title = "Hızlı Al",  text = 'Hızlı Al',  style = shape.labelup,   location = location.belowbar, color= color.blue, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(hizlisat, title = "Hızlı Sat", text = 'Hızlı Sat', style = shape.labeldown, location = location.abovebar, color= #6106D6 , textcolor = color.white, transp = 0, size = size.tiny)

fill (alTrend, satTrend, color = sma7 >= sma25? #4DFF00 : #FF0C00, transp=80, title="Al-Sat Aralığı")
//fill (ort99, satTrend, color = sma7 >= sma25? #6106D6 : color.blue, transp=80, title="Hızlı Al-Sat Aralığı")

if (al)
    strategy.entry("LONG", strategy.long)
if (sat)
    strategy.entry("SHORT", strategy.short)
//if (hizlial)
//    strategy.entry("My Short Entry Id", strategy.long)
//if (hizlisat)
//    strategy.entry("My Short Entry Id", strategy.short)    

Más.