অ্যাডাপ্টিভ ট্রেলিং স্টপলস সহ মাল্টি-ফ্যাক্টর মডেলের উপর ভিত্তি করে ট্রেন্ড ট্র্যাকিং কৌশল

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

img

সারসংক্ষেপ

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

নীতিমালা

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

বিশেষত, এটি যখন আরএসআই 52 এর উপরে থাকে এবং এমএসিডি সোনার ক্রস ঘটে তখন এটি ক্রয় সংকেত উত্পন্ন করে; যখন আরএসআই 48 এর নীচে থাকে এবং এমএসিডি মৃত ক্রস ঘটে তখন এটি বিক্রয় সংকেত উত্পন্ন করে। ভুয়া সংকেতগুলি ফিল্টার করার জন্য, এটি স্টোক্যাস্টিকগুলি ওভারবয় বা ওভারসোল্ড কিনা তাও সনাক্ত করে। স্টপলস জন্য, এটি এটিআর ভিত্তিক পরামিতি গণনা করে অভিযোজনশীল স্টপলস উপলব্ধি করতে, যা কার্যকরভাবে একক স্টপলস ঝুঁকি নিয়ন্ত্রণ করতে পারে।

সুবিধা

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

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

ঝুঁকি

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

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

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

এই কৌশল নিম্নলিখিত দিক থেকে অপ্টিমাইজ করা যেতে পারেঃ

  1. সর্বোত্তম সমন্বয় খুঁজে পেতে মাল্টিফ্যাক্টর মডেলের সূচকগুলির ওজন সামঞ্জস্য করুন

  2. মাল্টি ফ্যাক্টর মডেলকে সমৃদ্ধ করার জন্য সিসিআই, অস্থিরতা ইত্যাদির মতো আরও সূচক পরীক্ষা করুন

  3. আরও পণ্য এবং চক্রের জন্য প্যারামিটার সেটিংস অপ্টিমাইজ করুন

  4. সর্বোত্তম সমন্বয় খুঁজে পেতে বিভিন্ন স্টপলস কৌশল চেষ্টা করুন

  5. মেশিন লার্নিং ড্রাইভ সক্ষম করতে মডেল প্রশিক্ষণ এবং কৌশল মূল্যায়ন মডিউল যোগ করুন

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

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


/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="TradersAI_UTBot", overlay = true)
// CREDITS to @HPotter for the orginal code. 
// CREDITS to @Yo_adriiiiaan for recently publishing the UT Bot study based on the original code - 
// I just added some simple code to turn it into a strategy so that you all can backtest it to see the results for yourself! 
// Use this strategy on your favorite instrumnet and timeframe, with your favorite settings
// While @Yo_adriiiiaan mentions it works best on a 4-hour timeframe or above, 
// I am  happy to share here this working on a 15-minute chart on e-mini S&P 500 Index (using the KeyValue setting at 10)
// I am sure different people would discover different settings that work best for their preferred instrumnet/timeframe etc. 
// Play with it and enjoy! And, don't forget to share any positive results you might get! Good luck with your trading!

SOURCE = input(hlc3)
RSILENGTH = input(14, title = "RSI LENGTH")
RSICENTERLINE = input(52, title = "RSI CENTER LINE")
MACDFASTLENGTH = input(7, title = "MACD FAST LENGTH")
MACDSLOWLENGTH = input(12, title = "MACD SLOW LENGTH")
MACDSIGNALSMOOTHING = input(12, title = "MACD SIGNAL SMOOTHING")
a = input(10, title = "Key Vaule. 'This changes the sensitivity'") 
SmoothK = input(3)
SmoothD = input(3)
LengthRSI = input(14)
LengthStoch = input(14)
RSISource = input(close) 
c = input(10, title="ATR Period")
xATR = atr(c)
nLoss = a * xATR
xATRTrailingStop = iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
     iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), 
     iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
pos =	iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
     iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
color = pos == -1 ? red: pos == 1 ? green : blue 
ema= ema(close,1)
above = crossover(ema,xATRTrailingStop )
below = crossover(xATRTrailingStop,ema)
buy = close > xATRTrailingStop and above 
sell = close < xATRTrailingStop and below
barbuy = close > xATRTrailingStop 
barsell = close < xATRTrailingStop 
plotshape(buy, title = "Buy", text = 'Buy', style = shape.labelup, location = location.belowbar, color= green,textcolor = white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= red,textcolor = white, transp = 0, size = size.tiny)
barcolor(barbuy? green:na)
barcolor(barsell? red:na)
alertcondition(buy, title='Buy', message='Buy')
alertcondition(sell, title='Sell', message='Sell')

if(buy)
    strategy.entry("UTBotBuy",strategy.long)
if(sell)
    strategy.entry("UTBotSell",strategy.short)

আরো