BitMEX एक्सचेंज एपीआई नोट

लेखक:घास, बनाया गयाः 2019-04-04 11:40:52, अद्यतनः 2024-02-05 20:09:52

BitMEX एक्सचेंज एपीआई उपयोग के मामले (BitMEX exchange API note)

img

एफएमजेड प्लेटफार्म एपीआई डॉक टेलीग्राम समूह में शामिल हों

www.fmz.com(पहले BotVs) एक मात्रात्मक रणनीति व्यापार मंच है जहां आप आसानी से सीख सकते हैं, लिख सकते हैं, साझा कर सकते हैं, और मात्रात्मक रणनीतियों का व्यापार कर सकते हैं।

  • हमारे मंच के कई फायदे हैंः

    • 1. क्रॉस-प्लेटफॉर्म, सभी प्रमुख ट्रेडिंग एक्सचेंजों का समर्थन, हमारे प्लेटफॉर्म पर लिखी गई रणनीति सभी प्रमुख एक्सचेंजों के लिए उपयुक्त है।
    • 2. आरंभ करना आसान है, विशिष्ट एपीआई प्रलेखन और क्लासिक टेम्पलेट रणनीतियाँ उपयोगकर्ताओं को वास्तव में जल्दी आरंभ करने में मदद करती हैं।
    • 3. इसमें एक प्रभावी सिमुलेट बैकटेस्टिंग प्रणाली है।
    • 4、ई-मेल भेजने, संदेश आपके फ़ोन पर भेजने का समर्थन करता है.
    • 5. वेब आधारित नियंत्रण तंत्र, आपके फोन के माध्यम से एक्सेस किया जा सकता है।
    • पूर्ण पायथन\C++\जावास्क्रिप्ट प्रोग्रामिंग के लिए समर्थन
    • 7、स्पॉट और वायदा व्यापार का समर्थन करें, और भविष्य में अधिक एक्सचेंजों का समर्थन करेंगे।
    • 8. लागत बेहद कम है। वर्तमान विनिमय दर के आधार पर 0.125 RMB प्रति घंटेः USDCNY 6.9303, जिसका अर्थ है 0.01804 डॉलर प्रति घंटे।
    • हमारी वेबसाइट पर कोई एपीआई-की या पासवर्ड सहेजे नहीं जाते हैं। एफएमजेड बिना किसी सुरक्षा समस्या के चार साल से अधिक समय से चल रहा है।

FMZ (BOTVS) अब BitMEX पर सभी अनुबंधों का समर्थन करता है!

  • टेस्ट कोडः

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));
}
  • BitMEX पर अपने खाते की जानकारी की जाँच करें.

    img

    बोट द्वारा जानकारी लॉग, जो कि BitMEX पर के साथ एक ही है.

    img

  • लीवरेज बदलने के बाद लॉग पोजीशन, लीवरेज बदल गया है।

    img

  • Go function का उपयोग करें अपने पदों को एक ही समय में कवर करने के लिए।

      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. (चलो पोस्ट ऑर्डर करने की कोशिश करते हैं और इसे रद्द करते हैं)

    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. (अवतरित आदेशों की जानकारी)

 [{"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"}]
  • नोटः

    • 1. बिटएमईएक्स केवल 1m, 5m, 1h, 1d के K-लाइन अवधि का समर्थन करता है।

      नवीनतम होस्टिंग का उपयोग करके, अंतर्निहित स्वचालित रूप से के-लाइन का संश्लेषण कर सकता है, और कुछ के-लाइन चक्र डेटा जो बीआईटीएमईएक्स द्वारा समर्थित नहीं हैं, को भी संश्लेषित किया जा सकता है, इसलिए जब आप के-लाइन चक्र सेट करते हैं तो यह अब सीमित नहीं होता है।1分钟、5分钟、1小时、1天इन चक्रों को, सभी चक्रों को सेट किया जा सकता है.

      img

    • 2, टेस्ट 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. (होल्डिंग के बाद लीवरेज समायोजित किया जा सकता है।)

    • 4■समर्थन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 (प्रत्यक्ष रूप से एक्सचेंज एपीआई को कॉल करें)

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

अधिक