O recurso está a ser carregado... Carregamento...

Esta estratégia é uma estratégia de impulso baseada em linhas médias móveis

Autora:ChaoZhang, Data: 2024-01-23 10:38:18
Tags:

img

Resumo

Esta estratégia é uma estratégia de impulso baseada em linhas médias móveis. Ela gera sinais de negociação calculando médias móveis simples de diferentes períodos e comparando suas situações de cruzamento. Especificamente, quando a linha média móvel de curto prazo cruza acima da linha média móvel de longo prazo, um sinal de compra é gerado; quando a linha média móvel de curto prazo cruza abaixo da linha média móvel de longo prazo, um sinal de venda é gerado.

Princípio da estratégia

A lógica central desta estratégia é baseada no efeito de momento, que é a persistência das tendências dos preços das ações. As linhas médias móveis podem refletir efetivamente a tendência de mudança dos preços das ações. Quando a linha média móvel de curto prazo cruza acima da linha média móvel de longo prazo, isso significa que o preço das ações começa a entrar em uma tendência ascendente; ao contrário, quando a linha média móvel de curto prazo cruza abaixo da linha média móvel de longo prazo, isso significa que o preço das ações começa a entrar em uma tendência descendente. Esta estratégia gera sinais de negociação baseados neste princípio.

Especificamente, uma média móvel simples de 13 dias e uma média móvel simples de 34 dias são definidas na estratégia. Depois de calcular essas duas médias móveis com base no preço de fechamento diário, sua relação de magnitude é comparada. Se a linha de 13 dias cruzar acima da linha de 34 dias, um sinal de compra é gerado, indicando que o preço da ação entra em uma tendência de alta e uma posição longa deve ser estabelecida; se a linha de 13 dias cruzar abaixo da linha de 34 dias, um sinal de venda é gerado, indicando que o preço da ação entra em uma tendência de queda e a posição deve ser fechada.

Análise das vantagens

A maior vantagem desta estratégia é que é simples e fácil de entender e implementar. A linha média móvel é um dos indicadores técnicos mais básicos e comumente usados. Seu princípio é simples e fácil de entender e aplicar.

Além disso, a configuração de parâmetros desta estratégia é flexível e pode ser ajustada de acordo com diferentes variedades e condições de mercado. Por exemplo, os parâmetros do ciclo da linha da média móvel podem ser alterados para ajustar a sensibilidade da estratégia. Isso fornece espaço para otimização e ajuste da estratégia.

Análise de riscos

O maior risco desta estratégia é que pode haver mais sinais falsos e ser pego em mercados de faixa. Quando os preços flutuam acentuadamente, as linhas médias móveis podem produzir cruzamentos frequentes, resultando em sinais falsos. Neste ponto, você precisa ajustar os parâmetros do ciclo da linha média móvel para filtrar algum ruído.

Além disso, quando há uma inversão maior do mercado, o ponto de stop loss da estratégia pode ser quebrado, resultando em perdas maiores.

Orientações de otimização

Os seguintes aspectos desta estratégia podem ser otimizados:

  1. Otimizar os parâmetros do ciclo da linha da média móvel para encontrar a combinação ideal de parâmetros para diferentes variedades e condições de mercado.

  2. Adicionar a filtragem de outros indicadores técnicos, como MACD e KD, para evitar a geração de falsos sinais em mercados de intervalo.

  3. Otimizar e ajustar dinamicamente a estratégia de stop loss para evitar que o ponto de stop loss esteja muito próximo, garantindo simultaneamente a stop loss, com maior probabilidade de ser interrompida.

  4. Aumentar os mecanismos de gestão de posições, tais como o investimento fixo e o rácio de posições, para controlar o risco de uma única transação.

Conclusão

Esta estratégia é uma estratégia muito clássica de cruzamento de médias móveis. Ela gera sinais de compra e venda calculando e comparando a relação entre médias móveis de curto e longo prazo. As vantagens desta estratégia são parâmetros simples e flexíveis, e adequados para iniciantes aprenderem; as desvantagens são que os sinais podem não ser estáveis o suficiente e é fácil ser pego em mercados de faixa.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// TODO: update strategy name
strategy("{STRATEGY NAME}", overlay=true)

// === TA LOGIC ===

//
//
// TODO: PUT YOUR TA LOGIC HERE
LONG_SIGNAL_BOOLEAN = crossover(sma(close, 13), sma(close, 34))
SHORT_SIGNAL_BOOLEAN = crossunder(sma(close, 12), sma(close, 21))

// === INPUT BACKTEST DATE RANGE ===
enableShorts = input(false, title="Enable short entries?")

FromMonth = input(defval = 5, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 9, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2018, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// === STRATEGY BUY / SELL ENTRIES ===

// TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal
// long and short entries
buy() => window() and LONG_SIGNAL_BOOLEAN
sell() => window() and SHORT_SIGNAL_BOOLEAN

if buy()
    strategy.entry("Long", strategy.long, comment="Long")

if sell()
    if (enableShorts)
        strategy.entry("Short", strategy.short, comment="Short")
    else
        strategy.close("Long")

// === BACKTESTING: EXIT strategy ===
sl_inp = input(10, title='Stop Loss %', type=float)/100
tp_inp = input(30, title='Take Profit %', type=float)/100

stop_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)

strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)

Mais.