সুপার ট্রেন্ড ভি কৌশল

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

img

সারসংক্ষেপ

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

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

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

তারপর এটি মূল্যের EMA এবং খোলা মূল্যের EMA গণনা করে। যখন মূল্য EMA এর উপরে অতিক্রম করে এবং খোলা মূল্য EMA এর চেয়ে বেশি হয়, এটি একটি ক্রয় সংকেত। যখন মূল্য EMA এর নীচে অতিক্রম করে এবং খোলা মূল্য EMA এর চেয়ে কম হয়, এটি একটি বিক্রয় সংকেত।

পরবর্তী, এটি মূল্য চ্যানেলের উপরের এবং নীচের ব্যান্ডগুলি গণনা করতে স্ট্যান্ডার্ড ডিভিয়েশন ব্যবহার করে এবং মসৃণীকরণ প্রক্রিয়াকরণ করে। যখন দাম স্ট্যান্ডার্ড ডিভিয়েশনের উপরের ব্যান্ডটি ভেঙে যায়, এটি একটি স্টপ লস সংকেত। যখন দাম স্ট্যান্ডার্ড ডিভিয়েশনের নীচের ব্যান্ডটি ভেঙে যায়, এটি একটি লাভের সংকেত।

অবশেষে, এটি বিভিন্ন সময়সীমার চলমান গড়কে একত্রিত করে ট্রেন্ডের দিকনির্দেশনা নির্ধারণ করে, সুপার ট্রেন্ড সূচকের সাথে, একটি স্থিতিশীল প্রবণতা রায় গঠন করে।

কৌশলটির সুবিধা

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

কৌশলটির ঝুঁকি

  • সুপার ট্রেন্ড ইন্ডিকেটরের বিলম্বিত প্রভাব রয়েছে, ট্রেন্ড পরিবর্তনের পয়েন্টগুলি মিস করতে পারে
  • চলমান গড়ের ক্রসওভারগুলির বিলম্বিত প্রভাব রয়েছে, প্রবেশের সময় সঠিক নাও হতে পারে
  • স্ট্যান্ডার্ড ডিভিয়েশন চ্যানেলের ব্যাপ্তি রিয়েল-টাইমে বাজারের ওঠানামা প্রতিফলিত করার জন্য খুব স্থির
  • একাধিক সময়সীমার উপর ভিত্তি করে বিচার একে অপরের সাথে দ্বন্দ্ব হতে পারে

ঝুঁকি ব্যবস্থাপনাঃ

  • সংবেদনশীলতা উন্নত করার জন্য সুপার ট্রেন্ড পরামিতি সঠিকভাবে সংক্ষিপ্ত
  • চলমান গড় সময়ের অপ্টিমাইজ করুন, অথবা এন্ট্রি নির্ধারণের জন্য অন্যান্য সূচক যোগ করুন
  • বাজারের সাথে সামঞ্জস্য করার জন্য স্ট্যান্ডার্ড ডিভিয়েশন চ্যানেলটি গতিশীলভাবে সামঞ্জস্য করুন
  • দ্বন্দ্ব মোকাবেলার জন্য মাল্টি-টাইমফ্রেম রায়ের জন্য স্পষ্ট যুক্তি নির্ধারণ করুন

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

  • সেরা সমন্বয় খুঁজে পেতে সুপার ট্রেন্ড পরামিতি অপ্টিমাইজ করুন
  • প্রবেশ নির্ধারণের জন্য চলমান গড়ের সাথে মিলিত অন্যান্য সূচকগুলি চেষ্টা করুন
  • স্ট্যান্ডার্ড ডিভিয়েশন চ্যানেলের গতিশীল সমন্বয় চেষ্টা করুন
  • সেরা ম্যাচ খুঁজে পেতে বিভিন্ন মাল্টি-টাইমফ্রেম সমন্বয় পরীক্ষা করুন
  • লাভের স্থান উন্নত করার জন্য স্টপ লস এবং লাভের কৌশলগুলি অনুকূল করুন

