Estratégia de retração baseada em momentum


Data de criação: 2024-01-23 15:23:14 última modificação: 2024-01-23 15:23:14
cópia: 0 Cliques: 564
1
focar em
1617
Seguidores

Estratégia de retração baseada em momentum

Visão geral

Esta estratégia visa identificar potenciais oportunidades de retração no mercado. A estratégia utiliza um sistema de linha dupla: a média móvel de longo prazo (MA1) e a média móvel de curto prazo (MA2). O objetivo principal é indicar uma potencial oportunidade de retração em uma grande tendência quando o preço de encerramento é inferior a MA1 mas superior a MA2.

Princípio da estratégia

A estratégia usa duas médias móveis: MA1 (a linha longa) e MA2 (a linha curta). O princípio é que, se o preço de curto prazo retroceder e testar o suporte da tendência de longo prazo, essa pode ser uma oportunidade de fazer mais. Concretamente, se o preço de fechamento estiver acima do suporte de longo prazo (MA1), a tendência ainda é boa; e se o preço de fechamento cair abaixo da média de curto prazo (MA2) e permanecer estável acima da média de longo prazo (MA1), essa é uma oportunidade típica de retorno.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Implementação simples, fácil de entender, com flexibilidade de ajuste de parâmetros
  2. Identificar grandes tendências e evitar negociações adversas
  3. Filtros de tempo personalizáveis para evitar anomalias de mercado em períodos de tempo específicos
  4. Dimensões de posição ajustáveis para diferentes preferências de risco
  5. Implementação de mecanismos de suspensão para limitar o risco de perdas

Análise de Riscos

A estratégia também apresenta os seguintes riscos:

  1. O preço do petróleo continua a cair e não há como parar
  2. A tendência está a mudar e os suportes estão a ser rompidos.
  3. Os mercados estão em forte volatilidade e a média móvel está a desviar-se.
  4. Escolha errada de período de tempo, perda de oportunidade de negócio

Em contrapartida, o que pode ser melhorado e aperfeiçoado são os seguintes aspectos:

  1. Optimizar os parâmetros da média móvel para melhorar a qualidade do sinal de negociação
  2. Optimizar os níveis de stop loss para obter lucros com o mínimo de risco
  3. Ajuste o filtro de tempo para o melhor momento de negociação
  4. Testar diferentes variedades e ambientes de mercado

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Optimizar os parâmetros da média móvel para encontrar a melhor combinação de parâmetros
  2. Teste diferentes mecanismos de parada de perda, como parada de rastreamento, parada de oscilação, etc.
  3. Adicionar outros filtros, como filtros de volume de transação, filtros de taxa de flutuação, etc.
  4. Aumentar os mecanismos de gestão de posições, como a adição de forquilhos e a diminuição de forquilhos
  5. Adição de um sistema de travamento automático
  6. Fazer um retrospecto e calcular os indicadores-chave para determinar os melhores parâmetros

Resumir

Em geral, esta estratégia é uma estratégia de retorno de linha curta simples e prática. Ela usa duas linhas de equilíbrio para identificar oportunidades de retorno e estabelecer um stop loss móvel para controlar o risco. A estratégia é fácil de entender e implementar, com flexibilidade de ajuste de parâmetros para atender a diferentes preferências de risco.

Código-fonte da estratégia
/*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"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ZenAndTheArtOfTrading / www.PineScriptMastery.com
// @version=5
strategy("Simple Pullback Strategy", 
     overlay=true, 
     initial_capital=50000,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, // 100% of balance invested on each trade
     commission_type=strategy.commission.cash_per_contract, 
     commission_value=0.005) // Interactive Brokers rate

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2           = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent   = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose    = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)

// Check filter(s)
f_dateFilter =true

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition   = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance    = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice       = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition   = strategy.position_size > 0 and stopDistance > i_stopPercent

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)