बोलिंगर बैंड और आरएसआई पर आधारित एफएनजीयू मात्रात्मक ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-29 14:53:47
टैगः

img

अवलोकन

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

रणनीति तर्क

इस रणनीति का मूल तर्क बोलिंगर बैंड और आरएसआई संकेतकों के संयोजन पर आधारित है।

सबसे पहले, बोलिंगर बैंड में तीन लाइनें होती हैंः मध्य रेखा, ऊपरी रेखा और निचली रेखा। मध्य रेखा n-दिन की सरल चलती औसत है, जबकि ऊपरी रेखा और निचली रेखा मध्य रेखा के ऊपर और नीचे के मानक विचलन के k गुना हैं। जब कीमत ऊपरी या निचली रेखा तक पहुंचती है या छूती है, तो यह इंगित करती है कि स्टॉक ओवरबॉय या ओवरसोल्ड स्थिति में है।

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

दूसरा, आरएसआई संकेतक एक स्टॉक के ओवरबॉट/ओवरसोल्ड स्तर को दर्शाता है। आरएसआई 70 से ऊपर ओवरबॉट स्थिति का सुझाव देता है, जबकि 30 से नीचे ओवरसोल्ड स्थिति। इस रणनीति में आरएसआई के लिए पैरामीटर अवधि की लंबाई 2 है।

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

रणनीति के फायदे

इस रणनीति के निम्नलिखित फायदे हैंः

  1. बोलिंगर बैंड और आरएसआई का संयोजन खरीद/बिक्री संकेतों को अधिक सटीक और विश्वसनीय बनाता है।
  2. बोलिंगर बैंड्स ओवरबॉट/ओवरसोल्ड प्राइस जोन की पहचान करते हैं, जबकि आरएसआई नकली संकेतों को फ़िल्टर करता है। दोनों एक दूसरे का पूरक होते हैं।
  3. यह केवल लंबी ट्रेडिंग करता है, शॉर्टिंग जोखिमों पर विचार करने की कोई आवश्यकता नहीं है।
  4. अनुकूलित मापदंडों से यह विशेष रूप से अत्यधिक अस्थिर एफएनजीयू स्टॉक के लिए उपयुक्त है।
  5. यह नुकसान के जोखिम को कम करने के लिए स्वचालित स्टॉप लॉस को लागू करता है।
  6. कोडिंग का कार्यान्वयन सरल और स्पष्ट है, इसे समझना और संशोधित करना आसान है।

जोखिम और समाधान

इस रणनीति से जुड़े कुछ जोखिम भी हैंः

  1. बोलिंगर बैंड और आरएसआई दोनों ही नकली संकेत उत्पन्न कर सकते हैं, जिससे आसानी से ओवरफिटिंग हो सकती है। पैरामीटर को समायोजित किया जा सकता है या अधिक फ़िल्टर जोड़े जा सकते हैं।
  2. एफएनजीयू में उच्च अस्थिरता होती है। गलत स्टॉप लॉस सेटिंग से नुकसान बढ़ सकता है। स्टॉप लॉस रेंज को चौड़ा किया जाना चाहिए।
  3. यह रणनीति केवल एफएनजीयू जैसे अत्यधिक अस्थिर शेयरों पर लागू होती है।
  4. हालांकि अनुकूलित, पैरामीटर बाजार में परिवर्तन के साथ अप्रचलित हो सकते हैं, जिससे निरंतर निगरानी और अनुकूलन की आवश्यकता होती है।

रणनीति अनुकूलन के लिए दिशा-निर्देश

इस रणनीति को और अधिक अनुकूलित करने के लिए कई दिशाएं हैंः

  1. अधिक सटीक संकेतों का उत्पादन करने के लिए केडीजे और एमएसीडी जैसे अन्य तकनीकी संकेतकों को जोड़ें।
  2. अधिक शेयर प्रकारों को अनुकूलित करने के लिए बोलिंगर बैंड और आरएसआई के मापदंडों का अनुकूलन करना।
  3. अधिक डेटा के साथ निर्णय लेने में सहायता के लिए मशीन लर्निंग मॉडल को शामिल करें।
  4. उच्च समय सीमा के आंकड़ों का उपयोग करते हुए अंतर-आयामी व्यापार लागू करें।
  5. ट्रेडिंग सिग्नल उत्पन्न करने के लिए सोशल मीडिया डेटा का उपयोग करके भावना विश्लेषण को मिलाएं।
  6. विभिन्न पैरामीटर सेटिंग्स को जल्दी से परीक्षण करने के लिए मात्रात्मक बैकटेस्टिंग प्रणाली विकसित करें।

निष्कर्ष

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


/*backtest
start: 2023-12-29 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by EMKM)", shorttitle="1Min Killer", overlay=true)

///////////// RSI
RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length
RSIoverSold = 50
RSIoverBought = 50
price = close
vrsi = rsi(price, RSIlength)

///////////// Bollinger Bands
BBlength = input(235, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length
BBmult = 2
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
BBtarget38 = BBbasis + 0.38 * BBdev  // Line at 38% of Bollinger Band width
BBtarget50 = BBbasis + 0.50 * BBdev  // Line at 50% of Bollinger Band width

///////////// EMA
emaLength = input(20, title="EMA Period Length")
ema = ema(close, emaLength)

source = close
buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band
sellEntry = crossunder(source, BBupper)

///////////// Plotting
plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line")
plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line")
plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line")
plot(BBtarget38, color=color.blue, linewidth=2, title="SMA at 38% of BB width")  // Line at 38%
plot(BBtarget50, color=color.green, linewidth=2, title="SMA at 50% of BB width")  // Line at 50%
plot(ema, color=color.orange, title="EMA")  // Plot EMA

///////////// RSI + Bollinger Bands Strategy
longCondition = crossover(vrsi, RSIoverSold) and buyEntry
sellCondition = crossunder(vrsi, RSIoverBought) and close > BBupper

close_long = close > BBbasis
close_short = close < BBbasis

if (not na(vrsi))
    if longCondition
        strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy")
    else
        strategy.cancel(id="Buy")
        
    if close_long
        strategy.close("Buy")

if (sellCondition)
    strategy.entry("Sell", strategy.short, qty=10, stop=BBupper, comment="Sell")
else
    strategy.cancel(id="Sell")

if close_short
    strategy.close("Sell")


अधिक