ADX + RSI रणनीति


निर्माण तिथि: 2023-09-27 16:27:39 अंत में संशोधित करें: 2023-09-27 16:27:39
कॉपी: 0 क्लिक्स: 2077
1
ध्यान केंद्रित करना
1617
समर्थक

अवलोकन

यह ADX और RSI संकेतकों के संयोजन के साथ एक प्रवृत्ति ट्रैकिंग रणनीति है। यह रणनीति RSI का उपयोग करके ओवरबॉय और ओवरसोल के बारे में निर्णय लेने के लिए एक व्यापार संकेत भेजती है, जबकि ADX का उपयोग करके बाजार की प्रवृत्ति का आकलन करती है, जो प्रवृत्ति के लिए स्पष्ट नहीं है, और ट्रेडों को फ़िल्टर करती है, जिससे बाजार के झटके से बचने में मदद मिलती है।

रणनीति सिद्धांत

  1. 7-चक्र आरएसआई का उपयोग करके ओवरबॉट और ओवरसोल्ड का आकलन करें
  • आरएसआई 30 से नीचे ओवरसोल्ड है
  • आरएसआई 70 से ऊपर ओवरबॉट है
  1. ADX के साथ प्रवृत्ति का आकलन करें
  • ADX 30 से ऊपर का मतलब है कि रुझान स्पष्ट है
  • ADX 30 से नीचे ट्रेंड को स्पष्ट नहीं मानता है
  1. प्रवेश नियम
  • जब RSI 30 से नीचे है और ADX 30 से ऊपर है तो अधिक करें
  • आरएसआई 70 से ऊपर और एडीएक्स 30 से ऊपर है
  1. स्टॉप लॉस
  • एक वैकल्पिक स्टॉप लॉस मोड है, जो बंद स्टॉप लॉस या ऑसिलेशन स्टॉप लॉस का चयन कर सकता है
  • समापन मूल्य के आधार पर स्टॉप-ऑफ-स्टॉप स्टॉप-लॉस
  • ऑसिलेटर स्टॉप लॉस विधि हाल के मूल्य उतार-चढ़ाव के उच्चतम और निम्नतम बिंदुओं के आधार पर है

श्रेष्ठता विश्लेषण

  1. आरएसआई सूचकांक ओवरबाय ओवरसोल को प्रभावी ढंग से निर्धारित करता है, जो ओवरबाय और ओवरसोल ट्रेप्स को कम करता है

  2. ADX सूचकांक उन स्थितियों को फ़िल्टर कर सकता है जिनमें कोई स्पष्ट प्रवृत्ति नहीं है, जिससे कि अस्थिरता में कैद होने से बचा जा सके

  3. वैकल्पिक स्टॉप लॉस विकल्प जो जोखिम को बेहतर तरीके से नियंत्रित करते हैं

  4. रणनीतियाँ सरल हैं, समझने में आसान हैं, और शुरुआती लोगों के लिए उपयुक्त हैं

  5. रणनीति पैरामीटर अनुकूलन के लिए पर्याप्त जगह है, जो आरएसआई चक्र, ओवरबॉय ओवरसोल्ड अवधि और एडीएक्स चिकनाई चक्र जैसे पैरामीटर को समायोजित करके अनुकूलित किया जा सकता है

जोखिम विश्लेषण

  1. आरएसआई में रिवर्स का जोखिम है, ओवरबॉट और ओवरसोल्ड सिग्नल रिवर्स और रिवर्स हो सकते हैं

  2. एडीएक्स ने रुझान में देरी का फैसला किया, शायद रुझान में बदलाव से चूक गया

  3. स्टॉप लॉस पॉइंट की अनुचित सेटिंग से नुकसान हो सकता है

  4. एक सरल रणनीति, अति-अनुकूलन का खतरा

  5. बेहतर परिणाम के लिए पैरामीटर अनुकूलन की आवश्यकता

