
इस रणनीति का नाम चार-कारक गतिशीलता ट्रैकिंग रणनीति है। इस रणनीति का व्यापक उपयोग औसत दिशा आंदोलन संकेतक ((ADX) प्रवृत्ति की दिशा का निर्धारण करने के लिए, बुलिन बैंड प्रतिशतता बी-वेव ((BB % B) शेयरों के अपेक्षाकृत मजबूत, जादू समान्य ((AO) निर्णय गतिशीलता और विभिन्न चक्रों के लिए सूचकांक चलती औसत ((EMA) निर्णय बहुतायत का निर्धारण करने के लिए, शेयर की कीमतों की गतिशीलता को ट्रैक करने, मजबूत शेयरों का पीछा करने, कमजोर शेयरों के प्रभाव से बचने के लिए किया जाता है।
इस रणनीति में चार अलग-अलग तकनीकी संकेतकों का उपयोग किया जाता है ताकि यह पता लगाया जा सके कि कब खरीदना और बेचना है।
मल्टीहेड एंट्री कंडीशनः 5 दिन ईएमए पर 21 दिन ईएमए, 50 दिन ईएमए पर 200 दिन ईएमए, बीबी % बी सेट ओवरबॉय लाइन से बड़ा, एओ सेट पॉजिटिव से बड़ा, एडीएक्स सेट से बड़ा।
रिक्त प्रवेश की शर्तेंः 5 दिन ईएमए के तहत 21 दिन ईएमए, 50 दिन ईएमए के तहत 200 दिन ईएमए, बीबी % बी सेट ओवरसेल लाइन से कम है, एओ सेट से कम है, और एडीएक्स सेट से अधिक है।
रणनीति का विश्लेषण
इस रणनीति में प्रवृत्ति की दिशा और स्टॉक की तुलनात्मक ताकत को निर्धारित करने वाले कई संकेतकों को शामिल किया गया है, जो झूठे ब्रेकआउट को प्रभावी ढंग से फ़िल्टर कर सकते हैं। इसके विशिष्ट फायदे इस प्रकार हैंः
ADX सूचकांक प्रवृत्ति की उपस्थिति और प्रवृत्ति की ताकत का एक प्रभावी आकलन प्रदान करता है, जिससे अस्थिर बाजारों में लगातार पदों को खोलने से बचा जाता है;
BB %B सूचकांक यह निर्धारित करता है कि क्या कोई शेयर उच्च या निम्न स्तर पर है, और इससे ऊंचाई या गिरावट को रोकने में मदद मिलती है।
एओ सूचकांक यह निर्धारित करता है कि क्या खरीद के समय एक मजबूत गतिशीलता समर्थन है, जो एक सफलता की प्रभावशीलता की गारंटी देता है;
ईएमए सूचकांक का गोल्ड फोर्क/डेड फोर्क संयोजन बाजार की मुख्यधारा की दिशा का आकलन करता है, जिससे विपरीत स्थिति खोलने से बचा जा सकता है।
कुल मिलाकर, यह रणनीति बाजार में मजबूत शेयरों को ट्रैक करने के लिए ट्रेडिंग जोखिम को प्रभावी ढंग से नियंत्रित करने में मदद करती है।
इस रणनीति में कई मापदंडों का इस्तेमाल किया गया है, लेकिन इसके बावजूद कुछ जोखिम हैं:
कई सूचकांक सूचकांक संयोजनों का उपयोग किया जाता है, जो पैरामीटर समायोजन के लिए संवेदनशील होते हैं, और अनुचित पैरामीटर संयोजनों को प्रभावी ढंग से निष्पादित नहीं किया जा सकता है।
गतिशीलता की अत्यधिक खोज से बाजार के वास्तविक रिवर्स पॉइंट को याद किया जा सकता है। उचित रूप से होल्डिंग चक्र को नियंत्रित किया जाना चाहिए, समय पर स्टॉप-स्टॉप-लॉस।
ईएमए जैसे संकेतक विलंबता के कारण हो सकते हैं और आकस्मिक घटनाओं के प्रभाव को समय पर प्रतिबिंबित करने में असमर्थ हो सकते हैं। अन्य संकेतक के साथ उचित रूप से संयोजन किया जाना चाहिए या एमए चक्र को उचित रूप से छोटा किया जाना चाहिए।
आकस्मिक प्रमुख घटनाओं के कारण सूचकांक फैले हुए हैं, और यदि आवश्यक हो तो मौलिक विश्लेषण के साथ रणनीति को अस्थायी रूप से बंद कर दिया जा सकता है।
इस रणनीति को निम्नलिखित पहलुओं से भी अनुकूलित किया जा सकता हैः
मशीन लर्निंग जैसे तरीकों का उपयोग करके सबसे अच्छा पैरामीटर संयोजन ढूंढें।
CCI, MACD, आदि जैसे अन्य निर्णय प्रवृत्ति संकेतकों को जोड़कर, निर्णय सटीकता में सुधार के लिए क्यूबिक सूचकांक पोर्टफोलियो का निर्माण करें।
स्टॉप लॉस को रोकने के लिए स्टॉप लॉस रणनीति का उपयोग करें।
अपने शेयरों को रखने के लिए समय निर्धारित करें, और अत्यधिक लालच से बचें।
इस रणनीति को चार कारक गतिशीलता ट्रैकिंग रणनीति कहा जाता है, जो ADX, BB % B, AO और ईएमए के चार संकेतकों का उपयोग करके खरीदने और बेचने के समय का निर्धारण करती है, मजबूत शेयरों के लिए गतिशील ट्रैकिंग की अनुमति देती है। यह रणनीति प्रवृत्ति की दिशा और शेयरों की सापेक्ष ताकत का प्रभावी ढंग से आकलन कर सकती है, व्यापार जोखिम को नियंत्रित कर सकती है। अगले चरण में, पैरामीटर अनुकूलन, अन्य संकेतकों को जोड़ने और स्थिति रखने के समय की स्थापना आदि के माध्यम से इस रणनीति को और बेहतर बनाया जा सकता है।
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//ADX + BB %B + AO + EMA
strategy("ADX + BB %B + AO + EMA", overlay=true, initial_capital=10000)
take_profit_perc = input(title="Take Profit %", type=input.integer, defval=10, minval=1, maxval=100)
stop_loss_perc = input(title="Stop Loss %", type=input.integer, defval=5, minval=1, maxval=100)
bb_overbought = input(title="BB %B Overbought", type=input.integer, defval=75, minval=1, maxval=100)
bb_oversold = input(title="BB %B Oversold", type=input.integer, defval=25, minval=1, maxval=100)
ao_value = input(title="Awesome Oscillator", type=input.integer, defval=2)
adx_value = input(title="ADX", type=input.integer, defval=15)
startDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer, defval=2018, minval=2008, maxval=2200)
inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0))
ema5 = ema(close, 5)
ema21 = ema(close, 21)
ema50 = ema(close, 50)
ema200 = ema(close, 200)
//BB %B
length = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
bbr = (src - lower)/(upper - lower)
//Awesome Oscillator
ao = sma(hl2,5) - sma(hl2,34)
// ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
up = change(high)
down = -change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
truerange = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / truerange)
minus = fixnan(100 * rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
long_strategy = ema5>ema21 and ema50>ema200 and bbr>(bb_overbought/100) and ao>ao_value and sig>adx_value
short_strategy = ema5<ema21 and ema50<ema200 and bbr<(bb_oversold/100) and ao<-ao_value and sig>adx_value
plot(ema5, color=color.blue)
plot(ema21, color=color.aqua)
plot(ema50, color=color.purple)
plot(ema200, color=color.red)
bgcolor(color=long_strategy ? color.green : na, transp=80)
bgcolor(color=short_strategy ? color.purple : na, transp=80)
if inDateRange and long_strategy
strategy.entry("long", strategy.long)
strategy.exit("exit", "long", stop=close*(100-stop_loss_perc)/100, limit=close*(100+take_profit_perc)/100)
if inDateRange and short_strategy
strategy.entry("short", strategy.short)
strategy.exit("exit", "short", stop=close*(100+stop_loss_perc)/100, limit=close*(100-take_profit_perc)/100)