Tóm lại: Bạn có thể sử dụng order.Info.detail để tìm kiếm giá trung bình giao dịch của đơn đặt hàng trên trang web đĩa đơn wex.app[0].price thay thế cho order.AvgPrice. Khi viết mã, bạn có thể kiểm tra mua và bán thông qua công cụ lập trình và so sánh thông tin đặt hàng lịch sử của wex.app để điều chỉnh mã chiến lược.
Tuyên bố: Mục đích của bài viết này chỉ là ghi lại các vấn đề trong quá trình viết mã, quá trình học và giải pháp. Cảm ơn các nhà phát minh đã cung cấp cho tôi một đĩa mô phỏng wex.app, cho phép tôi thử nghiệm nhiều chiến lược.
Bài viết này sử dụng công cụ debug của trang web của nhà phát minh để kiểm tra các lệnh giá thị trường mua bán trên trang web đĩa ảo wex.app và truy vấn thông tin về các đơn đặt hàng. Các kết quả cụ thể như sau:
Một, mua thử.
(I) Mã thử nghiệm
function main(){
var account = exchange.GetAccount();
var preAccount = account;// ghi lại trạng thái của tài khoản trước khi mua
Log(preAccount);
var id = exchange.Buy ((-1, 50);// chi 50 usdt để mua BTC với giá thị trường
Log(id);
if(id!=null){
var order = exchange.GetOrder(id);
Log(order);
account = exchange.GetAccount (();// Tìm kiếm trạng thái tài khoản sau khi mua
Log(account);
}
}
(ii) Gửi lại thông tin Trước khi mua, thông tin tài khoản preAccount: { “Info”: { (Trong phần thông tin, có rất nhiều thông tin, nhưng chúng không ảnh hưởng đến phân tích của bài viết, vì vậy chúng tôi bỏ qua) }, “Stocks”: 0.8150649, “FrozenStocks”: 0, “Balance”: 5759.396067057396, “FrozenBalance”: 204954.226021164 }
Sau khi mua, thông tin tài khoản: { “Info”: { (Bộ thông tin này bị bỏ qua) }, “Stocks”: 0.81682151, “FrozenStocks”: 0, “Balance”: 5709.396268085276, “FrozenBalance”: 204954.226021164 }
Chúng tôi đã so sánh dữ liệu tài khoản trước và sau khi mua và thấy rằng: 1, số dư tài khoản giảm 50 usdt. 2, số tiền của các cổ phiếu tăng 0,00175661 BTC.
order trả về dữ liệu như sau: { “Info”: { “account”: “exchange”, “side”: “bid”, “tx”: “49.9623272267”, “detail”: [{ “id”: 62138365, “price”: “28442.47”, “time”: 1609311663795, “amount”: “0.00175661”, “fee”: “0.037471745420025”, “fee_price”: “0.0”, “fee_replace”: “0.0” }], “fee_replace”: “0.0”, “time”: 1609311663795, “deal_amount”: “0.00175661”, “deleted”: 1609311663795, “remain”: “0.0”, “fee_symbol”: “EVE”, “id”: 201005081, “market”: “BTC_USDT”, “price”: “50.0”, “status”: “closed”, “amount”: “0.0”, “client”: “api”, “fee”: “0.037471745420025”, “type”: “market” }, “Id”: 201005081, “Amount”: 0, “Price”: 50, “DealAmount”: 0.00175661, “AvgPrice”: 0, “Status”: 1, “Type”: 0, “Offset”: 0, “ContractType”: “” }
Dựa trên thông tin về đơn đặt hàng mà wex.app trả về, chúng tôi nhận thấy: 1 , đơn hàng đã được giao, status là 1 2, số tiền giao dịch là 0.00175661, phù hợp với giá trị thay đổi trước và sau tài khoản. 3, So sánh thông tin lịch sử đơn đặt hàng trên trang web wex.app và thấy: Tổng số giao dịch là 49.9623272267 USD Giá trung bình giao dịch là Info.detail[0].price=28442.47 Tổng số giao dịch là Info.detail[0 .amount = 0.00175661 BTC Tổng chi phí là Info.detail[0].fee=0.037471745420025 USDT
Giá trung bình giao dịch = tổng giao dịch / tổng giao dịch: 49.9623272267⁄0.00175661=28442.47 Tỷ lệ phí xử lý = Tổng phí xử lý / Tổng khối lượng giao dịch 0.037471745420025/49.9623272267=0.00075
Một vấn đề là nếu bạn lấy số tiền ủy thác và trừ đi tổng số giao dịch, thì chênh lệch sẽ lớn hơn một chút so với tổng phí xử lý: 50-49.9623272267=0.0376727733 0.0376727733-0.037471745420025=0.000201028 Không biết chênh lệch này ở đâu? Có thể liên quan đến phương pháp tính toán của đơn đặt hàng. Trong trường hợp thông thường, lỗi này có thể được bỏ qua.
B. Thử và bán.
(I) Mã thử nghiệm
function main(){
var account = exchange.GetAccount();
var preAccount = account;// ghi lại trạng thái tài khoản trước khi bán
Log(preAccount);
var id = exchange.Sell ((-1, 0.001);// bán 0.001 BTC với giá thị trường
Log(id);
if(id!=null){
var order = exchange.GetOrder(id);
Log(order);
account = exchange.GetAccount (();// Tìm kiếm trạng thái tài khoản sau khi bán
Log(account);
}
}
(ii) Gửi lại thông tin Trước khi mua, thông tin tài khoản preAccount: { “Info”: { (Bộ thông tin này bị bỏ qua) }, “Stocks”: 0.81682151, “FrozenStocks”: 0, “Balance”: 5752.887638167275, “FrozenBalance”: 204910.734651082 }
Sau khi mua, thông tin tài khoản: { “Info”: { (Bộ thông tin này bị bỏ qua) }, “Stocks”: 0.81582151, “FrozenStocks”: 0, “Balance”: 5781.260102847275, “FrozenBalance”: 204910.734651082 }
Chúng tôi đã so sánh dữ liệu tài khoản trước và sau khi mua và thấy rằng: 1, số dư tài khoản đã tăng 28.37246468 usdt. 2, số lượng đồng xu (Stocks) giảm 0,001 BTC.
order trả về dữ liệu như sau: { “Info”: { “account”: “exchange”, “price”: “0.0”, “client”: “api”, “deleted”: 1609313057270, “fee_symbol”: “EVE”, “status”: “closed”, “time”: 1609313057270, “tx”: “28.39376”, “type”: “market”, “amount”: “0.001”, “detail”: [{ “time”: 1609313057270, “amount”: “0.001”, “fee”: “0.02129532”, “fee_price”: “0.0”, “fee_replace”: “0.0”, “id”: 62140121, “price”: “28393.76” }], “fee_replace”: “0.0”, “id”: 201015506, “remain”: “0.0”, “deal_amount”: “0.001”, “fee”: “0.02129532”, “market”: “BTC_USDT”, “side”: “ask” }, “Id”: 201015506, “Amount”: 0.001, “Price”: 0, “DealAmount”: 0.001, “AvgPrice”: 0, “Status”: 1, “Type”: 1, “Offset”: 0, “ContractType”: “” }
Dựa trên thông tin về đơn đặt hàng mà wex.app trả về, chúng tôi nhận thấy: 1 , đơn hàng đã được giao, status là 1 2, số tiền giao dịch là 0.001, phù hợp với giá trị thay đổi trước và sau tài khoản. 3, So sánh thông tin lịch sử đơn đặt hàng trên trang web wex.app và thấy: Tổng số giao dịch là 28.39376 USD. Giá trung bình giao dịch là Info.detail[0].price=28393.76 Tổng số giao dịch là Info.detail[0 .amount = 0.001 BTC Tổng chi phí là Info.detail[0].fee = 0.021295325 USDT
Giá trung bình giao dịch = tổng giao dịch / tổng giao dịch: 28.39376⁄0.0011=28393.76 Tỷ lệ phí xử lý = Tổng phí xử lý / Tổng khối lượng giao dịch 0.021295325/28.39376=0.00075
Chúng ta có thể tính phí xử lý từ một góc độ khác, bằng cách sử dụng giá trị thay đổi của số dư tài khoản (Balance) trừ tổng số giao dịch: 28.37246468-28.39376-=-0.02129532 Có một lỗi rất nhỏ, có lẽ là do một số chữ số nhỏ bị cắt, có thể bỏ qua.