Die Ressourcen sind geladen. Beförderung...

BitMEX-Börsen-API-Anmerkung

Schriftsteller:Das Gras, Erstellt: 2019-04-04 11:40:52, Aktualisiert: 2024-02-05 20:09:52

BitMEX-Austausch-API-Anwendungsbedingungen (BitMEX exchange API note)

BitMEX exchange API note

Die FMZ-Plattform API Doc Schließen Sie sich uns in die Telegramm-Gruppe an.

www.fmz.com (früher BotVs) ist eine quantitative Strategie-Handelsplattform, auf der Sie leicht quantitative Strategien lernen, schreiben, teilen und handeln können.

  • Unsere Plattform hat viele Vorteile:

    • 1、Plattformübergreifend, unterstützt alle großen Börsen, Strategie auf unserer Plattform geschrieben ist für alle großen Börsen geeignet.
    • 2. Einfach zu starten, die spezifische API-Dokumentation und die klassischen Vorlagenstrategien helfen den Benutzern, sehr schnell loszulegen.
    • 3. Es verfügt über ein wirksames Simulations-Backtesting-System.
    • 4、Support für das Senden von E-Mails, das Versenden von Nachrichten auf Ihr Telefon.
    • 5. Webbasierter Steuerungsmechanismus, der über Ihr Telefon zugänglich ist.
    • 6、Unterstützung für komplette Python\C++\JavaScript-Programmierung
    • 7、Support für Spot- und Futures-Handel und wird in Zukunft weitere Börsen unterstützen.
    • 8、Die Kosten sind extrem niedrig. 0,125 RMB pro Stunde, basierend auf dem aktuellen Wechselkurs: USDCNY 6,9303, was 0,01804 Dollar pro Stunde bedeutet.
    • 9、Keine API-Key oder Passwörter werden auf unserer Website gespeichert. FMZ läuft seit mehr als vier Jahren ohne Sicherheitsprobleme.

FMZ (BOTVS) unterstützt jetzt alle Verträge auf BitMEX!

  • #### Testcode:
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));
}
  • Überprüfen Sie Ihre Kontoinformationen bei BitMEX.

BitMEX exchange API note

Loggen Sie die Informationen per Bot, das ist dasselbe wie bei BitMEX.

BitMEX exchange API note

  • ### Log positions after changing leverage, the leverage has been changed (Log-Positionen nach Veränderung des Hebels, der Hebel wurde geändert)

BitMEX exchange API note

  • #### Verwenden Sie die Go-Funktion, um Ihre Positionen gleichzeitig zu decken.
    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);

BitMEX exchange API note

  • #### Let's try post orders and cancel it. (Wir versuchen, Post-Orders zu hängen.))
  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));

BitMEX exchange API note

The pending orders information (Die anhängigen Aufträge werden angefordert)

 [{"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"}]
  • Bitte beachten Sie:

    • #### 1, BitMEX supporte nur K-Line Perioden von 1m, 5m, 1h und 1d.

    Mit dem neuesten Host kann die Unterseite automatisch K-Linien synthetisieren, und einige K-Linien-Zyklusdaten, die von BITMEX nicht unterstützt werden, können auch synthetisiert werden, so dass sie sich nicht mehr auf K-Linien-Zyklusen beschränken, wenn sie eingerichtet werden.1分钟、5分钟、1小时、1天Diese Zyklen, alle Zyklen können eingestellt werden.

    BitMEX exchange API note

    • #### 2、Test holding long and short positions at the same time. (Test, bei dem gleichzeitig mehrere Positionen gehalten werden.
    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));
    

    BitMEX exchange API note

    • 3. Das Hebel kann während der Halteposition geändert werden.

    • 4. Unterstützung der exchange.IO-Funktion für mehr API.

    BitMEX exchange API note

    // 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 (Daten, die von der Position/Leverage-API zurückgegeben werden)

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

Mehr