
La estrategia utiliza una combinación de indicadores de medias móviles de doble índice (EMA) y puntos de intersección de medias móviles (MACD) para descubrir la sobrevaloración del valor a corto plazo de las acciones y hacer una línea corta para obtener ganancias en el proceso de caída de los precios de las acciones. La estrategia aprovecha al máximo las características de los cambios de precio de reacción rápida de los EMA, combinadas con la ventaja de que el MACD monitorea la tendencia de los vientos móviles, para capturar oportunidades de ganancias a corto plazo en los puntos de conversión de los alcistas y bajistas.
Calcular el EMA de 8 días y el EMA de 26 días, cuando el EMA de 8 días lleva el EMA de 26 días, se considera una señal de compra.
El MACD se compone de un EMA de 12 días, un EMA de 26 días y un EMA de 9 días de diferencia entre el DEA y el MACD, y se considera una señal de compra cuando el MACD atraviesa el DEA.
Condiciones de compra: EMA de 8 días> EMA de 26 días y MACD sobre el DEA, hacer más cuando se satisface.
Condiciones de salida: establezca un stop loss flotante del 3% del precio de entrada y un stop loss de seguimiento del 1% del precio de entrada, y cierre la posición cuando se cumpla cualquiera de las condiciones.
La estrategia utiliza al mismo tiempo las características del EMA de respuesta rápida al precio y el MACD para determinar la dirección de la dinámica y la dirección de la operación en los puntos clave de los cambios de tendencia alcista y bajista. El EMA rápido refleja la corrección de los valores de los EMA más lentos en el corto plazo, el MACD refleja el pronóstico de los cambios en la intensidad de las operaciones en la dirección de la línea de la mediana, y el doble indicador mejora la precisión para determinar el momento de la operación.
La combinación de EMA y MACD mejora la precisión de la determinación de puntos de compra y venta. El EMA capta la tendencia de los cambios en los precios y el MACD determina la dirección de los cambios en la dinámica, ambos en combinación con la identificación del extremum a corto plazo, para evitar pérdidas por brechas falsas.
Seguimiento de los riesgos de control de pérdidas, salida de pérdidas a tiempo. Establezca un seguimiento de pérdidas del 1% después de la entrada para evitar que las pérdidas se expandan.
La estrategia se repite en todo el mercado bajista de 2022, simulando el entorno de las operaciones reales.
Ajuste de parámetros flexibles. Se puede personalizar el porcentaje de pérdidas y el porcentaje de posiciones para que coincida con las preferencias de riesgo personales.
Las transacciones son frecuentes y deben ser seguidas de cerca. El uso de un ciclo de 5 minutos, con entradas y salidas frecuentes, requiere suficiente tiempo para seguir las transacciones.
El seguimiento de la parada de pérdidas puede ser demasiado intenso. El seguimiento de la parada de pérdidas está configurado demasiado pequeño y puede detener la parada de pérdidas demasiado pronto.
El EMA y el MACD son más adecuados para mercados con tendencias más evidentes.
Se deben tener en cuenta los costos de las transacciones. Cada transacción corresponde a una comisión, y la frecuencia de las transacciones puede aumentar los costos.
Ajustar los parámetros del ciclo EMA para optimizar el tiempo de compra y venta. Se puede probar acortar los ciclos rápidos de EMA, ampliar las diferencias entre EMA y encontrar la combinación óptima de parámetros.
Optimización de la proporción de pérdidas, reduciendo el riesgo de pérdidas prematuras. Disminuir adecuadamente la amplitud de las pérdidas de seguimiento y evitar que las pérdidas de seguimiento sean demasiado radicales.
Prueba diferentes períodos de tenencia, selecciona el período de tenencia óptimo. Evalúa la rentabilidad de la estrategia bajo diferentes períodos de tenencia y encuentra el período de tenencia óptimo.
Evaluar la adición de otras señales de filtro de indicadores técnicos. Se puede probar la adición de indicadores de volatilidad, etc., para mejorar la eficacia de las decisiones comerciales.
Esta estrategia de comercio de indicadores de doble línea media EMA y MACD, está diseñada para capturar oportunidades de retorno a corto plazo en el precio de las acciones y obtener ganancias por descubierto. Aprovecha al máximo las ventajas de la respuesta rápida de EMA y los cambios en el juicio del MACD para mejorar la precisión del momento de negociación bajo doble verificación. El espacio para optimizar la estrategia está en el ajuste de parámetros, control de deslizamiento y tiempo de tenencia de posiciones, etc.
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
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/
// © Coinrule
//@version=5
// strategy('Fast EMA above Slow EMA with MACD (by Coinrule)',
// overlay=true,
// initial_capital=1000,
// process_orders_on_close=true,
// default_qty_type=strategy.percent_of_equity,
// default_qty_value=30,
// commission_type=strategy.commission.percent,
// commission_value=0.1)
showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0
// EMAs
fastEMA = ta.ema(close, 8)
slowEMA = ta.ema(close, 26)
plot(fastEMA, color = color.blue)
plot(slowEMA, color = color.green)
//buyCondition1 = ta.crossover(fastEMA, slowEMA)
buyCondition1 = fastEMA > slowEMA
// DMI and MACD inputs and calculations
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)
buyCondition2 = ta.crossover(macd, macd_signal)
// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01
// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
stopValue = close * (1 - longTrailPerc)
math.max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if strategy.position_size < 0
stopValue = close * (1 + shortTrailPerc)
math.min(stopValue, shortStopPrice[1])
else
999999
if (buyCondition1 and buyCondition2 and notInTrade and timePeriod)
strategy.entry(id="Long", direction = strategy.long)
strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)
//if (sellCondition1 and sellCondition2 and notInTrade and timePeriod)
//strategy.close(id="Close", when = sellCondition1 or sellCondition2)