ट्रेलिंग स्टॉप मूविंग एवरेज रणनीति


निर्माण तिथि: 2023-10-24 11:21:57 अंत में संशोधित करें: 2023-10-24 11:21:57
कॉपी: 0 क्लिक्स: 699
1
ध्यान केंद्रित करना
1617
समर्थक

ट्रेलिंग स्टॉप मूविंग एवरेज रणनीति

अवलोकन

इस रणनीति का मुख्य विचार एक स्वचालित ट्रेडिंग प्रणाली को डिजाइन करना है जो ट्रेंडिंग स्थितियों में लाभप्रदता के लिए चलती औसत और स्टॉप-लॉस ट्रैकिंग तंत्र का उपयोग करता है, जबकि पीछे हटने पर नियंत्रण रखता है।

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

  1. इस नीति में उपयोगकर्ताओं को कई अलग-अलग प्रकार के चलती औसत चुनने की अनुमति है, जिसमें सरल चलती औसत, सूचकांक चलती औसत, लागत चलती औसत आदि शामिल हैं। उपयोगकर्ता अपनी पसंद के अनुसार चलती औसत के प्रकारों का चयन कर सकते हैं।

  2. उपयोगकर्ता को चलती औसत की अवधि निर्धारित करने की आवश्यकता होती है। आम तौर पर, मध्यम और लघु लेनदेन में, चलती औसत की अवधि 20-60 के बीच होती है।

  3. एक बार जब आप एक चलती औसत चुनते हैं, तो रणनीति वास्तविक समय में चलती औसत की गणना करती है। जब कीमत बढ़ जाती है, तो चलती औसत को तोड़ने के लिए अधिक करें; जब कीमत गिरती है, तो चलती औसत को तोड़ने के लिए कम करें।

  4. रणनीति एक ट्रैक स्टॉप तंत्र का उपयोग करती है। जब स्थिति खोला जाता है, तो रणनीति गतिशील रूप से स्टॉप लाइन की स्थिति को समायोजित करने के लिए कीमत के साथ चलती औसत के संबंध की निरंतर निगरानी करती है। विशेष रूप से, स्टॉप लाइन की स्थिति उपयोगकर्ता द्वारा सेट किए गए स्टॉप प्रतिशत को जोड़ने / घटाने के बराबर होती है।

  5. उपयोगकर्ता स्टॉप लॉस प्रतिशत सेट कर सकता है। स्टॉप लॉस की सीमा जितनी अधिक होगी, उतनी ही अधिक होगी, जिससे स्टॉप लॉस की संवेदनशीलता कम होगी। स्टॉप लॉस की सीमा जितनी कम होगी, उतनी ही अधिक होगी, जिससे जोखिम कम होगा। स्टॉप लॉस प्रतिशत आमतौर पर 2% -5% के बीच सेट किया जाता है।

  6. एक बार स्थिति खोलने के बाद, यदि कीमत फिर से चलती औसत को तोड़ देती है, तो स्थिति को बंद कर दिया जाता है।

रणनीतिक लाभ

  • ट्रेंडिंग स्थितियों में तेजी से खोलने के लिए और अधिक मुनाफे के लिए
  • एक ट्रैक स्टॉप तंत्र के साथ, स्टॉप को स्थिति के अनुसार समायोजित किया जा सकता है, जिससे स्टॉप को बहुत छोटा होने से बचा जा सकता है
  • अपनी जोखिम वरीयताओं के अनुसार अलग-अलग चलती औसत और स्टॉप लॉस प्रतिशत चुनें
  • कई प्रकार के चलती औसत का समर्थन करता है, परीक्षण के माध्यम से सबसे अच्छा पैरामीटर खोजने के लिए
  • रणनीति तर्क सरल और स्पष्ट है, इसे समझना और संशोधित करना आसान है

