সুপারট্রেন্ড বোলিংজার ব্যান্ড কৌশল

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

img

সারসংক্ষেপ

সুপারট্রেন্ড বোলিংজার ব্যান্ডস কৌশলটি এটিআর (গড় সত্য পরিসীমা) এর উপর ভিত্তি করে একটি সাধারণ ট্রেলিং স্টপ সূচক কৌশল। এই কৌশলটি চার্টে উত্থান এবং হ্রাস প্রবণতা চ্যানেল আঁকতে সুপারট্রেন্ড সূচক ব্যবহার করে এবং বোলিংজার ব্যান্ডগুলির সাথে সংমিশ্রণে ট্রেডিং সংকেত উত্পন্ন করে।

কৌশলগত যুক্তি

কৌশলটি সুপারট্রেন্ড লাইনগুলি গণনা করতে দুটি প্রধান পরামিতি ব্যবহার করে - সময়কাল এবং গুণক, যথাক্রমে 10 এবং 3 এর ডিফল্ট মান সহ। নির্দিষ্ট গণনার সূত্রটি নিম্নরূপঃ

উপরের লাইনঃ বন্ধ - (এটিআর দ্বারা গুণক) নীচের লাইনঃ বন্ধ + (এটিআর এক্স মাল্টিপ্লায়ার)

যখন বন্ধের মূল্য পূর্ববর্তী উপরের লাইনের চেয়ে বেশি হয়, তখন এটিকে একটি উত্থান সংকেত হিসাবে বিবেচনা করা হয়। যখন বন্ধের মূল্য পূর্ববর্তী নিম্ন লাইনের নীচে ভাঙ্গবে, তখন এটিকে একটি হ্রাস সংকেত হিসাবে বিবেচনা করা হয়।

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

সুবিধা

  1. অস্থিরতা গতিশীলভাবে গণনা করতে ATR ব্যবহার করুন, দ্রুত বাজার প্রবণতা পরিবর্তন ক্যাপচার
  2. বোলিংজার ব্যান্ডের সংমিশ্রণ ট্রেডিং সিগন্যালকে আরো নির্ভরযোগ্য করে তোলে
  3. কাস্টমাইজযোগ্য পরামিতি বিভিন্ন বাজারের পরিবেশের জন্য উপযুক্ত

ঝুঁকি

  1. পার্শ্ববর্তী বাজারে মিথ্যা সংকেতের প্রবণতা
  2. অনুপযুক্ত প্যারামিটার সেটিংস ওভার ট্রেডিংয়ের কারণ হতে পারে
  3. নির্দিষ্ট বিলম্বের সাথে প্রবণতা বিপরীত পয়েন্ট নির্ধারণ করতে অক্ষম

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

  1. ফিল্টার ব্যবহার করে গোলমাল ট্রেড হ্রাস করার জন্য ATR সময়ের পরামিতি অপ্টিমাইজ করুন
  2. মুনাফা পুনরুদ্ধারের সম্ভাবনা হ্রাস করার জন্য সমর্থন/প্রতিরোধ নির্ধারণের জন্য অন্যান্য সূচক অন্তর্ভুক্ত করুন
  3. ট্রেড প্রতি ক্ষতির সীমাতে পজিশন সাইজিং নিয়ম যোগ করুন

সংক্ষিপ্তসার

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


/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 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/
// © KivancOzbilgic


//@version=4
strategy("SuperTrend STRATEGY", overlay=true)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 999)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 999)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => time >= start and time <= finish ? true : false
longCondition = buySignal
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = sellSignal
if (shortCondition)
    strategy.entry("SELL", strategy.short)
buy1= barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)

আরো