
यह रणनीति चलती औसत, ब्रिन बैंड और अपेक्षाकृत मजबूत तीन संकेतकों के संयोजन के साथ बहु-चक्र स्टॉक ट्रेडिंग करती है। यह खरीदते समय धीमी गति से चलती औसत को क्रॉस करने के लिए तेजी से चलती औसत, 50 से कम और ब्रिन बैंड के मध्य रेखा से नीचे बंद होने के लिए अपेक्षाकृत मजबूत संकेतकों को क्रॉस करने के लिए खरीदता है। बेचते समय, 70 से अधिक और ब्रिन बैंड के ऊपर बंद होने के लिए अपेक्षाकृत कमजोर संकेतकों को क्रॉस करने के लिए खरीदता है।
रणनीति मुख्य रूप से तीन संकेतकों का उपयोग करके निर्णय करती है। पहला MACD सूचक है, जो दो अलग-अलग चक्रों की गति या धीमी गति से चलने वाली औसत से बना है, जो धीमी रेखा को पार करते समय एक खरीद संकेत उत्पन्न करता है। दूसरा सूचक ब्रिन बैंड है, जो मध्य-रेल, ऊपरी-रेल और निचले-रेल की तीन लाइनों से बना है। जब कीमत निचले-रेल के करीब होती है तो उतार-चढ़ाव वाली घाटी के लिए एक खरीद बिंदु है, और जब कीमत ऊपरी-रेल के करीब होती है तो नुकसान को रोकने के लिए एक चोटी होती है। तीसरा सूचक आरएसआई है, जो प्रतिभूति की कीमतों के आंदोलन की गति और परिवर्तन की डिग्री को दर्शाता है, खरीद बिंदु और घाटी-बिक्री बिंदुओं को खोजने के लिए।
विशिष्ट व्यापार में, रणनीति को पहले तेजी से चलती औसत पर धीमी गति से चलती औसत को पार करने की आवश्यकता होती है, जो शेयरों की कीमतों में वृद्धि की गति को दर्शाती है, और इसे खरीदा जा सकता है। साथ ही आरएसआई को 50 से कम करने की आवश्यकता होती है, जो दर्शाता है कि शेयरों की कीमतें ओवरसोल्ड क्षेत्र में हो सकती हैं, और इसे खरीदने का समय है। इसके अलावा, यह भी आवश्यक है कि समापन मूल्य ब्रिलिन बैंड के मध्य ट्रैक से नीचे हो, जो दर्शाता है कि शेयरों की कीमत घाटी में है, और यह एक अच्छा खरीद बिंदु भी है।
स्टॉप और स्टॉप लॉस के संदर्भ में, जब आरएसआई 70 से ऊपर होता है, तो यह दर्शाता है कि स्टॉक की कीमत ओवरबॉय क्षेत्र में हो सकती है, यह दिखाता है कि ऊपरी गति कम हो गई है, और स्टॉप को ध्यान में रखा जाना चाहिए। इसके अलावा, जब स्टॉक की कीमत बुलिन बैंड के ऊपर बंद हो जाती है, तो यह भी दर्शाता है कि स्टॉक की कीमत बहुत अधिक हो सकती है, एक वापसी का जोखिम है, और उचित स्टॉप होना चाहिए।
इस रणनीति के संयोजन में तीन संकेतकों के लाभों का उपयोग किया जाता है, जैसे कि चलती औसत, ब्रीज बैंड और आरएसआई, जो खरीद और बिक्री के समय को अधिक सटीक रूप से निर्धारित करते हैं। विशिष्ट लाभ इस प्रकार हैंः
चलती औसत शेयरों की कीमतों में वृद्धि की गति का पता लगा सकता है, ब्रिन बैंड मध्य रेल शेयरों की कीमतों के निचले हिस्से में खरीदने के लिए बिंदुओं को ढूंढ सकता है, आरएसआई शेयरों को खरीदने के उच्च बिंदुओं को रोक सकता है। तीनों का संयोजन शेयरों की कीमतों में वृद्धि के मध्य अवधि में बेहतर खरीदने का समय निर्धारित कर सकता है।
आरएसआई और बुलिन के संयोजन से स्टॉक की कीमतों के चरम पर अच्छी तरह से पकड़ हो सकती है, ओवरबॉय से बचा जा सकता है, और समय पर स्टॉप हो सकता है।
बहु-चक्र निर्णय का उपयोग करके, आप विभिन्न स्तरों पर व्यापार के अवसरों को पकड़ सकते हैं और लाभ के लिए जगह बढ़ा सकते हैं।
इस रणनीति का व्यापारिक तर्क सरल, स्पष्ट और समझने में आसान है, जो मध्यम और दीर्घकालिक निवेश के लिए उपयुक्त है।
हालांकि इस रणनीति में कई सूचकांकों को शामिल किया गया है, जिससे ट्रेडिंग निर्णयों की सटीकता बढ़ गई है, लेकिन इसके मुख्य जोखिम हैंः
पैरामीटर सेटिंग जोखिम. चलती औसत, ब्रिन बैंड और आरएसआई के पैरामीटर को वास्तविक परिस्थितियों के अनुसार समायोजित करने की आवश्यकता होती है, यदि पैरामीटर सेटिंग गलत है, तो यह व्यापार की प्रभावशीलता को प्रभावित कर सकता है।
बहु-प्रमुखता के लिए बेहतर अनुकूलनशीलता। भालू बाजार में, शेयरों की कीमतें तेजी से गिरती हैं, और इस रणनीति के नुकसान को रोकने के उपायों को कम प्रभावी होने की संभावना है।
एकल-शेयर जोखिम. यह रणनीति पोर्टफोलियो के लिए अधिक उपयुक्त है, एकल-शेयर जोखिम अभी भी मौजूद है और निवेश को विभाजित करने की आवश्यकता है।
ट्रेडिंग की आवृत्ति बहुत अधिक हो सकती है। यदि पैरामीटर सही तरीके से सेट किए जाते हैं, तो रणनीति अक्सर ट्रेडिंग कर सकती है। इससे लेनदेन की लागत और कर शुल्क बढ़ जाता है।
समाधान के लिएः
सूचक संकेतों की आवृत्ति को अधिक उपयुक्त बनाने के लिए माप डेटा के आधार पर पैरामीटर को समायोजित किया जाना चाहिए।
एक चलती औसत चक्र को उचित रूप से समायोजित किया जा सकता है, जिससे खरीद की आवृत्ति कम हो सकती है और नुकसान कम हो सकता है।
निवेश की विविधता को बढ़ाएं और निवेश को अलग-अलग करके एकल-शेयर जोखिम को कम करें।
खरीद और रोक की शर्तों में उचित छूट, लेनदेन की आवृत्ति को कम करना।
इस रणनीति को और भी बेहतर बनाने के लिए अभी भी जगह हैः
अधिक सूचकांक फ़िल्टर, जैसे कि लेनदेन सूचकांक, को शामिल किया जा सकता है ताकि यह सुनिश्चित किया जा सके कि लेनदेन की मात्रा खरीदारी के दौरान बढ़ जाती है, जिससे निर्णय लेने की सटीकता बढ़ जाती है।
स्थिति प्रबंधन मॉड्यूल जोड़ा जा सकता है, जो बाजार की स्थिति के अनुसार स्थिति को गतिशील रूप से समायोजित करता है।
डीप लर्निंग एल्गोरिदम के साथ संयोजन, बड़ी मात्रा में डेटा के प्रशिक्षण के माध्यम से स्वचालित रूप से पैरामीटर सेटिंग्स का अनुकूलन कर सकता है।
और अधिक समय चक्रों को जोड़ने के लिए, और अधिक उपयोगिता के लिए।
इस रणनीति के लिए कुल मिलाकर तर्क स्पष्ट है, समझने में आसान है, कई सूचकांकों के निर्णय का एकीकृत उपयोग, कुछ हद तक झूठे संकेतों को कम करता है। पैरामीटर अनुकूलन और अधिक तकनीकी संकेतकों को जोड़ने के माध्यम से, निर्णय की सटीकता को और बढ़ाया जा सकता है, रणनीति की मजबूती को बढ़ाया जा सकता है। यह रणनीति मध्यम और लंबी अवधि के निवेश के लिए उपयुक्त है, इसे मात्रात्मक व्यापार के लिए भी इस्तेमाल किया जा सकता है। लेकिन कोई भी रणनीति बाजार के जोखिम को पूरी तरह से टाल नहीं सकती है, स्थिति के आकार और स्टॉप-लॉस को नियंत्रित करने की आवश्यकता है।
/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//
//@author Alorse
//@version=4
strategy("MACD + BB + RSI [Alorse]", shorttitle="BB + MACD + RSI [Alorse]", overlay=true, pyramiding=0, currency=currency.USD, default_qty_type=strategy.percent_of_equity, initial_capital=1000, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.01)
txtVer = "1.0.1"
version = input(title="Version", type=input.string, defval=txtVer, options=[txtVer], tooltip="This is informational only, nothing will change.")
src = input(title="Source", type=input.source, defval=close)
// MACD
fast_length = input(title="Fast Length", type=input.integer, defval=12, group="MACD")
slow_length = input(title="Slow Length", type=input.integer, defval=26, group="MACD")
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9, group="MACD")
sma_source = input(title="Oscillator MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"], group="MACD")
sma_signal = input(title="Signal Line MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"], group="MACD")
fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)
// Bollinger Bands
bbGroup = "Bollindger Bands"
length = input(20, title="Length", group=bbGroup)
mult = input(2.0, title="StdDev", minval=0.001, maxval=5, group=bbGroup)
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
// RSI
rsiGroup = "RSI"
lenRSI = input(14, title="Length", minval=1, group=rsiGroup)
// lessThan = input(50, title="Less than", minval=1 , maxval=100, group=rsiGroup)
RSI = rsi(src, lenRSI)
// Strategy Conditions
buy = crossover(macd, signal) and RSI < 50 and close < basis
sell = RSI > 70 and close > upper
// Stop Loss
slGroup = "Stop Loss"
useSL = input(false, title="╔══════ Enable ══════╗", group=slGroup, tooltip="If you are using this strategy for Scalping or Futures market, we do not recommend using Stop Loss.")
SLbased = input(title="Based on", type=input.string, defval="Percent", options=["ATR", "Percent"], group=slGroup, tooltip="ATR: Average True Range\nPercent: eg. 5%.")
multiATR = input(10.0, title="ATR Mult", type=input.float, group=slGroup, inline="atr")
lengthATR = input(14, title="Length", type=input.integer, group=slGroup, inline="atr")
SLPercent = input(10, title="Percent", type=input.float, group=slGroup) * 0.01
longStop = 0.0
shortStop = 0.0
if SLbased == "ATR"
longStop := valuewhen(buy, low, 0) - (valuewhen(buy, rma(tr(true), lengthATR), 0) * multiATR)
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop
shortStop := (valuewhen(sell, rma(tr(true), lengthATR), 0) * multiATR) + valuewhen(sell, high, 0)
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] > shortStopPrev ? max(shortStop, shortStopPrev) : shortStop
if SLbased == "Percent"
longStop := strategy.position_avg_price * (1 - SLPercent)
shortStop := strategy.position_avg_price * (1 + SLPercent)
strategy.entry("Long", true, when=buy)
strategy.close("Long", when=sell, comment="Exit")
if useSL
strategy.exit("Stop Loss", "Long", stop=longStop)