
द्वि-समानता स्मार्ट ट्रैकिंग ट्रेडिंग रणनीति एक समानता और एक विशिष्ट संकेतक के आधार पर एक प्रवृत्ति ट्रैकिंग रणनीति है। यह रणनीति दो अलग-अलग पैरामीटर सेट के साथ एक समानता निर्माण चैनल का उपयोग करती है, और ओटीटी संकेतक के साथ संयोजन में चैनल की ऊपरी और निचली सीमा निर्धारित करती है, जिससे कीमत की प्रवृत्ति पर स्मार्ट ट्रैकिंग संभव हो जाती है। जब कीमत चैनल को तोड़ती है, तो खरीद या बेचने की कार्रवाई होती है।
यह रणनीति दो चलती औसत और ओटीटी संकेतकों का उपयोग करके अनुकूलन चैनल का निर्माण करती है।
5 की लंबाई के साथ CLOSE समापन मूल्य और कस्टम औसत रेखा के रूप में इनपुट के साथ त्वरित MAvg की गणना करें;
MAvg और सेटिंग प्रतिशत के आधार पर, चैनल पर निचली सीमा लंबी लाइन के स्थान पर लंबे स्टॉप और छोटी लाइन के स्थान पर छोटे स्टॉप की गणना करें;
ओटीटी सूचक में चैनल मोबाइल स्टॉप लॉस एमटी की गणना करें, चैनल की कीमत ओटीटी को बहु-खाली स्थिति के आधार पर गणना करें;
जब कीमत ओटीटी को पार करती है, तो एक ट्रेडिंग सिग्नल उत्पन्न होता है।
इस प्रक्रिया के माध्यम से, रणनीति को वास्तविक समय में मूल्य परिवर्तन के रुझानों को ट्रैक करने की अनुमति मिलती है, जिससे ट्रेडिंग सिग्नल उत्पन्न होते हैं।
इस रणनीति के निम्नलिखित फायदे हैं:
इस रणनीति के कुछ जोखिम भी हैं:
उपरोक्त जोखिमों के लिए, पैरामीटर अनुकूलन, अन्य संकेतकों या बुनियादी फ़िल्टर संकेतों के साथ संयोजन के माध्यम से सुधार और अनुकूलन किया जा सकता है।
इस रणनीति को निम्नलिखित दिशाओं में अनुकूलित किया जा सकता हैः
इस रणनीति के लिए कुल मिलाकर एक द्वि-समान लाइन चैनल और ओटीटी संकेतकों के आधार पर प्रवृत्ति का पालन करने की रणनीति है, मुख्य विचार अनुकूलन चैनल बनाने के लिए है, और व्यापार के संकेतों को तोड़ने के लिए उत्पन्न. इस रणनीति के कुछ फायदे हैं, लेकिन यह भी संभव सुधार के लिए जगह है. पैरामीटर और नियम के साथ अनुकूलित, इस रणनीति को एक उच्च दक्षता ट्रेडिंग रणनीति परीक्षण के लायक हो सकता है.
/*backtest
start: 2023-02-11 00:00:00
end: 2024-02-17 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")