अनुकूलन दिशा

  1. आरएसआई के पैरामीटर को अनुकूलित करने के लिए, ओवरबॉट और ओवरसोल्ड के बीच समायोजन करें और सबसे अच्छा पैरामीटर संयोजन खोजें

  2. प्रवृत्ति को निर्धारित करने के लिए सबसे अच्छा पैरामीटर खोजने के लिए विभिन्न चक्रों के लिए ADX का परीक्षण करें

  3. विभिन्न स्टॉप-स्टॉप-लॉस तरीकों का परीक्षण करें और रणनीति के लिए सबसे उपयुक्त सेटिंग्स खोजें

  4. ट्रेडिंग के लिए ट्रेंड फ़िल्टर का उपयोग करें

  5. अन्य संकेतकों के साथ संयोजन कर सकते हैं ताकि रणनीति अधिक लाभदायक हो सके

संक्षेप

यह रणनीति RSI और ADX के दो क्लासिक संकेतकों के लाभों को एकीकृत करती है, जिससे रुझानों को प्रभावी ढंग से पता लगाया जा सकता है और झटके से बचा जा सकता है। यह एक सरल और व्यावहारिक ट्रेंड ट्रैकिंग रणनीति है। रणनीति को अनुकूलित करने के लिए अधिक जगह है, और पैरामीटर के संयोजन को समायोजित करके बेहतर प्रभाव प्राप्त किया जा सकता है। कुल मिलाकर, यह रणनीति शुरुआती के लिए उपयुक्त है।

रणनीति स्रोत कोड
/*backtest
start: 2023-09-19 00:00:00
end: 2023-09-26 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tweakerID

// This is a strategy that uses the 7 Period RSI to buy when the indicator is shown as oversold (OS) and sells when 
// the index marks overbought (OB). It also uses the ADX to determine whether the trend is ranging or trending
// and filters out the trending trades. Seems to work better for automated trading when the logic is inversed (buying OB 
// and selling the OS) wihout stop loss.

//@version=4
strategy("ADX + RSI Strat", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100, commission_value=0.04, calc_on_every_tick=false)

direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))


//SL & TP Inputs
i_SL=input(false, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLookback=input(20, title="Swing Lo/Hi Lookback")
i_SLExpander=input(defval=0, step=.2, title="SL Expander")
i_TPExpander=input(defval=0, step=.2, title="TP Expander")
i_reverse=input(true, title="Reverse Trades")

//SL & TP Calculations
SwingLow=lowest(i_SwingLookback)
SwingHigh=highest(i_SwingLookback)
bought=strategy.position_size != strategy.position_size[1]
LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0))*i_SLExpander)
SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0))*i_SLExpander)
lTP=strategy.position_avg_price + (strategy.position_avg_price-(valuewhen(bought, SwingLow, 0))+((valuewhen(bought, atr(14), 0))*i_TPExpander))
sTP=strategy.position_avg_price - (valuewhen(bought, SwingHigh, 0)-strategy.position_avg_price)-((valuewhen(bought, atr(14), 0))*i_TPExpander)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? LSL : isshort ? SSL : na
TP= islong ? lTP : isshort ? sTP : na

//RSI Calculations
RSI=rsi(close, 7)
OS=input(30, step=5)
OB=input(80, step=5)

//ADX Calculations
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)
adxlevel=input(30, step=5)


//Entry Logic
BUY = sig < adxlevel and (RSI < OS) 
SELL = sig < adxlevel and (RSI > OB) 

//Entries
strategy.entry("long", strategy.long, when=i_reverse?SELL:BUY)
strategy.entry("short", strategy.short, when=not i_reverse?SELL:BUY)
//Exits
if i_SL
    strategy.exit("longexit", "long", stop=SL, limit=TP)
    strategy.exit("shortexit", "short", stop=SL, limit=TP)

//Plots
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(i_SL ? TP : na, color=color.green, style=plot.style_cross, title="TP")
plotshape(BUY ? 1 : na, style=shape.triangleup, location=location.belowbar, color=color.green, title="Bullish Setup")
plotshape(SELL ? 1 : na, style=shape.triangledown, location=location.abovebar, color=color.red, title="Bearish Setup")