
इस रणनीति को मूल्य चैनल वीडब्ल्यूपी ट्रेडिंग रणनीति कहा जाता है, यह एक मूल्य चैनल पर आधारित रणनीति है, जो वीडब्ल्यूपी ट्रेडिंग को लागू करती है। इस रणनीति का मुख्य विचार यह हैः मूल्य चैनल के भीतर, वीडब्ल्यूपी सूचक की औसत रेखा और उसके ऊपर-नीचे विचलन चैनल लाइन का उपयोग करके खरीदने और बेचने का निर्णय लें, चैनल लाइन को तोड़ने पर कुल संपत्ति के प्रतिशत के अनुसार स्थिति खोलें, वीडब्ल्यूपी औसत रेखा पर लौटने पर स्थिति को बंद करें।
यह रणनीति VWAP सूचकांक के माध्यम से वर्तमान कीमतों के लिए औसत लेनदेन मूल्य की गणना करती है। VWAP मूल्य का प्रतिनिधित्व करता है, जो लेनदेन की मात्रा और लेनदेन की मात्रा का अनुपात है। VWAP सूचकांक वर्तमान मूल्य और ऐतिहासिक लेनदेन की औसत कीमतों के विचलन को दर्शाता है।
रणनीति VWAP सूचक की औसत रेखा और उसके विचलन चैनल लाइनों का उपयोग करती है। विचलन चैनल लाइनों के अनुपात को पैरामीटर तालिका longlevel1 और shortlevel1 के माध्यम से सेट किया जाता है। जब कीमत विचलन चैनल लाइन को तोड़ती है, तो पैरामीटर तालिका lotsizelong तालिका के अनुसार पदों का प्रतिशत अधिक होता है; जब कीमत विचलन चैनल लाइन को तोड़ती है, तो पैरामीटर तालिका lotsizeshort तालिका के अनुसार पदों का प्रतिशत खाली होता है। स्थिति खोलने के बाद, जब कीमत VWAP लाइन के औसत के पास वापस आती है, तो स्थिति को छोड़ने के लिए चुनें।
इस रणनीति में पैरामीटर की सेटिंग्स पूरी तरह से चैनल ट्रेडिंग के विचार को दर्शाती हैं। उपयोगकर्ता अपनी पसंद के अनुसार चैनल की चौड़ाई और स्थिति अनुपात आकार को समायोजित कर सकते हैं, जिससे व्यापार की आवृत्ति के विभिन्न स्तरों को प्राप्त किया जा सकता है।
इस ट्रेडिंग रणनीति के निम्नलिखित फायदे हैं:
चूंकि VWAP संकेतक कीमतों के औसत स्तर को अच्छी तरह से दर्शाता है, इसलिए इसकी चैनल लाइन के आधार पर व्यापार करने से मूल्य केंद्रों को प्रभावी ढंग से लॉक किया जा सकता है, जिससे अल्पकालिक उतार-चढ़ाव की सीमा से बचा जा सकता है। साथ ही, विभिन्न पैरामीटर चैनलों को संयोजित करने के लिए, स्टॉक बनाने के लिए, जोखिम को प्रभावी ढंग से नियंत्रित करने में सक्षम है, ताकि एकतरफा जोखिम के लिए स्टॉक को बंद करने से बचा जा सके। अंत में, समय पर स्टॉप को VWAP औसत रेखा के पास स्टॉक करने के लिए वापस आकर, कीमतों के उलट जाने से होने वाले नुकसान को कम किया जा सकता है।
इस रणनीति के कुछ जोखिम भी हैं, जिनके बारे में ध्यान देने की आवश्यकता हैः
VWAP संकेतक उच्च आवृत्ति वाले व्यापारिक उतार-चढ़ाव के प्रति संवेदनशील नहीं है, यदि कीमतों में चरम उछाल या अल्पकालिक असामान्यताएं होती हैं, तो यह अनावश्यक व्यापारिक संकेतों और नुकसान को ट्रिगर कर सकता है। इसके अलावा, यदि चैनल पैरामीटर बहुत ढीला सेट किया जाता है, तो यह मूल्य-पारदर्शिता के लिए एक अमान्य संकेत बनाने के लिए आसान है। अंत में, यदि रिटर्न ऑपरेशन के लिए फ्लैट रेंज पोजीशन बहुत व्यापक है, तो यह इष्टतम स्टॉप टाइमर से चूक सकता है और नुकसान को पकड़ सकता है।
प्रतिरोध तर्कसंगत मूल्यांकन पैरामीटर सेटिंग है, उचित रूप से चैनल पैरामीटर को समायोजित करें; कीमत असामान्यताओं का न्याय करने के लिए अन्य संकेतकों के साथ संयोजन में, अंधा अनुवर्ती से बचें; अंत में, विभिन्न स्तरों के चैनल और रिटर्न रेंज के पैरामीटर का मूल्यांकन करें, बेहतर रोकथाम प्रभाव प्राप्त करें।
इस रणनीति को निम्नलिखित दिशाओं में अनुकूलित किया जा सकता हैः
अधिक स्तरों के मार्गों को जोड़ा जा सकता है, और संयोजन मापदंडों को अनुकूलित किया जा सकता है, अधिक स्थिर व्यापार प्रभाव प्राप्त करने के लिए। इसके अलावा, व्यापार की मात्रा के निर्णय नियम को जोड़ा जा सकता है, व्यापार के नुकसान के कारण अप्रभावी मूल्य उछाल से बचा जा सकता है। अंत में, स्टॉप लॉस नियम भी सेट किया जा सकता है, जब स्थिति की हानि एक निश्चित अनुपात तक पहुंच जाती है, तो स्टॉप लॉस को छोड़ दें, जोखिम को प्रभावी ढंग से नियंत्रित करें।
इस रणनीति में वीडब्लूएपी संकेतक और मूल्य चैनल को मिलाया गया है, जिससे एक अपेक्षाकृत स्थिर ट्रेडिंग रणनीति प्राप्त की गई है। रणनीति पैरामीटर सेट लचीला है, उपयोगकर्ता अपनी पसंद के अनुसार समायोजित कर सकते हैं। यह रणनीति मूल्य की केंद्रीय दिशा का प्रभावी ढंग से आकलन कर सकती है, पैरामीटर संयोजन और बैच निर्माण के माध्यम से स्थिर लाभप्रदता प्राप्त कर सकती है। हालांकि रणनीति में कुछ सुधार की जगह है, लेकिन कुल मिलाकर यह एक अधिक व्यावहारिक मात्रा में ट्रेडिंग रणनीति है।
/*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 = "VWAP Bands Backtest", shorttitle = "VWAP Bands Backtest", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)
//Settings
lotsizelong = input(100, defval = 100, minval = 0, maxval = 10000, title = "Lot long, %")
lotsizeshort = input(100, defval = 100, minval = 0, maxval = 10000, title = "Lot short, %")
short1 = input(true, title = "short 1")
long1 = input(true, title = "long 1")
shortlevel1 = input(1.0, title = "Short line 1")
longlevel1 = input(-1.0, title = "Long line 1")
needoffset = input(true, title = "Offset")
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")
//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick
truetime = true
//VWAP
ma = vwap(hlc3)
//Levels
longline1 = long1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close
shortline1 = short1? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close
//Lines
colorlong1 = long1 ? color.lime : na
colorshort1 = short1 ? color.red : na
offset = needoffset ? 1 : 0
plot(shortline1, offset = offset, color = colorshort1, title = "Short line 1")
plot(ma, offset = offset, color = color.blue, title = "MA line")
plot(longline1, offset = offset, color = colorlong1, title = "Long line 1")
//Trading
lotlong = 0.0
lotshort = 0.0
lotlong := size == 0 ? (strategy.equity / close) * (lotsizelong / 100) : lotlong[1]
lotshort := size == 0 ? (strategy.equity / close) * (lotsizeshort / 100) : lotshort[1]
if ma > 0
if lotlong > 0
lotslong = 0.0
lotslong := strategy.position_size > 0 ? round(strategy.position_size / lotlong) : 0.0
strategy.entry("L1", strategy.long, lotlong, limit = longline1, when = (lotslong == 0 and long1 and truetime))
if lotshort > 0
lotsshort = 0.0
lotsshort := strategy.position_size < 0 ? round(strategy.position_size / lotshort) : 0.0
strategy.entry("S1", strategy.short, lotshort, limit = shortline1, when = (lotsshort == 0 and short1 and truetime))
if strategy.position_size > 0
strategy.exit("TPL", "L1", limit = ma)
if strategy.position_size < 0
strategy.exit("TPS", "S1", limit = ma)
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()
strategy.cancel("L1")
strategy.cancel("S1")
strategy.cancel("TPL")
strategy.cancel("TPS")