avatar of 发明者量化-小小梦 发明者量化-小小梦
fokus pada mesej peribadi
4
fokus pada
1271
Pengikut

Penerangan mekanisme ujian balik tahap simulasi kuantitatif pencipta

Dicipta dalam: 2017-02-07 13:04:57, dikemas kini pada: 2023-09-07 17:49:15
comments   34
hits   15002

Penerangan mekanisme ujian balik tahap simulasi kuantitatif pencipta


  • ### 1. Kaedah pengesahan semula

Inventor kuantitatif pengembalian dalam prosedur strategi adalah proses kawalan yang lengkap, prosedur adalah mengikut frekuensi tertentu tidak berhenti tinjauan. Setiap keadaan, data yang dikembalikan API perdagangan adalah mengikut panggilan masa, simulasi keadaan semasa operasi sebenar.

  • 2 Perbezaan antara pengesanan peringkat analog dan pengesanan peringkat cakera

    • #### Pengesanan semula tahap analog

    Analogik tahap pengesanan adalah mengikut data K-bar asas sistem pengesanan, mengikut algoritma tertentu dalam rangka yang terdiri daripada nilai tertinggi, terendah, harga pembukaan, dan harga penutupan Bar K-bar asas yang diberikan, untuk mensimulasikan ticker data yang disisipkan ke dalam siri masa Bar ini.

    • #### Pemantauan semula tahap cakera keras

    Pengembalian peringkat cakera adalah data peringkat ticker yang benar dalam urutan masa Bar. Untuk strategi berdasarkan data peringkat ticker, menggunakan pengembalian peringkat cakera lebih dekat dengan kebenaran. Pengembalian tahap cakera, ticker adalah data yang direkodkan secara sebenar, bukan dihasilkan secara simulasi.

  • 3. Analog tahap pengesanan semula - K-Line bawah

Pemantauan tahap cakera tidak mempunyai pilihan K-line asas (kerana data ticker adalah nyata, tidak menggunakan K-line asas untuk mensimulasikan penjanaan). Dalam pengemasan tahap simulasi, ticker yang dihasilkan secara simulasi berdasarkan data K-line. Data K-line ini adalah K-line asas. Dalam pengemasan tahap simulasi yang digunakan secara praktikal, kitaran K-line asas mestilah lebih kecil daripada kitaran API untuk mendapatkan K-line semasa menjalankan strategi.

  • ### 4. Bagaimana garisan K yang di bawah menghasilkan data ticker

Mekanisme untuk menghasilkan ticker analog pada K-line asas adalah sama seperti MT4.

Penerangan mekanisme ujian balik tahap simulasi kuantitatif pencipta Penerangan mekanisme ujian balik tahap simulasi kuantitatif pencipta Penerangan mekanisme ujian balik tahap simulasi kuantitatif pencipta Penerangan mekanisme ujian balik tahap simulasi kuantitatif pencipta

  • ### 5. Kod algoritma yang menghasilkan data ticker

Algoritma khusus untuk mensimulasikan data tick dari data K-line:

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
}

Oleh itu, apabila menggunakan pengesanan semula peringkat analog, harga akan berubah mengikut urutan masa.