अस्थिरता फ़िल्टर रणनीति के साथ बोलिंगर बैंड्स ब्रेकआउट

लेखक:चाओझांग, दिनांक: 2024-03-08 15:28:05
टैगः

img

रणनीति का अवलोकन

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

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

रणनीति के मूल में बोलिंगर बैंड्स सूचक की गणना है। बोलिंगर बैंड्स में तीन रेखाएं होती हैंः मध्य रेखा एक सरल चलती औसत है, जबकि ऊपरी और निचले बैंड क्रमशः मध्य रेखा के ऊपर और नीचे एक निश्चित मानक विचलन पर सेट होते हैं। मानक विचलन का आकार पैरामीटर मल्टी द्वारा नियंत्रित किया जाता है।

रणनीति की प्रवेश शर्तें बोलिंगर बैंड्स के सापेक्ष समापन मूल्य की स्थिति पर आधारित हैं। यदि व्यापार दिशा लंबी (tradeDirection>=0) पर सेट की जाती है और समापन मूल्य निम्न बैंड से कुछ प्रतिशत (lower_breakout_pct) नीचे टूट जाता है, तो एक लंबी स्थिति खोली जाती है; यदि व्यापार दिशा छोटी (tradeDirection<=0) पर सेट की जाती है और समापन मूल्य ऊपरी बैंड से कुछ प्रतिशत (upper_breakout_pct) ऊपर टूट जाता है, तो एक छोटी स्थिति खोली जाती है। ब्रेकआउट प्रतिशत पैरामीटर प्रवृत्ति की पुष्टि करने के लिए स्थिति में प्रवेश करने से पहले कीमत को बोलिंगर बैंड्स के माध्यम से थोड़ा तोड़ने की अनुमति देते हैं।

दूसरी ओर, यदि लगातार दो मोमबत्तियों की परिवर्तन दर दोनों पूर्व निर्धारित अस्थिरता सीमा (अस्थिरता) से अधिक है, तो वर्तमान बाजार अस्थिरता को उच्च माना जाता है, और रणनीति नई स्थिति नहीं खोलेगी। यह अस्थिरता फ़िल्टर कुछ हद तक अत्यधिक अस्थिर बाजार स्थितियों में व्यापार से बच सकता है।

बाहर निकलने की स्थिति के संदर्भ में, यदि किसी लंबी स्थिति का समापन मूल्य ऊपरी बैंड (ऊपरी क्षेत्र) के निकट पहुंचता हैlong_win_pct), या एक छोटी स्थिति का समापन मूल्य निचले बैंड (नीचे + क्षेत्र) के पास पहुंच जाता हैshort_win_pct), रणनीति मुनाफा लेने के लिए संबंधित स्थिति को बंद कर देगी। इसके अतिरिक्त, यदि किसी स्थिति का अव्यवस्थित नुकसान पूर्व निर्धारित अधिकतम ड्रॉडाउन प्रतिशत (max_drawdown_percent) से अधिक है, तो रणनीति नुकसान रोकने के लिए स्थिति को भी बंद कर देगी।

रणनीतिक लाभ

  1. बोलिंगर बैंड एक परिपक्व और व्यापक रूप से उपयोग किया जाने वाला तकनीकी संकेतक है जिसमें चलती औसत और मूल्य अस्थिरता के बारे में जानकारी शामिल है। ट्रेडिंग रणनीतियों को तैयार करने के लिए बोलिंगर बैंड का उपयोग करने से रुझानों और अस्थिरता में बदलाव को पकड़ सकता है।

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

  3. अस्थिरता फ़िल्टर अत्यधिक अस्थिर बाजारों में पदों को खोलने से बचता है, जो अक्सर व्यापार और लाभप्रदता से जुड़े जोखिमों को कुछ हद तक कम करता है।

  4. यह रणनीति लाभ लेने और स्टॉप-लॉस तंत्रों का उपयोग करती है ताकि स्थिति को सक्रिय रूप से प्रबंधित किया जा सके और जब कीमतें प्रमुख स्तरों पर लौटें तो उन्हें बंद किया जा सके। इससे लाभ की रक्षा करने और ड्रॉडाउन को नियंत्रित करने में मदद मिलती है।

