संसाधन लोड हो रहा है... लोड करना...

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

लेखक:आविष्कारक मात्रा - छोटे सपने, बनाया गयाः 2017-05-08 18:39:32, अद्यतन किया गयाः 2023-07-27 20:40:27

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

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

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

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

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

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

  • टेस्टनेट पर व्यापारः

function main() {
    exchange.IO("base", "https://testnet.bitmex.com")
}
  • टेस्ट कोडः

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

संबंधित

अधिक

q25459768धन्यवाद.

कूंगकृपया अपने स्थानीय होस्ट के साथ वीपीएन खोलें, shadowsocks, वैश्विक, bitmex वेबपेज का उपयोग करें, लेकिन प्रोग्राम नहीं चल रहा है। अमेरिकी सार्वजनिक सर्वर चुनें, कोई समस्या नहीं है, आप बेंचमार्क कर सकते हैं। मदद के लिए पूछें कि इसे कैसे हल किया जाए, क्या आपको एक अमेरिकी सर्वर खरीदना चाहिए ताकि आप चल सकें?

फूल खिलते हैंकृपया पूछें कि क्या botvs bitmex के लिए सीमांत मूल्य पर निर्भरता का समर्थन करता है, जो कि bitmex में ऑर्डर करते समय टंकण पर टैप करने के समान है।

बोबो188getrecords के साथ, bitmex केवल 100 डेटा वापस करता है, लेकिन bitmex अधिकतम 500 का समर्थन करता है, आप और अधिक कैसे प्राप्त कर सकते हैं? धन्यवाद

मुहब्बतGetAccount द्वारा प्राप्त डेटा गलत है। {"स्टॉक्स": 0.00841059, "फ्रोजन स्टॉक्स": 0.0092248, "बालेंस": 0, "फ्रोजन बैलेंस": 0} FrozenStocks एक शून्य कम है, वास्तव में 0.092248 है।

