Tài nguyên đang được tải lên... tải...

Lưu ý API sàn giao dịch BitMEX

Tác giả:Những nhà phát minh định lượng - những giấc mơ nhỏ, Tạo: 2017-05-08 18:39:32, Cập nhật: 2023-07-27 20:40:27

Các vấn đề sử dụng BitMEX Exchange API (BitMEX exchange API note)

Nền tảng FMZ API Doc Tham gia nhóm Telegram của chúng tôi.

www.fmz.com(trước đây là BotVs) là một nền tảng giao dịch chiến lược định lượng nơi bạn có thể dễ dàng học, viết, chia sẻ và giao dịch các chiến lược định lượng.

  • Nền tảng của chúng tôi có nhiều lợi thế:

    • 1, Cross-nền tảng, hỗ trợ tất cả các sàn giao dịch lớn, chiến lược viết trên nền tảng của chúng tôi là phù hợp với tất cả các sàn giao dịch lớn.
    • 2, Dễ dàng để bắt đầu, tài liệu API cụ thể và các chiến lược mẫu cổ điển giúp người dùng bắt đầu thực sự nhanh chóng.
    • Nó có một hệ thống backtesting mô phỏng hiệu quả.
    • 4、Hỗ trợ gửi email, đẩy tin nhắn đến điện thoại của bạn.
    • 5, cơ chế điều khiển dựa trên web, có thể được truy cập qua điện thoại của bạn.
    • 6、Hỗ trợ lập trình Python\C++\JavaScript đầy đủ
    • 7、Hỗ trợ giao dịch điểm và tương lai, và sẽ hỗ trợ nhiều sàn giao dịch hơn trong tương lai.
    • 8, Chi phí cực kỳ thấp. 0,125 nhân dân tệ mỗi giờ, dựa trên tỷ giá hối đoái hiện tại: USDCNY 6,9303, có nghĩa là 0,01804 đô la mỗi giờ.
    • Không có API-Key hoặc mật khẩu được lưu trong trang web của chúng tôi. FMZ đã chạy trong hơn bốn năm mà không có bất kỳ vấn đề bảo mật.

FMZ (BOTVS) hỗ trợ tất cả các hợp đồng trên BitMEX!

  • Các giao dịch trên testnet:

function main() {
    exchange.IO("base", "https://testnet.bitmex.com")
}
  • Mã kiểm tra:

