आरएसआई लंबी शॉर्ट बैलेंस ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांकः 2023-10-30 15:49:35
टैगः

img

अवलोकन

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

रणनीति तर्क

  1. 5-मिनट, 15-मिनट और 1-घंटे के टाइमफ्रेम के आरएसआई मूल्यों की गणना करें। जब 5-मिनट, 15-मिनट और 1-घंटे के आरएसआई सभी एक ही समय में 25 से नीचे होते हैं, तो इसे ओवरसोल्ड स्थिति के रूप में माना जाता है और खरीद संकेत उत्पन्न होता है। जब 5-मिनट, 15-मिनट और 1-घंटे के आरएसआई सभी एक ही समय में 75 से ऊपर होते हैं, तो इसे ओवरबोल्ड स्थिति के रूप में माना जाता है और एक बिक्री संकेत उत्पन्न होता है।

  2. 21 दिन के मूविंग एवरेज को तोड़ना एक ट्रेडिंग सिग्नल के रूप में भी कार्य करता है। यदि कीमत मूविंग एवरेज से नीचे है, तो एक खरीद सिग्नल उत्पन्न होता है। यदि कीमत मूविंग एवरेज से ऊपर है, तो एक बिक्री सिग्नल उत्पन्न होता है।

  3. वर्तमान स्थिति के आधार पर, प्रारंभिक व्यापार का आकार और पिरामिड नियम निर्धारित किए जाते हैंः पहली प्रविष्टि के लिए 2 अनुबंध, और फिर स्थिति 2 अनुबंध तक पहुंचने तक प्रत्येक बार 1 अनुबंध जोड़ना।

  4. स्टॉप लॉस तब ट्रिगर होता है जब हानि 3% तक पहुंच जाती है। लाभ लेने के लिए जब लाभ 1% तक पहुंच जाता है।

लाभ

  1. ओवरबॉट और ओवरसोल्ड स्थितियों को निर्धारित करने के लिए कई समय सीमाओं में आरएसआई संकेतकों का उपयोग करने से संकेत की विश्वसनीयता में सुधार होता है।

  2. चलती औसत का संयोजन अतिरिक्त ट्रेडिंग संकेत उत्पन्न करता है और व्यापार के अवसरों का विस्तार करता है।

  3. स्टॉप लॉस और टेक प्रॉफिट के लिए पोजीशन साइजिंग कंट्रोल और प्रॉफिट/लॉस रेश्यो सेट करना जोखिमों का प्रबंधन करता है।

  4. निश्चित मात्रा के साथ स्केलिंग लाभ क्षमता का विस्तार करती है।

जोखिम

  1. आरएसआई विचलन जोखिम. आरएसआई ओवरबॉट या ओवरसोल्ड थ्रेशोल्ड तक पहुंचने के बाद भी कीमत एक अवधि के लिए प्रवृत्ति जारी रख सकती है। आरएसआई संकेत का अंधाधुंध पालन करने से नुकसान हो सकता है।

  2. मूविंग एवरेज ट्रेडिंग सिग्नल भ्रामक हो सकता है. मूविंग एवरेज बड़ी कीमतों के उतार-चढ़ाव के दौरान समय पर मूल्य परिवर्तन का ट्रैक करने में विफल रहता है.

  3. गलत स्थिति आकार और लाभ/नुकसान अनुपात सेटिंग्स से जोखिम नियंत्रण में कमी आती है।

  4. पिरामिडिंग स्थितियों को उचित रूप से निर्धारित करने की आवश्यकता है ताकि नुकसान को बढ़ाया न जा सके।

अनुकूलन दिशाएँ

  1. आरएसआई मापदंडों को समायोजित करें और अधिक विश्वसनीय ओवरबॉट/ओवरसोल्ड संकेत खोजने के लिए विभिन्न अवधि संयोजनों का परीक्षण करें।

  2. विभिन्न चलती औसत को सहायक व्यापार संकेतों या अन्य तकनीकी संकेतकों के रूप में परीक्षण करें।

  3. अधिक वैज्ञानिक जोखिम नियंत्रण तंत्र बनाने के लिए स्थिति आकार और स्टॉप लॉस/टेक प्रॉफिट नियम अनुकूलित करें।

  4. पिरामिडिंग स्थितियों को अनुकूलित करें ताकि बढ़ते नुकसान को रोका जा सके। निश्चित मात्रा स्केलिंग के बजाय घातीय स्केलिंग पर विचार करें।

सारांश

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


/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("5M_RSI_Strategy", overlay=true, pyramiding = 1)
len =14 
Initial_Trade_Size = 2
up = rma(max(change(close), 0), len)
down = rma(-min(change(close), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
RSI_1h = request.security(syminfo.tickerid, "60", rsi)
RSI_3h = request.security(syminfo.tickerid, "180", rsi)
RSI_15m = request.security(syminfo.tickerid, "15", rsi)
RSI_5m = request.security(syminfo.tickerid, "5", rsi)
RSI_1m = request.security(syminfo.tickerid, "1", rsi)
ema21_5 = ema(request.security(syminfo.tickerid, "5", close), 21)
ema21_15 = ema(request.security(syminfo.tickerid, "15", close), 21)
//(RSI_3h<=25) and  (RSI_1h<=25) and (RSI_15m<=25) and
Positive = ((RSI_5m<=25) and (RSI_15m<=25) and (RSI_1h<=25))?true:false
//alertcondition(Positive, title='POS', message='POS')        
//plotshape(Positive, style=shape.triangleup,location=location.belowbar, color=green,size =size.tiny)
Negative = (( RSI_5m>=75) and ( RSI_15m>=75) and ( RSI_1h>=75))?true:false
//alertcondition(Negative, title='NEG', message='NEG')
//plotshape(Negative, style=shape.triangledown,location=location.abovebar, color=red,size=size.tiny)          Positive and   Negative and 

lastordersize = abs(strategy.position_size)>=Initial_Trade_Size?abs(strategy.position_size):Initial_Trade_Size
//lastordersize =1
// and ((ema21_15-low)/ema21_15) > 0.077
//Adding to position rules
if (abs(strategy.position_size) >= Initial_Trade_Size and (abs(close - strategy.position_avg_price)/abs(strategy.position_avg_price)>0.03))
    if(strategy.position_avg_price > close and strategy.position_size > 0)
        strategy.entry("Add", strategy.long , qty = lastordersize , when = true)
    if(strategy.position_avg_price < close and strategy.position_size < 0)
        strategy.entry("Add", strategy.short, qty = lastordersize , when = true)
if (strategy.position_size == 0)
    if (Positive or ((ema21_5-low)/ema21_5) > 0.07)
        strategy.entry("1St Entry", strategy.long , qty = lastordersize , when = true)
    // and ((high-ema21_15)/ema21_15) > 0.077
    if (Negative or ((high-ema21_5)/ema21_5) > 0.07)
        strategy.entry("1St Entry", strategy.short, qty = lastordersize , when = true)
//lastordersize := lastordersize * 2
//or (strategy.openprofit / abs(strategy.position_size * close))>=0.01
if(cross(ema21_5, high) or cross(ema21_5, low))
    strategy.close_all()

अधिक