Esta é uma estratégia de negociação que usa apenas duas médias móveis simples (SMAs). A estratégia usa a linha SMA lenta para definir a direção da tendência e a linha SMA rápida para determinar o ponto de entrada específico.
A estratégia determina a direção da tendência através do cálculo de uma linha SMA rápida e uma linha SMA lenta.
A linha SMA lenta ((azul) é usada para definir a direção da tendência. Quando o preço está abaixo da SMA lenta, é definido como uma tendência descendente; quando o preço está acima da SMA lenta, é definido como uma tendência ascendente.
A linha SMA rápida ((vermelho) é usada para determinar o momento específico de entrada. Em uma tendência ascendente, faça mais quando o preço de fechamento da linha K for menor que o preço de abertura e menor que a SMA rápida; em uma tendência decrescente, quando o preço de fechamento da linha K for maior que o preço de abertura e maior que a SMA rápida.
A estratégia considera simultaneamente a cor da entidade da linha K e só entra em jogo quando a direção da tendência definida pela estratégia. Ou seja, veja os sinais de múltiplos singles em uma tendência ascendente e veja os sinais de singles em uma tendência descendente, evitando assim a negociação de contrapartida.
Para os riscos acima mencionados, é possível otimizar os seguintes aspectos:
A avaliação de tendências é verificada por indicadores como o MACD.
A estratégia de controle de risco de Stop Loss.
Adição de módulos de otimização de parâmetros para a auto-adaptação de parâmetros.
Aumentar os indicadores de admissão e evitar o excesso de admissão.
A estratégia pode ser melhorada em vários aspectos:
Optimização de parâmetros. Pode ser adicionado um módulo de otimização de parâmetros, que ajusta automaticamente os parâmetros do SMA de acordo com diferentes condições de mercado, permitindo a adaptação dos parâmetros.
Confirmação de entrada Indicadores como MACD, Brinks e outros podem ser incluídos para verificar a tendência do SMA de forma multilateral, evitando sinais errados
Estratégias de parada de prejuízos. Pode-se configurar estratégias como parada móvel, parada de tempo, para parar os prejuízos em tempo hábil após a entrada e controlar o risco.
Controle de retração. Pode-se definir a taxa de retração máxima, fechando todas as posições quando a taxa de retração é atingida, evitando a expansão dos prejuízos.
Verificação de períodos de tempo. Indicadores de períodos de tempo mais altos podem ser introduzidos para verificar a confiabilidade de sinais SMA de períodos mais baixos.
Adicionar mais opções de vazio. Pode adicionar opções de interruptor apenas para mais ou apenas para vazio, adaptando-se a diferentes situações de mercado.
A estratégia é clara e fácil de entender, usa indicadores comuns e simples para determinar a tendência, é de alta confiabilidade. No entanto, há alguns problemas como espaço limitado de lucro e insuficiente controle de risco. O próximo passo é otimizar a estratégia em termos de otimização de parâmetros e controle de risco, para que os parâmetros da estratégia estejam mais em consonância com o ambiente de mercado e possam controlar efetivamente o risco de negociação, aumentando ainda mais a vantagem da estratégia.
/*backtest
start: 2023-08-22 00:00:00
end: 2023-09-21 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Noro's Trend SMA Strategy v1.1", shorttitle = "Trend SMA str 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)
fastlen = input(5, "fast SMA Period")
slowlen = input(15, "slow SMA Period")
only = input(false, "Only long?")
fastsma = ema(close, fastlen)
slowsma = ema(close, slowlen)
trend = low > slowsma ? 1 : high < slowsma ? -1 : trend[1]
up = trend == 1 and low < fastsma and close < open ? 1 : 0
dn = trend == -1 and high > fastsma and close > open ? 1 : 0
plot(fastsma, color = red, title = "Fast SMA")
plot(slowsma, color = blue, title = "Slow SMA")
longCondition = up == 1
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = dn == 1
if (shortCondition)
strategy.entry("Short", strategy.short, only == true ? 0 : na)