
यह रणनीति बाजार की प्रवृत्ति की पहचान करने के लिए सीसीआई और गतिशीलता के संकेतकों का उपयोग करती है, जो ओवरबॉय ओवरसोल क्षेत्र में उछाल का पता लगाने पर प्रवेश करती है, जबकि बुलिंग को ट्रेंड की पहचान करने और केंद्र में लौटने के लिए उपयोग करती है। रणनीति प्रभावी रूप से ब्रेक और रिवर्स की पहचान कर सकती है, जो ट्रेंड की शुरुआत के चरण में प्रवेश करती है, और विभिन्न किस्मों के व्यापार को पैरामीटर के माध्यम से समायोजित करने के लिए स्वतंत्र है।
सबसे पहले, रणनीति सीसीआई या गतिशीलता सूचक के शून्य-अक्ष के पार और शून्य-अक्ष के पार के माध्यम से खरीदने और बेचने के संकेतों को निर्धारित करती है। साथ ही, आरएसआई सूचक को ओवरबॉय ओवरसोल्ड जोन में रहने की आवश्यकता होती है, यानी आरएसआई 65 से अधिक होने पर ओवरबॉय जोन, 35 से कम होने पर ओवरसोल्ड जोन। इस तरह से गैर-ओवरबॉय ओवरसोल्ड जोन में गलत संकेतों को रोकने के लिए।
इसके अलावा, रणनीति यह चुन सकती है कि क्या RSI के bullish divergence (थोड़ा ऊपर) और bearish divergence (थोड़ा नीचे) पर फैसला किया जाए ताकि यह सुनिश्चित किया जा सके कि खरीद और बिक्री संकेत अधिक विश्वसनीय हैं।
जब एक खरीद संकेत सीसीआई या गतिशीलता के अनुरूप होता है और आरएसआई ओवरसोल्ड क्षेत्र में होता है, तो रणनीति यह निर्धारित करती है कि क्या पूर्व उच्च और निम्न बुलिंग बैंड के केंद्र के ऊपर हैं, यदि हां, तो एक खरीद संकेत उत्पन्न होता है। इसके विपरीत, जब एक बेचने का संकेत मिलता है और पूर्व उच्च और निम्न बुलिंग बैंड के केंद्र के नीचे होते हैं, तो एक बेचने का संकेत उत्पन्न होता है।
इस प्रकार, रणनीति ट्रेंडिंग सूचकांक और आघात सूचकांक का एक साथ उपयोग करती है, जो समय पर ट्रेंडिंग की शुरुआत में पकड़ लेती है, और केंद्रीय निर्णय का उपयोग करके झूठी तोड़ने से बचती है। जब कीमत ब्रीज बैंड से बाहर निकलती है, तो रणनीति पूरी तरह से लाभ को लॉक करने और पीछे हटने से बचने के लिए पूरी तरह से फ्लैट हो जाती है।
प्रवृत्ति सूचकांक और अस्थिरता सूचकांक के संयोजन के साथ, प्रवृत्ति की शुरुआत में प्रवेश करने में सक्षम होने के साथ-साथ अस्थिरता वाले बाजारों में अनावश्यक स्थिति से बचने के लिए
ब्रिन बेल्ट में एक नाभिक संयुग्मन को प्रवेश संकेत के रूप में उपयोग करके, एक झूठी घुसपैठ को प्रभावी रूप से फ़िल्टर किया जा सकता है
आरएसआई सूचकांक के ऐतिहासिक रुझान को देखें और गलत ट्रेडिंग सिग्नल को रोकने के लिए आगे बढ़ें
पूरी तरह से स्वचालित ट्रेडिंग, मानव हस्तक्षेप के बिना, एल्गोरिथम ट्रेडिंग के लिए उपयुक्त
रणनीति पैरामीटर को विभिन्न ट्रेडिंग किस्मों के लिए अनुकूलित किया जा सकता है
स्टॉप लॉस स्टॉप सेट करने और जोखिम को प्रभावी ढंग से नियंत्रित करने में सक्षम
बुरिन बैंड पैरामीटर की गलत सेटिंग से केंद्रीय निर्णय विफल हो सकता है
अनुचित संकेतक मापदंडों की स्थापना, जो बहुत अधिक गलत सिग्नल का कारण बन सकता है
ब्रेकडाउन विफल, कीमतों को फिर से बुरीन बैंड के केंद्र में वापस लाने के लिए समय पर स्टॉप लॉस की आवश्यकता है
ट्रेडिंग किस्मों की कम तरलता के साथ, ब्रेकआउट खराब हो सकता है
ट्रेडों से पहले, यह सुनिश्चित करें कि आपके पास पर्याप्त इतिहास डेटा है, ताकि खराब वक्रता न हो।
नकली ब्रेकडाउन से बचने के लिए ट्रेडिंग के समय पर ध्यान दें
केंद्र को अधिक स्थिर बनाने के लिए ब्रिन बैंड पैरामीटर का अनुकूलन करें
विभिन्न किस्मों के लिए विभिन्न मापदंडों का परीक्षण करना
व्यापार की मात्रा पर नियंत्रण बढ़ाएं और एकल स्थिति को अधिक से अधिक न करें
समय सीमा के लिए निर्णय में वृद्धि, मुख्य व्यापारिक समय पर संचालन
सिग्नल को और अधिक बुद्धिमान बनाने के लिए मशीन लर्निंग एल्गोरिदम जोड़ें
बाजार के समग्र रुझानों को समझने के लिए अधिक डेटा स्रोतों तक पहुंच
अधिक सूचकांकों का एकीकरण, सूचकांक के एक समूह का गठन
इस रणनीति में प्रवृत्ति सूचकांक और अस्थिरता सूचकांक को एकीकृत किया गया है, जिससे प्रवृत्ति शुरू होने पर बाजार में प्रवेश किया जा सकता है। साथ ही, बुरिन बैंड में केंद्र के संयोजन को प्रवेश संकेत के रूप में उपयोग किया जाता है, जिससे झूठे टूटने से बचा जा सकता है। रणनीति पैरामीटर को लचीले ढंग से समायोजित किया जा सकता है, विभिन्न किस्मों के लिए अनुकूलित किया जा सकता है, और प्रतिक्रिया प्रभाव उत्कृष्ट है। अगला कदम रणनीति को अनुकूलित पैरामीटर सेटिंग्स और मॉडल एकीकरण के माध्यम से अधिक स्थिर और विश्वसनीय बनाने के लिए है, जिससे दीर्घकालिक स्थिर अतिरिक्त लाभ प्राप्त किया जा सकता है।
/*backtest
start: 2022-10-18 00:00:00
end: 2023-10-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title='BroTheJo Strategy', shorttitle='BTJ', overlay=true)
// Input settings
ccimomCross = input.string('CCI', 'Entry Signal Source', options=['CCI', 'Momentum'])
ccimomLength = input.int(10, minval=1, title='CCI/Momentum Length')
useDivergence = input.bool(false, title='Find Regular Bullish/Bearish Divergence')
rsiOverbought = input.int(65, minval=1, title='RSI Overbought Level')
rsiOversold = input.int(35, minval=1, title='RSI Oversold Level')
rsiLength = input.int(14, minval=1, title='RSI Length')
plotMeanReversion = input.bool(true, 'Plot Mean Reversion Bands on the chart')
emaPeriod = input(200, title='Lookback Period (EMA)')
bandMultiplier = input.float(1.6, title='Outer Bands Multiplier')
// CCI and Momentum calculation
momLength = ccimomCross == 'Momentum' ? ccimomLength : 10
mom = close - close[momLength]
cci = ta.cci(close, ccimomLength)
ccimomCrossUp = ccimomCross == 'Momentum' ? ta.cross(mom, 0) : ta.cross(cci, 0)
ccimomCrossDown = ccimomCross == 'Momentum' ? ta.cross(0, mom) : ta.cross(0, cci)
// RSI calculation
src = close
up = ta.rma(math.max(ta.change(src), 0), rsiLength)
down = ta.rma(-math.min(ta.change(src), 0), rsiLength)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
oversoldAgo = rsi[0] <= rsiOversold or rsi[1] <= rsiOversold or rsi[2] <= rsiOversold or rsi[3] <= rsiOversold
overboughtAgo = rsi[0] >= rsiOverbought or rsi[1] >= rsiOverbought or rsi[2] >= rsiOverbought or rsi[3] >= rsiOverbought
// Regular Divergence Conditions
bullishDivergenceCondition = rsi[0] > rsi[1] and rsi[1] < rsi[2]
bearishDivergenceCondition = rsi[0] < rsi[1] and rsi[1] > rsi[2]
// Mean Reversion Indicator
meanReversion = plotMeanReversion ? ta.ema(close, emaPeriod) : na
stdDev = plotMeanReversion ? ta.stdev(close, emaPeriod) : na
upperBand = plotMeanReversion ? meanReversion + stdDev * bandMultiplier : na
lowerBand = plotMeanReversion ? meanReversion - stdDev * bandMultiplier : na
// Entry Conditions
prevHigh = ta.highest(high, 1)
prevLow = ta.lowest(low, 1)
longEntryCondition = ccimomCrossUp and oversoldAgo and (not useDivergence or bullishDivergenceCondition) and (prevHigh >= meanReversion) and (prevLow >= meanReversion)
shortEntryCondition = ccimomCrossDown and overboughtAgo and (not useDivergence or bearishDivergenceCondition) and (prevHigh <= meanReversion) and (prevLow <= meanReversion)
// Plotting
oldLongEntryCondition = ccimomCrossUp and oversoldAgo and (not useDivergence or bullishDivergenceCondition)
oldShortEntryCondition = ccimomCrossDown and overboughtAgo and (not useDivergence or bearishDivergenceCondition)
plotshape(oldLongEntryCondition, title='BUY', style=shape.triangleup, location=location.belowbar, color=color.new(color.lime, 0), textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(oldShortEntryCondition, title='SELL', style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)
// Strategy logic
if (longEntryCondition)
strategy.entry("Buy", strategy.long)
if (shortEntryCondition)
strategy.entry("Sell", strategy.short)
// Close all open positions when outside of bands
closeAll = (high >= upperBand) or (low <= lowerBand)
if (closeAll)
strategy.close_all("Take Profit/Cut Loss")
// Plotting
plot(upperBand, title='Upper Band', color=color.fuchsia, linewidth=1)
plot(meanReversion, title='Mean', color=color.gray, linewidth=1)
plot(lowerBand, title='Lower Band', color=color.blue, linewidth=1)