- Cuadrado
- Estrategia cruzada de diferencia de media móvil cero
Estrategia cruzada de diferencia de media móvil cero
El autor:
¿ Qué pasa?, Fecha: 2024-01-26 15:45:03
Las etiquetas:
Resumen general
Principio de la estrategia
- Calcular la media móvil exponencial de 8 períodos y la media móvil más baja de los últimos 8 días
- Calcular la diferencia entre el precio y la media móvil actual
- Cuando el diferencial es inferior a 0, es una señal bajista. Cuando el diferencial cruza por encima de 0, es una señal de divergencia inferior, lo que indica alza.
Análisis de ventajas
- El uso del sistema de media móvil dual puede filtrar eficazmente los avances falsos
- Aplicación de la teoría del precio mínimo para descubrir señales de fondo
- Comparación numérica para juzgar las condiciones de sobreventa y sobrecompra, evitando perseguir máximos y matar mínimos
Análisis de riesgos
- Las estrategias de promedios móviles dobles son propensas a efectos de la sierra
- Necesidad de prestar atención al problema de la frecuencia excesiva de las operaciones
- Es fundamental establecer razonablemente los parámetros de la media móvil
Direcciones de optimización
- Ajustar los parámetros del período de media móvil para adaptarse a los diferentes ciclos
- Aumentar los indicadores de volumen para filtrar las señales falsas de avance
- Combinar el indicador estocástico para evitar condiciones de sobreventa y sobrecompra
Resumen de las actividades
/*backtest
start: 2023-01-19 00:00:00
end: 2024-01-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title = "Estratégia diferença menor preço de 8")
// Configuração da Média Móvel
emaPeriod = 8
ema= ema(close, emaPeriod)
ema1= ema(close[1], emaPeriod)
lowestEMA = lowest(ema, 8)
// Calcula a diferença entre o preço e a média móvel
diff = close - ema
diff1 = close[1] - ema1
diffLow = ema - lowestEMA
//Condições
diffZero = diff < 0
diffUnder = diff < diffLow
diffUm = diff > 0
Low0 = diffLow == 0
// Sinais de entrada
buy_signal = diffUnder and crossover(diff, diff1)
sell_signal = diffUm and diffUnder and crossunder(diff, diff1)
// Executa as operações de compra/venda
if buy_signal
strategy.entry("Buy", strategy.long)
if sell_signal
strategy.exit("Buy")
// Plota as linhas
plot(0, title="Linha Zero", color=color.gray)
plot(diff, title="Diferença", color=color.blue, linewidth=2)
plot(diffLow, title="Diferença", color=color.red, linewidth=2)
Más.