یہ حکمت عملی رینکو چارٹس اور رشتہ دار طاقت انڈیکس (آر وی آئی) کو یکجا کرتی ہے تاکہ مارکیٹ کے بیشتر اہم رجحانات کو حاصل کیا جاسکے۔ یہ بی ٹی سی یو ایس ڈی ، ایچ ایس آئی وغیرہ جیسے اہم علامتوں پر اچھی طرح کام کرتا ہے۔
یہ حکمت عملی 9 مدت اے ٹی آر کی بنیاد پر رینکو اینٹوں کی تعمیر کرتی ہے۔ جب بند ہونے والی قیمت پچھلی اینٹوں کی اونچائی سے تجاوز کرتی ہے تو ایک نئی سبز اینٹوں کی تعمیر کی جاتی ہے۔ جب بند ہونے والی قیمت پچھلی اینٹوں کی کم سے نیچے آجاتی ہے تو ایک نئی سرخ اینٹوں کی تعمیر کی جاتی ہے۔ رجحان کی سمت آر وی آئی اشارے کے ذریعہ طے کی جاتی ہے۔
RVI خرید اور فروخت کے دباؤ کے مابین نسبتا strength طاقت کی پیمائش کرنے کے لئے 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")