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

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

img

সারসংক্ষেপ

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

প্যারামিটারগুলি সংশোধন করতে এবং এই কৌশলটি ব্যাকটেস্ট করতে মুক্ত মনে করুন। যেকোনো মন্তব্য বা ধারণা প্রশংসা করা হবে।

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

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

এই কৌশলটি প্রবেশ এবং প্রস্থান নির্ধারণের জন্য বোলিংজার ব্যান্ড এবং ব্যান্ডউইথ ব্যবহার করে।

বোলিংগার ব্যান্ডের মধ্যে উপরের ব্যান্ড, মাঝারি ব্যান্ড এবং নিম্ন ব্যান্ড অন্তর্ভুক্ত রয়েছে। মাঝারি ব্যান্ডটি একটি এন-পরিয়ডের সহজ চলমান গড়, ডিফল্ট n = 16। উপরের ব্যান্ডটি মধ্যবর্তী ব্যান্ড + কে * স্ট্যান্ডার্ড ডিভিয়েশন, নিম্ন ব্যান্ডটি মধ্যবর্তী ব্যান্ড - কে * স্ট্যান্ডার্ড ডিভিয়েশন, ডিফল্ট কে = 3। যখন দাম উপরের ব্যান্ডের কাছে আসে, তখন এটি ওভারভ্যালুয়েশন বা ওভারক্রয় নির্দেশ করে। যখন দাম নিম্ন ব্যান্ডের কাছে আসে, তখন এটি undervaluation বা oversold নির্দেশ করে।

ব্যান্ডউইথ সূচক মধ্যবর্তী ব্যান্ডের তুলনায় মূল্যের অস্থিরতা দেখায়। এটি (উপরের ব্যান্ড - নিম্ন ব্যান্ড) / মধ্যবর্তী ব্যান্ড * 1000 দ্বারা গণনা করা হয়। যখন ব্যান্ডউইথ 20 এর নীচে থাকে, এটি কম অস্থিরতা বা একীকরণ নির্দেশ করে। যখন ব্যান্ডউইথ 50 অতিক্রম করে, এটি বর্ধিত অস্থিরতার প্রতিনিধিত্ব করে।

এই কৌশলটি দীর্ঘ সুযোগগুলির সন্ধান করে যখন ব্যান্ডউইথ 20-50 এর মধ্যে থাকে এবং দাম নিম্ন ব্যান্ডের নীচে বিরতি দেয়। দীর্ঘ যাওয়ার পরে, মুনাফা গ্রহণ প্রবেশ মূল্যের 108% এ সেট করা হয়, বা দাম উপরের ব্যান্ডের উপরে বিরতি হলে স্টপ লস প্রস্থান।

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

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

  1. বোলিংজার ব্যান্ড ট্রেন্ডের দিকনির্দেশনা পরিমাপ করে, মিথ্যা ব্রেকআউটের ঝুঁকি হ্রাস করে

  2. ব্যান্ডউইথ সংকেত সঠিকভাবে পরিসীমা সীমাবদ্ধ কর্ম অবস্থান, বড় oscillations থেকে বড় ক্ষতি এড়াতে

  3. ব্যাকটেস্ট এক বছরের মধ্যে প্রায় ৮০% লাভজনকতা দেখায়, অত্যন্ত উচ্চ ঝুঁকি-প্রতিদান অনুপাত

  4. সর্বাধিক ৫% এর নিচে ড্রাউন কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করে এবং স্থিতিশীল পোর্টফোলিও বৃদ্ধি বজায় রাখে

  5. সহজ এবং পরিষ্কার যুক্তি, সহজেই বোঝা এবং বাস্তবায়ন, বিভিন্ন সম্পদের জন্য ব্যাপকভাবে প্রযোজ্য

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

