Strategi dagangan Bugra adalah strategi yang menggabungkan penunjuk OTT yang dibangunkan oleh guru saya yang dikasihi Anıl Özekşi dan penunjuk Wavetrend Oscillator oleh lonestar108. Ia membentuk penunjuk dagangan yang berjaya dengan mengintegrasikan kedua-dua penunjuk. Strategi ini boleh melakukan perdagangan panjang dan pendek di pasaran dua hala.
Strategi dagangan Bugra mula-mula mengira garisan tengah Bollinger Bands, yang merupakan garis purata bergerak MAvg. Kemudian, berdasarkan julat peratusan dan tempoh yang ditetapkan oleh pengguna, ia mengira stop loss longStop yang panjang dan stop loss shortStop yang pendek. Apabila harga memecahkan rel atas, pergi panjang. Apabila ia memecahkan rel bawah, pergi pendek. Isyarat penutupan adalah apabila harga kembali ke sekitar purata bergerak.
Secara khusus, penunjuk teras strategi ini adalah penunjuk OTT. Penunjuk OTT terdiri daripada purata bergerak dan garis sempadan. Ia menyesuaikan kedudukan garis sempadan mengikut turun naik pasaran berdasarkan algoritma tertentu. Apabila harga menembusi garis sempadan bawah OTT, pergi pendek. Apabila ia menembusi garis sempadan atas OTT, pergi panjang.
Strategi ini juga menggunakan penunjuk Wavetrend untuk menentukan arah trend harga. Jika ia dinilai sebagai trend menurun, hanya pergi pendek, tidak lama. Jika ia dinilai sebagai trend menaik, hanya pergi panjang, tidak pendek.
Strategi dagangan Bugra menggabungkan kelebihan purata bergerak, Bollinger Bands dan penunjuk OTT. Ia boleh menyesuaikan kedudukan stop loss secara automatik dan mengurangkan kebarangkalian stop loss yang dicetuskan. Pada masa yang sama, dengan menggabungkan penunjuk penilaian trend, ia mengelakkan terperangkap dalam trend berayun.
Khususnya, kelebihan utama strategi ini ialah:
Strategi perdagangan Bugra juga mempunyai beberapa risiko, terutamanya dalam aspek berikut:
Tindakan balas adalah terutamanya:
Masih ada ruang untuk pengoptimuman lebih lanjut strategi perdagangan purata bergerak kinetik ganda:
Strategi dagangan purata bergerak berganda mengintegrasikan kelebihan pelbagai penunjuk. Ia boleh menyesuaikan kedudukan stop loss secara automatik, menilai isyarat pembalikan, dan mengenal pasti arah trend. Ia mempunyai kelebihan seperti keupayaan kawalan risiko yang kuat dan mudah difahami dan digunakan. Tetapi ia juga mempunyai risiko seperti terperangkap dan isyarat yang tidak tepat. Strategi ini boleh dioptimumkan dengan menggabungkan dengan penunjuk lain, mempelajari algoritma adaptif, dll. Secara umum, strategi dagangan purata bergerak berganda adalah strategi dagangan pecah yang praktikal.
/*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")