
এই কৌশলটির মূল ধারণা হল এহলার্স সুপারস্মোথার ফিল্টার ব্যবহার করে র্যান্ডম স্টোক্যাস্টিক আরএসআই সূচকগুলিকে প্রক্রিয়াকরণ করা যাতে অনেকগুলি ভুয়া সংকেত ফিল্টার করা যায় এবং আরও নির্ভরযোগ্য ট্রেডিং সিগন্যাল পাওয়া যায়। মূল নীতিটি হ’ল প্রথমে র্যান্ডম স্টোক্যাস্টিক আরএসআই গণনা করা, তারপরে এহলার্স সুপারস্মোথার ফিল্টার ব্যবহার করে এটিকে সমতল করা এবং শেষ পর্যন্ত তার নিজস্ব চলমান গড়ের সাথে ক্রস করা।
এই কৌশলটি প্রথমে জার্নালের সমাপ্তির দামের RSI সূচকটি গণনা করে, তারপরে RSI সূচকের উপর ভিত্তি করে স্টোক্যাস্টিক সূচকটি গণনা করে, যা একটি সাধারণ তুলনামূলকভাবে দুর্বল সূচক সূচক। মিথ্যা সংকেতগুলি ফিল্টার করার জন্য, স্টোক্যাস্টিক আরএসআইকে ইলস সুপারপ্লেড ফিল্টার ব্যবহার করে প্রক্রিয়া করা হয়, এবং শেষ পর্যন্ত স্টোক্যাস্টিক আরএসআই লাইনটি তার নিজস্ব চলমান গড়ের সাথে গোল্ড ক্রস-ডোড করে, ক্রস-ডুড করে। সুতরাং কৌশলটির মূল বিষয়গুলি হলঃ 1) স্টোক্যাস্টিক আরএসআই সূচকটি গণনা করুন; 2) ইলস সুপারপ্লেড ফিল্টার ব্যবহার করুন; 3) চলমান গড়ের সাথে ট্রেডিং সংকেত তৈরি করুন।
এই কৌশলটির সবচেয়ে বড় সুবিধা হল এরস সুপার-স্লিপ ফিল্টার ব্যবহার করা, যা অনেকগুলি ভুয়া সংকেতকে কার্যকরভাবে ফিল্টার করতে পারে, ট্রেডিং সংকেতকে আরও নির্ভরযোগ্য করে তোলে। এছাড়াও, স্টোক্যাস্টিক আরএসআই সূচক নিজেই খুব ভাল বিচ্ছিন্নতা এবং প্রবণতা অনুসরণ করার ক্ষমতা রাখে। সুতরাং কৌশলটি সঠিকভাবে প্রবণতা সনাক্ত করতে পারে, যখন উপযুক্ত হয় তখন পজিশন তৈরি করতে পারে এবং যখন উপযুক্ত হয় তখন পজিশনটি পজিশন করতে পারে।
এই কৌশলটির প্রধান ঝুঁকি হল যে বাজারের ব্যাপক অস্থিরতার সময়, ভুল সংকেত তৈরি করা সহজ। যখন দামগুলি সংকীর্ণ পরিসরে ব্যাপকভাবে ওঠানামা করে, তখন স্টোক্যাস্টিক আরএসআই সূচকটি অনেক উত্থান ও পতনের মিথ্যা সংকেত তৈরি করে, যখন এরস সুপার-স্লিপ ফিল্টারের কার্যকারিতাও ছাড় দেয়। এছাড়াও, কিছু তীব্র পরিস্থিতিতে সূচকের পিছিয়ে থাকা কিছুটা ঝুঁকি নিয়ে আসতে পারে।
এই ঝুঁকিগুলি হ্রাস করার জন্য, প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করা যেতে পারে, যেমন স্টোক্যাস্টিক সূচক চক্রটি বড় করা, মসৃণতা হ্রাস করা ইত্যাদি, যাতে আরও মিথ্যা সংকেতগুলি ফিল্টার করা যায়। এছাড়াও, অন্যান্য সূচক বা রূপের সাথে সমন্বয় করার কথা বিবেচনা করা যেতে পারে, যাতে একাধিক ফিল্টারিং শর্ত তৈরি হয়, যাতে ভুল সংকেতগুলির ঝুঁকি এড়ানো যায়।
এই কৌশলটি মূলত নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
অপ্টিমাইজ করা প্যারামিটার সেটিং. স্টোক্যাস্টিক আরএসআই সূচকটির দৈর্ঘ্য, মসৃণ ধ্রুবক এবং অন্যান্য প্যারামিটারগুলিকে নিখুঁতভাবে পরীক্ষা করা যেতে পারে এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পাওয়া যায়।
মুনাফা লকিং এবং প্রত্যাহার কমানোর জন্য চলমান স্টপ বা স্টপ ওয়ান সেট করা যেতে পারে।
অন্যান্য সূচক বা ফর্ম্যাটের সাথে সমন্বয় অন্যান্য সূচক বা ফর্ম্যাটের সাথে সমন্বয় বিবেচনা করা যেতে পারে, যেমন ওঠানামা, চলমান গড় ইত্যাদি, একাধিক ফিল্টারিং শর্ত তৈরি করে, ঝুঁকি আরও কমিয়ে দেয়
বড় চক্র বিশ্লেষণের ফলাফল অনুযায়ী পজিশন সামঞ্জস্য করুন। উচ্চতর সময়কালের প্রবণতা বিশ্লেষণের ফলাফলের উপর ভিত্তি করে, প্রতিটি লেনদেনের অবস্থানের আকারটি গতিশীলভাবে সামঞ্জস্য করতে পারে।
এই কৌশলটি প্রথমে স্টোক্যাস্টিক আরএসআই সূচকটি গণনা করে, তারপরে এরস সুপার-স্লিপ ফিল্টার ব্যবহার করে এটি প্রক্রিয়াজাত করে, এবং অবশেষে তার নিজস্ব চলমান গড়ের সাথে ট্রেডিং সিগন্যাল গঠন করে, প্রবণতার সঠিক বিচার করতে সক্ষম হয়। কৌশলটির সুবিধা হ’ল সূচক এবং ফিল্টারগুলির সংমিশ্রণটি কার্যকরভাবে ফিল্টার করতে পারে। জাল সংকেত, উচ্চ সম্ভাব্যতার ব্যবসায়ের সুযোগ। ঝুঁকিটি মূলত প্যারামিটার সেটিং এবং স্টপ লস মেশিনের অনুপস্থিতি থেকে আসে। প্যারামিটার অপ্টিমাইজেশন, স্টপ লস অ্যাড এবং পোর্টাল অপ্টিমাইজেশনের মতো উপায়ে কৌশলটির স্থায়িত্ব এবং লাভের স্তর আরও বাড়ানো যেতে পারে।
/*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=3
strategy("ES Stoch RSI Strategy [krypt]", overlay=true, calc_on_order_fills=true, calc_on_every_tick=true, initial_capital=10000, currency='USD')
//Backtest Range
FromMonth = input(defval = 06, title = "From Month", minval = 1)
FromDay = input(defval = 1, title = "From Day", minval = 1)
FromYear = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth = input(defval = 7, title = "To Month", minval = 1)
ToDay = input(defval = 30, title = "To Day", minval = 1)
ToYear = input(defval = 2018, title = "To Year", minval = 2014)
PI = 3.14159265359
drop1st(src) =>
x = na
x := na(src[1]) ? na : src
xlowest(src, len) =>
x = src
for i = 1 to len - 1
v = src[i]
if (na(v))
break
x := min(x, v)
x
xhighest(src, len) =>
x = src
for i = 1 to len - 1
v = src[i]
if (na(v))
break
x := max(x, v)
x
xstoch(c, h, l, len) =>
xlow = xlowest(l, len)
xhigh = xhighest(h, len)
100 * (c - xlow) / (xhigh - xlow)
Stochastic(c, h, l, length) =>
rawsig = xstoch(c, h, l, length)
min(max(rawsig, 0.0), 100.0)
xrma(src, len) =>
sum = na
sum := (src + (len - 1) * nz(sum[1], src)) / len
xrsi(src, len) =>
msig = nz(change(src, 1), 0.0)
up = xrma(max(msig, 0.0), len)
dn = xrma(max(-msig, 0.0), len)
rs = up / dn
100.0 - 100.0 / (1.0 + rs)
EhlersSuperSmoother(src, lower) =>
a1 = exp(-PI * sqrt(2) / lower)
coeff2 = 2 * a1 * cos(sqrt(2) * PI / lower)
coeff3 = -pow(a1, 2)
coeff1 = (1 - coeff2 - coeff3) / 2
filt = na
filt := nz(coeff1 * (src + nz(src[1], src)) + coeff2 * filt[1] + coeff3 * filt[2], src)
smoothK = input(7, minval=1, title="K")
smoothD = input(2, minval=1, title="D")
lengthRSI = input(10, minval=1, title="RSI Length")
lengthStoch = input(3, minval=1, title="Stochastic Length")
showsignals = input(true, title="Buy/Sell Signals")
src = input(close, title="Source")
ob = 80
os = 20
midpoint = 50
price = log(drop1st(src))
rsi1 = xrsi(price, lengthRSI)
rawsig = Stochastic(rsi1, rsi1, rsi1, lengthStoch)
sig = EhlersSuperSmoother(rawsig, smoothK)
ma = sma(sig, smoothD)
plot(sig, color=#0094ff, title="K", transp=0)
plot(ma, color=#ff6a00, title="D", transp=0)
lineOB = hline(ob, title="Upper Band", color=#c0c0c0)
lineOS = hline(os, title="Lower Band", color=#c0c0c0)
fill(lineOB, lineOS, color=purple, title="Background")
// Buy/Sell Signals
// use curvature information to filter out some false positives
mm1 = change(change(ma, 1), 1)
mm2 = change(change(ma, 2), 2)
ms1 = change(change(sig, 1), 1)
ms2 = change(change(sig, 2), 2)
sellsignals = showsignals and (mm1 + ms1 < 0 and mm2 + ms2 < 0) and crossunder(sig, ma) and sig[1] > ob
buysignals = showsignals and (mm1 + ms1 > 0 and mm2 + ms2 > 0) and crossover(sig, ma) and sig[1] < os
ploff = 4
plot(buysignals ? sig[1] - ploff : na, style=circles, color=#008fff, linewidth=3, title="Buy Signal", transp=0)
plot(sellsignals ? sig[1] + ploff : na, style=circles, color=#ff0000, linewidth=3, title="Sell Signal", transp=0)
longCondition = buysignals
if (longCondition)
strategy.entry("L", strategy.long, comment="Long", when=(buysignals))
shortCondition = sellsignals
if (shortCondition)
strategy.entry("S", strategy.short, comment="Short", when=(sellsignals))