Catatan API pertukaran BitMEX

Penulis:Mimpi kecil, Dibuat: 2017-05-08 18:39:32, Diperbarui: 2023-07-27 20:40:27

Penggunaan BitMEX Exchange API (note BitMEX exchange API)

Platform FMZ API Doc Bergabunglah dengan kami di grup telegram

www.fmz.com(sebelumnya BotVs) adalah platform perdagangan strategi kuantitatif di mana Anda dapat dengan mudah belajar, menulis, berbagi, dan perdagangan strategi kuantitatif.

  • Platform kami memiliki banyak keuntungan:

    • 1、Platform lintas, mendukung semua bursa perdagangan utama, strategi yang ditulis di platform kami cocok untuk semua bursa utama.
    • 2、 Mudah untuk memulai, dokumentasi API khusus dan strategi template klasik membantu pengguna untuk memulai sangat cepat.
    • 3、Ini memiliki sistem backtesting simulasi yang efektif.
    • 4、 Mendukung mengirim e-mail, mengirim pesan ke ponsel Anda.
    • 5, mekanisme kontrol berbasis web, dapat diakses melalui ponsel Anda.
    • 6、Dukungan untuk pemrograman Python\C++\JavaScript lengkap
    • 7、 Mendukung perdagangan spot dan berjangka, dan akan mendukung lebih banyak pertukaran di masa depan.
    • 8、Biayanya sangat rendah. 0,125 RMB per jam, berdasarkan nilai tukar saat ini: USDCNY 6,9303, yang berarti 0,01804 dolar per jam.
    • 9、Tidak ada API-KEY atau kata sandi yang disimpan di situs web kami. FMZ telah berjalan selama lebih dari empat tahun tanpa masalah keamanan.

FMZ (BOTVS) sekarang mendukung semua kontrak di BitMEX!

  • Perdagangan di testnet:

function main() {
    exchange.IO("base", "https://testnet.bitmex.com")
}
  • Kode uji (Test code):

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));
}
  • Periksa informasi akun Anda di BitMEX.

    img

    Mencatat informasi dengan bot, yang sama dengan yang di BitMEX.

    img

  • Log positions after changing leverage, the leverage has been changed (log posisi setelah mengubah leverage, maka leverage telah berubah).

    img

  • Use Go function to cover your positions at the same time (menggunakan fungsi Go untuk menutupi posisi Anda pada saat yang sama).

      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. (Mari kita coba posting pesanan dan membatalkannya.)

    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 (Informasi pesanan tertunda yang diperoleh).

 [{"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"}]
  • Catatan:

    • 1, BitMEX only supoort K-line periods of 1m, 5m, 1h, 1d. ((Periode K-line BitMEX hanya mendukung periode 1 menit, 5 menit, 1 jam, 1 hari)).

      Dengan menggunakan host terbaru, lapisan bawah dapat secara otomatis mensintesis K-line, dan beberapa data siklus K-line yang tidak didukung oleh BITMEX juga dapat disintesis, sehingga tidak lagi terbatas pada1分钟、5分钟、1小时、1天Periode ini, semua siklus dapat diatur.

      img

    • 2. Test holding long and short positions at the same time. (Test holding long and short positions at the same time.)

      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. (Leverage dapat disesuaikan setelah memegang posisi.)

    • 4、Dukunganexchange.IOFungsi untuk lebih banyak API

      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 (data yang dikembalikan oleh API posisi/leverage)

      {"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"}
      

Berkaitan

Lebih banyak

q25459768Terima kasih.

CooongSilakan buka VPN dengan host lokal, gunakan shadowsocks, global, bitmex halaman web dapat diakses, tetapi program tidak berjalan. Pilih server publik AS tidak ada masalah, Anda dapat melakukan pemesanan.

Bunga-bunga kecilTanyakan apakah botvs mendukung penugasan harga terbatas di bitmex, yang sama dengan memilih penugasan pasif saat memesan di bitmex.