बेलीवexchange.IO (("api", httpMethod, resource, params) का उपयोग करके bitmex के rest इंटरफ़ेस पर कॉल करने के लिए त्रुटि रिपोर्ट, कृपया यह कैसे हल करें? मैं प्राप्त bitmex के लिए इस यूआरएल चाहते हैंः https://www.bitmex.com/api/v1/orderBook/L2? symbol=XBT&depth=1, दस्तावेजों के अनुसार कोड का उपयोग कर def main (: depth = exchanges[0].IO (("api", "GET", "/api/v1/orderBook/L2","symbol=XBT&depth=1") लॉग ((depth) लॉग में त्रुटिः Futures_BitMEX त्रुटि Futures_OP 4: 401: {"त्रुटि":{"संदेश":"हस्ताक्षर मान्य नहीं है.","नाम":"HTTPError}} मेरा aksk ठीक है, क्योंकि अन्य एपीआई के माध्यम से बुलाया जा सकता है, यह देखने में मदद करें कि यह क्या कारण है?

विक्टर997हैलो, मैं ड्रॉकर नहीं जोड़ सकता, यह गलत पासवर्ड कहता है। मुझे सभी चरणों के साथ मदद की जरूरत है अगर यह संभव है, मैं केवल प्लेटफॉर्म जोड़ सकते हैं। धन्यवाद, विक्टर 997

आठ लोगों ने तेल डालाBitMEX कब websocekt मोड का समर्थन कर सकता है, अब 5 मिनट में 300 लेनदेन की आवृत्ति सीमा बहुत अधिक है

कज़जोhttps://dn-filebox.qbox.me/bf29e11e9f2d707808ccd006406bb3026a794876.png मैं Add Platforms में Bitmex क्यों नहीं देख रहा हूँ, स्क्रीनशॉट में Kraken भी नहीं?

इत्रेज़्क़नमस्कार, मैं बोटवीएस के लिए नया हूँ, मैं इसे बिटमेक्स के लिए कैसे उपयोग कर सकता हूँ?

लुइसलुकृपया पूछें कि क्या आपके प्लेटफॉर्म के पास बिटमेक्स के लिए कोई रीसेट सिस्टम है।

JBitMEX के GetRecords द्वारा लौटाए गए K-रेखा डेटा का अंतिम मान वास्तविक समय में नहीं है, जिससे वास्तविक समय में गणना करने में असमर्थता है। यह समस्या लंबे समय से चल रही है और BitMEX के अपने एपीआई में एक दोष है, जिसे हल नहीं किया गया है। क्या BotVS BitMEX से वास्तविक समय में डेटा एकत्र करता है, और क्या यह BitMEX के वास्तविक समय के डेटा को एकत्रित डेटा के साथ पूरक कर सकता है?

JBitMEX के लिए K-लाइन डेटा कैसे प्राप्त किया जाता है?

नींबूमैं एक समस्या का सामना कर रहा हूं, bitMEX ने विनिमय दर को युआन में सेट करने के बाद लेनदेन नहीं किया है ~ मुझे नहीं पता कि क्या समस्या है, कृपया मुझे बताएं ~

Jयह बहुत मोटा है, और यह लीवर के साथ काम कर सकता है

आविष्कारक मात्रा - छोटे सपनेshadowsocks वास्तव में वैश्विक एजेंट नहीं है, और यह सभी एजेंटों के कंप्यूटरों के लिए नेटवर्क एक्सेस नहीं है, वर्तमान में सबसे सरल एक सर्वर को अन्य क्षेत्रों में चलाने के लिए होस्टिंग है।

बोबो188कृपया, क्या आप मुझे एक उदाहरण दे सकते हैं, धन्यवाद! मैं छोटा हूँ

आविष्कारक मात्रा - छोटे सपनेHttpQuery का उपयोग करके सीधे एक्स्चेंज इंटरफ़ेस, पैरामीटर निर्दिष्ट करें, डेटा प्राप्त करें।

आविष्कारक मात्रा - छोटे सपनेअगर आप मेरे QQ: 359706687 को जोड़ते हैं, तो मैं आपकी मदद कर सकता हूं।

आविष्कारक मात्रा - छोटे सपनेहां, आप गहराई प्राप्त करने वाले इंटरफ़ेस को कॉल कर रहे हैं, जो बिना हस्ताक्षर के एन्क्रिप्टेड होना चाहिए. एन्क्रिप्टेड अनुरोध के लिए इंटरफ़ेस के लिए exchange.IO कॉल का उपयोग करें, बिना एन्क्रिप्टेड के लिए HttpQuery का उपयोग करें (python urlib लाइब्रेरी का उपयोग करता है), HttpQuery बिना एन्क्रिप्टेड इंटरफ़ेस अनुरोधों को संभालता है.

आविष्कारक मात्रा - छोटे सपनेआपके समर्थन के लिए धन्यवाद! मैं अपने सिस्टम के प्रकार है कि आप एक डॉकर चलाने के लिए चाहते हैं के बारे में कुछ जवाब मिल सकता है। BotVS समर्थित: - विंडोज 64बिट, 32बिट (CLI, इंटरफेस) - मैक ओएसएक्स (सीएमडी लाइन) - लिनक्स 64 बिट, 32 बिट (cmd लाइन) - एआरएम लिनक्स (सीएमडी लाइन) इसके बाद, मैं एक प्रक्रिया जो कदम से कदम जोड़ने के लिए एक डॉकर बना देंगे। आपके संदेश की प्रतीक्षा! ^^

आविष्कारक मात्रा - छोटे सपनेBITMEX के WS प्रोटोकॉल को अभी तक समर्थन नहीं मिला है।

कज़जोमैं ‖ ‖ सही है, मैं कर सकता हूँ।

आविष्कारक मात्रा - छोटे सपनेआउटडोर प्लेटफ़ॉर्म पर अभी तक कोई रीसेट डेटा नहीं है, समर्थन की योजना है. आपने एक नया ब्राउज़र परीक्षण किया, शायद ब्राउज़र, जिसके कारण ड्रॉपडाउन कंट्रोल दिखाई नहीं देता है.

आविष्कारक मात्रा - छोटे सपनेचरण का उपयोग करनाः 1,रोबोट नामक प्रोग्राम चलाएं, जहां इस स्थान पर डाउनलोड करने के लिएः https://dn-filebox.qbox.me/cfe3c7fab12e72b6dae4ca238dde150e5d8bcd56.png 2、प्लेटफ़ॉर्म जोड़ेंः विन्यास BitMEX `s एपीआई कुंजीः https://dn-filebox.qbox.me/5527bc725b11109774c5bdf152c80974542d59ed.png https://dn-filebox.qbox.me/c953a7570513cb6e5800a4775df67cbcbc9135b8.png https://dn-filebox.qbox.me/6a8077d08bae2ac3ba5c4f57eb88af5c0683e4f6.png 3、रोबोट और रोबोट के साथ बंधन रणनीति जोड़ें: https://dn-filebox.qbox.me/290a20859a186b27af4058019259134b6b48bda5.png https://dn-filebox.qbox.me/5e797e71b6c7c0bfda4860f7b1073aa69b499f64.png https://dn-filebox.qbox.me/74307cc14fa0039695e4608c955c2b7d71789b10.png

इत्रेज़्क़हाँ, लेकिन वेबसाइट पर BotVS पर BitMex का उपयोग करने के लिए क्या कदम हैं?

आविष्कारक मात्रा - छोटे सपनेBotVS का उपयोग करने के लिए धन्यवाद ^^, BotVS पहले से ही BitMEX का समर्थन करता है.

आविष्कारक मात्रा - छोटे सपनेनमस्ते, अभी तक, BitMEX के लिए परीक्षण प्रणाली का समर्थन नहीं किया गया है।

आविष्कारक मात्रा - छोटे सपनेआप एक push in को deep copy कर सकते हैं

Jधन्यवाद! तो मैं एक और चर के लिए धक्का देना चाहिए।

आविष्कारक मात्रा - छोटे सपनेJ बड़ा ~ यह GetRecords द्वारा प्राप्त किया गया सरणी संदर्भ के लिए पारित किया गया है, यदि आप push में जाते हैं तो अगली बार प्राप्त करने पर push का तत्व दिखाई देगा।

आविष्कारक मात्रा - छोटे सपनेमैं इसे परीक्षण करने जा रहा हूँ, थोड़ा इंतजार करो।

Jमैं वास्तव में इस अंतिम वास्तविक समय डेटा को जोड़ना चाहता था, लेकिन एक समस्या आई, कृपया मुझे यह देखने में मदद करें। exchange.SetContractType (('XBTUSD') // GetRecords के माध्यम से डेटा प्राप्त करें records = exchange.GetRecords ((() लॉग ((records) // और फिर अपने आप को अंतिम मान जोड़ें. records.push ((({ समयः रिकॉर्ड[records.length-1]. समय + 3600000, [records.length-1] }) लॉग ((records) // 10 सेकंड के लिए रुकें और GetRecords को पुनः कॉल करें Sleep ((10000) records = exchange.GetRecords ((() // पिछले बार जोड़ा गया डेटा अभी भी क्यों है? लॉग ((records)

आविष्कारक मात्रा - छोटे सपनेठीक है, धन्यवाद जे, मैं परीक्षण करने के लिए तैयार हूँ।

आविष्कारक मात्रा - छोटे सपनेहाँ, BITMEX, यह एक अनुबंध है।

Jयह स्पष्ट है कि पहले आप अपनी मुद्रा सेट करें। exchanges.SetContractType (('XBTUSD') records = exchanges.GetRecords ((()

आविष्कारक मात्रा - छोटे सपनेठीक है, चलो जाँच करते हैं।

नींबूओह, यह भी संभव है, मैं कोशिश करूँगा

आविष्कारक मात्रा - छोटे सपने_N का उपयोग करके कीमतों के अंशों को सीमित करने का परीक्षण किया जा सकता है, कई एक्सचेंजों ने बोली के अंशों को सीमित किया है, आमतौर पर 4 से अधिक अंशों से अधिक नहीं।

नींबूसपना हमेशा सुबह होता है, Sell ((12319.94890, 100.00000): 400: {"error":{"message":"Invalid price tickSize","name":"HTTPError"}}, महसूस होता है कि, कीमतों को डॉलर में परिवर्तित किए बिना रिपोर्ट किया जाता है, ताकि कीमत असामान्य रूप से विचलित हो जाए, और इसे लटकाया न जाए।

आविष्कारक मात्रा - छोटे सपनेठीक है, मैं इसे तुरंत परीक्षण करता हूं।