ব্যান্ডপাস মিডান পিবি ইন্ডিকেটর কৌশল

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

img

সারসংক্ষেপ

এই কৌশলটি পিবি সূচক এবং বোলিংজার ব্যান্ডের উপরের এবং নীচের রেলগুলির মধ্যে সোনার ক্রস এবং মৃত ক্রস সম্পর্ক নির্ধারণের জন্য গড় পিবি সূচক এবং বোলিংজার ব্যান্ড গণনা করে। এটি যখন পিবি সূচক বোলিংজার ব্যান্ডের মাঝারি রেল বা নীচের রেলের উপরে ভেঙে যায় তখন এটি ক্রয় সংকেত উত্পন্ন করে এবং যখন পিবি সূচক বোলিংজার ব্যান্ডের মাঝারি রেল বা উপরের রেলের নীচে ভেঙে যায় তখন বিক্রয় সংকেত উত্পন্ন করে।

কৌশল নীতি

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

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

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

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

এই কৌশলটির প্রধান সুবিধাগুলো হল:

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

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

এই কৌশলটির প্রধান ঝুঁকিগুলি হলঃ

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

উপরোক্ত ঝুঁকিগুলি মোকাবেলায়, প্যারামিটার সেটিংসের অনুকূলীকরণ, কঠোর স্টপ লস, ম্যাক্রো ফ্যাক্টরগুলি বিবেচনা করে, ম্যানুয়াল মনিটরিংয়ের মতো পদ্ধতিগুলি ঝুঁকি হ্রাসের জন্য ব্যবহার করা যেতে পারে।

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

এই কৌশলটির জন্য অপ্টিমাইজেশান দিকগুলির মধ্যে রয়েছেঃ

  1. সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে গড় PB সূচক এবং বোলিংজার ব্যান্ডের পরামিতিগুলি অপ্টিমাইজ করুন
  2. কৌশল কর্মক্ষমতা উন্নত করার জন্য ফিল্টারিংয়ের জন্য অন্যান্য সূচক যোগ করুন, যেমন MACD, KDJ ইত্যাদি
  3. একক ক্ষতি কার্যকরভাবে নিয়ন্ত্রণ করার জন্য স্টপ লস প্রক্রিয়া যুক্ত করুন
  4. ট্রেন্ডের বিরুদ্ধে ট্রেডিং এড়ানোর জন্য প্রধান প্রবণতা নির্ধারণের জন্য বৃহত্তর সময়সীমার সূচক অন্তর্ভুক্ত করুন

সিদ্ধান্ত

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


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("BandPass EOS", overlay=false, initial_capital = 1000)

src = input(close, "Source", input.source)
Period1 = input(41, "Fast Period", input.integer)
Period2 = input(54, "Slow Period", input.integer)
showBG = input(false, "Show crosses on background?", input.bool)
UseReversalStop = input(true, "Use additional triggers?", input.bool)

//Super Passband Filter
a1 = 0.0
a2 = 0.0
PB = 0.0
RMS = 0.0
if bar_index > Period1
    a1 := 5 / Period1
    a2 := 5 / Period2
    PB := (a1 - a2) * src + (a2 * (1 - a1) - a1 * (1 - a2)) * src[1] + 
       (1 - a1 + 1 - a2) * nz(PB[1]) - (1 - a1) * (1 - a2) * nz(PB[2])
    for i = 0 to 49 by 1
        RMS := RMS + PB[i] * PB[i]
        RMS
    RMS := sqrt(RMS / 40)
    RMS
z = 0

buy = PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z)
sell = PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z)
signal = buy ? 1 : sell ? -1 : 0
bg = buy ? color.green : sell ? color.red : color.white
bg := showBG ? bg : na
upperFill = PB>RMS ? color.lime : na
lowerFill = PB<-RMS ? color.red : na

p1 = plot(PB,"PB",color.red)
p2 = plot(RMS,"+RMS",color.blue)
p3 = plot(-RMS,"-RMS",color.blue)
bgcolor(bg)
fill(p1,p2,upperFill)
fill(p1,p3,lowerFill)
hline(0)



//PERIOD
testStartYear = input(2018, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true
    
lcolor = PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z)
scolor = PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z)

c1 = (PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z))
c2 = (PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z))

plot (c1 ? PB : na, style = plot.style_circles, color = color.red, linewidth = 3)
plot (c2 ? PB : na, style = plot.style_circles, color = color.green, linewidth = 3)

if (PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z))
    strategy.entry("long", strategy.long, when = testPeriod())


if (PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z))
    strategy.entry("short", strategy.short, when = testPeriod())

    

আরো