Noro mudou a estratégia de stop loss da média móvel

Autora:ChaoZhang, Data: 2024-01-30 15:49:34
Tags:

img

Resumo

A estratégia de stop loss da média móvel deslocada de Noro é uma estratégia de seguir tendências. Ela calcula a linha média móvel simples de 3 dias e define uma linha longa acima dela e uma linha de stop loss abaixo dela em porcentagens dadas. As linhas de lucro também são definidas. Isso permite abrir posições quando as tendências começam e parar quando as tendências se revertem.

Estratégia lógica

O núcleo desta estratégia é calcular a linha média móvel simples de 3 dias ma. Em seguida, uma porcentagem lo é adicionada acima de ma para obter a linha longa para as entradas. Quando o preço cruza acima do longo, as posições longas são abertas. Abaixo de ma, uma porcentagem sl é subtraída para obter a linha stop loss stop. Quando o preço cai abaixo do stop, as posições são paradas.

As regras específicas são:

  1. Calcular a média móvel simples de 3 dias
  2. Linha longa = ma + ma * lo%
  3. Técnica de captação de lucro = preço médio de detenção corrente + preço médio de detenção corrente * tp%
  4. Preço médio de detenção corrente - Preço médio de detenção corrente * sl%

Esta configuração constitui uma estratégia de seguimento da tendência que define as linhas de entrada, de tomada de lucro e de stop loss com base no índice de referência ma e nas percentagens configuráveis.

Análise das vantagens

A maior vantagem desta estratégia é que pode rastrear automaticamente as tendências. Ao ir longo para pegar tendências de alta e curto para tendências de baixa sem precisar de reconhecimento de padrões, ele capta tendências. Adicionar take profit e stop loss ainda permite que ele pare automaticamente quando as tendências terminam para limitar os drawdowns.

Outra vantagem é o ajuste flexível dos parâmetros.

Análise de riscos

O maior risco desta estratégia é o deslizamento. Como uma ordem de parada é usada para parar a perda, em um mercado em rápida queda, os preços podem cair muito abaixo da perda de parada antes que as ordens sejam preenchidas. Isso pode levar a perdas catastróficas.

Outro risco provém de parâmetros mal definidos que provocam entradas e saídas demasiado frequentes, aumentando os custos de comissões.

Orientações de otimização

A estratégia pode ser otimizada das seguintes formas:

  1. Usar ordens de limite em vez de ordens de stop para evitar riscos de deslizamento

  2. Adicionar configurações de dimensionamento de posição para dimensionar dentro e fora sem problemas, reduzindo a frequência de negociação

  3. Adicionar filtros de detecção de tendências para evitar falsos sinais em mercados não em tendência

  4. Otimize as configurações dos parâmetros para encontrar combinações ideais

Conclusão

A Noro Shifted Moving Average Stop Loss Strategy é uma estratégia simples e prática de seguir tendências. Ela pode rastrear automaticamente as tendências com risco de controle de lucro e stop loss. Os maiores riscos vêm de deslizamento potencial e negociação excessivamente frequente de otimização de parâmetros pobre.


/*backtest
start: 2023-12-30 00:00:00
end: 2024-01-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//2019
//Noro

//@version=4
strategy("Stop-loss", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
lo = input(-5.0, title = "Long-line, %")
tp = input(5.0, title = "Take-profit")
sl = input(2.0, title = "Stop-loss")

//SMA
ma = sma(ohlc4, 3)
long = ma + ((ma / 100) * lo)

//Orders
avg = strategy.position_avg_price
if ma > 0
    strategy.entry("Long", strategy.long, limit = long)
    strategy.entry("Take", strategy.short, 0, limit = avg + ((avg / 100) * tp))
    strategy.entry("Stop", strategy.short, 0, stop = avg - ((avg / 100) * sl))
    
//Cancel order
if strategy.position_size == 0
    strategy.cancel("Take")
    strategy.cancel("Stop")

//Lines
plot(long, offset = 1, color = color.black, transp = 0)
take = avg != 0 ? avg + ((avg / 100) * tp) : long + ((long / 100) * tp)
stop = avg != 0 ? avg - ((avg / 100) * sl) : long - ((long / 100) * sl)
takelinecolor = avg == avg[1] and avg != 0 ? color.lime : na
stoplinecolor = avg == avg[1] and avg != 0 ? color.red : na
plot(take, offset = 1, color = takelinecolor, linewidth = 3, transp = 0)
plot(stop, offset = 1, color = stoplinecolor, linewidth = 3, transp = 0)

Mais.