বলিঙ্গার ব্যান্ড ব্রেকআউট এবং উদ্বায়ীতা ফিল্টার কৌশল


সৃষ্টির তারিখ: 2024-03-08 15:28:05 অবশেষে সংশোধন করুন: 2024-03-08 15:28:05
অনুলিপি: 0 ক্লিকের সংখ্যা: 692
1
ফোকাস
1617
অনুসারী

বলিঙ্গার ব্যান্ড ব্রেকআউট এবং উদ্বায়ীতা ফিল্টার কৌশল

কৌশল ওভারভিউ

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

কৌশল নীতি

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

কৌশলটির খোলার শর্তগুলি পোলিং বন্ডের সাথে বন্ধের দামের অবস্থানের উপর ভিত্তি করে। যদি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেনের দিকটি লেনদেন

অন্যদিকে, যদি ক্রমাগত দুইটি K-লাইনের পতন এবং পতন পূর্বাভাসকৃত ওঠানামা (Volatility) এর চেয়ে বেশি হয়, তাহলে বর্তমান বাজারের ওঠানামা বেশি বলে সিদ্ধান্ত নেওয়া হয় এবং কৌশলটি নতুন অবস্থান খুলবে না। এই ওঠানামা ফিল্টারটি বাজারের পরিস্থিতিকে কিছুটা এড়াতে পারে যেখানে তীব্র ওঠানামা রয়েছে।

