आरएसआई ट्रेंड रिवर्सल रणनीति

RSI ATR
निर्माण तिथि: 2024-04-28 13:33:19 अंत में संशोधित करें: 2024-04-28 13:33:19
कॉपी: 1 क्लिक्स: 546
1
ध्यान केंद्रित करना
1617
समर्थक

आरएसआई ट्रेंड रिवर्सल रणनीति

अवलोकन

RSI ट्रेंड रिवर्स रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जो अपेक्षाकृत मजबूत सूचकांक (RSI) और औसत वास्तविक तरंग (ATR) पर आधारित है। यह रणनीति तेजी से बाजार में उतार-चढ़ाव के लिए अनुकूल है, ट्रेंड रिवर्स अवसरों को पकड़ने के लिए गतिशील रूप से स्टॉपलॉस (TP/SL) को समायोजित करती है। यह रणनीति RSI को केंद्र में रखती है, ATR को गतिशीलता को मापने के साथ जोड़ती है, और निम्नलिखित दो अनुकूलन गतिशील बैंडों का निर्माण करती है। यह रणनीति स्वतंत्र रूप से या अन्य रणनीतियों के स्टॉपलॉस मॉड्यूल के रूप में इस्तेमाल की जा सकती है।

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

RSI ट्रेंड रिवर्स रणनीति का मूल गतिशील स्टॉप-स्टॉप बैंड के निर्माण में निहित है। सबसे पहले, कस्टम उच्चतम_कस्टम और निम्नतम_कस्टम फ़ंक्शन का उपयोग करके, पिछले क्रॉसिंग के बाद से उच्चतम और निम्नतम मूल्य का पता लगाएं, जिससे एक वेव-बैंड आधार बन जाए। इसके बाद RSI और ATR की लंबाई की गणना करें, और फिर निम्नानुसार गणना करेंः

  1. निचला ट्रैक = उच्चतम मूल्य ×[1 - (एटीआर/मूल्य + 1/(आरएसआई डाउनट्रेल × गुणक))
  2. ऊपर = न्यूनतम मूल्य ×[1 + (एटीआर/मूल्य + 1/(आरएसआई ट्रैक पर × गुणक))

इसमें, multiplier उपयोगकर्ता के अनुकूलित तरंग दैर्ध्य के लिए विस्तार कारक है। यदि कीमत ऊपर की ओर उछलती है, तो अधिक करें, और नीचे की ओर नीचे की ओर खाली करें। साथ ही, इन दो बैंडों का रंग मूल्य के सापेक्ष तरंग दैर्ध्य की स्थिति के आधार पर बदलता है, यह देखने में आसान है।

रणनीतिक लाभ

  1. स्व-अनुकूली, स्टॉप लॉस बैंड कीमतों के उतार-चढ़ाव के आधार पर स्वचालित रूप से समायोजित हो सकता है, समय पर व्यापार में बदलाव का जवाब दे सकता है।
  2. पैरामीटर समायोज्य हैं, आप लंबाई, गुणक, आदि जैसे पैरामीटर को समायोजित करके रणनीति की संवेदनशीलता को नियंत्रित कर सकते हैं।
  3. स्पष्ट तर्क, तर्कसंगत कोड संरचना, समझने में आसान और पुनर्विकास।
  4. यह व्यापक रूप से लागू होता है, इसे एक रणनीति के रूप में इस्तेमाल किया जा सकता है, या अन्य रणनीतियों के लिए स्टॉप-स्टॉप-लॉस फ़ंक्शन को जोड़ा जा सकता है।
  5. उच्चतम_कस्टम फ़ंक्शंस को कस्टमाइज़ करके गणना की दक्षता, श्रृंखला प्रकार का उपयोग करने के कारण भारी दोहराव से बचें।

रणनीतिक जोखिम

  1. अनुचित पैरामीटर चयन अतिरिक्त जोखिम को जन्म दे सकता है, जैसे कि लंबाई बहुत छोटी है, जो अक्सर व्यापार करने का कारण बन सकती है, और गुणांक बहुत बड़ा है, जो स्टॉप लॉस को बहुत आसान बना सकता है।
  2. कुछ बाजार स्थितियों में यह कम प्रभावी हो सकता है, उदाहरण के लिए अस्थिर बाजारों में बार-बार संचलन और झूठे ब्रेकआउट के कारण अधिक घाटे का व्यापार हो सकता है।
  3. रणनीति में कोई प्रवृत्ति नहीं है और इसे अन्य संकेतों के साथ उपयोग करने की आवश्यकता है।

रणनीति अनुकूलन दिशा

  1. ट्रेडों को केवल प्रमुख रुझानों की दिशा में एक मोड़ पर ट्रेड करने के लिए एक चलती औसत जैसे रुझान-निर्णायक संकेतकों को शामिल करने पर विचार करें।
  2. पैरामीटर को अनुकूलित किया जा सकता है ताकि सबसे अच्छा संयोजन पाया जा सके जैसे कि लंबाई, गुणक आदि।
  3. अन्य तकनीकी संकेतकों या बाजार की भावना के संकेतकों के साथ संयोजन के रूप में, स्थिति को ठीक करने की सटीकता में सुधार किया जा सकता है।
  4. स्थिति प्रबंधन को जोड़कर, प्रत्येक व्यापार के लिए जोखिम को सख्ती से नियंत्रित किया जा सकता है

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-04-22 00:00:00
end: 2024-04-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI Trend Reversal", overlay=true, max_bars_back = 4999, calc_on_every_tick = false)


//INPUTS 
rsi_length = input.int(title = "Lenght", defval = 8)
rsi_mult = input.float(title = "Multiplier", defval = 1.5, step = .05)
lookback = input.int(title = "Delay to prevent idealization", defval = 1)
sltp = input.float(title = "Minimum Difference", defval = 10)
src = input.source(title = "Source Input", defval = close)

//PARAMETERS INITILIZATION
hclose = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, src)
//FUNCTION INITILIZATION
highest_custom(src, length) =>
    x = src
    for i = 0 to length
        if src[i] > x
            x := src[i]
    x
lowest_custom(src, length) => 
    x = src
    for i = 0 to length
        if src[i] < x
            x := src[i]
    x
rsilev(src, length, mult, sltp) =>
    sl = (100 - sltp) / 100
    tp = (100 + sltp) / 100
    var bool crossup = na
    var bool crossdown = na
    var float dir = na
    dir_change = ta.change(dir)
    var float BearGuy = 0
    BullGuy = ta.barssince(crossup or crossdown)
    if na(BullGuy)
        BearGuy += 1
    else
        BearGuy := BullGuy
    var float upper = na
    var float lower = na
    rsilower = ta.rsi(src, length)
    rsiupper = math.abs(ta.rsi(src, length) - 100)
    atr = ta.atr(length) / src
    lower := highest_custom(math.max(highest_custom(highest_custom(src, BearGuy) * (1 - (atr + ((1 / (rsilower) * mult)))), BearGuy), src * sl), BearGuy)
    upper := lowest_custom(math.min(lowest_custom(lowest_custom(src, BearGuy) * (1 + (atr + ((1 / (rsiupper) * mult)))), BearGuy), src * tp), BearGuy)
    var float thresh = na
    if na(thresh)
        thresh := lower
    if na(dir)
        dir := 1
    if crossdown
        dir := -1
    if crossup
        dir := 1
    if dir == 1
        thresh := lower
    if dir == -1
        thresh := upper
    crossup := ta.crossover(src, thresh)
    crossdown := ta.crossunder(src, thresh)
    thresh

rsiclose = rsilev(hclose, rsi_length, rsi_mult, sltp)

//PLOTTING
var color col = color.lime
if hclose > rsiclose
    col := color.lime
if hclose < rsiclose
    col := color.red
plot(rsiclose, linewidth = 2, color = col)

//STRATEGY
buy = ta.crossover(hclose, rsiclose)
sell = ta.crossunder(hclose, rsiclose)

if buy[lookback]
    strategy.entry("long", strategy.long)
if sell[lookback]
    strategy.entry("Short", strategy.short)