Bạn mới sử dụng BitMEX? Đăng ký bằng liên kết của chúng tôi để được giảm 10% phí giao dịch của bạn:
https://www.bitmex.com/register/fMRfzN
BitMEX là một sàn giao dịch hoàn toàn bằng Bitcoin. Hầu hết các bạn thương nhân đều biết rằng sàn giao dịch này chỉ chấp nhận tiền gửi Bitcoin. Nó thanh toán tất cả lợi nhuận của bạn bằng XBT và nó chỉ hiển thị PnL đã phát hành / chưa phát hành của bạn trong XBT / BTC. Sẽ thật tuyệt nếu Bitmex hiển thị mệnh giá USD cho PnL của bạn cùng với các giá trị BTC?
Các hợp đồng hoán đổi vĩnh viễn XBTUSD, ETHUSD, XRPUSD phổ biến đều có tính chất nghịch đảo. Có nghĩa là chúng được định giá bằng USD. Tuy nhiên, tất cả PNL (Lãi và lỗ) của bạn được tính bằng Bitcoin. Ban đầu có thể khá khó hiểu vì nó không đơn giản như tính PnL của bạn trên thị trường giao ngay. Vì vậy, thật thông minh khi đổi tiền từ XBT sang USD để mọi thứ dễ dàng hơn. Đặc biệt điều này rất tốt cho những người dùng đang theo dõi PnL của họ bằng USD.
Hướng dẫn sau giải thích cách thêm mệnh giá USD vào cột PNL trên Bitmex.com của bạn.
Cách hiển thị BitMEX PnL bằng giá trị USD
Nền tảng giao dịch phái sinh Bybit hiển thị PNL bằng cả USD và BTC.
Mặc dù Bitmex không cung cấp tính năng này theo mặc định, chúng tôi vẫn có thể sử dụng trình cắm của trình duyệt để đánh dấu PnL bằng USD.
Để triển khai điều này, chúng tôi sẽ cần hai thứ: 1. Tiện ích mở rộng trình duyệt của bên thứ ba và 2. Mã JavaScript nguồn mở.
Cài đặt tiện ích mở rộng trình duyệt Tampermonkey
Tampermonkey là một trình quản lý tập lệnh người dùng phổ biến. Tiện ích mở rộng này có sẵn cho trình duyệt Chrome, Firefox, Brave, Microsoft Edge, Safari và Opera.
Trình duyệt Chrome và Brave: https://chrome.google.com/webstore/search/tampermonkey
Đối với Firefox, bạn có thể sử dụng Tampermonkey hoặc Greasemonkey. Cả hai phần mở rộng đều hoạt động. Dù sao trong hướng dẫn này, chúng tôi sẽ sử dụng Tampermonkey.
Firefox: https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/
https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/
Hoặc chỉ cần đi đến https://www.tampermonkey.net và thêm tiện ích mở rộng vào bất kỳ trình duyệt nào có liên quan mà bạn đang sử dụng.
Khi bạn đã thêm tiện ích mở rộng vào trình duyệt của mình, bạn sẽ thấy biểu tượng Tampermonkey ở góc trên cùng bên phải.
Cài đặt tập lệnh chuyển đổi BitMEX USD
Nhấp vào biểu tượng Tampermonkey từ góc trên cùng bên phải và chọn “Tạo tập lệnh mới” từ menu.
Bây giờ xóa mọi thứ khỏi trình chỉnh sửa và dán tập lệnh sau.
// == UserScript ==
// @name BitMex Công cụ chuyển đổi USD
// @namespace https://bitmex.com/
// @version 0,11
// @description Mệnh giá USD cho BitMEX PnL
// @author koinkraft
// @grant không có
// @include https://bitmex.com/*
// @include https://www.bitmex.com/*
// @require https://code.jquery.com/jquery-2.1.4.min.js
// == / UserScript ==
(chức năng() {
‘Sử dụng nghiêm ngặt’;
// Vars tập lệnh
để indexPrice = 0;
let currentBalance = {total: 0, avail: 0};
// Trích xuất giá BitMex
const updateIndexPrice = () => {
$ (‘. cụ’). each (function () {
let obj = this;
if ($ (obj) .children (‘. biểu tượng’). length > 0 && $ (obj) .children (‘. biểu tượng’). html () == ‘.BXBT’) {
indexPrice = $ (obj) .children (‘. price’). html ();
}
});
setTimeout (function () {
updateIndexPrice ();
}, 1000);
}
// Trích xuất Số dư trên Wallet
const extractWalletBalance = (gọi lại) => {
hãy để số dư = currentBalance;
$ (‘a [href ="/ app / wallet"] > nhịp > bàn > tbody > tr ‘). each (function () {
let currentLabel = ”;
$ (this) .children (‘td’). each (function () {
if ($ (this) .html () == ‘Total’ || $ (this) .html () == ‘Avail’) {
currentLabel = $ (this) .html ();
} khác {
if (currentLabel == ‘Total’) {
let balanceTotal = formatXBTString ($ (this) .html ());
if (balanceTotal! == false) balances.total = balanceTotal;
} else if (currentLabel == ‘Avail’) {
let balanceAvail = formatXBTString ($ (this) .html ());
if (balanceAvail! == false) balances.avail = balanceAvail;
}
}
});
});
currentBalance = số dư;
gọi lại (số dư);
}
// Đặt số dư trên Wallet USD
const setWalletBalance = (updatedBalances) => {
if (updatedBalances.total + ‘USD’! = $ (‘. balance-usd-total’). html ()) $ (‘. balance-usd-total’). html (updatedBalances.total + ‘USD’);
if (updatedBalances.avail + ‘USD’! = $ (‘. balance-usd-avail’). html ()) $ (‘. balance-usd-avail’). html (updatedBalances.avail + ‘USD’);
}
// Chuyển đổi chuỗi XBT
const formatXBTString = (string) => {
let part = string.split (" ");
if (part.length == 2) {
if (phần [1] == ‘XBT’) {
trả lại các bộ phận [0] .replace (",",".");
} else if (phần [1] == ‘mXBT’) {
trả lại các bộ phận [0] .replace (",",".") * 0,001;
} else if (phần [1] == ‘XBt’) {
trả lại các bộ phận [0] .replace (".","") * 0,00001;
} else if (phần [1] == ‘μXBT’) {
trả lại các bộ phận [0] .replace (".","").thay thế(",",".") * 0,000001;
}
}
trả về sai;
}
// Cập nhật số dư trên Wallet
const updateWalletBalances = () => {
setTimeout (function () {
if (indexPrice! = 0) {
extractWalletBalance (function (số dư) {
let updatedBalances = {total: (balances.total * indexPrice) .toLocaleString (‘en-US’, {MinimumFractionDigits: 2, MaximumFractionDigits: 2}), lịch phát sóng: (balances.avail * indexPrice) .toLocaleString (‘en-US’ , {MinimumFractionDigits: 2, MaximumFractionDigits: 2})};
setWalletBalance (updatedBalances);
});
}
updateWalletBalances ();
}, 1000);
}
// Cập nhật PNL
const updatePNLs = (setTimeoutCycle) => {
if (indexPrice! = 0) {
// PNL chưa được thực hiện
$ (‘td.unrealisedPnl’). each (function () {
let obj = this;
để nội dung;
cho isSpan = false;
if ($ (this) .children (‘div: first-child’). children (‘span’). length > 0) {
content = $ (this) .children (‘div: first-child’). children (‘span: first-child’). html ();
isSpan = true;
} khác {
content = $ (this) .children (‘div: first-child’). html ();
}
let part = content.split (" ");
if (phần [1] == ‘XBT’ || phần [1] == ‘mXBT’ || phần [1] == ‘XBt’ || phần [1] == ‘μXBT’) {
let formatUnrealizedPNL = formatXBTString (part [0] + ” + part [1]);
let unalizedPNLUSD = (formatUnrealizedPNL * indexPrice) .toLocaleString (‘en-US’, {MinimumFractionDigits: 2, MaximumFractionDigits: 2});
let newDivContent;
if (! isSpan) {
newDivContent = chưa được thực hiệnPNLUSD + ‘USD | ‘+’ BTC ‘+ định dạngUnrealizedPNL +’ ‘+ phần [2];
} khác {
newDivContent = ” + chưa thực hiệnPNLUSD + ‘USD | ‘+’ BTC ‘+ định dạngUnrealizedPNL +’ ‘+ phần [2] +’ ‘;
}
if (newDivContent! = $ (obj) .children (‘div.unrealizedPnlUSD’). html ()) {
$ (obj) .children (‘div.unrealizedPnlUSD’). html (newDivContent);
if (formatUnrealizedPNL * indexPrice < 0) {
if (! $ (obj) .children (‘div.unrealizedPnlUSD’). hasClass (‘neg’)) {
$ (obj) .children (‘div.unrealizedPnlUSD’). addClass (‘neg’). removeClass (‘pos’);
}
} khác {
if (! $ (obj) .children (‘div.unrealizedPnlUSD’). hasClass (‘pos’)) {
$ (obj) .children (‘div.unrealizedPnlUSD’). addClass (‘pos’). removeClass (‘neg’);
}
}
}
}
});
// PNL được hiện thực hóa
$ (‘td.combinedRealisedPnl’). each (function () {
let obj = this;
let donePNLhover = formatXBTString ($ (obj) .children (‘. hoverContainer: first-child’). children (‘. hoverVosystem’). children (‘. tooltipWrapper’). children (‘span’). html ());
let donePNL = formatXBTString ($ (obj) .children (‘. hoverContainer: first-child’). children (‘. hoverHidden’). children (‘span’). html ());
hãy để nhận raPNLUSDhoverContent = (RecogPNLhover * indexPrice) .toLocaleString (‘en-US’, {MinimumFractionDigits: 2, MaximumFractionDigits: 2}) + ‘USD’;
hãy để nhận raPNLUSDContent = (nhận raPNL * indexPrice) .toLocaleString (‘en-US’, {MinimumFractionDigits: 2, MaximumFractionDigits: 2}) + ‘USD’;
if ($ (obj) .children (‘. RecognitionPNLContainer’). children (‘. hoverVosystem’). children (‘. tooltipWrapper’). children (‘span’). html ()! = inheritPNLUSDhoverContent) {
$ (obj) .children (‘. RecognitionPNLContainer’). children (‘. hoverVosystem’). children (‘. tooltipWrapper’). children (‘span’). html (inheritPNLUSDhoverContent);
if (donePNLhover * indexPrice < 0) {
if (! $ (obj) .children (‘. inheritPNLContainer’). children (‘. hoverVosystem’). children (‘. tooltipWrapper’). children (‘span’). hasClass (‘neg’)) {
$ (obj) .children (‘. RecognitionPNLContainer’). children (‘. hoverVosystem’). children (‘. tooltipWrapper’). children (‘span’). addClass (‘neg’). removeClass (‘pos’);
}
} khác {
if (! $ (obj) .children (‘. inheritPNLContainer’). children (‘. hoverVosystem’). children (‘. tooltipWrapper’). children (‘span’). hasClass (‘pos’)) {
$ (obj) .children (‘. inheritPNLContainer’). children (‘. hoverVosystem’). children (‘. tooltipWrapper’). children (‘span’). addClass (‘pos’). removeClass (‘neg’);
}
}
}
if ($ (obj) .children (‘. inheritPNLContainer’). children (‘. hoverHidden’). children (‘span’). html ()! = inheritPNLUSDContent) {
$ (obj) .children (‘. RecognitionPNLContainer’). children (‘. hoverHidden’). children (‘span’). html (inheritPNLUSDContent);
nếu (thực hiệnPNL * indexPrice < 0) {
if (! $ (obj) .children (‘. inheritPNLContainer’). children (‘. hoverHidden’). children (‘span’). hasClass (‘neg’)) {
$ (obj) .children (‘. inheritPNLContainer’). children (‘. hoverHidden’). children (‘span’). addClass (‘neg’). removeClass (‘pos’);
}
} khác {
if (! $ (obj) .children (‘. inheritPNLContainer’). children (‘. hoverHidden’). children (‘span’). hasClass (‘pos’)) {
$ (obj) .children (‘. inheritPNLContainer’). children (‘. hoverHidden’). children (‘span’). addClass (‘pos’). removeClass (‘neg’);
}
}
}
});
}
if (setTimeoutCycle) {
setTimeout (function () {
updatePNLs (true);
}, 50);
}
}
// Khởi tạo trình bao bọc PNL
const initPNLWrapper = (setTimeoutCycle) => {
if ($ (‘td.unrealisedPnl’). length > 0 && $ (‘. chưa thực hiệnPnlUSD’). length == 0) {
// PNL chưa được thực hiện
$ (‘td.unrealisedPnl’). css (‘vị trí’, ‘tương đối’);
$ (‘td.unrealisedPnl > div ‘). css (‘ opacity ‘,’ 0 ‘). css (‘ position ‘,’ tuyệt đối ‘). css (‘ left ‘,’ 0 ‘). css (‘ top ‘,’ 0 ‘). css ( ‘right’, ‘0’). css (‘bottom’, ‘0’);
$ (‘td.unrealisedPnl > div ‘). after (‘ 0,00 USD (0,00%) ‘);
// PNL được hiện thực hóa
$ (‘td.combinedRealisedPnl > .hoverContainer ‘). hide ();
$ (‘td.combinedRealisedPnl > .hoverContainer ‘). after (‘ 0,00 USD0,00 USD ‘);
}
if (setTimeoutCycle) {
setTimeout (function () {
initPNLWrapper (true);
}, 100);
}
}
// Chờ cửa sổ tải
$ (cửa sổ) .load (function () {
// Ẩn hộp số dư BTC
$ (‘._ 1mNCXSUh: đầu tiên’). Hide ();
$ (‘._ 2UCMYPbC > ._2wx45MYS: first ‘). Hide ();
// Init PNL Wrapper
initPNLWrapper (true);
$ (window) .resize (function () {
initPNLWrapper (sai);
});
// Chèn div Số dư USD
$ (‘. thông báoDropdown’). trước (‘
Toàn bộ | 0,00 USD |
Có sẵn | 0,00 USD |
‘);
// Cập nhật các chức năng
setInterval (() => {
console.log (‘Đang cập nhật ….’);
updateIndexPrice ();
updateWalletBalances ();
updatePNLs (true);
$ (‘td.unrealisedPnl > div ‘). hover (function () {
cập nhậtPNLs (sai);
});
}, 30000);
});
}) ();
Đoạn mã trên là mã JavaScript mã nguồn mở được viết bởi KoinKraft.
Tài liệu tham khảo: https://gist.github.com/btc-zz/6b8315f93969ee7caf6c3d66e70ec721
Sau khi hoàn tất, nhấp vào Tệp >> Tiết kiệm.
Sau đó, đảm bảo rằng cả Tampermonkey và công cụ chuyển đổi BitMEX USD đều được bật. Bạn có thể tắt tập lệnh bất cứ lúc nào bạn muốn.
Bây giờ, hãy làm mới trang giao dịch Bitmex.com và đợi trong giây lát để tập lệnh tải. Sau khi được tải, nó sẽ hiển thị các giá trị USD trong cột PNL của bạn. Nó hiển thị cả giá trị USD và BTC thay vì chỉ USD. Ngoài ra, việc chuyển đổi USD diễn ra theo thời gian thực.
Trình cắm không hoạt động?
Phương pháp này hoạt động với tất cả các trình duyệt web chính. Để trình cắm này hoạt động bình thường, hãy đảm bảo đặt hiển thị tiền tệ BitMEX của bạn thành XBT (Bitcoin). Nó sẽ không hoạt động với các loại tiền tệ khác như Satoshi, micro-Bitcoin và milli-Bitcoin. Ngoài ra, ban đầu phải mất một khoảng thời gian để tải các giá trị USD, vì vậy hãy dành thời gian cho nó.
Chúng tôi hy vọng từ bây giờ bạn không phải thực hiện bất kỳ chuyển đổi cơ bản nào từ BTC sang tiền tệ Fiat hoặc Satoshi sang USD để định giá lợi nhuận bằng USD. Tập lệnh thực hiện công việc cho bạn.