##समीक्षा
इस रणनीति का नाम
##नीति सिद्धांत
रणनीति में प्रवेश और निकास बिंदुओं को निर्धारित करने के लिए चार अलग-अलग तकनीकी संकेतकों का उपयोग किया गया है। विशिष्ट तर्क इस प्रकार हैः
लंबी प्रविष्टि की शर्तः 5-दिवसीय ईएमए 21-दिवसीय ईएमए से ऊपर, 50-दिवसीय ईएमए 200-दिवसीय ईएमए से ऊपर, बीबी %बी सेट ओवरबॉट लाइन से अधिक है, एओ सेट सकारात्मक मूल्य से अधिक है, और एडीएक्स सेट मूल्य से अधिक है।
लघु प्रवेश की शर्तः 5-दिवसीय ईएमए 21-दिवसीय ईएमए से नीचे, 50-दिवसीय ईएमए 200-दिवसीय ईएमए से नीचे, बीबी %बी सेट ओवरसोल्ड लाइन से कम है, एओ सेट नकारात्मक मूल्य से कम है, और एडीएक्स सेट मूल्य से अधिक है।
##लाभ विश्लेषण यह रणनीति स्टॉक की प्रवृत्ति दिशा और सापेक्ष शक्ति निर्धारित करने के लिए कई संकेतकों को जोड़ती है, जो प्रभावी रूप से झूठे ब्रेकआउट को फ़िल्टर कर सकती है। विशिष्ट लाभ हैंः
एडीएक्स सूचक प्रभावशाली रूप से प्रवृत्ति के अस्तित्व और बल को निर्धारित कर सकता है, जिससे सदमे के बाजार में बार-बार खुलने से बचा जा सकता है।
बीबी %बी सूचक यह आकलन करता है कि क्या व्यक्तिगत स्टॉक
एओ संकेतक यह निर्धारित करता है कि खरीदारी के दौरान ब्रेकआउट की प्रभावशीलता सुनिश्चित करने के लिए अपेक्षाकृत मजबूत गति समर्थन है या नहीं।
ईएमए संकेतक का गोल्डन क्रॉस/डेड क्रॉस बाजार की मुख्य दिशा के आकलन के साथ मिलकर रुझान के खिलाफ पदों को खोलने से बचाता है।
संक्षेप में, यह रणनीति व्यापारिक जोखिमों को प्रभावी ढंग से नियंत्रित कर सकती है और बाजार में मजबूत स्टॉक को ट्रैक कर सकती है।
जोखिम विश्लेषण यद्यपि रणनीति जोखिम नियंत्रण के लिए कई संकेतकों का उपयोग करती है, फिर भी कुछ जोखिम हैंः
कई घातीय संकेतकों का संयोजन पैरामीटर समायोजन के प्रति संवेदनशील है। अनुचित पैरामीटर संयोजन वांछित प्रभाव प्राप्त करने में विफल हो सकते हैं।
अत्यधिक गति का पीछा करने से बाजार के वास्तविक पलटाव के बिंदुओं को याद किया जा सकता है। लाभ और हानि को समय पर नियंत्रित किया जाना चाहिए।
ईएमए जैसे संकेतकों की प्रकृति पिछड़ी होती है और समय में अचानक घटनाओं के प्रभाव को प्रतिबिंबित करने में सक्षम नहीं हो सकते हैं। एमए अवधि को उचित रूप से छोटा किया जाना चाहिए या अन्य संकेतकों के साथ उपयोग किया जाना चाहिए।
प्रमुख अचानक घटनाओं के कारण संकेतकों में विचलन हो सकता है। मौलिक विश्लेषण को मिलाया जाना चाहिए और यदि आवश्यक हो तो रणनीति को अस्थायी रूप से बंद किया जा सकता है।
##अनुकूलन दिशा इस रणनीति को कई पहलुओं में भी अनुकूलित किया जा सकता हैः
इष्टतम पैरामीटर संयोजन खोजने के लिए मशीन लर्निंग का उपयोग करें।
आकलन की सटीकता में सुधार के लिए एक
एकल हानि को नियंत्रित करने के लिए स्टॉप-लॉस रणनीतियाँ जोड़ें।
अत्यधिक लालच से बचने के लिए प्रतीक्षा समय निर्धारित करें।
##सारांश
इस रणनीति को
/*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)