
এই কৌশলটি একাধিক প্রযুক্তিগত সূচকের সমন্বিত সংকেত গণনা করে বর্তমান সময়ের ফ্রেমের মধ্যে প্রবণতার দিকটি নির্ধারণ করে। যখন এটি একটি উত্থান প্রবণতা হিসাবে বিবেচিত হয়, তখন উচ্চতর বিন্দুতে একটি স্টপ লিন সেট করুন; যখন এটি একটি পতন প্রবণতা হিসাবে বিবেচিত হয়, তখন নিম্নতর বিন্দুতে একটি স্টপ লিন সেট করুন। কৌশলটি বিভিন্ন জাতের এবং বিভিন্ন সময় ফ্রেমের সাথে খাপ খাইয়ে নিতে পারে, গতিশীলভাবে স্টপ লাইনটি সামঞ্জস্য করে, ঝুঁকি নিয়ন্ত্রণের জন্য।
এই কৌশলটি গড় রেখা, এটিআর, কেডি, পরিবর্তনশীলতা এবং আরও অনেকগুলি সূচককে একত্রিত করে বর্তমান সময়ের ফ্রেমের সামগ্রিক প্রবণতার দিকনির্দেশনা দেয়। বিশেষত, এটি নিম্নলিখিত কয়েকটি সাবসিগন্যালের সমন্বিত মান গণনা করেঃ
উপরে উল্লিখিত প্রতিটি সাব সিগন্যালকে মসৃণ করা হয়েছে এবং ক্রয়/বিক্রয় সিদ্ধান্তের জন্য আলাদা থ্রেশহোল্ড সেট করা হয়েছে। তারপরে প্রতিটি সাব সিগন্যালকে ওজন দেওয়া হয়েছে এবং বর্তমান সময় ফ্রেমের সামগ্রিক সংকেত গণনা করা হয়েছে। যদি সংকেতটি 0 এর চেয়ে বড় হয় তবে এটি একটি উচ্চ প্রবণতা হিসাবে বিচার করা হবে এবং যদি সংকেতটি 0 এর চেয়ে ছোট হয় তবে এটি একটি নিম্ন প্রবণতা হিসাবে বিচার করা হবে।
যখন এটি একটি উচ্চ প্রবণতা হিসাবে বিবেচিত হয়, তখন কৌশলটি পূর্বের উচ্চ পয়েন্টের কাছাকাছি একটি স্টপ লিন্ড সেট করে; যখন এটি একটি নিম্ন প্রবণতা হিসাবে বিবেচিত হয়, তখন কৌশলটি পূর্বের নিম্ন পয়েন্টের কাছাকাছি একটি স্টপ লিন্ড সেট করে। এইভাবে, প্রকৃত মূল্যের গতির উপর ভিত্তি করে স্টপ লিন্ডকে গতিশীলভাবে সামঞ্জস্য করা যায়, ঝুঁকি নিয়ন্ত্রণের উদ্দেশ্য অর্জনের জন্য।
এই কৌশলটি বর্তমান প্রবণতার দিকনির্দেশের জন্য একাধিক সূচককে একীভূত করে, যা বিচারের নির্ভুলতা বাড়ায়। একই সাথে, কৌশলটি বিভিন্ন জাত এবং সময়সীমার সাথে খাপ খাইয়ে নিতে পারে, যা শক্তিশালী অভিযোজনযোগ্যতা রয়েছে।
সর্বোপরি, এই কৌশলটি গতিশীলভাবে স্টপ লিনের সমন্বয় করতে সক্ষম, বাস্তব গতির উপর ভিত্তি করে ঝুঁকি নিয়ন্ত্রণের স্তরকে সামঞ্জস্য করতে সক্ষম, যার ফলে সিস্টেমিক ঝুঁকিকে হিড্ডি করা যায়, যা এর সবচেয়ে বড় সুবিধা।
এই কৌশলটি ট্রেন্ড সিগন্যালের মান নির্ধারণ করে যা স্টপ লিনের সেটিংকে সরাসরি প্রভাবিত করে, এবং যদি বিচারটি ভুল হয় তবে স্টপ লিনের অবস্থানটি খুব হালকা বা খুব কঠোরভাবে সেট করা হতে পারে। এছাড়াও, স্টপ লিনটি ট্রেন্ডের বিপর্যয়কে পুরোপুরি এড়াতে পারে না এমন ঝুঁকি রয়েছে।
এই কৌশলটি লাভের স্তর এবং ক্ষতির দূরত্বের মধ্যে ভারসাম্য বজায় রাখতে হবে, যদি ক্ষতির দূরত্ব খুব কাছাকাছি থাকে তবে এটি খুব ঘন ঘন ক্ষতির কারণ হতে পারে; যদি ক্ষতির দূরত্ব খুব বেশি হয় তবে ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করা যায় না। এটি বিভিন্ন জাতের বিভিন্ন চক্রের জন্য প্যারামিটার অপ্টিমাইজেশনের প্রয়োজন।
মেশিন লার্নিং অ্যালগরিদমের প্রবর্তন বিবেচনা করা যেতে পারে, যা ঐতিহাসিক ডেটা ব্যবহার করে ট্রেন্ডের দিকনির্দেশের জন্য মডেলকে প্রশিক্ষণ দেয়, যার ফলে সিদ্ধান্তের নির্ভুলতা বৃদ্ধি পায়।
বিভিন্ন প্যারামিটার সমন্বয় পরীক্ষা করা যেতে পারে, স্টপ লিনের দূরত্বের অপ্টিমাইজেশনের জন্য। যেমন, বাজারের ওঠানামার পরিবর্তনের সাথে সামঞ্জস্য রেখে এটিআর চক্রের প্যারামিটারগুলিকে গতিশীলভাবে সামঞ্জস্য করা যায়।
ট্রেডিং ভলিউম এনার্জি ইন্ডিকেটরের সাথে মিলিয়ে প্রকৃত প্রবণতা নির্ণয় করা যায়, যাতে ভলিউম মূল্যের বিচ্যুতির ফলে সংকেত ত্রুটি প্রতিরোধ করা যায়।
এই কৌশলটি একাধিক প্রযুক্তিগত সূচককে সংহত করে বর্তমান প্রবণতার দিকনির্দেশের বিচার করে এবং সেই অনুযায়ী গতিশীলভাবে স্টপ লিনের ট্র্যাকিংকে সামঞ্জস্য করে, যার লক্ষ্য ক্ষতির কার্যকারিতা বাড়ানো এবং লেনদেনের ঝুঁকি নিয়ন্ত্রণ করা। এই কৌশলটি ধারণাটি উন্নত, আরও অনুকূলিতকরণ এবং যাচাইকরণের জন্য উপযুক্ত, এটি একটি রেফারেন্সের জন্য একটি মাল্টিটাইম ফ্রেমওয়ার্ক স্বনির্ধারিত ঝুঁকি নিয়ন্ত্রণ কৌশল।
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jigneshjc
//@version=5
strategy("Jigga - Survival Level", shorttitle='Jigga - Survival Level', overlay=true)
doBackTesting = input(true, 'Run Back Testing')
entryCondition = false
exitCondition = false
ab21 = 14, gh41 = ab21
gh42 = ab21, ju51 = 14
ki61 = ju51
lkolkp = true ,ab22 = 58
cd31 = 5 , ab23 = 42
aa12 = 29, cd32 = 26
op71 = 5, aa11 = 12
aa13 = 9, op72 = 2.0
movnwx = false
kahachale(byju, h, l) =>
mika = ta.change(h)
awer = -ta.change(l)
uikmhDM = na(mika) ? na : mika > awer and mika > 0 ? mika : 0
wrtdfcDM = na(awer) ? na : awer > mika and awer > 0 ? awer : 0
bbct = ta.rma(ta.tr, byju)
uikmh = fixnan(100 * ta.rma(uikmhDM, byju) / bbct)
wrtdfc = fixnan(100 * ta.rma(wrtdfcDM, byju) / bbct)
[uikmh, wrtdfc]
trial(gh42, gh41, h, l) =>
[uikmh, wrtdfc] = kahachale(gh42, h, l)
uuolop = uikmh + wrtdfc
trial = 100 * ta.rma(math.abs(uikmh - wrtdfc) / (uuolop == 0 ? 1 : uuolop), gh41)
trial
_pr(src, byjugth) =>
max = ta.highest(byjugth)
min = ta.lowest(byjugth)
100 * (src - max) / (max - min)
kyukarna(khulmkhula, mikaarwala, nichewala, bandhwala, partiwala) =>
sig = trial(gh42, gh41, mikaarwala, nichewala)
trialIncreasing = sig > ta.ema(sig, 5) ? lkolkp : movnwx
rolkmn = ta.ema(bandhwala, aa11)
psolkmn = ta.ema(bandhwala, aa12)
ujghd = rolkmn - psolkmn
wrtycv = ta.ema(ujghd, aa13)
kimnjg = ujghd - wrtycv
mikalilo = ta.rma(math.max(ta.change(bandhwala), 0), ab21)
awerlilo = ta.rma(-math.min(ta.change(bandhwala), 0), ab21)
lilo = awerlilo == 0 ? 100 : mikalilo == 0 ? 0 : 100 - 100 / (1 + mikalilo / awerlilo)
juylknlilo = ta.ema(lilo, 3)
rjuylkn = ta.ema(bandhwala, cd31)
psjuylkn = ta.ema(bandhwala, cd32)
percentR = _pr(bandhwala, ju51)
juylknpercentR = ta.ema(percentR, 3)
ad = bandhwala == mikaarwala and bandhwala == nichewala or mikaarwala == nichewala ? 0 : (2 * bandhwala - nichewala - mikaarwala) / (mikaarwala - nichewala) * partiwala
kiloValue = math.sum(ad, ki61) / math.sum(partiwala, ki61)
liiopn = ta.atr(op71)
mikaliiopn = (mikaarwala + nichewala) / 2 - op72 * liiopn
mika1liiopn = nz(mikaliiopn[1], mikaliiopn)
mikaliiopn := bandhwala[1] > mika1liiopn ? math.max(mikaliiopn, mika1liiopn) : mikaliiopn
dnliiopn = (mikaarwala + nichewala) / 2 + op72 * liiopn
dn1liiopn = nz(dnliiopn[1], dnliiopn)
dnliiopn := bandhwala[1] < dn1liiopn ? math.min(dnliiopn, dn1liiopn) : dnliiopn
omnerliiopn = 1
omnerliiopn := nz(omnerliiopn[1], omnerliiopn)
omnerliiopn := omnerliiopn == -1 and bandhwala > dn1liiopn ? 1 : omnerliiopn == 1 and bandhwala < mika1liiopn ? -1 : omnerliiopn
fitur = ujghd > 0 ? ujghd > wrtycv ? 1 : 0 : ujghd > wrtycv ? 0 : -1
mitur = kimnjg >= 0 ? kimnjg > kimnjg[1] ? 1 : 0 : kimnjg > kimnjg[1] ? 0 : -1
ritur = juylknlilo > ab22 ? 1 : juylknlilo < ab23 ? -1 : 0
circuits = rjuylkn > psjuylkn ? 1 : -1
trialPoints = trialIncreasing ? close > ta.ema(close, 3) ? 1 : -1 : 0
virar = juylknpercentR > -ab23 ? 1 : juylknpercentR < -ab22 ? -1 : 0
chikar = kiloValue > 0.1 ? 1 : kiloValue < -0.1 ? -1 : 0
sitar = omnerliiopn
p = fitur + mitur + ritur + circuits + trialPoints + virar + chikar + sitar
p
currentP = kyukarna(open, high, low, close, volume)
currentPNew = currentP >= 0 and currentP[1] <= 0 ? 0 : currentP <= 0 and currentP[1] >= 0 ? 0 : currentP
colorPNew = currentPNew == 0 ? color.black : currentPNew >= 0 ? color.green : color.red
//plot(currentPNew, color=colorPNew, title='CurrentTimeFrame')
LTN = 0.0
LTN := nz(LTN) ? 0.0 : (currentPNew[1] < 0 and currentPNew >= 0) ? high * 1.005 : (currentPNew[1] > 0 and currentPNew <= 0) ? low * 0.995 : LTN[1]
LClr = color.green
LClr := (currentPNew[1] < 0 and currentPNew >= 0) ? color.green : (currentPNew[1] > 0 and currentPNew <= 0) ? color.red : LClr[1]
plot(LTN,color=LClr,title="Level", style=plot.style_circles)
entryCondition:= high > LTN and LClr == color.green ? lkolkp : movnwx
exitCondition:= low < LTN and LClr == color.red ? lkolkp : movnwx
tradeRunning = movnwx
tradeRunning := nz(tradeRunning) ? movnwx : (not tradeRunning[1]) and entryCondition ? lkolkp : tradeRunning[1] and exitCondition ? movnwx : tradeRunning[1]
plotshape(tradeRunning and (not tradeRunning[1]) and (not doBackTesting), style=shape.labelup, location=location.belowbar, color=color.new(#00FF00, 50), size=size.tiny, title='Buy wrtycv', text='➹', textcolor=color.new(color.black,0))
plotshape((not tradeRunning) and tradeRunning[1] and (not doBackTesting), style=shape.labeldown, location=location.abovebar, color=color.new(#FF0000, 50), size=size.tiny, title='Sell wrtycv', text='➷', textcolor=color.new(color.white, 0))
if entryCondition and doBackTesting
strategy.entry(id="Buy",direction=strategy.long)
if exitCondition and doBackTesting
strategy.close(id="Buy")