
রেনকো এটিআর ট্রেন্ড রিভার্সাল কৌশল হল একটি অনন্য ট্রেডিং কৌশল যা রেনকো চার্ট ব্যবহার করে গড় বাস্তব তরঙ্গের পরিমাপ করে। এটির লক্ষ্য হল ট্রেডিং সিদ্ধান্তের জন্য একটি পরিষ্কার সংকেত সরবরাহ করা।
এই কৌশলটি প্রথমে একটি নির্দিষ্ট সময়ের মধ্যে ATR এর মান গণনা করে এবং এই ATR এর উপর ভিত্তি করে Renko চার্ট এর ব্লক আকার সেট করে। যখন দাম একটি ATR এর চেয়ে বেশি পরিবর্তিত হয়, তখন একটি নতুন Renko ব্লক আঁকা হয়। এইভাবে, Renko চার্ট স্বয়ংক্রিয়ভাবে বাজারের অস্থিরতার সাথে মানিয়ে নিতে সক্ষম হয়, উচ্চ অস্থিরতার সময় একটি বড় ব্লক আকার সেট করে এবং নিম্ন অস্থিরতার সময় একটি ছোট ব্লক আকার সেট করে।
যখন রেনকো ওপেনের দামের নিচে ক্রস হয়, তখন এটি একটি কেনার সংকেত দেয়; যখন রেনকো ওপেনের দামের উপরে ক্রস হয়, তখন এটি একটি বিক্রির সংকেত দেয়। এই সংকেতগুলি সম্ভাব্য প্রবণতা বিপরীতের চিহ্নিত করে।
এই কৌশলটি ব্যবহারকারীর দ্বারা সংজ্ঞায়িত স্টপ লস শতাংশ এবং স্টপ লস শতাংশের উপর ভিত্তি করে, প্রতি লেনদেনের ঝুঁকি এবং লাভ নিয়ন্ত্রণের জন্য, প্রতি লেনদেনের জন্য স্টপ লস এবং স্টপ লস মূল্যকে রেঙ্কো ওপেন প্রাইস হিসাবে বেঞ্চমার্ক গতিশীলভাবে সেট করে।
এই কৌশলটি ম্যানুয়ালি রেনকোর ওপেন ও ক্লোজিং মূল্য গণনা করে, যা লেগ-অ্যাপিংয়ের সমস্যা দূর করে এবং সংকেতকে আরো সঠিক ও সময়োপযোগী করে তোলে।
এটিআর সূচকের উপর ভিত্তি করে রেঙ্কো ব্লক সাইজ সেটিং কৌশলকে স্বয়ংক্রিয়ভাবে বিভিন্ন বাজার অবস্থার অধীনে মূল্যের ওঠানামা করতে দেয়।
এই কৌশলটি প্রতিটি লেনদেনের জন্য একটি গতিশীল স্টপ লস এবং স্টপ স্টপ ব্যবস্থা নির্ধারণ করে, যা বাজারের অস্থিরতার উপর নির্ভর করে ঝুঁকি নিয়ন্ত্রণ করতে পারে।
রেঙ্কো চার্ট নিজেই বাজার শব্দ মুছে ফেলতে পারে এবং প্রবণতা বিপরীত হওয়ার সময় একটি পরিষ্কার এবং সংক্ষিপ্ত চাক্ষুষ প্রভাব সরবরাহ করে।
ব্যবহারকারীরা ATR চক্র, স্টপ লস শতাংশ এবং স্টপ বন্ধ শতাংশের মতো প্যারামিটারগুলিকে বিভিন্ন বাজার পরিবেশের সাথে খাপ খাইয়ে নেওয়ার জন্য অপ্টিমাইজ করতে হবে। প্যারামিটারগুলি যদি ভুলভাবে সেট করা হয় তবে কৌশলটি কার্যকর হবে না।
প্রধান অর্থনৈতিক ঘটনা বা নীতিমালা দ্রুত বৃদ্ধি করতে পারে, যার ফলে স্টপ লস বা স্টপস্টপ লেভেল অতিক্রান্ত হয়, যার ফলে বড় ক্ষতি হয়।
কিছু ক্ষেত্রে, ট্রেডিং সিগন্যাল দ্বারা নির্ধারিত বিপরীতটি ব্যর্থ হতে পারে, যা মূল্যকে বিপরীত দিকের দিকে চালিত করতে পারে না, যার ফলে ক্ষতি হয়।
বড় ট্রেন্ডগুলিকে উচ্চতর সময়কালের মধ্যে বিচার করা যায়, বিপরীতমুখী ট্রেডিং এড়ানো যায়। আপনি নিম্ন সময়ের মধ্যে মিথ্যা সংকেতগুলি ফিল্টার করতে পারেন।
গতির সূচক, ওড়ার হার সূচক ইত্যাদির সাথে একত্রে ব্যবহার করা, সংকেতের গুণমান উন্নত করতে পারে এবং ভুল সংকেত এড়াতে পারে।
স্টপ রেটটি বাজারের অস্থিরতা এবং সর্বশেষ মূল্য এবং প্রবেশের পয়েন্টের দূরত্বের উপর নির্ভর করে গতিশীলভাবে সামঞ্জস্য করা যায়।
রেনকো গড় বাস্তব তরঙ্গের উপর ভিত্তি করে প্রবণতা বিপরীতকরণ কৌশলটি রেনকো চার্টগুলিকে এটিআর সূচকগুলির সাথে সংযুক্ত করে আর্থিক বাজারে স্বয়ংক্রিয়ভাবে টার্নপয়েন্টগুলি সনাক্ত করতে সফলভাবে ব্যবহার করে। এই কৌশলটির সুবিধাগুলি হ’ল বিলম্বিত অঙ্কন, বাজার ওঠানামা এবং গতিশীল স্টপ লস স্টপগুলিকে স্বয়ংক্রিয়ভাবে মানিয়ে নেওয়া। একই সাথে, ব্যবহারকারীদের সতর্কতা প্যারামিটার সেটিং এবং অপ্টিমাইজেশন ঝুঁকি, এবং অপ্রত্যাশিত ঘটনা এবং বিপরীতকরণের ব্যর্থতার ঝুঁকি প্রয়োজন। একাধিক সময়কালীন বিশ্লেষণ, সূচক সমন্বয় এবং স্টপ সমন্বয় ইত্যাদির মাধ্যমে কৌশলটি আরও উন্নত করতে এবং কার্যকারিতা বাড়াতে পারে।
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title='[tradinghook] - Renko Trend Reversal Strategy', shorttitle='[tradinghook] - Renko TRS', overlay=true ,initial_capital = 100, commission_value = 0.05, default_qty_value = 5)
// INPUTS
renkoATRLength = input.int(10, minval=1, title='ATR Length')
stopLossPct = input.float(3, title='Stop Loss Percentage', step=0.1)
takeProfitPct = input.float(20, title='Take Profit Percentage', step=0.1)
startDate = input(timestamp("01 July 2023 00:00"), title="Start Date")
endDate = input(timestamp("31 Dec 2025 23:59"), title="End Date")
enableShorts = input.bool(true, title="Enable Shorts")
var float stopLossPrice = na
var float takeProfitPrice = na
atr = ta.atr(renkoATRLength)
// thanks to https://www.tradingview.com/script/2vKhpfVH-Renko-XZ/ for manually calculating renkoClose and renkoOpen in order to remove repaint
getRenkoClose() =>
p1 = 0.0
p1 := close > nz(p1[1]) + atr ? nz(p1[1]) + atr : close < nz(p1[1]) - atr ? nz(p1[1]) - atr : nz(p1[1])
p1
Renko3() =>
p3 = 0.0
p3 := open > nz(p3[1]) + atr ? nz(p3[1]) + atr : open < nz(p3[1]) - atr ? nz(p3[1]) - atr : nz(p3[1])
p3
getRenkoOpen() =>
open_v = 0.0
Br_2 = Renko3()
open_v := Renko3() != Renko3()[1] ? Br_2[1] : nz(open_v[1])
open_v
renkoOpen = getRenkoOpen()
renkoClose = getRenkoClose()
// COLORS
colorGreen = #089981
colorRed = #F23645
bgTransparency = 95
bgColorRed = color.new(colorRed, bgTransparency)
bgColorGreen = color.new(colorGreen, bgTransparency)
lineColor = renkoClose < renkoOpen ? colorRed : colorGreen
bgColor = renkoClose < renkoOpen ? bgColorRed : bgColorGreen
// PLOTS
plot(renkoOpen, title="Renko Open", style=plot.style_line, linewidth=2, color=lineColor)
bgcolor(bgColor)
// SIGNALS
isWithinTimeRange = true
buySignal = ta.crossunder(renkoOpen, renkoClose) and isWithinTimeRange
sellSignal = ta.crossover(renkoOpen, renkoClose) and isWithinTimeRange and enableShorts
if (buySignal)
stopLossPrice := renkoOpen * (1 - stopLossPct / 100)
takeProfitPrice := renkoOpen * (1 + takeProfitPct / 100)
strategy.entry("Long", strategy.long)
strategy.exit("ExitLong", "Long", stop = stopLossPrice, limit = takeProfitPrice, comment="SL: " + str.tostring(stopLossPrice) + ", TP: " + str.tostring(takeProfitPrice))
if (sellSignal)
stopLossPrice := renkoOpen * (1 + stopLossPct / 100)
takeProfitPrice := renkoOpen * (1 - takeProfitPct / 100)
strategy.entry("Short", strategy.short)
strategy.exit("ExitShort", "Short", stop = stopLossPrice, limit = takeProfitPrice, comment="SL: " + str.tostring(stopLossPrice) + ", TP: " + str.tostring(takeProfitPrice))