- Quadrado
- Estratégia cruzada de diferença média móvel zero
Estratégia cruzada de diferença média móvel zero
Autora:
ChaoZhang, Data: 2024-01-26 15:45:03
Tags:
Resumo
Princípio da estratégia
- Calcular a média móvel exponencial de 8 períodos e a média móvel mais baixa dos últimos 8 dias
- Calcular a diferença entre o preço e a média móvel actual
- Quando o diferencial é inferior a 0, é um sinal de baixa, quando o diferencial ultrapassa 0, é um sinal de divergência inferior, indicando alta.
- Combine o valor numérico da diferença para comparar o declínio máximo durante a última semana para gerar sinais de negociação
Análise das vantagens
- Usando o sistema de média móvel dupla pode efetivamente filtrar falsos avanços
- Aplicando a teoria do preço mínimo para descobrir sinais de fundo
- Comparação numérica para julgar as condições de sobrevenda e sobrecompra, evitando perseguir altas e matar baixas
Análise de riscos
- As estratégias de média móvel dupla são propensas a efeitos de serra
- A necessidade de prestar atenção ao problema da frequência excessiva das negociações
Orientações de otimização
- Ajustar os parâmetros do período da média móvel para adaptá-los aos diferentes ciclos
- Aumentar os indicadores de volume para filtrar falsos sinais de ruptura
- Combinar o indicador estocástico para evitar condições de sobrevenda e sobrecompra
Resumo
Esta estratégia integra o método de diferença média móvel e o sistema de cruzamento de eixo zero para melhorar a precisão da detecção de pontos de compra e venda. No entanto, ainda é necessária uma otimização adicional das configurações de parâmetros e combinação com outros indicadores para filtrar sinais.
/*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)
Mais.