[TOC]
Sau 9 năm công nghệ lặp đi lặp lại, nền tảng giao dịch định lượng đã được tái cấu trúc nhiều lần, mặc dù chúng tôi có thể không nhận thấy như người dùng. Trong hai năm qua, nền tảng đã được tối ưu hóa và nâng cấp nhiều về trải nghiệm người dùng, bao gồm nâng cấp toàn diện giao diện người dùng, phong phú hơn các công cụ giao dịch định lượng thường sử dụng, và thêm nhiều hỗ trợ dữ liệu quay lại.
Để thiết kế chính sách dễ dàng hơn, logic giao dịch rõ ràng hơn và dễ sử dụng hơn cho người mới bắt đầu, nền tảng đã nâng cấp giao diện API mà chính sách sử dụng. Sử dụng phiên bản mới nhất của người quản lý có thể bật các tính năng mới.
Vì vậy, qua bài viết này, hãy cùng chúng tôi xem qua những cập nhật nâng cấp giao diện và những thay đổi cần thiết để phù hợp với API hiện tại khi sử dụng các chính sách cũ.
Đối với việc thiết kế các chiến lược đa dạng, các chiến lược giám sát thị trường toàn thị trường. Giao diện thị trường tổng hợp này là rất cần thiết để giúp các chiến lược dễ dàng phát triển hơn và tránh lặp lại bánh xe. Các nhà phát minh của nền tảng giao dịch định lượng đã đóng gói các API như sàn giao dịch.
Nếu một sàn giao dịch không có giao diện này (một sàn giao dịch riêng lẻ), hãy gọiexchange.GetTickers()
Khi báo cáo sai: Không hỗ trợ.
Chức năng này không có bất kỳ tham số nào và sẽ trả về dữ liệu thị trường thực tế của tất cả các loại trong giao diện thị trường của sàn giao dịch.
exchange.GetTickers()
Chức năng này làexchange.GetTicker()
Các phiên bản yêu cầu đầy đủ của các hàm (xem kỹ, sự khác biệt giữa hai tên hàm chỉ là số đơn).
Chúng tôi đã thử nghiệm môi trường bằng OKX Live Simulator:
function main() {
exchange.IO("simulate", true)
var tickers = exchange.GetTickers()
if (!tickers) {
throw "tickers error"
}
var tbl = {type: "table", title: "test tickers", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
for (var i in tickers) {
var ticker = tickers[i]
tbl.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
}
LogStatus("`" + JSON.stringify(tbl) + "`")
return tickers.length
}
Tăngexchange.CreateOrder()
Các chức năng được xem là trọng tâm của việc nâng cấp này.exchange.CreateOrder()
Tính năng lớn nhất của hàm là chỉ định trực tiếp trong các tham số của hàm loại, hướng của đơn đặt hàng. Điều này không còn phụ thuộc vào các thiết lập giao dịch hiện tại của hệ thống.
Trong các trường hợp giao dịch đa dạng, sự phức tạp của thiết kế được giảm đáng kể trong các trường hợp đồng thời.exchange.CreateOrder()
Và chúng ta có 4 tham số là:symbol
、side
、price
、amount
。
Kiểm tra môi trường sử dụng OKX Futures Simulator:
function main() {
exchange.IO("simulate", true)
var id1 = exchange.CreateOrder("ETH_USDT.swap", "buy", 3300, 1)
var id2 = exchange.CreateOrder("BTC_USDC.swap", "closebuy", 70000, 1)
var id3 = exchange.CreateOrder("LTC_USDT.swap", "sell", 110, 1)
Log("id1:", id1, ", id2:", id2, ", id3:", id3)
}
Và chúng ta chỉ sử dụng 3 lần.exchange.CreateOrder()
Các lệnh tương lai được gọi theo ba loại khác nhau, theo các hướng khác nhau.
Tăngexchange.GetHistoryOrders()
Chức năng này được sử dụng để truy cập vào lịch sử giao dịch của một số loại, cũng cần hỗ trợ giao diện giao dịch.
Các giao diện được thực hiện bởi các sàn giao dịch khác nhau rất khác nhau để truy vấn lịch sử đơn đặt hàng:
Đối với các giao diện như vậy để đóng gói với mức độ tương thích tối đa, trong thực tế sử dụng cần phải xem xét liệu nó có phù hợp với nhu cầu, kỳ vọng của chính sách hay không.
Các thông tin chi tiết về các chức năng không được mô tả ở đây, bạn có thể xem hướng dẫn ngữ pháp trong tài liệu API:
https://www.fmz.com/syntax-guide#fun_exchange.gethistoryorders
Các thử nghiệm sử dụng môi trường thực tế tiền mặt của Bitcoin:
function main() {
var orders = exchange.GetHistoryOrders("ETH_USDT")
// 写入图表
var tbl = {type: "table", title: "test GetHistoryOrders", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
for (var order of orders) {
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
}
LogStatus("orders.length:", orders.length, "\n", "`" + JSON.stringify(tbl) + "`")
}
Phiên bản cũ của hàm lấy dữ liệu lưu trữ làexchange.GetPosition()
◎ Việc nâng cấp này đã thêm vào một chức năng lấy kho mới để phù hợp hơn với ngữ nghĩa đặt tên của hàm:exchange.GetPositions()
│ đồng thời vẫn tương thích / nâng cấp chức năng GetPosition │
Lưu ý rằng hai tên hàm chỉ khác nhau với một cuối s, vì GetPositions phù hợp hơn với ngữ nghĩa, nên đề nghị sử dụng GetPositions.
exchange.GetPositions()
Các hàm có ba dạng gọi:
exchange.GetPositions Khi không truyền bất kỳ tham số nào,Giao dịch / Mã hợp đồngCài đặt, yêu cầu tất cả các loại dữ liệu lưu trữ ở kích thước hiện tại.
exchange.GetPositions ((BTC_USD.swap
、ETH_USDT.swap
、ETH_USDT.quarter
Và rồi.
BTC_USD.swap: Hợp đồng bất kỳ giá trị nào của BTC.
ETH_USDT.swap: Hợp đồng vĩnh cửu U-bit của ETH.
ETH_USDC.swap: Hợp đồng vĩnh viễn USDC của ETH. (Ngoài USDT, bạn có thể chỉ định các loại tiền tệ khác, không nêu thêm)
ETH_USDT.quarter: tỷ lệ giao dịch U của ETH trong quý khoảng.
BTC_USD. BTC-USD-201226-24250-C: Hợp đồng quyền chọn tiền tệ tại chỗ của BTC.
exchange.GetPositions (
Một số sàn giao dịch đặc biệt phân chia các khía cạnh hợp đồng: USDT.futures_combo:Futures_Deribit là một sàn giao dịch tiền tệ. USD.futures_ff:Tỷ lệ giao dịch chứng khoán hỗn hợp của sàn giao dịch Futures_Kraken USD.swap_pf:Futures_Kraken là một sàn giao dịch chứng khoán hỗn hợp.
Đối với các kích thước không được hỗ trợ bởi giao diện API giao dịch, các cuộc gọi sẽ trả lại một giá trị trống.
Kiểm tra môi trường sử dụng OKX Futures Simulator:
function main() {
exchange.IO("simulate", true)
exchange.SetCurrency("BTC_USDT")
exchange.SetContractType("swap")
var p1 = exchange.GetPositions()
var p2 = exchange.GetPositions("BTC_USDT.swap")
var tbls = []
for (var positions of [p1, p2]) {
var tbl = {type: "table", title: "test GetPosition/GetPositions", cols: ["Symbol", "Amount", "Price", "FrozenAmount", "Type", "Profit", "Margin", "ContractType", "MarginLevel"], rows: []}
for (var p of positions) {
tbl.rows.push([p.Symbol, p.Amount, p.Price, p.FrozenAmount, p.Type, p.Profit, p.Margin, p.ContractType, p.MarginLevel])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
}
Khi truyền vàoexchange.GetPositions()
Các tham số của hàm làETH_USDT.swap
Trong khi đó, bạn có thể truy cập dữ liệu lưu trữ của các hợp đồng vĩnh cửu U-bit của ETH.
Khi không truyềnexchange.GetPositions()
Các tham số của hàm có thể lấy dữ liệu nắm giữ của tất cả các hợp đồng vĩnh cửu U-bit được đưa ra trực tuyến trên sàn giao dịch (vì cặp giao dịch hiện tại là BTC_USDT, hợp đồng là swap, theo cặp giao dịch hiện tại, yêu cầu phạm vi hợp đồng), tại thời điểm này tương đương với cuộc gọiexchange.GetPositions("USDT.swap")
, chỉ định một phạm vi yêu cầu.
Chức năng GetFundings được bổ sung để lấy tỷ lệ vốn của các hợp đồng vĩnh viễn trên sàn giao dịch tương lai. Chức năng có một ký hiệu tham số. Chức năng trả về một mảng cấu trúc Funding.
BTC_USDT.swap
│ Không truyền tham số hoặc hàm phạm vi truyền sẽ trả lại lỗi symbol tham số không được hỗ trợ.Chức năng hành độngexchange.GetTicker()
Việc nâng cấp này chủ yếu là để tăng các tham số symbol. Điều này cho phép chức năng này tách khỏi các cặp giao dịch hiện tại, thông tin giống hợp đồng trực tiếp theo các tham số được chỉ định, yêu cầu dữ liệu thị trường. Dễ dàng viết mã.
Các tham sốsymbol
Đối với các đối tượng giao dịchexchange
Có nhiều hình thức khác nhau:
AAA_BBB
, AAA cho biết là baseCurrency là đồng tiền giao dịch, BBB cho biết là quoteCurrency là đồng tiền định giá. Tên của đồng tiền đều được viết bằng chữ cái lớn.
Ví dụ: cặp giao dịch BTC_USDT.AAA_BBB.XXX
, AAA là đồng tiền giao dịch cơ sở, BBB là đồng tiền báo giá, và XXX là mã hợp đồng, ví dụ như giao dịch hợp đồng vĩnh viễn. Các tên tiền tệ đều được viết bằng chữ cái lớn và mã hợp đồng bằng chữ cái nhỏ.
Ví dụ: BTC_USDT.swap, hợp đồng vĩnh cửu U-bit của BTC.Các thử nghiệm trong môi trường thực sử dụng sàn giao dịch tương lai đồng xu:
var symbols = ["BTC_USDT.swap", "BTC_USDT.quarter", "BTC_USD.swap", "BTC_USD.next_quarter", "ETH_USDT.swap"]
function main() {
exchange.SetCurrency("ETH_USD")
exchange.SetContractType("swap")
var arr = []
var t = exchange.GetTicker()
arr.push(t)
for (var symbol of symbols) {
var ticker = exchange.GetTicker(symbol)
arr.push(ticker)
}
var tbl = {type: "table", title: "test GetTicker", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
for (var ticker of arr) {
tbl.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
}
LogStatus("`" + JSON.stringify(tbl) + "`")
return arr
}
Đơn giản hơn nữa, các thiết kế dữ liệu thị trường với một loạt các giống được chỉ định sẽ được đơn giản hóa.
Tương tự như hàm GetTickerexchange.GetDepth()
Chức năng này cũng đã thêm các tham số symbol.
Các thử nghiệm trong môi trường thực sử dụng sàn giao dịch tương lai đồng xu:
function main() {
exchange.SetCurrency("LTC_USD")
exchange.SetContractType("swap")
Log(exchange.GetDepth())
Log(exchange.GetDepth("ETH_USDT.quarter"))
Log(exchange.GetDepth("BTC_USD.swap"))
}
Tương tự như hàm GetTickerexchange.GetTrades()
Chức năng này cũng thêm tham số symbol. Có thể thực hiện chỉ định giống trực tiếp khi yêu cầu dữ liệu giao dịch thị trường.
Các thử nghiệm trong môi trường thực sử dụng sàn giao dịch tương lai đồng xu:
function main() {
var arr = []
var arrR = []
var symbols = ["LTC_USDT.swap", "ETH_USDT.quarter", "BTC_USD.swap"]
for (var symbol of symbols) {
var r = exchange.Go("GetTrades", symbol)
arrR.push(r)
}
for (var r of arrR) {
arr.push(r.wait())
}
var tbls = []
for (var i = 0; i < arr.length; i++) {
var trades = arr[i]
var symbol = symbols[i]
var tbl = {type: "table", title: symbol, cols: ["Time", "Amount", "Price", "Type", "Id"], rows: []}
for (var trade of trades) {
tbl.rows.push([trade.Time, trade.Amount, trade.Price, trade.Type, trade.Id])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
}
Tăng cấp này cũng phù hợp với thông quaexchange.Go()
Chức năng đồng thời gọi nền tảng API để truyền thông tin về giống được chỉ định bởi tham số symbol.
Các chức năng GetRecords đã thực hiện một sự thay đổi lớn trong lần này, ngoài việc hỗ trợ thông tin về các loại dữ liệu đường K được yêu cầu trực tiếp bởi các tham số biểu tượng. Các tham số period ban đầu được sử dụng để chỉ định chu kỳ đường K được giữ lại, và một tham số limit được thêm vào để chỉ định chiều dài đường K mong muốn trong thời gian yêu cầu. Đồng thời, tương thích với các phiên bản cũ của GetRecords.
exchange.GetRecords()
Cách gọi hàm:
Các thử nghiệm trong môi trường thực sử dụng sàn giao dịch tương lai đồng xu:
function main() {
exchange.SetCurrency("ETH_USDT")
exchange.SetContractType("swap")
var r1 = exchange.GetRecords()
var r2 = exchange.GetRecords(60 * 60)
var r3 = exchange.GetRecords("BTC_USDT.swap")
var r4 = exchange.GetRecords("BTC_USDT.swap", 60)
var r5 = exchange.GetRecords("LTC_USDT.swap", 60, 3000)
Log("r1相邻Bar时间差值:", r1[1].Time - r1[0].Time, "毫秒, Bar长度:", r1.length)
Log("r2相邻Bar时间差值:", r2[1].Time - r2[0].Time, "毫秒, Bar长度:", r2.length)
Log("r3相邻Bar时间差值:", r3[1].Time - r3[0].Time, "毫秒, Bar长度:", r3.length)
Log("r4相邻Bar时间差值:", r4[1].Time - r4[0].Time, "毫秒, Bar长度:", r4.length)
Log("r5相邻Bar时间差值:", r5[1].Time - r5[0].Time, "毫秒, Bar长度:", r5.length)
}
Các chức năng GetOrders cũng được thêm vàosymbol
Các tham số, có thể chỉ định một giống cụ thể, truy vấn các đơn đặt hàng chưa hoàn thành của giống đó; cũng hỗ trợ truy vấn các đơn đặt hàng chưa hoàn thành của tất cả các giống trong phạm vi kích thước được chỉ định.
exchange.GetOrders()
Các cách gọi hàm là:
Kiểm tra môi trường sử dụng OKX Futures Simulator:
function main() {
exchange.IO("simulate", true)
exchange.SetCurrency("BTC_USDT")
exchange.SetContractType("swap")
// 写入图表
var tbls = []
for (var symbol of ["null", "ETH_USDT.swap", "USDT.swap"]) {
var tbl = {type: "table", title: symbol, cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
var orders = null
if (symbol == "null") {
orders = exchange.GetOrders()
} else {
orders = exchange.GetOrders(symbol)
}
for (var order of orders) {
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
}
ETH_USDT.swap
Khi tham số, yêu cầu ETH tại USDT của các hợp đồng vĩnh cửu chưa hoàn thành (đặt hàng)."USDT.swap"
Khi yêu cầu tất cả các đơn đặt hàng chưa hoàn thành của USDT trong hợp đồng vĩnh cửu, bạn có thể tham gia vào các cuộc gọi trực tuyến của USDT.Vẫn tương thích với tên gọi hàm lấy lưu trữ cũ, cũng thêm tham số symbol để có thể chỉ định thông tin về các loại dữ liệu lưu trữ được yêu cầu cụ thể.exchange.GetPositions()
Có một số người nói rằng:
Đối vớiexchange.IO("api", ...)
Phương thức gọi hàm, nâng cấp cho tất cả các đối tượng giao dịch hỗ trợ chuyển trực tiếp đầy đủ các chức năng địa chỉ yêu cầu.
Ví dụ, bạn muốn gọi OKX:
GEThttps://www.okx.com/api/v5/account/max-withdrawal ccy: BTC
Hỗ trợ ghi địa chỉ cơ sở trực tiếphttps://www.okx.com
, không cần phải chuyển địa chỉ cơ sở trước khi gọi hàm IO.
Kiểm tra môi trường sử dụng OKX Futures Simulator:
function main() {
exchange.IO("simulate", true)
return exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC")
}
Sự nâng cấp này ảnh hưởng chủ yếu đếnexchange.GetOrder(id)
Các tham số của hàmid
, id thay đổi từ lệnh id của sàn giao dịch ban đầu thành một định dạng chuỗi chứa các loại giao dịch. Tất cả các lệnh được đóng gói trên nền tảng FMZ đều có định dạng này.
Ví dụ:
123456
Trước khi nâng cấp này, nếu bạn muốn gọi hàm GetOrder, thì ID lệnh được truyền là123456
。BTC-USDT
‖
Lưu ý rằng đây là mã loại giao dịch được đặt tên bởi sàn giao dịch, chứ không phải là cặp giao dịch được xác định bởi nền tảng FMZ.Sau khi nâng cấp,exchange.GetOrder(id)
Các hàm cần phải nhập thông số id được định dạng như sau:BTC-USDT,123456
。
Trước tiên, hãy giải thích tại sao chúng tôi thiết kế như vậy: Vì chức năng CreateOrder được nâng cấp để chỉ ra đơn hàng giống trực tiếp (các loại đơn hàng và các cặp giao dịch hiện tại có thể khác nhau, mã hợp đồng), nếu ID đơn hàng được trả về không chứa thông tin giống thì ID đơn hàng sẽ không được sử dụng. Vì không biết loại hàng đó là gì khi giao dịch cụ thể. Hầu hết các đơn hàng giao dịch, các đơn hàng rút tiền đều cần chỉ định các tham số mô tả mã giống.
Làm thế nào để kết hợp những ảnh hưởng này: Nếu lệnh đặt hàng được sử dụng bởi hàm exchange.IO trực tiếp gọi giao diện đặt hàng của sàn giao dịch để đặt hàng, giá trị trả về thường có biểu tượng gốc của sàn giao dịch (mã giống) và id lệnh gốc. Tương tự như vậy, nếu sử dụng giao diện đặt hàng được đóng gói trên nền tảng FMZ, chỉ cần xóa mã giống và dấu chấm khi cần sử dụng ID gốc của đơn đặt hàng, vì phần đầu của OrderId là mã giống giao dịch.
Việc nâng cấp nàyexchange.CancelOrder()
Tác động của hàmexchange.GetOrder()
Chức năng tương tự.
Việc nâng cấp nàyexchange.Buy()
Tác động của hàmexchange.GetOrder()
Chức năng tương tự.exchange.Buy()
Các chức năng trả về lệnh Id cho cấu trúc mới, ví dụ như ID trả về khi đặt hàng tương lai trên sàn giao dịch OKX:LTC-USDT-SWAP,1578360858053058560
。
Việc nâng cấp nàyexchange.Sell()
Tác động của hàmexchange.GetOrder()
Chức năng tương tự.exchange.Sell()
Các chức năng trả về lệnh Id cho cấu trúc mới, ví dụ như ID trả về khi đặt hàng tương lai trên sàn giao dịch OKX:ETH-USDT-SWAP,1578360832820125696
。
Chỉ các đối tượng giao dịch tương lai hỗ trợ chức năng này, với tên gọi exchange.GetPosition (), và thêm exchange.GetPositions (), cả hai hoạt động hoàn toàn phù hợp.
Định nghĩa cũ: exchange.GetPosition () hàm, không chỉ định bất kỳ tham số nào khi gọi, lấy dữ liệu nắm giữ của cặp giao dịch hiện tại, các hợp đồng cụ thể được đặt theo mã hợp đồng.
Điều chỉnh, sau khi thay đổi, định nghĩa mới: exchange.GetPosition () chức năng, không chỉ định bất kỳ tham số nào khi gọi, lấy giữ tất cả các giống các cặp giao dịch được thiết lập hiện tại, trong phạm vi kích thước được xác định bởi mã hợp đồng.
Ví dụ, cặp giao dịch hiện tại là BTC_USDT, mã hợp đồng là swap.
exchange.GetPosition() // 等价于调用 exchange.GetPosition("USDT.swap")
Chức năng này sẽ yêu cầu dữ liệu lưu trữ hợp đồng vĩnh cửu U của tất cả các loại tiền tệ.
Một, đối với các sàn giao dịch trực tiếp:
Định nghĩa cũ: exchange.GetOrders (), không chỉ định bất kỳ tham số nào khi gọi, lấy tất cả các lệnh chưa hoàn thành trong cặp giao dịch hiện tại.
Điều chỉnh, sau khi thay đổi, định nghĩa mới: exchange.GetOrders () hàm, không chỉ định bất kỳ tham số nào khi gọi, lấy là tất cả các giao dịch hiện tại cho các loại lệnh chưa hoàn thành.
2. Đối với sàn giao dịch tương lai:
Định nghĩa cũ: exchange.GetOrders () hàm, không chỉ định bất kỳ tham số nào khi được gọi, lấy tất cả các đơn đặt hàng chưa hoàn thành của các hợp đồng cụ thể được đặt theo mã hợp đồng.
Điều chỉnh, sau khi thay đổi, định nghĩa mới: exchange.GetOrders () chức năng, không chỉ định bất kỳ tham số nào khi gọi, lấy tất cả các đơn đặt hàng chưa hoàn thành trong phạm vi kích thước được xác định bởi mã hợp đồng.
Ví dụ, cặp giao dịch hiện tại là BTC_USD, mã hợp đồng là quarter.
exchange.GetOrders() // 等价于调用 exchange.GetOrders("USD.futures")
Chức năng này sẽ yêu cầu dữ liệu đơn đặt hàng chưa hoàn thành về tỷ lệ giao dịch tiền tệ của tất cả các loại tiền tệ.
Bản cập nhật này cho cấu trúc Ticker đã thêm một trường Symbol để ghi lại thông tin về loại cấu trúc Ticker hiện tại.exchange.GetTicker()
Các biểu tượng của các hàm được định dạng một cách hoàn toàn phù hợp.
Bản cập nhật này cho cấu trúc Order đã thêm một trường Symbol, định dạng trường tương tự như các cấu trúc khác.exchange.GetTicker()
Các biểu tượng của hàm được định dạng hoàn toàn giống nhau. Bản cập nhật này cũng sửa đổi các trường Id của cấu trúc Order để ghi lại thông tin giống, thông tin đặt hàng ban đầu theo định dạng mới.exchange.GetOrder()
Định nghĩa của lệnh Id trong hàm, không được mô tả thêm ở đây.
Bản cập nhật này cho cấu trúc Position đã thêm một trường Symbol, được định dạng theo định dạng tương tự như các cấu trúc khác.exchange.GetTicker()
Các biểu tượng của các hàm được định dạng một cách hoàn toàn phù hợp.
Chức năng GetFundings trả về một mảng cấu trúc Funding.
{
"Info": {...}, // 交易所资金费率接口原始应答数据
"Symbol": "BTC_USDT.swap", // FMZ平台定义的品种名称
"Interval": 28800000, // 8小时间隔,单位毫秒
"Time": 1729728000000, // 本期资金费率收取时间
"Rate": 0.0001, // 资金费率,即 0.01 %
}
Để đáp ứng nhu cầu của người dùng, nâng cấp này sẽ hỗ trợ khả năng tương thích với ổ đĩa thực và hệ thống tra cứu sẽ hoàn thành việc điều chỉnh trong vòng một tuần. Nếu mã chính sách cá nhân bị ảnh hưởng, xin vui lòng thay đổi điều chỉnh theo hướng dẫn của bài viết này.
Theo chính sách nâng cấp giao diện API của nền tảng này, các giao diện API trong hệ thống trả lời của nền tảng đã được cập nhật đồng bộ; Ngoài ra, hệ thống trả lời hỗ trợ thêm:
Chức năng thành viên đối với đối tượng giao dịch tương laiGetAccount
Trở lạiAccount
Cấu trúc đã được mở rộng.
Các hàm thành viên SetMarginLevel của đối tượng giao dịch tương lai đã được nâng cấp, thêm biểu tượng tham số.
Ví dụ thử nghiệm:
function main() {
exchange.SetCurrency("ETH_USDT")
exchange.SetContractType("swap")
// 当前交易对为ETH_USDT,合约代码为swap,设置杠杆值为10
exchange.SetMarginLevel(10)
// 直接指定交易对BTC_USDT,合约代码swap,设置杠杆值20
exchange.SetMarginLevel("BTC_USDT.swap", 20)
}
CtValCcy
Các đơn vị giá trị của một hợp đồng được ghi lại, đơn vị giá trị của một hợp đồng có thể là: BTC, USD, ETH, vv.CtVal
Ghi lại giá trị tương ứng của một hợp đồng trên sàn giao dịch với loại giao dịch đó, bằng đơn vịCtValCcy
Ví dụ:CtVal
Các bạn có thể tham khảo bài viết này.CtValCcy
"BTC" là một hợp đồng có giá trị 0.01 BTC.Wa-emmnn_Tôi nói chuyện với robot mới của tôi, ID trả về cũng có tên giao dịch, nghiên cứu lâu, và thông tin nhật ký sau khi đặt hàng không hiển thị bây giờ, cũng là vì bản cập nhật của người quản lý?
Thanh Trẻ/upload/asset/2ffc0f961149326b78aed.png Có phải vấn đề này là do bản cập nhật giao diện này không?
nhựa 希望exchange.Buy函数能增加开止损单的功能。。
NanSegPhía trước
Wa-emmnn_Được rồi.
Những nhà phát minh định lượng - những giấc mơ nhỏĐược rồi, hãy thử qua bên này nhé. Cám ơn bạn đã hỏi.
Wa-emmnn_Đúng vậy, extMsg1, extMsg2 không hiển thị.
Những nhà phát minh định lượng - những giấc mơ nhỏXin chào, Order ID là một thay đổi bắt buộc, vì nâng cấp trực tiếp chỉ định giống để đặt hàng, Order ID phải bao gồm thông tin giống, nếu không không có thể xác định được lệnh này là giống nào, không thể gọi khi rút ("vì hầu hết các sàn giao dịch cần chỉ định giống và chỉ định ID khi rút"). Bạn nói rằng thông tin sau lệnh không hiển thị, nghĩa là: exchange.Buy ((price, amount, extMsg1, extMsg2) khi gọi, extMsg1, extMsg2 không hiển thị trong nhật ký?
Những nhà phát minh định lượng - những giấc mơ nhỏXin chào, bạn gửi cài đặt giao dịch hiện tại, cặp giao dịch, cài đặt mã hợp đồng.
Nhà phát minh định lượngXin gửi chi tiết mã thử nghiệm và cấu hình vào đơn, kỹ sư sẽ trả lời bạn ngay lập tức.
Những nhà phát minh định lượng - những giấc mơ nhỏCác sàn giao dịch có một số sự khác biệt lớn và mức độ hỗ trợ khác nhau, điều này sẽ được nghiên cứu xem có khả thi hay không.
Những nhà phát minh định lượng - những giấc mơ nhỏNếu bạn có vấn đề, hãy gửi đơn xin việc hoặc để ý.