यह रणनीति दोहरी चलती औसत, सापेक्ष शक्ति सूचकांक (आरएसआई) और पैराबोलिक एसएआर (पीएसएआर) को मूल्य उलट बिंदुओं की पहचान करने और तदनुसार खरीदने और बेचने के निर्णय लेने के लिए जोड़ती है। यह रिवर्स ट्रेडिंग रणनीतियों से संबंधित है।
रणनीति मुख्य रूप से निम्नलिखित तकनीकी संकेतकों का उपयोग मूल्य उलट बिंदुओं को निर्धारित करने के लिए करती है:
डबल मूविंग एवरेज: फास्ट मूविंग एवरेज (एमए फास्ट लाइन) और स्लो मूविंग एवरेज (एमए स्लो लाइन) की गणना करें। जब फास्ट लाइन स्लो लाइन के ऊपर से गुजरती है, तो यह एक बुल मार्केट को इंगित करती है और लंबी जाती है। जब फास्ट लाइन स्लो लाइन के नीचे से गुजरती है, तो यह एक भालू बाजार को इंगित करती है और छोटी जाती है।
आरएसआई संकेतक: आरएसआई एक अवधि में औसत समापन लाभ और औसत समापन हानि की गणना करके ओवरबॉट और ओवरसोल्ड स्थितियों का न्याय करता है। आरएसआई 70 से ऊपर ओवरबॉट क्षेत्र और 30 से नीचे ओवरसोल्ड क्षेत्र को इंगित करता है।
पीएसएआर संकेतक: पैराबोलिक एसएआर प्रवृत्ति की दिशा दर्शाता है। कीमत से नीचे के एसएआर बिंदु बैल बाजार और कीमत से ऊपर के बाजार को दर्शाते हैं।
एडीएक्स सूचक: एडीएक्स दिशागत आंदोलन की गणना करके एक प्रवृत्ति की ताकत को मापता है। एडीएक्स 20 से ऊपर एक प्रवृत्ति बाजार और 20 से नीचे समेकन का संकेत देता है।
खरीदने और बेचने के संकेतों का तर्क इस प्रकार है:
खरीद संकेतः तेज एमए धीमी एमए से ऊपर, आरएसआई 30 से नीचे (ओवरसोल्ड), एसएआर अंक कीमत से ऊपर, एडीएक्स 20 से ऊपर पार करता है।
बिक्री संकेतः तेज एमए धीमी एमए से नीचे, आरएसआई 70 से ऊपर (ओवरबॉट), एसएआर अंक कीमत से नीचे, एडीएक्स 20 से ऊपर पार करता है।
जब खरीद या बिक्री का संकेत आता है, तो क्रमशः 10% इक्विटी के साथ स्थिति लें। प्रतिगमन संकेत विफल होने पर समय पर स्थिति बंद करें।
दोहरे एमए प्रमुख प्रवृत्ति दिशा निर्धारित करते हैं, आरएसआई और एसएआर झूठे संकेतों को फ़िल्टर करते हैं, जो उलट बिंदुओं की सटीक पहचान कर सकते हैं।
कई संकेतकों को मिलाकर एक संकेतकों से गलत संकेतों को रोका जा सकता है।
स्टॉप लॉस अत्यधिक जोखिम से बचाता है।
सरल और स्पष्ट तर्क इसे लागू करना आसान बनाता है।
यह अपट्रेंड और डाउनट्रेंड दोनों के लिए काम करता है।
दोहरे एमए में झूठे ब्रेकआउट हो सकते हैं. सच्चे ब्रेकआउट की पुष्टि करने के लिए लंबी एमए अवधि या बोलिंगर बैंड जोड़ने पर विचार करें.
यदि आरएसआई सही ढंग से सेट नहीं किया जाता है तो आरएसआई गलत संकेत उत्पन्न कर सकता है। आरएसआई मापदंडों को ठीक से समायोजित करें और आरएसआई संकेतों की पुष्टि करने के लिए अन्य संकेतक जोड़ें।
जब ADX 20 से नीचे हो तो दिशाहीन बाजारों में रिवर्स ट्रेडिंग से बचने के लिए ट्रेडिंग को निलंबित करें। या ADX अवधि को छोटा करें।
SetStringry स्टॉप लॉस अनावश्यक नुकसान का कारण बन सकता है. बाजार की अस्थिरता के आधार पर उचित स्टॉप लॉस सेट करें.
उच्च व्यापारिक आवृत्ति. एमए अवधि को कम व्यापारिक आवृत्ति में समायोजित करें।
इष्टतम संयोजन खोजने के लिए विभिन्न एमए अवधि का परीक्षण करें।
ओवरबॉट/ओवरसोल्ड के बेहतर आकलन के लिए विभिन्न आरएसआई मापदंडों का परीक्षण करें।
तर्क को समृद्ध करने के लिए बोलिंगर बैंड्स, केडीजे जैसे अन्य संकेतक जोड़ें।
विभिन्न उत्पादों और बाजारों के आधार पर गतिशील स्टॉप लॉस सेट करें।
रुझानों को बेहतर ढंग से देखने के लिए स्थिति आकार जोड़ें।
प्रवृत्ति शक्ति निर्धारित करने के लिए सर्वोत्तम मूल्य खोजने के लिए विभिन्न ADX मापदंडों का परीक्षण करें।
ऑटो स्टॉप हानि फ़ंक्शन जोड़ें.
यह रणनीति दोहरे एमए का उपयोग करके प्रमुख प्रवृत्ति दिशा की पहचान करती है, और अतिरिक्त संकेत फ़िल्टरिंग के लिए आरएसआई, एसएआर का उपयोग करती है। यह पैरामीटर अनुकूलन के बाद उलट बिंदुओं को प्रभावी ढंग से निर्धारित कर सकती है, और उलट के आसपास के रुझानों को पकड़ सकती है। व्यवहार में, उचित स्टॉप लॉस और चल रहे पैरामीटर अनुकूलन द्वारा जोखिम प्रबंधन महत्वपूर्ण है। कुल मिलाकर, रणनीति स्पष्ट तर्क और आसान संचालन के साथ संकेतकों को जोड़ती है, जिससे यह एक विश्वसनीय उलट ट्रेडिंग रणनीति बन जाती है।
/*backtest start: 2023-10-10 00:00:00 end: 2023-11-09 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Based on Senpai BO 3 strategy(title="Senpai_Strat_3", shorttitle="Senpai_Strat_3", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100) src = close //psar start = input(0.02) increment = input(0.02) maximum = input(0.2) psar = sar(start, increment, maximum) //ADX Init adxlen = input(30, title="ADX Smoothing") dilen = input(30, title="DI Length") dirmov(len) => up = change(high) down = -change(low) truerange = rma(tr, len) plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange) minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, 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) [adx, plus, minus] [sig, up, down] = adx(dilen, adxlen) // BB Init source = close length = input(50, minval=1) mult = input(0.5, title="Mult Factor", minval=0.001, maxval=50) alertLevel=input(0.1) impulseLevel=input(0.75) showRange = input(false, type=bool) //RSI CODE up1 = rma(max(change(src), 0), 14) down1 = rma(-min(change(src), 0), 14) rsi = down1 == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up1 / down1)) //BB CODE basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.05 bbi = bbr - nz(bbr[1]) //////////////////// Algo //if (rsi>50 and n1>n2) //strategy.exit("Close", "Short") // strategy.entry("Long", strategy.long) //if (rsi<50 and n2>n1) //strategy.exit("Close", "Long") // strategy.entry("Short", strategy.short) //col = ma30 > ma50 > ma200 and rsi <=53?lime: ma50 < ma200 and rsi >= 60?red : silver //short1 = sig<18.5 and high>=upper and rsi>=70 and psar<close = 100% //long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close = 100% short1 = sig<18.5 and high>=upper and rsi>=70 and psar<close long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close //Entry long = long1[1] == 0 and long1 == 1 short = short1[1] == 0 and short1 == 1 longclose = long[3] == 1 shortclose = short[3] == 1 strategy.entry("short", strategy.short,qty = 10, when=short) strategy.entry("long", strategy.long,qty=10, when=long) strategy.close("long",when=longclose) strategy.close("short",when=shortclose) ///////////////////// ///PLOT plot(long,"long",color=green,linewidth=1) plot(short,"short",color=red,linewidth=1) plot(longclose,"close",color=blue,linewidth=1) plot(shortclose,"close",color=orange,linewidth=1) //plot(short,"short",color=red,linewidth=1) // //strategy.exit(id="long",qty = 100000,when=longclose) //strategy.exit(id="short",qty = 100000,when=shortclose) //strategy.exit(id="Stop", profit = 20, loss = 100)