APIリファレンス¶
共通概念 ¶
取引高、価格、注文タイプ、有効期限
取引高¶
取引高はセント(0.0000001ロット単位)で指定されます。
| ロット | 取引高(セント) |
|---|---|
| 0.01 | 100,000 |
| 0.1 | 1,000,000 |
| 1.0 | 10,000,000 |
価格¶
価格値はピペットで表されます。 変換方法:display_price = pipette_value / 10^pipDigits
EURUSD(5桁)の場合、ピペット値112345 = 1.12345となります。
注文タイプ¶
| タイプ | 説明 | 必須フィールド |
|---|---|---|
MARKET | 現在の価格で即座に実行 | symbolId、tradeSide、volume |
LIMIT | 指値価格またはそれより有利な価格で実行 | + limitPrice |
STOP | 市場がストップ価格に達したときにトリガー | + stopPrice |
MARKET_RANGE | 価格範囲内で実行 | + baseSlippagePrice |
STOP_LIMIT | ストップ価格でトリガーされる指値注文 | + stopPrice、limitPrice |
有効期限¶
| ポリシー | 説明 |
|---|---|
GOOD_TILL_CANCEL | 約定またはキャンセルされるまで注文が有効 |
GOOD_TILL_DATE | 指定されたexpirationTimestampで注文が失効 |
IMMEDIATE_OR_CANCEL | 即座に利用可能な分を約定し、残りをキャンセル |
口座情報 ¶
GET /v1/balance Get account balance
口座残高、有効証拠金、余剰証拠金を返します。
パラメータなし。
200 成功レスポンス
{
"balance": 10000.00,
"equity": 10250.75,
"freeMargin": 9800.50,
"balanceVersion": 42,
"moneyDigits": 2,
"depositAssetId": 1
}
| フィールド | 種類 | 説明 |
|---|---|---|
balance | double | 入金通貨での口座残高 |
equity | double | 残高 + 含み損益 |
freeMargin | double | 新規取引に利用可能な証拠金 |
balanceVersion | int64 | 残高バージョンカウンター |
moneyDigits | int32 | 金額の小数点以下桁数 |
depositAssetId | int64 | 入金通貨の資産ID |
GET /v1/symbols 利用可能なシンボルを取得
口座で取引可能なすべてのシンボルを返します。
パラメータなし。
200 Symbolオブジェクトの配列
[
{
"symbolId": 1,
"symbolName": "EURUSD",
"enabled": true,
"baseAssetId": 2,
"quoteAssetId": 1,
"description": "Euro vs US Dollar"
}
]
Symbol
| フィールド | 種類 | 説明 |
|---|---|---|
symbolId | int64 | シンボルID(他のAPI呼び出しで使用) |
symbolName | string | シンボル名(例:「EURUSD」) |
enabled | boolean | シンボルが取引可能かどうか |
baseAssetId | int64 | 基軸資産ID |
quoteAssetId | int64 | 決済資産ID |
description | string | 人間が読める説明 |
GET /v1/assets 利用可能な資産を取得
利用可能な資産(通貨)を返します。
パラメータなし。
200 Assetオブジェクトの配列
[
{
"assetId": 1,
"name": "USD",
"displayName": "US Dollar"
}
]
Asset
| フィールド | 種類 | 説明 |
|---|---|---|
assetId | int64 | 資産ID |
name | string | 資産コード(例:「USD」) |
displayName | string | 表示名 |
市場データ ¶
GET /v1/prices スポット価格を取得
指定されたシンボルの現在の売値/買値を返します。 これはスナップショットです。APIはストリーミングをサポートしていません。
| 名前 | 配置場所 | 種類 | 必須 | 説明 |
|---|---|---|---|---|
symbolId | query | int64[] | カンマ区切りのシンボルID |
200 SpotPriceオブジェクトの配列
[
{
"symbolId": 1,
"bid": 112340,
"ask": 112355,
"high": 112890,
"low": 111950,
"sessionClose": 112100,
"timestamp": 1700000000000
}
]
SpotPrice
| フィールド | 種類 | 説明 |
|---|---|---|
symbolId | int64 | シンボルID |
bid | int64 | 最良売値(ピペット) |
ask | int64 | 最良買値(ピペット) |
high | int64 | セッション高値(ピペット) |
low | int64 | セッション安値(ピペット) |
sessionClose | int64 | 前セッション終値(ピペット) |
timestamp | int64 | クォートタイムスタンプ(エポックミリ秒) |
GET /v1/trendbars 過去のOHLCVデータを取得
シンボルの過去のローソク足(OHLCV)データを返します。
| 名前 | 配置場所 | 種類 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|---|
symbolId | query | int64 | – | シンボルID | |
period | query | string | – | バー期間 | |
fromTimestamp | query | string | – | 開始時刻(ISO-8601) | |
toTimestamp | query | string | – | 終了時刻(ISO-8601) | |
count | query | int32 | 100 | 返す最大バー数 |
利用可能な期間
M_1 M_2 M_3 M_4 M_5 M_10 M_15 M_30 H_1 H_2 H_3 H_4 H_6 H_8 H_12 D_1 W_1 MN_1
200 Trendbarオブジェクトの配列
[
{
"timestamp": 1700000000000,
"open": 112340.0,
"high": 112890.0,
"low": 111950.0,
"close": 112500.0,
"volume": 4521
}
]
Trendbar
| フィールド | 種類 | 説明 |
|---|---|---|
timestamp | int64 | バーの開始時刻(エポックミリ秒) |
open | double | 始値(ピペット) |
high | double | 高値(ピペット) |
low | double | 安値(ピペット) |
close | double | 終値(ピペット) |
volume | int64 | ティック・ボリューム |
注文 ¶
POST /v1/orders 新規注文を実行
新規取引注文を実行します。 ExecutionResponseを返します。
パスまたはクエリパラメータはありません。
| フィールド | 種類 | 必須 | 説明 |
|---|---|---|---|
symbolId | int64 | 取引する通貨ペア | |
orderType | string | MARKET, LIMIT, STOP, MARKET_RANGE, STOP_LIMIT | |
tradeSide | string | BUYまたはSELL | |
volume | int64 | セント単位の取引高 | |
limitPrice | double | 指値価格 – LIMIT、STOP_LIMITに必須 | |
stopPrice | double | ストップトリガー価格 – STOP、STOP_LIMITに必須 | |
stopLoss | double | 損切り価格 | |
takeProfit | double | 利食い価格 | |
comment | string | フリーテキストコメント(最大256文字) | |
label | string | ボットラベル(最大100文字) | |
timeInForce | string | GOOD_TILL_CANCEL, GOOD_TILL_DATE, IMMEDIATE_OR_CANCEL | |
baseSlippagePrice | double | スリッページの基準価格 – MARKET_RANGEに必須 | |
slippageInPoints | int32 | 最大スリッページ(ポイント) | |
expirationTimestamp | int64 | 有効期限タイムスタンプ(エポックミリ秒) – GOOD_TILL_DATE用 |
{
"symbolId": 1,
"orderType": "MARKET",
"tradeSide": "BUY",
"volume": 10000000,
"stopLoss": 112000,
"takeProfit": 113000
}
200 ExecutionResponse – 注文が受理または約定されました
400 INVALID_REQUESTまたはTRADING_BAD_VOLUME
422 NOT_ENOUGH_MONEY
409 MARKET_CLOSED
{
"orderId": 12345,
"positionId": 67890,
"executionType": "ORDER_FILLED",
"order": { "..." : "..." },
"position": { "..." : "..." },
"deal": { "..." : "..." }
}
GET /v1/orders 予約注文を取得
すべての予約注文(未約定)を返します。
パラメータなし。
200 予約注文オブジェクトの配列
PUT /v1/orders/{orderId} 予約注文を修正
既存の予約注文を修正します。 ExecutionResponseを返します。
| 名前 | 配置場所 | 種類 | 必須 | 説明 |
|---|---|---|---|---|
orderId | path | int64 | 修正する注文 |
以下のフィールドの任意のサブセット。
| フィールド | 種類 | 説明 |
|---|---|---|
volume | int64 | 新しい取引高(セント) |
limitPrice | double | 新しい指値価格 |
stopPrice | double | 新しいストップ価格 |
stopLoss | double | 新しい損切り価格 |
takeProfit | double | 新しい利食い価格 |
expirationTimestamp | int64 | 新しい有効期限タイムスタンプ(エポックミリ秒) |
200 ORDER_REPLACEDを含むExecutionResponse
404 注文が見つかりません
DELETE /v1/orders/{orderId} 予約注文をキャンセル
予約注文をキャンセルします。 ExecutionResponseを返します。
| 名前 | 配置場所 | 種類 | 必須 | 説明 |
|---|---|---|---|---|
orderId | path | int64 | キャンセルする注文 |
200 ORDER_CANCELLEDを含むExecutionResponse
404 注文が見つかりません
GET /v1/orders/history 注文履歴を取得
時間範囲内の過去の注文を返します。
| 名前 | 配置場所 | 種類 | 必須 | 説明 |
|---|---|---|---|---|
fromTimestamp | query | string | 開始時刻(ISO-8601) | |
toTimestamp | query | string | 終了時刻(ISO-8601) |
200 OrderListResponse
| フィールド | 種類 | 説明 |
|---|---|---|
orders | Order[] | 過去の注文の配列 |
hasMore | boolean | 追加ページが利用可能かどうか |
ポジション ¶
GET /v1/positions オープンポジションを取得
すべてのオープンポジションと予約注文を返します。
パラメータなし。
200 Positionオブジェクトの配列
[
{
"positionId": 67890,
"symbolId": 1,
"tradeSide": "BUY",
"volume": 10000000,
"entryPrice": 112345.0,
"stopLoss": 112000.0,
"takeProfit": 113000.0,
"unrealizedPnl": 155.25,
"commission": -7.00,
"swap": -1.20
}
]
ポジション
| フィールド | 種類 | 説明 |
|---|---|---|
positionId | int64 | ポジションID |
symbolId | int64 | シンボルID |
tradeSide | string | BUYまたはSELL |
volume | int64 | セント単位の取引高 |
entryPrice | double | VWAP約定価格 |
stopLoss | double | 損切り価格 |
takeProfit | double | 利食い価格 |
unrealizedPnl | double | 含み損益 |
commission | double | 請求された手数料 |
swap | double | スワップ金額 |
GET /v1/positions/{positionId} ポジション詳細を取得
関連する注文と取引を含むポジションを返します。
| 名前 | 配置場所 | 種類 | 必須 | 説明 |
|---|---|---|---|---|
positionId | path | int64 | ポジションID |
200 PositionDetailResponse
| フィールド | 種類 | 説明 |
|---|---|---|
position | Position | ポジションオブジェクト |
orders | Order[] | 関連する注文 |
deals | Deal[] | 関連する取引 |
PUT /v1/positions/{positionId} ポジションの損切り/利食いを修正
オープンポジションの損切りおよび/または利食いを更新します。 ExecutionResponseを返します。
| 名前 | 配置場所 | 種類 | 必須 | 説明 |
|---|---|---|---|---|
positionId | path | int64 | ポジションID |
| フィールド | 種類 | 説明 |
|---|---|---|
stopLoss | double | 新しい損切り価格(削除する場合はnull) |
takeProfit | double | 新しい利食い価格(削除する場合はnull) |
trailingStopLoss | boolean | トレーリング損切りを有効化 |
{
"stopLoss": 111500,
"takeProfit": 113500,
"trailingStopLoss": false
}
POST /v1/positions/{positionId}/close ポジションを決済
オープンポジションを全部または一部決済します。 一部決済の場合は、ポジションの全取引高より小さい値を使用してください。 ExecutionResponseを返します。
| 名前 | 配置場所 | 種類 | 必須 | 説明 |
|---|---|---|---|---|
positionId | path | int64 | ポジションID |
| フィールド | 種類 | 必須 | 説明 |
|---|---|---|---|
volume | int64 | 決済する取引高(セント単位) |
{
"volume": 10000000
}
422 NOT_ENOUGH_MONEY – 一部決済に必要な証拠金が不足しています
Deals ¶
GET /v1/deals 取引履歴を取得
指定された期間内に実行された取引を返します。
| 名前 | 配置場所 | 種類 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|---|
fromTimestamp | query | string | – | 開始時刻(ISO-8601) | |
toTimestamp | query | string | – | 終了時刻(ISO-8601) | |
maxRows | query | int32 | 50 | 返す取引の最大数 |
200 取引オブジェクトの配列
[
{
"dealId": 11111,
"orderId": 12345,
"positionId": 67890,
"symbolId": 1,
"tradeSide": "BUY",
"volume": 10000000,
"filledVolume": 10000000,
"executionPrice": 112345.0,
"executionTimestamp": 1700000000000,
"dealStatus": "FILLED",
"commission": -7.00
}
]
取引
| フィールド | 種類 | 説明 |
|---|---|---|
dealId | int64 | 取引ID |
orderId | int64 | この取引をトリガーした注文 |
positionId | int64 | ポジションID |
symbolId | int64 | シンボルID |
tradeSide | string | BUYまたはSELL |
volume | int64 | リクエストされた取引高(セント単位) |
filledVolume | int64 | 約定した取引高(セント単位) |
executionPrice | double | 約定価格 |
executionTimestamp | int64 | 約定時刻(エポックミリ秒) |
dealStatus | string | ステータス – 以下の値を参照 |
commission | double | 請求された手数料 |
dealStatusの値
| 値 | 意味 |
|---|---|
FILLED | 注文が完全に約定 |
PARTIALLY_FILLED | 注文の一部が約定しました |
REJECTED | トレーディングサーバーによって拒否されました |
INTERNALLY_REJECTED | サーバーに到達する前に内部的に拒否されました |
ERROR | 実行中にエラーが発生しました |
MISSED | 注文が失効しました(例:市場のギャップ) |
スキーマ { #execution-response-schema } ¶
ExecutionResponse ¶
すべての注文の実行、修正、およびキャンセル操作は、このオブジェクトを返します。
| フィールド | 種類 | 説明 |
|---|---|---|
orderId | int64 | 影響を受けた注文ID |
positionId | int64 | 影響を受けたポジションID |
executionType | string | 結果タイプ – 以下の値を参照 |
order | Order | 注文の詳細(該当する場合) |
position | Position | ポジションの詳細(該当する場合) |
deal | Deal | 取引の詳細(該当する場合) |
executionTypeの値
| 値 | 意味 |
|---|---|
ORDER_ACCEPTED | 予約注文が受理されました |
ORDER_FILLED | 注文が完全に約定しました |
ORDER_REPLACED | 注文が修正されました |
ORDER_CANCELLED | 注文がキャンセルされました |
ORDER_EXPIRED | 注文の期限が切れました |
ORDER_REJECTED | 注文が拒否されました |
ORDER_CANCEL_REJECTED | キャンセルリクエストが拒否されました |
ORDER_PARTIAL_FILL | 注文の一部が約定しました |
SWAP | ポジションスワップが適用されました |
DEPOSIT | 口座への入金 |
WITHDRAW | 口座からの出金 |
BONUS_DEPOSIT_WITHDRAW | ボーナスの入金または出金 |
レート制限 ¶
ゲートウェイは複数のレベルでレート制限を適用します。
| レベル | 説明 |
|---|---|
| IPごと | 単一のIPアドレスからの総リクエスト数を制限 |
| ユーザーごと | 単一のトークンに対するすべての口座の総リクエスト数を制限 |
| 口座ごと | 単一の取引口座を対象とするリクエスト数を制限 |
レート制限の超過
レート制限を超過すると、APIは429 Too Many RequestsをRetry-Afterヘッダーとともに返します。
エラーハンドリング ¶
リクエストが失敗すると、APIはJSONエラーレスポンスを返します。
{
"error": {
"code": "NOT_ENOUGH_MONEY",
"message": "Insufficient free margin for this order",
"httpStatus": 422,
"retryAfter": null
}
}
エラーコード ¶
| コード | HTTP | 説明 |
|---|---|---|
INVALID_REQUEST | 400 | 無効または欠落したリクエストパラメーター |
UNAUTHORIZED | 401 | 無効、期限切れ、または欠落したトークン |
TRADING_BAD_VOLUME | 400 | 取引高が無効です(最小値を下回っているか、ポジションを超えています) |
NOT_ENOUGH_MONEY | 422 | 余剰証拠金が不足しています |
SYMBOL_NOT_FOUND | 404 | シンボルIDが存在しません |
MARKET_CLOSED | 409 | シンボルのマーケットは現在閉鎖中です |
MAINTENANCE | 503 | 取引サーバーはメンテナンスモード中です |
TIMEOUT | 504 | 取引サーバーが時間内に応答しませんでした |
GATEWAY_RATE_LIMIT | 429 | レート制限を超過しました – Retry-Afterヘッダーを参照してください |
レート制限の処理
429レスポンスを受信した場合、Retry-AfterヘッダーとretryAfterフィールドは、次のリクエストを送信する前に待機する必要がある秒数を示します。