
Esta estrategia utiliza dos indicadores para generar señales de negociación: la media móvil del índice 20⁄20 y el indicador de reversión del rango de fluctuación real promedio. Combina el seguimiento de la tendencia y la reversión a corto plazo, dos ideas estratégicas que buscan encontrar oportunidades de reversión.
La estrategia tiene dos partes:
2⁄20 Moving Average. Calcula la media móvil del índice de los últimos 20 días y genera una señal de negociación cuando los precios se mueven desde arriba hacia abajo o desde abajo hacia la media móvil.
El indicador de reversión del rango de fluctuación real promedio. Se basa en el rango de fluctuación real promedio del precio para calcular el punto de parada, y genera una señal cuando el precio supera ese punto de parada. Se utiliza 3.5 veces el ATR como punto de parada.
Esta estrategia integra las dos señales. Cuando el 2⁄20 EMA produce una señal de múltiples cabezas y el ATR se vuelve a producir una señal de cabezas vacías, hacer vacío; cuando el 2⁄20 EMA produce una señal de cabezas vacías y el ATR se vuelve a producir una señal de múltiples cabezas, hacer más.
Esta estrategia combina el seguimiento de la tendencia y la reversión, con el objetivo de detectar oportunidades de reversión de los precios. Las ventajas concretas son:
2⁄20 La EMA puede identificar tendencias intermedias y evitar ser engañada por el ruido del mercado.
El indicador de reversión ATR capta las reversiones de precios a corto plazo y aprovecha las oportunidades de reversión.
La combinación de ambas señales permite capturar el cambio de tendencia a mediano plazo con anticipación, lo que aumenta la probabilidad de obtener ganancias.
La configuración del Stop Loss ATR es más razonable y tiene un cierto efecto de control de riesgo.
Se puede personalizar el coeficiente ATR para adaptarse a las características de las diferentes variedades.
Se puede optar por el comercio a la derecha o a la izquierda, para diferentes situaciones.
La estrategia también tiene los siguientes riesgos:
2⁄20 El parámetro EMA es más lento, puede haber perdido la oportunidad de una línea corta.
El stop ATR es fácil de romper, por lo que se debe relajar el stop adecuadamente.
Un solo indicador puede generar señales erróneas y debe combinarse con más factores para filtrar.
El número de transacciones es importante para evitar que sea demasiado frecuente.
Se requiere optimización de parámetros y retroalimentación para confirmar la idoneidad de la variedad.
Se requiere un control estricto de la gestión de fondos y el control de los riesgos individuales.
La estrategia se puede optimizar en los siguientes aspectos:
Ajustar los parámetros de EMA para encontrar la combinación óptima de parámetros
Optimización del tamaño del multiplicador ATR para equilibrar el stop loss
Aumentar las condiciones de filtración, combinando indicadores como la tasa de cambio y la volatilidad
Agrega un módulo de gestión de fondos y ajusta posiciones dinámicamente
Aumentar las estrategias de parada de pérdidas, como la salida de Chandelier
Prueba de los diferentes parámetros para encontrar la combinación óptima
Un modelo de aprendizaje automático para mejorar el rendimiento de los grandes datos
Combinación de varias estrategias para descubrir más Alfa
La estrategia integra dos ideas principales y tiene cierta capacidad de captar la reversión del precio. Pero también existe el riesgo de una selección incorrecta de parámetros. Se puede mejorar aún más la estabilidad y la rentabilidad de la estrategia optimizando la estrategia de parada de pérdidas, aumentando las condiciones de filtración, etc.
/*backtest
start: 2022-10-27 00:00:00
end: 2023-11-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 05/04/2022
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// Average True Range Trailing Stops Strategy, by Sylvain Vervoort
// The related article is copyrighted material from Stocks & Commodities Jun 2009
// Please, use it only for learning or paper trading. Do not for real trading.
//
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
pos = 0.0
xPrice = close
xXA = ta.ema(xPrice, Length)
nHH = math.max(high, high[1])
nLL = math.min(low, low[1])
nXS = nLL > xXA or nHH < xXA ? nLL : nHH
iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
pos := nXS > close[1] ? -1 : iff_1
pos
ATRR(nATRPeriod,nATRMultip) =>
pos = 0.0
xATR = ta.atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop = 0.0
xATRTrailingStop := close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), close - nLoss) :
close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), close + nLoss) :
close > nz(xATRTrailingStop[1], 0) ? close - nLoss : close + nLoss
pos:= close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0) ? 1 :
close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0)
pos
strategy(title='Combo 2/20 EMA & Average True Range Reversed', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Average True Range Reversed ═════●'
nATRPeriod = input.int(5, group=I2)
nATRMultip = input.float(3.5, group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosATRR = ATRR(nATRPeriod,nATRMultip)
iff_1 = posEMA20 == -1 and prePosATRR == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosATRR == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
strategy.entry('Long', strategy.long)
if possig == -1
strategy.entry('Short', strategy.short)
if possig == 0
strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)