এই কৌশলটি বাজার প্রবণতা চিহ্নিত করতে এবং ব্রেকার কৌশল বাস্তবায়নের জন্য বলিংজার ব্যান্ডের সাথে মিলিত প্রধান প্রযুক্তিগত সূচক হিসাবে সিবিএমএ ব্যবহার করে। যখন দাম উপরের ব্যান্ডের উপরে ভাঙ্গবে তখন এটি শর্ট হয়ে যায় এবং যখন দাম নিম্নতম ব্যান্ডের নীচে ভাঙ্গবে তখন দীর্ঘ হয়ে যায়, যা জনপ্রিয় ডুয়াল-ট্র্যাক ব্রেকআউট সিস্টেমের অন্তর্গত।
সিবিএমএ গণনা করুনঃ মূল্য পরিবর্তনগুলি কার্যকরভাবে ট্র্যাক করতে পারে এমন সিবিএমএ মসৃণ করতে অভিযোজিত ইএমএ ব্যবহার করুন।
বোলিংজার ব্যান্ডের পরামিতি সেট করুনঃ মধ্যম ব্যান্ড হিসাবে CBMA ব্যবহার করুন এবং স্ট্যান্ডার্ড ডিভিয়েশন গুণক ব্যবহার করে উপরের / নীচের ব্যান্ড সেট করুন, যা বাজারের ভিত্তিতে সামঞ্জস্য করা যেতে পারে।
ব্রেকআউট ট্রেডিংঃ যখন দাম উপরের ব্যাংকের উপরে ভেঙে যায় তখন বিক্রি করুন, যখন দাম নীচের ব্যাংকের নীচে ভেঙে যায় তখন ক্রয় করুন, ব্রেকার কৌশল অনুসরণ করে প্রবণতা ব্যবহার করুন।
ফ্ল্যাশ অর্ডার বাতিল করুন, এক সময়ে এক দিক দিয়েই ট্রেড করুন।
অর্ডারের আকার স্থির করুন, মূলধন অনুযায়ী সামঞ্জস্য করা যায়।
সিবিএমএ-র সুগমতা রয়েছে এবং এটি কার্যকরভাবে দাম ট্র্যাক করতে পারে।
অ্যাডাপ্টিভ ইএমএ চলমান গড়ের প্রতিক্রিয়াশীলতা অপ্টিমাইজ করে।
উপরের/নিচের ব্যান্ডগুলি যখন ব্রেকআউট ঘটে তখন স্পষ্ট দিকনির্দেশক সংকেত দেয়।
প্রবণতা অনুসরণকারী মডেল হুইপস ট্রেড এড়ায়।
নির্দিষ্ট অর্ডার আকার একক বাণিজ্য ঝুঁকি নিয়ন্ত্রণ করে।
বোলিংগার ব্যান্ডের পরামিতিগুলিকে অপ্টিমাইজ করার প্রয়োজন, খুব প্রশস্ত বা খুব সংকীর্ণ সমস্যা সৃষ্টি করতে পারে।
ব্রেকআউট সিগন্যালগুলোতে মিথ্যা ব্রেকআউট থাকতে পারে।
হারাতে হারাতে স্টপ লস দরকার।
স্থির অর্ডার আকার বাজার ভিত্তিতে অবস্থান সামঞ্জস্য করতে পারে না।
শুধু এক দিকের বাণিজ্য, বেশি লাভ করতে পারবে না।
বাজারে আরও ভালভাবে ফিট করার জন্য বোলিংজার ব্যান্ডের পরামিতিগুলিকে গতিশীলভাবে অপ্টিমাইজ করুন।
ফিল্টারিং এর জন্য আরো সূচক যোগ করুন, ভুয়া ব্রেকআউট এড়াতে।
মুনাফা লক করার জন্য স্টপ লস যোগ করুন।
হেজ ট্রেডিং, বড় মুনাফা অর্জনের জন্য লম্বা এবং ছোট উভয়ই করুন।
পজিশন ডিজাইনিং সিস্টেম যোগ করুন।
এই কৌশলটি স্পষ্ট ব্রেকআউট সংকেতগুলির জন্য বোলিংজার ব্যান্ডগুলির সাথে মিলিত অভিযোজনশীল চলমান গড় প্রযুক্তি ব্যবহার করে একটি ব্রেকার ট্রেন্ড অনুসরণকারী সিস্টেম। এটির সহজ যুক্তি এবং নির্দিষ্ট অর্ডার আকারের ঝুঁকি নিয়ন্ত্রণ রয়েছে, কিছু ব্যবহারিক মূল্য রয়েছে। তবে মিথ্যা ব্রেকআউট এবং পরামিতি অপ্টিমাইজেশনের মতো সমস্যা রয়েছে, যা ঝুঁকি নিয়ন্ত্রণের সময় বাস্তব ট্রেডিং কর্মক্ষমতা উন্নত এবং উন্নত করার জন্য আরও সূচক প্রয়োজন। সামগ্রিকভাবে এটি উন্নতির জন্য অনেক জায়গা সহ একটি শালীন স্টার্টার ব্রেকআউট সিস্টেম।
/*backtest start: 2023-10-29 00:00:00 end: 2023-11-05 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="CBMA Bollinger Bands Strategy directed [ChuckBanger]", shorttitle="CBMA BB CB", overlay=true ) length = input(title="Length", type=input.integer, defval=12, minval=1) regular = input(title="Regular BB Or CBMA?", type=input.bool, defval=false) src = input(title="Source", type=input.source, defval=close) mult = input(title="Multipler", type=input.float, defval=2.3, minval=.001, maxval=50, step=.1) emaLen = input(title="EMA Length", type=input.integer, defval=11, minval=1) emaGL = input(title="EMA Gain Limit", type=input.integer, defval=50, minval=1) highlight = input(title="Highlight On/Off", type=input.bool, defval=true) direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1) strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long)) //strategy.risk.max_drawdown(50, strategy.percent_of_equity) calc_hma(src, length) => hullma = wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length))) hullma calc_cbma(price, length, emaLength, emaGainLimit) => alpha = 2 / (emaLength + 1) ema = ema(price, emaLength) int leastError = 1000000 float ec = 0 float bestGain = 0 for i = emaGainLimit to emaGainLimit gain = i / 10 ec := alpha * ( ema + gain * (price - nz(ec[1])) ) + (1 - alpha) * nz(ec[1]) error = price - ec if (abs(error) < leastError) leastError = abs(error) bestGain = gain ec := alpha * ( ema + bestGain * (price - nz(ec[1])) ) + (1 - alpha) * nz(ec[1]) hull = calc_hma(price, length) cbma = (ec + hull) / 2 cbma cbma = calc_cbma(src, length, emaLen, emaGL) basis = regular ? sma(src, length) : cbma dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev cbmaColor = fixnan(highlight and not regular ? cbma > high ? color.purple : cbma < low ? color.aqua : na : color.red) plot(basis, color=cbmaColor) p1 = plot(upper, color=color.blue) p2 = plot(lower, color=color.blue) fill(p1, p2) if (crossover(src, lower)) strategy.entry("CBMA_BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="CBMA_BBandLE") else strategy.cancel(id="CBMA_BBandLE") if (crossunder(src, upper)) strategy.entry("CBMA_BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="CBMA_BBandSE") else strategy.cancel(id="CBMA_BBandSE")