
এই কৌশলটি অ্যালেক্সগ্রোভারের বিকাশের উপর ভিত্তি করে একটি প্রবণতা ট্র্যাকিং এবং বিরতি কৌশল। কৌশলটি দামের প্রবণতা এবং সমালোচনামূলক সমর্থন প্রতিরোধের স্তরগুলি নির্ধারণের জন্য পুনরাবৃত্তিমূলক বন্ডের সূচক ব্যবহার করে, যা একটি নিম্ন-প্রাথমিক কিন্তু উচ্চ-মানের প্রবেশের জন্য ভ্রান্ত বিরতিগুলি ফিল্টার করার জন্য গতির শর্তগুলির সাথে মিলিত হয়।
পুনরাবৃত্তিমূলক ব্যান্ডের সূচকটি উপরের ব্যান্ড, নীচের ব্যান্ড এবং মধ্যম লাইন দিয়ে গঠিত। সূচকটি গণনা করা হয়ঃ
শীর্ষ রেখা = সর্বোচ্চ মান ((প্রথম K রেখার শীর্ষ রেখা, সমাপ্তি মূল্য + n*ওঠানামা)
নিচের রেখা = সর্বনিম্ন মান ((প্রথম K রেখার নিচের রেখা, সমাপ্তি মূল্য - n*ওঠানামা)
মধ্যম রেখা = (উপরের রেখা + নিচের রেখা) / 2
যেখানে n হল একটি স্কেলিং ফ্যাক্টর, যেখানে ওঠানামা ATR, স্ট্যান্ডার্ড ডিফারেনশিয়াল, গড় চ্যানেল এবং বিশেষ RFV পদ্ধতির জন্য নির্বাচন করা যেতে পারে। দৈর্ঘ্য প্যারামিটারটি সূচকের সংবেদনশীলতা নিয়ন্ত্রণ করে, মানটি যত বড় হবে, সূচকটি তত কম ট্রিগার হবে।
কৌশলটি প্রথমে নিম্নে বর্ণিত ব্রেকডাউনগুলি নির্মূল করার জন্য নিম্নে বর্ণিত ব্রেকডাউনগুলি এবং উপরের বর্ণিত ব্রেকডাউনগুলি পরীক্ষা করে।
যখন দাম নিম্নরেখার নীচে থাকে, তখন বেশি করুন; যখন দাম উচ্চরেখার উপরে থাকে, তখন কম করুন।
এর পাশাপাশি, কৌশলটি স্টপ লজিস্টিক নির্ধারণ করে।
এই কৌশলটির সুবিধাগুলো হলঃ
এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ
প্যারামিটার অপ্টিমাইজেশান, স্টপ লস এবং স্লাইড পয়েন্ট বাড়িয়ে এই ঝুঁকি নিয়ন্ত্রণ করা যায়।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
এই কৌশলটি সামগ্রিকভাবে একটি খুব ব্যবহারিক এবং কার্যকর প্রবণতা ট্র্যাকিং কৌশল। এটি পুনরাবৃত্ত ফ্রেমওয়ার্কের সাথে সংযুক্ত করা হয় যা গণনা সম্পদ সংরক্ষণ করে, প্রবণতা সমর্থনকারী প্রতিরোধের ব্যবহার করে বৃহত্তর প্রবণতার দিকনির্দেশনা নির্ধারণ করে, গতিশীল শর্তগুলি ফিল্টার করে, যা মিথ্যা ব্রেকআউটকে বাড়িয়ে দেয়, যাতে ট্রেডিং সিগন্যালের গুণমান নিশ্চিত হয়। প্যারামিটার সমন্বয় এবং ঝুঁকি নিয়ন্ত্রণের ক্ষেত্রে ভাল প্রভাব পাওয়া যায়। এটি আরও গবেষণা এবং অপ্টিমাইজেশনের জন্য মূল্যবান, যাতে এটি আরও জটিল বাজার পরিবেশের সাথে খাপ খাইয়ে নিতে পারে।
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=5
// Original indicator by alexgrover
strategy('Extended Recursive Bands Strategy', overlay=true, commission_type=strategy.commission.percent,commission_value=0.06,default_qty_type =strategy.percent_of_equity,default_qty_value = 100,initial_capital =1000)
length = input.int(260, step=10, title='Length')
src = input(close, title='Source')
method = input.string('Classic', options=['Classic', 'Atr', 'Stdev', 'Ahlr', 'Rfv'], title='Method')
bandDirectionCheck = input.bool(true, title='Bands Hold Direction')
lookback = input(3)
//----
atr = ta.atr(length)
stdev = ta.stdev(src, length)
ahlr = ta.sma(high - low, length)
rfv = 0.
rfv := ta.rising(src, length) or ta.falling(src, length) ? math.abs(ta.change(src)) : rfv[1]
//-----
f(a, b, c) =>
method == a ? b : c
v(x) =>
f('Atr', atr, f('Stdev', stdev, f('Ahlr', ahlr, f('Rfv', rfv, x))))
//----
sc = 2 / (length + 1)
a = 0.
a := math.max(nz(a[1], src), src) - sc * v(math.abs(src - nz(a[1], src)))
b = 0.
b := math.min(nz(b[1], src), src) + sc * v(math.abs(src - nz(b[1], src)))
c = (a+b)/2
// Colors
beColor = #675F76
buColor = #a472ff
// Plots
pA = plot(a, color=color.new(beColor, 0), linewidth=2, title='Upper Band')
pB = plot(b, color=color.new(buColor, 0), linewidth=2, title='Lower Band')
pC = plot(c, color=color.rgb(120,123,134,0), linewidth=2, title='Middle Band')
fill(pC, pA, color=color.new(beColor,90))
fill(pC, pB, color=color.new(buColor,90))
// Band keeping direction
// By Adulari
longc = 0
shortc = 0
for i = 0 to lookback-1
if b[i] > b[i+1]
longc:=longc+1
if a[i] < a[i+1]
shortc:=shortc+1
bhdLong = if bandDirectionCheck
longc==lookback
else
true
bhdShort = if bandDirectionCheck
shortc==lookback
else
true
// Strategy
if b>=low and bhdLong
strategy.entry(id='Long',direction=strategy.long)
if high>=a and bhdShort
strategy.entry(id='Short',direction=strategy.short)
// TP at middle line
//if low<=c and strategy.position_size<0 and strategy.position_avg_price>close
//strategy.exit(id="Short",limit=close)
//if high>=c and strategy.position_size>0 and strategy.position_avg_price<close
//strategy.exit(id="Long",limit=close)