Esta estrategia es una estrategia típica de seguimiento de tendencias de EMA. Utiliza EMA rápido y EMA lento para determinar que el mercado ha entrado en una tendencia alcista, utiliza EMA rápido y EMA lento para determinar que el mercado ha entrado en una tendencia bajista y, en consecuencia, hace más caídas.
La lógica central de esta estrategia es la siguiente:
Mediante el cálculo de diferentes velocidades de EMA, se puede identificar eficazmente los cambios en la tendencia del mercado. Los EMA rápidos son más sensibles a los cambios en los precios, lo que favorece la detección temprana de nuevas tendencias. Los EMA lentos pueden filtrar las señales falsas y asegurar que la tendencia ha sido confirmada.
Cuando se producen dos EMAs, indica que el precio comienza a subir continuamente y debe establecerse en varias direcciones; cuando se producen forquillas muertas, el precio comienza a caer continuamente y debe establecerse en la dirección de la brecha. Al salir de la posición actual mediante el nuevo forquillo muerto de la EMA rápida, se puede detener la pérdida a tiempo para evitar la expansión de la pérdida.
Cómo hacer frente a esto:
La estrategia puede ampliarse y optimizarse en los siguientes aspectos:
Optimización automática de los parámetros de EMA mediante métodos de aprendizaje automático para mejorar la adaptabilidad de los parámetros
Aumentar el ajuste de posiciones de tenencia basado en la volatilidad, ajustando las posiciones de acuerdo con la volatilidad del mercado
Combinado con el índice de oscilación de la puntuación para determinar el momento de ajuste local para optimizar el punto de entrada
Aumentar las estrategias de stop loss, como el stop loss móvil y el stop loss ajustado después de obtener ganancias
Estudiar los cambios en el volumen de transacciones para determinar los flujos de entrada y salida de fondos, ayudando a determinar las tendencias
Combinación con otras combinaciones de estrategias no relevantes, reducción de retrocesos y mejora de la estabilidad de los ingresos en general
La estrategia de seguimiento de tendencias de la EMA es una estrategia de seguimiento de tendencias sencilla y práctica. Utiliza la tendencia de la línea media larga de seguimiento de la EMA lenta y rápida para determinar el momento de entrada a través de la horquilla dorada de la EMA. La estrategia es fácil de implementar y puede ampliarse y optimizarse en múltiples dimensiones para adaptarse a más entornos de mercado.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 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/
// © HomoDeus666
//@version=5
strategy("EMA12/26 with date backtest range (BTCpair)", overlay=true,initial_capital = 1,commission_type = strategy.commission.percent,currency = currency.BTC)
//input date and time
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2021"),
title="Start Date", group="Backtest Time Period",
tooltip="This start date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Jan 2022"),
title="End Date", group="Backtest Time Period",
tooltip="This end date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
//check date and time option
inTradeWindow = true
/// plot and indicator
fastEMA = ta.ema(close,12), slowEMA=ta.ema(close,26)
plot(fastEMA,color=color.green,linewidth = 2)
plot(slowEMA,color=color.red,linewidth=2)
//entry when condition
longCondition = ta.crossover(fastEMA,slowEMA)
if (longCondition) and inTradeWindow
strategy.entry("buy", strategy.long)
if ta.crossunder(ta.ema(close, 12), ta.ema(close, 26)) and inTradeWindow
strategy.close("buy")
// trades and cancel all unfilled pending orders
if not inTradeWindow and inTradeWindow[1]
strategy.cancel_all()
strategy.close_all(comment="Date Range Exit")