avatar of 发明者量化-小小梦 发明者量化-小小梦
tập trung vào tin nhắn riêng tư
4
tập trung vào
1271
Người theo dõi

Mô tả cơ chế kiểm tra ngược cấp độ mô phỏng định lượng của Inventor

Được tạo ra trong: 2017-02-07 13:04:57, cập nhật trên: 2023-09-07 17:49:15
comments   34
hits   15002

Mô tả cơ chế kiểm tra ngược cấp độ mô phỏng định lượng của Inventor


  • ### 1, kiểm tra cấu trúc

Lịch trình chiến lược trong phản hồi định lượng của nhà phát minh là một quy trình kiểm soát hoàn chỉnh, chương trình được khảo sát liên tục theo một tần số nhất định. Các dữ liệu được trả về của API giao dịch theo từng trường hợp và theo thời điểm được gọi, mô phỏng tình huống thực tế khi hoạt động. thuộc cấp onTick, không phải là cấp onBar của các hệ thống phản hồi khác.

  • 2 Sự khác biệt giữa phản hồi ở mức độ tương tự và phản hồi ở mức độ cứng

    • #### Phản hồi ở cấp độ tương tự

    Đánh giá mô phỏng là mô phỏng dữ liệu ticker được chèn vào chuỗi thời gian của Bar theo dữ liệu K-line dưới của hệ thống đo lường, theo thuật toán nhất định trong khung cấu thành từ giá cao nhất, giá thấp nhất, giá mở và giá đóng của Bar K-line dưới.

    • #### Đánh giá lại ở mức đĩa cứng

    Phản hồi ở mức đĩa thực là dữ liệu ở mức ticker thực trong chuỗi thời gian của Bar. Đối với các chiến lược dựa trên dữ liệu ở mức ticker, sử dụng phản hồi ở mức đĩa thực gần gũi hơn với thực. Ticker là dữ liệu được ghi lại thực tế, không phải được tạo ra từ mô phỏng.

  • 3 - Analog Level Feedback - K-Line

Không có tùy chọn K-line cơ bản cho kết quả tra cứu ở cấp độ ổ cứng ((vì dữ liệu ticker là thực tế, không sử dụng K-line cơ bản để mô phỏng tạo ra)) Ticker được tạo ra dựa trên dữ liệu K-line được mô phỏng trong phản hồi cấp mô phỏng. Dữ liệu K-line này là K-line cơ bản. Trong thực tế sử dụng phản hồi cấp mô phỏng, chu kỳ K-line cơ bản phải nhỏ hơn chu kỳ API lấy K-line khi chiến lược chạy. Nếu không, do chu kỳ K-line cơ bản lớn hơn và số lượng ticker được tạo ra không đủ, dữ liệu sẽ bị lỗi khi gọi API lấy K-line của chu kỳ được chỉ định.

  • ### 4, Làm thế nào để dòng K dưới tạo ra dữ liệu ticker

Cơ chế tạo ticker mô phỏng của dòng K dưới cùng giống như MT4.

Mô tả cơ chế kiểm tra ngược cấp độ mô phỏng định lượng của Inventor Mô tả cơ chế kiểm tra ngược cấp độ mô phỏng định lượng của Inventor Mô tả cơ chế kiểm tra ngược cấp độ mô phỏng định lượng của Inventor Mô tả cơ chế kiểm tra ngược cấp độ mô phỏng định lượng của Inventor

  • ### 5. Mã thuật toán tạo ra dữ liệu ticker

Các thuật toán cụ thể để mô phỏng dữ liệu tick từ dữ liệu K-line dưới:

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
}

Do đó, khi sử dụng mô phỏng, giá sẽ dao động theo chuỗi thời gian.