Tài nguyên đang được tải lên... tải...

Chiến lược cân bằng nền tảng bảng Python

Tác giả:Những nhà phát minh định lượng - những giấc mơ nhỏ, Tạo: 2020-02-05 10:02:03, Cập nhật: 2023-10-12 21:20:47

img

Chiến lược cân bằng nền tảng bảng Python

Phiên bản JavaScript

Địa chỉ chiến lược:https://www.fmz.com/strategy/345

Trong bài viết này, chúng ta cùng thực hành việc chuyển một chính sách JavaScript đơn giản. Bằng cách chuyển chính sách, các nhà phát minh đã làm quen hơn với việc gọi giao diện giao dịch định lượng nền tảng giao dịch, và hiểu được sự khác biệt nhỏ giữa các ngôn ngữ khác nhau khi phát triển chính sách nền tảng, trong thực tế các chính sách phiên bản JavaScript và chính sách phiên bản Python rất khác nhau, vì các cuộc gọi giao diện về cơ bản đều giống nhau.

Chiến lược hướng dẫn

Có một số người đã sử dụng JavaScript để viết bài viết này.

Điều này đòi hỏi phải xây dựng kho, ví dụ như tài khoản có 5.000 đô la, và một đồng xu, nếu giá trị của đồng xu lớn hơn số dư trong tài khoản là 5.000 và chênh lệch giá trị vượt quá mức định giá, ví dụ như đồng xu bây giờ có giá trị 6.000 đô la, bạn sẽ bán nó.

Các chiến lược rất đơn giản, các phiên bản JavaScript của mã cũng không dài, chỉ hơn 70 dòng; chuyển sang ngữ pháp đơn giản hơn các chiến lược ngôn ngữ Python, mã ngắn hơn, rất phù hợp với người mới bắt đầu học, trên nền tảng giao dịch định lượng của nhà phát minh có rất nhiều mã được chia sẻ bởi các nhà phát triển, hỗ trợ ngôn ngữ.JavaScript/C++/PythonVì vậy, việc nắm vững nhiều hơn một ngôn ngữ phát triển không chỉ hữu ích cho chiến lược học tập, nghiên cứu và phát triển mà còn giúp bạn hiểu rõ hơn về các giao diện API của nền tảng.

Mã chiến lược

'''backtest
start: 2019-12-01 00:00:00
end: 2020-02-01 11:00:00
period: 1m
exchanges: [{"eid":"OKEX","currency":"BTC_USDT","stocks":1}]
'''

InitAccount = None

def CancelPendingOrders():
    ret = False
    while True:
        orders = _C(exchange.GetOrders)
        if len(orders) == 0 :
            return ret

        for j in range(len(orders)):
            exchange.CancelOrder(orders[j].Id)
            ret = True
            if j < len(orders) - 1:
                Sleep(Interval)
    return ret 

def onTick():
    acc = _C(exchange.GetAccount)
    ticker = _C(exchange.GetTicker)
    spread = ticker.Sell - ticker.Buy
    diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2
    ratio = diffAsset / acc.Balance
    LogStatus("ratio:", ratio, _D())
    if abs(ratio) < threshold:
        return False
    if ratio > 0 :
        buyPrice = _N(ticker.Sell + spread, ZPrecision)
        buyAmount = _N(diffAsset / buyPrice, XPrecision)
        if buyAmount < MinStock:
            return False
        exchange.Buy(buyPrice, buyAmount, diffAsset, ratio)
    else :
        sellPrice = _N(ticker.Buy - spread, ZPrecision)
        sellAmount = _N(-diffAsset / sellPrice, XPrecision)
        if sellAmount < MinStock:
            return False 
        exchange.Sell(sellPrice, sellAmount, diffAsset, ratio)
    return True

def main():
    global InitAccount, LoopInterval
    InitAccount = _C(exchange.GetAccount)
    LoopInterval = max(LoopInterval, 1)
    while True:
        if onTick():
            Sleep(1000)
            CancelPendingOrders()
            Log(_C(exchange.GetAccount))
        Sleep(LoopInterval * 1000)

Mã bắt đầu

'''backtest
start: 2019-12-01 00:00:00
end: 2020-02-01 11:00:00
period: 1m
exchanges: [{"eid":"OKEX","currency":"BTC_USDT","stocks":1}]
'''

Đây là cấu hình kiểm tra lại, nghĩa là cấu hình kiểm tra lại (setting) được lưu dưới dạng mã, tự động được cấu hình theo cài đặt này khi kiểm tra lại. Phần này có thể được xóa, xóa, khi kiểm tra lại, bạn cần phải tự đặt thông tin cấu hình kiểm tra lại trên trang kiểm tra lại. Dữ liệu tham khảo:https://www.fmz.com/bbs-topic/859

Các tham số của chính sách này hoàn toàn phù hợp với phiên bản JavaScript, mã chính sách cũng được chuyển từng câu, cấu trúc chương trình không thay đổi và có thể so sánh từng câu, xem sự khác biệt giữa các chính sách được viết trong các ngôn ngữ khác nhau.

Kiểm tra lại

Cấu hình tham sốimg

Số liệu thống kêimg

img

Địa chỉ chiến lược:https://www.fmz.com/strategy/183374

Các chiến lược chỉ dành cho tham khảo học tập, thử nghiệm kiểm tra lại, có thể tối ưu hóa nâng cấp.


Có liên quan

Thêm nữa

Thiên đàng và tài sảnCon bò tốt đấy.