
La estrategia de comercio de doble dinámica es una estrategia que utiliza el indicador OTT y el indicador oscilante Wavetrend. Se combina con el indicador OTT desarrollado por el maestro Anıl Özekşi y el indicador oscilante Wavetrend de lonestar108 para formar un indicador de comercio exitoso. La estrategia puede realizarse en un mercado bidireccional.
La estrategia de negociación de la línea de equilibrio de energía binaria primero calcula el centro de la banda de Brin, es decir, el promedio móvil MAvg. Luego, de acuerdo con el rango y el período de porcentaje establecido por el usuario, calcula el punto de pérdida de parada larga LongStop y el punto de pérdida de parada corta ShortStop.
Concretamente, el indicador central de esta estrategia es el indicador OTT. El indicador OTT consiste en la línea media y la línea de borde, que se ajusta a la posición de la línea de borde según el grado de fluctuación del mercado de acuerdo con un determinado algoritmo. Cuando el precio cae por debajo de la línea de borde OTT, hacer un descuento; cuando el precio rompe la línea de borde OTT, hacer más.
La estrategia utiliza al mismo tiempo el indicador Wavetrend para determinar la dirección de la tendencia de los precios, si se determina una tendencia a la baja, solo se hace más que no se hace más; si se determina una tendencia a la alta, solo se hace más que no se hace más.
La estrategia de negociación en línea de doble dinámica combina las ventajas de las medias móviles, las bandas de Brin y los indicadores OTT para ajustar automáticamente la posición de los paros y reducir la probabilidad de que los paros se activen. Al mismo tiempo, combina indicadores de juicio de tendencias para evitar ser apuntalado en una tendencia de oscilación.
En concreto, las principales ventajas de esta estrategia son:
Las estrategias de negociación en línea de doble dinámica también tienen ciertos riesgos, que se centran principalmente en los siguientes aspectos:
Las principales medidas son:
La estrategia de negociación en línea de energía dinámica continua teniendo espacio para una mayor optimización:
La estrategia de comercio de la línea de energía binaria integra las ventajas de varios indicadores, puede ajustar automáticamente el punto de parada, juzgar las señales de reversión, identificar la dirección de la tendencia. Tiene una fuerte capacidad de control de riesgo, es fácil de entender el uso de ventajas, etc. Pero también existe el riesgo de cobertura, inexactitud de la señal, etc. La estrategia se puede optimizar aún más, se puede usar con otras combinaciones de indicadores, estudiar algoritmos de adaptación, etc. En general, la estrategia de comercio de la línea de energía binaria es una práctica estrategia de comercio de tipo rompedor.
/*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")