avatar of 发明者量化-小小梦 发明者量化-小小梦
پر توجہ دیں نجی پیغام
4
پر توجہ دیں
1271
پیروکار

موجد کی مقداری سمولیشن لیول بیک ٹیسٹنگ میکانزم کی تفصیل

میں تخلیق کیا: 2017-02-07 13:04:57, تازہ کاری: 2023-09-07 17:49:15
comments   34
hits   15002

موجد کی مقداری سمولیشن لیول بیک ٹیسٹنگ میکانزم کی تفصیل


  • ### 1، ریٹرننگ فن تعمیر

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

  • 2، ینالاگ سطح کی بازیافت اور ریلڈ ڈسک سطح کی بازیافت کے درمیان فرق

    • #### سیمولیٹ سطح کی بازیافت

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

    • #### ریلڈ ڈسک کی سطح کی بازیافت

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

  • 3، analogue کی سطح کا پتہ لگانے کے طریقہ کار - نچلے K لائن

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

  • ### 4، کس طرح بیس لائن K ٹکر ڈیٹا پیدا کرتا ہے

بنیادی K لائن ایم ٹی 4 کے طور پر اسی طرح کی ایک ماڈل ٹکر پیدا کرنے کے لئے کام کرتا ہے.

موجد کی مقداری سمولیشن لیول بیک ٹیسٹنگ میکانزم کی تفصیل موجد کی مقداری سمولیشن لیول بیک ٹیسٹنگ میکانزم کی تفصیل موجد کی مقداری سمولیشن لیول بیک ٹیسٹنگ میکانزم کی تفصیل موجد کی مقداری سمولیشن لیول بیک ٹیسٹنگ میکانزم کی تفصیل

  • ### 5، ٹکر ڈیٹا پیدا کرنے کے لئے الگورتھم کوڈ

ٹیک اعداد و شمار کو ماڈل کرنے کے لئے بنیادی K لائن ڈیٹا کا الگورتھم:

function recordsToTicks(period, num_digits, records) {
    if (records.length == 0) {
        return []
    }
    var ticks = []
    var steps = [0, 2, 4, 6, 10, 12, 16, 18, 23, 25, 27, 29]
    var pown = Math.pow(10, num_digits)

    function pushTick(t, price, vol) {
        ticks.push([Math.floor(t), Math.floor(price * pown) / pown, vol])
    }

    for (var i = 0; i < records.length; i++) {
        var T = records[i][0]
        var O = records[i][1]
        var H = records[i][2]
        var L = records[i][3]
        var C = records[i][4]
        var V = records[i][5]
        if (V > 1) {
            V = V - 1
        }
        if ((O == H) && (L == C) && (H == L)) {
            pushTick(T, O, V)
        } else if (((O == H) && (L == C)) || ((O == L) && (H == C))) {
            pushTick(T, O, V)
        } else if ((O == C) && ((O == L) || (O == H))) {
            pushTick(T, O, V / 2)
            pushTick(T + (period / 2), (O == L ? H : L), V / 2)
        } else if ((C == H) || (C == L)) {
            pushTick(T, O, V / 2)
            pushTick(T + (period * 0.382), (C == L ? H : L), V / 2)
        } else if ((O == H) || (O == L)) {
            pushTick(T, O, V / 2)
            pushTick(T + (period * 0.618), (O == L ? H : L), V / 2)
        } else {
            var dots = []
            var amount = V / 11
            pushTick(T, O, amount)
            if (C > O) {
                dots = [
                    O - (O - L) * 0.75,
                    O - (O - L) * 0.5,
                    L,
                    L + (H - L) / 3.0,
                    L + (H - L) * (4 / 15.0),
                    H - (H - L) / 3.0,
                    H - (H - L) * (6 / 15.0),
                    H,
                    H - (H - C) * 0.75,
                    H - (H - C) * 0.5,
                ]
            } else {
                dots = [
                    O + (H - O) * 0.75,
                    O + (H - O) * 0.5,
                    H,
                    H - (H - L) / 3.0,
                    H - (H - L) * (4 / 15.0),
                    H - (H - L) * (2 / 3.0),
                    H - (H - L) * (9 / 15.0),
                    L,
                    L + (C - L) * 0.75,
                    L + (C - L) * 0.5,
                ]
            }
            for (var j = 0; j < dots.length; j++) {
                pushTick(T + period * (steps[j + 1] / 30.0), dots[j], amount)
            }
        }
        pushTick(T + (period * 0.98), C, 1)
    }
    return ticks
}

لہذا ، جب ہم سیمالٹ لیول ریٹرننگ کا استعمال کرتے ہیں تو ہم ٹائم سیریز پر قیمتوں میں تبدیلی کا سامنا کرتے ہیں۔