4
ফোকাস
1271
অনুসারী

উদ্ভাবকের পরিমাণগত সিমুলেশন স্তরের ব্যাকটেস্টিং প্রক্রিয়ার বর্ণনা

তৈরি: 2017-02-07 13:04:57, আপডেট করা হয়েছে: 2023-09-07 17:49:15
comments   34
hits   15002

উদ্ভাবকের পরিমাণগত সিমুলেশন স্তরের ব্যাকটেস্টিং প্রক্রিয়ার বর্ণনা


  • ### ১, ব্যাক-টেস্টিং আর্কিটেকচার

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

  • ২. অ্যানালগ এবং রিয়েল ডিস্ক লেভেলের মধ্যে পার্থক্য

    • #### অ্যানালগ-স্তরের প্রতিক্রিয়া

    সিমুলেশন স্তরের পুনরাবৃত্তি হল একটি অ্যালগরিদমের মাধ্যমে একটি প্রদত্ত বেসলাইন কে-লাইনের বারের সর্বোচ্চ, সর্বনিম্ন, খোলা এবং বন্ধের মানের মানের ফ্রেমওয়ার্কের মধ্যে, পুনরাবৃত্তি সিস্টেমের বেসলাইন কে-লাইনের ডেটা অনুসারে, টিকার ডেটা এই বারের টাইম সিকোয়েন্সের মধ্যে সন্নিবেশিত করে।

    • #### রিয়েল-ডিস্ক পর্যায়ের পুনরাবৃত্তি

    রিয়েল ডিস্ক লেভেল রিটার্নিং হল Bar এর টাইম সিকোয়েন্সের মধ্যে সত্যিকারের টিকার লেভেল ডেটা। টিকার লেভেল ডেটা ভিত্তিক কৌশলগুলির জন্য, রিয়েল ডিস্ক লেভেল রিটার্নিং ব্যবহার করা সত্যিকারের কাছাকাছি। রিয়েল-ডিস্ক লেভেলের রিটার্নিং, টিকারগুলি বাস্তব রেকর্ড করা ডেটা, সিমুলেশন-উত্পাদিত নয়।

  • ৩। অ্যানালগ স্তর প্রতিক্রিয়া প্রক্রিয়া - নীচের K লাইন

রিয়েল-ডিস্ক লেভেল রিটার্নিং কোন বেসলাইন K লাইন অপশন নেই (যেহেতু টিকার ডেটা বাস্তব, বেসলাইন K লাইন ব্যবহার করে মডেল তৈরি করা হয় না) । সিমুলেশন স্তরের পুনরুদ্ধারে, K-লাইন ডেটা ভিত্তিক সিমুলেশন দ্বারা উত্পন্ন টিকার। এই K-লাইন ডেটা হ’ল বেসলাইন K-লাইন। সিমুলেশন স্তরের পুনরুদ্ধারের ব্যবহারের ক্ষেত্রে, বেসলাইন K-লাইন পিরিয়ডটি কৌশলটি চালানোর সময় K-লাইন পাওয়ার জন্য API কল করার চেয়ে কম হওয়া উচিত। অন্যথায়, বেসলাইন K-লাইন পিরিয়ডের পরিমাণ বেশি এবং উত্পন্ন টিকার সংখ্যা কম হওয়ার কারণে, API নির্দিষ্ট পিরিয়ডের K-লাইন পাওয়ার জন্য কল করার সময় ডেটা ভুল হয়ে যায়। বড়-পিরিয়ড K-লাইন পুনরুদ্ধারের সময়, বড়-পিরিয়ড K-লাইন পিরিয়ডটি যথাযথভাবে সামঞ্জস্য করা যেতে পারে।

  • ### ৪, কিভাবে K-লাইন টিকার ডেটা তৈরি করে

নিম্ন স্তরের K-লাইনটি MT4 এর মতই অ্যানালগ টিকার তৈরি করে।

উদ্ভাবকের পরিমাণগত সিমুলেশন স্তরের ব্যাকটেস্টিং প্রক্রিয়ার বর্ণনা উদ্ভাবকের পরিমাণগত সিমুলেশন স্তরের ব্যাকটেস্টিং প্রক্রিয়ার বর্ণনা উদ্ভাবকের পরিমাণগত সিমুলেশন স্তরের ব্যাকটেস্টিং প্রক্রিয়ার বর্ণনা উদ্ভাবকের পরিমাণগত সিমুলেশন স্তরের ব্যাকটেস্টিং প্রক্রিয়ার বর্ণনা

  • ### ৫। অ্যালগরিদম কোড যা টিকার ডেটা তৈরি করে

টিক ডেটা মডেল করার জন্য নিম্নলিখিত অ্যালগরিদম ব্যবহার করা হয়ঃ

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
}

সুতরাং, সিমুলেশন স্তরের রিটার্নিং ব্যবহার করার সময় সময়সূচীর উপর দামের ঝাঁকুনি দেখা দেয়।