Estratégia de rompimento de média móvel


Data de criação: 2023-09-26 16:18:37 última modificação: 2023-09-26 16:18:37
cópia: 0 Cliques: 884
1
focar em
1617
Seguidores

Visão geral

A estratégia de quebra de linha média é uma estratégia de negociação de linha curta que usa a média móvel para julgar. A estratégia é definida por um comprimento de linha média e operação de compra e venda quando a linha média é quebrada.

Princípio da estratégia

A estratégia é baseada em duas médias móveis, a linha rápida e a linha lenta. A linha rápida tem um período curto e é sensível à reação, enquanto a linha lenta tem um período longo e a reação é estável.

O código define o período de linha rápida (shortPeriod) e o período de linha lenta (longPeriod) através da configuração de parâmetros de entrada. Em seguida, os valores de duas linhas médias (shortSMA e longSMA) são calculados.

Quando a média de curto período de cima para baixo quebra a média de longo período de cima para baixo, indica que a tendência do preço é de cima para baixo, fazendo mais; quando a média de curto período de cima para baixo quebra a média de longo período de cima para baixo, indica que a tendência do preço é de cima para baixo, fazendo mais.

A entrada para a condição de uma posição múltipla:

快线由下向上突破慢线
快线>慢线

Para entrar em uma posição de curto prazo:

快线由上向下跌破慢线  
快线<慢线

Além disso, a estratégia também define parâmetros como stop loss, stop loss, e quantidade para controlar o risco.

Vantagens estratégicas

  • Operação simples, fácil de dominar e adequada para iniciantes
  • A linha média possui uma certa capacidade de filtragem de tendência, que pode filtrar parte do ruído
  • Flexível para ajustar o ciclo de equilíbrio, adaptando-se a diferentes operações de ciclo
  • Ponto de parada de perda predefinido para controlar o risco

Risco estratégico

  • É propenso a falsas brechas, que produzem sinais errados.
  • Não é indicado para mercados com grandes turbulências e deve ser usado quando a tendência é evidente.
  • O sistema de linhas médias está atrasado, o tempo de entrada é impróprio
  • A inversão de uma tendência forte não pode ser filtrada

Prevenção de riscos:

  • Filtragem em combinação com outros indicadores para evitar falsos sinais
  • Escolha usar quando a tendência é óbvia, não no mercado de turbulência
  • Ajustar adequadamente os parâmetros de média para otimizar o tempo de entrada
  • Limpar adequadamente o limiar de amortização para evitar que seja bloqueado

Direção de otimização da estratégia

  • Optimizar os parâmetros de um sistema linear para encontrar a melhor combinação de períodos
  • Adicionar outros indicadores de julgamento, como o canal BOLL, KD, etc.
  • Optimizar estratégias de gestão de posições para maximizar os lucros
  • Parâmetros para testar a robustez de diferentes variedades de contratos
  • Aumentar os algoritmos de aprendizagem de máquina para otimizar o Big Data

Resumir

O conceito da estratégia de ruptura da linha de equilíbrio é simples, é fácil de operar, mas também há alguns problemas, como ruptura falsa, atraso, etc. Pode ser melhorado por meio de otimização de parâmetros, combinação de outros indicadores e outras formas. Em geral, a estratégia é adequada para a estratégia da primeira fase de entrada de iniciantes, e depois de dominar os princípios básicos, pode ser otimizada para aumentar a lucratividade.

Código-fonte da estratégia
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 1h
basePeriod: 15m
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/
// © YohanNaftali

//@version=5

///////////////////////////////////////////////////////////////////////////////
// Heikin Ashi Candle Startegy
// ver 2021.12.29
// © YohanNaftali
// This script composed by Yohan Naftali for educational purpose only 
// Reader who will use this signal must do own research
///////////////////////////////////////////////////////////////////////////////
strategy(
     title = 'Heikin Ashi Candle Startegy Long',  
     shorttitle = 'HA Strategy Long',  
     format = format.price,
     precision = 0,
     overlay = true)

// Input
validationPeriod = input.int( 
     defval = 3, 
     title = 'Validation Period', 
     group = 'Candle')

qtyOrder = input.float(
     defval = 1.0,
     title = 'Qty', 
     group = 'Order')

maxActive = input.float(
     defval = 1.0,
     title = 'Maximum Active Open Position', 
     group = 'Order')

// Long Strategy
tpLong = input.float(
     defval = 1,
     title = "Take Profit (%)",
     minval = 0.0, 
     step = 0.1, 
     group = "Long") * 0.01

slLong = input.float(
     defval = 25,
     title = "Stop Loss (%)", 
     minval=0.0, 
     step=0.1,
     group="Long") * 0.01

trailingStopLong = input.float(
     defval = 0.2,
     title = "Trailing Stop (%)",
     minval = 0.0, 
     step = 0.1,
     group = 'Long') * 0.01

// Calculation
haTicker = ticker.heikinashi(syminfo.tickerid)
haClose = request.security(haTicker, timeframe.period, close)
haOpen = request.security(haTicker, timeframe.period, open)

// Long
limitLong = tpLong > 0.0 ? strategy.position_avg_price * (1 + tpLong) : na
stopLong = slLong > 0.0 ? strategy.position_avg_price * (1 - slLong) : na
float trailLong = 0.0
trailLong := if strategy.position_size > 0
    trailClose = close * (1 - trailLong)
    math.max(trailClose, trailLong[1])
else
    0

isGreen = true
for i = 0 to validationPeriod-1
    isGreen := isGreen and haClose[i] > haOpen[i]        
isLong = isGreen and haClose[validationPeriod] < haOpen[validationPeriod]



plot(
     limitLong,
     title = 'Limit', 
     color = color.rgb(0, 0, 255, 0), 
     style = plot.style_stepline,
     linewidth = 1)

plot(
     trailLong,
     title = 'Trailing', 
     color = color.rgb(255, 255, 0, 0), 
     style = plot.style_stepline,
     linewidth = 1)

plot(
     stopLong,
     title = 'Stop', 
     style = plot.style_stepline,
     color = color.rgb(255, 0, 0, 0), 
     linewidth = 1)

// plotshape(
//      isLong, 
//      title = 'Entry', 
//      style = shape.arrowup, 
//      location = location.belowbar, 
//      offset = 1, 
//      color = color.new(color.green, 0), 
//      text = 'Long Entry',
//      size = size.small)

// Strategy
strategy.risk.max_position_size(maxActive)
strategy.risk.allow_entry_in(strategy.direction.long)

strategy.entry(
     id = "Long", 
     direction = strategy.long, 
     qty = qtyOrder,  
     when = isLong,       
     alert_message = "LN")
if (strategy.position_size > 0)
    strategy.exit(
         id = "Long Exit",
         from_entry = "Long",
         limit = limitLong,
         stop = stopLong,
         trail_price = trailLong,
         alert_message = "LX")