
ব্রডব্যান্ড অস্থিরতা লকিং কৌশলটি একটি দীর্ঘ-রেখা বিরতি কৌশল যা বাজারের অস্থিরতা হ্রাস পেয়েছে কিনা তা নির্ধারণের জন্য ব্রিন ব্যান্ডের সূচকগুলির উপর ভিত্তি করে। যখন বাজারটি ঝাঁকুনির সমন্বয় পর্যায়ে প্রবেশ করে, তখন ব্রিন ব্যান্ডের অবতরণ ঘটে, তখন আমরা সুযোগ হিসাবে প্রবেশ করি। আমরা একই সাথে গড় সত্যিকারের অস্থিরতার পরিসীমা সূচকগুলির সাথে দামের অস্থিরতা হ্রাসের বিষয়টি নিশ্চিত করি।
এই কৌশলটি মূলত ব্রিন ব্যান্ডের সূচকের উপর নির্ভর করে যে দামগুলি নিম্ন ওঠানামার ঝড়ের সময় প্রবেশ করেছে কিনা। ব্রিন ব্যান্ডের কেন্দ্রীয় ট্র্যাজেক্টটি বন্ধের দামের একটি চলমান গড়, এবং উপরের এবং নীচের ট্র্যাজেক্টটি মধ্যম ট্র্যাজেক্টের উপরে এবং নীচে দুটি স্ট্যান্ডার্ড ডিফারেনশিয়াল। যখন দামের অস্থিরতা হ্রাস পায়, তখন উপরের এবং নীচের ট্র্যাজেক্টের ব্যবধানটি স্পষ্টভাবে সংকীর্ণ হয়। যখন আমরা প্রাথমিকভাবে সিদ্ধান্ত নিই যে ব্রিন ব্যান্ডটি সংকীর্ণ হয়েছে কিনা, তখন আমরা সনাক্ত করব যে বর্তমান এটিআর মানটি ব্রিন ব্যান্ডের নীচের ট্র্যাজেক্টের ব্যবধানের চেয়ে কম কিনা।
এই প্রবণতা আরও প্রমাণ করার জন্য, আমরা এটিআর-এর চলমান গড়ের উপর একটি নিম্নমুখী প্রবণতা খুঁজে বের করি। এটিআর-এর নিম্নমুখী প্রবণতা পার্শ্বীয়ভাবে প্রমাণ করে যে প্রবণতা হ্রাস পাচ্ছে। যখন উপরের দুটি শর্ত একই সাথে পূরণ করা হয়, তখন আমরা সিদ্ধান্ত নিই যে বুলিন বন্ডের মধ্যে একটি সুস্পষ্ট ঘনিষ্ঠতা রয়েছে, যা একটি দুর্দান্ত কেনার সময়।
আমরা ক্রয় করার পরে, আমরা একটি মোবাইল স্টপ লস স্ট্র্যাটেজি চালু করি যা স্টপ লস দূরত্ব হিসাবে ATR এর দ্বিগুণ। এটি ক্ষতির কার্যকর নিয়ন্ত্রণ করতে পারে।
এই কৌশলটির সবচেয়ে বড় সুবিধা হল বাজারের নিম্ন ওঠানামা বিশ্লেষণের সময় সঠিকভাবে বিচার করা, যার ফলে সর্বোত্তম ক্রয়ের সময় নির্ধারণ করা যায়। অন্যান্য দীর্ঘ লাইন কৌশলগুলির তুলনায়, ব্রডব্যান্ড ঝড়ের লকিং কৌশলগুলির মুনাফা অর্জনের সম্ভাবনা বেশি।
দ্বিতীয়ত, এই কৌশলটি ঝুঁকি নিয়ন্ত্রণে সক্রিয় হওয়ার জন্য চলমান স্টপ ব্যবহার করে। এটি এমনকি খারাপ পরিস্থিতিতেও ক্ষতির পরিমাণকে সর্বাধিক করে তোলে। এটি অনেক দীর্ঘ লাইন কৌশলগুলির অভাব রয়েছে।
কৌশলটির প্রধান ঝুঁকিটি হ’ল ব্রাইন ব্যান্ডের সূচকগুলি মূল্যের অস্থিরতার পরিবর্তনকে শতভাগ সঠিকভাবে বিচার করতে পারে না। যখন ব্রাইন ব্যান্ডের ভুল বিচার মূল্যের অস্থিরতা হ্রাস পায়, তখন আমাদের কেনার সময়টি প্রতিকূল হতে পারে। এই মুহুর্তে চলমান ক্ষতির একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, যত তাড়াতাড়ি সম্ভব ক্ষতির প্রস্থান বন্ধ করতে পারে।
অন্যদিকে, বিভিন্ন প্যারামিটারের সেটিংগুলিও ফলাফলকে প্রভাবিত করে। আমাদের প্রচুর পরিমাণে ফিডব্যাকের মাধ্যমে প্যারামিটারগুলি অপ্টিমাইজ করতে হবে, যাতে কৌশলটি আরও শক্তিশালী হয়।
আমরা অন্যান্য সূচক যোগ করার কথা বিবেচনা করতে পারি যাতে আমরা নিশ্চিত হতে পারি যে প্রবণতা সূচকগুলিও বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকডাউন চলাকালীন বিউরিন ব্রেকড
আরেকটি দিক হল ফলাফলের উপর বিভিন্ন প্যারামিটারের প্রভাব পরীক্ষা করা, যেমন ব্রিনব্যান্ড চক্র, এটিআর চক্র এবং মোবাইল স্টপ লস গুণক ইত্যাদির সেটিং। আমাদের সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে ধাপে ধাপে অপ্টিমাইজেশন ব্যবহার করতে হবে।
ব্রডব্যান্ড অস্থিরতা লকিং কৌশলটি ব্রিন ব্যান্ডের সূচকগুলি ব্যবহার করে দামের অস্থিরতা হ্রাসের সময় নির্ধারণ করে এবং মোবাইল স্টপ লস কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করে। এটি একটি তুলনামূলকভাবে স্থিতিশীল দীর্ঘ লাইন ব্রেকিং কৌশল। আমাদের এখনও প্যারামিটারগুলিকে আরও অনুকূলিতকরণ এবং অন্যান্য সূচকগুলির সমন্বয় করতে হবে যাতে কৌশলটির স্থিতিশীলতা বাড়ানো যায়।
/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © DojiEmoji
//@version=4
strategy("[KL] Bollinger Bands Consolidation Strategy",overlay=true,pyramiding=1)
// Timeframe {
backtest_timeframe_start = input(defval = timestamp("01 Apr 2016 13:30 +0000"), title = "Backtest Start Time", type = input.time)
USE_ENDTIME = input(false,title="Define backtest end-time (If false, will test up to most recent candle)")
backtest_timeframe_end = input(defval = timestamp("19 Apr 2021 19:30 +0000"), title = "Backtest End Time (if checked above)", type = input.time)
within_timeframe = true
// }
// Indicator: BOLL bands {
BOLL_length = 20//input(20,title="Periods to lookback for BOLL and ATR calc. (default 20)")
BOLL_src = close
BOLL_center = sma(BOLL_src, BOLL_length)
BOLL_sDEV_x2 = 2 * stdev(BOLL_src, BOLL_length)
BOLL_upper = BOLL_center + BOLL_sDEV_x2
BOLL_lower = BOLL_center - BOLL_sDEV_x2
plot(BOLL_center, "Basis", color=#872323, offset = 0)
BOLL_p1 = plot(BOLL_upper, "Upper", color=color.navy, offset = 0, transp=50)
BOLL_p2 = plot(BOLL_lower, "Lower", color=color.navy, offset = 0, transp=50)
fill(BOLL_p1, BOLL_p2, title = "Background", color=#198787, transp=85)
// }
// ATR and volatility Indicator {
ATR_x2 = atr(BOLL_length) * 2 // multiplier aligns with BOLL
avg_volat = sma(ATR_x2, BOLL_length)
//}
// Trailing stop loss {
var entry_price = float(0)
var trailing_SL_buffer = float(0)
var stop_loss_price = float(0)
trail_profit_line_color = color.green
UPDATE_ATR_TSL = false
if strategy.position_size == 0 or not within_timeframe // make TSL line less visible
trail_profit_line_color := color.black
stop_loss_price := close - trailing_SL_buffer
else if strategy.position_size > 0
if UPDATE_ATR_TSL and ATR_x2 < trailing_SL_buffer
trailing_SL_buffer := ATR_x2
stop_loss_price := max(stop_loss_price, close[1] - trailing_SL_buffer)
plot(stop_loss_price,color=trail_profit_line_color)
// }
IGNORE_BOLL_SHAPE = false//input(false,title="Ignore BOLL (vs ATR) during entry (experimental)")
IGNORE_VOLATILITY = false///input(false,title="Ignore average ATR during entry (experimental)")
// Main:
if within_timeframe
// ENTRY:
if (ATR_x2 > BOLL_sDEV_x2 or IGNORE_BOLL_SHAPE) and (avg_volat < avg_volat[1] or IGNORE_VOLATILITY)
if strategy.position_size == 0
entry_price := close
trailing_SL_buffer := ATR_x2
stop_loss_price := close - ATR_x2
strategy.entry("Long",strategy.long, comment="enter")
if strategy.position_size > 0
strategy.entry("Long",strategy.long, comment="+")
// EXIT:
if strategy.position_size > 0
if low <= stop_loss_price
if close > entry_price
strategy.close("Long", comment="take profit")
else if low <= entry_price
strategy.close("Long", comment="stop loss")
if strategy.position_size == 0
entry_price := 0