এই কৌশলটি বোলিংজার ব্যান্ড সূচকের উপর ভিত্তি করে একটি গতি ট্র্যাকিং ট্রেডিং সিস্টেম। এটি মূল্য এবং উপরের বোলিংজার ব্যান্ডের মধ্যে সম্পর্ক পর্যবেক্ষণ করে সম্ভাব্য ব্রেকআউট সুযোগগুলি সনাক্ত করে এবং যখন দাম নিম্নতম ব্যান্ডের নীচে ভাঙে তখন অবস্থানগুলি বন্ধ করে। বোলিংজার ব্যান্ডগুলি তিনটি লাইনের সমন্বয়ে গঠিতঃ মাঝারি ব্যান্ড (চলন্ত গড়), উপরের এবং নীচের ব্যান্ডগুলি (স্ট্যান্ডার্ড বিচ্যুতি ব্যবহার করে গণনা করা) । কৌশলটি একাধিক ধরণের চলন্ত গড় সমর্থন করে এবং ব্যবসায়ীর পছন্দগুলির উপর ভিত্তি করে পরামিতি সমন্বয় করতে দেয়।
কৌশলটির মূল যুক্তি নিম্নলিখিত বিষয়গুলির উপর ভিত্তি করেঃ
এটি বোলিংজার ব্যান্ডের উপর ভিত্তি করে একটি প্রবণতা অনুসরণকারী কৌশল, যা মূল্য এবং ব্যান্ডগুলির মধ্যে সম্পর্ক পর্যবেক্ষণ করে বাজারের প্রবণতা ক্যাপচার করে। কৌশলটি ভাল অভিযোজনযোগ্যতা এবং ঝুঁকি ব্যবস্থাপনা প্রক্রিয়াগুলির সাথে ভালভাবে ডিজাইন করা হয়েছে। প্রস্তাবিত অপ্টিমাইজেশান দিকগুলির মাধ্যমে, কৌশলটির স্থিতিশীলতা এবং লাভজনকতা আরও বাড়ানো যেতে পারে। এটি বিশেষত অস্থির বাজারের জন্য উপযুক্ত, তবে ব্যবসায়ীদের প্রকৃত অবস্থার অনুযায়ী পরামিতি এবং ঝুঁকি নিয়ন্ত্রণ ব্যবস্থাগুলি সামঞ্জস্য করতে হবে।
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Demo GPT - Bollinger Bands Strategy", overlay=true, initial_capital=100000, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3) // Inputs length = input.int(20, minval=1, title="Length") maType = input.string("SMA", "Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") offset = input.int(0, "Offset", minval=-500, maxval=500) startDate = input(timestamp('01 Jan 2018 00:00 +0000'), title="Start Date") endDate = input(timestamp('31 Dec 2069 23:59 +0000'), title="End Date") // Moving Average Function ma(source, length, _type) => switch _type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) // Calculations basis = ma(src, length, maType) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plotting plot(basis, "Basis", color=#2962FF, offset=offset) p1 = plot(upper, "Upper", color=#F23645, offset=offset) p2 = plot(lower, "Lower", color=#089981, offset=offset) fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95)) // Strategy Logic inTradeWindow = true longCondition = close > upper and inTradeWindow exitCondition = close < lower and inTradeWindow if (longCondition) strategy.entry("Long", strategy.long, qty=1) if (exitCondition) strategy.close("Long")