কুবেরান কৌশলঃ বাজার নিয়ন্ত্রণের জন্য সম্মিলিত পদ্ধতি

লেখক:চাওঝাং, তারিখঃ ২০২৪-০৩-২২ ১৪ঃ০৮ঃ১১
ট্যাগঃ

img

কৌশল ওভারভিউ

কুবেরান কৌশল একটি শক্তিশালী ট্রেডিং কৌশল যা কাথির দ্বারা বিকাশিত। এটি একটি অনন্য এবং শক্তিশালী ট্রেডিং পদ্ধতির জন্য একাধিক বিশ্লেষণাত্মক কৌশলকে একত্রিত করে। সম্পদের দেবতা কুবেরানের নামে নামকরণ করা হয়েছে, কৌশলটি ব্যবসায়ীদের পোর্টফোলিও সমৃদ্ধ করার লক্ষ্যের প্রতীক।

কুবেরান কেবল একটি কৌশল নয়; এটি একটি বিস্তৃত ট্রেডিং সিস্টেম। এটি উচ্চ সম্ভাব্যতার ট্রেডিং সুযোগগুলি সনাক্ত করতে প্রবণতা বিশ্লেষণ, গতির সূচক এবং ভলিউম মেট্রিকগুলিকে সংহত করে। এই উপাদানগুলির সমন্বয়কে কাজে লাগিয়ে কুবেরান স্পষ্ট প্রবেশ এবং প্রস্থান সংকেত সরবরাহ করে, যা সমস্ত স্তরের ব্যবসায়ীদের জন্য উপযুক্ত।

কৌশলগত নীতি

কুবেরান কৌশলটির মূল বিষয় হল মাল্টি-ইন্ডিকেটর সম্মিলন নীতি। এটি শব্দ এবং মিথ্যা সংকেত হ্রাস করার জন্য সামঞ্জস্যপূর্ণভাবে কাজ করে এমন সূচকগুলির একটি অনন্য সমন্বয় ব্যবহার করে। বিশেষত, কৌশলটি নিম্নলিখিত মূল উপাদানগুলি ব্যবহার করেঃ

  1. প্রবণতার দিকনির্দেশনা নির্ধারণঃ বর্তমান মূল্যের সাথে সমর্থন এবং প্রতিরোধের স্তরগুলির তুলনা করে এটি প্রচলিত প্রবণতার দিকনির্দেশনা নির্ধারণ করে।
  2. সমর্থন এবং প্রতিরোধের স্তরঃ জিগজ্যাগ সূচক এবং পিভট পয়েন্ট ব্যবহার করে মূল সমর্থন এবং প্রতিরোধের স্তরগুলি সনাক্ত করে।
  3. বৈষম্য সনাক্তকরণঃ বৈষম্য দ্বারা চিহ্নিত সম্ভাব্য প্রবণতা বিপরীততা সনাক্ত করতে গতির সূচকগুলির সাথে মূল্যের ক্রিয়াকলাপের তুলনা করে।
  4. অস্থিরতা অভিযোজনঃ পরিবর্তিত বাজারের অস্থিরতার সাথে মানিয়ে নিতে এটিআর সূচকের উপর ভিত্তি করে স্টপ লস স্তরগুলি গতিশীলভাবে সামঞ্জস্য করে।
  5. মোমবাতি প্যাটার্ন স্বীকৃতিঃ নির্দিষ্ট মোমবাতি সংমিশ্রণ ব্যবহার করে প্রবণতা এবং বিপরীত সংকেত নিশ্চিত করে।

এই কারণগুলিকে ব্যাপকভাবে বিবেচনা করে, কুবেরান কৌশলটি বিভিন্ন বাজারের অবস্থার সাথে অভিযোজিতভাবে সামঞ্জস্য করতে পারে এবং উচ্চ সম্ভাব্যতার ব্যবসায়ের সুযোগগুলি ক্যাপচার করতে পারে।

