
La estrategia de seguimiento de tendencias de triple EMA es una estrategia muy adecuada para seguir las tendencias del mercado. Utiliza tres EMA de diferentes períodos como una señal de construcción de posición, para establecer posiciones de más o de menos en caso de una plena confirmación de la tendencia.
La ventaja de esta estrategia es que reduce las señales falsas y asegura que la tendencia se mantenga en su máxima intensidad para luego entrar. Además, cuenta con un sistema de stop loss adaptativo que puede seguir el stop loss en función de la volatilidad del mercado, con lo que se obtiene un mejor efecto de gestión del riesgo.
La estrategia utiliza los tres EMAs de los períodos 7, 14 y 21 como indicadores de señales de posición. La lógica específica es hacer más cuando el precio cruza los tres EMAs al mismo tiempo; hacer menos cuando el precio cruza los tres EMAs al mismo tiempo.
Este diseño reduce las señales falsas y asegura que las tendencias sean lo suficientemente claras como para entrar en juego. Al mismo tiempo, los tres ciclos EMA se configuran correctamente para capturar la tendencia del mercado a tiempo.
La estrategia utiliza un sistema de stop-loss adaptativo basado en el ATR y la retirada máxima. Calcula la volatilidad de los precios en tiempo real y establece una línea de stop-loss en función de ella. En concreto, se calcula un determinado múltiplo del ATR como zona de amortiguamiento de stop-loss.
Durante el alza, la línea de pérdida se mueve con la nueva alza alta, con un buen efecto de seguimiento. Cuando el precio retrocede a la zona baja de la protección, la línea de pérdida se activa, la pérdida de liquidación. Esto puede controlar el riesgo de pérdida de acuerdo con las condiciones específicas del mercado.
La estrategia utiliza un método de parada de proporción fija. Una vez abierta la posición, se establece una línea de parada de una proporción determinada por encima del precio de entrada. Cuando el precio se eleva hasta la línea de parada, se toma la iniciativa de liquidar la posición.
La ventaja de este stop-loss de proporción fija es que se puede predecir el beneficio objetivo y salir satisfecho cuando se alcanza. Al mismo tiempo, se evita el riesgo de que el precio vuelva a caer. El stop-loss se puede ajustar según sea necesario.
Se puede combinar un indicador de tendencia para evitar una posición ciega en una situación de crisis; también se puede usar un stop-loss móvil o un ratio de pérdidas y ganancias para que el stop-loss sea más flexible. En general, todavía se necesita un juicio artificial para que la estrategia funcione.
La estrategia también puede ser optimizada en los siguientes aspectos:
Utiliza más indicadores para determinar el momento de entrada, como MACD, KD, etc., para evitar ser atrapado en situaciones de crisis.
Si no se puede hacer esto, el sistema de frenado puede ser más flexible, por ejemplo, moviendo el frenado o haciendo que el frenado sea más flexible.
La inclusión de un mecanismo de seguimiento a la baja en el modo de detención de pérdidas permite controlar el riesgo al volver a rastrear los puntos más bajos si el precio cae nuevamente.
Ajustar los parámetros del ciclo EMA según las características de las diferentes variedades para optimizar el juicio de las tendencias.
El módulo de administración de posiciones agregado permite ajustar las posiciones individuales en función de la proporción de uso de los fondos.
La estrategia de seguimiento de tendencias de triple EMA es una estrategia de seguimiento de tendencias muy práctica. Tiene una gran capacidad de juicio de tendencias, al mismo tiempo que tiene un mecanismo de detención y pérdida adaptativo, que puede administrar automáticamente los pedidos. Desde el punto de vista de la optimización, los sistemas de detención y pérdida pueden perfeccionarse aún más, lo que les permite adaptarse a las condiciones del mercado en tiempo real.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-06-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(shorttitle='Three EMAs Trend-following Strategy',title='Three EMAs Trend-following Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)
//Backtest dates
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
ema_1 = ema(close, input(7))
ema_2 = ema(close, input(12))
ema_3 = ema(close, input(21))
Take_profit= ((input (4))/100)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)
length = input(20, "Length", minval = 2)
src = input(close, "Source")
factor = input(3.0, "Multiplier", minval = 0.25, step = 0.25)
volStop(src, atrlen, atrfactor) =>
var max = src
var min = src
var uptrend = true
var stop = 0.0
atrM = nz(atr(atrlen) * atrfactor, tr)
max := max(max, src)
min := min(min, src)
stop := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src)
uptrend := src - stop >= 0.0
if uptrend != nz(uptrend[1], true)
max := src
min := src
stop := uptrend ? max - atrM : min + atrM
[stop, uptrend]
[vStop, uptrend] = volStop(src, length, factor)
go_long = crossover(close, ema_1) and crossover(close, ema_2) and crossover(close, ema_3)
closeLong = close > longTakeProfit or crossunder(close, vStop)
//Entry
strategy.entry(id="long", long = true, when = go_long and window())
//Exit
strategy.close("long", when = closeLong and window())
plot(vStop,"Vstop", color.black, linewidth=2)
plot(ema_1,"EMA Short", color.green, linewidth=1)
plot(ema_2,"EMA Mid", color.purple, linewidth=1)
plot(ema_3,"EMA Long", color.red, linewidth=1)