
Chiến lược giao dịch hai động lực đồng tuyến là một chiến lược sử dụng chỉ số OTT và chỉ số dao động Wavetrend. Nó kết hợp với chỉ số OTT được phát triển bởi giáo viên Anıl Özekşi và chỉ số dao động Wavetrend của lonestar108 để tạo thành một chỉ số giao dịch thành công. Chiến lược này có thể được thực hiện trong thị trường hai chiều.
Chiến lược giao dịch theo đường thẳng năng lượng nhị phân đầu tiên tính toán đường trung tâm của dải Brin, tức là đường trung bình di chuyển MAvg. Sau đó, tính toán điểm dừng chân dài và điểm dừng chân ngắn theo phạm vi phần trăm và chu kỳ mà người dùng đặt.
Cụ thể, 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 và đường biên, điều chỉnh vị trí của đường biên theo mức độ biến động của thị trường theo một số thuật toán. Khi giá giảm xuống đường biên OTT, hãy tháo; khi giá vượt qua đường biên OTT, hãy tháo.
Chiến lược này đồng thời sử dụng chỉ số Wavetrend để xác định xu hướng của giá, chỉ cần không làm nhiều nếu xác định xu hướng giảm; nếu xác định xu hướng tăng, chỉ cần không làm nhiều.
Chiến lược giao dịch đường thẳng động lực kép kết hợp các lợi thế của các chỉ số trung bình di chuyển, băng Brin và OTT, có thể tự động điều chỉnh vị trí dừng lỗ, giảm khả năng dừng lỗ được kích hoạt. Đồng thời kết hợp các chỉ số đánh giá xu hướng để tránh bị mắc kẹt trong xu hướng dao động.
Các lợi thế chính của chiến lược này là:
Chiến lược giao dịch theo đường thẳng của Binary Options cũng có một số rủi ro, chủ yếu tập trung vào các khía cạnh sau:
Các biện pháp đối phó chính là:
Tuy nhiên, chiến lược giao dịch đồng tuyến của Binance vẫn có thể được tối ưu hóa hơn:
Chiến lược giao dịch đồng bộ năng lượng động kép tích hợp các ưu điểm của nhiều chỉ số, có thể tự động điều chỉnh mức dừng lỗ, đánh giá tín hiệu đảo ngược, nhận ra hướng xu hướng. Nó có khả năng kiểm soát rủi ro mạnh mẽ, dễ hiểu sử dụng và các lợi thế khác.
/*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")