गतिशील चलती औसत रणनीति

लेखक:चाओझांग, दिनांक: 2023-11-23 11:39:24
टैगः

img

अवलोकन

इस रणनीति को गतिशील चलती औसत रणनीति कहा जाता है। मुख्य विचार प्रवृत्ति निर्धारित करने के लिए चलती औसत की दिशा और मूल्य के साथ इसके संबंध का उपयोग करना है। प्रवृत्ति की दिशा के अनुसार बाजार में प्रवेश करें और कोई प्रवृत्ति नहीं होने पर पदों को बंद करें।

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

यह रणनीति मूविंग एवरेज की गणना करने के लिए लंबाई की अवधि के दौरान स्रोत मूल्य का उपयोग करती है, जहां स्रोत मूल्य OHLC4, HLC3, बंद मूल्य आदि हो सकते हैं। परिणामस्वरूप मूविंग एवरेज को SMA के रूप में परिभाषित किया जाता है। फिर लंबी रेखा और छोटी रेखा को मूविंग एवरेज मूल्य के प्रतिशत के आधार पर निर्धारित किया जाता है ताकि यह निर्धारित किया जा सके कि क्या हम वर्तमान में ऊपर या नीचे की ओर प्रवृत्ति में हैं।

विशेष रूप से, शॉर्ट लाइन की गणना इस प्रकार की जाती हैः शॉर्टलाइन = एसएमए * ((100 + शॉर्टलेवल) / 100), जहां शॉर्टलेवल उपयोगकर्ता द्वारा निर्धारित एक सकारात्मक संख्या है, जो उस प्रतिशत का प्रतिनिधित्व करती है जो शॉर्ट लाइन मूविंग एवरेज से ऊपर है। लंबी लाइन समान है, जिसकी गणना इस प्रकार की जाती हैः लॉन्गलाइन = एसएमए * ((100 + लॉन्गलेवल) / 100), जहां लॉन्गलेवल उपयोगकर्ता द्वारा निर्धारित एक नकारात्मक संख्या है, जो उस प्रतिशत का प्रतिनिधित्व करती है जो लंबी लाइन मूविंग एवरेज से नीचे है।

इस प्रकार, लघु रेखा मूल्य हमेशा चलती औसत से अधिक होता है, और लंबी रेखा मूल्य हमेशा चलती औसत से कम होता है। जब कीमत लघु रेखा से ऊपर जाती है, तो यह दर्शाता है कि एक ऊपर की प्रवृत्ति शुरू होती है। इस समय यदि needlong लंबी रेखा की अनुमति देता है, तो यह लंबी रेखा मूल्य स्तर पर एक लंबा आदेश रखेगा। जब कीमत लंबी रेखा से नीचे जाती है, तो यह दर्शाता है कि एक गिरावट की प्रवृत्ति शुरू होती है। इस समय यदि needshort छोटी रेखा की अनुमति देता है, तो यह छोटी रेखा मूल्य स्तर पर एक छोटा आदेश रखेगा।

चाहे वह लंबी हो या छोटी, जब कीमत चलती औसत की ओर लौटती है, तो इसका मतलब है कि प्रवृत्ति समाप्त हो जाती है। इस समय यह सभी पिछली स्थिति को बंद कर देगा।

तो प्रवृत्ति दिशा और संबंधित प्रविष्टियों और मौजूद हैं लंबी / छोटी लाइनों और चलती औसत लाइन के बीच गतिशील संबंध से निर्धारित कर रहे हैं।

लाभ

इस रणनीति का सबसे बड़ा लाभ यह है कि गतिशील रूप से लंबी और छोटी लाइनों को सेट करके, यह अपेक्षाकृत लचीले ढंग से मुख्य प्रवृत्ति दिशा को पकड़ सकता है।

दूसरा, चलती औसत का स्वयं कुछ हद तक फ़िल्टरिंग प्रभाव होता है, जिससे कुछ हद तक उच्च आवृत्ति उतार-चढ़ाव से फंसने से बचा जाता है।

जोखिम

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

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

सुधार

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

  1. स्टॉप लॉस लॉजिक जोड़ें। चूंकि चलती औसत में रुझानों का न्याय करने में देरी होती है, इसलिए फंसने से पूरी तरह से बचा नहीं जा सकता है। इसलिए उचित ट्रेलिंग स्टॉप जोखिम को और कम कर सकते हैं।

  2. लम्बी/लघु रेखाओं के मापदंडों का अनुकूलन करें. वर्तमान में लम्बी/लघु रेखाएं चलती औसत से विचलित होने के प्रतिशत तय हैं. इन्हें इष्टतम मान खोजने के लिए विभिन्न डेटासेट पर परीक्षण किया जा सकता है.

  3. प्रवृत्ति शक्ति निर्णय जोड़ें. लंबी / छोटी लाइन पदों के अलावा, एल्गोरिदम कमजोर प्रवृत्ति संकेतों से त्रुटियों से बचने के लिए प्रवृत्ति की ताकत का भी न्याय कर सकते हैं।

  4. क्रॉस-प्रोडक्ट प्रदर्शन को सत्यापित करने के लिए अन्य ट्रेडिंग उत्पादों पर चलती औसत लागू करने का प्रयास करें।

निष्कर्ष

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


/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's ShiftMA Strategy v1.1", shorttitle = "ShiftMA str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 100)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
per = input(3, title = "Length")
src = input(ohlc4, title = "Source")
shortlevel = input(10.0, title = "Short line (red)")
longlevel = input(-5.0, title = "Long line (lime)")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//SMAs
sma = sma(src, per) 
//sma = lowest(low, per)
shortline = sma * ((100 + shortlevel) / 100)
longline = sma * ((100 + longlevel) / 100)
plot(shortline, linewidth = 2, color = red, title = "Short line")
plot(sma, linewidth = 2, color = blue, title = "SMA line")
plot(longline, linewidth = 2, color = lime, title = "Long line")

//plot(round(buy * 100000000), linewidth = 2, color = lime)
//plot(round(sell * 100000000), linewidth = 2, color = red)

//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if (not na(close[per])) and size == 0 and needlong
    strategy.entry("L", strategy.long, lot, limit = longline, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if (not na(close[per])) and size == 0 and needshort
    strategy.entry("S", strategy.short, lot, limit = shortline, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if (not na(close[per])) and size > 0 
    strategy.entry("Close", strategy.short, 0, limit = sma, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if (not na(close[per])) and size < 0 
    strategy.entry("Close", strategy.long, 0, limit = sma, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

अधिक