資源の読み込みに... 荷物...

BitMEX 取引所の API 備注

作者: リン・ハーン発明者 量化 - 微かな夢, 作成日: 2017-05-08 18:39:32, 更新日: 2023-07-27 20:40:27

BitMEX取引所APIの使用事項 (BitMEX exchange API note)

FMZ プラットフォーム API ドック テレグラムのグループに参加してください

www.fmz.com(以前はBotVs) は,量的な戦略の取引プラットフォームで,簡単に量的な戦略を学び,書き,共有し,取引することができます.

  • 私たちのプラットフォームには多くの利点があります:

    • 1、クロスプラットフォーム,すべての主要取引所のサポート, 戦略はすべての主要な取引所に適しています.
    • 2、簡単に起動し,特定のAPIのドキュメントと古典的なテンプレート戦略は,ユーザーが本当に早く起動するのを助けます.
    • 3、 効果的なシミュレーションバックテストシステムがあります.
    • 4、メールを送信し,携帯にメッセージを送信します.
    • 5、Webベースの制御メカニズム,あなたの電話でアクセスできます.
    • 6、完全な Python\C++\JavaScript プログラミングをサポートする
    • 7、スポット取引と先物取引を支援し,今後もより多くの取引を支援する.
    • 8、コストは極めて低額です. 現行の為替レートに基づく時給0.125人民元:USDCNY6.9303,つまり時給0.01804ドルです.
    • 9、ウェブサイトにはAPIキーやパスワードが保存されていません. FMZは4年以上にわたってセキュリティ上の問題なく動作しています.

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

  • ローグポジション after changing leverage, the leverage has been changed (レバレッジが変更された後,レバレッジが変更された)

    img

  • Go関数を使って,自分のポジションを同時にカバーします.

      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は,1m,5m,1h,1dのKライン周期のみに対応している.

      最新のホストを使用すると,底層は自動的にK線を合成することができ,BITMEXがサポートしていないいくつかの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 (ポジション/レバレッジ 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 (ゲットアカウント) のデータも間違っています. {"Stocks": 0.00841059, "FrozenStocks": 0.0092248, "Balance": 0, "FrozenBalance": 0} 0.92248 ではなく 0.02248 ではなく 0.02248 ではなく 0.02248 ではなく 0.02248 ではなく 0.0です

ベリーヴexchange.IO (("api", httpMethod, resource, params) を使ってbitmexのrestインターフェースを呼び出すエラーが報告されています. このURLは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") ログ (深さ) 実行後ログのエラー: Futures_BitMEX エラー Futures_OP 4: 401: {"error":{"message":"Signature not valid.","name":"HTTPError"}} 私のakskは問題ありません. 他のAPIでは通して呼び出せるので,この原因を見せて下さい.

ビクター997こんにちは ドロッカーが追加できません パスワードが間違っています すべてのステップで助けが必要です. 可能な限り,私はプレートフォームを追加することができます. ありがとう ビクター997

8人の油断者BitMEXがwebsocektモードをサポートできるのはいつですか? 現在,5分300回の取引の頻度制限はあまりにも大きいです.

ケゾhttps://dn-filebox.qbox.me/bf29e11e9f2d707808ccd006406bb3026a794876.png 追加プラットフォームでは,なぜBitmexが表示されないのか?スクリーンショットにはKrakenも含まれていません.

イトレツクこんにちは,私はBotvsに新しいです,私はbitmexのためにこれをどのように使用できますか?

ルイスルBitMexに対して,このプラットフォームにリクエストシステムがあるか.

JBitMEXのGetRecordsが返したK線データの最後の値はリアルタイムではないため,リアルタイムで各指標を計算することができない. この問題は長年存在し,BitMEXのAPIの欠陥であり,解決方法がない. リアルタイムで BitMEXのデータを収集している BotVSは, BitMEXのリアルタイムデータを補完できるでしょうか?

JBitMEXのK線データはどのように入手されますか? GetRecordsは使えないようです.

ニン公子ドーム総,私は問題を見つけました,bitMEXが人民元にレートを設定した後,取引ができません~何の問題かわかりません,ドーム総をお願いします~

Jこの牛は,レバー操作もできます.

発明者 量化 - 微かな夢shadowsocksは,真のグローバル代理ではなく,すべての代理コンピュータのネットワークアクセスがない. 現在,最も簡単な方法は,他の地域のサーバーでホストを実行することです.

ボボ188ありがとうございました.私は白人です.

発明者 量化 - 微かな夢HttpQueryで直接アクセスする 取引所 インターフェイス パラメータ指定 データを取得する

発明者 量化 - 微かな夢QQ: 359706687 を追加してください.

発明者 量化 - 微かな夢そう,あなたが呼び出すのは深度を取得するインターフェースで,このインターフェースは署名なしで暗号化されるべきである.暗号化要求のインターフェースは,exchange.IOを呼び出す.非暗号化要求は,HttpQuery (pythonは urlib リビューリーを使用) を使用し,HttpQueryは非暗号化インターフェースの要求を処理する.

発明者 量化 - 微かな夢応援してくれてありがとう システムで何を実行したいですか? BotVS はサポートされています: - windows 64bit, 32bit (CLI,インターフェイス) - MAC OSX (cmdライン) - Linux 64ビット, 32ビット (cmdライン) - ARM Linux (cmdライン) ステップごとにドーカーを追加します. メッセージを待ってる!

発明者 量化 - 微かな夢BITMEXのWSプロトコルは暫定的にサポートされていません.

ケゾ、、 そうですね,IEはできます.

発明者 量化 - 微かな夢外盤のプラットフォームは,現在,再テストデータがないため,サポートが計画されている. あなたは,ブラウザを試すために,ブラウザを変更した可能性があります.

発明者 量化 - 微かな夢ステップを使用: ロボットというプログラムを実行します. この場所からダウンロードできます. https://dn-filebox.qbox.me/cfe3c7fab12e72b6dae4ca238dde150e5d8bcd56.png 2、プラットフォームを追加: BitMEXのAPIKEYの設定: https://dn-filebox.qbox.me/5527bc725b11109774c5bdf152c80974542d59ed.png https://dn-filebox.qbox.me/c953a7570513cb6e5800a4775df67cbcbc9135b8.png https://dn-filebox.qbox.me/6a8077d08bae2ac3ba5c4f57eb88af5c0683e4f6.png ロボットとバインド戦略をロボットで追加します https://dn-filebox.qbox.me/290a20859a186b27af4058019259134b6b48bda5.png https://dn-filebox.qbox.me/5e797e71b6c7c0bfda4860f7b1073aa69b499f64.png https://dn-filebox.qbox.me/74307cc14fa0039695e4608c955c2b7d71789b10.png

イトレツクBitMex を BotVS に使うには Web サイトで示した手順は?

発明者 量化 - 微かな夢BotVS を使ってくれてありがとう ^^,BotVS は既に BitMEX をサポートしています.

発明者 量化 - 微かな夢こんにちは,今のところ,BITMEXのテストシステムはサポートされていません.

発明者 量化 - 微かな夢プッシュインを深層にコピーできます.

J変数を押すだけでいいのです.

発明者 量化 - 微かな夢J大 ~ この GetRecords で取得した行列は引用で転送され, push が入ると次の取得で push の要素が表示されます.

発明者 量化 - 微かな夢試しにやってみる ちょっと待って

Jこの最後のリアルタイムデータも追加したいのですが,問題がありました. exchange.SetContractType (『XBTUSD』) について // GetRecordsでデータを取得する records = exchange.GetRecords (エクスチェンジ) ログ (レコード) // そして最後の値を自分で追加します. records.push (レコード.プッシュ) Time:records [records.length-1].Time + 3600000, タイム:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード:レコード) [記録.長さ-1] [記録.長さ-1] [記録.長さ-1] (笑) ログ (レコード) // 10秒間休憩してGetRecordsをリコールする スリープ (10000) records = exchange.GetRecords (エクスチェンジ) // なぜ最後に追加したデータが残っているのですか? ログ (レコード)

発明者 量化 - 微かな夢Jさん ありがとうございました テストしてみます 記録報告です

発明者 量化 - 微かな夢契約は,BITMEXで契約されたものです.

J通貨の設定は,まずは, exchanges.SetContractType (('XBTUSD')) について records = exchanges.GetRecords (エクスチェンジ)

発明者 量化 - 微かな夢じゃあ,調べてみよう.

ニン公子ほら,それも可能だ,試してみよう~

発明者 量化 - 微かな夢価格の小数点を_Nで制限できる.多くの取引所では,小数点の値引きを制限し,一般的に4位小数点を超えない.

ニン公子夢は早すぎる,Sell ((12319.94890, 100.00000): 400: {"error":{"message":"Invalid price tickSize","name":"HTTPError"}}, 価格がドルに変換されずに報じられ,価格が異常に偏り,挂牌が与えられていないと感じています.

発明者 量化 - 微かな夢テストをやってみます.