Bitmex | 注文方法
Bitmex REST API にはパブリックエンドポイントとプライベートエンドポイントがあります。プライベートエンドポイントはトランザクションのセキュリティを高めるためにメッセージの署名が必要です。
まず Bitmex アカウントにログインして新しい API を作成すると、以下の値が取得されます。
これらのフィールドは Bitmex API クライアントコンポーネントの Bitmex プロパティで設定する必要があります。設定後、Bitmex REST API にプライベートリクエストを開始できます。
注文タイプ
すべての注文にはシンボルが必要です。それ以外のフィールドは、特に指定がない限りオプションです。
有効な ordTypes は以下の通りです。
- Limit: デフォルトの注文タイプ。orderQty と price を指定します。
- Market:従来の成行注文。成行注文は約定するか、破産価格に達するまで実行され、その時点でキャンセルされます。
- Stop: ストップマーケット注文。orderQty と stopPx を指定します。stopPx に達すると注文が板に入ります。
- 売り注文の場合、トリガー価格が stopPx より低い場合に注文がトリガーされます。買いの場合は高い場合です。
- 注意: ストップ注文はトリガーされるまでマージンを消費しません。完全にトリガーできるよう、アカウントに必要なマージンが利用可能であることを確認してください。
- クローズストップには orderQty は必要ありません。下記の実行指示を参照してください。
- StopLimit: ストップマーケットに似ていますが、マーケット注文の代わりに指値注文を出します。orderQty、stopPx、price を指定してください。
- MarketIfTouched: Stop に似ていますが、トリガーは逆方向に行われます。利益確定注文に便利です。
- LimitIfTouched: 上記と同様。利益確定指値注文に使用します。
- Pegged: ペッグ注文は、ユーザーが現在の市場価格に対する相対的な指値価格を送信できます。pegPriceType と pegOffsetValue を指定してください。
- ペッグ注文の execInst は Fixed である必要があります。これは、指値価格が注文受諾時に設定され、参照価格が変わっても変更されないことを意味します。
- PrimaryPeg: 価格はニアタッチ価格に対して設定されます。
- MarketPeg: 価格はファータッチ価格に対して設定されます。
- ordType なしで送信された pegPriceType はペッグ注文として扱われます。
実行指示
以下の execInst がサポートされています。複数使用する場合はカンマで区切ります (例: LastPrice,Close)。
- ParticipateDoNotInitiate: Post-Only注文としても知られています。この注文が発注時に約定する場合、代わりにキャンセルされます。これは、注文が転送中に反対側のタッチがあなたに向かって移動するのを防ぐことを目的としています。送信後に反対側のタッチが離れることに賭けることを目的としたものではありません。当社はそのような行為を不正と見なし、監視しています。
- MarkPrice, LastPrice, IndexPrice: 逆指値注文およびイフタッチ注文のトリガー価格の決定に使用されます。いずれか一つのみ使用してください。デフォルトでは MarkPrice が使用されます。ペッグ注文の LastPeg 値を定義するためにも使用されます。
- ReduceOnly: ReduceOnly 注文は既存のポジションを縮小のみ可能で、増加はできません。注文が板で待機中に他の注文によってポジションが縮小された場合、ReduceOnly 指値注文の数量は調整または取り消されます。複数の ReduceOnly 注文がある場合、最も攻撃的でないものが最初に調整されます。
- Close: CloseはReduceOnlyを意味します。Close注文は、オープン数量が現在のポジションを超える場合、同じ側とシンボルを持つ他のアクティブなlimit注文をキャンセルします。これはストップに便利です。これらの注文をキャンセルすることで、Close Stopは実行に必要な証拠金を確保でき、ポジションの全サイズまでしか実行できません。orderQtyが指定されていない場合、Close注文のorderQtyは現在のポジションのサイズに等しくなります。
- orderQtyのないClose注文には側が必要であることに注意してください。これにより、BitMEXはstopPxの上下どちらでトリガーすべきかを判断できます。
- LastWithinMark: 以下の条件を満たす場合にのみストップトリガーを許可するために、LastPriceを使用するストップ注文で使用されます:
- 売りストップマーケット / ストップリミット注文の場合
- 最終価格 <= ストップ価格
- 最終価格 >= マーク価格 × (1 - 5%)
- 買いストップマーケット / ストップリミット注文の場合:
- 最終価格 >= ストップ価格
- 最終価格 <= マーク価格 × (1 + 5%)
- 固定(Fixed): ペグ注文はexecInstをFixedにする必要があります。これはリミット価格が注文受け付け時に設定され、参照価格が変化しても変わらないことを意味します。
ペッグ注文
ペッグ注文では、ユーザーは現在の市場価格に対して相対的な指値価格を提出できます。指値価格は注文提出時に 1 回設定され、参照価格とともに変化しません。この注文タイプは提出後に遠い側が動くことを投機することを意図していません。私たちはそのような動作を悪用と見なし監視しています。
Peggedオーダーは、ordTypeがPegged、execInstがFixedです。
pegPriceTypeとpegOffsetValueも送信する必要があります。
- PrimaryPeg - 価格はニアタッチ価格に対して相対的に設定されます
- MarketPeg - 価格はファータッチ価格に対して相対的に設定されます
トレーリングストップペッグ注文
トレーリングストップを作成するには TrailingStopPeg の pegPriceType を使用します。
価格は提出時に設定され、基礎となる価格(最終/マーク/インデックス)が0.1%以上移動した場合は1秒ごとに更新されます。stopPx は市場がペグから離れるにつれて移動し、市場がペグに近づくと固定されます。
pegOffsetValue を使用して注文の stopPx を設定します。ペグは execInst で指定されたトリガー価格(デフォルトはMarkPrice)に設定されます。ストップセルおよびバイイフタッチオーダーには負のオフセットを使用します。
ordTypeが必要です: Stop、StopLimit、MarketIfTouched、LimitIfTouched。
トレーリングストップ
トレーリングストップを作成するには、'TrailingStopPeg'のpegPriceTypeを使用できます。ペグされたstopPxは、市場がペグから離れる方向に動くと一緒に動き、市場がペグに近づく方向に動くと固定されます。
pegOffsetValue と組み合わせて注文の stopPx を設定するために使用します。ペグは execInst で指定されたトリガー価格(デフォルトは 'MarkPrice')に設定されます。ストップセル注文とバイイフタッチド注文にはマイナスのオフセットを使用してください。
ordTypeが必要です: 'Stop'、'StopLimit'、'MarketIfTouched'、'LimitIfTouched'。
注文の追跡
注文 ID を自分で追跡したい場合は、注文ごとに一意の clOrdID を設定してください。この clOrdID は注文および関連する実行 (WebSocket 上のものも含む) にプロパティとして返ってきて、注文の取得またはキャンセルに使用できます。最大長は 36 文字です。
使用例:
// buy market order
BITMEX.REST_API.PlaceMarketOrder(bmosBuy, 'XBTUSD', 100);
// sell limit order at 45000
BITMEX.REST_API.PlaceLimitOrder(bmosSell, 'XBTUSD', 100, 45000.00);
// stop order at 48000
BITMEX.REST_API.PlaceStopOrder(bmosSell, 'XBTUSD', 100, 48000.00);