जोखिम विश्लेषण

  • बाजार में उतार-चढ़ाव के दौरान, कीमतों को बार-बार चलती औसत के आसपास रखा जा सकता है, जिससे अक्सर पोजीशन खोले जाते हैं
  • यदि स्टॉप लॉस की सीमा बहुत अधिक है, तो नुकसान बढ़ सकता है
  • विभिन्न नस्लों और विभिन्न समय अवधि के लिए, चलती औसत और स्टॉप लॉस प्रतिशत के लिए इष्टतम पैरामीटर भिन्न हो सकते हैं
  • महत्वपूर्ण समाचार घटनाओं से पहले इस रणनीति का उपयोग करने से बचें

जोखिम को निम्न तरीकों से अनुकूलित और नियंत्रित किया जा सकता हैः

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

अनुकूलन दिशा

इस रणनीति को और अधिक अनुकूलित किया जा सकता हैः

  1. अन्य संकेतक की पुष्टि जोड़ें, संचय के दौरान बार-बार व्यापार से बचें। MACD, KD आदि संकेतक शामिल किए जा सकते हैं, केवल तभी स्थिति खोलें जब वे एक साथ संकेत देते हैं।

  2. विभिन्न प्रकार के चलती औसत का उपयोग करके संयोजन करना। उदाहरण के लिए, एक साथ 5 दिन की रेखा और 20 दिन की रेखा का उपयोग करना, केवल दो चलती औसत सिग्नल जारी करने के लिए खुले हैं।

  3. विभिन्न किस्मों के लिए अलग-अलग परीक्षण मापदंडों, इष्टतम मापदंडों की स्थापना। प्रत्येक किस्म और चक्र के लिए अलग-अलग मापदंडों की आवश्यकता होती है, अलग-अलग परीक्षण की आवश्यकता होती है।

  4. स्थिति की संख्या को बढ़ाने के लिए प्रबंधन की रणनीति। उदाहरण के लिए, एक निश्चित संख्या को खोलने के लिए सेट करें और फिर स्टॉप लॉस के साथ जोड़ें।

  5. एक दिन में अधिकतम पद खोलने की संख्या सेट करें या पद खोलने के अंतराल को सेट करें। अत्यधिक बार-बार व्यापार को प्रतिबंधित करें।

  6. मशीन लर्निंग एल्गोरिदम को जोड़ना, ऐतिहासिक डेटा के आधार पर पैरामीटर को गतिशील रूप से अनुकूलित करना। पैरामीटर को स्थिर सेटिंग से बचें।

  7. डीएलएम का उपयोग मूल्य रुझानों की भविष्यवाणी करने के लिए किया जाता है।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-23 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//attoCryp, @HikmetSezen58
