কৌশল অনুসরণ করে বোলিংজার ব্যান্ড ব্রেকআউট ট্রেন্ড

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

সারসংক্ষেপ

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

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

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

নির্দিষ্ট ট্রেডিং লজিক হলঃ

  1. বোলিঞ্জার ব্যান্ডের মধ্যম, উপরের এবং নীচের ব্যান্ড গণনা করুন।

  2. যখন দাম উপরের ব্যাচটি অতিক্রম করে, তখন লম্বা হয়ে যায়। যখন দাম নীচের ব্যাচটি অতিক্রম করে, তখন শর্ট হয়ে যায়।

  3. ঝুঁকি নিয়ন্ত্রণ করতে এবং যখন দাম ফিরে আসতে শুরু করে তখন বেরিয়ে আসার জন্য একটি ট্রেলিং স্টপ লস ব্যবহার করুন।

  4. যখন দাম আবার এই ব্যান্ডের মধ্য দিয়ে যাবে তখন আবার ট্রেন্ডে প্রবেশ করুন।

প্রবণতা নির্ধারণের জন্য বোলিংজার ব্যান্ড ব্যবহার করা এবং একটি গতিশীল ট্রেলিং স্টপ লসের সাথে একত্রিত করা ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করতে পারে।

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

এই কৌশলটির সুবিধাগুলির মধ্যে রয়েছেঃ

  1. প্রবণতা নির্ধারণের জন্য বোলিংজার ব্যান্ড ব্যবহার করা, সহজ এবং কার্যকর।

  2. ব্রেকআউট এন্ট্রি এবং ডায়নামিক ট্রেলিং স্টপ লস এর সমন্বয় প্রবণতা ধরা এবং ঝুঁকি নিয়ন্ত্রণকে সামঞ্জস্য করে।

  3. পরিষ্কার এবং সংক্ষিপ্ত কোড কাঠামো, বুঝতে এবং পরিবর্তন করা সহজ।

  4. কয়েকটি পরামিতি, সহজেই অপ্টিমাইজ করা যায়।

  5. বিভিন্ন পণ্যের জন্য প্রযোজ্য, নমনীয়।

  6. ভাল ব্যাকটেস্ট ফলাফল, বড় মুনাফা সম্ভাব্য সঙ্গে.

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

প্রধান ঝুঁকিগুলি হলঃ

  1. বোলিংজার ব্যান্ড শুধুমাত্র পরিসংখ্যানের উপর নির্ভর করে, কার্ভ ফিটিং এর ঝুঁকি।

  2. পরিসীমা সম্প্রসারণ এবং বাস্তব প্রবণতা পার্থক্য করা কঠিন, ভুল বিচার হতে পারে।

  3. স্টপ লস পয়েন্ট খুব টাইট, স্বাভাবিক দোলনা দ্বারা বন্ধ হওয়ার ঝুঁকি।

  4. লেনদেনের খরচ বিবেচনা করা হয় না।

  5. সীমিত ব্যাকটেস্ট সময়কাল, অতিরিক্ত ফিটিংয়ের ঝুঁকি।

সমাধানগুলো হল:

  1. সিগন্যাল যাচাইকরণের জন্য প্যারামিটারগুলি অপ্টিমাইজ করুন বা অন্যান্য সূচক যুক্ত করুন।

  2. ওসিলেশন এবং চ্যানেলের সনাক্তকরণ উন্নত করা।

  3. এটিআর ইত্যাদির উপর ভিত্তি করে স্টপ লসকে গতিশীলভাবে সামঞ্জস্য করুন

  4. কমিশন যোগ করুন, স্লিপিং খরচ।

  5. ব্যাকটেস্টের সময় বাড়ানো, মাল্টি মার্কেট ভেরিফিকেশন।

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

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

  1. বিভিন্ন সূচকগুলির সমন্বিত প্রভাব পরীক্ষা করা।

  2. প্রবণতা ওসিলেশন সনাক্তকরণের উন্নতি।

  3. গতিশীল প্যারামিটার অপ্টিমাইজেশনের জন্য মেশিন লার্নিং চালু করা।

  4. ব্যাকটেস্টের ফলাফলের উপর ভিত্তি করে স্টপ লস কৌশল অপ্টিমাইজ করা।

  5. লেনদেনের খরচ মূল্যায়ন এবং যোগ করা।

  6. সর্বোত্তম সেটিংসের জন্য প্যারামিটার স্পেস অপ্টিমাইজেশান।

  7. পজিশন ঝুঁকি নিয়ন্ত্রণে অর্থ ব্যবস্থাপনা যোগ করা।

সিদ্ধান্ত

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


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

//@version=4
strategy(title="Bollinger Band Breakout", shorttitle = "BB Strategy",initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, commission_type = strategy.commission.percent, commission_value = 0.3, max_bars_back = 1000, overlay=true)

// Inputs //

sma = input(20,  minval=1)
mult   = input(1.2, minval=0.001, maxval=50)
src = input(close)

// alert msg  //

message_long_entry  = input("long entry")
message_short_entry = input("short entry")

// Calculations //

basis = sma(close, sma)
dev   = mult * stdev(close, sma)

upper = basis + dev
lower = basis - dev

// Backtest //
fromyear = input(2019, defval = 2019, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(1, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

leverage = input(1, "Leverage")

term = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))

// PLOT //

plot(basis, color = color.gray,  linewidth = 2)
lu = plot(upper, color = color.green, linewidth = 2)
ll = plot(lower, color = color.red,   linewidth = 2)

fill(lu, ll, color = color.gray)

// Signals //

long  = crossover(close, upper)
short = crossunder(close, lower)

// Strategy entry //
strategy.initial_capital = 50000
if (long and term)
    strategy.entry("long",  strategy.long, qty=strategy.initial_capital/close*leverage, when = long and barstate.isconfirmed, alert_message = message_long_entry)
    
if (short and term)
    strategy.entry("short",  strategy.short, qty=strategy.initial_capital/close*leverage, when = short and barstate.isconfirmed, alert_message = message_short_entry)

// strategy exit //

strategy.exit("long tsl", "long", loss = close*0.075 / syminfo.mintick, trail_points = close*0.05 / syminfo.mintick, trail_offset = close*0.005 / syminfo.mintick)
strategy.exit("short tsl", "short", loss = close*0.075 / syminfo.mintick, trail_points = close*0.05 / syminfo.mintick, trail_offset = close*0.005 / syminfo.mintick)





আরো