এই কৌশলটি একটি মেশিন লার্নিং ভিত্তিক অভিযোজিত সুপারট্রেন্ড ট্রেডিং সিস্টেম যা উদ্বায়ীতা ক্লাস্টারিং, অভিযোজিত এটিআর ট্রেন্ড সনাক্তকরণ এবং কাঠামোগত এন্ট্রি / প্রস্থান প্রক্রিয়াগুলিকে একীভূত করে traditionalতিহ্যবাহী সুপারট্রেন্ড সূচকের নির্ভরযোগ্যতা বাড়ায়। মূল ধারণাটি মেশিন লার্নিং পদ্ধতির মাধ্যমে বাজারের উদ্বায়ীতা শ্রেণিবদ্ধকরণে, উপযুক্ত বাজারের অবস্থার মধ্যে প্রবণতা অনুসরণকারী ব্যবসায়গুলি সম্পাদন করে, ঝুঁকি নিয়ন্ত্রণের জন্য গতিশীল স্টপ-লস এবং লাভের স্তরগুলি ব্যবহার করে।
কৌশলটি তিনটি মূল উপাদান নিয়ে গঠিতঃ 1) ট্রেন্ডের দিকনির্দেশ এবং পালা পয়েন্ট নির্ধারণের জন্য এটিআর ভিত্তিক অভিযোজিত সুপারট্রেন্ড গণনা; 2) কে-মাঝারি ভিত্তিক অস্থিরতা ক্লাস্টারিং যা বাজারের অবস্থাকে উচ্চ, মাঝারি এবং নিম্ন অস্থিরতার পরিবেশে শ্রেণীবদ্ধ করে; 3) অস্থিরতার পরিবেশে ভিত্তি করে পৃথক ট্রেডিং নিয়ম। এটি উচ্চ অস্থিরতার অবস্থার মধ্যে সতর্কতা বজায় রেখে কম অস্থিরতার পরিবেশে ট্রেন্ডিং সুযোগগুলি সন্ধান করে। সিস্টেমটি ট্যাক্রসন্ডার এবং ট্যাক্রসওভার ফাংশনগুলি ব্যবহার করে প্রবণতা বিপরীত সংকেতগুলি ক্যাপচার করে, সুপারট্রেন্ড লাইনের তুলনায় মূল্য অবস্থানের সাথে মিলিত।
এই কৌশলটি প্রচলিত প্রযুক্তিগত বিশ্লেষণ পদ্ধতির সাথে মেশিন লার্নিং কৌশলগুলিকে একত্রিত করে একটি বুদ্ধিমান প্রবণতা অনুসরণকারী সিস্টেম তৈরি করে। এর মূল সুবিধা হ'ল এর অভিযোজনযোগ্যতা এবং ঝুঁকি নিয়ন্ত্রণের ক্ষমতা, অস্থিরতা ক্লাস্টারিংয়ের মাধ্যমে বুদ্ধিমান বাজার অবস্থা সনাক্তকরণ অর্জন। যদিও পরামিতি সংবেদনশীলতার মতো ঝুঁকি বিদ্যমান, ক্রমাগত অপ্টিমাইজেশন এবং পরিমার্জন বিভিন্ন বাজারের পরিবেশে স্থিতিশীল কর্মক্ষমতা বজায় রাখতে সহায়তা করতে পারে। লাইভ ট্রেডিংয়ে কৌশলটি বাস্তবায়নের সময় ব্যবসায়ীদের পরামিতি সংবেদনশীলতা পুরোপুরি পরীক্ষা করার এবং নির্দিষ্ট বাজারের বৈশিষ্ট্যগুলির উপর ভিত্তি করে অপ্টিমাইজ করার পরামর্শ দেওয়া হয়।
/*backtest start: 2025-01-09 00:00:00 end: 2025-01-16 00:00:00 period: 10m basePeriod: 10m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Adaptive SuperTrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200) // Import Indicator Components atr_len = input.int(10, "ATR Length", group="SuperTrend Settings") fact = input.float(3, "SuperTrend Factor", group="SuperTrend Settings") training_data_period = input.int(100, "Training Data Length", group="K-Means Settings") // Volatility Clustering volatility = ta.atr(atr_len) upper = ta.highest(volatility, training_data_period) lower = ta.lowest(volatility, training_data_period) high_volatility = lower + (upper-lower) * 0.75 medium_volatility = lower + (upper-lower) * 0.5 low_volatility = lower + (upper-lower) * 0.25 cluster = volatility >= high_volatility ? 0 : volatility >= medium_volatility ? 1 : 2 // SuperTrend Calculation pine_supertrend(factor, atr) => src = hl2 upperBand = src + factor * atr lowerBand = src - factor * atr prevLowerBand = nz(lowerBand[1]) prevUpperBand = nz(upperBand[1]) lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ? lowerBand : prevLowerBand upperBand := upperBand < prevUpperBand or close[1] > prevUpperBand ? upperBand : prevUpperBand int _direction = na float superTrend = na prevSuperTrend = superTrend[1] if na(atr[1]) _direction := 1 else if prevSuperTrend == prevUpperBand _direction := close > upperBand ? -1 : 1 else _direction := close < lowerBand ? 1 : -1 superTrend := _direction == -1 ? lowerBand : upperBand [superTrend, _direction] [ST, dir] = pine_supertrend(fact, volatility) // Entry Conditions longEntry = ta.crossunder(dir, 0) and cluster > 1 and close > ST shortEntry = ta.crossover(dir, 0) and cluster == 0 and close < ST // Stop Loss & Take Profit atr_mult = input.float(2, "ATR Multiplier for SL/TP", group="Risk Management") sl = atr_mult * ta.atr(atr_len) longStopLoss = close - sl longTakeProfit = close + (sl * 1.5) shortStopLoss = close + sl shortTakeProfit = close - (sl * 1.5) // Execute Trades if longEntry strategy.entry("Long", strategy.long) strategy.exit("Take Profit", from_entry="Long", limit=longTakeProfit, stop=longStopLoss) if shortEntry strategy.entry("Short", strategy.short) strategy.exit("Take Profit", from_entry="Short", limit=shortTakeProfit, stop=shortStopLoss) // Plot SuperTrend plot(ST, title="SuperTrend", color=dir > 0 ? color.green : color.red, linewidth=2) // Alerts alertcondition(longEntry, title="Long Entry Signal", message="Buy Signal - Trend Shift Up") alertcondition(shortEntry, title="Short Entry Signal", message="Sell Signal - Trend Shift Down")