গতিশীল পিভট ব্যান্ডের উপর ভিত্তি করে ট্রেন্ড ট্র্যাকিং কৌশল

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

img

সারসংক্ষেপ

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

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

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

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

  1. ডায়নামিক ব্যান্ডগুলি রিয়েল-টাইম বাজারের অস্থিরতার সাথে খাপ খায়
  2. ট্রেডিংয়ের প্রবণতা অনুযায়ী ট্রেডিংয়ের উচ্চ সম্ভাবনা
  3. স্টপ লস কন্ট্রোল একক ক্ষতি

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

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

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

  1. বিভিন্ন পণ্যের জন্য ব্যান্ডের পরামিতিগুলি সামঞ্জস্য করুন
  2. ট্রেন্ড ট্রেডিংয়ের সম্ভাবনা বাড়ানোর জন্য প্রবণতা সূচক প্যারামিটারগুলি সূক্ষ্মভাবে সুরক্ষিত করুন
  3. গতিশীল পরামিতি অপ্টিমাইজেশান জন্য মেশিন লার্নিং উপাদান প্রবর্তন

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

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


/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Strategy - Bobo PAPATR", overlay=true, default_qty_type = strategy.fixed, default_qty_value = 1, initial_capital = 10000)

// === STRATEGY RELATED INPUTS AND LOGIC ===
len = input(24, minval=1, title="Pivot Length, defines lookback for highs and lows to make pivots")
length = input(title="ATR lookback (Lower = bands more responsive to recent price action)", type=input.integer, defval=22)
myatr = atr(length)
dailyatr = myatr[1]
atrmult = input(title="ATR multiplier (Lower = wider bands)", type=input.float, defval=3)
pivot0 = (high[1] + low[1]  + close[1]) / 3

// PIVOT CALC
h = highest(len)
h1 = dev(h, len) ? na : h
hpivot = fixnan(h1)
l = lowest(len)
l1 = dev(l, len) ? na : l
lpivot = fixnan(l1)
pivot = (lpivot + hpivot + pivot0) / 3
upperband1 = (dailyatr * atrmult) + pivot
lowerband1 = pivot - (dailyatr * atrmult)
middleband = pivot

// == TREND CALC ===
i1=input(2, "Momentum Period", minval=1) //Keep at 2 usually
i2=input(20, "Slow Period", minval=1)
i3=input(5, "Fast Period", minval=1)
i4=input(3, "Smoothing Period", minval=1)
i5=input(4, "Signal Period", minval=1)
i6=input(50, "Extreme Value", minval=1)
hiDif = high - high[1]
loDif = low[1] - low
uDM = hiDif > loDif and hiDif > 0 ? hiDif : 0
dDM =  loDif > hiDif and loDif > 0 ? loDif : 0
ATR = rma(tr(true), i1)
DIu = 100 * rma(uDM, i1) / ATR
DId = 100 * rma(dDM, i1) / ATR
HLM2 =  DIu - DId
DTI = (100 * ema(ema(ema(HLM2, i2), i3), i4)) /  ema(ema(ema(abs(HLM2), i2), i3), i4)
signal = ema(DTI, i5)


// === RISK MANAGEMENT INPUTS ===
inpTakeProfit   = input(defval = 0, title = "Take Profit (In Market MinTick Value)", minval = 0)
inpStopLoss     = input(defval = 100, title = "Stop Loss (In Market MinTick Value)", minval = 0)

// === RISK MANAGEMENT VALUE PREP ===
// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong = (((low<=lowerband1) and (close >lowerband1)) or ((open <= lowerband1) and (close > lowerband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal>signal[3])
exitLong = (high > middleband)
strategy.entry(id = "Long", long = true, when = enterLong) 
strategy.close(id = "Long", when = exitLong)

// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort = (((high>=upperband1) and (close < upperband1)) or ((open >= upperband1) and (close < upperband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal<signal[3])
exitShort = (low < middleband)
strategy.entry(id = "Short", long = false, when = enterShort)
strategy.close(id = "Short", when = exitShort)

// === STRATEGY RISK MANAGEMENT EXECUTION ===
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss)

// === CHART OVERLAY ===
plot(upperband1, color=#C10C00, linewidth=3)
plot(lowerband1, color=#23E019, linewidth=3)
plot(middleband, color=#00E2E2, linewidth=3)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

আরো