यह रणनीति एक पीछे खींचने की प्रणाली है जिसे उच्च अस्थिरता वाली प्रतिभूतियों के लिए डिज़ाइन किया गया है, इसलिए बिटकॉइन एक बहुत ही आदर्श व्यापारिक किस्म है। यह रणनीति एक दिन रेखा या कम समय सीमा पर काम कर सकती है (मैंने 3 घंटे के समय सीमा पर अच्छे परिणाम पाए हैं, लेकिन 1 घंटे से कम समय के लिए परीक्षण नहीं किया है) ।
यह रणनीति पहले दो K लाइनों के समापन मूल्य में परिवर्तन की तुलना करके अस्थिरता की गणना करती है और इस मूल्य परिवर्तन का उपयोग करके एक चलती औसत उत्पन्न करती है। एक मानक विचलन बैंड को एक चलती औसत पर लपेटें, 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)