4
tập trung vào
1096
Người theo dõi

60 dòng mã để thực hiện một ý tưởng - chiến lược chọn đáy hợp đồng

Được tạo ra trong: 2022-03-19 14:37:08, cập nhật trên: 2024-12-02 21:32:02
comments   14
hits   2889

60 dòng mã để thực hiện một ý tưởng - chiến lược chọn đáy hợp đồng

Các chiến lược ưa chuộng thị trường biến động, chẳng hạn như chiến lược lưới và chiến lược Martingale, có những nhược điểm cố hữu. Các chiến lược tương tự đã được thử nghiệm trên thị trường hợp đồng ETH trong một thời gian. Tôi cũng thường trò chuyện và chia sẻ kinh nghiệm với những người chơi mới và cũ trên FMZ.COM. Về loại chiến lược này, có một điểm mà tôi rất đồng ý với những gì một người bạn đã nói. Nghĩa là, khi thực hiện các hợp đồng trong lĩnh vực tiền điện tử, rủi ro khi mua vào sẽ thấp hơn một chút so với rủi ro khi bán ra. Hay nói một cách đơn giản, mức giảm tệ nhất có thể là 0, nhưng lợi ích thì là vô hạn.

Vậy, liệu các chiến lược như Martingale và grid chỉ đi theo hướng dài hạn chứ không phải ngắn hạn, và phân bổ rủi ro bắt đáy trong phạm vi dài hạn có tốt hơn so với giao dịch song phương không? Ý tưởng này nghe có vẻ hay, nhưng không ai biết liệu nó có khả thi trong thực tế hay không. Nhưng ít nhất chúng ta có thể kiểm tra lại ý tưởng này. Vậy là chúng ta có chủ đề của bài viết hôm nay - thiết kế chiến lược chọn đáy hợp đồng.

Phát triển nhanh chóng dựa trên FMZ.COM

Mã để triển khai ý tưởng này thực sự rất đơn giản, nhờ vào tính linh hoạt của nền tảng, đóng gói giao diện, hệ thống kiểm tra ngược mạnh mẽ, v.v. Toàn bộ mã chỉ mất 60 dòng (vì tiêu chuẩn viết mã, nhiều chữ viết tắt không được sử dụng).

Thiết kế chiến lược rất đơn giản. Theo giá ban đầu khi bắt đầu logic, các lệnh mua được đặt theo các khoảng thời gian giảm dần. Nếu giá tiếp tục giảm, hãy tiếp tục đặt lệnh mua để tiếp tục câu đáy. Sau đó, đặt lệnh đóng dựa trên giá vị thế cộng với một khoản lợi nhuận chênh lệch nhất định và chờ vị thế được đóng. Nếu vị thế bị đóng, logic trên sẽ được lặp lại với giá hiện tại làm giá ban đầu. Chiến lược này không giữ vị thế bán khống mà chỉ giữ vị thế mua.

Mã nguồn chiến lược:

function cancelAll() {
    while (true) {
        var orders = _C(exchange.GetOrders)
        if (orders.length == 0) { 
            break 
        }
        for (var i = 0 ; i < orders.length ; i++) {
            exchange.CancelOrder(orders[i].Id, orders[i])
            Sleep(interval)
        }
    }
}

function getLong(arr, kind) {
    var ret = null 
    for (var i = 0 ; i < arr.length ; i++) {
        if (arr[i].Type == (kind == "pos" ? PD_LONG : ORDER_TYPE_BUY)) {
            ret = arr[i]
        }
    }
    return ret
}

function pendingBidOrders(firstPrice) {
    var index = 0
    var amount = baseAmount
    while (true) {
        var pos = _C(exchange.GetPosition)
        var price = firstPrice - index * baseSpacing
        amount *= ratio
        index++
        exchange.SetDirection("buy")
        exchange.Buy(price, amount)        
        if (pos.length != 0) {
            var longPos = getLong(pos, "pos")
            if (longPos) {
                exchange.SetDirection("closebuy")
                exchange.Sell(longPos.Price + profitTarget, longPos.Amount)
            }
        }
        while (true) {
            Sleep(interval)
            if (!getLong(_C(exchange.GetOrders), "orders")) {
                cancelAll()
                break
            }
            if (!getLong(_C(exchange.GetPosition), "pos")) {
                cancelAll()
                return 
            }
        }
    }
}

function main() {
    exchange.SetContractType(symbol)
    while (true) {
        pendingBidOrders(_C(exchange.GetTicker).Last)
    }
}

Thiết kế tham số cũng rất đơn giản:

60 dòng mã để thực hiện một ý tưởng - chiến lược chọn đáy hợp đồng

Chỉ có một vài thông số này.

Hãy xem hiệu ứng kiểm tra ngược của hàng chục dòng mã này

Chỉ cần thiết lập phạm vi thời gian kiểm tra ngược:

60 dòng mã để thực hiện một ý tưởng - chiến lược chọn đáy hợp đồng

Chạy thử nghiệm ngược:

60 dòng mã để thực hiện một ý tưởng - chiến lược chọn đáy hợp đồng

60 dòng mã để thực hiện một ý tưởng - chiến lược chọn đáy hợp đồng

Nó trông rất giống chiến lược lưới hoặc chiến lược kiểu Martin~. Những học viên mới bắt đầu học có sợ những chiến lược dài dòng và dễ nản lòng không? Một phần giới thiệu ngắn gọn và súc tích về các chiến lược sẽ phù hợp hơn, giúp bạn dễ dàng tiếp thu các ý tưởng chiến lược và học cách thiết kế logic.

Mã chiến lược chỉ dành cho mục đích học tập và nghiên cứu.