Tendência de dupla SMA na sequência da estratégia

Autora:ChaoZhang, Data: 2023-09-20 11:35:30
Tags:

Resumo

Esta estratégia usa apenas duas linhas SMA, com a SMA lenta para a direção da tendência e a SMA rápida para os sinais de entrada.

Estratégia lógica

Duas linhas SMA são calculadas, uma rápida e outra lenta, juntamente com a linha média do canal de preços. A linha rápida tem um período de 5, enquanto a linha lenta tem um período de 20. Acima da linha média do canal de preços é considerada uma tendência de alta, onde são procuradas oportunidades de longo na linha rápida cruzando acima da linha lenta. Abaixo da linha média é uma tendência de queda, onde são procuradas oportunidades de curto na linha rápida cruzando abaixo da linha lenta.

Além disso, a cor do corpo da vela é incorporada. Em uma tendência de alta, pelo menos 2 velas vermelhas consecutivas são necessárias depois de ver o fundo, antes de ir longo quando a linha rápida cruza acima da linha lenta. Em uma tendência de baixa, pelo menos 2 velas verdes consecutivas são necessárias depois de ver o topo, antes de ir curto quando a linha rápida cruza abaixo da linha lenta.

Análise das vantagens

As linhas de SMA dupla e o canal de preço ajudam a determinar a direção da tendência, evitando falhas. Os filtros de cor do candelabro eliminam ainda mais sinais falsos.

Os parâmetros personalizáveis permitem a configuração de condições longas/cortas de forma flexível.

Análise de riscos

O excesso de dependência das linhas SMA pode gerar sinais falsos excessivos durante os intervalos.

O ajuste dos períodos de SMA ou a incorporação de outros indicadores técnicos podem filtrar os sinais. Os indicadores de volume também podem fornecer informações adicionais. O dimensionamento da posição também pode ser otimizado com base nas condições do mercado.

Orientações de otimização

  1. Teste diferentes combinações de SMAs rápidas e lentas para encontrar parâmetros ideais.

  2. Adicionar volume e outros indicadores para validação do sinal.

  3. Incorporar outros indicadores técnicos para formar uma estratégia de conjunto.

  4. Configure o dimensionamento dinâmico das posições para otimizar a gestão de capital.

  5. Aplicar aprendizado de máquina para prever tendências de preços e pontos de inflexão.

  6. Otimizar estratégias de stop loss para limitar perdas.

Resumo

O sistema de SMA dupla para determinação de tendência é logicamente claro e comumente usado. Mas a dependência excessiva apenas das médias móveis tende a gerar sinais falsos, exigindo outros indicadores para aprimoramento. Com uma validação mais qualitativa e quantitativa, a estratégia se tornaria mais robusta.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Noro's Trend SMA Strategy v1.4", shorttitle = "Trend SMA str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

needlong = input(true, "long")
needshort = input(true, "short")
usefastsma = input(true, "Use fast SMA")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast SMA Period")
slowlen = input(20, defval = 20, minval = 2, maxval = 200, title = "slow SMA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")

fastsma = ema(close, fastlen)
slowsma = ema(close, slowlen)

//PriceChannel
src = ohlc4
lasthigh = highest(src, slowlen)
lastlow = lowest(src, slowlen)
center = (lasthigh + lastlow) / 2

trend = low > center ? 1 : high < center ? -1 : trend[1]

bar = close > open ? 1 : close < open ? -1 : 0
redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0

up = trend == 1 and (low < fastsma or usefastsma == false) and redbars == 1 ? 1 : 0
dn = trend == -1 and (high > fastsma or usefastsma == false) and greenbars == 1 ? 1 : 0

colorfastsma = usefastsma == true ? red : na
plot(fastsma, color = colorfastsma, title = "Fast SMA")
plot(center, color = blue, title = "Price Channel")

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)

Mais.