Estratégia de negociação de média móvel de momento duplo


Data de criação: 2024-02-19 14:36:37 última modificação: 2024-02-19 14:36:37
cópia: 1 Cliques: 322
1
focar em
1179
Seguidores

Estratégia de negociação de média móvel de momento duplo

Visão geral

A estratégia de negociação binária linear é uma estratégia que combina o indicador OTT com o indicador oscilante Wavetrend. Combina o indicador OTT desenvolvido pelo professor Anıl Özekşi com o indicador oscilante Wavetrend da lonestar108 para formar um indicador de negociação bem-sucedido. A estratégia pode ser executada em um mercado bidirecional.

Princípio da estratégia

A estratégia de negociação de equilíbrio de energia binária começa com o cálculo da trajectória central da faixa de Bryn, ou seja, a média móvel MAvg. Em seguida, de acordo com o intervalo e o período percentual definidos pelo usuário, calcula-se o ponto de perda de parada longa e o ponto de perda de parada curta.

Concretamente, o indicador central da estratégia é o indicador OTT. O indicador OTT é composto por uma linha média e uma linha de fronteira, que é ajustada pela posição da linha de fronteira de acordo com o grau de flutuação do mercado de acordo com um determinado algoritmo. Quando o preço cai abaixo da linha de fronteira OTT, faça um curto; Quando o preço quebra a linha de fronteira OTT, faça mais.

A estratégia usa simultaneamente o indicador Wavetrend para determinar a direção da tendência de preços, apenas fazendo pouco se for uma tendência descendente; se for uma tendência ascendente, apenas fazendo mais e não fazendo muito.

Análise de vantagens

A estratégia de negociação linear de energia binária combina os benefícios dos indicadores de média móvel, Brin e OTT para ajustar automaticamente a posição de parada e reduzir a probabilidade de a parada ser ativada. Ao mesmo tempo, combina indicadores de julgamento de tendência para evitar ser coberto em uma tendência de tremor.

Os principais benefícios desta estratégia são:

  1. Pode ajustar automaticamente o seu Stop Loss para controlar o seu risco
  2. Os indicadores OTT são mais precisos para avaliar o ponto de reversão
  3. Indicadores de tendência para evitar o cativeiro de um mercado em turbulência
  4. As regras são relativamente simples, claras e fáceis de entender.

Análise de Riscos

A estratégia de negociação linear de energia binária também apresenta alguns riscos, que se concentram principalmente nos seguintes aspectos:

  1. Em situações extremas, a linha de parada pode ser ultrapassada, causando grandes perdas.
  2. Os sinais de inversão dos indicadores OTT não são necessariamente precisos e podem apresentar sinais de falha.
  3. A tendência é de que os investidores se enganem e percam muito com a queda.
  4. Parâmetros mal definidos também podem afetar a eficácia da política

Os principais métodos de resposta são:

  1. A largura de suspensão deve ser adequadamente relaxada para garantir que a linha de suspensão não seja facilmente ativada.
  2. Combinando com outros indicadores para avaliar a confiabilidade de sinais OTT, evitar falsos sinais
  3. Ajustar os parâmetros de forma apropriada para tornar a determinação de tendências mais confiável
  4. Parâmetros de otimização para encontrar a melhor combinação de parâmetros

Direção de otimização

A estratégia de negociação linear de energia dinâmica dupla ainda tem espaço para otimização:

  1. Pode-se considerar a combinação com outros indicadores para melhorar a precisão do julgamento de sinais
  2. Algoritmos de stop-loss adaptáveis podem ser estudados para que a linha de stop-loss possa ser ajustada de acordo com a volatilidade do mercado
  3. Pode ser adicionado um indicador de volume de transação para evitar uma pequena quantidade de falsas rupturas
  4. Pode-se testar diferentes tipos de médias móveis para encontrar a média que melhor se encaixa
  5. Pode-se tentar métodos como aprendizado de máquina para otimizar automaticamente os parâmetros

Resumir

A estratégia de negociação de equilíbrio de energia binária integra os benefícios de vários indicadores, pode ajustar automaticamente o ponto de parada, julgar sinais de reversão e identificar a direção da tendência. Ela possui um forte controle de risco e é fácil de entender.

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

//@version=4
strategy(title="Bugra trade strategy", shorttitle="Bugra trade strategy", overlay=true)

// Kullanıcı Girdileri
length = input(5, title="Period", minval=1)
percent = input(1, title="Sihirli Yüzde", type=input.float, step=0.1, minval=0)
mav = input(title="Hareketli Ortalama Türü", defval="VAR", options=["SMA", "EMA", "WMA", "TMA", "VAR", "WWMA", "ZLEMA", "TSF"])
wt_n1 = input(10, title="Kanal Periyodu")
wt_n2 = input(21, title="Averaj Uzunluğu")
src = close

// Tarih Aralığı Girdileri
startDate = input(20200101, title="Başlangıç Tarihi (YYYYMMDD)")
endDate = input(20201231, title="Bitiş Tarihi (YYYYMMDD)")

// Tarih Filtresi Fonksiyonu
isDateInRange() => true
// Özel Fonksiyonlar
Var_Func(src, length) =>
    valpha = 2 / (length + 1)
    vud1 = src > src[1] ? src - src[1] : 0
    vdd1 = src < src[1] ? src[1] - src : 0
    vUD = sum(vud1, length)
    vDD = sum(vdd1, length)
    vCMO = (vUD - vDD) / (vUD + vDD)
    varResult = 0.0
    varResult := nz(valpha * abs(vCMO) * src + (1 - valpha * abs(vCMO)) * nz(varResult[1]))
    varResult

Wwma_Func(src, length) =>
    wwalpha = 1 / length
    wwma = 0.0
    wwma := wwalpha * src + (1 - wwalpha) * nz(wwma[1])
    wwma

Zlema_Func(src, length) =>
    zxLag = floor(length / 2)
    zxEMAData = src + (src - src[zxLag])
    zlema = ema(zxEMAData, length)
    zlema

Tsf_Func(src, length) =>
    lrc = linreg(src, length, 0)
    lrs = lrc - linreg(src, length, 1)
    tsf = lrc + lrs
    tsf

getMA(src, length) =>
    ma = mav == "SMA" ? sma(src, length) :
         mav == "EMA" ? ema(src, length) :
         mav == "WMA" ? wma(src, length) :
         mav == "TMA" ? sma(sma(src, ceil(length / 2)), floor(length / 2) + 1) :
         mav == "VAR" ? Var_Func(src, length) :
         mav == "WWMA" ? Wwma_Func(src, length) :
         mav == "ZLEMA" ? Zlema_Func(src, length) :
         mav == "TSF" ? Tsf_Func(src, length) : na

// Strateji Hesaplamaları
MAvg = getMA(src, length)
fark = MAvg * percent * 0.01
longStop = MAvg - fark
longStopPrev = nz(longStop[1], longStop)
longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStop
shortStop = MAvg + fark
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop

dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir
MT = dir==1 ? longStop: shortStop
OTT = MAvg > MT ? MT*(200+percent)/200 : MT*(200-percent)/200

plot(OTT, title="BugRA", color=color.rgb(251, 126, 9))

// Alım ve Satım Koşulları
longCondition = crossover(src, OTT) and isDateInRange()
shortCondition = crossunder(src, OTT) and isDateInRange()

// Strateji Giriş ve Çıkış Emirleri
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.close("Long")