یہ حکمت عملی مشین لرننگ پر مبنی موافقت پذیر سپر ٹرینڈ ٹریڈنگ سسٹم ہے جو اتار چڑھاؤ کے گروپ ، موافقت پذیر اے ٹی آر ٹرینڈ کا پتہ لگانے ، اور منظم اندراج / خارجی میکانزم کو مربوط کرکے روایتی سپر ٹرینڈ اشارے کی وشوسنییتا کو بڑھا دیتا ہے۔ بنیادی تصور مشین لرننگ کے طریقوں کے ذریعہ مارکیٹ کی اتار چڑھاؤ کی درجہ بندی میں ہے ، مناسب مارکیٹ کے حالات میں رجحان کی پیروی کرنے والی تجارتوں کو انجام دیتا ہے ، جبکہ خطرہ کنٹرول کے لئے متحرک اسٹاپ نقصان اور منافع لینے کی سطح کو استعمال کرتا ہے۔
اس حکمت عملی میں تین اہم اجزاء شامل ہیں: 1) رجحان کی سمت اور موڑ کے مقامات کا تعین کرنے کے لئے اے ٹی آر پر مبنی موافقت پذیر سپر ٹرینڈ حساب کتاب۔ 2) K-means پر مبنی اتار چڑھاؤ گروپنگ جو مارکیٹ کی حالت کو اعلی ، درمیانے اور کم اتار چڑھاؤ والے ماحول میں درجہ بندی کرتی ہے۔ 3) اتار چڑھاؤ والے ماحول پر مبنی مختلف تجارتی قوانین۔ یہ اعلی اتار چڑھاؤ کی حالت میں محتاط رہتے ہوئے کم اتار چڑھاؤ والے ماحول میں رجحان کے مواقع تلاش کرتا ہے۔ یہ سسٹم ta.crossunder اور ta.crossover افعال کا استعمال کرتے ہوئے رجحان الٹنے کے اشارے حاصل کرتا ہے ، جو سپر ٹرینڈ لائن کے سلسلے میں قیمت کی پوزیشن کے ساتھ مل کر ہوتا ہے۔
یہ حکمت عملی روایتی تکنیکی تجزیہ کے طریقوں کے ساتھ مشین لرننگ کی تکنیکوں کو جوڑ کر ایک ذہین رجحان کی پیروی کرنے والا نظام تیار کرتی ہے۔ اس کے بنیادی فوائد اس کی موافقت اور رسک کنٹرول کی صلاحیتوں میں ہیں ، جو اتار چڑھاؤ کے گروپ کے ذریعہ مارکیٹ کی حالت کی ذہین شناخت کو حاصل کرتی ہے۔ اگرچہ پیرامیٹر حساسیت جیسے خطرات موجود ہیں ، لیکن مسلسل اصلاح اور بہتر بنانے سے مختلف مارکیٹ کے ماحول میں مستحکم کارکردگی برقرار رکھنے میں مدد مل سکتی ہے۔ تاجروں کو مشورہ دیا جاتا ہے کہ وہ براہ راست تجارت میں حکمت عملی کو نافذ کرتے وقت پیرامیٹر کی حساسیت کو مکمل طور پر جانچیں اور مخصوص مارکیٹ کی خصوصیات کی بنیاد پر اصلاح کریں۔
/*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")