डबल मूविंग एवरेज पर आधारित बुद्धिमान ट्रैकिंग ट्रेडिंग रणनीति


निर्माण तिथि: 2024-02-18 15:58:08 अंत में संशोधित करें: 2024-02-18 15:58:08
कॉपी: 2 क्लिक्स: 505
1
ध्यान केंद्रित करना
1617
समर्थक

डबल मूविंग एवरेज पर आधारित बुद्धिमान ट्रैकिंग ट्रेडिंग रणनीति

अवलोकन

द्वि-समानता स्मार्ट ट्रैकिंग ट्रेडिंग रणनीति एक समानता और एक विशिष्ट संकेतक के आधार पर एक प्रवृत्ति ट्रैकिंग रणनीति है। यह रणनीति दो अलग-अलग पैरामीटर सेट के साथ एक समानता निर्माण चैनल का उपयोग करती है, और ओटीटी संकेतक के साथ संयोजन में चैनल की ऊपरी और निचली सीमा निर्धारित करती है, जिससे कीमत की प्रवृत्ति पर स्मार्ट ट्रैकिंग संभव हो जाती है। जब कीमत चैनल को तोड़ती है, तो खरीद या बेचने की कार्रवाई होती है।

रणनीति सिद्धांत

यह रणनीति दो चलती औसत और ओटीटी संकेतकों का उपयोग करके अनुकूलन चैनल का निर्माण करती है।

  1. 5 की लंबाई के साथ CLOSE समापन मूल्य और कस्टम औसत रेखा के रूप में इनपुट के साथ त्वरित MAvg की गणना करें;

  2. MAvg और सेटिंग प्रतिशत के आधार पर, चैनल पर निचली सीमा लंबी लाइन के स्थान पर लंबे स्टॉप और छोटी लाइन के स्थान पर छोटे स्टॉप की गणना करें;

  3. ओटीटी सूचक में चैनल मोबाइल स्टॉप लॉस एमटी की गणना करें, चैनल की कीमत ओटीटी को बहु-खाली स्थिति के आधार पर गणना करें;

  4. जब कीमत ओटीटी को पार करती है, तो एक ट्रेडिंग सिग्नल उत्पन्न होता है।

इस प्रक्रिया के माध्यम से, रणनीति को वास्तविक समय में मूल्य परिवर्तन के रुझानों को ट्रैक करने की अनुमति मिलती है, जिससे ट्रेडिंग सिग्नल उत्पन्न होते हैं।

रणनीतिक लाभ

इस रणनीति के निम्नलिखित फायदे हैं:

  1. दो-तरफा चैनल संरचना, जो कीमतों के रुझानों को प्रभावी ढंग से पकड़ती है;
  2. ओटीटी सूचकांक चैनल मोबाइल स्टॉप लॉस सेट करता है और जोखिम को नियंत्रित करता है।
  3. मूल्य परिवर्तनों के लिए त्वरित प्रतिक्रिया के लिए एक अनुकूलित चैनल संरचना;
  4. रणनीति पैरामीटर की सेटिंग लचीली है और विभिन्न किस्मों और चक्रों के लिए अनुकूलित की जा सकती है।

रणनीतिक जोखिम

इस रणनीति के कुछ जोखिम भी हैं:

  1. दोहरी-समान रेखाएं आसानी से विचलित हो सकती हैं और गलत संकेत दे सकती हैं।
  2. ओटीटी पैरामीटर की गलत सेटिंग्स, जो अति-आक्रामक या रूढ़िवादी हो सकती हैं, रणनीति के प्रदर्शन को प्रभावित कर सकती हैं;
  3. रणनीति केवल तकनीकी संकेतकों पर आधारित है, बुनियादी तत्वों के बिना।

उपरोक्त जोखिमों के लिए, पैरामीटर अनुकूलन, अन्य संकेतकों या बुनियादी फ़िल्टर संकेतों के साथ संयोजन के माध्यम से सुधार और अनुकूलन किया जा सकता है।

रणनीति अनुकूलन दिशा

इस रणनीति को निम्नलिखित दिशाओं में अनुकूलित किया जा सकता हैः

  1. औसत रेखा पैरामीटर का अनुकूलन करें, उपयुक्त किस्मों और चक्रों के लिए पैरामीटर संयोजन का चयन करें;
  2. चैनल बैंडविड्थ पैरामीटर को अनुकूलित करना, ट्रैकिंग संवेदनशीलता और स्थिरता को संतुलित करना;
  3. ट्रेड वॉल्यूम के आधार पर सिग्नल फ़िल्टरिंग;
  4. मूलभूत परिस्थितियों के साथ व्यापार की दिशा फ़िल्टर करें।

संक्षेप

इस रणनीति के लिए कुल मिलाकर एक द्वि-समान लाइन चैनल और ओटीटी संकेतकों के आधार पर प्रवृत्ति का पालन करने की रणनीति है, मुख्य विचार अनुकूलन चैनल बनाने के लिए है, और व्यापार के संकेतों को तोड़ने के लिए उत्पन्न. इस रणनीति के कुछ फायदे हैं, लेकिन यह भी संभव सुधार के लिए जगह है. पैरामीटर और नियम के साथ अनुकूलित, इस रणनीति को एक उच्च दक्षता ट्रेडिंग रणनीति परीक्षण के लायक हो सकता है.

रणनीति स्रोत कोड
/*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")