var initAccount = null;
var nowAccount = null;
function main() {
    LogReset(1);
    Log("This is BitMEX test bot");
    Log("Fee:", exchange.GetFee());
    Log("Initial account:", initAccount = _C(exchange.GetAccount));    
    var info = exchange.SetContractType("XBTUSD");   // BitMEX : XBTUSD , OK : this_week
    Log("XBTUSD info:", info);   
    Log("Use GetTicker to get ticker information:", _C(exchange.GetTicker)) 
    Sleep(1000 * 10);   
    // make an order
    exchange.SetDirection("sell");                         // set order direction
    var orderId = exchange.Sell(-1, 1);                    // sell at market price。
    Sleep(6000);
    // log positions
    var positions = null;
    Log(positions = _C(exchange.GetPosition));
    Log("Account before changing leverage:", _C(exchange.GetAccount));
    // change leverage
    Log("Change leverage", _C(exchange.SetMarginLevel, positions[0].MarginLevel * 2));
    Log("Account after changing leverage:", _C(exchange.GetAccount));  
    // test GetOrder 
    if (orderId) {
        Log(_C(exchange.GetOrder, orderId));
    } 
    Sleep(1000 * 10);
    Log(_C(exchange.GetPosition));
    // set direction to close
    exchange.SetDirection("closesell");
    var go_buy = exchange.Go("Buy", -1, 1);
    var orderId2 = go_buy.wait();
    Log(_C(exchange.GetOrder, orderId2));
    Log("Current account:", nowAccount = _C(exchange.GetAccount));
    Log(_C(exchange.GetPosition));
    LogProfit(nowAccount.Stocks - initAccount.Stocks, " initAccount:", initAccount, " nowAccount:", nowAccount);
    Sleep(1000 * 10);
    var ticker = _C(exchange.GetTicker);
    exchange.SetDirection("buy");
    exchange.Buy(ticker.Last - 50, 1);
    exchange.SetDirection("sell");
    exchange.Sell(ticker.Last + 50, 1);
    // GetOrders
    Log("Test GetOrders:", _C(exchange.GetOrders));
    var e = exchange;
    while (true) {
        var orders = _C(e.GetOrders);
        if (orders.length === 0) {
            break;
        }
        Sleep(500);
        for (var j = 0; j < orders.length; j++) {
           e.CancelOrder(orders[j].Id);
            if (j < (orders.length - 1)) {
                Sleep(500);
            }
        }
    }
    Log("Cancel order, test GetOrders again:", _C(exchange.GetOrders));
}
  • Kiểm tra thông tin tài khoản của bạn tại BitMEX.

    img

    Ghi lại thông tin bằng bot, tương tự như trên BitMEX.

    img

  • Log positions after changing leverage, the leverage has been changed (Log vị trí sau khi thay đổi đòn bẩy, so sánh thông tin nắm giữ trước sau).

    img

  • Use Go function to cover your positions at the same time (Tiếng gọi hàm Go để phủ các vị trí của bạn cùng một lúc)

      exchange.SetDirection("closesell");
      var go_buy = exchange.Go("Buy", -1, 1);
      var orderId2 = go_buy.wait();
      Log(_C(exchange.GetOrder, orderId2));
      Log("当前账户:", nowAccount = _C(exchange.GetAccount));
      Log(_C(exchange.GetPosition));
      LogProfit(nowAccount.Stocks - initAccount.Stocks, " initAccount:", initAccount, " nowAccount:", nowAccount);
    

    img

  • Let's try post orders and cancel it. (Chúng ta hãy cố gắng đăng các đơn đặt hàng).

    var ticker = _C(exchange.GetTicker);
    exchange.SetDirection("buy");
    exchange.Buy(ticker.Last - 50, 1);
    exchange.SetDirection("sell");
    exchange.Sell(ticker.Last + 50, 1);  
    // GetOrders
    Log("Test GetOrders:", _C(exchange.GetOrders));
    var e = exchange;
    while (true) {
        var orders = _C(e.GetOrders);
        if (orders.length === 0) {
            break;
        }
        Sleep(500);
        for (var j = 0; j < orders.length; j++) {
            e.CancelOrder(orders[j].Id);
            if (j < (orders.length - 1)) {
                Sleep(500);
            }
        }
    }
    Log("orders have been canceled. Now check orders again, order array is empty. GetOrders:", _C(exchange.GetOrders));
    

    img

    The pending orders information (thông tin đặt hàng đang chờ được thu thập)

 [{"Id":4,"Amount":1,"Price":1679.6,"DealAmount":0,"AvgPrice":0,"Status":0,"Type":1,"ContractType":"XBTUSD"},
 {"Id":3,"Amount":1,"Price":1579.6,"DealAmount":0,"AvgPrice":0,"Status":0,"Type":0,"ContractType":"XBTUSD"}]
  • Chú ý:

    • 1, BitMEX only supoort K-line periods of 1m, 5m, 1h, 1d.

      Sử dụng các nhà quản lý mới nhất, tầng dưới có thể tự động tổng hợp các K-line, và một số dữ liệu chu kỳ K-line không được hỗ trợ bởi BITMEX cũng có thể được tổng hợp, vì vậy khi thiết lập chu kỳ K-line, bạn không còn bị giới hạn trong việc tổng hợp các K-line.1分钟、5分钟、1小时、1天Những chu kỳ này, tất cả các chu kỳ đều có thể được thiết lập.

      img

    • 2, Test holding long and short positions at the same time. (Đánh thử giữ nhiều vị trí đầu, vị trí đầu trống cùng một lúc)

      LogReset(1);
      var info = exchange.SetContractType("XBTUSD");
      exchange.SetDirection("sell");
      var orderId = exchange.Sell(-1, 1);
      Log(_C(exchange.GetPosition));
      Sleep(1000*6);
      exchange.SetDirection("buy");
      var orderId2 = exchange.Buy(-1, 1);
      Log(_C(exchange.GetPosition));
      exchange.SetDirection("closesell");
      var orderId3 = exchange.Buy(-1, 1);
      Log(_C(exchange.GetPosition));
      

      img

    • 3, The leverage can be changed while holding position. (Động lực có thể được điều chỉnh sau khi giữ vị trí.)

    • 4, Hỗ trợexchange.IOfunction for more API (Hỗ trợ các chức năng exchange.IO)

      img

      // exchange.IO example
      exchange.SetContractType("XBTUSD");
      Log(exchange.IO("api", "POST", "position/leverage", "symbol=XBTUSD&leverage=4"));
      Log(exchange.IO("api", "GET", "user"));
      

      The raw information of position/leverage API (Dữ liệu được trả về từ API đặt vị trí/đòn bẩy trực tiếp):

      {"homeNotional":0,
      "sessionMargin":0,
      "bankruptPrice":null,
      "initMarginReq":0.25,
      "execBuyQty":2,
      "execComm":184,
      "unrealisedCost":0,
      "commission":0.00075,
      "leverage":4,
      "posLoss":0,
      "posMargin":0,
      "posMaint":0,
      "liquidationPrice":null,
      "maintMarginReq":0.005,
      "grossExecCost":0,
      "execCost":7,
      "currentTimestamp":"2017-05-08T10:51:20.576Z",
      "markValue":0,
      "unrealisedGrossPnl":0,
      "taxBase":7720,
      "unrealisedPnlPcnt":0,
      "prevUnrealisedPnl":0,
      "openOrderSellCost":0,
      "deleveragePercentile":null,
      "openingComm":31588,
      "openOrderBuyCost":0,
      "posCross":0,
      "taxableMargin":0,
      "simpleCost":0,
      "underlying":"XBT",
      "quoteCurrency":"USD",
      "execBuyCost":122613,
      "execSellCost":122620,
      "execQty":0,
      "realisedCost":-7720,
      "unrealisedPnl":0,
      "openingQty":0,
      "openOrderBuyQty":0,
      "initMargin":0,
      "unrealisedTax":0,
      "simpleQty":0,
      "avgCostPrice":null,
      "rebalancedPnl":24052,
      "openingTimestamp":"2017-05-08T10:00:00.000Z",
      "unrealisedRoePcnt":0,
      "posCost":0,
      "posInit":0,
      "posComm":0,
      "realisedTax":0,
      "indicativeTax":0,
      "breakEvenPrice":null,
      "isOpen":false,
      "riskValue":0,
      "posState":"",
      "varMargin":0,
      "realisedGrossPnl":7720,
      "timestamp":"2017-05-08T10:51:20.576Z",
      "account":25992,
      "foreignNotional":0,
      "openOrderSellPremium":0,
      "simpleValue":0,
      "lastValue":0,
      "riskLimit":20000000000,
      "openOrderSellQty":0,
      "grossOpenPremium":0,
      "marginCallPrice":null,
      "prevClosePrice":1562.74,
      "openOrderBuyPremium":0,
      "currentQty":0,
      "currentCost":-7720,
      "currentComm":31772,
      "markPrice":null,
      "posCost2":0,
      "realisedPnl":-24052,
      "prevRealisedPnl":-95,
      "execSellQty":2,
      "shortBankrupt":0,
      "simplePnl":0,
      "simplePnlPcnt":0,
      "lastPrice":null,
      "posAllowance":0,
      "targetExcessMargin":0,
      "indicativeTaxRate":0,
      "grossOpenCost":0,
      "maintMargin":0,
      "crossMargin":false,
      "openingCost":-7727,
      "longBankrupt":0,
      "avgEntryPrice":null,
      "symbol":"XBTUSD",
      "currency":"XBt"}
      

