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

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

img

সারসংক্ষেপ

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

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

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

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

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

সুবিধা বিশ্লেষণ

  1. উন্নত নির্ভুলতাঃ একটি প্রবণতা ফিল্টার অন্তর্ভুক্তি সংকেত উত্পাদন করার আগে সামগ্রিক প্রবণতা দিক নিশ্চিত করে কৌশলটির নির্ভুলতা উন্নত করে।

  2. প্রবণতা অব্যাহত রাখাঃ প্রবণতা ফিল্টারের সাথে পিভট পয়েন্ট এবং সুপারট্রেন্ডের সংহতকরণের লক্ষ্য হল শক্তিশালী বাজারের প্রবণতার সময় ব্যবসায়কে দীর্ঘায়িত করা, সম্ভাব্য লাভের সুযোগগুলি সর্বাধিক করা।

  3. হ্রাসকৃত হুইপসঃ কৌশলটির ওজনযুক্ত গড় গণনা, প্রবণতা ফিল্টার সহ, ভুল সংকেতগুলিকে হ্রাস করতে সহায়তা করে এবং অনিশ্চিত বা পার্শ্ববর্তী বাজারের অবস্থার সময় হুইপস হ্রাস করে।

  4. সমর্থন এবং প্রতিরোধের অন্তর্দৃষ্টিঃ কৌশলটি পিভট পয়েন্টের উপর ভিত্তি করে অতিরিক্ত সমর্থন এবং প্রতিরোধের স্তর সরবরাহ করে, যা ব্যবসায়ীদের মূল্যবান প্রাসঙ্গিক তথ্য সরবরাহ করে।

ঝুঁকি বিশ্লেষণ

  1. পরামিতি নির্ভরতাঃ কৌশলটি এটিআর সময়কাল এবং গুণকগুলির মতো পরামিতিগুলির প্রতি সংবেদনশীল। ভুল সেটিংস ওভারট্রেডিং বা মিস সুযোগের দিকে পরিচালিত করতে পারে।

  2. প্রবণতা বিপরীতমুখীঃ প্রবণতা বিপরীতমুখী পয়েন্টের কাছাকাছি, কৌশলটি অপ্রয়োজনীয় ক্ষতির ফলে মিথ্যা সংকেত তৈরি করতে পারে। স্টপ লস ব্যবহার করে ঝুঁকি পরিচালনা করা উচিত।

  3. অতিরিক্ত অপ্টিমাইজেশানঃ সর্বোত্তম ফলাফলের জন্য পরামিতিগুলি অপ্টিমাইজ করা যেতে পারে তবে ভবিষ্যতে কার্যকরতার অভাব রয়েছে। পরামিতি নির্বাচনে বাজার এবং যন্ত্রের পার্থক্যের প্রভাব বিবেচনা করা উচিত।

  4. ফাঁক ঝুঁকিঃ যখন দামগুলি ব্যান্ডগুলির বাইরে চলে যায়, তখন কৌশলটি একটি সমতল অবস্থানে প্রবেশ করে। এটি একটি ফাঁক পরে প্রবণতা পুনরায় শুরু করার সময় সুযোগগুলি মিস করতে পারে।

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

  1. অতিরিক্ত ফিল্টারঃ কৌশলটির দৃঢ়তা বাড়ানোর জন্য ভলিউম, অস্থিরতা ফিল্টার ইত্যাদি যোগ করা যেতে পারে।

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

  3. স্টপ লসঃ ডাউনসাইডকে কার্যকরভাবে নিয়ন্ত্রণ করার জন্য কৌশলগত যুক্তি বজায় রেখে স্টপ লস প্রক্রিয়া ডিজাইন করার উপায়গুলি গবেষণা করুন।

  4. ক্রস-অ্যাসেট অপ্টিমাইজেশনঃ বিভিন্ন বাজার এবং যন্ত্রের মধ্যে কৌশল পরামিতি মূল্যায়ন করুন। প্রতিটি নির্দিষ্টতা অনুযায়ী পরামিতি অপ্টিমাইজ করুন।

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

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


