Chiến lược giao dịch Bugra là một chiến lược kết hợp chỉ số OTT được phát triển bởi giáo viên thân Anıl Özekşi của tôi và chỉ số Wavetrend Oscillator của lonestar108. Nó tạo thành một chỉ số giao dịch thành công bằng cách tích hợp hai chỉ số. Chiến lược có thể giao dịch dài và ngắn trong thị trường hai chiều.
Chiến lược giao dịch Bugra đầu tiên tính toán đường giữa của Bollinger Bands, đó là đường trung bình động MAvg. Sau đó, dựa trên phạm vi phần trăm và thời gian được thiết lập bởi người dùng, nó tính toán stop loss longStop dài và stop loss shortStop ngắn. Khi giá vượt qua đường ray trên, đi dài. Khi nó vượt qua đường ray dưới, đi ngắn.
Đặc biệt, chỉ số cốt lõi của chiến lược này là chỉ số OTT. Chỉ số OTT bao gồm đường trung bình động và đường ranh giới. Nó điều chỉnh vị trí của đường ranh giới theo sự biến động của thị trường dựa trên một số thuật toán nhất định. Khi giá vượt qua đường ranh giới dưới OTT, đi ngắn. Khi nó vượt qua đường ranh giới trên OTT, đi dài.
Chiến lược này cũng sử dụng chỉ số Wavetrend để xác định hướng của xu hướng giá. Nếu được đánh giá là xu hướng giảm, chỉ đi ngắn, không dài. Nếu được đánh giá là xu hướng tăng, chỉ đi dài, không ngắn.
Chiến lược giao dịch Bugra kết hợp các lợi thế của đường trung bình động, Bollinger Bands và chỉ số OTT. Nó có thể tự động điều chỉnh các vị trí dừng lỗ và giảm xác suất dừng lỗ được kích hoạt. Đồng thời, bằng cách kết hợp các chỉ số đánh giá xu hướng, nó tránh bị mắc kẹt trong xu hướng dao động.
Cụ thể, những lợi thế chính của chiến lược này là:
Chiến lược thương mại Bugra cũng có một số rủi ro, chủ yếu là trong các khía cạnh sau:
Các biện pháp đối phó chủ yếu là:
Vẫn còn chỗ để tối ưu hóa hơn nữa chiến lược giao dịch trung bình động động kép:
Chiến lược giao dịch trung bình động kép tích hợp các lợi thế của nhiều chỉ số. Nó có thể tự động điều chỉnh các vị trí dừng lỗ, đánh giá tín hiệu đảo ngược và xác định hướng xu hướng. Nó có những lợi thế như khả năng kiểm soát rủi ro mạnh mẽ và dễ hiểu và sử dụng. Nhưng nó cũng có những rủi ro như bị mắc kẹt và tín hiệu không chính xác. Chiến lược này có thể được tối ưu hóa hơn nữa bằng cách kết hợp với các chỉ số khác, nghiên cứu các thuật toán thích nghi, v.v. Nói chung, chiến lược giao dịch trung bình động kép là một chiến lược giao dịch đột phá thực tế.
/*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")