रणनीतिक जोखिम

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

  2. रणनीति की पैरामीटर सेटिंग्स विभिन्न बाजार स्थितियों पर सार्वभौमिक रूप से लागू नहीं हो सकती हैं। उदाहरण के लिए, ट्रेंडिंग और ऑसिलेटिंग बाजारों में अस्थिरता फ़िल्टर की सीमा सेटिंग को अलग करने की आवश्यकता हो सकती है। फिक्स्ड पैरामीटर के कारण रणनीति कुछ बाजार स्थितियों में पद खोलने में असमर्थ हो सकती है या बहुत बार खुल सकती है।

  3. हालांकि स्टॉप-लॉस उपाय हैं, लेकिन जब बाजार में खामियां होती हैं, तो रणनीति पूर्व निर्धारित मूल्य पर निष्पादित नहीं हो सकती है, जिससे अधिक नुकसान होता है।

  4. इस रणनीति में ट्रेलिंग स्टॉप-लॉस या ब्रेक-इवेंस स्टॉप नहीं निर्धारित किए गए हैं, जो कि शुरुआती पदों के बाद कुछ मुनाफा वापस करने का कारण बन सकता है।

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

  1. प्रविष्टियों की गुणवत्ता और समयबद्धता में सुधार के लिए रणनीति के लिए फ़िल्टरिंग शर्तों के रूप में अधिक तकनीकी संकेतकों या बाजार की स्थिति के आकलन जैसे एटीआर, रुझान संकेतकों, अस्थिरता संकेतकों आदि को लागू करने पर विचार करें।

  2. अस्थिरता फ़िल्टर के लिए, फ़िल्टरिंग प्रभावशीलता में सुधार के लिए विभिन्न उपकरणों या समय सीमाओं के अनुकूल गतिशील सीमाओं को अपनाने का प्रयास करें।

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

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

सारांश

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


/*backtest
start: 2024-02-29 00:00:00
end: 2024-03-07 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("[Oppen Chow] Super BBS 1.0", default_qty_type = strategy.percent_of_equity, default_qty_value =100, initial_capital=500, commission_type=strategy.commission.percent, commission_value=0.08, pyramiding=2 )

// Input parameters
length = 20
mult = 2
max_drawdown_percent = input(5.5, "Maximum Acceptable Drawdown") / 100
upper_breakout_pct = input(50, "Short Entry Breakout Percentage") / 100
lower_breakout_pct = input(25, "Long Entry Breakout Percentage") / 100
tradeDirection = input(1, title="Trade Direction")
Volatility = input(0.5, title="Volatility") / 100
long_win_pct = input(-0.15, title = "Long Settlement Rate Near Boll Upper Limit")
short_win_pct = input(0.4, title = "Short Settlement Rate Near Boll Lower Limit")

// Bollinger Bands calculation
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev
area = upper - lower

// Calculate the rate of change for two consecutive candlesticks
var float change1 = na
var float change2 = na
change1 := change2
change2 := ((close - open) / open) 

// Check for two or more consecutive candlesticks with a change rate greater than 0.5%
var bool highVolatility = false
highVolatility := change2 > Volatility

// Trading logic
var float highestPriceSinceOpen = na
var float lowestPriceSinceOpen = na
var int profitableDrawbackCount = 1


// Entry logic - In the absence of high volatility
if not highVolatility and strategy.position_size == 0
    if (tradeDirection >= 0) and (close < lower - area * lower_breakout_pct)
        strategy.entry("Long", strategy.long)
        highestPriceSinceOpen := close
        profitableDrawbackCount := 0
    if (tradeDirection <= 0) and (close > upper + area * upper_breakout_pct)
        strategy.entry("Short", strategy.short)
        lowestPriceSinceOpen := close
        profitableDrawbackCount := 0


if strategy.position_size > 0 and close > upper - area * long_win_pct
    strategy.close("Long", comment = "Take Profit")
if strategy.position_size < 0 and close < lower + area * short_win_pct
    strategy.close("Short", comment = "Take Profit")

// Stop loss logic - Based on drawdown percentage
if strategy.position_size > 0
    if (strategy.position_avg_price - close)/strategy.position_avg_price >= max_drawdown_percent
        strategy.close("Long", comment = "Drawdown Stop Loss")
else if strategy.position_size < 0
    if (close - strategy.position_avg_price)/strategy.position_avg_price >= max_drawdown_percent
        strategy.close("Short", comment = "Drawdown Stop Loss")


अधिक