বোলিংজার ব্যান্ডের উপর ভিত্তি করে FiboBuLL ওয়েভ কৌশল

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

img

সারসংক্ষেপ

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

বোলিংজার ব্যান্ড একটি ক্লাসিক সূচক যা 20 টি সময়ের একটি সহজ চলমান গড় ব্যবহার করে, উপরের এবং নীচের ব্যান্ডগুলির চার্টগুলির সাথে যা মাঝারি ব্যান্ড থেকে 2 স্ট্যান্ডার্ড বিচ্যুতি দূরে। এই ব্যান্ডগুলি দামের অস্থিরতা এবং প্রবণতাকে চিত্রিত করতে সহায়তা করে যেখানে দামটি ব্যান্ডগুলির তুলনায় সম্পর্কিত।

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

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

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

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

FiboBuLL Wave কৌশলটির মূল যুক্তি হল বোলিংজার ব্যান্ডের ব্রেকআউটের উপর ভিত্তি করে ট্রেড করা। বোলিংজার ব্যান্ডগুলির মধ্যে একটি মাঝারি ব্যান্ড, উপরের ব্যান্ড এবং নিম্ন ব্যান্ড রয়েছে। মধ্যবর্তী ব্যান্ডটি বন্ধের মূল্যের 21-অবধি সহজ চলমান গড়; উপরের ব্যান্ডটি মাঝারি ব্যান্ডের উপরে 1 স্ট্যান্ডার্ড বিচ্যুতি যোগ করে গণনা করা হয়, যা মূল্যের হ্রাসের উপরের পরিসীমাকে প্রতিফলিত করে; নিম্ন ব্যান্ডটি মধ্যবর্তী ব্যান্ডের নীচে 1 স্ট্যান্ডার্ড বিচ্যুতি বিয়োগ করে, যা মূল্য আন্দোলনের নিম্ন পরিসীমাকে প্রতিফলিত করে।

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

কৌশলটি উপরের এবং নীচের ব্যান্ডের তুলনায় দামের ব্রেকআউট ট্র্যাক করতে বারসিন্স ফাংশন ব্যবহার করে। যখন উপরের ব্যান্ড ব্রেকআউট থেকে বারের সংখ্যা নিম্ন ব্যান্ডের চেয়ে কম হয় তখন একটি দীর্ঘ সংকেত উত্পন্ন হয়। যখন নিম্ন ব্যান্ড ব্রেকআউট থেকে বারের সংখ্যা উপরের ব্যান্ডের চেয়ে কম হয় তখন একটি সংক্ষিপ্ত সংকেত ট্রিগার হয়।

মধ্যবর্তী ব্যান্ড সময়কাল এবং স্ট্যান্ডার্ড ডিভিয়েশন মাল্টিপ্লায়ার পরামিতিগুলি সামঞ্জস্য করে, বোলিংজার ব্যান্ডগুলির ব্রেকআউট সংবেদনশীলতা পরিবর্তন করা যেতে পারে, যার ফলে প্রবেশের সময়সূচী সামঞ্জস্য করা যায়।

সুবিধা

FiboBuLL Wave কৌশল কিছু সুবিধা আছেঃ

  1. সহজ যুক্তি BB breakout উপর ভিত্তি করে, সহজেই বুঝতে
  2. ব্রেকআউট সংবেদনশীলতা প্যারামিটার সমন্বয় দ্বারা নিয়ন্ত্রিত করা যেতে পারে
  3. বিবি ব্যান্ডগুলি মূল্যের ওঠানামা এবং প্রবণতা দৃশ্যমান করে
  4. অন্যান্য সূচকগুলির সাথে একত্রিত হতে পারে, নির্ভুলতা উন্নত করতে পারে
  5. একাধিক সময়সীমার জন্য প্রযোজ্য

ঝুঁকি

FiboBuLL Wave কৌশলটির জন্য কিছু ঝুঁকিও রয়েছেঃ

  1. কেবলমাত্র বিবি ব্রেকআউটের উপর নির্ভর করে মিথ্যা সংকেতের জন্য প্রবণ
  2. ব্রেকআউটের পরে গতি এবং সময়কাল নির্ধারণ করা যায়নি
  3. বিপরীতের জন্য কোন প্রস্থান নিয়ম নেই
  4. স্টপ লস ছাড়াই উচ্চ ঝুঁকি

নিম্নলিখিত দিকগুলিতে অপ্টিমাইজেশন করা যেতে পারেঃ

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

উন্নতির সুযোগ

