यह रणनीति उच्च अस्थिरता वाले प्रतिभूतियों के लिए डिज़ाइन की गई एक पुलबैक प्रणाली है, इसलिए स्वाभाविक रूप से बिटकॉइन इसका व्यापार करने के लिए एक उत्कृष्ट विकल्प है। इसका उपयोग दैनिक चार्ट या कम समय सीमाओं पर दोनों पर किया जा सकता है (मुझे 3 घंटे की समय सीमा पर अच्छे परिणाम मिले लेकिन 1 घंटे से कम किसी भी चीज़ पर इसका परीक्षण नहीं किया गया है) ।
रणनीति पिछले 2 मोमबत्तियों के समापन मूल्य में परिवर्तन की तुलना करके अस्थिरता की गणना करती है, और चलती औसत उत्पन्न करने के लिए मूल्य में इस परिवर्तन का उपयोग करती है। एक बैंड को चलती औसत के चारों ओर 1 के आंतरिक बैंड और 2 के बाहरी बैंड के लिए एक मानक विचलन के साथ लपेटा जाता है। यदि कीमत एक पूर्व-सेट एमए (चलती औसत) फ़िल्टर से ऊपर है तो यह निर्धारित किया जाता है कि हम एक अपट्रेंड में हैं इसलिए रणनीति एक संकेत जारी करेगी जब हम एक अपट्रेंड में हैं और एक पुलबैक है जो निचले आंतरिक विचलन बैंड को स्पाइक करने का कारण बनता है, लेकिन यदि कीमत जारी रहती है और बाहरी विचलन बैंड के माध्यम से गिरती है तो एक खरीद संकेत नहीं होगा क्योंकि यह इस मुद्दे को नुकसान पहुंचाता है कि अस्थिरता स्पाइक बहुत बड़ा है। आप एक स्पाइक देख सकते हैं
उपयोगकर्ता उस दिनांक सीमा को बदल सकता है जिसे वे परीक्षण करना चाहते हैं, अस्थिरता ट्रैकिंग के लिए चलती औसत अवधि और आंतरिक और बाहरी बैंड विचलन। बीटीसी पर मैंने आंतरिक विचलन और बाहरी विचलन बैंड को मानक सेटिंग्स पर छोड़ दिया लेकिन 3 अवधि अस्थिरता ट्रैकिंग को 1 दिन के चार्ट के लिए अच्छा पाया और 5 अवधि अस्थिरता ट्रैकिंग 3 घंटे के चार्ट के लिए अच्छी है। चूंकि यह एक खरीद और पकड़ रणनीति नहीं है, इसलिए ट्रेडिंग के लिए आप शायद सबसे तरल सिक्कों के साथ रहना चाहेंगे ताकि आप किसी भी एक्सचेंज पर बहुत तेजी से अंदर और बाहर जा सकें। यदि आप इसे कम अस्थिर बाजारों पर ट्रे करना चाहते हैं तो आंतरिक विचलन बैंड को ~ 0.75 में बदलना विभिन्न संभावित शेयर बाजारों में भी ठीक काम करेगा। लाभ और स्टॉप लॉस लेवल पिछले 7 मोमबत्तों को देखते हुए ट्रेडिंग रेंज के कई पर आधारित हैं।
जोखिम को कम करने के तरीके:
उपयुक्त अस्थिर अंतर्निहित चुनें, नियंत्रण स्थिति आकार।
अप्रभावी व्यापारों को कम करने के लिए मापदंडों का अनुकूलन करें।
स्टॉप लॉस का उपयोग करें और लाभ लें, सख्त धन प्रबंधन।
निष्पादन दक्षता पर ध्यान केंद्रित करें, तरल आधार चुनें।
विभिन्न अंतर्निहित विशेषताओं के अनुरूप मापदंडों को समायोजित करें।
इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
विभिन्न अंतर्निहितों की अस्थिरता को बेहतर ढंग से ट्रैक करने के लिए चलती औसत अवधि का अनुकूलन करना।
विशिष्ट अंतर्निहित अस्थिरता सीमा के अनुकूल अस्थिरता बैंड मापदंडों को समायोजित करें।
संकेतों को और अधिक सत्यापित करने के लिए वॉल्यूम स्पाइक जैसे अन्य फ़िल्टर जोड़ें।
अनुकूलन क्षमता के लिए पैरामीटर को गतिशील रूप से अनुकूलित करने के लिए मशीन लर्निंग तकनीकों का उपयोग करें।
अधिक व्यापारिक अवसरों को पकड़ने के लिए उच्च आवृत्ति समय सीमाओं पर परीक्षण करें।
अधिक लाभ प्राप्त करने के लिए स्टॉप लॉस/टेक प्रॉफिट ट्रैकिंग जोड़ें।
मात्रात्मक पोर्टफोलियो रणनीतियों के निर्माण के लिए अन्य संकेतकों या मॉडलों के साथ संयोजन।
रणनीति समग्र रूप से काफी सरल और सहज है, जो बाजार के मोड़ बिंदुओं को पकड़ने के लिए अस्थिरता संकेतक के माध्यम से उलटफेर की पहचान करती है। मापदंडों को समायोजित करके और स्थिरता और लाभप्रदता को और बढ़ाने के लिए अन्य तकनीकी संकेतकों को शामिल करके अनुकूलन की बड़ी जगह है। हालांकि व्यापारियों को ओवरफिट और वक्र फिटिंग समस्याओं के बारे में पता होना चाहिए। यह रणनीति अल्पकालिक व्यापार के लिए अधिक उपयुक्त है, जोखिमों को नियंत्रित करने के लिए सख्त धन प्रबंधन की आवश्यकता होती है। यदि ठीक से महारत हासिल की जाती है, तो यह उच्च अस्थिरता वाले क्रिप्टोकरेंसी के व्यापार के लिए एक शक्तिशाली उपकरण बन सकता है।
/*backtest start: 2023-09-11 00:00:00 end: 2023-10-11 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © gary_trades //This script is designed to be used on volatile securities/tickers so is best suited for day charts on Crypto (particularly good for BTC). //It takes both long and short trades and the main indicator settings can be changed by the use so they can test for ideal settings for ticker of interest. //@version=4 strategy("BTC Volatility Band Strategy", shorttitle="Vol Band Strategy", overlay=false, margin_long=100, margin_short=100) //VOLATILTY CandleChange = ((close - close[1])/close)*100 //OR CandleChange = ((close[2] - close[1])/close)*100 plot(CandleChange, color=color.red, linewidth = 1) //VOLATILITY BANDS MAlen = input(7, minval=3, maxval=30, title=" MA Length") MAout = sma(CandleChange, MAlen) plot(MAout, color=color.black, display=display.none) InnerBand = input(1.0, minval=0.5, maxval=5, title="Inner Band") OuterBand = input(2.00, minval=0.5, maxval=10, title="Outer Band") devInner = InnerBand * stdev(CandleChange, MAlen) devOuter = OuterBand * stdev(CandleChange, MAlen) upper1 = MAout + devInner lower1 = MAout - devInner b1 = plot(upper1, "Upper Inner", color=color.gray) b2 = plot(lower1, "Lower Inner", color=color.gray) upper2 = MAout + devOuter lower2 = MAout - devOuter b3 = plot(upper2, "Upper Outer", color=color.gray) b4 = plot(lower2, "Lower Outer", color=color.gray) fill(b1, b3, color.rgb(250,145,175,70), title="Background") fill(b2, b4, color.rgb(250,145,175,70), title="Background") band1 = hline(25, "Upper Band", color=color.gray, linestyle=hline.style_dotted, linewidth=2) band0 = hline(-25, "Lower Band", color=color.gray, linestyle=hline.style_dotted, linewidth=2) //LONG FILTER VolFilterL = CandleChange <= lower1 and CandleChange > lower2 SMAFilterL = close[1] > sma(close[1], 50) PriceFilterL = close > lowest(close,7) LongFilter = VolFilterL and SMAFilterL and PriceFilterL bgcolor(LongFilter ? color.new(color.green, 80) : na) //SHORT FILTER VolFilterS = CandleChange >= upper1 and CandleChange < upper2 SMAFilterS = close[1] < sma(close[1], 50) PriceFilterS = close < highest(close,7) ShortFilter = VolFilterS and SMAFilterS and PriceFilterS bgcolor(ShortFilter ? color.new(color.red, 80) : na) //SETTING BACK TEST INPUTS fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2000, title = "From Year", minval = 1970) toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2100, title = "To Year", minval = 1970) startDate = timestamp("America/New_York", fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp("America/New_York", toYear, toMonth, toDay, 00, 00) time_condition = time >= startDate and time <= finishDate //ORDER DETAILS Risk = (high[7] - low[7])/ 7 Profit = Risk*1.15 Loss = Risk*0.65 AlertMSG = "New stategy position" + tostring(strategy.position_size) if (time_condition) strategy.entry("Long", strategy.long, when = LongFilter, alert_message=AlertMSG) if (LongFilter) LongStop = strategy.position_avg_price - Loss LongProfit = strategy.position_avg_price + Profit strategy.exit("TP/SL", "Long", stop=LongStop, limit=LongProfit) if (time_condition) strategy.entry("Short", strategy.short, when = ShortFilter, alert_message=AlertMSG) if (ShortFilter) ShortStop = strategy.position_avg_price + Loss ShortProfit = strategy.position_avg_price - Profit strategy.exit("TP/SL", "Short", stop=ShortStop, limit=ShortProfit)