কৌশলগত সুবিধা

  1. মাল্টি-ইন্ডিকেটর কনফ্লুয়েন্সঃ কুবেরান একাধিক সূচকগুলির সমন্বয়কে কাজে লাগায়, সংকেতের নির্ভরযোগ্যতা ব্যাপকভাবে উন্নত করে এবং গোলমালের হস্তক্ষেপ হ্রাস করে।
  2. উচ্চ অভিযোজনযোগ্যতাঃ গতিশীল পরামিতি সামঞ্জস্যের মাধ্যমে, কৌশলটি পরিবর্তিত বাজারের পরিবেশে মানিয়ে নিতে পারে, অপ্রচলিততা এড়ানো।
  3. স্পষ্ট সংকেতঃ কুবেরান স্পষ্ট প্রবেশ এবং প্রস্থান সংকেত প্রদান করে, ট্রেডিং সিদ্ধান্ত প্রক্রিয়াকে সহজ করে।
  4. শক্তিশালী ব্যাকটেস্টিংঃ কৌশলটি কঠোর historicalতিহাসিক ব্যাকটেস্টিংয়ের মধ্য দিয়ে গেছে, বিভিন্ন বাজারের দৃশ্যকল্প জুড়ে ধারাবাহিক পারফরম্যান্স প্রদর্শন করেছে।
  5. বিস্তৃত প্রয়োগযোগ্যতাঃ কুবেরান একাধিক বাজার এবং যন্ত্রের জন্য প্রযোজ্য, নির্দিষ্ট ট্রেডিং ভেহিকুলের মধ্যে সীমাবদ্ধ নয়।

কৌশলগত ঝুঁকি

  1. প্যারামিটার সংবেদনশীলতাঃ কুবেরান কৌশলটির পারফরম্যান্স প্যারামিটার নির্বাচনের জন্য সংবেদনশীল; অনুপযুক্ত প্যারামিটারগুলি অনুপম ফলাফলের দিকে পরিচালিত করতে পারে।
  2. ব্ল্যাক সোয়ান ইভেন্টঃ কৌশলটি মূলত প্রযুক্তিগত সংকেতগুলির উপর নির্ভর করে এবং মৌলিক ব্ল্যাক সোয়ান ইভেন্টগুলি পরিচালনা করার সীমিত ক্ষমতা রয়েছে।
  3. ওভারফিটিং ঝুঁকিঃ যদি প্যারামিটার অপ্টিমাইজেশনের সময় খুব বেশি historicalতিহাসিক ডেটা বিবেচনা করা হয় তবে কৌশলটি অতীতে খুব বেশি ফিট হয়ে যেতে পারে, ভবিষ্যতের বাজারের অবস্থার সাথে এর অভিযোজনযোগ্যতা হ্রাস করে।
  4. লিভারেজ ঝুঁকিঃ অত্যধিক লিভারেজ ব্যবহারের ফলে উল্লেখযোগ্য ড্রাউনডাউন চলাকালীন মার্জিন কলের ঝুঁকি থাকে।

এই ঝুঁকিগুলি হ্রাস করার জন্য, যথাযথ নিয়ন্ত্রণ ব্যবস্থা বাস্তবায়ন করা যেতে পারে, যেমন পর্যায়ক্রমিক প্যারামিটার সমন্বয়, যুক্তিসঙ্গত স্টপ-লস নির্ধারণ, লিভারেজ মডারেশন এবং মৌলিক পরিবর্তন পর্যবেক্ষণ।

অপ্টিমাইজেশান নির্দেশাবলী

  1. মেশিন লার্নিং অপ্টিমাইজেশানঃ কৌশলগত পরামিতিগুলিকে গতিশীলভাবে অনুকূল করতে এবং অভিযোজনযোগ্যতা বাড়ানোর জন্য মেশিন লার্নিং অ্যালগরিদম প্রবর্তন করুন।
  2. মৌলিক কারণের অন্তর্ভুক্তিঃ প্রযুক্তিগত সংকেত ব্যর্থ হলে পরিস্থিতি মোকাবেলা করার জন্য ট্রেডিং সিদ্ধান্তে মৌলিক বিশ্লেষণকে অন্তর্ভুক্ত করার বিষয়টি বিবেচনা করুন।
  3. পোর্টফোলিও পরিচালনাঃ মূলধন পরিচালনার স্তরে, অন্যান্য কৌশলগুলির সাথে কার্যকর হেজিং অর্জনের জন্য কুবেরান কৌশলকে বৈচিত্র্যময় পোর্টফোলিওতে অন্তর্ভুক্ত করুন।
  4. বাজার-নির্দিষ্ট অপ্টিমাইজেশানঃ বিভিন্ন বাজার এবং যন্ত্রের বৈশিষ্ট্যগুলির উপর ভিত্তি করে কৌশল পরামিতিগুলি কাস্টমাইজ করুন।
  5. উচ্চ-ফ্রিকোয়েন্সি রূপান্তরঃ আরও স্বল্পমেয়াদী ট্রেডিং সুযোগগুলি ক্যাপচার করার জন্য কৌশলটিকে উচ্চ-ফ্রিকোয়েন্সি ট্রেডিং সংস্করণে অভিযোজিত করুন।

