La stratégie de trading Bugra est une stratégie qui combine l'indicateur OTT développé par mon cher professeur Anıl Özekşi et l'indicateur Wavetrend Oscillator par lonestar108.
La stratégie de trading Bugra calcule d'abord la ligne médiane des bandes de Bollinger, qui est la ligne moyenne mobile MAvg. Ensuite, basée sur la plage en pourcentage et la période définie par l'utilisateur, elle calcule le long stop loss longStop et le short stop loss shortStop. Lorsque le prix traverse le rail supérieur, passez long. Lorsqu'il traverse le rail inférieur, passez court. Le signal de clôture est lorsque le prix revient autour de la moyenne mobile.
L'indicateur OTT consiste en une moyenne mobile et des lignes limites. Il ajuste la position des lignes limites en fonction de la volatilité du marché basée sur certains algorithmes. Lorsque le prix franchit la ligne limite inférieure OTT, allez court. Quand il franchit la ligne limite supérieure OTT, allez long.
Cette stratégie utilise également l'indicateur Wavetrend pour déterminer la direction de la tendance des prix. Si elle est jugée comme une tendance à la baisse, ne courez que court, pas long. Si elle est jugée comme une tendance à la hausse, ne courez que long, pas court.
La stratégie de trading Bugra combine les avantages des moyennes mobiles, des bandes de Bollinger et des indicateurs OTT. Elle peut ajuster automatiquement les positions de stop loss et réduire la probabilité d'un stop loss déclenché.
Les principaux avantages de cette stratégie sont les suivants:
La stratégie commerciale de Bugra comporte également certains risques, principalement dans les aspects suivants:
Les contre-mesures sont essentiellement les suivantes:
Il reste encore des possibilités d'optimisation de la stratégie de négociation de la moyenne mobile cinétique double:
La stratégie de trading de la moyenne mobile cinétique double intègre les avantages de plusieurs indicateurs. Elle peut ajuster automatiquement les positions de stop loss, juger les signaux d'inversion et identifier les directions de tendance. Elle présente des avantages tels que de fortes capacités de contrôle des risques et est facile à comprendre et à utiliser. Mais elle comporte également des risques tels que le fait d'être piégé et des signaux inexacts. Cette stratégie peut être optimisée en combinant avec d'autres indicateurs, en étudiant des algorithmes adaptatifs, etc. En général, la stratégie de trading de la moyenne mobile cinétique double est une stratégie de trading de rupture pratique.
/*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")