avatar of 发明者量化-小小梦 发明者量化-小小梦
fokus pada Pesan pribadi
4
fokus pada
1271
Pengikut

Deskripsi mekanisme pengujian ulang tingkat simulasi kuantitatif Inventor

Dibuat di: 2017-02-07 13:04:57, diperbarui pada: 2023-09-07 17:49:15
comments   34
hits   15002

Deskripsi mekanisme pengujian ulang tingkat simulasi kuantitatif Inventor


  • ### 1. Retesting arsitektur

Inventor kuantitatif feedback strategi program adalah proses kontrol yang lengkap, program adalah berdasarkan pada frekuensi tertentu survei terus menerus. Setiap situasi, transaksi API data yang dikembalikan adalah sesuai dengan waktu panggilan, simulasi kondisi saat operasi yang sebenarnya. Berada di tingkat onTick, bukan tingkat onBar dari sistem feedback lainnya.

  • 2. Perbedaan antara Analog dan Solid State

    • #### Pengembalian tingkat analog

    Analog tingkat pengukuran adalah berdasarkan data K-line dasar dari sistem pengukuran, sesuai dengan algoritma tertentu dalam kerangka yang terdiri dari nilai tertinggi, terendah, harga buka, dan harga tutup dari Bar K-line dasar yang diberikan, simulasi ticker data dimasukkan ke dalam urutan waktu Bar ini.

    • #### Pengembalian tingkat disk

    Pemantauan tingkat disk nyata adalah data tingkat ticker yang benar dalam urutan waktu Bar. Untuk strategi yang didasarkan pada data tingkat ticker, menggunakan pemantauan tingkat disk nyata lebih dekat dengan kebenaran. Ticker adalah data yang tercatat secara nyata, bukan simulasi yang dihasilkan.

  • 3 Analog level feedback mechanism - K-line dasar

Tidak ada pilihan K-line dasar untuk pengembalian tingkat disk (karena data ticker adalah nyata, tidak ada K-line dasar untuk simulasi). Dalam simulasi tingkat pengembalian, berdasarkan pada K-line data simulasi yang dihasilkan ticker. Data K-line adalah dasar K-line. Dalam penggunaan simulasi tingkat pengembalian, dasar K-line siklus harus lebih kecil dari siklus API mendapatkan K-line ketika menjalankan kebijakan. Jika tidak, karena dasar K-line siklus yang lebih besar, jumlah ticker yang dihasilkan tidak cukup, panggilan API untuk mendapatkan K-line dari periode yang ditentukan, data akan salah.

  • ### 4. Bagaimana K-line dasar menghasilkan data ticker

Mekanisme pembuatan ticker analog pada K-line dasar sama dengan MT4.

Deskripsi mekanisme pengujian ulang tingkat simulasi kuantitatif Inventor Deskripsi mekanisme pengujian ulang tingkat simulasi kuantitatif Inventor Deskripsi mekanisme pengujian ulang tingkat simulasi kuantitatif Inventor Deskripsi mekanisme pengujian ulang tingkat simulasi kuantitatif Inventor

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

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

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 karena itu, harga dalam urutan waktu akan bergeser saat menggunakan simulasi tingkat pengembalian.