
La estrategia utiliza una doble línea de la media de la EMA para formar señales de horquilla dorada y horquilla muerta, junto con el indicador ATR para determinar la volatilidad del mercado y lograr una estrategia de seguimiento de tendencias de compra y venta. Cuando la línea de la horquilla dorada es lenta y el indicador ATR es inferior al día anterior, se considera una señal de más; cuando la línea de la horquilla dorada es lenta y el indicador ATR es superior al día anterior, se considera una señal de vacío.
Utiliza una línea media de doble EMA de 20 y 55 de longitud. Se considera una señal de cabeza vacía cuando se produce un tenedor dorado al atravesar una línea lenta en la línea rápida; se considera una señal de cabeza vacía cuando se produce un tenedor muerto al atravesar una línea lenta bajo la línea rápida.
El indicador ATR refleja la volatilidad y el nivel de riesgo del mercado. Cuando el ATR es inferior al día anterior, indica que la volatilidad del mercado se ha reducido y es adecuado para una mayor intervención; cuando el ATR es superior al día anterior, indica que la volatilidad del mercado se ha incrementado y es adecuada para una intervención de baja.
Solo haga más en la línea rápida de la horca dorada y el ATR es menor que el día anterior; solo haga vacío en la línea rápida de la horca muerta y el ATR es mayor que el día anterior. Evite intervenir fácilmente cuando el mercado es más volátil.
El indicador ATR también se utiliza para establecer el nivel de pérdida y el nivel de parada. El nivel de parada es el precio actual menos el ATR multiplicado por el multiplicador de la parada; el nivel de parada es el precio actual más el ATR multiplicado por el multiplicador de la parada.
El multiplicador de stop-loss es 3 veces el ATR por defecto, y el multiplicador de stop-loss es 3 veces el ATR por defecto. Esto permite que el stop-loss y el stop-loss sigan dinámicamente las fluctuaciones del mercado.
El uso de un sistema de doble línea media proporciona una confirmación más fuerte de los juicios sobre el estado de vacío. Evita ser engañado por los falsos avances comunes en el mercado.
La introducción del indicador ATR, que permite que la estrategia intervenga solo cuando hay baja volatilidad, puede filtrar muchas señales falsas y reducir el riesgo del sistema.
El ATR permite que el stop loss se ajuste al nivel de fluctuación del mercado. Evite que el stop loss se acerque demasiado o que el stop stop se quede a flote.
Se puede configurar si se utiliza el cruce equilátero como mecanismo de salida adicional. Se puede optimizar aún más los resultados de pérdidas del sistema.
Se puede establecer un nivel de stop loss y stop loss dinámico en función del ATR, más en consonancia con la lógica de comercio de tendencias, el stop loss no es demasiado sensible y el stop loss no es demasiado flexible.
El sistema de doble línea determina que hay un cierto retraso en la señal. Puede perderse una tendencia a corto plazo más fuerte.
Cuando hay una alta volatilidad, el ATR se eleva y puede perder el momento de intervención. Se debe ajustar el parámetro ATR de manera adecuada.
En las posiciones a largo plazo, los puntos de parada pueden ser demasiado cercanos, y se debe combinar con una relajación adecuada de la fuerza de la tendencia.
El sistema de línea media es menos eficaz para evaluar la curvatura de la escena. Debe ser confirmado con otros indicadores.
Los parámetros de ATR deben ajustarse según los diferentes ciclos de las diferentes variedades. La selección incorrecta de los parámetros puede afectar a los beneficios del sistema.
Se pueden probar combinaciones de medias de diferentes longitudes para encontrar medias que mejor se ajusten a las características de tendencia de la variedad.
Se pueden introducir otros indicadores, como MACD, KD, etc., para confirmar la señal de cruce de línea media y mejorar la Entscheidungssicherheit.
Se pueden optimizar los parámetros ATR a través de la retroalimentación para que se ajusten mejor a la estabilidad de fluctuación de la variedad.
Se puede configurar el factor ATR como una variable ajustable para ajustar dinámicamente la posición de la parada de pérdidas según la fuerza de la tendencia.
Se puede combinar con un indicador de intensidad de la tendencia para reducir los requisitos de stop loss cuando la tendencia no es fuerte y aumentar los requisitos de stop loss cuando la tendencia es fuerte.
La estrategia integra la determinación de tendencias de las líneas medias de doble EMA y el control de riesgos de los indicadores de volatilidad ATR, formando un sistema de seguimiento de tendencias más completo. El enfoque de la optimización de la estrategia es ajustar la línea media y los parámetros ATR para que se ajusten mejor a las características de la variedad, y diseñar mecanismos de stop loss dinámicos para seguir los cambios en la fuerza de la tendencia.
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// **********************************************
// PtahX EMA/ATR Strategy Public Release
// EMA Strategy with ATR & "Fear Factor" built in
// written by PtahX October 2019
// * modifications welcome
// * please let me know if you improve it so I can continue to learn :)
// * use at your own risk - I'm a new programmer and still learning
// * Best of luck on your trades!!
// Take Profit (TP) option based on ATR or MA Crossover
//***********************************************
strategy(title="PtahX EMA/ATR Strategy", overlay=true, pyramiding=1, calc_on_every_tick=true, default_qty_value=1, initial_capital=10000, slippage=2)
//*****************************
// Global Inputs
//*****************************
fastMA = input(title="Fast Moving Average", defval=20, step=1)
slowMA = input(title="Slow Moving Average", defval=55, step=1)
source = input(close, title="Source")
atrLength = input(title="ATR Length", defval=14, minval=7, step=1)
slMultiplier = input(title="Stop Loss Multiple", type=input.float, defval=3, minval=1, step=0.2)
tpMultiplier = input(title= "Take Profit Multiple", type=input.float, defval=3, minval=1, step=0.2)
maPlot = input(true, title="Plot EMA?")
maCrossoverExit = input(false, title="Exit with Slow MA Crossover?")
atrExit = input(true, title="Exit with ATR?")
//***********************************
// ATR
//***********************************
atr = atr(atrLength)
//***********************************
// Volatility Filter
//**********************************
// During uptrends the ATR indicator tends to post lower volatility.
// During downtrends, the ATR indicator tends to post higher volatility
volatilityBullish = atr < atr[1]
volatilityBearish = atr > atr[1]
//***********************************
// Moving Averages
//***********************************
// Double Line Plot Code (used for Entries & Exits not plotted by default)
fast = ema(source, fastMA)
slow = ema(source, slowMA)
maLong = crossover(fast, slow)
maShort = crossunder(fast, slow)
// Single Line Plot Code
bullish = slow > slow[1]
bearish = slow < slow[1]
barColor = bullish ? color.green : bearish ? color.red : color.blue
//*****************************
// Entries
//*****************************
entryLong = maLong and volatilityBullish
entryShort = maShort and volatilityBearish
if entryLong
sLoss = source - atr * slMultiplier
strategy.entry("Long", strategy.long, qty=10)
strategy.exit("Long Exit", "Long", stop=sLoss)
if entryShort
sLoss = source + atr * slMultiplier
tProfit = close > slowMA
strategy.entry("Short", strategy.short, qty=10)
strategy.exit("Short Exit", "Short", stop=sLoss)
//*****************************
// Exits
//*****************************
exitLong = 0
exitShort = 0
if maCrossoverExit
exitLong = maShort
exitShort = maLong
strategy.exit("Long Exit", "Long", when = exitLong)
strategy.exit("Short Exit", "Short", when = exitShort)
if atrExit
exitLong = source + atr * tpMultiplier
exitShort = source - atr * tpMultiplier
strategy.exit("Long Exit", "Long", limit = exitLong)
strategy.exit("Short Exit", "Short", limit = exitShort)
//******************************
// ATR Based Exit/ Stop Plotting
//******************************
// Stop Loss Calculations
longStopLoss = source - atr(atrLength) * slMultiplier
shortStopLoss = source + atr(atrLength) * slMultiplier
longTakeProfit = source - atr(atrLength) * slMultiplier
shortTakeProfit = source + atr(atrLength) * slMultiplier
//*********************************
//Chart Plotting
//*********************************
//ATR Based Stop Losses
plot(shortStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Short Stop Loss")
plot(longStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Long Stop Loss")
// Single Slow EMA Option
plot(slow and maPlot ? slow : na, title="EMA", color=barColor, linewidth=3)