এই কৌশলটি বেশিরভাগ প্রধান বাজারের প্রবণতা ক্যাপচার করতে রেঙ্কো চার্ট এবং আপেক্ষিক শক্তি সূচক (আরভিআই) একত্রিত করে। এটি বিটিসিইউএসডি, এইচএসআই ইত্যাদির মতো প্রধান প্রতীকগুলিতে ভাল কাজ করে।
এই কৌশলটি 9 পিরিয়ড এটিআর এর উপর ভিত্তি করে রেঙ্কো ইট তৈরি করে। একটি নতুন সবুজ ইট তৈরি করা হয় যখন বন্ধের দাম পূর্ববর্তী ইটের উচ্চতা অতিক্রম করে। একটি নতুন লাল ইট তৈরি করা হয় যখন বন্ধের দাম পূর্ববর্তী ইটের নিম্নের নীচে পড়ে। প্রবণতা দিকটি আরভিআই সূচক দ্বারা নির্ধারিত হয়।
RVI ক্রয় এবং বিক্রয় চাপের মধ্যে আপেক্ষিক শক্তি পরিমাপ করার জন্য 0-1 এর মধ্যে oscillates। 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")