यह रणनीति अधिकांश प्रमुख बाजार रुझानों को पकड़ने के लिए रेन्को चार्ट और रिलेटिव वीगोर इंडेक्स (RVI) को जोड़ती है। यह BTCUSD, HSI आदि जैसे प्रमुख प्रतीकों पर अच्छी तरह से काम करती है।
रणनीति 9 अवधि एटीआर के आधार पर रेन्को ईंटों का निर्माण करती है। एक नई हरी ईंट का निर्माण तब किया जाता है जब बंद कीमत पिछले ईंट के उच्च से अधिक हो जाती है। एक नई लाल ईंट का निर्माण तब किया जाता है जब बंद कीमत पिछले ईंट के निम्न से नीचे गिर जाती है। रुझान की दिशा आरवीआई संकेतक द्वारा निर्धारित की जाती है।
RVI खरीद और बिक्री दबाव के बीच सापेक्ष शक्ति को मापने के लिए 0-1 के बीच दोलन करता है। 0.5 से ऊपर मजबूत खरीद दबाव का प्रतिनिधित्व करता है जबकि 0.5 से नीचे मजबूत बिक्री दबाव का प्रतिनिधित्व करता है। RVI अपने चिकनी चलती औसत से ऊपर पार करने से बिक्री दबाव कम होने पर खरीद संकेत देता है। RVI से नीचे पार करने से खरीद दबाव कम होने पर बिक्री संकेत मिलता है।
इसके अनुसार लंबी या छोटी स्थिति दर्ज करने के लिए रेंको ईंट दिशा और आरवीआई संकेतों को मिलाएं।
यह रणनीति प्रमुख रुझानों को पकड़ने के लिए दो अलग-अलग प्रकार के संकेतकों को जोड़ती है। रेंको और आरवीआई मापदंडों पर आगे का अनुकूलन स्थिरता में सुधार कर सकता है। कोई भी मॉडल सही नहीं है और कुछ ट्रेडों को याद करना अपरिहार्य है। उपयोगकर्ताओं को अपनी जोखिम वरीयता का आकलन करने और उचित प्रतीक / पैरामीटर कॉम्बो चुनने की आवश्यकता है।
/*backtest start: 2023-01-28 00:00:00 end: 2024-02-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Lancelot RR Strategy", overlay=false) p=9 CO=close-open HL=high-low value1 = (CO + 2*CO[1] + 2*CO[2] + CO[3])/6 value2 = (HL + 2*HL[1] + 2*HL[2] + HL[3])/6 num=sum(value1,p) denom=sum(value2,p) RVI=denom!=0?num/denom:0 RVIsig=(RVI+ 2*RVI[1] + 2*RVI[2] + RVI[3])/6 rvicloselongcondition = crossunder(RVI, RVIsig) rvicloseshortcondition = crossover(RVI, RVIsig) plot(RVI,color=green,style=line,linewidth=1) plot(RVIsig,color=red,style=line,linewidth=1) bgcolor(rvicloseshortcondition ? green : na, transp = 75) bgcolor(rvicloselongcondition ? red : na, transp = 75) ///Renko/// TF = input(title='TimeFrame', defval="D") ATRlength = input(title="ATR length", defval=9, minval=2, maxval=100) SMAlength = input(title="SMA length", defval=5, minval=2, maxval=100) SMACurTFlength = input(title="SMA CurTF length", defval=20, minval=2, maxval=100) HIGH = request.security(syminfo.tickerid, TF, high) LOW = request.security(syminfo.tickerid, TF, low) CLOSE = request.security(syminfo.tickerid, TF, close) ATR = request.security(syminfo.tickerid, TF, atr(ATRlength)) SMA = request.security(syminfo.tickerid, TF, sma(close, SMAlength)) SMACurTF = sma(close, SMACurTFlength) RENKOUP = na RENKODN = na H = na COLOR = na BUY = na SELL = na UP = na DN = na CHANGE = na RENKOUP := na(RENKOUP[1]) ? ((HIGH+LOW)/2)+(ATR/2) : RENKOUP[1] RENKODN := na(RENKOUP[1]) ? ((HIGH+LOW)/2)-(ATR/2) : RENKODN[1] H := na(RENKOUP[1]) or na(RENKODN[1]) ? RENKOUP-RENKODN : RENKOUP[1]-RENKODN[1] COLOR := na(COLOR[1]) ? white : COLOR[1] BUY := na(BUY[1]) ? 0 : BUY[1] SELL := na(SELL[1]) ? 0 : SELL[1] UP := false DN := false CHANGE := false if(not CHANGE and close >= RENKOUP[1]+H*3) CHANGE := true UP := true RENKOUP := RENKOUP[1]+ATR*3 RENKODN := RENKOUP[1]+ATR*2 COLOR := lime SELL := 0 BUY := BUY+3 if(not CHANGE and close >= RENKOUP[1]+H*2) CHANGE := true UP := true RENKOUP := RENKOUP[1]+ATR*2 RENKODN := RENKOUP[1]+ATR COLOR := lime SELL := 0 BUY := BUY+2 if(not CHANGE and close >= RENKOUP[1]+H) CHANGE := true UP := true RENKOUP := RENKOUP[1]+ATR RENKODN := RENKOUP[1] COLOR := lime SELL := 0 BUY := BUY+1 if(not CHANGE and close <= RENKODN[1]-H*3) CHANGE := true DN := true RENKODN := RENKODN[1]-ATR*3 RENKOUP := RENKODN[1]-ATR*2 COLOR := red BUY := 0 SELL := SELL+3 if(not CHANGE and close <= RENKODN[1]-H*2) CHANGE := true DN := true RENKODN := RENKODN[1]-ATR*2 RENKOUP := RENKODN[1]-ATR COLOR := red BUY := 0 SELL := SELL+2 if(not CHANGE and close <= RENKODN[1]-H) CHANGE := true DN := true RENKODN := RENKODN[1]-ATR RENKOUP := RENKODN[1] COLOR := red BUY := 0 SELL := SELL+1 plotshape(UP, style=shape.arrowup, location=location.bottom, size=size.normal) renkolongcondition = UP renkoshortcondition = DN ///Long Entry/// longcondition = UP if (longcondition) strategy.entry("Long", strategy.long) ///Long exit/// closeconditionlong = rvicloselongcondition if (closeconditionlong) strategy.close("Long")