KNN انکولی پیرامیٹرائزڈ ٹرینڈ ٹریکنگ کی حکمت عملی

MA KNN SMA
تخلیق کی تاریخ: 2024-11-29 10:54:49 آخر میں ترمیم کریں: 2024-11-29 10:54:49
کاپی: 0 کلکس کی تعداد: 517
1
پر توجہ دیں
1617
پیروکار

KNN انکولی پیرامیٹرائزڈ ٹرینڈ ٹریکنگ کی حکمت عملی

جائزہ

یہ حکمت عملی مشین لرننگ الگورتھم کے قریب قریب (KNN) پر مبنی ایک انکولی پیرامیٹرائزڈ رجحان ٹریکنگ سسٹم ہے۔ یہ حکمت عملی متحرک طور پر رجحان ٹریکنگ پیرامیٹرز کو ایڈجسٹ کرتی ہے اور ٹریڈنگ سگنل کو متحرک اوسط کے ساتھ مل کر پیدا کرتی ہے۔ یہ نظام حکمت عملی کے پیرامیٹرز کو خود بخود ایڈجسٹ کرنے کی صلاحیت رکھتا ہے تاکہ مارکیٹ کے ماحول میں تبدیلیوں کے مطابق حکمت عملی کی موافقت اور استحکام کو بہتر بنایا جاسکے۔ یہ حکمت عملی روایتی رجحان ٹریکنگ حکمت عملی کو بہتر بنانے کے لئے مشین لرننگ کے طریقوں کا استعمال کرتی ہے ، جس میں کوانٹم سرمایہ کاری کے شعبے میں ٹکنالوجی اور نئی تخلیقات کا امتزاج ہے۔

حکمت عملی کا اصول

اس حکمت عملی کا بنیادی اصول یہ ہے کہ تاریخی قیمت کے اعداد و شمار کا تجزیہ کرنے کے لئے کے این این الگورتھم کا استعمال کریں ، موجودہ مارکیٹ کی حالت کو تاریخی اعداد و شمار سے مماثلت کے حساب سے قیمتوں کے رجحان کی پیش گوئی کریں۔ عملی اقدامات مندرجہ ذیل ہیں:

  1. مشاہدہ ونڈو سائز اور K اقدار کو ترتیب دیں ، تاریخی قیمتوں کا ڈیٹا اکٹھا کریں تاکہ ایک خصوصیت ویکٹر تشکیل دیا جاسکے
  2. موجودہ قیمت سیریز اور تاریخی اعداد و شمار کے درمیان یوروپین فاصلے کا حساب لگائیں
  3. K سب سے زیادہ ملتے جلتے تاریخی قیمت سیریز کو قریبی ہمسایہ کے طور پر منتخب کریں
  4. اس کے بعد کی قیمتوں میں تبدیلی کا تجزیہ کریں
  5. منتقل اوسط کے ساتھ مل کر ، قریبی ہمسایہ نمونے کی اوسط قیمت میں تبدیلی کے مطابق تجارتی سگنل تیار کرنا جب K قریبی ہمسایہ نمونے کی اوسط قیمت مثبت ہوتی ہے اور موجودہ قیمت منتقل اوسط سے اوپر ہوتی ہے تو ، نظام ایک کثیر سگنل پیدا کرتا ہے۔ اس کے برعکس ، ایک خالی سگنل پیدا ہوتا ہے۔

اسٹریٹجک فوائد

  1. خود کو اپنانے کے قابل: KNN الگورتھم مارکیٹ کے ماحول میں تبدیلیوں کے مطابق پیرامیٹرز کو خود بخود ایڈجسٹ کرنے کے قابل ہے ، جس سے حکمت عملی کو زیادہ لچکدار بنایا جاسکتا ہے
  2. کثیر جہتی تجزیہ: مشین لرننگ الگورتھم اور تکنیکی اشارے کے ساتھ مل کر ، مارکیٹ تجزیہ کا ایک جامع نقطہ نظر فراہم کرتا ہے
  3. خطرہ کنٹرول معقول ہے: حرکت پذیر اوسط کے ذریعہ معاون تصدیق کے طور پر ، جعلی سگنل کے اثرات کو کم کیا گیا ہے
  4. کمپیوٹنگ منطق کی وضاحت: حکمت عملی کے نفاذ کا عمل شفاف ، سمجھنے اور بہتر بنانے میں آسان ہے
  5. پیرامیٹرز لچکدار: K قدر اور ونڈو سائز جیسے پیرامیٹرز کو مختلف مارکیٹ کے حالات کے مطابق ایڈجسٹ کیا جاسکتا ہے

اسٹریٹجک رسک

  1. اعلی کمپیوٹنگ پیچیدگی: KNN الگورتھم کو بہت سارے تاریخی اعداد و شمار کا حساب لگانا پڑتا ہے ، جو حکمت عملی پر عملدرآمد کی کارکردگی کو متاثر کرسکتا ہے
  2. پیرامیٹر حساسیت: K اقدار اور ونڈو سائز کے انتخاب سے حکمت عملی کی کارکردگی پر اہم اثر پڑتا ہے
  3. مارکیٹ کے ماحول پر انحصار: شدید اتار چڑھاؤ والے مارکیٹ کے ماحول میں ، تاریخی مماثلت کا حوالہ کم ہوسکتا ہے
  4. اوور فٹ ہونے کا خطرہ: تاریخی اعداد و شمار پر زیادہ انحصار سے حکمت عملی اوور فٹ ہوسکتی ہے
  5. تاخیر کا خطرہ: کافی تاریخی اعداد و شمار جمع کرنے کی ضرورت کی وجہ سے سگنل میں تاخیر ہوسکتی ہے

