Die Bugra-Handelsstrategie ist eine Strategie, die den von meinem lieben Lehrer Anıl Özekşi entwickelten OTT-Indikator und den Wavetrend Oscillator-Indikator von lonestar108 kombiniert.
Die Bugra-Handelsstrategie berechnet zunächst die Mittellinie der Bollinger Bands, die die gleitende Durchschnittslinie MAvg ist. Anhand der vom Benutzer festgelegten Prozentsatzbereich und Periode berechnet sie dann den langen Stop-Loss longStop und den kurzen Stop-Loss shortStop. Wenn der Preis durch die obere Schiene bricht, gehen Sie lang. Wenn er durch die untere Schiene bricht, gehen Sie kurz. Das Schlusssignal ist, wenn der Preis um den gleitenden Durchschnitt zurückkehrt.
Der OTT-Indikator besteht aus einem gleitenden Durchschnitt und Grenzlinien. Er passt die Position der Grenzlinien nach der Volatilität des Marktes anhand bestimmter Algorithmen an.
Diese Strategie verwendet auch den Wavetrend-Indikator, um die Richtung des Preistrends zu bestimmen. Wenn es sich um einen Abwärtstrend handelt, gehen Sie nur kurz, nicht lang. Wenn es sich um einen Aufwärtstrend handelt, gehen Sie nur lang, nicht kurz.
Die Bugra-Handelsstrategie kombiniert die Vorteile von gleitenden Durchschnitten, Bollinger-Bändern und OTT-Indikatoren. Sie kann Stop-Loss-Positionen automatisch anpassen und die Wahrscheinlichkeit, dass ein Stop-Loss ausgelöst wird, reduzieren. Gleichzeitig vermeidet sie durch die Einbeziehung von Trendbeurteilungsindikatoren, in schwankenden Trends gefangen zu werden.
Die wichtigsten Vorteile dieser Strategie sind insbesondere:
Die Handelsstrategie von Bugra birgt auch einige Risiken, hauptsächlich in folgenden Aspekten:
Die Gegenmaßnahmen sind hauptsächlich folgende:
Es besteht noch Raum für eine weitere Optimierung der doppelten kinetischen gleitenden Durchschnittshandelsstrategie:
Die doppelte dynamische gleitende Durchschnittshandelsstrategie integriert die Vorteile mehrerer Indikatoren. Sie kann automatisch Stop-Loss-Positionen anpassen, Umkehrsignale beurteilen und Trendrichtungen identifizieren. Sie hat Vorteile wie starke Risikokontrollfähigkeiten und leicht zu verstehen und zu verwenden. Aber sie hat auch Risiken wie gefangen zu sein und ungenaue Signale. Diese Strategie kann durch Kombination mit anderen Indikatoren, das Studium adaptiver Algorithmen usw. weiter optimiert werden.
/*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")