বিটমেক্স এক্সচেঞ্জ এপিআই নোট

লেখক:ঘাস, তৈরিঃ 2019-04-04 11:40:52, আপডেটঃ 2024-02-05 20:09:52

BitMEX এক্সচেঞ্জ API ব্যবহারের বিষয় (BitMEX exchange API note)

img

এফএমজেড প্ল্যাটফর্ম এপিআই ডক আমাদের সাথে টেলিগ্রাম গ্রুপে যোগ দিন

www.fmz.com(পূর্বে বটভি) একটি পরিমাণগত কৌশল ট্রেডিং প্ল্যাটফর্ম যেখানে আপনি সহজেই পরিমাণগত কৌশল শিখতে, লিখতে, শেয়ার করতে এবং ট্রেড করতে পারেন।

  • আমাদের প্ল্যাটফর্মের অনেক সুবিধা আছে:

    • 1, ক্রস-প্ল্যাটফর্ম, সব প্রধান ট্রেডিং এক্সচেঞ্জ সমর্থন, কৌশল আমাদের প্ল্যাটফর্মে লেখা সব প্রধান এক্সচেঞ্জ জন্য উপযুক্ত.
    • ২, শুরু করা সহজ, নির্দিষ্ট এপিআই ডকুমেন্টেশন এবং ক্লাসিকাল টেমপ্লেট কৌশল ব্যবহারকারীদের সত্যিই দ্রুত শুরু করতে সাহায্য করে।
    • ৩. এটিতে একটি কার্যকর সিমুলেট ব্যাকটেস্টিং সিস্টেম রয়েছে।
    • 4、ই-মেইল পাঠানো, আপনার ফোনে বার্তা পাঠানো সমর্থন করে।
    • ৫, ওয়েব-ভিত্তিক নিয়ন্ত্রণ ব্যবস্থা, আপনার ফোনের মাধ্যমে অ্যাক্সেস করা যাবে।
    • 6、সম্পূর্ণ পাইথন\C++\জাভাস্ক্রিপ্ট প্রোগ্রামিং সমর্থন
    • ৭、স্পট এবং ফিউচার ট্রেডিং সমর্থন করবে এবং ভবিষ্যতে আরও এক্সচেঞ্জকে সমর্থন করবে।
    • ৮, খরচ অত্যন্ত কম। বর্তমান বিনিময় হারের ভিত্তিতে প্রতি ঘণ্টায় ০.১২৫ ইউএনবিঃ ইউএসডিসিএনই ৬.৯৩০৩, যার অর্থ প্রতি ঘণ্টায় ০.০১৮০৪ ডলার।
    • আমাদের ওয়েবসাইটে কোন API-KEY বা পাসওয়ার্ড সংরক্ষিত হয় না। FMZ কোন নিরাপত্তা সমস্যা ছাড়াই চার বছরেরও বেশি সময় ধরে চলছে।

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));
}
  • বিটমেক্সে আপনার অ্যাকাউন্টের তথ্য পরীক্ষা করুন।

    img

    বট দ্বারা তথ্য লগ করুন, যা বিটমেক্সের সাথে একই।

    img

  • লগ পজিশন after changing leverage, the leverage has been changed (বাজার মূল্যের পরিবর্তনের পরে লিভারেজ, আগে-পরে হোল্ডিংয়ের তথ্যের বিপরীতে)

    img

  • Use Go function to cover your positions at the same time. (গো ফাংশনকে অসামঞ্জস্যপূর্ণ মাল্টি-থ্রেড সমতলকরণ কল করুন)

      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"}]
  • নোটঃ

    • ১, BitMEX only supoort K-line periods of 1m, 5m, 1h, 1d. ((BitMEX এর K-line cycle শুধুমাত্র ১ মিনিট, ৫ মিনিট, ১ ঘন্টা, ১ দিন এই cycle গুলোকে সমর্থন করে।))

      সর্বশেষতম হোস্ট ব্যবহার করে, তলটি স্বয়ংক্রিয়ভাবে কে-লাইন সংমিশ্রণ করতে পারে, কিছু বিটিএমএক্স সমর্থিত নয় এমন কে-লাইন চক্র ডেটাও সংমিশ্রণ করা যায়, তাই এটি আর কে-লাইন চক্র সেট করার সময় সীমাবদ্ধ নয়।1分钟、5分钟、1小时、1天এই চক্রগুলি, সমস্ত চক্রগুলি সেট করা যেতে পারে।

      img

    • ২, টেস্ট 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

    • ৩. holding position এর সময় leverage পরিবর্তন করা যেতে পারে।

    • ৪, সমর্থনexchange.IOfunction for more 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 (পজিশন/লেভারেজ এপিআই সরাসরি কল করুন)

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

আরো