Estratégia de negociação oscilante de média móvel dupla


Data de criação: 2023-12-04 15:28:12 última modificação: 2023-12-04 15:28:12
cópia: 0 Cliques: 614
1
focar em
1619
Seguidores

Estratégia de negociação oscilante de média móvel dupla

Visão geral

A estratégia de negociação de oscilação de dupla linha média é obtida através da combinação do uso de uma média móvel de 220 e um indicador de oscilação de banda de preço adaptável, formando um sinal de negociação para obter lucro em situações de turbulência. A estratégia é aplicada principalmente a mercados com características visíveis de turbulência, como índices de ações, divisas, commodities e moedas digitais.

Princípio da estratégia

A estratégia de negociação de oscilação de dupla equilíbrio consiste em duas partes:

  1. O 220 indica uma média móvel que gera um sinal de compra quando o preço sobe e ultrapassa a linha de 20 dias e a queda não ultrapassa a linha de 2 dias; um sinal de venda quando o preço desce e ultrapassa a linha de 2 dias e a subida não ultrapassa a linha de 20 dias.

  2. O indicador de banda de choque de preço de adaptação. O indicador constrói uma banda de preços com base na amplitude de flutuação dos preços, julga o ponto de inflexão do mercado através da ruptura da banda de preços para cima e para baixo, gerando sinais de compra e venda.

A estratégia de negociação de oscilação de dupla linha média só produz um sinal de negociação real quando um indicador de oscilação de banda de preço adaptável e uma média móvel de 220 são sinalizados simultaneamente. Isso pode filtrar efetivamente alguns sinais inativos e melhorar a qualidade do sinal.

Análise de vantagens

A estratégia de negociação de oscilação de dupla linha de equilíbrio, combinando o aproveitamento dos indicadores de linha de equilíbrio e os indicadores de volatilidade, tem as seguintes características:

  1. Sinais de negociação confiáveis. Verificação de duplo indicador para melhorar a qualidade do sinal e filtragem eficaz de sinais inválidos.

  2. Adaptação a situações de turbulência. Usando uma combinação de linha média e indicadores de faixa de preço, é possível determinar com precisão os pontos de viragem em situações de turbulência.

  3. A frequência de operação é moderada. A estratégia de média móvel de índice duplo pode reduzir a ocorrência de negociações inválidas.

  4. Fácil implementação de negociação automática. As regras de sinalização são claras, os parâmetros são simples de definir e é fácil de programar para realizar negociações automáticas.

Análise de Riscos

A estratégia de negociação com oscilação de dupla equilíbrio também apresenta os seguintes riscos:

  1. O sinal pode ter um grande atraso. O conjunto de indicadores duplos filtra o sinal e pode perder a oportunidade de uma rápida reversão de preços.

  2. A estratégia depende principalmente do cenário de choque, quando a oscilação diminui, os sinais de negociação e o espaço de lucro diminuem.

  3. O impacto da otimização de parâmetros é significativo. A configuração dos parâmetros do indicador tem um grande impacto nos resultados das transações, e é necessário otimizar o sistema para determinar os parâmetros mais ótimos.

Para os riscos acima, pode-se adotar uma abordagem de ajuste dinâmico de parâmetros para responder a mudanças no ambiente de mercado, ao mesmo tempo em que se configura uma estratégia de stop loss para controlar o risco de perda.

Direção de otimização

A estratégia de negociação de oscilação de dupla equilíbrio pode ser otimizada em vários aspectos:

  1. Teste mais combinações de medianas e de faixas de preço. Teste sistematicamente medianas e faixas de preço de diferentes comprimentos para encontrar as combinações de parâmetros mais ótimas.

  2. Adicionar o sinal de filtragem do indicador de volume de transação. Em combinação com o sinal de volume de transação anormal, o sinal de filtragem do preço da linha média pode melhorar ainda mais a qualidade do sinal.

  3. Estabelecer um mecanismo de stop loss dinâmico. Quando a volatilidade do mercado diminui, aperte adequadamente o ponto de stop loss e reduza os perdas individuais.

  4. Combinação de modelos de aprendizagem profunda. Usar modelos de aprendizagem profunda como LSTM para validar sinais de negociação para tornar a estratégia mais inteligente.

Resumir

A estratégia de negociação de oscilação de dupla linha de equilíbrio, através da combinação de indicadores de média móvel de 220 e indicadores de oscilação de banda de preço auto-adaptável, produz um sinal de negociação de oscilação de alta qualidade, capaz de se adaptar a mercados com maior volatilidade, como índices de ações, divisas e commodities, com arbitragem frequente dentro de zonas de oscilação. A estratégia possui vantagens de alta qualidade do sinal, fácil de automatizar.

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

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 02/03/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// The adaptive price zone (APZ) is a volatility-based technical indicator that helps investors 
// identify possible market turning points, which can be especially useful in a sideways-moving 
// market. It was created by technical analyst Lee Leibfarth in the article “Identify the 
// Turning Point: Trading With An Adaptive Price Zone,” which appeared in the September 2006 issue 
// of the journal Technical Analysis of Stocks and Commodities.
// This indicator attempts to signal significant price movements by using a set of bands based on 
// short-term, double-smoothed exponential moving averages that lag only slightly behind price changes. 
// It can help short-term investors and day traders profit in volatile markets by signaling price 
// reversal points, which can indicate potentially lucrative times to buy or sell. The APZ can be 
// implemented as part of an automated trading system and can be applied to the charts of all tradeable assets.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos

APZ(nPeriods,nBandPct) =>
    pos = 0.0
    xHL = high - low
    nP = math.ceil(math.sqrt(nPeriods))
    xVal1 = ta.ema(ta.ema(close,nP), nP)
    xVal2 = ta.ema(ta.ema(xHL,nP), nP)
    UpBand = nBandPct * xVal2 + xVal1
    DnBand = xVal1 - nBandPct * xVal2
    pos := low < DnBand ? 1 : high > UpBand ? -1 : pos[1] 
    pos

strategy(title='Combo 2/20 EMA & Adaptive Price Zone', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Adaptive Price Zone  ═════●'
nPeriods = input(20)
nBandPct = input(2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)

StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosAPZ = APZ(nPeriods,nBandPct)
iff_1 = posEMA20 == -1 and prePosAPZ == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosAPZ == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
    strategy.entry('Long', strategy.long)
if possig == -1
    strategy.entry('Short', strategy.short)
if possig == 0
    strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)