Estrategia de negociación de Bugra basada en una media móvil cinética dual

El autor:¿ Qué pasa?, Fecha: 2024-02-19 14:36:37
Las etiquetas:

img

Resumen general

La estrategia de negociación Bugra es una estrategia que combina el indicador OTT desarrollado por mi querido maestro Anıl Özekşi y el indicador Wavetrend Oscillator de lonestar108.

Principio de la estrategia

La estrategia de negociación Bugra calcula primero la línea media de las bandas de Bollinger, que es la línea de promedio móvil MAvg. Luego, basándose en el rango porcentual y el período establecido por el usuario, calcula el stop loss largo longStop y el stop loss corto shortStop. Cuando el precio rompe el carril superior, vaya largo. Cuando rompe el carril inferior, vaya corto. La señal de cierre es cuando el precio regresa alrededor del promedio móvil.

Específicamente, el indicador central de esta estrategia es el indicador OTT. El indicador OTT consiste en un promedio móvil y líneas límite. Ajusta la posición de las líneas límite de acuerdo con la volatilidad del mercado basado en ciertos algoritmos. Cuando el precio rompe la línea límite inferior OTT, vaya corto. Cuando rompe la línea límite superior OTT, vaya largo.

Esta estrategia también utiliza el indicador Wavetrend para determinar la dirección de la tendencia del precio. Si se juzga que es una tendencia a la baja, solo vaya corto, no largo. Si se juzga que es una tendencia al alza, solo vaya largo, no corto.

Análisis de ventajas

La estrategia de negociación de Bugra combina las ventajas de los promedios móviles, bandas de Bollinger e indicadores OTT. Puede ajustar automáticamente las posiciones de stop loss y reducir la probabilidad de que se desencadene una stop loss. Al mismo tiempo, al incorporar indicadores de juicio de tendencia, evita quedar atrapado en tendencias oscilantes.

En concreto, las principales ventajas de esta estrategia son:

  1. Puede ajustar automáticamente las posiciones de stop loss para controlar eficazmente los riesgos.
  2. El indicador OTT puede determinar con relativa precisión los puntos de reversión.
  3. Al incorporar indicadores de juicio de tendencia, evita quedar atrapado en mercados oscilantes.
  4. Sus reglas son relativamente simples y claras, fáciles de entender y aplicar.

Análisis de riesgos

La estrategia comercial de Bugra también presenta algunos riesgos, principalmente en los siguientes aspectos:

  1. En condiciones de mercado violentas, el stop loss puede romperse, causando mayores pérdidas.
  2. Las señales de inversión evaluadas por el indicador OTT pueden no ser precisas y pueden producirse señales defectuosas.
  3. Los juicios de tendencia también pueden ser erróneos.
  4. La configuración incorrecta de parámetros también afectará el rendimiento de la estrategia.

Las contramedidas son principalmente las siguientes:

  1. Se debe aflojar adecuadamente el intervalo de pérdida de parada para garantizar que las líneas de pérdida de parada no se activen fácilmente.
  2. Combinar con otros indicadores para juzgar la fiabilidad de las señales OTT para evitar señales falsas.
  3. Ajustar adecuadamente los parámetros para hacer que los juicios de tendencia sean más confiables.
  4. Optimice los parámetros para encontrar la mejor combinación de parámetros.

Direcciones de optimización

Todavía hay espacio para una mayor optimización de la estrategia de negociación de la media móvil cinética dual:

  1. Considere combinarlo con otros indicadores para mejorar la precisión del juicio de la señal.
  2. Estudiar algoritmos de stop loss adaptativos para que las líneas de stop loss puedan ajustarse de acuerdo con la volatilidad del mercado.
  3. Añadir indicadores de volumen de negociación para evitar falsos breakouts con un volumen bajo.
  4. Prueba diferentes tipos de medias móviles para encontrar la media móvil más adecuada.
  5. Prueba el aprendizaje automático y otros métodos para optimizar los parámetros automáticamente.

Resumen de las actividades

La estrategia de trading de promedios móviles dobles integra las ventajas de múltiples indicadores. Puede ajustar automáticamente las posiciones de stop loss, juzgar las señales de reversión e identificar las direcciones de tendencia. Tiene ventajas como fuertes capacidades de control de riesgos y fácil de entender y usar. Pero también tiene riesgos como quedar atrapado y señales inexactas. Esta estrategia se puede optimizar aún más combinándola con otros indicadores, estudiando algoritmos adaptativos, etc. En general, la estrategia de trading de promedios móviles dobles es una estrategia de trading de ruptura práctica.


/*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")


Más.