आरएसआई और फिबोनाची रिट्रेसमेंट ट्रेडिंग रणनीति


निर्माण तिथि: 2023-12-27 16:49:52 अंत में संशोधित करें: 2023-12-27 16:49:52
कॉपी: 3 क्लिक्स: 1189
1
ध्यान केंद्रित करना
1623
समर्थक

आरएसआई और फिबोनाची रिट्रेसमेंट ट्रेडिंग रणनीति

अवलोकन

इस लेख में मुख्य रूप से एक रणनीति का वर्णन किया गया है जो एक अपेक्षाकृत मजबूत सूचकांक ((आरएसआई) और फिबोनाची रिवर्स पॉइंट के साथ व्यापार करने के लिए है। यह रणनीति पहले एक निश्चित अवधि में ऐतिहासिक मूल्य गतिशीलता के आधार पर एक महत्वपूर्ण फिबोनाची रिवर्स पॉइंट की गणना करती है, और फिर आरएसआई के साथ मिलकर यह निर्धारित करती है कि क्या बाजार ओवरबॉय ओवरसोल है और रिवर्स पॉइंट के पास एक ट्रेडिंग सिग्नल भेजता है।

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

यह रणनीति मुख्य रूप से निम्नलिखित सिद्धांतों पर आधारित हैः

  1. एक निश्चित अवधि (जैसे 200 K लाइन) के लिए मूल्य डेटा का उपयोग करके, उस अवधि के लिए मूल्य के औसत, मानक अंतर और महत्वपूर्ण फिबोनाची रिवर्स बिट्स (जैसे 0.764) की गणना करें;

  2. जब कीमतें ऊपर या नीचे की वापसी के करीब होती हैं, तो आरएसआई का उपयोग करके यह निर्धारित करने के लिए करें कि क्या वापसी के क्षेत्र में ओवरबॉट या ओवरसोल्ड है;

  3. यदि आरएसआई सूचक ओवरबॉट या ओवरसोल्ड संकेत दिखाता है, तो रिवर्सिंग पॉइंट के पास ओवरबॉट या ओवरबॉट सिग्नल जारी करें;

  4. और स्टॉप और स्टॉप लेवल सेट करें और सेट मूल्य से अधिक होने पर या स्टॉप को ट्रिगर करने पर स्थिति को बंद करें।

यह रणनीति ट्रेडिंग के समय को निर्धारित करने के लिए एक बुनियादी प्रक्रिया है।

रणनीति का विश्लेषण

RSI या Fibonacci का उपयोग करके अकेले व्यापार करने की तुलना में, इस संयोजन रणनीति के निम्नलिखित फायदे हैंः

  1. दोहरे सूचक फ़िल्टर, जो झूठे संकेतों को कम करने और संकेत की गुणवत्ता में सुधार करने में मदद करता है;

  2. यह तकनीकी विश्लेषण का एक क्लासिक तरीका है, जो कि रिवर्स प्वाइंट के पास रिवर्स ट्रेडिंग करता है।

  3. स्टॉप लॉस स्टॉप सेट करने के बाद, एक एकल लेनदेन के लिए अधिकतम नुकसान को प्रभावी ढंग से नियंत्रित किया जा सकता है;

  4. विभिन्न चक्रों और किस्मों के लिए पैरामीटर अनुकूलन, सूचक पैरामीटर और रिवर्स सेट के माध्यम से अनुकूलित किया जा सकता है।

रणनीतिक जोखिम विश्लेषण

इस रणनीति के साथ कुछ जोखिम भी हैं, जिनके बारे में ध्यान देने की आवश्यकता हैः

  1. एक बार जब एक महत्वपूर्ण वापसी बिंदु के करीब आ जाता है, तो फिर से उछाल की संभावना 100% नहीं होती है, जिसे मूल्य इकाई के साथ जोड़ा जाना चाहिए;

  2. एकल-चक्र आरएसआई एक झूठी संकेत दे सकता है जो मरने के बाद उछाल देता है, और बहु-चक्र सत्यापन पर विचार किया जा सकता है;

  3. स्टॉप लॉस प्वाइंट्स को बहुत ढीला रखा गया है, जिससे नुकसान बढ़ सकता है।

  4. जब कीमत में भारी उतार-चढ़ाव होता है, तो स्टॉप लॉस को तोड़ दिया जा सकता है और स्टॉप लॉस को ढीला करने पर विचार किया जाना चाहिए।

उपरोक्त सभी जोखिमों को पैरामीटर समायोजन, अनुकूलित सूचकांक संयोजन और अन्य तरीकों से नियंत्रित किया जा सकता है।

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

इस रणनीति को और भी बेहतर बनाया जा सकता है।

  1. कम मात्रा में झूठी सफलताओं से बचने के लिए लेनदेन के मापदंडों के सत्यापन में वृद्धि;

  2. ब्रीनिंग बैंड के संकेतों को ध्यान में रखते हुए, बैंड के टूटने पर संकेत देना;

  3. मशीन लर्निंग या न्यूरल नेटवर्क मॉडल बनाना जो स्वचालित रूप से उच्च गुणवत्ता वाले व्यापारिक अवसरों की पहचान करता है;

  4. आनुवंशिक एल्गोरिदम और अन्य तरीकों का उपयोग करके पैरामीटर को स्वचालित रूप से अनुकूलित करें और स्टॉप-लॉस स्टॉप पॉइंट को समायोजित करें।

संक्षेप

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

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

//@version=4
strategy(title="Gab Fib  + RSI", overlay=true, default_qty_type=strategy.cash, default_qty_value=100000, initial_capital=1000, currency=currency.USD, commission_type=strategy.commission.cash_per_order, commission_value=4)

// Inputs
timeFilter = year >= 2000
    // Stop Loss 
stop_loss = input(title="SL in % of Instrum. i.e 1.5%=150pips", minval=0, step=0.1, defval=1.5) /100
    // RSI Inputs
len = input(title="[RSI] Length", minval=0, step=1, defval=14)
overSold = input(title="[RSI] Over Sold %", defval=30)
overBought = input(title="[RSI] Over Bought %", defval=70)
    // Fibonacci Levels
length = input(title="[Fibonacci] Length", defval=200, minval=1)
src = input(hlc3, title="[Fibonacci] Source")
mult = input(title="[Fibonacci] Multiplier", defval=3.0, minval=0.001, maxval=50)
level = input(title="[Fibonacci] Level", defval=764)


// Calculate Fibonacci
basis = vwma(src, length)
dev = mult * stdev(src, length)
fu764= basis + (0.001*level*dev)
fu1= basis + (1*dev)
fd764= basis - (0.001*level*dev)
fd1= basis - (1*dev)

// Calculate RSI
vrsi = rsi(close, len)

// Calculate the Targets
targetUp = fd764
targetDown = fu764
    // Actual Targets
bought = strategy.position_size[0] > strategy.position_size[1]
exit_long = valuewhen(bought, targetUp, 0)
sold = strategy.position_size[0] < strategy.position_size[1]
exit_short = valuewhen(sold, targetDown, 0)

// Calculate Stop Losses
sl_long = close * (1-stop_loss)
sl_short = close * (1+stop_loss)


// Conditions to Open Trades
openLong = low < fd1 and crossover(vrsi[1], overSold)
openShort = high > fu1 and crossunder(vrsi[1], overBought)

// Conditions to Close Trades
closeLong = high > exit_long or sl_long
closeShort = low < exit_short or sl_short


//Rounding to MinTick value
roundtargetUp = round_to_mintick(targetUp)
roundtargetDown = round_to_mintick(targetDown)
roundsllong = round_to_mintick(sl_long)
roundslshort = round_to_mintick(sl_short)

// Plots
plot(basis, color=color.blue, linewidth=2, title="[Fibonacci Level] Basis")
plot(fu764, color=color.white, linewidth=1, title="[Fibonacci Level] Short Target")
plot(fu1, color=color.red, linewidth=2, title="[Fibonacci Level] Top")
plot(fd764, color=color.white, linewidth=1, title="[Fibonacci Level] Long Target")
plot(fd1, color=color.green, linewidth=2, title="[Fibonacci Level] Bottom")


// Strategy Orders
if timeFilter
    // Entry Orders
    strategy.entry(id="buy", long=true, when=openLong and high < targetUp, limit=close, alert_message="buy,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetUp)+",sl="+tostring(roundsllong))
    strategy.entry(id="sell", long=false, when=openShort and low > targetDown, limit=close,  alert_message="sell,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetDown)+",sl="+tostring(roundslshort))

    // Exit Orders
    strategy.exit(id="closelong", when=closeLong and strategy.position_size > 0, limit=exit_long, stop=sl_long, alert_message="closelong,"+tostring(syminfo.ticker))
    strategy.exit(id="closeshort", when=closeShort and strategy.position_size < 0, limit=exit_short, stop=sl_short, alert_message="closeshort,"+tostring(syminfo.ticker))