Strategi perdagangan Bugra adalah strategi yang menggabungkan indikator OTT yang dikembangkan oleh guru tercinta saya Anıl Özekşi dan indikator Wavetrend Oscillator oleh lonestar108. Ini membentuk indikator perdagangan yang sukses dengan mengintegrasikan kedua indikator. Strategi dapat melakukan perdagangan panjang dan pendek di pasar dua arah.
Strategi perdagangan Bugra pertama kali menghitung garis tengah Bollinger Bands, yang merupakan garis rata-rata bergerak MAvg. Kemudian, berdasarkan rentang persentase dan periode yang ditetapkan oleh pengguna, ia menghitung stop loss longStop dan stop loss shortStop. Ketika harga menembus rel atas, pergi panjang. Ketika harga menembus rel bawah, pergi pendek. Sinyal penutupan adalah ketika harga kembali ke sekitar rata-rata bergerak.
Secara khusus, indikator inti dari strategi ini adalah indikator OTT. Indikator OTT terdiri dari rata-rata bergerak dan garis batas. Ini menyesuaikan posisi garis batas sesuai dengan volatilitas pasar berdasarkan algoritma tertentu. Ketika harga menembus garis batas bawah OTT, pergi pendek. Ketika menembus garis batas atas OTT, pergi panjang.
Strategi ini juga menggunakan indikator Wavetrend untuk menentukan arah tren harga. Jika dinilai sebagai tren penurunan, hanya pergi pendek, tidak panjang. Jika dinilai sebagai tren kenaikan, hanya pergi panjang, tidak pendek.
Strategi perdagangan Bugra menggabungkan keuntungan dari moving average, Bollinger Bands dan indikator OTT. Ini dapat secara otomatis menyesuaikan posisi stop loss dan mengurangi kemungkinan stop loss dipicu. Pada saat yang sama, dengan menggabungkan indikator penilaian tren, ia menghindari terjebak dalam tren osilasi.
Secara khusus, keuntungan utama dari strategi ini adalah:
Strategi perdagangan Bugra juga memiliki beberapa risiko, terutama dalam aspek berikut:
Tindakan penanggulangan terutama:
Masih ada ruang untuk optimasi lebih lanjut dari strategi perdagangan rata-rata bergerak kinetik ganda:
Strategi perdagangan moving average dual mengintegrasikan keuntungan dari beberapa indikator. Ini dapat secara otomatis menyesuaikan posisi stop loss, menilai sinyal pembalikan, dan mengidentifikasi arah tren. Ini memiliki keuntungan seperti kemampuan pengendalian risiko yang kuat dan mudah dipahami dan digunakan. Tetapi juga memiliki risiko seperti terjebak dan sinyal yang tidak akurat. Strategi ini dapat lebih dioptimalkan dengan menggabungkan dengan indikator lain, mempelajari algoritma adaptif, dll. Secara umum, strategi perdagangan moving average dual adalah strategi perdagangan breakout yang praktis.
/*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")