রিসোর্স লোড হচ্ছে... লোডিং...

Bollinger Bands এবং Woodies CCI এর সাথে মাল্টি-ইন্ডিকেটর ফিল্টারড ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-12-27 15:32:30
ট্যাগঃবি বিসিসিআইএমএওবিভিএটিআরএসএমএটিপিSL

img

সারসংক্ষেপ

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

কৌশলগত নীতি

মূল যুক্তি নিম্নলিখিত মূল উপাদানগুলির উপর ভিত্তি করেঃ

  1. দামের অস্থিরতা চ্যানেল তৈরি করতে দুটি স্ট্যান্ডার্ড ডিভিয়েশন বোলিংজার ব্যান্ড (1x এবং 2x) ব্যবহার করে
  2. সিগন্যাল ফিল্টার হিসেবে ৬ পেরিওড এবং ১৪ পেরিওড সিসিআই ইন্ডিকেটর ব্যবহার করে, যার জন্য উভয় পেরিওড থেকে নিশ্চিতকরণের প্রয়োজন হয়
  3. বাজারের প্রবণতা নির্ধারণের জন্য ৫০ পেরিওড এবং ২০০ পেরিওড মুভিং মিডিয়ার সমন্বয় করে
  4. 10 পেরিওড সমতল OBV এর মাধ্যমে ভলিউম ট্রেন্ড নিশ্চিত করে
  5. ডায়নামিক স্টপ-লস এবং টেক-ওয়েফ লেভেলের জন্য ১৪ পেরিওড এটিআর ব্যবহার করে

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

  1. একাধিক সূচক ক্রস-ভ্যালিডেশন উল্লেখযোগ্যভাবে মিথ্যা সংকেত হ্রাস করে
  2. বোলিংজার ব্যান্ড এবং সিসিআই সমন্বয় সঠিক বাজার অস্থিরতা বিচার প্রদান করে
  3. দীর্ঘ এবং স্বল্পমেয়াদী এমএ সিস্টেমগুলি কার্যকরভাবে প্রধান প্রবণতাগুলি ক্যাপচার করে
  4. OBV ভলিউম সমর্থন নিশ্চিত করে, সিগন্যাল নির্ভরযোগ্যতা বৃদ্ধি করে
  5. ডায়নামিক স্টপ লস এবং টেক লাভ সেটিং বিভিন্ন বাজারের অবস্থার সাথে খাপ খায়
  6. স্ট্যান্ডার্ডাইজড এক্সিকিউশন সহ স্পষ্ট ট্রেডিং সিগন্যাল, পরিমাণগত বাস্তবায়নের জন্য উপযুক্ত

কৌশলগত ঝুঁকি

  1. একাধিক সূচক বিলম্বিত সংকেত হতে পারে
  2. ব্যাপ্তি বাজারে ঘন ঘন স্টপ লস
  3. প্যারামিটার অপ্টিমাইজেশনের ঝুঁকি
  4. স্টপ-লসগুলি অস্থির সময়কালে যথেষ্ট দ্রুত সক্রিয় হতে পারে না প্রশমনমূলক ব্যবস্থাঃ
  • বিভিন্ন বাজার চক্রের জন্য সূচক পরামিতিগুলি গতিশীলভাবে সামঞ্জস্য করুন
  • পজিশন কন্ট্রোলের জন্য ট্র্যাকডাউন মনিটর
  • নিয়মিত প্যারামিটার ভ্যালিডেশন
  • সর্বাধিক ক্ষতির সীমা নির্ধারণ করুন

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

  1. উচ্চ অস্থিরতার সময়ে পজিশনগুলিকে সামঞ্জস্য করার জন্য অস্থিরতা সূচক প্রবর্তন করা
  2. বাজারের ব্যবসায়ের পরিসীমা এড়াতে প্রবণতা শক্তি ফিল্টারিং যুক্ত করুন
  3. সিগন্যাল সংবেদনশীলতা উন্নত করার জন্য সিসিআই সময়ের নির্বাচন অপ্টিমাইজ করুন
  4. আংশিক মুনাফা গ্রহণের মাধ্যমে মুনাফা/হানি ব্যবস্থাপনা উন্নত করা
  5. ভলিউম অস্বাভাবিকতা সতর্কতা সিস্টেম বাস্তবায়ন