Có liên quan

Thêm nữa

q25459768Cảm ơn.

CooongXin vui lòng mở VPN với người quản lý cục bộ, sử dụng shadowsocks, toàn cầu, trang web bitmex có thể lên, nhưng chương trình không chạy.

Hoa nhỏ nởVui lòng hỏi botvs có hỗ trợ giao dịch giới hạn giá của bitmex không, tương tự như khi đặt hàng trong bitmex, chọn nút giao dịch thụ động

Bobo188Với getrecords, bitmex chỉ trả về 100 dữ liệu, nhưng bitmex hỗ trợ tối đa 500, làm thế nào để có được nhiều hơn nữa?

linh hồnGetAccount () đã lấy dữ liệu không chính xác. {"Stocks": 0.00841059, "FrozenStocks": 0.0092248, "Balance": 0, "FrozenBalance: 0} FrozenStocks giảm 0, thực tế là 0.92248.

BeleevBạn có thể tìm hiểu thông tin về một số vấn đề liên quan đến giao diện rest của bitmex bằng cách sử dụng exchange.IO (("api", httpMethod, resource, params)? Tôi muốn lấy URL của bitmex: https://www.bitmex.com/api/v1/orderBook/L2?symbol=XBT&depth=1, sử dụng mã sau đây theo tài liệu def main (: depth = exchanges[0].IO (("api", "GET", "/api/v1/orderBook/L2","symbol=XBT&depth=1") Log ((depth)) Một số người khác đã bị lỗi trong việc đăng nhập. Futures_BitMEX lỗi Futures_OP 4: 401: {"error":{ "message":"Signature not valid.","name":"HTTPError}} Tôi không có vấn đề gì với aksk, bởi vì các API khác có thể gọi qua, hãy giúp tôi xem lý do tại sao?

Victor997Xin chào, tôi không thể thêm Droker, nó nói mật khẩu sai. Tôi cần giúp đỡ với tất cả các bước nếu có thể, tôi chỉ có thể thêm nền tảng. Cảm ơn, Victor997.

Tám người làm dầuKhi nào BitMEX có thể hỗ trợ websocekt, giới hạn tần suất giao dịch 300 lần trong 5 phút là quá lớn

kejoTại sao tôi không thấy Bitmex trong các nền tảng được thêm vào, bao gồm cả Kraken trong hình ảnh chụp ảnh? Ngoài ra, có bao nhiêu nền tảng nước ngoài có thể được xem lại?

ytrezqXin chào, tôi mới sử dụng botvs, làm thế nào tôi có thể sử dụng nó cho bitmex?

LUISLUXin hỏi liệu nền tảng của bạn có hệ thống kiểm tra lại cho BitMex không?

JGiá trị cuối cùng của dữ liệu đường K mà GetRecords của BitMEX trả về không phải là thời gian thực, do đó không thể tính toán các chỉ số trong thời gian thực. Đây là một vấn đề đã tồn tại trong một thời gian dài và là một lỗi trong API của BitMEX và vẫn chưa được giải quyết. BotVS có thu thập dữ liệu BitMEX trong thời gian thực không, và liệu nó có thể bổ sung dữ liệu thực của BitMEX bằng dữ liệu thu thập được không?

JLàm thế nào để có được dữ liệu từ BitMEX?

Ông Ninh@mymumum, tôi thấy có một vấn đề, sau khi bitMEX đặt tỷ giá thành đồng nhân dân tệ, không thể giao dịch ~ không biết vấn đề gì, xin hãy hỏi @mymum

JNó là một con bò, và nó có thể điều khiển được.

Những nhà phát minh định lượng - những giấc mơ nhỏShadowsocks không phải là một đại lý toàn cầu thực sự, và không phải là toàn bộ đại lý máy tính truy cập mạng, hiện nay, việc đơn giản nhất là chạy một máy chủ ở một khu vực khác.

Bobo188Xin hãy cho tôi một ví dụ, cảm ơn! Tôi là một người da trắng.

Những nhà phát minh định lượng - những giấc mơ nhỏBạn có thể truy cập trực tiếp vào giao dịch, giao diện, chỉ định tham số, truy cập dữ liệu bằng HttpQuery.

Những nhà phát minh định lượng - những giấc mơ nhỏBạn có thể thêm vào QQ của tôi: 359706687, tôi sẽ giúp bạn xem.

Những nhà phát minh định lượng - những giấc mơ nhỏĐúng vậy, bạn đang gọi một giao diện lấy độ sâu, giao diện này nên được mã hóa không cần chữ ký. Để gọi giao diện yêu cầu mã hóa, hãy sử dụng cuộc gọi exchange.IO, để gọi giao diện không mã hóa, sử dụng HttpQuery (python sử dụng thư viện urlib), HttpQuery xử lý các yêu cầu giao diện không mã hóa.

Những nhà phát minh định lượng - những giấc mơ nhỏCảm ơn vì đã ủng hộ! Tôi có thể nhận được một số câu trả lời về những loại hệ thống của bạn mà bạn muốn chạy một docker. BotVS hỗ trợ: - windows 64bit, 32bit (CLI, Interface) - Mac OSX (cmd line) - Linux 64 bit, 32 bit (cmd line) - ARM Linux (cmd line) Sau đó, tôi sẽ thực hiện một quá trình mà từng bước thêm một docker. Đợi tin nhắn của anh! ^^

Những nhà phát minh định lượng - những giấc mơ nhỏBITMEX hiện không hỗ trợ giao thức WS.

kejoTôi Ơ Ơ Ồ Ồ Ồ Ồ Ồ ôi ôi ôi ôi ôi ôi

Những nhà phát minh định lượng - những giấc mơ nhỏNền tảng của đĩa ra không có dữ liệu kiểm tra lại trong thời gian hiện tại, đang được lên kế hoạch hỗ trợ. Bạn thay đổi trình duyệt thử nghiệm, có thể là trình duyệt gây ra điều khiển thả xuống không hiển thị.

Những nhà phát minh định lượng - những giấc mơ nhỏSử dụng bước: 1、Run chương trình có tên robot, nơi để tải về tại vị trí này: https://dn-filebox.qbox.me/cfe3c7fab12e72b6dae4ca238dde150e5d8bcd56.png 2、Thêm nền tảng: cấu hình BitMEX `s API KEY: https://dn-filebox.qbox.me/5527bc725b11109774c5bdf152c80974542d59ed.png https://dn-filebox.qbox.me/c953a7570513cb6e5800a4775df67cbcbc9135b8.png https://dn-filebox.qbox.me/6a8077d08bae2ac3ba5c4f57eb88af5c0683e4f6.png 3, Thêm robot và Binding chiến lược với robot: https://dn-filebox.qbox.me/290a20859a186b27af4058019259134b6b48bda5.png https://dn-filebox.qbox.me/5e797e71b6c7c0bfda4860f7b1073aa69b499f64.png https://dn-filebox.qbox.me/74307cc14fa0039695e4608c955c2b7d71789b10.png

ytrezqVâng, nhưng các bước trên trang web để sử dụng BitMex trên BotVS là gì?

Những nhà phát minh định lượng - những giấc mơ nhỏCảm ơn đã dùng BotVS ^^, BotVS đã hỗ trợ BitMEX.

Những nhà phát minh định lượng - những giấc mơ nhỏXin chào, hiện tại, hệ thống kiểm tra chưa hỗ trợ sàn giao dịch BitMEX. ^^

Những nhà phát minh định lượng - những giấc mơ nhỏBạn có thể sao chép sâu một push vào.

JCảm ơn bạn! Tôi đã đẩy đến một biến khác.

Những nhà phát minh định lượng - những giấc mơ nhỏJ lớn ~ Mảng GetRecords này được lấy là một tham chiếu được truyền, nếu push vào lần lấy tiếp theo sẽ xuất hiện các phần tử của push.

Những nhà phát minh định lượng - những giấc mơ nhỏTôi sẽ thử, chờ một chút.

JTôi muốn thêm vào dữ liệu thời gian thực cuối cùng này, nhưng tôi gặp một vấn đề. exchange.SetContractType (('XBTUSD') // lấy dữ liệu từ GetRecords records = exchange.GetRecords Log ((records) // và sau đó tự thêm vào giá trị cuối cùng. records.push ((({ Time:records[records.length-1].Time + 3600000, Close:records[records.length-1].Close + 1 ) Log ((records) // Ngừng 10 giây để gọi lại GetRecords ((() Sleep ((10000) records = exchange.GetRecords // Tại sao dữ liệu được thêm vào lần trước vẫn còn? Log ((records)

Những nhà phát minh định lượng - những giấc mơ nhỏĐược rồi, cảm ơn ông J đã đề xuất, tôi sẽ thử, ghi lại báo cáo!

Những nhà phát minh định lượng - những giấc mơ nhỏCó, BITMEX, đây là hợp đồng.

JĐiều đó có nghĩa là chúng ta cần phải đặt tiền tệ. exchange.SetContractType (('XBTUSD') records = exchanges.GetRecords

Những nhà phát minh định lượng - những giấc mơ nhỏĐược rồi, chúng ta hãy kiểm tra xem.

Ông NinhỒ, cũng có thể, tôi sẽ thử.

Những nhà phát minh định lượng - những giấc mơ nhỏBạn có thể thử nghiệm số nhỏ của giá bằng cách sử dụng N. Nhiều sàn giao dịch giới hạn số nhỏ của giá, thường không quá 4 số nhỏ.

Ông NinhNhững giấc mơ luôn sớm, Sell ((12319.94890, 100.00000): 400: {"error": { "message":" Invalid price tickSize","name":"HTTPError"}}, cảm giác là, không chuyển đổi giá thành đô la, báo cáo đã được đưa ra, do đó giá bất thường sai lệch, không được treo.

Những nhà phát minh định lượng - những giấc mơ nhỏĐược rồi, tôi sẽ thử ngay.