সিদ্ধান্ত

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


/*backtest
start: 2022-10-11 00:00:00
end: 2023-10-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theCrypster 2020

//@version=4
strategy(title = "Super trend V Strategy version", overlay = true, pyramiding=1,initial_capital = 1000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
hilow = ((high - low)*100)
openclose = ((close - open)*100)
vol = (volume / hilow)
spreadvol = (openclose * vol)
VPT = spreadvol + cum(spreadvol)
window_len = 28

v_len = 14
price_spread = stdev(high-low, window_len)

v =  spreadvol + cum(spreadvol)
smooth = sma(v, v_len)
v_spread = stdev(v - smooth, window_len)
shadow = (v - smooth) / v_spread * price_spread

out = shadow > 0 ? high + shadow : low + shadow
//
src = out
src1=open
src2=low
src3=high
tf =input(720)
len = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   tf / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7

c = ema(src, len)
plot(c,color=color.red)
o = ema(src1,len)
plot(o,color=color.blue)
//h = ema(src3,len)
//l=ema(src2,len)
//
col=c > o? color.lime : color.orange
vis = true
vl = c
ll = o
m1 = plot(vl, color=col, linewidth=1, transp=60)
m2 = plot(vis ? ll : na,  color=col, linewidth=2, transp=80)

fill(m1, m2,  color=col, transp=70)
//

vpt=ema(out,len)

// INPUTS //
st_mult   = input(1,   title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(10, title = 'SuperTrend Period',     minval = 1)

// CALCULATIONS //
up_lev = vpt - (st_mult * atr(st_period))
dn_lev = vpt + (st_mult * atr(st_period))

up_trend   = 0.0
up_trend   := close[1] > up_trend[1]   ? max(up_lev, up_trend[1])   : up_lev

down_trend = 0.0
down_trend := close[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := close > down_trend[1] ? 1: close < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend ==1 ? up_trend : down_trend

// Plotting
plot(st_line[1], color = trend == 1 ? color.green : color.red , style = plot.style_cross, linewidth = 2, title = "SuperTrend")
buy=crossover( close, st_line) and close>o
sell=crossunder(close, st_line) and close<o
//plotshape(crossover( close, st_line), location = location.belowbar, color = color.green,size=size.tiny)
//plotshape(crossunder(close, st_line), location = location.abovebar, color = color.red,size=size.tiny)
plotshape(buy, title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)  //plot for sell icon


//
multiplier = input(title="TP VWAP Deviation", type=input.float, defval=2, minval=1)
src5 = vwap
len5 = input(title="TP length", defval=150, minval=1)
offset = 0

calcSlope(src5, len5) =>
    sumX = 0.0
    sumY = 0.0
    sumXSqr = 0.0
    sumXY = 0.0
    for i = 1 to len5
        val = src5[len5-i]
        per = i + 1.0
        sumX := sumX + per
        sumY := sumY + val
        sumXSqr := sumXSqr + per * per
        sumXY := sumXY + val * per
        
        
    slope = (len5 * sumXY - sumX * sumY) / (len5 * sumXSqr - sumX * sumX)
    average = sumY / len5
    intercept = average - slope * sumX / len5 + slope
    [slope, average, intercept]

var float tmp = na
[s, a, i] = calcSlope(src5, len5)

vwap1=(i + s * (len5 - offset))
sdev = stdev(vwap, len5)
dev = multiplier * sdev
top=vwap1+dev
bott=vwap1-dev

//
z1 = vwap1 + dev
x1 = vwap1 - dev

low1 = crossover(close, x1)  
high1 = crossunder(close, z1) 

plotshape(low1, title="low", text="TP", color=color.red, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(high1, title="high", text="TP", color=color.green, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)  //plot for sell icon



//
// Testing Start dates
testStartYear = input(2016, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)


testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

l = buy
s1 = sell
        
if l and testPeriod()
    strategy.entry("buy", strategy.long)
if s1 and testPeriod()
    strategy.entry("sell", strategy.short)



আরো