সংক্ষিপ্তসার

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy(shorttitle="BB Debug + Woodies CCI Filter", title="Debug Buy/Sell Signals with Woodies CCI Filter", overlay=true)

// Input Parameters
length = input.int(20, minval=1, title="BB MA Length")
src = input.source(close, title="BB Source")
mult1 = input.float(1.0, minval=0.001, maxval=50, title="BB Multiplier 1 (Std Dev 1)")
mult2 = input.float(2.0, minval=0.001, maxval=50, title="BB Multiplier 2 (Std Dev 2)")
ma_length = input.int(50, minval=1, title="MA Length")
ma_long_length = input.int(200, minval=1, title="Long MA Length")
obv_smoothing = input.int(10, minval=1, title="OBV Smoothing Length")
atr_length = input.int(14, minval=1, title="ATR Length") // ATR Length for TP/SL

// Bollinger Bands
basis = ta.sma(src, length)
dev1 = mult1 * ta.stdev(src, length)
dev2 = mult2 * ta.stdev(src, length)

upper_1 = basis + dev1
lower_1 = basis - dev1
upper_2 = basis + dev2
lower_2 = basis - dev2

plot(basis, color=color.blue, title="BB MA")
p1 = plot(upper_1, color=color.new(color.green, 80), title="BB Upper 1")
p2 = plot(lower_1, color=color.new(color.green, 80), title="BB Lower 1")
p3 = plot(upper_2, color=color.new(color.red, 80), title="BB Upper 2")
p4 = plot(lower_2, color=color.new(color.red, 80), title="BB Lower 2")

fill(p1, p2, color=color.new(color.green, 90))
fill(p3, p4, color=color.new(color.red, 90))

// Moving Averages
ma_short = ta.sma(close, ma_length)
ma_long = ta.sma(close, ma_long_length)
plot(ma_short, color=color.orange, title="MA Short")
plot(ma_long, color=color.yellow, title="MA Long")

// OBV and Smoothing
obv = ta.cum(ta.change(close) > 0 ? volume : ta.change(close) < 0 ? -volume : 0)
obv_smooth = ta.sma(obv, obv_smoothing)

// Debugging: Buy/Sell Signals
debugBuy = ta.crossover(close, ma_short)
debugSell = ta.crossunder(close, ma_short)

// Woodies CCI
cciTurboLength = 6
cci14Length = 14
cciTurbo = ta.cci(src, cciTurboLength)
cci14 = ta.cci(src, cci14Length)

// Filter: Only allow trades when CCI confirms the signal
cciBuyFilter = cciTurbo > 0 and cci14 > 0
cciSellFilter = cciTurbo < 0 and cci14 < 0

finalBuySignal = debugBuy and cciBuyFilter
finalSellSignal = debugSell and cciSellFilter

// Plot Debug Buy/Sell Signals
plotshape(finalBuySignal, title="Filtered Buy", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.normal)
plotshape(finalSellSignal, title="Filtered Sell", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.normal)

// Change candle color based on filtered signals
barcolor(finalBuySignal ? color.lime : finalSellSignal ? color.red : na)

// ATR for Stop Loss and Take Profit
atr = ta.atr(atr_length)
tp_long = close + 2 * atr  // Take Profit for Long = 2x ATR
sl_long = close - 1 * atr  // Stop Loss for Long = 1x ATR
tp_short = close - 2 * atr // Take Profit for Short = 2x ATR
sl_short = close + 1 * atr // Stop Loss for Short = 1x ATR

// Strategy Execution
if (finalBuySignal)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", limit=tp_long, stop=sl_long)

if (finalSellSignal)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", limit=tp_short, stop=sl_short)

// Check for BTC/USDT pair
isBTCUSDT = syminfo.ticker == "BTCUSDT"

// Add alerts only for BTC/USDT
alertcondition(isBTCUSDT and finalBuySignal, title="BTCUSDT Buy Signal", message="Buy signal detected for BTCUSDT!")
alertcondition(isBTCUSDT and finalSellSignal, title="BTCUSDT Sell Signal", message="Sell signal detected for BTCUSDT!")

সম্পর্কিত

আরো