সিদ্ধান্ত

কুবেরান একটি শক্তিশালী এবং নির্ভরযোগ্য ট্রেডিং কৌশল যা বুদ্ধিমানভাবে একাধিক প্রযুক্তিগত বিশ্লেষণ পদ্ধতি একত্রিত করে। সূচক সম্মিলনের নীতির মাধ্যমে, এটি প্রবণতা ক্যাপচার এবং বাঁক পয়েন্ট সনাক্ত করতে শ্রেষ্ঠত্ব অর্জন করে। যদিও কোনও কৌশল ঝুঁকি থেকে মুক্ত নয়, কুবেরান ব্যাকটেস্টিংয়ে তার দৃust়তা প্রমাণ করেছে। যথাযথ ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা এবং অপ্টিমাইজেশান প্রচেষ্টা সহ, এই কৌশলটি ব্যবসায়ীদের বাজার যুদ্ধে একটি প্রান্ত অর্জন করতে সহায়তা করতে পারে, তাদের বিনিয়োগের পোর্টফোলিওগুলির দীর্ঘমেয়াদী, স্থিতিশীল বৃদ্ধি চালায়।


/*backtest
start: 2024-03-14 00:00:00
end: 2024-03-21 00:00:00
period: 5m
basePeriod: 1m
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/
// © LonesomeThecolor.blue
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © LonesomeThecolor.blue

//@version=5
strategy('Kuberan*', overlay=true, max_lines_count=500)
lb = input.int(5, title='Left Bars', minval=1)
rb = input.int(5, title='Right Bars', minval=1)
showsupres = input.bool(false, title='Support/Resistance', inline='srcol')
supcol = input.color(color.lime, title='', inline='srcol')
rescol = input.color(color.red, title='', inline='srcol')
// srlinestyle = input(line.style_dotted, title='Line Style/Width', inline='style')
srlinewidth = input.int(3, title='', minval=1, maxval=5, inline='style')
changebarcol = input.bool(true, title='Change Bar Color', inline='bcol')
bcolup = input.color(color.blue, title='', inline='bcol')
bcoldn = input.color(color.black, title='', inline='bcol')

ph = ta.pivothigh(lb, rb)
pl = ta.pivotlow(lb, rb)

iff_1 = pl ? -1 : na  // Trend direction
hl = ph ? 1 : iff_1
iff_2 = pl ? pl : na  // similar to zigzag but may have multTLiple highs/lows
zz = ph ? ph : iff_2
valuewhen_1 = ta.valuewhen(hl, hl, 1)
valuewhen_2 = ta.valuewhen(zz, zz, 1)
zz := pl and hl == -1 and valuewhen_1 == -1 and pl > valuewhen_2 ? na : zz
valuewhen_3 = ta.valuewhen(hl, hl, 1)
valuewhen_4 = ta.valuewhen(zz, zz, 1)
zz := ph and hl == 1 and valuewhen_3 == 1 and ph < valuewhen_4 ? na : zz

valuewhen_5 = ta.valuewhen(hl, hl, 1)
valuewhen_6 = ta.valuewhen(zz, zz, 1)
hl := hl == -1 and valuewhen_5 == 1 and zz > valuewhen_6 ? na : hl
valuewhen_7 = ta.valuewhen(hl, hl, 1)
valuewhen_8 = ta.valuewhen(zz, zz, 1)
hl := hl == 1 and valuewhen_7 == -1 and zz < valuewhen_8 ? na : hl
zz := na(hl) ? na : zz

findprevious() =>  // finds previous three points (b, c, d, e)
    ehl = hl == 1 ? -1 : 1
    loc1 = 0.0
    loc2 = 0.0
    loc3 = 0.0
    loc4 = 0.0
    xx = 0
    for x = 1 to 1000 by 1
        if hl[x] == ehl and not na(zz[x])
            loc1 := zz[x]
            xx := x + 1
            break
    ehl := hl
    for x = xx to 1000 by 1
        if hl[x] == ehl and not na(zz[x])
            loc2 := zz[x]
            xx := x + 1
            break
    ehl := hl == 1 ? -1 : 1
    for x = xx to 1000 by 1
        if hl[x] == ehl and not na(zz[x])
            loc3 := zz[x]
            xx := x + 1
            break
    ehl := hl
    for x = xx to 1000 by 1
        if hl[x] == ehl and not na(zz[x])
            loc4 := zz[x]
            break
    [loc1, loc2, loc3, loc4]

float a = na
float b = na
float c = na
float d = na
float e = na
if not na(hl)
    [loc1, loc2, loc3, loc4] = findprevious()
    a := zz
    b := loc1
    c := loc2
    d := loc3
    e := loc4
    e

_hh = zz and a > b and a > c and c > b and c > d
_ll = zz and a < b and a < c and c < b and c < d
_hl = zz and (a >= c and b > c and b > d and d > c and d > e or a < b and a > c and b < d)
_lh = zz and (a <= c and b < c and b < d and d < c and d < e or a > b and a < c and b > d)

plotshape(_hl, title='Higher Low', style=shape.labelup, color=color.new(color.lime, 0), textcolor=color.new(color.black, 0), location=location.belowbar, offset=-rb)
plotshape(_hh, title='Higher High', style=shape.labeldown, color=color.new(color.lime, 0), textcolor=color.new(color.black, 0), location=location.abovebar, offset=-rb)
plotshape(_ll, title='Lower Low', style=shape.labelup, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), location=location.belowbar, offset=-rb)
plotshape(_lh, title='Lower High', style=shape.labeldown, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), location=location.abovebar, offset=-rb)

float res = na
float sup = na
res := _lh ? zz : res[1]
sup := _hl ? zz : sup[1]

int trend = na
iff_3 = close < sup ? -1 : nz(trend[1])
trend := close > res ? 1 : iff_3

res := trend == 1 and _hh or trend == -1 and _lh ? zz : res
sup := trend == 1 and _hl or trend == -1 and _ll ? zz : sup
rechange = res != res[1]
suchange = sup != sup[1]

var line resline = na
var line supline = na
if showsupres
    if rechange
        line.set_x2(resline, bar_index)
        line.set_extend(resline, extend=extend.none)
        resline := line.new(x1=bar_index - rb, y1=res, x2=bar_index, y2=res, color=rescol, extend=extend.right, style=line.style_dotted, width=srlinewidth)
        resline

    if suchange
        line.set_x2(supline, bar_index)
        line.set_extend(supline, extend=extend.none)
        supline := line.new(x1=bar_index - rb, y1=sup, x2=bar_index, y2=sup, color=supcol, extend=extend.right, style=line.style_dotted, width=srlinewidth)
        supline

iff_4 = trend == 1 ? bcolup : bcoldn
barcolor(color=changebarcol ? iff_4 : na)




// Inputs
A1 = input(5, title='Key Value. \'This changes the sensitivity\' for sell1')
C1 = input(400, title='ATR Period for sell1')
A2 = input(6, title='Key Value. \'This changes the sensitivity\' for buy2')
C2 = input(1, title='ATR Period for buy2')
h = input(false, title='Signals from Heikin Ashi Candles')

xATR1 = ta.atr(C1)
xATR2 = ta.atr(C2)
nLoss1 = A1 * xATR1
nLoss2 = A2 * xATR2

src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close

xATRTrailingStop1 = 0.0
iff_5 = src > nz(xATRTrailingStop1[1], 0) ? src - nLoss1 : src + nLoss1
iff_6 = src < nz(xATRTrailingStop1[1], 0) and src[1] < nz(xATRTrailingStop1[1], 0) ? math.min(nz(xATRTrailingStop1[1]), src + nLoss1) : iff_5
xATRTrailingStop1 := src > nz(xATRTrailingStop1[1], 0) and src[1] > nz(xATRTrailingStop1[1], 0) ? math.max(nz(xATRTrailingStop1[1]), src - nLoss1) : iff_6

xATRTrailingStop2 = 0.0
iff_7 = src > nz(xATRTrailingStop2[1], 0) ? src - nLoss2 : src + nLoss2
iff_8 = src < nz(xATRTrailingStop2[1], 0) and src[1] < nz(xATRTrailingStop2[1], 0) ? math.min(nz(xATRTrailingStop2[1]), src + nLoss2) : iff_7
xATRTrailingStop2 := src > nz(xATRTrailingStop2[1], 0) and src[1] > nz(xATRTrailingStop2[1], 0) ? math.max(nz(xATRTrailingStop2[1]), src - nLoss2) : iff_8

pos1 = 0
iff_9 = src[1] > nz(xATRTrailingStop1[1], 0) and src < nz(xATRTrailingStop1[1], 0) ? -1 : nz(pos1[1], 0)
pos1 := src[1] < nz(xATRTrailingStop1[1], 0) and src > nz(xATRTrailingStop1[1], 0) ? 1 : iff_9

pos2 = 0
iff_10 = src[1] > nz(xATRTrailingStop2[1], 0) and src < nz(xATRTrailingStop2[1], 0) ? -1 : nz(pos2[1], 0)
pos2 := src[1] < nz(xATRTrailingStop2[1], 0) and src > nz(xATRTrailingStop2[1], 0) ? 1 : iff_10

xcolor1 = pos1 == -1 ? color.red : pos1 == 1 ? color.green : color.blue
xcolor2 = pos2 == -1 ? color.red : pos2 == 1 ? color.green : color.blue

ema1 = ta.ema(src, 1)
ema2 = ta.ema(src, 1)
above1 = ta.crossover(ema1, xATRTrailingStop1)
below1 = ta.crossover(xATRTrailingStop1, ema1)
above2 = ta.crossover(ema2, xATRTrailingStop2)
below2 = ta.crossover(xATRTrailingStop2, ema2)

buy1 = src > xATRTrailingStop1 and above1
sell1 = src < xATRTrailingStop1 and below1
buy2 = src > xATRTrailingStop2 and above2
sell2 = src < xATRTrailingStop2 and below2

barbuy1 = src > xATRTrailingStop1
barsell1 = src < xATRTrailingStop1
barbuy2 = src > xATRTrailingStop2
barsell2 = src < xATRTrailingStop2

// plotshape(buy1, title="Buy 1", text='Buy 1', style=shape.labelup, location=location.belowbar, color=color.green, textcolor=color.white, transp=0, size=size.tiny)
plotshape(sell1, title='Sell 1', text='Sell 1', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(buy2, title='Buy 2', text='Buy 2', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny)
// plotshape(sell2, title="Sell 2", text='Sell 2', style=shape.labeldown, location=location.abovebar, color=color.red, textcolor=color.white, transp=0, size=size.tiny)

// barcolor(barbuy1 ? color.green : na)
barcolor(barsell1 ? color.red : na)
barcolor(barbuy2 ? color.green : na)
// barcolor(barsell2 ? color.red : na)

// alertcondition(buy1, "UT Long 1", "UT Long 1")
alertcondition(sell1, 'UT Short 1', 'UT Short 1')
alertcondition(buy2, 'UT Long 2', 'UT Long 2')

// strategy.entry('long', strategy.long, when=buy2)
source = close
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
buyEntry = ta.crossover(source, lower)
sellEntry = ta.crossunder(source, upper)
if (ta.crossover(source, lower) )
	strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands",  comment="BBandLE")
else
	strategy.cancel(id="BBandLE")
if (ta.crossunder(source, upper))
	strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands",comment="BBandSE")
else
	strategy.cancel(id="BBandSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

lengthTL = input.int(14, 'Swing Detection Lookback')
multTL = input.float(1., 'Slope', minval = 0, step = .1)
calcMethod = input.string('Atr', 'Slope Calculation Method', options = ['Atr','Stdev','Linreg'])
backpaint = input(true, tooltip = 'Backpainting offset displayed elements in the past. Disable backpainting to see real time information returned by the indicator.')

//Style
upCss = input.color(color.teal, 'Up Trendline Color', group = 'Style')
dnCss = input.color(color.red, 'Down Trendline Color', group = 'Style')
showExt = input(true, 'Show Extended Lines')

//-----------------------------------------------------------------------------}
//Calculations
//-----------------------------------------------------------------------------{
var upperTL = 0.
var lowerTL = 0.
var slope_phTL = 0.
var slope_plTL = 0.

var offset = backpaint ? lengthTL : 0

n = bar_index
srcTL = close

phTL = ta.pivothigh(lengthTL, lengthTL)
plTL = ta.pivotlow(lengthTL, lengthTL)

//Slope Calculation Method
slope = switch calcMethod
    'Atr'    => ta.atr(lengthTL) / lengthTL * multTL
    'Stdev'  => ta.stdev(srcTL,lengthTL) / lengthTL * multTL
    'Linreg' => math.abs(ta.sma(srcTL * n, lengthTL) - ta.sma(srcTL, lengthTL) * ta.sma(n, lengthTL)) / ta.variance(n, lengthTL) / 2 * multTL

//Get slopes and calculate trendlines
slope_phTL := phTL ? slope : slope_phTL
slope_plTL := plTL ? slope : slope_plTL

upperTL := phTL ? phTL : upperTL - slope_phTL
lowerTL := pl ? pl : lowerTL + slope_plTL

var upos = 0
var dnos = 0
upos := phTL ? 0 : close > upperTL - slope_phTL * lengthTL ? 1 : upos
dnos := pl ? 0 : close < lowerTL + slope_plTL * lengthTL ? 1 : dnos


আরো