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.
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.
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.
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.
Os seguintes aspectos desta estratégia podem ser otimizados:
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.
Adicionar a filtragem de outros indicadores técnicos, como MACD e KD, para evitar a geração de falsos sinais em mercados de intervalo.
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.
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.
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)