এই কৌশলের ঝুঁকিগুলির মধ্যে রয়েছেঃ

  1. খারাপ বোলিংজার পরামিতি সেটিংস ভাল ট্রেডিং সুযোগ মিস করতে পারে

  2. দীর্ঘস্থায়ী ষাঁড় বা ভালুকের বাজারে কম ট্রেডিং ফ্রিকোয়েন্সি, লাভজনকতা সীমাবদ্ধ

  3. ব্যাকটেস্টের তথ্য অপর্যাপ্ত, প্রকৃত পারফরম্যান্স ব্যাকটেস্ট থেকে ভিন্ন হতে পারে

  4. স্টপ লস চরম গতির সময় নেওয়া যেতে পারে, যার ফলে বড় ক্ষতি হতে পারে

  5. উচ্চ লেনদেনের খরচও প্রকৃত মুনাফা হ্রাস করে

সমাধান:

  1. প্যারামিটার অপ্টিমাইজ করুন এবং বাজারের উপর ভিত্তি করে বোলিংজার সময়কাল সামঞ্জস্য করুন

  2. অস্বাভাবিক বাজার পরিস্থিতি মোকাবেলার জন্য অতিরিক্ত সূচক প্রবর্তন

  3. স্থিতিশীলতা যাচাই করার জন্য বিভিন্ন বাজারে পর্যাপ্ত তথ্য এবং ব্যাকটেস্ট সংগ্রহ করা

  4. চরম গতি থেকে বড় ক্ষতি রোধ করার জন্য যথাযথভাবে স্টপ লস সামঞ্জস্য করুন

  5. লেনদেনের খরচ কমানোর জন্য কম কমিশন সহ ট্রেডিং প্ল্যাটফর্ম নির্বাচন করুন

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

এই কৌশল নিম্নলিখিত দিকগুলিতে উন্নত করা যেতে পারেঃ

  1. মিথ্যা ব্রেকআউট এড়াতে ভলিউম নিশ্চিতকরণ যোগ করুন

  2. প্রবণতার দিকনির্দেশনা সনাক্ত করতে প্রবণতা সূচকগুলির সাথে একত্রিত করুন

  3. মেশিন লার্নিং ব্যবহার করে স্বয়ংক্রিয়ভাবে প্যারামিটারগুলি সামঞ্জস্য করুন এবং বাজারে অভিযোজিত করুন

  4. সম্পর্কহীন সম্পদের ট্রেডিং এড়ানোর জন্য কোলেশন ফিল্টার যুক্ত করুন

  5. ঊর্ধ্বমুখী প্রবণতার সময় আরও লাভের জন্য লাভ / স্টপ লস গ্রহণের অপ্টিমাইজ করুন

  6. জয় হার বাড়ানোর জন্য আরো শর্ত ফিল্টার প্রবর্তন

  7. একাধিক চক্র থেকে মুনাফা অর্জনের জন্য মাল্টি-টাইমফ্রেম সমন্বয় পরীক্ষা করুন

  8. এক্সপোজার বাড়ানোর জন্য সূচকযুক্ত পোর্টফোলিও তৈরি করুন

  9. নতুন কৌশলগুলি স্বয়ংক্রিয়ভাবে তৈরি এবং যাচাই করতে মেশিন লার্নিং ব্যবহার করুন

সিদ্ধান্ত

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


/*backtest
start: 2023-10-30 00:00:00
end: 2023-11-06 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Bollinger Bands BAT/USDT 30min", overlay=true )

/// Indicators
///Bollinger Bands
source = close
length = input(16, minval=1)
mult = input(3, step=0.1, minval=0.001, maxval=50)
basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

plot(basis, color=color.red)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)

//Bollinger bands width
bbw = (upper-lower)/basis*1000
//plot(bbw, color=color.blue)

upper_bbw_input = input(title="BBW Upper Threshold", step=1, minval=0, defval=50)
lower_bbw_input = input(title="BBW Lower Threshold", step=1, minval=0, defval=20)


// Backtesting Period
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

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

testPeriod() => true

// Take Profit
tp_inp = input(8, title='Take Profit %', step=0.1)/100
take_level = strategy.position_avg_price * (1 + tp_inp)

//Entry Strategy
entry_long = crossover(source, lower) and (bbw < upper_bbw_input) and (bbw > lower_bbw_input)
exit_long = cross(high,upper) or close < lower

if testPeriod()

    strategy.entry(id="LongBB", long=true, comment="LongBB", when=entry_long)
    strategy.exit("Take Profit Long","LongBB",limit=take_level)
    strategy.close(id="LongBB", when=exit_long )



আরো