সমতল পজিশনের ক্ষেত্রে, যদি একাধিক পজিশনের সমাপ্তির মূল্য উপরের রেলের কাছাকাছি (উপরের এলাকা) স্পর্শ করে*long_win_pct), বা খালি পজিশনের সমাপ্তি মূল্য নিম্ন রেলের কাছাকাছি ((lower+area*short_win_pct), কৌশলটি প্রাসঙ্গিক পজিশনটি মুনাফা অর্জনের জন্য খালি করে দেয়। এছাড়াও, যদি পজিশনের ফ্লোটিং ক্ষতিটি পূর্বনির্ধারিত সর্বাধিক প্রত্যাহারের হার ((max_drawdown_percent) অতিক্রম করে তবে কৌশলটি পজিশনটি বন্ধ করে দেয়।

কৌশলগত সুবিধা

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

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

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

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

কৌশলগত ঝুঁকি

  1. পোলিংগার ব্যান্ডটি মূলত একটি পিছিয়ে পড়া সূচক, বাজারের প্রতিক্রিয়াতে কিছুটা পিছিয়ে রয়েছে। প্রবণতা বা গতি পরিবর্তনের গুরুত্বপূর্ণ মুহুর্তে, কৌশলটি সেরা প্রবেশের সময়টি মিস করতে পারে।

  2. কৌশলটির প্যারামিটার সেটিংগুলি বিভিন্ন বাজারের অবস্থার জন্য সর্বদা প্রযোজ্য নয়। যেমন, ওঠানামা ফিল্টারের থ্রেশহোল্ড সেটিং, ট্রেন্ডিং এবং ঝড়ের পরিস্থিতিতে পার্থক্য প্রয়োজন হতে পারে। স্থির প্যারামিটারগুলি কৌশলটি কিছু পরিস্থিতিতে পজিশন খুলতে পারে না বা খুব ঘন ঘন খুলতে পারে।

  3. যদিও স্টপ লস ব্যবস্থা রয়েছে, কিন্তু যখন বাজার উড়ে যায়, তখন কৌশলটি ডিফল্টরূপে নির্ধারিত মূল্যের সাথে বাণিজ্য করতে পারে না, যার ফলে আরও বড় ক্ষতি হয়।

  4. কৌশলটি পজিশন খোলার পরে চলমান স্টপ বা ট্র্যাকিং স্টপ সেট করে না, যার ফলে মুনাফার কিছু অংশ ফেরত দেওয়া হতে পারে।

অপ্টিমাইজেশান দিক

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

  2. ওলটপালট পরিস্রাবকগুলির জন্য, গতিশীল থ্রেশহোল্ড ব্যবহার করার চেষ্টা করা যেতে পারে, যা বিভিন্ন জাতের বা বিভিন্ন সময়কালের সাথে খাপ খাইয়ে নিতে পারে, যা পরিস্রাবনের কার্যকারিতা উন্নত করে।

  3. স্টপ-অফ-স্টপ-এর ক্ষেত্রে, চলমান স্টপ-অফ বা স্টপ-অফ-ট্র্যাকিংয়ের একটি ব্যবস্থা চালু করা যেতে পারে, যাতে কৌশলটি প্রবণতা অব্যাহত থাকাকালীন পজিশন ধরে রাখতে পারে, অকালীন পজিশনের পরিবর্তে। একই সাথে, বিভিন্ন স্টপ-অফ-স্টপ অনুপাত সেট করার বিষয়টি বিবেচনা করা যেতে পারে, যা ঝুঁকি-লাভের অনুপাতকে অনুকূল করে তোলে।

  4. পজিশন ম্যানেজমেন্ট আরও অপ্টিমাইজ করা যেতে পারে, ট্রেন্ডের শক্তি, অস্থিরতা, ঝুঁকিপূর্ণতার মতো সূচকগুলির গতিশীলতা অনুসারে পজিশন খোলার অনুপাতটি সামঞ্জস্য করা যায়, প্রত্যাহার নিয়ন্ত্রণ করা যায়। উপরন্তু, পজিশন বাড়ানো, পজিশন হ্রাস করা ইত্যাদি অপারেশনের মাধ্যমে তহবিলের আরও ভাল ব্যবহার করা যেতে পারে।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2024-02-29 00:00:00
end: 2024-03-07 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("[Oppen Chow] Super BBS 1.0", default_qty_type = strategy.percent_of_equity, default_qty_value =100, initial_capital=500, commission_type=strategy.commission.percent, commission_value=0.08, pyramiding=2 )

// Input parameters
length = 20
mult = 2
max_drawdown_percent = input(5.5, "Maximum Acceptable Drawdown") / 100
upper_breakout_pct = input(50, "Short Entry Breakout Percentage") / 100
lower_breakout_pct = input(25, "Long Entry Breakout Percentage") / 100
tradeDirection = input(1, title="Trade Direction")
Volatility = input(0.5, title="Volatility") / 100
long_win_pct = input(-0.15, title = "Long Settlement Rate Near Boll Upper Limit")
short_win_pct = input(0.4, title = "Short Settlement Rate Near Boll Lower Limit")

// Bollinger Bands calculation
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev
area = upper - lower

// Calculate the rate of change for two consecutive candlesticks
var float change1 = na
var float change2 = na
change1 := change2
change2 := ((close - open) / open) 

// Check for two or more consecutive candlesticks with a change rate greater than 0.5%
var bool highVolatility = false
highVolatility := change2 > Volatility

// Trading logic
var float highestPriceSinceOpen = na
var float lowestPriceSinceOpen = na
var int profitableDrawbackCount = 1


// Entry logic - In the absence of high volatility
if not highVolatility and strategy.position_size == 0
    if (tradeDirection >= 0) and (close < lower - area * lower_breakout_pct)
        strategy.entry("Long", strategy.long)
        highestPriceSinceOpen := close
        profitableDrawbackCount := 0
    if (tradeDirection <= 0) and (close > upper + area * upper_breakout_pct)
        strategy.entry("Short", strategy.short)
        lowestPriceSinceOpen := close
        profitableDrawbackCount := 0


if strategy.position_size > 0 and close > upper - area * long_win_pct
    strategy.close("Long", comment = "Take Profit")
if strategy.position_size < 0 and close < lower + area * short_win_pct
    strategy.close("Short", comment = "Take Profit")

// Stop loss logic - Based on drawdown percentage
if strategy.position_size > 0
    if (strategy.position_avg_price - close)/strategy.position_avg_price >= max_drawdown_percent
        strategy.close("Long", comment = "Drawdown Stop Loss")
else if strategy.position_size < 0
    if (close - strategy.position_avg_price)/strategy.position_avg_price >= max_drawdown_percent
        strategy.close("Short", comment = "Drawdown Stop Loss")