FiboBuLL Wave কৌশল জন্য প্রধান অপ্টিমাইজেশান দিকঃ

  1. ভলিউম সূচক যোগ করুন যেমন A/D লাইন দুর্বল ব্রেকআউট এড়াতে
  2. সঠিকতা উন্নত করতে অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয় সূচকগুলি একত্রিত করুন যেমন RSI
  3. ব্যাকটেস্টের ফলাফলের উপর ভিত্তি করে সময়কাল এবং বিচ্যুতি গুণক মত পরামিতি অপ্টিমাইজ করুন
  4. ঝুঁকি নিয়ন্ত্রণ এবং মুনাফা লক করার জন্য স্টপ লস এবং লাভ গ্রহণ করুন
  5. প্রবণতা এবং বিপরীত ফিল্টারগুলি দিকনির্দেশক ধারাবাহিকতা নির্ধারণ করতে বিবেচনা করুন
  6. বিভিন্ন পণ্য এবং সময়সীমার মধ্যে সর্বোত্তম পরামিতি পরীক্ষা করুন

উপরের উন্নতির মাধ্যমে, FiboBuLL Wave কৌশলটির স্থিতিশীলতা এবং লাভজনকতা ব্যাপকভাবে উন্নত করা যেতে পারে।

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

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

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

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


/*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"}]
*/

//@version=5
//@FiboBuLL

strategy(shorttitle='FB Wave', title='FiboBuLL Wave (A version of Bollinger Bands Breakout Strategy By Trade Chartist)', overlay=true, pyramiding=1, currency=currency.NONE, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

src = input(close, title='Source')
length = input.int(21, minval=1, title='SMA length')  // 20 for classis Bollinger Bands SMA line (basis)


mult = input.float(1., minval=0.236, maxval=2, title='Standard Deviation')  //2 for Classic Bollinger Bands //Maxval = 2 as higher the deviation, higher the risk
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)

Show = input.string('Both', options=['Longs Only', 'Shorts Only', 'Both'], title='Trade Type')
CC = input(true, 'Color Bars')

upper = basis + dev
lower = basis - dev

//Conditions for Long and Short - Extra filter condition can be used such as RSI or CCI etc.

short = src < lower  // and rsi(close,14)<40
long = src > upper  // and rsi(close,14)>60

L1 = ta.barssince(long)
S1 = ta.barssince(short)

longSignal = L1 < S1 and not (L1 < S1)[1]
shortSignal = S1 < L1 and not (S1 < L1)[1]

//Plots and Fills


////Long/Short shapes with text
// plotshape(S1<L1 and not (S1<L1)[1]?close:na, text = "sᴇʟʟ", textcolor=#ff0100, color=#ff0100, style=shape.triangledown, size=size.small, location=location.abovebar, transp=0, title = "SELL", editable = true)
// plotshape(L1<S1 and not (L1<S1)[1]?close:na, text = "ʙᴜʏ", textcolor = #008000, color=#008000, style=shape.triangleup, size=size.small, location=location.belowbar, transp=0, title = "BUY", editable = true)  

// plotshape(shortSignal?close:na, color=#ff0100, style=shape.triangledown, size=size.small, location=location.abovebar, transp=0, title = "Short Signal", editable = true)
// plotshape(longSignal?close:na, color=#008000, style=shape.triangleup, size=size.small, location=location.belowbar, transp=0, title = "Long Signal", editable = true)  


p1 = plot(upper, color=color.new(#ff0000, 75), display=display.all, title='Upper Band')
p2 = plot(lower, color=color.new(#008000, 75), display=display.all, title='Lower Band')

p = plot(basis, color=L1 < S1 ? #008000 : S1 < L1 ? #ff0000 : na, linewidth=2, editable=false, title='Basis')

fill(p, p1, color=color.new(color.teal, 85), title='Top Fill')  //fill for basis-upper
fill(p, p2, color=color.rgb(217, 161, 161), title='Bottom Fill', transp=85)  //fill for basis-lower

//Barcolor

bcol = src > upper ? color.new(#8ceb07, 0) : src < lower ? color.new(#ff0000, 0) : src > basis ? color.green : src < basis ? color.red : na

barcolor(CC ? bcol : na, editable=false, title='Color Bars')


// === INPUT BACKTEST RANGE ===
FromMonth = input.int(defval=1, title='From Month', minval=1, maxval=12)
FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31)
FromYear = input.int(defval=2018, title='From Year', minval=2015)
ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12)
ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31)
ToYear = input.int(defval=9999, title='To Year', minval=2010)

// === FUNCTION EXAMPLE === 
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)  // backtest finish window
window() =>
    time >= start and time <= finish ? true : false

if window() and (Show == 'Longs Only' or Show == 'Both')
    strategy.entry('AL', direction=strategy.long, when=longSignal)
    strategy.close('LongAL', when=shortSignal, comment='AL KAPA')

if window() and (Show == 'Shorts Only' or Show == 'Both')
    strategy.entry('SAT', direction=strategy.short, when=shortSignal)
    strategy.close('SAT', when=longSignal, comment='SAT KAPA')




















আরো