حکمت عملی کی اصلاح کی سمت

  1. خصوصیت انجینئرنگ کی اصلاح:
  • مزید تکنیکی اشارے شامل کریں
  • مارکیٹ کے جذبات کے اشارے متعارف کرانے
  • خصوصیت کو بہتر بنانے کے لئے معیاری طریقوں
  1. آپ کو کیا لگتا ہے؟
  • کے ڈی درخت جیسے ڈیٹا ڈھانچے کا استعمال کرتے ہوئے قریبی تلاش کو بہتر بنانا
  • متوازی حساب کتاب کا حصول
  • ڈیٹا اسٹوریج اور رسائی کو بہتر بنائیں
  1. خطرے پر قابو پانے میں اضافہ:
  • نقصان کو روکنے اور منافع لینے کا طریقہ کار شامل کریں۔
  • اتار چڑھاؤ کے فلٹرز متعارف کرائے جا رہے ہیں۔
  • متحرک پوزیشن مینجمنٹ سسٹم ڈیزائن
  1. پیرامیٹرز کو بہتر بنانے کے لئے:
  • K-value کے انتخاب کے لئے خود کو اپنانے
  • متحرک طور پر دیکھنے والی ونڈو کا سائز ایڈجسٹ کریں
  • اوسطاً چلنے والی سائیکل کو بہتر بنائیں
  1. سگنل جنریٹنگ میکانزم میں بہتری:
  • سگنل کی طاقت کی درجہ بندی کا نظام متعارف کرایا
  • ڈیزائن سگنل کی تصدیق کے طریقہ کار
  • بہتر انٹری اور آؤٹ ٹائمنگ

خلاصہ کریں۔

اس حکمت عملی میں روایتی تکنیکی تجزیہ حکمت عملی کو مشین لرننگ کے طریقوں کے ذریعہ بہتر بنانے کے لئے رجحان سے باخبر رہنے والی تجارت میں کے این این الگورتھم کو جدید انداز میں لاگو کیا گیا ہے۔ حکمت عملی میں مضبوط موافقت اور لچک ہے ، جو مارکیٹ کے ماحول کی حرکیات کے مطابق پیرامیٹرز کو ایڈجسٹ کرسکتی ہے۔ اگرچہ اعلی کمپیوٹنگ پیچیدگی اور پیرامیٹر حساسیت جیسے خطرات موجود ہیں ، لیکن معقول اصلاح اور خطرے سے متعلق کنٹرول اقدامات کے ذریعہ حکمت عملی میں ابھی بھی بہتر اطلاق کی قیمت ہے۔ سرمایہ کاروں کو مشورہ دیا جاتا ہے کہ وہ عملی طور پر مارکیٹ کی خصوصیات کے مطابق پیرامیٹرز کو ایڈجسٹ کرنے پر توجہ دیں اور دوسرے تجزیاتی طریقوں کے ساتھ مل کر تجارتی فیصلے کریں۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Trend Following Strategy with KNN", overlay=true,commission_value=0.03,currency='USD', commission_type=strategy.commission.percent,default_qty_type=strategy.cash)


// Input parameters
k = input.int(5, title="K (Number of Neighbors)", minval=1)  // Number of neighbors for KNN algorithm
window_size = input.int(20, title="Window Size", minval=1)  // Window size for feature vector calculation
ma_length = input.int(50, title="MA Length", minval=1)  // Length of the moving average

// Calculate moving average
ma = ta.sma(close, ma_length)

// Initialize variables
var float[] features = na
var float[] distances = na
var int[] nearest_neighbors = na

if bar_index >= window_size - 1  // Ensure there is enough historical data
    features := array.new_float(0)  // Keep only the current window data
    for i = 0 to window_size - 1
        array.push(features, close[i])

    // Calculate distances
    distances := array.new_float(0)  // Clear the array for each calculation
    for i = 0 to window_size - 1  // Calculate the distance between the current price and all prices in the window
        var float distance = 0.0
        for j = 0 to window_size - 1
            distance += math.pow(close[j] - array.get(features, j), 2)
        distance := math.sqrt(distance)
        array.push(distances, distance)

    // Find the nearest neighbors
    if array.size(distances) > 0 and array.size(distances) >= k
        nearest_neighbors := array.new_int(0)
        for i = 0 to k - 1
            var int min_index = -1
            var float min_distance = na
            for j = 0 to array.size(distances) - 1
                if na(min_distance) or array.get(distances, j) < min_distance
                    min_index := j
                    min_distance := array.get(distances, j)
            if min_index != -1
                array.push(nearest_neighbors, min_index)
                array.remove(distances, min_index)  // Remove the processed neighbor

    // Calculate the average price change of the neighbors
    var float average_change = 0.0
    if array.size(nearest_neighbors) > 0
        for i = 0 to array.size(nearest_neighbors) - 1
            var int index = array.get(nearest_neighbors, i)
            // Ensure index + 1 is within range
            if index + 1 < bar_index
                average_change += (close[index] - close[index + 1])
        average_change := average_change / array.size(nearest_neighbors)

    // Generate trading signals
    if average_change > 0 and close > ma
        strategy.entry("Long", strategy.long)
    else if average_change < 0 and close < ma
        strategy.entry("Short", strategy.short)