
La stratégie de négociation en ligne uniforme à double dynamique est une stratégie qui utilise conjointement l’indicateur OTT et l’indicateur de l’oscillateur Wavetrend. Elle se combine avec l’indicateur OTT développé par le professeur Anıl Özekşi et l’indicateur de l’oscillateur Wavetrend de lonestar108 pour former un indicateur de négociation réussi. La stratégie peut être utilisée pour effectuer des opérations d’opérations de couverture en double.
La stratégie de négociation en équilibre binaire calcule d’abord le milieu de la courbe de Brin, c’est-à-dire la moyenne mobile MAvg. Ensuite, en fonction de la portée et de la période de pourcentage définie par l’utilisateur, calcule le longStop et le shortStop.
Plus précisément, l’indicateur central de cette stratégie est l’indicateur OTT. L’indicateur OTT est composé d’une ligne moyenne et d’une ligne de bordure, et consiste à ajuster la position de la ligne de bordure en fonction de la volatilité du marché en fonction d’un certain algorithme. Lorsque le prix tombe en dessous de la ligne de bordure OTT, faites un short; lorsque le prix franchit la ligne de bordure OTT, faites plus.
La stratégie utilise simultanément l’indicateur Wavetrend pour déterminer la direction de la tendance des prix, en ne faisant que le short si la tendance est à la baisse; en ne faisant que le long si la tendance est à la hausse.
La stratégie de négociation en ligne uniforme à double dynamique combine les avantages des moyennes mobiles, des bandes de broyage et des indicateurs OTT pour ajuster automatiquement la position de stop-loss et réduire la probabilité que le stop-loss soit activé. Elle est également associée à des indicateurs de jugement de tendance pour éviter d’être pris dans une tendance oscillante.
Plus précisément, les principaux avantages de cette stratégie sont les suivants:
Les stratégies de négociation en ligne à double dynamique présentent également des risques, principalement concentrés sur les aspects suivants:
Les principaux moyens de lutte sont les suivants:
Il y a encore de la place pour optimiser davantage la stratégie de négociation en ligne de l’énergie binaire:
La stratégie de négociation en ligne de double dynamique intègre les avantages de plusieurs indicateurs, peut ajuster automatiquement le stop loss, juger les signaux de renversement et identifier la direction de la tendance. Elle présente des avantages tels que une forte capacité de contrôle des risques et une utilisation facile à comprendre.
/*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")