Esta estrategia está diseñada sobre la base de la cruz de oro y la cruz de la muerte de los promedios móviles duales. Se hace largo cuando el promedio móvil de corto período cruza por encima del promedio móvil de largo período, y cierra la posición cuando el promedio móvil de corto período cruza por debajo del promedio móvil de largo período.
La estrategia se basa principalmente en los indicadores sma (cerca de 14) y sma (cerca de 28).
En primer lugar, definir las medias móviles cortas y largas:
short_ma = sma(close, 14)
long_ma = sma(close, 28)
Luego determinar la entrada y salida basado en la cruz de oro y la cruz de la muerte:
longCondition = crossover(short_ma, long_ma)
shortCondition = crossunder(short_ma, long_ma)
Si el valor del valor de mercado de la entidad es inferior al valor del valor de mercado de la entidad, el valor de mercado de la entidad es igual al valor del valor de mercado de la entidad.
strategy.entry("Buy", strategy.long, when = longCondition)
Posición cerrada cuando el MA corto se cruza por debajo del MA largo:
strategy.close_all(when = shortCondition)
La lógica es simple y clara, utilizando los cruces de dos MAs para determinar entradas y salidas.
La estrategia se puede optimizar en los siguientes aspectos:
Se realizarán ensayos de diferentes períodos MA cortos y largos, tales como (5, 10), (10, 20), (20, 60), etc., para encontrar la combinación óptima.
Añadir filtros como el volumen de negociación, la brecha de precios, etc. cerca de los cruces de MA para evitar operaciones excesivas en mercados variados.
Establecer el precio de stop loss o utilizar MA como línea de stop loss para controlar la pérdida de una sola operación.
Añadir indicadores auxiliares como MACD, KDJ, etc. para mejorar el rendimiento de la estrategia.
Encuentre mejores puntos de entrada cerca de los puntos de intersección en lugar de entrar directamente en el cruce.
La estrategia de doble MA es sencilla de usar para principiantes. Pero es sensible a las fluctuaciones del mercado y tiene riesgos de pérdidas. Podemos mejorarla optimizando parámetros, agregando filtros, incorporando stop loss, combinando otros indicadores, etc. Puede funcionar bien en tendencias fuertes, pero debe usarse con precaución o stop loss adecuado en mercados de rango.
[/trans] ¿Qué quieres decir?
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] */ //@version=2 // strategy("Tester", pyramiding = 50, default_qty_type = strategy.cash, default_qty_value = 20, initial_capital = 2000, commission_type = strategy.commission.percent, commission_value = 0.25) minGainPercent = input(0.6) gainMultiplier = minGainPercent * 0.01 + 1 longCondition = crossover(sma(close, 14), sma(close, 28)) shortCondition = crossunder(sma(close, 14), sma(close, 28)) avg_protection = input(1) gain_protection = input(1) strategy.entry("Buy", strategy.long, when = longCondition and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true)) strategy.close_all(when = shortCondition and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))