あなたは一体どの API を使って注文を出しましたか?Binance USDS-M 先物注文画面と API 注文パラメータの比較分析#
リクエストパラメータの説明#
パラメータ名 | タイプ | 必須 | 説明 |
---|---|---|---|
symbol | STRING | YES | 取引ペア |
side | ENUM | YES | 売買方向 SELL, BUY |
positionSide | ENUM | NO | ポジションの方向、単方向ポジションモードでは必須ではなく、デフォルトで BOTH のみ指定可能;双方向ポジションモードでは必須で、LONG または SHORT のみ選択可能 |
type | ENUM | YES | 注文タイプ LIMIT, MARKET, STOP, TAKE_PROFIT, STOP_MARKET, TAKE_PROFIT_MARKET, TRAILING_STOP_MARKET |
reduceOnly | STRING | NO | true, false; 非双開モードではデフォルトは false; 双開モードではこのパラメータは受け付けない;closePosition を使用する場合はこのパラメータはサポートされない。 |
quantity | DECIMAL | NO | 注文数量、closePosition を使用する場合はこのパラメータはサポートされない。 |
price | DECIMAL | NO | 指値価格 |
newClientOrderId | STRING | NO | ユーザーが定義した注文番号、注文中に重複して現れることはできない。空白の場合、システムが自動的に値を設定する。正規表現ルール ^[.A-Z:/a-z0-9_-]{1,36}$ を満たす必要がある |
stopPrice | DECIMAL | NO | トリガー価格、STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET のみこのパラメータが必要 |
closePosition | STRING | NO | true, false;トリガー後に全てのポジションを決済、STOP_MARKET と TAKE_PROFIT_MARKET のみサポート;quantity とは併用できない;自動的に決済効果を持ち、reduceOnly とは併用できない |
activationPrice | DECIMAL | NO | トレーリングストップのアクティベーション価格、TRAILING_STOP_MARKET のみこのパラメータが必要、デフォルトは現在の市場価格(異なる workingType をサポート) |
callbackRate | DECIMAL | NO | トレーリングストップのコールバック比率、範囲は [0.1, 10]、1 は 1% を表す、TRAILING_STOP_MARKET のみこのパラメータが必要 |
timeInForce | ENUM | NO | 有効方法 GTC/IOC/FOK/GTX/GTD、LIMIT 注文は必須 |
workingType | ENUM | NO | stopPrice トリガータイプ: MARK_PRICE(マーク価格)、CONTRACT_PRICE(契約最新価格)。デフォルトは CONTRACT_PRICE |
priceProtect | STRING | NO | 条件注文トリガー保護:"TRUE","FALSE", デフォルトは "FALSE"。STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET のみこのパラメータが必要 |
newOrderRespType | ENUM | NO | "ACK", "RESULT", デフォルトは "ACK" |
priceMatch | ENUM | NO | OPPONENT/ OPPONENT_5/ OPPONENT_10/ OPPONENT_20/QUEUE/ QUEUE_5/ QUEUE_10/ QUEUE_20;price と同時に送信できない |
selfTradePreventionMode | ENUM | NO | EXPIRE_TAKER/ EXPIRE_MAKER/ EXPIRE_BOTH; デフォルトは NONE |
goodTillDate | LONG | NO | TIF が GTD のときの注文の自動キャンセル時間、timeInforce が GTD のときは必須;渡されたタイムスタンプは秒単位の精度のみ保持され、ミリ秒部分は自動的に無視され、タイムスタンプは現在の時間 + 600s より大きく、253402300799000 より小さくする必要がある |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
パラメータオプションの詳細#
type (注文タイプ)#
API パラメータ | バイナンス中国語インターフェース | 説明 |
---|---|---|
LIMIT | 指値注文 | 指定価格で、指定価格またはそれより良い価格で成立 |
MARKET | 成行注文 | 現在の市場価格で即時に成立 |
STOP | 指値ストップロス | 価格が stopPrice に達したとき、指定された price で指値注文 |
TAKE_PROFIT | 指値利食い | 価格が stopPrice に達したとき、指定された price で指値注文 |
STOP_MARKET | 成行ストップロス | 価格が stopPrice に達したとき、市場価格で注文 |
TAKE_PROFIT_MARKET | 成行利食い | 価格が stopPrice に達したとき、市場価格で注文 |
TRAILING_STOP_MARKET | トレーリング注文 | 価格の変動に応じてストップロス価格を動的に調整 |
その他のバイナンスインターフェース機能の対応:
- Maker のみ =
timeInForce=GTX
- 条件注文 = STOP/TAKE_PROFIT タイプの注文
- 分時注文 =
timeInForce=GTD
+goodTillDate
- 分割注文 = 複数の注文の組み合わせ、単一の API パラメータではない
バイナンス APP の注文画面の "利食い / 損切り" パラメータ:
- 利食い価格 =
stopPrice
(TAKE_PROFIT タイプを選択した場合) - 損切り価格 =
stopPrice
(STOP タイプを選択した場合) - 利食い損切り方式の選択:
- 指値 =
TAKE_PROFIT
またはSTOP
+price
パラメータ - 成行 =
TAKE_PROFIT_MARKET
またはSTOP_MARKET
- 指値 =
- トリガー条件 =
workingType
(マーク価格 / 最新価格)
重要な説明:バイナンス APP 上で同時に利食い損切りを設定する = 複数の注文
APP で利食い損切り機能を選択した場合:
- 主注文:ポジション開設注文(LIMIT または MARKET)
- 利食い注文:TAKE_PROFIT または TAKE_PROFIT_MARKET 注文
- 損切り注文:STOP または STOP_MARKET 注文
実際には3 回 APIを呼び出し、3 つの独立した注文を作成します。利食いまたは損切り注文のいずれかがトリガーされた場合、もう一方は自動的にキャンセルされます(OCO メカニズム)。
実際のケース:成行注文 + 利食い損切り
以下は成行注文画面で利食い損切りを設定した実際の API 呼び出し:
// 1. 主注文:成行買い
{
"type": "MARKET",
"side": "BUY",
"quantity": "0.014",
"price": "0" // 成行注文には価格は不要
}
// 2. 利食い注文:成行利食い(自動生成)
{
"type": "TAKE_PROFIT_MARKET",
"side": "SELL",
"stopPrice": "3700", // 重要:利食いトリガー価格
"reduceOnly": true, // 重要:ポジションを減少させるのみ
"price": "0" // 成行で実行
}
// 3. 損切り注文:成行損切り(自動生成)
{
"type": "STOP_MARKET",
"side": "SELL",
"stopPrice": "3300", // 重要:損切りトリガー価格
"reduceOnly": true, // 重要:ポジションを減少させるのみ
"price": "0" // 成行で実行
}
重要な特徴:
- 利食い損切り注文は自動的に
reduceOnly=true
(ポジションを減少させるのみ)に設定される - 3 つの注文は同じ数量(0.014)を持つ
- 利食い損切り注文は主注文が成立した後に自動的に作成される
reduceOnly (ポジションを減少させるのみ)#
true
- 現在のポジションを減少させることしかできず、ポジションを増やしたり新しいポジションを開設することはできないfalse
- ポジションを増やしたり新しいポジションを開設することができる(デフォルト値)- 注意:双方向ポジションモードではこのパラメータは受け付けない;closePosition を使用する場合はこのパラメータはサポートされない
使用シーン:
- 部分的な決済:既にロングポジションを持っていて、部分的に決済したいが逆方向のショートポジションを開設したくない
- リスク管理:注文がリスクエクスポージャーを減少させることを保証し、増加させない
- 利食い損切り:利食い損切り注文を設定する際、決済のみを希望し逆方向のポジションを開設したくない
- 資金管理:ポジションが強制決済価格に近づいているとき、減少操作のみを許可する
実際の例:
シーン 1 - プログラム取引:
- 100 BTC のロング契約を保有
- プログラムが自動的に 150 BTC を売却する注文を出す(信号やアルゴリズムに基づく可能性あり)
- 安全策として
reduceOnly=true
を設定 - 注文は 100 BTC を決済するだけで、残りの 50 BTC は拒否され、意図しないショートポジションを開設するのを防ぐ
シーン 2 - 損切り注文:
- 50 BTC のショート契約を保有
- 損切り注文を設定:100 BTC を買い、
reduceOnly=true
- トリガー時には 50 BTC のショートポジションのみが決済され、残りの 50 BTC は拒否される
- 損切り注文がロングポジションの開設に変わるのを防ぐ
シーン 3 - 一括決済:
- 同時に複数の契約を保有
- 一括決済の際、特定の契約のポジションは他の注文によって部分的に決済されている可能性がある
reduceOnly=true
は過剰な決済を保証する
主な機能:
- 主に安全保護であり、意図しない過剰取引を防ぐ
- 特にプログラム取引や自動化戦略に適している
通常の注文との違い:
- 通常の注文:売却数量がポジションを超えると、超過部分は待機する
reduceOnly=true
:ポジションを超える部分は直接拒否され、意図しない過剰売却を防ぐ
制限条件:
- 単方向ポジションモード:使用可能
- 双方向ポジションモード:このパラメータはサポートされない
closePosition=true
と互換性がなく、同時に使用できない
closePosition (決済フラグ)#
true
- トリガー後に全てのポジションを決済false
- 決済しない(デフォルト値)- サポートされるのは:STOP_MARKET と TAKE_PROFIT_MARKET のみ
- quantity とは併用できない;自動的に決済効果を持ち、reduceOnly とは併用できない
取引所インターフェース設定に対応:
バイナンス APP で損切りを設定する際:
- 数量選択 → "全て" または "100%" を選択
- 実行方式 → "成行で成立" を選択("指値で成立" ではなく)
- トリガー条件 → "マーク価格" または "最新価格" を選択(これは
workingType
パラメータ) - この時、API は自動的に
closePosition=true
を設定する
実際のシーン:
- ポジション:100 BTC のロング
- APP で損切りを設定し、数量選択で "全て" を選択し、タイプを成行に設定
- 対応する API:
type=STOP_MARKET, closePosition=true
- トリガー時:自動的に全ての 100 BTC を決済し、具体的な数量を指定する必要はない
手動で数量を入力する場合との違い:
- 手動で数量を入力:
quantity=100
- 全てを決済する選択:
closePosition=true
(より便利で、具体的な数量を計算する必要がない)
priceMatch (価格マッチモード)#
取引所 APP で BBO(Best Bid and Offer、最優買売価格)というパラメータが見えるかもしれませんが、実際にはこのパラメータを設定することです
OPPONENT
- 対抗価格(最優買い / 売り価格)OPPONENT_5
- 対抗価格を 5 ティック上昇OPPONENT_10
- 対抗価格を 10 ティック上昇OPPONENT_20
- 対抗価格を 20 ティック上昇QUEUE
- 待機価格(買い / 売り価格)QUEUE_5
- 待機価格を 5 ティック上昇QUEUE_10
- 待機価格を 10 ティック上昇QUEUE_20
- 待機価格を 20 ティック上昇- 注意:price パラメータと同時に使用できない
ティック(最小価格単位)とは何ですか?
- 各契約には最小価格変動単位があります
- 例えば:BTCUSDT 先物のティック = 0.1 USDT
- 5 ティック上昇 = 価格 + (5 × 0.1) = 価格 + 0.5 USDT
実際の例:
現在の BTCUSDT 価格を仮定します:
- 買い価格:50000.0
- 売り価格:50000.1
- ティックサイズ:0.1
したがって:
OPPONENT
= 50000.1(売り価格)OPPONENT_5
= 50000.1 + (5×0.1) = 50000.6QUEUE
= 50000.0(買い価格)QUEUE_5
= 50000.0 + (5×0.1) = 50000.5
selfTradePreventionMode (自己取引防止モード)#
NONE
- 自己取引を防止しない(デフォルト値)EXPIRE_TAKER
- テイカーとしてのとき、新しい注文をキャンセルEXPIRE_MAKER
- メイカーとしてのとき、古い注文をキャンセルEXPIRE_BOTH
- 新旧の注文を両方キャンセル
メイカーとテイカーの区別:
- メイカー(注文を出す者):注文簿に先に掛けられた注文で、流動性を提供する
- テイカー(注文を食う者):既存の注文簿と即時にマッチして成立する注文で、流動性を消費する
- 区別基準:注文の実行タイミングに基づくもので、売買方向ではない
- 先に出された注文 = メイカー
- 後に出された注文 = テイカー
- 買い注文 / 売り注文のどちらもメイカーまたはテイカーになり得る
具体例:
あなたが取引口座を持っていて、同時に BTC/USDT 取引ペアで以下の状況があると仮定します:
- あなたは 50,000 USDT の価格で売り注文を出しました(先に出された注文 = メイカー注文)
- その後、あなたは 50,000 USDT の価格で買い注文を出したいと思います(後に成立 = テイカー注文)
異なるモードの動作:
-
NONE(デフォルト):
- あなたの買い注文は直接あなた自身の売り注文と成立します
- 結果:自己取引が発生し、手数料を支払ったがポジションは変わらない
-
EXPIRE_TAKER:
- システムは自己取引が発生することを検知します
- 新しい買い注文(テイカー)はキャンセルされます
- 元の売り注文(メイカー)はそのまま保持されます
-
EXPIRE_MAKER:
- システムは自己取引が発生することを検知します
- 元の売り注文(メイカー)はキャンセルされます
- 新しい買い注文(テイカー)は他の注文を探して成立します
-
EXPIRE_BOTH:
- システムは自己取引が発生することを検知します
- 新旧の注文が両方キャンセルされます
- 何も成立しません
実際の適用シーン:
- 定量取引ボットはこのような状況によく遭遇します
- グリッド取引戦略で特に一般的です
EXPIRE_TAKER
を使用することで、既存の注文戦略を保護できます
timeInForce (注文の有効時間)#
GTC
- Good Till Cancel、キャンセルされるまで有効IOC
- Immediate or Cancel、即時に実行し、未成立部分はキャンセルFOK
- Fill or Kill、全て成立するか全てキャンセルGTX
- Good Till Crossing、受動的な注文、メイカーのみ(バイナンス APP では "注文タイプ" が "メイカーのみ" として表示される)GTD
- Good Till Date、指定時間にキャンセル(goodTillDate と併用する必要がある)(バイナンス APP では "注文タイプ" が "分時注文" として表示される)
適用される注文タイプ:
LIMIT
- 必須、全ての timeInForce オプションをサポートSTOP
- オプション、デフォルトは GTC、全ての timeInForce オプションをサポートTAKE_PROFIT
- オプション、デフォルトは GTC、全ての timeInForce オプションをサポート
timeInForce をサポートしない:
MARKET
- サポートしない、市場注文は即時に実行STOP_MARKET
- サポートしない、トリガー後に即時に市場注文を実行TAKE_PROFIT_MARKET
- サポートしない、トリガー後に即時に市場注文を実行TRAILING_STOP_MARKET
- サポートしない、トレーリングストップがトリガーされた後に即時に実行
workingType (条件価格タイプ)#
CONTRACT_PRICE
- 契約最新価格(デフォルト値)MARK_PRICE
- マーク価格
"条件価格タイプ" の意味:
- ここでの "条件" はトリガー条件を指し、通常の売買価格ではない
- 条件注文にのみ適用される:STOP、STOP_MARKET、TAKE_PROFIT、TAKE_PROFIT_MARKET
stopPrice
トリガー条件が達成されたかどうかを判断するために使用する価格を決定する
2 つの価格の違い:
CONTRACT_PRICE(契約最新価格):
- 実際に成立した最新価格で、実際の売買注文に基づく
- 大口注文によって急激に引き上げられたり、売り込まれたりする影響を受ける可能性がある
- 変動が大きく、操作されやすい
MARK_PRICE(マーク価格):
- 取引所が計算した "公正価格"
- 通常は現物価格 + 資金費率などの要因に基づいて計算される
- より安定しており、操作されにくく、未実現利益と強制決済価格の計算に使用される
実際の例:
損切り注文を設定:stopPrice = 49,000
- CONTRACT_PRICE モード:契約の最新成立価格が 49,000 を下回ったときにトリガーされる(瞬時にトリガーされる可能性がある)
- MARK_PRICE モード:マーク価格が 49,000 を下回ったときにトリガーされる(より安定しており、操作されにくい)
使用の提案:
- CONTRACT_PRICE:短期取引に適しており、価格に敏感
- MARK_PRICE:瞬時にトリガーされるのを避けるために、より安定して信頼性が高い
priceProtect (価格保護)#
TRUE
- 価格保護を有効にし、価格が過度に乖離するのを防ぐ(5% を超える)FALSE
- 価格保護を無効にする(デフォルト値)- これは:STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET のみ適用される
priceProtect (価格保護) の理解:
主な機能:
- 極端な市場状況で条件注文が市場から大きく乖離した価格で成立するのを防ぐ
- 注文がトリガーされた後、現在の市場価格が合理的かどうかを確認する
作動メカニズム:
- トリガー判断:
workingType
に基づいてstopPrice
に達したかどうかを判断 - 注文トリガー:条件が満たされ、注文を出す準備をする
- 価格保護:
priceProtect=TRUE
が有効な場合、現在の市場価格を確認 - 実行判断:価格が合理的であれば実行し、不合理であれば拒否する
具体的なシーン:
損切り注文を設定したと仮定します:stopPrice = 49,000
、type = STOP_MARKET
価格保護を無効にした場合(FALSE):
- 価格が 49,000 を下回ったとき、即座に市場価格で注文を出す
- 48,000、47,000、さらにはそれ以下の価格で成立する可能性がある(市場流動性が低い場合)
価格保護を有効にした場合(TRUE):
- 価格が 49,000 を下回ったとき、システムは現在の市場価格を確認
- 現在の価格が 48,500(乖離が小さい)であれば、正常に成立
- 現在の価格が 45,000(乖離が大きい)であれば、注文が拒否される
保護の目的:
- 市場が崩壊した際に極端な価格で成立するのを防ぐ
- 流動性不足による大きなスリッページ損失を避ける
- ユーザーに "再考" の機会を与える
適用シーン:
- 特に大口注文に適している
- 市場が激しく変動している時期
- 流動性が低い取引ペア
注意事項:
- 有効にすると損切り注文が実行できない可能性があるため、保護と実行効率のバランスを取る必要がある
workingType
パラメータとは独立しており、任意に組み合わせて使用できる
positionSide (ポジションの方向)#
BOTH
- 単方向ポジションモードのデフォルト値LONG
- 双方向ポジションモードでロングSHORT
- 双方向ポジションモードでショート
ポジションモードの説明:
単方向ポジションモード(デフォルト):
- 同じ取引ペアでは一方向のネットポジションのみを保有できる
- 買い操作:空ポジションがある場合は先に決済し、残りをロングポジションとして開設
- 売り操作:ロングポジションがある場合は先に決済し、残りをショートポジションとして開設
- シンプルで直感的であり、新しいユーザーに適している
- API パラメータ:
positionSide=BOTH
双方向ポジションモード:
- 同じ取引ペアでロングポジションとショートポジションを同時に保有できる
- 開設する方向を明確に指定する必要がある
- より複雑なヘッジ戦略を実行できる
- リスク管理がより複雑で、ロングとショートのポジションを別々に管理する必要がある
- API パラメータ:
positionSide=LONG
またはpositionSide=SHORT
バイナンス APP でポジションモードを切り替える方法:
- 先物取引ページの右上隅にある 3 つの点をクリック
- "ポジションモード" オプションを見つける
- "単方向ポジション" から "双方向ポジション" に切り替える
- 注意:切り替える前に全てのポジションを決済する必要がある
インターフェース表示の違い:
- 単方向ポジション: "買い / 売り" ボタンのみ表示
- 双方向ポジション: "ロング / ショート" の選択、または "ロング / ショート / ロング決済 / ショート決済" ボタンが表示される
注意事項:
- 双方向ポジションモードでは
reduceOnly
パラメータはサポートされない - 双方向ポジションモードでは
positionSide
パラメータを指定する必要がある - 単方向ポジションモードでは
positionSide
パラメータはオプションで、デフォルトはBOTH
newOrderRespType (レスポンスタイプ)#
ACK
- 確認情報、基本的な注文情報を返す(デフォルト値)RESULT
- 注文結果、詳細な注文情報と成立情報を返す
レスポンス例:
ACK レスポンス(基本情報):
{
"orderId": 28,
"symbol": "BTCUSDT",
"status": "NEW",
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"price": "0.1",
"avgPrice": "0.00000",
"origQty": "10",
"executedQty": "0",
"cumQty": "0",
"timeInForce": "GTC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "SELL",
"positionSide": "SHORT",
"stopPrice": "0",
"workingType": "CONTRACT_PRICE",
"priceProtect": false,
"origType": "LIMIT",
"time": 1499827319559,
"updateTime": 1499827319559
}
RESULT レスポンス(詳細情報):
{
"orderId": 28,
"symbol": "BTCUSDT",
"status": "FILLED",
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"price": "0.1",
"avgPrice": "0.10000",
"origQty": "10",
"executedQty": "10",
"cumQty": "10",
"timeInForce": "GTC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "SELL",
"positionSide": "SHORT",
"stopPrice": "0",
"workingType": "CONTRACT_PRICE",
"priceProtect": false,
"origType": "LIMIT",
"time": 1499827319559,
"updateTime": 1499827319559,
"fills": [
{
"price": "0.10000000",
"qty": "5.00000000",
"commission": "0.00000500",
"commissionAsset": "USDT",
"tradeId": 56
},
{
"price": "0.10000000",
"qty": "5.00000000",
"commission": "0.00000500",
"commissionAsset": "USDT",
"tradeId": 57
}
]
}
主な違い:
- ACK:注文の基本状態のみを返し、成立の詳細は含まれない
- RESULT:詳細な成立情報(
fills
配列)と手数料の詳細を含む - パフォーマンス:ACK レスポンスはより速く、RESULT レスポンスは詳細だが少し遅い
各タイプの注文パラメータの詳細#
1. 指値注文#
バイナンス APP で "指値注文" を選択したときに対応する API パラメータ:
完全なパラメータ例:
{
"symbol": "ETHUSDT", // 必須:取引ペア
"side": "BUY", // 必須:売買方向
"type": "LIMIT", // 必須:注文タイプ - 重要なパラメータ
"timeInForce": "GTC", // 必須:有効時間 - 重要なパラメータ
"quantity": "0.1", // 必須:委託数量
"price": "3450.00", // 必須:委託価格 - 重要なパラメータ
// オプションパラメータ
"positionSide": "BOTH", // ポジションの方向(単方向ポジションのデフォルトはBOTH)
"reduceOnly": false, // ポジションを減少させるのみか
"newClientOrderId": "my_order_001", // 自定義の注文ID
"newOrderRespType": "ACK" // レスポンスタイプ
}
2. 成行注文#
バイナンス APP で "成行注文" を選択したときに対応する API パラメータ:
完全なパラメータ例:
{
"symbol": "ETHUSDT", // 必須:取引ペア
"side": "BUY", // 必須:売買方向
"type": "MARKET", // 必須:注文タイプ - 重要なパラメータ
"quantity": "0.1", // 必須:委託数量
// オプションパラメータ
"positionSide": "BOTH", // ポジションの方向(単方向ポジションのデフォルトはBOTH)
"reduceOnly": false, // ポジションを減少させるのみか
"newClientOrderId": "my_order_002", // 自定義の注文ID
"newOrderRespType": "ACK" // レスポンスタイプ
// 注意:成行注文にはpriceパラメータは不要 - 重要な特徴
}
3. 指値ストップロス#
バイナンス APP で利食い / 損切りを選択し、実行方式を "指値" に選択したときに対応する API パラメータ:
損切り注文の完全なパラメータ例:
{
"symbol": "ETHUSDT", // 必須:取引ペア
"side": "SELL", // 必須:売買方向
"type": "STOP", // 必須:注文タイプ - 重要なパラメータ
"quantity": "0.1", // 必須:委託数量
"price": "3400.00", // 必須:トリガー後の実行価格 - 重要なパラメータ
"stopPrice": "3420.00", // 必須:トリガー価格 - 重要なパラメータ
// オプションパラメータ
"timeInForce": "GTC", // 有効時間(デフォルトはGTC)
"workingType": "MARK_PRICE", // トリガー条件:マーク価格/契約最新価格 - 重要なパラメータ
"priceProtect": false, // 価格保護
"positionSide": "BOTH", // ポジションの方向
"reduceOnly": false, // ポジションを減少させるのみか
"newClientOrderId": "my_stop_001", // 自定義の注文ID
"newOrderRespType": "ACK" // レスポンスタイプ
}
利食い注文の完全なパラメータ例:
{
"symbol": "ETHUSDT", // 必須:取引ペア
"side": "SELL", // 必須:売買方向
"type": "TAKE_PROFIT", // 必須:注文タイプ - 重要なパラメータ
"quantity": "0.1", // 必須:委託数量
"price": "3600.00", // 必須:トリガー後の実行価格 - 重要なパラメータ
"stopPrice": "3580.00", // 必須:トリガー価格 - 重要なパラメータ
// オプションパラメータ
"timeInForce": "GTC", // 有効時間(デフォルトはGTC)
"workingType": "MARK_PRICE", // トリガー条件:マーク価格/契約最新価格 - 重要なパラメータ
"priceProtect": false, // 価格保護
"positionSide": "BOTH", // ポジションの方向
"reduceOnly": false, // ポジションを減少させるのみか
"newClientOrderId": "my_tp_001", // 自定義の注文ID
"newOrderRespType": "ACK" // レスポンスタイプ
}
4. 成行ストップロス#
バイナンス APP で利食い / 損切りを選択し、実行方式を "成行" に選択したときに対応する API パラメータ:
損切り注文の完全なパラメータ例:
{
"symbol": "ETHUSDT", // 必須:取引ペア
"side": "SELL", // 必須:売買方向
"type": "STOP_MARKET", // 必須:注文タイプ - 重要なパラメータ
"stopPrice": "3420.00", // 必須:トリガー価格 - 重要なパラメータ
// 数量パラメータ(二択のいずれか)
"quantity": "0.1", // 指定数量
// "closePosition": true, // または全て決済 - 重要なパラメータ
// オプションパラメータ
"workingType": "MARK_PRICE", // トリガー条件:マーク価格/契約最新価格 - 重要なパラメータ
"priceProtect": false, // 価格保護
"positionSide": "BOTH", // ポジションの方向
"newClientOrderId": "my_stop_market_001", // 自定義の注文ID
"newOrderRespType": "ACK" // レスポンスタイプ
// 注意:成行ストップロスにはpriceパラメータは不要、トリガー後に成行で実行 - 重要な特徴
}
利食い注文の完全なパラメータ例:
{
"symbol": "ETHUSDT", // 必須:取引ペア
"side": "SELL", // 必須:売買方向
"type": "TAKE_PROFIT_MARKET", // 必須:注文タイプ - 重要なパラメータ
"stopPrice": "3580.00", // 必須:トリガー価格 - 重要なパラメータ
// 数量パラメータ(二択のいずれか)
"quantity": "0.1", // 指定数量
// "closePosition": true, // または全て決済 - 重要なパラメータ
// オプションパラメータ
"workingType": "MARK_PRICE", // トリガー条件:マーク価格/契約最新価格 - 重要なパラメータ
"priceProtect": false, // 価格保護
"positionSide": "BOTH", // ポジションの方向
"newClientOrderId": "my_tp_market_001", // 自定義の注文ID
"newOrderRespType": "ACK" // レスポンスタイプ
// 注意:成行利食いにはpriceパラメータは不要、トリガー後に成行で実行 - 重要な特徴
}
5. トレーリング注文#
バイナンス APP で "トレーリング注文" を選択したときに対応する API パラメータ:
完全なパラメータ例:
{
"symbol": "ETHUSDT", // 必須:取引ペア
"side": "SELL", // 必須:売買方向
"type": "TRAILING_STOP_MARKET", // 必須:注文タイプ - 重要なパラメータ
"quantity": "0.1", // 必須:委託数量
"activationPrice": "3500.00", // 必須:アクティベーション価格 - 重要なパラメータ
"callbackRate": "1.0", // 必須:コールバック比率(1.0=1%)- 重要なパラメータ
// オプションパラメータ
"workingType": "CONTRACT_PRICE", // 価格タイプ:マーク価格/契約最新価格
"positionSide": "BOTH", // ポジションの方向
"newClientOrderId": "my_trailing_001", // 自定義の注文ID
"newOrderRespType": "ACK" // レスポンスタイプ
// 注意:トレーリング注文にはpriceとstopPriceパラメータは不要 - 重要な特徴
// アクティベーション条件:売り注文のactivationPriceは現在の価格より高くなければならない
}
6. メイカーのみ#
バイナンス APP で "メイカーのみ" を選択したときに対応する API パラメータ:
完全なパラメータ例:
{
"symbol": "ETHUSDT", // 必須:取引ペア
"side": "BUY", // 必須:売買方向
"type": "LIMIT", // 必須:注文タイプ
"timeInForce": "GTX", // 必須:有効時間 - 重要なパラメータ(必ずGTXである必要がある)
"quantity": "0.1", // 必須:委託数量
"price": "3450.00", // 必須:委託価格
// オプションパラメータ
"positionSide": "BOTH", // ポジションの方向(単方向ポジションのデフォルトはBOTH)
"reduceOnly": false, // ポジションを減少させるのみか
"newClientOrderId": "my_gtx_001", // 自定義の注文ID
"newOrderRespType": "ACK" // レスポンスタイプ
// 重要な特徴:注文が即時に成立する場合(テイカーになる場合)、システムは注文を拒否します
// 流動性提供者としてのみ機能し、メイカー手数料を享受します
}
7. 条件注文#
条件注文は STOP、TAKE_PROFIT タイプの注文の一般的な呼称で、詳細なパラメータは "指値ストップロス" と "成行ストップロス" の章を参照してください。
条件注文の重要な特徴:
- 含まれる:STOP、TAKE_PROFIT、STOP_MARKET、TAKE_PROFIT_MARKET
- すべてに
stopPrice
トリガー価格が必要 - 重要なパラメータ - 指値または成行で実行を選択可能
workingType
(トリガー条件)とpriceProtect
(価格保護)パラメータをサポート- トリガー条件が達成されたときのみ注文がアクティブになる
8. 分時注文(TWAP)#
バイナンス APP で "分時注文" を選択したときに対応する API パラメータ:
完全なパラメータ例:
{
"symbol": "ETHUSDT", // 必須:取引ペア
"side": "BUY", // 必須:売買方向
"type": "LIMIT", // 必須:注文タイプ
"timeInForce": "GTD", // 必須:有効時間 - 重要なパラメータ(必ずGTDである必要がある)
"quantity": "0.1", // 必須:委託数量
"price": "3450.00", // 必須:委託価格
"goodTillDate": 1640995200000, // 必須:期限のタイムスタンプ - 重要なパラメータ
// オプションパラメータ
"positionSide": "BOTH", // ポジションの方向(単方向ポジションのデフォルトはBOTH)
"reduceOnly": false, // ポジションを減少させるのみか
"newClientOrderId": "my_twap_001", // 自定義の注文ID
"newOrderRespType": "ACK" // レスポンスタイプ
// 重要な特徴:システムは大きな注文を複数の小さな成行注文に分割します
// 指定された時間内に分割して実行し、時間加重平均価格を実現します
}
9. 分割注文#
分割注文は単一の API パラメータではなく、複数の注文の組み合わせです:
実現方法:
- 大きな注文を複数の小さな注文に分割
- 各小さな注文は独立して下される
- 異なる価格の指値注文の組み合わせである可能性がある
- または、時間を分けて実行される注文のシーケンスである可能性がある
完全なパラメータ例(複数の独立した注文):
// 注文1 - 高い価格
{
"symbol": "ETHUSDT", // 必須:取引ペア
"side": "BUY", // 必須:売買方向
"type": "LIMIT", // 必須:注文タイプ
"timeInForce": "GTC", // 必須:有効時間
"quantity": "0.05", // 必須:委託数量
"price": "3450.00", // 必須:委託価格 - 重要なパラメータ
"newClientOrderId": "batch_001_1" // 自定義の注文ID
}
// 注文2 - 低い価格
{
"symbol": "ETHUSDT", // 必須:取引ペア
"side": "BUY", // 必須:売買方向
"type": "LIMIT", // 必須:注文タイプ
"timeInForce": "GTC", // 必須:有効時間
"quantity": "0.05", // 必須:委託数量
"price": "3440.00", // 必須:委託価格 - 重要なパラメータ
"newClientOrderId": "batch_001_2" // 自定義の注文ID
}
// 重要な特徴:複数の異なる価格の注文を通じて階層的な買い/売り戦略を実現
パラメータ依存関係のまとめ#
価格関連パラメータ#
LIMIT
タイプ:price
を必ず提供する必要があるMARKET
タイプ:価格パラメータは不要STOP
/TAKE_PROFIT
タイプ:price
とstopPrice
が必要STOP_MARKET
/TAKE_PROFIT_MARKET
タイプ:stopPrice
のみが必要TRAILING_STOP_MARKET
タイプ:activationPrice
とcallbackRate
が必要
数量関連パラメータ#
- 大部分の注文タイプは
quantity
が必要 STOP_MARKET
/TAKE_PROFIT_MARKET
はclosePosition=true
を代わりに使用できるTRAILING_STOP_MARKET
は明示的に数量を指定する必要はない
時間有効性パラメータ#
LIMIT
注文:timeInForce
を必ず指定する必要があるSTOP
/TAKE_PROFIT
注文:オプションで、デフォルトは GTC、全ての timeInForce オプションをサポート- 他の注文タイプ:通常このパラメータは必要ない
注意事項#
メイカーとテイカーの判断ルール#
多くの人が注文タイプがメイカー / テイカーの役割を決定すると誤解していますが、実際には:
重要な判断基準:
- 注文が既存の注文簿と即時に成立するかどうかであり、注文タイプ自体ではない
成行注文:
- 通常はテイカー:成行注文は即時に現在の最優価格で成立するため
- 極めて稀な例外:流動性が極端に不足している場合、成行注文が部分的にメイカーになる可能性がある
指値注文:
- メイカーになる可能性がある:指値注文の価格が即時に成立しない場合、注文簿に掛けられ、待機する
- テイカーになる可能性もある:指値注文の価格が即時に既存の注文とマッチして成立する場合
具体例:
指値注文がテイカーとして機能する場合:
- 現在の売り価格:50,000 USDT
- あなたが指値買い注文を出す:50,000 USDT(即時成立)
- 結果:あなたの指値注文はテイカー
指値注文がメイカーとして機能する場合:
- 現在の売り価格:50,000 USDT
- あなたが指値買い注文を出す:49,950 USDT(即時成立しない)
- 結果:あなたの指値注文は注文簿に掛けられ、メイカーになる
成行注文がテイカーとして機能する場合(一般的):
- あなたが成行買い注文を出す
- 即時に現在の最優売り価格で成立する
- 結果:あなたはテイカー
selfTradePreventionMode への影響:
- システムは実際のメイカー / テイカーの役割に基づいて防止ルールを適用します
- 注文タイプに基づくのではなく、最終的な成立役割に基づきます
メイカーになることを保証する方法#
メイカーはより低い手数料を享受するため、多くのトレーダーは自分の注文がメイカーになることを保証したいと考えています:
1. 使用する timeInForce=GTX
- GTX(Good Till Crossing):受動的な注文、メイカーのみ
- 注文が即時に成立する場合(テイカーになる場合)、システムは注文を拒否します
- これは最も直接的で安全な方法です
2. 価格戦略
- 買い注文:価格を現在の買い価格より低く設定
- 売り注文:価格を現在の売り価格より高く設定
- こうすることで、注文は注文簿に掛けられ、成立を待つことになります
3. priceMatch の待機価格を使用
QUEUE
:待機価格(買い / 売り価格)QUEUE_5/10/20
:待機価格を基に少し最適化- 100% の保証ではありませんが、メイカーになる可能性が高いです
実際の例:
現在の BTCUSDT を仮定します:買い価格 49,950、売り価格 50,000
メイカーになることを保証するための注文:
// 買い注文をメイカーとして行う
{
"side": "BUY",
"price": "49,940", // 買い価格より低い
"timeInForce": "GTX"
}
// 売り注文をメイカーとして行う
{
"side": "SELL",
"price": "50,010", // 売り価格より高い
"timeInForce": "GTX"
}
最も安全な組み合わせ:
timeInForce=GTX
を使用し、適切な価格戦略を組み合わせることで、価格判断が誤っても、システムは注文を拒否し、意図しないテイカーになるのを防ぎます。