
La estrategia de movimiento de la mediana es una estrategia de seguimiento de la tendencia que se basa en la construcción de la mediana móvil en varios períodos diferentes. La estrategia tiene en cuenta varios factores de ciclo de tiempo para filtrar el ruido del mercado y capturar las principales tendencias.
La estrategia consiste en introducir las líneas medias de los EMA de diferentes períodos, como los EMA de 3 períodos, 7 períodos y 13 períodos, y dibujarlas en un gráfico de precios para formar un canal poliédrico. Se generan múltiples señales cuando el precio atraviesa varias líneas medias de los EMA; se generan señales de vacío cuando el precio atraviesa varias líneas medias de los EMA.
En el código, se determina la señal de descenso mediante close>ema1 and ema1>ema2 and ema2>ema3, close
La mayor ventaja de esta estrategia es que puede capturar de manera efectiva la dirección de las principales tendencias, utilizar varias líneas de movimiento para construir un mecanismo de filtración, evitar el impacto del ruido a corto plazo del mercado y reducir las falsas señales. El stop loss móvil permite detener los pérdidas a tiempo para proteger las ganancias.
El principal riesgo de esta estrategia reside en la imposibilidad de definir los puntos de inflexión de la tendencia, que pueden generar pérdidas en la lucha contra el disco cuando la tendencia se invierte. Además, la configuración incorrecta de la combinación de líneas medias también puede causar una frecuencia de negociación excesiva o un retraso en la señal.
La estrategia puede ser optimizada en los siguientes aspectos:
Optimización de los parámetros periódicos de la media móvil para encontrar la mejor combinación de parámetros
Añadir indicadores de señales de reversión como RSI, MACD, etc. en los puntos de cambio de tendencia para detener el daño en el momento oportuno
Optimización de la amplitud de la parada móvil y los valores de desviación para reducir la probabilidad de que la parada se active
Optimización para diferentes parámetros de variedad, mejorando la adaptabilidad de la estrategia
La estrategia de movimiento de la línea media horizontal es una estrategia de seguimiento de tendencias fiable y efectiva. Su mayor ventaja es que capta la dirección de la tendencia principal y al mismo tiempo puede filtrar el ruido de manera significativa. Pero también hay ciertos problemas con la identificación de la falta de reversión.
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 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/
// © Crypto-Oli
//@version=4
strategy("BLANK Strategy + TSL", initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, pyramiding=1, commission_value=0.075, overlay=true)
////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
////////////////////////////////////////////////////////////////////////////////
/// YOUR INPUTS BELOW - DELET EXAPLES ///
ema1=ema(close,input(3))
ema2=ema(close,input(7))
ema3=ema(close,input(13))
/// PLOTS IF YOU NEED BELOW - DELET EXAPLES ///
plot(ema1, "EMA1", color.yellow)
plot(ema2, "EMA2", color.white)
plot(ema3, "EMA3", color.blue)
/// YOUR CONDITIONS BELOW - DELET EXAPLES ///
longCondition = close>ema1 and ema1>ema2 and ema2>ema3 and time_cond
shortCondition = close<ema1 and ema1<ema2 and ema2<ema3 and time_cond
/// EXECUTION ///
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", "Long", trail_points = close * 0.05 / syminfo.mintick, trail_offset = close * 0.02 / syminfo.mintick)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", "Short", trail_points = close * 0.05 / syminfo.mintick, trail_offset = close * 0.02 / syminfo.mintick)