बोलिंगर बैंड रिवर्सल आधारित मात्रात्मक रणनीति

लेखक:चाओझांग, दिनांक: 2023-11-22 17:44:40
टैगः

img

अवलोकन

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

रणनीति तर्क

रणनीति लंबी प्रविष्टियों को निर्धारित करने के लिए आरएसआई संकेतक का उपयोग करती है। विशेष रूप से, यह जांचती है कि क्या सबसे हालिया बार की समापन मूल्य पिछली 6 बार की सबसे कम कीमत से कम है, इस बीच बोलिंगर बैंड चौड़ाई (बीबीडब्ल्यू) एक सीमा से अधिक है, और बोलिंगर बैंड अनुपात (बीबीआर) एक सीमा के भीतर है। यदि ये मानदंड पूरे हो जाते हैं, तो यह इंगित करता है कि कीमत उलट सकती है, इसलिए लंबी जाएं।

बाहर निकलना सरल है. जब आरएसआई 70 से ऊपर जाता है, यह दर्शाता है कि मूल्य अति गर्म है, लंबी स्थिति बंद करें.

लाभ विश्लेषण

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

इसके अलावा, रणनीति मापदंडों के प्रति संवेदनशील है। बीबीडब्ल्यू और बीबीआर को ट्यून करके, इसे विभिन्न उत्पादों के लिए अनुकूलित किया जा सकता है और बेहतर परिणाम प्राप्त किए जा सकते हैं।

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

मुख्य जोखिम यह है कि बीबी सही ढंग से कीमतों के उलटफेर की भविष्यवाणी नहीं करता है। यदि समय अनुचित है, तो यह आसानी से सबसे अच्छी प्रविष्टियों या फ्लोटिंग नुकसान को याद करने का कारण बनता है।

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

अनुकूलन दिशाएँ

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

  1. मापदंडों को अनुकूलित करें। विभिन्न उत्पादों के लिए बीबीडब्ल्यू, बीबीआर और अन्य मापदंडों को अधिक बारीकी से परीक्षण और समायोजित करें।

  2. अधिकतम घाटे को सीमित करने के लिए स्टॉप लॉस तंत्र, जैसे ट्रेसिंग स्टॉप लॉस और टाइम स्टॉप लॉस जोड़ें।

  3. प्रविष्टियों को अधिक विश्वसनीय बनाने के लिए अन्य संकेतकों, जैसे कि केडीजे और एमएसीडी को शामिल करें।

  4. बाहर निकलने के तर्क में सुधार करें. वर्तमान बाहर निकलना सरल है. लाभ लेने या उतार-चढ़ाव के आधार पर बाहर निकलने के साथ अनुकूलित कर सकते हैं.

निष्कर्ष

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


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

//@version=4

//study(title = "Bolinger strategy", overlay=true)
strategy("Bolinger strategy",currency="SEK",default_qty_value=10000,default_qty_type=strategy.cash,max_bars_back=50)
len = 5
src = close
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))


bbw3level = input(15, title="bbw3")
bbr3level = input(0.45, title="bbr3level")
bbrlower = input(0.4480, title="bbrlower")
bbrhigher = input(0.4560, title="bbrhigher")
sincelowestmin = input(7, title="sincelowestmin")
sincelowestmax = input(57, title="sincelowestmax")


length = input(20, minval=1)
mult = 20
src3 = close[3]
basis3 = sma(src3, length)
dev3 = mult * stdev(src3, length)
upper3 = basis3 + dev3
lower3 = basis3 - dev3
bbr3 = (src3 - lower3)/(upper3 - lower3)
bbw3 = (upper3-lower3)/basis3*100


basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
bbr = (src - lower)/(upper - lower)
bbw = (upper-lower)/basis*100

criteriamet = 0
crossUnderB0 = crossunder(bbr,0)

since_x_under = barssince(crossUnderB0)


sincelowest = barssince(close[6] > close[3] and close[5] > close[3] and close[4] > close[3] and close[2] > close[3] and close[1] > close[3] and close > close[3] and bbw3 > bbw3level and bbr3 < bbr3level) //  and bbr3 < 0 

if sincelowest > sincelowestmin and sincelowest < sincelowestmax and bbr > bbrlower and bbr < bbrhigher
	criteriamet := 1
else
	criteriamet := 0	
//plot (criteriamet)

//exit 
exitmet = 0
if rsi > 70
	exitmet := 1
else
	exitmet := 0

if criteriamet == 1
	strategy.entry("long", strategy.long)
if exitmet == 1
	strategy.close("long")



अधिक