Estratégia Long-Short baseada em SMA


Data de criação: 2023-11-22 15:42:29 última modificação: 2023-11-22 15:42:29
cópia: 2 Cliques: 596
1
focar em
1617
Seguidores

Estratégia Long-Short baseada em SMA

Visão geral

Esta estratégia baseia-se em uma estratégia simples de multi-espaço, baseada no SMA. Fazer mais quando o preço atravessa o SMA de 20 ciclos e fechar quando o preço atravessa o SMA de 20 ciclos.

Princípio da estratégia

Esta estratégia usa o SMA de alta mais alta e baixa mais baixa de 20 períodos como um indicador para determinar a hipocrisia. Quando o preço atravessa o SMA mais alto, considera-se que está em uma tendência ascendente, e faz mais; Quando o preço quebra o SMA mais baixo, considera-se que está em uma tendência descendente, e faz mais.

Concretamente, a estratégia primeiro calcula o SMA de 20 períodos de alta mais alta e baixa mais baixa, e traça a linha indicativa. Em seguida, configure a seguinte lógica de negociação:

Entradas múltiplas: quando o preço de fechamento atravessa a SMA mais alta A entrada de muitos: quando o preço de fechamento é 0,99 vezes mais alto que o SMA

Entrada em branco: quando o preço de fechamento quebra o SMA mais baixo
A entrada em aberto: o preço de fechamento é 1,01 vezes menor do que a SMA

Assim, construímos uma estratégia multi-espaço que funciona de acordo com a tendência.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Usar o SMA para determinar a direção da tendência é simples e prático
    1. HIGHEST SMA e LOWEST SMA como linhas de resistência de suporte, desempenhando um papel importante no indicador
    2. Desenho de deterioração racional para evitar perdas massivas
    3. Resiliência, com vários períodos de tempo e variedades

Análise de Riscos

A estratégia também traz alguns riscos:

  1. Indicadores de SMA estão atrasados e podem ter perdido a virada da tendência
  2. Prevenção de eventos inesperados não relacionados com o mercado
  3. Sem levar em conta os custos de transação

Estes riscos podem ser controlados e reduzidos por meio da combinação de outros indicadores, configuração de stop loss e parâmetros de otimização.

Direção de otimização

A estratégia também pode ser melhorada nos seguintes aspectos:

  1. Combinado com outros indicadores de tendências, como MACD, KDJ, etc.
  2. Adição de mecanismos de prevenção de eventos inesperados, como o tratamento de situações excepcionais, como suspensões de licenças e limites de preço
  3. Optimizar os parâmetros do ciclo SMA para encontrar a melhor combinação de parâmetros
  4. Considere os parâmetros ideais para diferentes variedades e períodos de tempo
  5. Avaliar o impacto dos custos de transação e definir os melhores pontos de parada e de perda

Resumir

A estratégia geral é clara e fácil de implementar, e pode obter bons resultados com a determinação de tendências de vazio através dos indicadores SMA, e com a configuração de mecanismos de entrada e saída razoáveis. Há espaço para otimização adicional, e, se combinada com outros indicadores e técnicas, pode ser uma estratégia de longo prazo que vale a pena ser seguida.

Código-fonte da estratégia
/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-21 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © AlanAntony

//@version=4


strategy("ma 20 high-low",overlay=true)

//compute the indicators

smaH = sma(high, 20)
smaL = sma(low, 20)


//plot the indicators
plot(smaH,title="smaHigh", color=color.green, linewidth=2)


plot(smaL,title="smaLow", color=color.red, linewidth=2)


//trading logic
enterlong = crossover(close,smaH) //positive ema crossover
exitlong = crossunder(close,0.99*smaH)  //exiting long


entershort = crossunder(close,smaL) //negative EMA Crossover
exitshort = crossover(close,1.01*smaH) //exiting shorts


notintrade = strategy.position_size<=0
bgcolor(notintrade ? color.red:color.green)

//execution logic

start = timestamp(2015,6,1,0,0)
//end = timestamp(2022,6,1,0,0)

if time >= start
    strategy.entry( "long", strategy.long,1, when = enterlong)
    strategy.entry( "short", strategy.short,1, when = entershort) 
    
    strategy.close("long", when = exitlong)
    strategy.close("short", when = exitshort)

//if time >= end
   // strategy.close_all()