strategy("MOST Multi MAs", overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
sx=input(defval = "close" ,title="Fiyat sec", options=[ "close", "high", "low", "open", "hl2", "hlc3", "hlco4", "hlcc4", "hlccc5"])
smox=input(defval = "HulleMA", title = "Hareketli Ortalama: ", options=["T3", "SMA", "EMA", "DEMA", "TEMA", "WMA", "VWMA", "SMMA", "EVWMA", "HullMA", "HulleMA", "LSMA", "ALMA", "TMA", "SSMA"])
timeFramemost = input(title="++++++++++++++++++++++++++++++++++++", defval="MOST Ayarlari:")
yuzde=input(defval=3.8, minval=0, step=0.1, title="Yuzde Oran")/100
ortalamauzunluk=input(defval=28, title="Periyot Uzunlugu", minval=1)
f=input(defval=0.4, step=0.1, title="T3 icin Factor", minval=0.01)
timeFrameadd=input(title="++++++++++++++++++++++++++++++++++++", defval="Diger Orta.Ayar:")
offsig=input(defval=4, title="LSMA icin Offset veya ALMA icin Sigma", minval=0)
offalma=input(defval=0.6, title="ALMA icin Offset", minval=0, step=0.01)
timeFramess=input(title="++++++++++++++++++++++++++++++++++++", defval="Baslangic-Bitis:")
gun_baslangic=input(defval=1, title="Baslangic Gunu", minval=1, maxval=31)
ay_baslangic=input(defval=1, title="Baslangic Ayi", minval=1, maxval=12)
yil_baslangic=input(defval=2017, title="Baslangic Yili", minval=2010)
gun_bitis=input(defval=1, title="Bitis Gunu", minval=1, maxval=31)
ay_bitis=input(defval=1, title="Bitis Ayi", minval=1, maxval=12)
yil_bitis = input(defval=2019, title="Bitis Yili", minval=2010)

// backtest icin baslangic ve bitis zamanlarini belirleme
baslangic=timestamp(yil_baslangic, ay_baslangic, gun_baslangic, 00, 00)
bitis=timestamp(yil_bitis, ay_bitis, gun_bitis, 23, 59) 
zamanaraligi() => true

//guncel fiyatti belirleme
guncelfiyat=sx=="high"?high : sx=="close"?close : sx=="low"?low : sx=="open"?open : sx=="hl2"?(high+low)/2 : sx=="hlc3"?(high+low+close)/3 : sx=="hlco4"?(high+low+close+open)/4 : sx=="hlcc4"?(high+low+close+close)/4 : sx=="hlccc5"?(high+low+close+close+close)/5 : close 

/////Ortalama Hesaplamalari/////
// Tillson T3
sm0(guncelfiyat,ortalamauzunluk,f) =>
    t3e1=ema(guncelfiyat, ortalamauzunluk)
    t3e2=ema(t3e1, ortalamauzunluk)
    t3e3=ema(t3e2, ortalamauzunluk)
    t3e4=ema(t3e3, ortalamauzunluk)
    t3e5=ema(t3e4, ortalamauzunluk)
    t3e6=ema(t3e5, ortalamauzunluk)
    c1=-f*f*f
    c2=3*f*f+3*f*f*f
    c3=-6*f*f-3*f-3*f*f*f
    c4=1+3*f+f*f*f+3*f*f
    s0=c1 * t3e6 + c2 * t3e5 + c3 * t3e4 + c4 * t3e3

// Basit ortalama
sm1(guncelfiyat,ortalamauzunluk) =>
    s1=sma(guncelfiyat, ortalamauzunluk)

// Ustel ortalama
sm2(guncelfiyat,ortalamauzunluk) =>
    s2=ema(guncelfiyat, ortalamauzunluk)

// Cift Ustel ortalama
sm3(guncelfiyat,ortalamauzunluk) =>
    s3=2*ema(guncelfiyat, ortalamauzunluk) - ema(ema(guncelfiyat, ortalamauzunluk), ortalamauzunluk)

// Uclu Ustel ortalama
sm4(guncelfiyat,ortalamauzunluk) =>
    s4=3*(ema(guncelfiyat, ortalamauzunluk) - ema(ema(guncelfiyat, ortalamauzunluk), ortalamauzunluk)) + ema(ema(ema(guncelfiyat, ortalamauzunluk), ortalamauzunluk), ortalamauzunluk)

// Agirlikli Ortalama  
sm5(guncelfiyat,ortalamauzunluk) =>
    s5=wma(guncelfiyat, ortalamauzunluk)

// Hacim Agirlikli Ortalama
sm6(guncelfiyat,ortalamauzunluk) =>
    s6=vwma(guncelfiyat, ortalamauzunluk)

// Smoothed
sm7(guncelfiyat,ortalamauzunluk) =>
    s7=0.0
    s7:=na(s7[1]) ? sma(guncelfiyat, ortalamauzunluk) : (s7[1] * (ortalamauzunluk - 1) + guncelfiyat) / ortalamauzunluk

// Hull Ortalama
sm8(guncelfiyat,ortalamauzunluk) =>
    s8=wma(2 * wma(guncelfiyat, ortalamauzunluk / 2) - wma(guncelfiyat, ortalamauzunluk), round(sqrt(ortalamauzunluk)))
    
// Hull Ustel Ortalama
sm81(guncelfiyat,ortalamauzunluk) =>
    s8=ema(2 * ema(guncelfiyat, ortalamauzunluk / 2) - ema(guncelfiyat, ortalamauzunluk), round(sqrt(ortalamauzunluk)))

// Least Square
sm9(guncelfiyat,ortalamauzunluk,offsig) =>
    s9=linreg(guncelfiyat, ortalamauzunluk, offsig)

// Arnaud Legoux
sm10(guncelfiyat, ortalamauzunluk, offalma, offsig) =>
    s10=alma(guncelfiyat, ortalamauzunluk, offalma, offsig)

// Triangular
sm11(guncelfiyat, ortalamauzunluk) =>
    s11=sma(sma(guncelfiyat, ortalamauzunluk),ortalamauzunluk)

// SuperSmoother filter
sm12(guncelfiyat,ortalamauzunluk) =>
    a1=exp(-1.414*3.14159 / ortalamauzunluk)
    b1=2*a1*cos(1.414*3.14159 / ortalamauzunluk)
    c2=b1
    c3=(-a1)*a1
    c1=1 - c2 - c3
    s12=0.0
    s12:=c1*(guncelfiyat + nz(guncelfiyat[1])) / 2 + c2*nz(s12[1]) + c3*nz(s12[2])
    
//Elastic Volume Weighted Moving Average
sm13(guncelfiyat,ortalamauzunluk) =>
    hacimtoplam=sum(volume, ortalamauzunluk)
    s13=0.0
    s13:=(nz(s13[1]) * (hacimtoplam - volume)/hacimtoplam) + (volume*guncelfiyat/hacimtoplam)

ortalamafiyat=smox=="T3"?sm0(guncelfiyat,ortalamauzunluk,f) : smox=="SMA"?sm2(guncelfiyat,ortalamauzunluk) : smox=="EMA"?sm2(guncelfiyat,ortalamauzunluk) : smox=="DEMA"?sm3(guncelfiyat,ortalamauzunluk) : smox=="TEMA"?sm4(guncelfiyat,ortalamauzunluk) : smox=="WMA"?sm5(guncelfiyat,ortalamauzunluk) : smox=="VWMA"?sm6(guncelfiyat,ortalamauzunluk) : smox=="SMMA"?sm7(guncelfiyat,ortalamauzunluk) : smox=="HullMA"?sm8(guncelfiyat,ortalamauzunluk) : smox=="HulleMA"?sm81(guncelfiyat,ortalamauzunluk) : smox=="LSMA"?sm9(guncelfiyat,ortalamauzunluk,offsig) : smox=="ALMA"?sm10(guncelfiyat, ortalamauzunluk, offalma, offsig) : smox=="TMA"?sm11(guncelfiyat,ortalamauzunluk) : smox=="SSMA"?sm12(guncelfiyat,ortalamauzunluk) : smox=="EVWMA"?sm13(guncelfiyat,ortalamauzunluk) : guncelfiyat

/////MOST'u hesaplama/////
stopfiyat=ortalamafiyat*yuzde
mostfiyat=0.0
mostfiyat:=iff(ortalamafiyat>nz(mostfiyat[1],0) and ortalamafiyat[1]>nz(mostfiyat[1],0),max(nz(mostfiyat[1],0),ortalamafiyat-stopfiyat),iff(ortalamafiyat<nz(mostfiyat[1],0) and ortalamafiyat[1]<nz(mostfiyat[1],0),min(nz(mostfiyat[1],0),ortalamafiyat+stopfiyat),iff(ortalamafiyat>nz(mostfiyat[1],0),ortalamafiyat-stopfiyat,ortalamafiyat+stopfiyat)))

mostcolor=ortalamafiyat>mostfiyat?lime:fuchsia
plot(mostfiyat, color=mostcolor, linewidth=4, title="Most-fiyat")

/////AL-SAT LONG-SHORT girislerini belirleme/////
long=ortalamafiyat>mostfiyat and ortalamafiyat[1]<mostfiyat[1]
short=ortalamafiyat<mostfiyat and ortalamafiyat[1]>mostfiyat[1]
if (long) 
    strategy.entry("AL-Long", strategy.long, when = zamanaraligi())
if (short) 
    strategy.entry("SAT-Short", strategy.short, when = zamanaraligi())