/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Julien_Eche
// Strategy based on "Pivot Point Supertrend" Indicator by LonesomeTheBlue

//@version=4

strategy("PPS", overlay=true, initial_capital=500000, currency=currency.USD, default_qty_type=strategy.cash, default_qty_value=50000)

prd = input(defval = 2, title="Pivot Point Period", minval = 1, maxval = 50)
Factor=input(defval = 3, title = "ATR Factor", minval = 1, step = 0.1)
Pd=input(defval = 10, title = "ATR Period", minval=1)
showpivot = input(defval = false, title="Show Pivot Points")
showlabel = input(defval = true, title="Show Buy/Sell Labels")
showcl = input(defval = false, title="Show PP Center Line")
showsr = input(defval = false, title="Show Support/Resistance")

// get Pivot High/Low
float ph = pivothigh(prd, prd)
float pl = pivotlow(prd, prd)

// drawl Pivot Points if "showpivot" is enabled
plotshape(ph and showpivot, text="H",  style=shape.labeldown, color=na, textcolor=color.red, location=location.abovebar, transp=0, offset = -prd)
plotshape(pl and showpivot, text="L",  style=shape.labeldown, color=na, textcolor=color.lime, location=location.belowbar, transp=0, offset = -prd)

// calculate the Center line using pivot points
var float center = na
float lastpp = ph ? ph : pl ? pl : na
if lastpp
    if na(center)
        center := lastpp
    else
        //weighted calculation
        center := (center * 2 + lastpp) / 3

// upper/lower bands calculation
Up = center - (Factor * atr(Pd))
Dn = center + (Factor * atr(Pd))

// get the trend
float TUp = na
float TDown = na
Trend = 0
TUp := close[1] > TUp[1] ? max(Up, TUp[1]) : Up
TDown := close[1] < TDown[1] ? min(Dn, TDown[1]) : Dn
Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1)
Trailingsl = Trend == 1 ? TUp : TDown

// plot the trend
linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na
plot(Trailingsl, color = linecolor ,  linewidth = 2, title = "PP SuperTrend")
 
plot(showcl ? center : na, color = showcl ? center < hl2 ? color.blue : color.red : na)

// check and plot the signals
bsignal = Trend == 1 and Trend[1] == -1
ssignal = Trend == -1 and Trend[1] == 1
plotshape(bsignal and showlabel ? Trailingsl : na, title="Buy", text="Buy", location = location.absolute, style = shape.labelup, size = size.tiny, color = color.lime, textcolor = color.black, transp = 0)
plotshape(ssignal and showlabel ? Trailingsl : na, title="Sell", text="Sell", location = location.absolute, style = shape.labeldown, size = size.tiny, color = color.red, textcolor = color.white, transp = 0)

//get S/R levels using Pivot Points
float resistance = na
float support = na
support := pl ? pl : support[1]
resistance := ph ? ph : resistance[1]

// if enabled then show S/R levels
plot(showsr and support ? support : na, color = showsr and support ? color.lime : na, style = plot.style_circles, offset = -prd)
plot(showsr and resistance ? resistance : na, color = showsr and resistance ? color.red : na, style = plot.style_circles, offset = -prd)

// Trend Filter from SuperTrend Long Strategy
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)

// Combine the SuperTrend calculations
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

// Moving Average as Trend Filter
periodes_ma = input(title="Moving Average Period", type=input.integer, defval=20)
src_ma = input(title="Moving Average Source", type=input.source, defval=close)
ma = sma(src_ma, periodes_ma)

// Strategy Entry Conditions
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

// Combined entry conditions
longCondition = (trend == 1 and trend[1] == -1 and close > ma) or (bsignal and window())
shortCondition = (trend == -1 and trend[1] == 1 and close < ma) or (ssignal and window())

if (longCondition)
    strategy.entry("BUY", strategy.long)

if (shortCondition)
    strategy.close("BUY")
    strategy.entry("SELL", strategy.short)

buy1 = barssince((trend == 1 and trend[1] == -1 and close > ma) or (bsignal and window()))
sell1 = barssince((trend == -1 and trend[1] == 1 and close < ma) or (ssignal and window()))
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(color1)

আরো