
Bollinger Bands Strategy (बोलिंगर बैंड्स रणनीति) एक क्लासिक रणनीति है जिसमें बुलिंग बैंड्स का उपयोग ट्रेंड ट्रैक करने और ओवरबॉय ओवरसोल सिग्नल के लिए किया जाता है। इस संस्करण में मूल रणनीति के आधार पर जोखिम को नियंत्रित करने के लिए एक स्टॉप-लॉस तंत्र जोड़ा गया है।
रणनीति ब्रीनिंग बैंड के ऊपरी और निचले ट्रैक के माध्यम से बाजार के ओवरबॉय और ओवरबॉय को निर्धारित करती है, ब्रीनिंग बैंड को ट्रैक करके ट्रेंड ट्रैकिंग की जाती है। ब्रीनिंग बैंड के ऊपरी और निचले ट्रैक के बीच का क्षेत्र वर्तमान बाजार के उतार-चढ़ाव की सीमा को दर्शाता है। ब्रीनिंग बैंड मध्य ट्रैक, ऊपरी और निचले ट्रैक से बना है, मध्य ट्रैक एन-दिन की सरल चलती औसत है, और ऊपर और नीचे के ट्रैक द्वारा निर्धारित किया गया है।
ब्लिंक बैंड एक तकनीकी संकेतक है जो बाजार में उतार-चढ़ाव और उतार-चढ़ाव की मात्रा को दर्शाता है। जब कीमत ब्लिंक बैंड के निचले हिस्से के पास पहुंचती है, तो यह दर्शाता है कि बाजार ओवरसोल्ड है, और इस समय लगातार होने वाले अंतराल को भरने की अधिक संभावना है। रिवर्स विशेषता के आधार पर, एक बहुविकल्पी स्थिति बनाने पर विचार किया जाना चाहिए। जब कीमत ब्लिंक बैंड के ऊपरी हिस्से के पास पहुंचती है, तो यह दर्शाता है कि बाजार ओवरबॉट स्थिति में हो सकता है।
इस रणनीति में बुरिन बैंड के ओवरबॉय और ओवरसोल सिग्नल को शामिल किया गया है ताकि ट्रेंड ट्रैक पोजीशन स्थापित किया जा सके और जोखिम को नियंत्रित करने के लिए स्टॉप लॉस मैकेनिज्म को जोड़ा जा सके।
जब कीमत ऊपर से ब्रीनिंग बैंड के नीचे ट्रैक पर होती है, तो यह दर्शाता है कि बाजार ओवरसोल्ड क्षेत्र से उचित क्षेत्र में प्रवेश कर रहा है, इस समय एक बहुस्तरीय स्थिति बनाई जा सकती है। जब कीमत नीचे से ब्रीनिंग बैंड के नीचे ट्रैक पर होती है, तो यह दर्शाता है कि बाजार ओवरबॉय क्षेत्र में प्रवेश कर रहा है, इस समय एक खाली स्थिति बनाई जा सकती है।
स्थिति बनाने के बाद, जोखिम को नियंत्रित करने के लिए एक निश्चित प्रतिशत का स्टॉप लेवल सेट करें। जब नुकसान सेट स्टॉप मार्जिन से अधिक हो, तो स्टॉप लॉस वर्तमान स्थिति से बाहर निकलता है, जिससे अत्यधिक नुकसान से बचा जा सके।
यह रणनीति, बुलिन बैंड सूचकांक के साथ मिलकर, ओवरबॉट और ओवरसोल्ड क्षेत्रों का आकलन करती है, जो कि ऊपरी और निचले ट्रैक के साथ कीमतों के क्रॉसिंग के आकलन के माध्यम से कम-उच्च-उच्च-उच्च-उच्च-उच्च-उच्च-उच्च-उच्च-उच्च-उच्च-उच्च-उच्च-उच्च-उच्च-उच्च-उच्च है।
ब्रिन बैंड की अस्थिरता का उपयोग करके ट्रेडों को ट्रेंड करें
एकल लेनदेन के अधिकतम नुकसान को प्रभावी ढंग से नियंत्रित करने के लिए अतिरिक्त रोकथाम तंत्र
ट्रेंड ट्रैकिंग और स्टॉप लॉस के संयोजन से स्थिर रिटर्न
ब्रिन बैंड के पैरामीटर सेटिंग्स ट्रेडिंग सिग्नल की गुणवत्ता को प्रभावित करते हैं। मध्य रेल लंबाई n और मानक अंतर गुणांक k को विभिन्न बाजारों के अनुसार उचित रूप से सेट करने की आवश्यकता होती है, अन्यथा यह ट्रेडिंग सिग्नल की सटीकता को प्रभावित करता है।
स्टॉप लॉस की सेटिंग बहुत बड़ी या बहुत छोटी हो सकती है, जो कि आय की स्थिरता को प्रभावित कर सकती है। स्टॉप लॉस की सेटिंग बहुत बड़ी है, जिससे एकल नुकसान का जोखिम बढ़ जाता है, और स्टॉप लॉस को ट्रिगर करने की संभावना बढ़ जाती है। विभिन्न किस्मों के आधार पर उचित स्टॉप लॉस प्रतिशत की आवश्यकता होती है।
ट्रेडिंग सिग्नल की सटीकता को बढ़ाने के लिए अन्य संकेतकों के साथ सिग्नल फ़िल्टरिंग पर विचार किया जा सकता है।
विभिन्न पोजीशन समय सेटिंग्स का परीक्षण किया जा सकता है, जैसे कि घंटों के स्तर या कम चक्र वाले ब्रिन बैंड के साथ अधिक आवृत्ति वाले ट्रेडिंग के लिए, धन का उपयोग करने की दक्षता में सुधार करना।
यह रणनीति एक सामान्य प्रवृत्ति-अनुवर्ती रणनीति है, जिसमें बुरिन बैंड के साथ ओवरबॉट ओवरसोल्ड क्षेत्र का निर्धारण करने के लिए एक स्थिति स्थापित की जाती है, जो जोखिम को नियंत्रित करने के लिए स्टॉप-लॉस को बढ़ाता है। अधिक सटीक ट्रेडिंग सिग्नल और स्टॉप-लॉस स्तरों के साथ-साथ पैरामीटर सेटिंग को अनुकूलित करके, स्थिर लाभ प्राप्त किया जा सकता है।
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Bollinger Bands Strategy", overlay=false, shorttitle="BBS", pyramiding=0, currency=currency.USD, commission_type=strategy.commission.percent, commission_value=0.03, initial_capital=1000)
source = input(close, "Source")
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50, step=0.001)
stopLossFactor = input.float(1, "Stop Loss Percent", maxval = 100, minval = 0, step=0.1)
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
var float lastTradePrice = na
var float stopLossLow = na
var float stopLossHigh = na
var bool currentIsLong = na
var bool nextExpectedIsLong = true
var bool existedLong = false
var bool existedShort = false
buyEntry = ta.crossover(source, lower)
sellEntry = ta.crossunder(source, upper)
if (buyEntry and nextExpectedIsLong == true)
strategy.entry("BBandLE", strategy.long, comment="BBandLE")
nextExpectedIsLong := false
if(nz(strategy.position_size[1], 0) < 0) // new position detected
lastTradePrice := close
stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
else
strategy.cancel("BBandLE")
if (sellEntry and nextExpectedIsLong == false)
strategy.entry("BBandSE", strategy.short, comment="BBandSE")
nextExpectedIsLong := true
if(nz(strategy.position_size[1], 0) > 0) // new position detected
lastTradePrice := close
stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
else
strategy.cancel("BBandSE")
strategy.close("BBandLE", close < stopLossLow)
strategy.close("BBandSE", close > stopLossHigh)
// if(nz(strategy.position_size[1], 0) < 0 and close > stopLossHigh)
// strategy.entry("BBandLE", strategy.long, comment="BBandLE")
// lastTradePrice := close
// stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
// stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
// if(nz(strategy.position_size[1], 0) > 0 and close < stopLossLow)
// strategy.exit("BBandSE", strategy.short, comment="BBandSE")
// lastTradePrice := close
// stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
// stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
plot(source, "close", color.blue)
plot(lower, "lower", color.red)
plot(upper, "upper", color.red)
plot(stopLossLow, "StopLossLow", color.black)
plot(stopLossHigh, "StopLossHigh", color.black)
plot(lastTradePrice, "lastTradePrice", color.green)
plotchar(strategy.position_size > 0, char="-", size=size.tiny, location=location.bottom, color=color.green)
plotchar(strategy.position_size < 0, char="-", size=size.tiny, location=location.bottom, color=color.red)