Sự khác biệt giữa API giao dịch tương lai hàng hóa và giao dịch tiền kỹ thuật số

Tác giả:Cỏ nhỏ, Tạo: 2019-09-21 17:37:21, Cập nhật: 2023-10-19 21:05:12

img

CTP tương lai hàng hóa và API tiền kỹ thuật số có sự khác biệt đáng kể, những người quen thuộc với giao dịch tiền kỹ thuật số không quen thuộc với giao dịch tương lai hàng hóa, không thể dễ dàng bắt chước trải nghiệm. Bài viết này sẽ tóm tắt sự khác biệt giữa chúng.

Dữ liệu lịch sử

CTP không cung cấp giao diện thị trường lịch sử, giao dịch lịch sử cần được giải quyết thông qua các nhà giao dịch. CTP không cung cấp cơ chế phục hồi giao dịch nếu không đăng nhập hoặc bị ngắt giao dịch gây mất dữ liệu thị trường. Chỉ có thể truy cập thị trường lịch sử thông qua dữ liệu của bên thứ ba.

Thỏa thuận khác

Các API tiền kỹ thuật số thường là REST và giao thức websocket, CTP được đóng gói nội bộ logic liên quan đến mạng, sử dụng giao thức FTD dựa trên giao thức TCP để giao tiếp với nền CTP.

  • Mô hình yêu cầu trả lời: khách hàng khởi động yêu cầu, nền CTP nhận và đáp ứng yêu cầu
  • Phương thức truyền thông phát thanh: Sau khi khách hàng đăng ký hợp đồng, CTP đưa thông tin về thị trường ra ngoài qua phát thanh.
  • Mô hình giao tiếp riêng tư: sau khi khách hàng ủy nhiệm một hợp đồng, thông tin đơn hàng, báo cáo giao dịch, v.v. được đẩy từ điểm đến điểm bởi CTP.

Tất cả các giao dịch và giao dịch lệnh trên giao thức CTP chỉ được thông báo khi có thay đổi, trong khi yêu cầu đặt hàng, tài khoản và giữ hàng là yêu cầu chủ động. Ba mô hình trên đều có hình thức tương tự trong API tiền kỹ thuật số.

Các dữ liệu khác nhau về độ chính xác

CTP có độ sâu chỉ mua bán một lần, phí giao dịch năm lần đắt tiền, tiền kỹ thuật số thường có thể đạt được độ sâu đầy đủ hoặc 200 lần. CTP không đẩy giao dịch thực, chỉ có thể đẩy lùi bằng cách giữ cổ phiếu thay đổi, trong khi API giao dịch tiền kỹ thuật số có thể nhận được giao dịch chi tiêu thực.

Các hạn chế truy cập khác nhau

Các sàn giao dịch tiền kỹ thuật số thường giới hạn 1 giây 10 lần. Đối với hầu hết các lệnh rút tiền, cũng không có yêu cầu đặc biệt. CTP có giới hạn nghiêm ngặt đối với các yêu cầu cần phải được đưa ra chủ động, thường là 2s một lần tương đối an toàn, cũng có yêu cầu về số lần rút tiền.

Độ ổn định

Các giao thức CTP rất ổn định, hầu như không có lỗi và các vấn đề mạng. Tiền kỹ thuật số nên ít hạn chế, thời gian giao dịch dài, bảo trì, sự chậm trễ dữ liệu, lỗi mạng rất phổ biến.

FMZ Quantify Platform CTP là một giao thức tốt nhất

CTP mặc định chế độ truy cập giao dịch giao diện như GetTicker, GetDepth, GetRecords đều có dữ liệu được lưu trữ để có được dữ liệu mới nhất, khi không có dữ liệu sẽ luôn chờ để có dữ liệu, vì vậy các chính sách có thể không sử dụng Sleep. Khi có thay đổi giao dịch, ticker, depth, records đều được cập nhật, khi gọi bất kỳ giao diện nào sẽ được trả về ngay lập tức, trạng thái giao diện đã được gọi được đặt trong chế độ chờ cập nhật, lần gọi tiếp theo cùng một giao diện, sẽ chờ cho dữ liệu mới trở lại.

Nếu bạn muốn truy cập dữ liệu mỗi lần truy cập thị trường, ngay cả dữ liệu cũ, bạn có thể chuyển sang chế độ cập nhật thị trường ngay lập tức.exchange.IO("mode", 0) ; tại thời điểm này, chính sách không thể được viết như một sự kiện được điều khiển, cần thêm một sự kiện Sleep để tránh một vòng chết nhanh chóng. Một số chính sách không tần suất cao có thể sử dụng mô hình này, thiết kế chính sách đơn giản.使用exchange.IO("mode", 1) có thể cắt lại chế độ lưu trữ mặc định.

Khi điều hành một hợp đồng duy nhất, bạn có thể sử dụng chế độ mặc định. Nhưng nếu nhiều hợp đồng, có thể một hợp đồng không cập nhật thị trường, dẫn đến việc truy cập giao diện thị trường bị tắc nghẽn, và các hợp đồng khác cũng không cập nhật thị trường. Để giải quyết vấn đề này, bạn có thể sử dụng chế độ cập nhật ngay lập tức, nhưng không dễ dàng viết chiến lược tần suất cao.设置方式为exchange.IO("wait");; Nếu thêm nhiều đối tượng giao dịch, điều này hiếm khi xảy ra trong tương lai hàng hóa, bạn có thể đặt một đối tượng khác vào giao dịch.可以使用exchange.IO"Wait_any"), trong đó chỉ số được trả về sẽ chỉ ra chỉ số của sàn giao dịch được trả về.

Tiến hành tick thay đổi đẩy: {Event: tick tick, Index: index của sàn giao dịch (được thêm theo thứ tự của sàn giao dịch robot), Nano: thời gian ở cấp độ nano giây, Symbol: tên hợp đồng} Đẩy lệnh: {Event: order , Index: index của sàn giao dịch, Nano: thời gian ở cấp độ nano giây của sự kiện, Order: thông tin đặt hàng ((đối với GetOrder) }

Khi đó, cấu trúc chiến lược có thể được viết như sau:

function on_tick(symbol){
    Log("symbol update")
    exchange.SetContractType(symbol)
    Log(exchange.GetTicker())
}

function on_order(order){
    Log("order update", order)
}

function main(){
    while(true){
        if(exchange.IO("status")){ //判断链接状态
            exchange.IO("mode", 0)
            _C(exchange.SetContractType, "MA888")//订阅MA,只有第一次是真正的发出订阅请求,接下来都是程序切换,不耗时间。
            _C(exchange.SetContractType, "rb888")//订阅rb
            while(True){
                var e = exchange.IO("wait")
                if(e){
                    if(e.event == "tick"){
                        on_tick(e.Symbol)
                    }else if(e.event == "order"){
                        on_order(e.Order)
                    }
                }
           }
        }else{
            Sleep(10*1000)
        }
    }
}

Có liên quan

Thêm nữa