A ideia central desta estratégia é usar a cruz de ouro e a cruz da morte das linhas médias móveis rápidas e lentas para julgar a tendência do mercado e implementar negociações de baixo risco. Quando a linha média móvel rápida cruza acima da linha média móvel lenta, indica que o mercado pode estar entrando em uma tendência de alta, então vá longo; quando a linha média móvel rápida cruza abaixo da linha média móvel lenta, indica que o mercado pode estar entrando em uma tendência de queda, então vá curto.
Esta estratégia usa a média móvel exponencial dos preços. A média móvel é um indicador de análise de tendências que suaviza os dados de preços para julgar as tendências dos preços. A média móvel rápida tem um parâmetro menor e pode responder às mudanças de preço mais rapidamente; a média móvel lenta tem um parâmetro maior e responde às mudanças de preço mais lentamente. Quando a média móvel rápida cruza acima da média móvel lenta, indica que o mercado pode estar entrando em um mercado de alta, e uma posição longa deve ser estabelecida; quando a média móvel rápida cruza abaixo da média móvel lenta, indica que o mercado pode estar entrando em um mercado de baixa, e uma posição curta deve ser estabelecida.
Especificamente, esta estratégia define duas médias móveis exponenciais, com períodos de 21 e 55 para a média móvel rápida e lenta, respectivamente.
Além disso, esta estratégia também usa o indicador de volatilidade ATR para definir stop loss e take profit. ATR pode avaliar efetivamente o grau de volatilidade do mercado. O stop loss é definido em 1,5 vezes a distância ATR do preço; o take profit é definido perto de 1 vez a distância ATR do preço.
Esta estratégia tem as seguintes vantagens:
Esta estratégia tem também alguns riscos:
Para enfrentar os riscos acima, podemos otimizar a partir dos seguintes aspectos:
Esta estratégia pode ser melhorada nos seguintes aspectos:
Usar métodos de aprendizagem automática para otimizar automaticamente os parâmetros da média móvel para uma melhor adaptabilidade.
Adicione os fundamentos como condições de filtragem para evitar a compra ou venda cega quando chegam grandes notícias negativas, como decisões de taxas do Fed e lançamentos de dados macroeconômicos importantes.
Definir limites superiores e inferiores para a volatilidade, pausar a negociação quando o ATR ficar muito alto ou muito baixo para evitar perdas em ambientes de mercado extremos.
Incorporar fundamentos de ações como a taxa P / E e a expansão do volume de negociação para definir intervalos dinâmicos de stop loss e take profit.
Adicionar mecanismos de dimensionamento das posições, reduzindo gradualmente as posições quando o rácio de lucro atinge um nível, suspensão da negociação por um período quando sofrer perdas relativamente grandes, etc.
A lógica geral desta estratégia é clara e simples, usando crossovers de média móvel dupla para determinar as tendências do mercado, uma tendência típica após a estratégia. Enquanto isso, a estratégia também controla os riscos muito bem usando o indicador ATR para definir dinamicamente o stop loss e tirar lucro. Com otimização adicional, a estratégia pode ser aprimorada em termos de controle de retirada e corrida de tendência, levando a um desempenho de investimento mais estável.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="No-Nonsense Strategy Template [WM]", overlay = true) price = close // // ATR stuff // atrLength = input(14, "ATR Length") slMultiplier = input(1.5, "SL") tpMultiplier = input(1, "TP1") atr = atr(atrLength) // // Strategy under test. MA crossover // fastInput = input(21) slowInput = input(55) fast = ema(price, fastInput) slow = ema(price, slowInput) plot(fast, color = red) plot(slow, color = blue) goLong = crossover(fast, slow) goShort = crossunder(fast, slow) if (goLong) sl = price - atr * slMultiplier tp = price + atr * tpMultiplier strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", stop = sl, limit = tp) if (goShort) sl = price + atr * slMultiplier tp = price - atr * tpMultiplier strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", stop = sl, limit = tp)