La estrategia de oscilación de precios de la EMA doble juzga el sentimiento y el impulso del mercado mediante el cálculo de la diferencia entre dos EMA de períodos diferentes.
La estrategia es simple y fácil de usar, juzgando el impulso y la dirección del mercado a través de la diferencia EMA. Sin embargo, también tiene cierto retraso y no puede capturar puntualmente los puntos de inflexión.
El indicador central de la estrategia de oscilación de precios de la doble EMA es el APO, es decir, el oscilador de precios absoluto, que representa la diferencia entre dos EMA.
APO = EMA(short period) − EMA(long period)
Específicamente, la APO en esta estrategia se calcula como:
xShortEMA = ema(close price, LengthShortEMA)
xLongEMA = ema(close price, LengthLongEMA)
xAPO = xShortEMA − xLongEMA
Donde LengthShortEMA y LengthLongEMA representan las longitudes de ciclo de las EMA a corto y a largo plazo, respectivamente.
Varias reglas clave de juicio de APO:
Determinar el sentimiento del mercado y el momento de entrada basándose en el valor en tiempo real de APO.
La doble estrategia de oscilación de precios de la EMA tiene las siguientes ventajas principales:
La doble estrategia de oscilación de precios de la EMA también tiene algunos riesgos, principalmente en:
Podemos hacer frente y reducir estos riesgos aplicando un stop loss razonable para reducir pérdidas individuales; optimizando los parámetros para adaptar los ciclos; combinando otros indicadores para filtrar las señales y mejorar la estabilidad de la estrategia.
La doble estrategia de oscilación de precios de la EMA se puede optimizar en los siguientes aspectos:
En resumen, la Estrategia de Oscilación de Precios de la EMA Doble juzga el sentimiento del mercado calculando la diferencia APO entre dos EMA. La señal de estrategia es simple y práctica, pero también tiene algunos inconvenientes. Podemos optimizarla a través de la sintonización de parámetros, la adición de filtros, la configuración de paradas y más. Fácil de usar para principiantes, también con un gran potencial de expansión. Adecuado para que los estudiantes de comercio cuántico estudien y apliquen.
/*backtest start: 2023-02-19 00:00:00 end: 2024-02-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 30/05/2017 // The Absolute Price Oscillator displays the difference between two exponential // moving averages of a security's price and is expressed as an absolute value. // How this indicator works // APO crossing above zero is considered bullish, while crossing below zero is bearish. // A positive indicator value indicates an upward movement, while negative readings // signal a downward trend. // Divergences form when a new high or low in price is not confirmed by the Absolute Price // Oscillator (APO). A bullish divergence forms when price make a lower low, but the APO // forms a higher low. This indicates less downward momentum that could foreshadow a bullish // reversal. A bearish divergence forms when price makes a higher high, but the APO forms a // lower high. This shows less upward momentum that could foreshadow a bearish reversal. // // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="Absolute Price Oscillator (APO) Backtest", shorttitle="APO") LengthShortEMA = input(10, minval=1) LengthLongEMA = input(20, minval=1) reverse = input(false, title="Trade reverse") hline(0, color=gray, linestyle=line) xPrice = close xShortEMA = ema(xPrice, LengthShortEMA) xLongEMA = ema(xPrice, LengthLongEMA) xAPO = xShortEMA - xLongEMA pos = iff(xAPO > 0, 1, iff(xAPO < 0, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(xAPO, color=blue, title="APO")