
A ideia central desta estratégia é usar as médias móveis rápidas e médias móveis lentas para determinar a tendência do mercado e realizar transações de baixo risco. Quando a média móvel rápida atravessa a média móvel lenta, significa que o mercado pode entrar em uma tendência ascendente, fazendo mais; Quando a média móvel rápida atravessa a média móvel lenta, significa que o mercado pode entrar em uma tendência descendente, fazendo espaço.
Esta estratégia usa uma média móvel indexada do preço. A média móvel é um indicador de análise de tendências que alisa os dados de preços para determinar a movimentação dos preços. Os parâmetros de média móvel rápida são menores e respondem mais rapidamente às mudanças de preço; os parâmetros de média móvel lenta são maiores e respondem mais lentamente.
Especificamente, a estratégia define duas médias móveis exponenciais, com um ciclo de média móvel rápida de 21, e um ciclo de média móvel lenta de 55. A estratégia decide a entrada de jogo julgando os dois forcados de ouro das médias móveis. Quando atravessar a média móvel lenta sobre a média móvel rápida, faça mais; quando atravessar a média móvel lenta abaixo da média móvel rápida, faça vazio.
Além disso, a estratégia também usa o ATR, um indicador de volatilidade, para definir paradas e paradas. O ATR pode avaliar efetivamente o grau de flutuação do mercado. A parada de perda é definida como a distância de 1,5 vezes o preço do ATR; a parada é definida como a distância de 1 vezes o preço do ATR.
A estratégia tem as seguintes vantagens:
A estratégia também apresenta alguns riscos:
Para os riscos acima mencionados, podemos otimizar em alguns aspectos:
A estratégia pode ser melhorada nos seguintes aspectos:
Otimizar automaticamente os parâmetros da média móvel usando métodos de aprendizagem de máquina para tornar as estratégias mais adaptáveis.
Adicionar fatores fundamentais como condição de filtragem para evitar que você fique muito vazio quando chegarem notícias importantes sobre lucros e perdas. Por exemplo, a resolução da taxa de juros do Fed, o lançamento de dados macroeconômicos importantes, etc.
Estabelecer limites para a volatilidade e suspender a negociação quando o ATR for grande ou pequeno demais para evitar perdas em condições de mercado extremas.
Combinando os indicadores fundamentais das ações, como a taxa de crescimento do mercado de PE, o efeito de amplificação do volume de transações, etc., configure um stop loss dinâmico.
Aumentar o mecanismo de gerenciamento de posições, reduzindo gradualmente as posições quando a margem de lucro atinge um determinado nível; suspender a negociação por um período de tempo quando ocorrem grandes perdas, etc.
A estratégia de operação global é clara e simples, julgar a tendência do mercado através da crossing de duas médias móveis, pertence a uma estratégia típica de acompanhamento de tendências. Ao mesmo tempo, a estratégia também controla o risco muito bem, usando o indicador ATR para definir dinamicamente o stop loss. Com a otimização adicional, a estratégia pode ser aumentada em termos de controle de retirada e manipulação de tendência, resultando em resultados de investimento mais estáveis.
/*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)