
Descripción general
La estrategia utiliza el cruce de la línea media de dos EMAs como señal de negociación, con un ciclo de línea rápida de 65 y un ciclo de línea lenta de 240. Al mismo tiempo, se utiliza el volumen de transacciones como condición de filtro, y solo se realiza una transacción si el volumen de transacciones en curso es mayor que el umbral especificado. La estrategia establece un monto de riesgo fijo por cada transacción (de $ 10) y calcula el tamaño de la posición de forma dinámica en función del monto de riesgo.
Principio de estrategia
- Calcule dos EMA de media línea, la línea rápida (ema_fast) tiene un ciclo de 65, y la línea lenta (ema_slow) tiene un ciclo de 240.
- Determine si se ha producido un cruce alcista o un cruce bajista.
- Establezca un umbral de volumen (volume_threshold) y solo realice transacciones si el volumen actual es mayor que ese umbral.
- Se establece un monto de riesgo fijo por operación de $10.
- El tamaño de la posición se calcula en función de la cantidad de riesgo y la distancia de stop_loss.
- Cuando se produce una cruce de varios jefes y el volumen de transacción cumple con las condiciones, se abre más posiciones, el stop loss se establece a \( 100 por debajo del precio de apertura y el stop loss se establece a \) 1500 por encima del precio de apertura.
- Cuando se produce un cruce de cabeza vacía y el volumen de transacción cumple con las condiciones, se abre la posición, el stop loss se establece por encima del precio de apertura de la posición de \( 100 y el stop loss se establece por debajo del precio de apertura de la posición de \) 1500.
Ventajas estratégicas
- El cruce bidireccional capta mejor las tendencias del mercado, y la combinación de 65⁄240 puede filtrar la mayor parte del ruido y centrarse solo en las tendencias principales.
- La introducción de filtros de volumen de transacciones evita el riesgo de fluctuaciones en el mercado cuando el volumen de transacciones es bajo.
- La administración de posiciones con un monto de riesgo fijo permite controlar eficazmente el riesgo de cada operación y evitar pérdidas excesivas en una sola operación.
- La configuración dinámica de stop loss y stop loss basada en la distancia del precio permite que el espacio de ganancia sea mayor que el espacio de pérdida, lo que mejora el rendimiento a largo plazo de la estrategia.
- Se aplica a variedades altamente volátiles como BTC/USD, que pueden capturar plenamente las oportunidades de inversión generadas por su volatilidad.
Riesgo estratégico
- La EMA, como indicador de seguimiento de tendencias, tiene problemas de retraso cuando la tendencia se invierte, lo que puede provocar entradas o salidas tardías.
- Los montos de riesgo fijos pueden no adaptarse dinámicamente a las fluctuaciones del mercado y no funcionar bien en situaciones extremas (como la caída de una tormenta).
- La configuración de los umbrales de entrega tiene cierta subjetividad, y la configuración incorrecta de los umbrales puede afectar la eficacia de la estrategia.
- Los paros y paradas fijas pueden no coincidir con la amplitud de fluctuación real del mercado, lo que provoca paros o paradas frecuentes.
- La estrategia puede tener un mal desempeño en situaciones de crisis, y el cruce frecuente puede conducir a una serie de operaciones perdedoras.
Dirección de optimización de la estrategia
- Considere la introducción de más grupos de línea media como condiciones de filtración, como la incorporación de la línea media intermedia y la construcción de sistemas de líneas múltiples para mejorar la fiabilidad de la señal.
- Optimización de la gestión de posiciones, como la adopción de la teoría del riesgo porcentual o la fórmula de Kelly para ajustar dinámicamente las posiciones a las diferentes condiciones del mercado.
- Optimización de los parámetros de los umbrales de volumen de transacción para encontrar la configuración de umbrales óptima para mejorar la estabilidad de la estrategia.
- Optimización de la configuración de la posición de parada de pérdidas, ajuste en tiempo real de acuerdo con las últimas fluctuaciones del mercado y aumento de la flexibilidad para adaptarse al mercado.
- En el método de tendencia se incluyen ciertos componentes de cobertura, como el juicio auxiliar de indicadores de contra-tendencia como el PSAR, para aumentar la capacidad de respuesta de los mercados en caso de crisis.
Resumir
La estrategia utiliza el 65⁄240 doble equilátero cruzado como base para determinar la tendencia, mientras que combina las condiciones de filtrado de la transacción para mejorar la fiabilidad de la señal. La administración de posiciones de riesgo fijo y la configuración de paradas de pérdidas fijas pueden controlar el riesgo hasta cierto punto y hacer que las pérdidas se inclinen en la dirección favorable. Pero también hay problemas con el retraso de la captura de tendencias, la falta de flexibilidad de la administración de posiciones, la falta de ajuste dinámico de las paradas.
Código Fuente de la Estrategia
/*backtest
start: 2024-05-06 00:00:00
end: 2024-05-13 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with 1:3 RR, Volume Filter, and Custom Stop Loss/Take Profit (BTC)", overlay=true, currency="USD", initial_capital=100)
// Define EMA lengths
ema_length_fast = 65
ema_length_slow = 240
// Calculate EMAs
ema_fast = ta.ema(close, ema_length_fast)
ema_slow = ta.ema(close, ema_length_slow)
// Define crossover conditions
bullish_crossover = ta.crossover(ema_fast, ema_slow)
bearish_crossover = ta.crossunder(ema_fast, ema_slow)
// Plot EMAs
plot(ema_fast, color=color.blue, title="Fast EMA")
plot(ema_slow, color=color.red, title="Slow EMA")
// Define volume filter
volume_threshold = 1000 // Adjust as needed
// Define risk amount per trade
risk_per_trade = 0.5 // $10 USD
// Calculate position size based on risk amount
stop_loss_distance = 100
take_profit_distance = 1500
position_size = risk_per_trade / syminfo.mintick / stop_loss_distance
// Execute trades based on crossovers and volume filter
if (bullish_crossover and volume > volume_threshold)
strategy.entry("Buy", strategy.long, qty=position_size)
strategy.exit("Exit", "Buy", stop=close - stop_loss_distance, limit=close + take_profit_distance)
if (bearish_crossover and volume > volume_threshold)
strategy.entry("Sell", strategy.short, qty=position_size)
strategy.exit("Exit", "Sell", stop=close + stop_loss_distance, limit=close - take_profit_distance)