Bobo188Dengan getrecords, bitmex hanya mengembalikan 100 data, tapi bitmex mendukung maksimal 500, bagaimana Anda bisa mendapatkan lebih banyak? terima kasih

jiwaData yang diperoleh oleh GetAccount tidak benar {"Stocks": 0.00841059, "FrozenStocks": 0.0092248, "Balance": 0, "FrozenBalance: 0} FrozenStocks kehilangan satu nol, yang sebenarnya adalah 0.0092248.

BeleevSaya ingin tahu bagaimana hal ini bisa diselesaikan. Saya ingin tahu bagaimana hal ini dapat diselesaikan. Saya ingin mendapatkan URL bitmex ini: https://www.bitmex.com/api/v1/orderBook/L2?symbol=XBT&depth=1, menggunakan kode berikut sesuai dengan dokumentasi def main (: depth = exchanges[0].IO (("api", "GET", "/api/v1/orderBook/L2","symbol=XBT&depth=1") Log (dalam) Setelah menjalankan log, kesalahan muncul: Futures_BitMEX error Futures_OP 4: 401: {"error":{"message":"Signature not valid.","name":"HTTPError"}} Saya tidak masalah dengan aksk, karena API lain dapat memanggil melalui, tolong lihat apa penyebabnya?

Victor997Halo, aku tidak bisa menambahkan Droker, itu mengatakan kata sandi yang salah. Aku butuh bantuan dengan semua langkah jika mungkin, aku hanya bisa menambahkan platform. Terima kasih, Victor997.

Delapan orang menanam minyakSaat BitMEX mendukung websocekt mode, sekarang batas frekuensi transaksi 300 kali dalam 5 menit terlalu besar.

kejohttps://dn-filebox.qbox.me/bf29e11e9f2d707808ccd006406bb3026a794876.png Mengapa saya tidak dapat melihat Bitmex di platform tambahan, termasuk tidak ada Kraken di screenshot?

YtrezqHalo, aku baru mengenal botvs, bagaimana aku bisa menggunakan ini untuk bitmex?

Luisa.Jika Anda ingin tahu apakah platform Anda memiliki sistem retargeting untuk BitMex?

JNilai terakhir dari data baris K yang dikembalikan oleh BitMEX's GetRecords tidak real-time, sehingga tidak dapat menghitung indikator secara real-time. Masalah ini sudah lama terjadi, dan merupakan kelemahan dari API BitMEX sendiri, yang belum pernah diselesaikan. BotVS mengumpulkan data BitMEX secara real time, dan apakah data yang dikumpulkan dapat melengkapi data BitMEX secara real time?

JBagaimana kita mendapatkan data K-line dari BitMEX?

Anak laki-laki NingDream Sum, saya menemukan masalah, setelah bitMEX mengatur nilai tukar menjadi yuan, tidak bisa bertransaksi ~ tidak tahu apa masalahnya, tolong Dream Sum mohon bantuan ~

JIni terlalu besar dan bisa dioperasikan dengan tuas.

Mimpi kecilShadowsocks bukanlah agen global yang sebenarnya, dan tidak memiliki akses jaringan untuk semua agen komputer. Saat ini, yang paling sederhana adalah menjalankan host dengan server di daerah lain.

Bobo188Tolong, bisakah Anda memberi saya contoh, terima kasih!

Mimpi kecilAkses langsung melalui HttpQuery. Akses langsung melalui HttpQuery. Akses langsung melalui Http.

Mimpi kecilAnda bisa menambahkan QQ saya: 359706687 dan saya akan membantu Anda melihatnya.

Mimpi kecilYa, Anda memanggil antarmuka untuk mendapatkan kedalaman, yang seharusnya tidak memerlukan tanda tangan yang dienkripsi. Untuk antarmuka yang meminta enkripsi, gunakan panggilan exchange.IO, untuk antarmuka yang tidak mengenkripsi, gunakan HttpQuery (python menggunakan urlib library), HttpQuery menangani permintaan antarmuka yang tidak mengenkripsi.

Mimpi kecilTerima kasih atas dukungannya! Dapatkah saya mendapatkan beberapa jawaban tentang jenis sistem Anda yang Anda ingin menjalankan docker. BotVS didukung: - windows 64bit, 32bit (CLI, Interface) - Mac OSX (garis cmd) - Linux 64bit, 32bit (garis cmd) - ARM Linux (garis cmd) Setelah ini, saya akan membuat proses yang langkah demi langkah menambahkan docker. Menunggu pesanmu! ^^

Mimpi kecilSementara itu, BITMEX belum mendukung protokol WS.

kejoSaya tidak tahu.

Mimpi kecilPlatform eksternal Tidak ada data retest sementara, dukungan sedang direncanakan. Anda mengubah browser, mungkin browser yang menyebabkan kontrol dropdown tidak muncul.

Mimpi kecilMenggunakan langkah: 1, Jalankan program bernama robot, di mana untuk men-download di lokasi ini: https://dn-filebox.qbox.me/cfe3c7fab12e72b6dae4ca238dde150e5d8bcd56.png 2、Tambahkan platform: konfigurasi 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、Tambahkan robot dan strategi pengikat dengan robot: https://dn-filebox.qbox.me/290a20859a186b27af4058019259134b6b48bda5.png https://dn-filebox.qbox.me/5e797e71b6c7c0bfda4860f7b1073aa69b499f64.png https://dn-filebox.qbox.me/74307cc14fa0039695e4608c955c2b7d71789b10.png

YtrezqYa, tapi apa langkah-langkah di situs web untuk menggunakan BitMex pada BotVS?

Mimpi kecilTerima kasih telah menggunakan BotVS ^^, BotVS sudah mendukung BitMEX.

Mimpi kecilHalo, saat ini, sistem penelusuran belum mendukung BitMEX, ^^.

Mimpi kecilAnda dapat meng-deep copy push in.

JTerima kasih! Jadi saya akan mendorong ke variabel lain.

Mimpi kecilJ besar ~ Array yang diperoleh oleh GetRecords ini adalah referensi yang diteruskan, dan jika push masuk pada saat pengambilan berikutnya, elemen push akan muncul.

Mimpi kecilSaya akan coba, tunggu sebentar.

JSaya ingin menambahkan data real-time yang terakhir, tapi saya mengalami masalah, tolong bantu saya melihat. exchange.SetContractType (('XBTUSD') // Mengambil data melalui GetRecords records = exchange.GetRecords (dalam bahasa Inggris) Log (rekaman) // kemudian menambahkan nilai terakhir sendiri. records.push (dalam bahasa Inggris). Time:records[records.length-1].Time + 3600000, Close:records[records.length-1].Close + 1 Aku tidak tahu. Log (rekaman) // Beristirahat 10 detik untuk memanggil kembali GetRecords ((() Sleep ((10000) records = exchange.GetRecords (dalam bahasa Inggris) // Mengapa data terakhir yang ditambahkan masih ada? Log (rekaman)

Mimpi kecilBaiklah, terima kasih J, saya akan coba.

Mimpi kecilYa, BITMEX, ini adalah kontrak.

JJadi, kita harus mengatur mata uangnya. Exchange.SetContractType (('XBTUSD') records = exchanges.GetRecords (dalam bahasa Inggris)

Mimpi kecilBaiklah, mari kita periksa.

Anak laki-laki NingOh, itu juga mungkin, saya akan coba.

Mimpi kecilAnda dapat menggunakan_N untuk mencoba membatasi bilangan kecil harga, banyak bursa membatasi bilangan kecil penawaran, umumnya tidak lebih dari 4 bilangan kecil.

Anak laki-laki NingSaya selalu bermimpi, Sell ((12319.94890, 100.00000): 400: {"error":{"message":"Invalid price tickSize","name":"HTTPError"}}, perasaan adalah, tidak mengubah harga ke dolar dan dilaporkan, sehingga harga yang tidak biasa menyimpang, tidak diberikan daftar.

Mimpi kecilBaiklah, saya akan segera mencobanya.