Trong lĩnh vực giao dịch định lượng, các công cụ giao dịch định lượng đơn giản và dễ sử dụng luôn là một trong những chìa khóa để đạt được tăng trưởng tài sản và quản lý rủi ro. Tuy nhiên, với sự cạnh tranh ngày càng tăng trên thị trường, các công cụ giao dịch truyền thống không còn đủ để đáp ứng nhu cầu thị trường thay đổi nhanh chóng. Để duy trì lợi thế cạnh tranh cho các nhà giao dịch định lượng trong thế giới tài sản kỹ thuật số liên tục phát triển, Ứng dụng di động FMZ đã thêm một tính năng mới đáng kể: Terminal giao dịch. Tính năng này sẽ không chỉ cải thiện hiệu quả giao dịch của bạn, mà còn trao quyền cho bạn thông qua các chương trình plugin tùy chỉnh để hỗ trợ giao dịch, bơm thêm sức sống mới vào sự nghiệp giao dịch của bạn.
Trên nền tảng giao dịch FMZ Quant, bạn có thể tải về FMZ Quant Mobile APP từTrang tải về ứng dụng di độngSau khi tải xuống và cài đặt, mở ứng dụng di động FMZ và đăng nhập bằng tài khoản FMZ của bạn.
Xin lưu ý rằng FMZ Quant được chia thànhFMZ.COMtrang web quốc tế vàFMZ.CNTrang web nội địa Trung Quốc (hỗ trợ các thị trường khác nhau). Khi đăng nhập, bạn cần chọn trang web tương ứng. Tài khoản cho các trang web khác nhau là độc lập và không thể hoán đổi.
FMZ Quantitative Trading Platform mobile APP trading terminal là một công cụ giao dịch định lượng bao gồm các API từ các sàn giao dịch lớn. Nó cho phép chuyển đổi nhanh giữa các sàn giao dịch khác nhau, và với sự giúp đỡ của các tính năng khác nhau của nền tảng FMZ, nó có thể thực hiện phân tích thu thập dữ liệu, giám sát dữ liệu thời gian thực, giao dịch hỗ trợ chương trình, hoạt động giao dịch bán tự động / thủ công v.v.
Sau khi đăng nhập vào FMZ Quant Mobile APP, bạn có thể thấy chức năng
Trước khi FMZ ra mắt thiết bị đầu cuối giao dịch APP di động của mình, phiên bản web của FMZ đã ra mắt tính năng này khá sớm.ít nhất một chương trình docker phải được triển khai. Điều này là do tất cả các yêu cầu thực tế được gửi đến sàn giao dịch được thực hiện từ docker, chứ không phải trên ứng dụng di động, an toàn hơn. Nó cũng tránh những nhược điểm như API KEY ràng buộc địa chỉ IP và không thể sử dụng khi IP di động thay đổi.
1. Giao diện chính của Terminal giao dịch:
Sau khi mở đầu cuối giao dịch, bạn có thể thấy giao diện chính của đầu cuối giao dịch. Nhấp vào khu vực trong khung màu đỏ sẽ mở các giao diện cấu hình
Khu vực thương mại:
Khu vực giao dịch hiển thị dữ liệu độ sâu thị trường; Các widget giao dịch có thể được thiết lập với giá lệnh, số lượng lệnh, hướng lệnh, đòn bẩy và các cài đặt khác.
Các tab dưới cùng của giao diện chính hiển thị thông tin như
Biểu đồ K-line:
Nếu bạn muốn xem biểu đồ K-line khi đặt hàng, một thiết kế chu đáo đã được thực hiện ở đây - một widget hiển thị gập lại mở ra biểu đồ K-line nhỏ của sản phẩm hiện tại.
Nếu bạn muốn xem biểu đồ đường K trong một khu vực lớn hơn, hiển thị hồ sơ giao dịch thị trường, thông tin sâu và nhiều hơn nữa, bạn có thể nhấp vào biểu tượng đường K này để chuyển sang trang biểu đồ đường K chuyên nghiệp.
Giao diện biểu đồ đường K chuyên nghiệp:
Giao diện biểu đồ đường K chuyên nghiệp cũng có thể được hiển thị trong chế độ cảnh quan:
Một plugin đầu cuối giao dịch có thể làm gì?
Các ngôn ngữ và công cụ lập trình nào được sử dụng để phát triển các plugin?
Anh có thể mua gì?
Trong cộng đồng FMZ, một người dùng đã đưa ra một yêu cầu như vậy:
Sử dụng js để đi qua tất cả các đồng tiền hợp đồng U của sàn giao dịch Binance, và mở một vị trí 10u (dài) cho mỗi loại tiền tệ.
Tiêu chuẩn này có thể được thực hiện với các plugin đầu cuối giao dịch thực sự, và chạy các chiến lược plugin trên đầu cuối giao dịch là miễn phí.
Hãy xem làm thế nào để thiết kế và thực hiện yêu cầu của người dùng.
Đầu tiên, chúng ta cần tạo một plugin giao dịch và thêm ba thông số vào chiến lược của nó:
Sau đó bắt đầu viết chương trình plugin:
function main() {
let exName = exchange.GetName()
if (exName != "Futures_Binance") {
return "not support!"
}
let apiBase = "https://fapi.binance.com"
if (isSimulate) {
apiBase = "https://testnet.binancefuture.com"
Log("Switch base address:", apiBase)
}
exchange.SetBase(apiBase)
try {
var obj = JSON.parse(HttpQuery(apiBase + "/fapi/v1/exchangeInfo"))
} catch (e) {
Log(e)
}
let pairs = []
for (var i in obj.symbols) {
if (obj.symbols[i]["status"] !== "TRADING" || obj.symbols[i]["quoteAsset"] !== "USDT") {
continue
}
let = pair = obj.symbols[i]["baseAsset"] + "_" + obj.symbols[i]["quoteAsset"]
pairs.push(pair)
}
let markets = _C(exchange.GetMarkets)
for (var i in pairs) {
// /*
// For testing purposes, only 10 varieties are opened here. If all varieties are needed, this comment content can be deleted.
if (i >= 9) {
break
}
// */
let pair = pairs[i]
exchange.SetCurrency(pair)
exchange.SetContractType("swap")
let ticker = exchange.GetTicker()
if (!ticker) {
continue
}
let = amountPrecision = markets[pair + ".swap"]["AmountPrecision"]
exchange.SetDirection("buy")
let amount = _N(qty / ticker.Last, amountPrecision)
if (amount > 0) {
exchange.Buy(-1, amount)
}
Sleep(100)
}
// Obtain all positions
let pos = exchange.IO("api", "GET", "/fapi/v2/positionRisk")
if (!pos) {
return
}
// View positions
return pos.filter(item => Number(item.positionAmt) != 0)
}
Sau khi plugin đầu cuối giao dịch được viết, nó có thể được kiểm tra:
Trong đầu cuối giao dịch của ứng dụng di động, nhấp vào nút
Sau khi hoàn thành hoạt động trên APP di động, chúng tôi sử dụng mã sau đây để truy vấn vị trí của bot mô phỏng của Binance:
function main() {
let apiBase = "https://testnet.binancefuture.com"
exchange.SetBase(apiBase)
let pos = exchange.IO("api", "GET", "/fapi/v2/positionRisk")
if (!pos) {
return
}
// View positions
return pos.filter(item => Number(item.positionAmt) != 0)
}
Dữ liệu được tìm thấy:
[{
"symbol": "ETCUSDT",
"entryPrice": "16.17",
"unRealizedProfit": "0.08567881",
"positionSide": "LONG",
"updateTime": 1698420908103,
"isolated": false,
"breakEvenPrice": "16.176468",
"leverage": "20",
"adlQuantile": 3,
"positionAmt": "0.65",
"markPrice": "16.30181356",
"liquidationPrice": "0",
"maxNotionalValue": "400000",
"marginType": "cross",
"notional": "10.59617881",
"isolatedMargin": "0.00000000",
"isAutoAddMargin": "false",
"isolatedWallet": "0"
}, {
"positionAmt": "105",
"markPrice": "0.09371526",
"liquidationPrice": "0",
"leverage": "20",
"maxNotionalValue": "90000",
"positionSide": "LONG",
"isolatedWallet": "0",
"symbol": "TRXUSDT",
"updateTime": 1698420906668,
"breakEvenPrice": "0.094497784",
"isolatedMargin": "0.00000000",
"isolated": false,
"entryPrice": "0.09446",
"adlQuantile": 1,
"unRealizedProfit": "-0.07819770",
"isAutoAddMargin": "false",
"notional": "9.84010230",
"marginType": "cross"
}, {
"unRealizedProfit": "-0.00974456",
"isAutoAddMargin": "false",
"notional": "9.97449543",
"isolatedWallet": "0.50309216",
"updateTime": 1698420905377,
"markPrice": "67.85371047",
"isolatedMargin": "0.49334760",
"adlQuantile": 2,
"symbol": "LTCUSDT",
"entryPrice": "67.92",
"liquidationPrice": "64.91958163",
"maxNotionalValue": "250000",
"positionSide": "LONG",
"isolated": true,
"positionAmt": "0.147",
"breakEvenPrice": "67.947168",
"leverage": "20",
"marginType": "isolated"
}, {
"liquidationPrice": "1613.23261508",
"marginType": "isolated",
"isolated": true,
"symbol": "ETHUSDT",
"entryPrice": "1784.27",
"markPrice": "1783.35661952",
"isAutoAddMargin": "false",
"positionSide": "LONG",
"notional": "8.91678309",
"leverage": "10",
"maxNotionalValue": "30000000",
"isolatedWallet": "0.89551774",
"adlQuantile": 1,
"positionAmt": "0.005",
"breakEvenPrice": "1784.983708",
"unRealizedProfit": "-0.00456690",
"isolatedMargin": "0.89095084",
"updateTime": 1698420900362
}, {
"positionAmt": "17.1",
"marginType": "cross",
"isolatedWallet": "0",
"adlQuantile": 2,
"liquidationPrice": "0",
"maxNotionalValue": "250000",
"positionSide": "LONG",
"isolated": false,
"symbol": "EOSUSDT",
"breakEvenPrice": "0.6432572",
"updateTime": 1698420904257,
"isolatedMargin": "0.00000000",
"isAutoAddMargin": "false",
"notional": "10.34550000",
"entryPrice": "0.643",
"markPrice": "0.60500000",
"unRealizedProfit": "-0.64980000",
"leverage": "20"
}, {
"isolated": false,
"adlQuantile": 1,
"liquidationPrice": "0",
"maxNotionalValue": "10000000",
"notional": "9.73993328",
"leverage": "20",
"updateTime": 1698420901638,
"symbol": "BCHUSDT",
"entryPrice": "250.0",
"markPrice": "243.49833219",
"isAutoAddMargin": "false",
"positionSide": "LONG",
"positionAmt": "0.040",
"breakEvenPrice": "250.1",
"isolatedMargin": "0.00000000",
"unRealizedProfit": "-0.26006671",
"marginType": "cross",
"isolatedWallet": "0"
}]
Có thể thấy rằng 6 vị trí đã được mở, điều này là bởi vì khi đặt lệnh thực tế trên robot mô phỏng, nó dễ dàng kích hoạt giá giới hạn; ngoài ra, do số tiền lệnh là 10U, nó dễ dàng kích hoạt giới hạn số tiền lệnh tối thiểu của các cặp giao dịch; do đó, một vài cặp giao dịch đã không được đặt hàng thành công. Nếu bạn cần sử dụng điều này trong thực tế, các tình huống thực tế hơn nên được xem xét để tối ưu hóa plugin này để sử dụng tốt hơn.
FMZ Quant Trading Platform thiết bị đầu cuối giao dịch ứng dụng di động có nhiều plugin thú vị.
https://www.fmz.com/upload/asset/16b436307a4ce5c246c2.mp4
Tính năng đầu cuối giao dịch mới của ứng dụng di động FMZ sẽ trở thành trợ lý mạnh mẽ của bạn trên thị trường tài sản kỹ thuật số, cho phép bạn đáp ứng linh hoạt hơn với biến động và cơ hội thị trường. Không còn giới hạn trong các chiến lược giao dịch truyền thống, thông qua các chương trình plugin tùy chỉnh, bạn có thể tạo ra các chiến lược giao dịch thông minh hơn, hiệu quả hơn phù hợp hơn với thị trường. Hãy bắt đầu chương mới thú vị này của giao dịch định lượng cùng nhau và nâng cao kỹ năng giao dịch và lợi nhuận của bạn.