
Se trata de una estrategia de comercio de divisas y oro de corto período (de 1 a 5 minutos), que utiliza principalmente la relación entre el precio y el volumen en la teoría de la marea y el EMA de múltiples escalones para predecir el punto de reversión de la tendencia y realizar operaciones de seguimiento de tendencias de corto período. La estrategia es adecuada para el comercio de alta frecuencia.
Las señales de negociación de esta estrategia provienen de dos partes:
En concreto, la estrategia determina el cambio en la tendencia de la volatilidad mediante el cálculo de la EMA de la media de las transacciones en diferentes períodos (configurables). Si la EMA de un período corto atraviesa un período más largo, se considera una señal de alza; si la EMA de un período corto atraviesa un período más largo, se considera una señal de baja.
Una señal de reversión basada en el juicio de Stairstep EMA. La Stairstep EMA se refiere a la configuración de múltiples medias de EMA de diferentes parámetros, como la línea de 10 días, la línea de 20 días, la línea de 50 días, etc., para juzgar la reversión de la tendencia en función de su orden de disposición. Si el EMA de corto plazo precede a la reversión del EMA de largo plazo, indica que la tendencia se está revirtiendo.
La estrategia combinará estas dos señales para decidir la entrada. En concreto, si la relación de la cantidad es positiva y la EMA de Stairstep muestra que los EMA múltiples se han vuelto positivos, la entrada será mayor; por el contrario, si la relación de la cantidad es negativa y la EMA de Stairstep muestra que los EMA múltiples se han vuelto negativos, la entrada será nula.
Esta estrategia combina las ventajas de la media de volumen de operaciones y los EMA múltiples para mejorar la precisión y la estabilidad de la señal:
Basado en el volumen de transacciones, el precio promedio determina la relación entre el volumen y el precio, lo que puede ser más preciso que el precio simple de EMA, evitando ser engañados por las fluctuaciones de precios aumentadas.
Stairstep EMA puede aumentar la dimensión de los juicios al ordenar los diferentes parámetros de EMA, evitando el ruido de un solo EMA.
La combinación de las dos señales permite la verificación mutua y la reducción de las falsas.
Aplicable para operaciones de corto ciclo de alta frecuencia, puede aprovechar rápidamente las oportunidades de reversión en un rango pequeño.
Los parámetros de la estrategia se pueden configurar de manera flexible para adaptarse a diferentes variedades y ciclos de optimización.
La estrategia también tiene sus riesgos:
El exceso de dependencia de los indicadores técnicos puede conducir a una actitud pasiva.
Las operaciones de ciclo corto son más sensibles a los costos de transacción y requieren un control de puntos de deslizamiento y comisiones.
Los parámetros de EMA de corto período necesitan ser optimizados con frecuencia, de lo contrario pueden fallar.
La desviación de la medida del precio no necesariamente produce una reversión, existe el riesgo de error de juicio.
Los juicios de orden múltiple de la EMA no son totalmente confiables y pueden producir errores.
Respuesta:
El juicio se basa en más factores fundamentales.
Ajuste su posición para asegurarse de que el stop loss no sea demasiado grande.
Re-prueba y optimiza los parámetros regularmente.
Aumentar la tasa de éxito de las operaciones cerca de las áreas de resistencia de soporte clave.
Utilizado en combinación con otros indicadores, para la verificación multidimensional.
La estrategia también puede ser optimizada en los siguientes aspectos:
Prueba diferentes métodos de cálculo de la relación entre la cantidad y el precio para encontrar un parámetro más estable.
La EMA de Stairstep es un indicador de las tendencias de los precios de las acciones y de las ventas en el mercado de valores.
Se filtra en combinación con otras señales de indicadores, como el RSI, el MACD, etc.
Optimización de los mecanismos de detención de pérdidas, como el movimiento de la detención, la suspensión de la detención de pérdidas, etc.
Para optimizar los parámetros de acuerdo con las características de las diferentes variedades, elaborar un conjunto de parámetros adecuados para la variedad.
Aumentar los algoritmos de aprendizaje automático para entrenar modelos de juicio con datos masivos.
Explore diferentes estrategias de salida, como una salida fija, una salida de seguimiento de tendencias, etc.
Introducción de un mecanismo de parámetros de adaptación que ajuste automáticamente los parámetros según los cambios en el mercado.
Esta estrategia utiliza el valor promedio de volumen de operaciones y el EMA de Stairstep para realizar operaciones de seguimiento de tendencias de corto plazo. La estrategia tiene una alta estabilidad y precisión, pero también requiere atención al control de riesgos y la optimización de los parámetros. Puede ser una estrategia de negociación de corto plazo muy eficiente si se optimizan continuamente las pruebas y se utilizan junto con otros indicadores técnicos.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © exlux99
//@version=5
strategy("Forex Fractal EMA Scalper", overlay=true)
// Define "n" as the number of periods and keep a minimum value of 2 for error handling.
n = input.int(title="Period Fractals", defval=2, minval=2, group="Optimization Parameters")
src = input(hl2, title="Source for EMA's", group="Optimization Parameters")
len1 = input.int(10, minval=1, title="Length EMA 1", group="Optimization Parameters")
out1 = ta.ema(src, len1)
len2 = input.int(20, minval=1, title="Length EMA 2", group="Optimization Parameters")
out2 = ta.ema(src, len2)
len3 = input.int(100, minval=1, title="Length EMA 3", group="Optimization Parameters")
out3 = ta.ema(src, len3)
// UpFractal
bool upflagDownFrontier = true
bool upflagUpFrontier0 = true
bool upflagUpFrontier1 = true
bool upflagUpFrontier2 = true
bool upflagUpFrontier3 = true
bool upflagUpFrontier4 = true
for i = 1 to n
upflagDownFrontier := upflagDownFrontier and (high[n-i] < high[n])
upflagUpFrontier0 := upflagUpFrontier0 and (high[n+i] < high[n])
upflagUpFrontier1 := upflagUpFrontier1 and (high[n+1] <= high[n] and high[n+i + 1] < high[n])
upflagUpFrontier2 := upflagUpFrontier2 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+i + 2] < high[n])
upflagUpFrontier3 := upflagUpFrontier3 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+i + 3] < high[n])
upflagUpFrontier4 := upflagUpFrontier4 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+4] <= high[n] and high[n+i + 4] < high[n])
flagUpFrontier = upflagUpFrontier0 or upflagUpFrontier1 or upflagUpFrontier2 or upflagUpFrontier3 or upflagUpFrontier4
upFractal = (upflagDownFrontier and flagUpFrontier)
// downFractal
bool downflagDownFrontier = true
bool downflagUpFrontier0 = true
bool downflagUpFrontier1 = true
bool downflagUpFrontier2 = true
bool downflagUpFrontier3 = true
bool downflagUpFrontier4 = true
for i = 1 to n
downflagDownFrontier := downflagDownFrontier and (low[n-i] > low[n])
downflagUpFrontier0 := downflagUpFrontier0 and (low[n+i] > low[n])
downflagUpFrontier1 := downflagUpFrontier1 and (low[n+1] >= low[n] and low[n+i + 1] > low[n])
downflagUpFrontier2 := downflagUpFrontier2 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+i + 2] > low[n])
downflagUpFrontier3 := downflagUpFrontier3 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+i + 3] > low[n])
downflagUpFrontier4 := downflagUpFrontier4 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+4] >= low[n] and low[n+i + 4] > low[n])
flagDownFrontier = downflagUpFrontier0 or downflagUpFrontier1 or downflagUpFrontier2 or downflagUpFrontier3 or downflagUpFrontier4
downFractal = (downflagDownFrontier and flagDownFrontier)
// plotshape(downFractal, style=shape.triangledown, location=location.belowbar, offset=-n, color=#F44336, size = size.small)
// plotshape(upFractal, style=shape.triangleup, location=location.abovebar, offset=-n, color=#009688, size = size.small)
long= out1 > out2 and out2>out3 and upFractal
short= out1 < out2 and out2<out3 and downFractal
strategy.entry("long",strategy.long,when= short)
strategy.entry("short",strategy.short,when=long)
tp=input(25, title="TP in PIPS", group="Risk Management")*10
sl=input(25, title="SL in PIPS", group="Risk Management")*10
strategy.exit("X_long", "long", profit=tp, loss=sl )
strategy.exit("x_short", "short",profit=tp, loss=sl )