ข้ามไปที่เนื้อหา

การอ้างอิง API

แนวคิดทั่วไป

ปริมาณ ราคา ประเภทคำสั่ง และระยะเวลาที่มีผล

ปริมาณ

ปริมาณระบุเป็น เซนต์ (หน่วยของ 0.0000001 ล็อต)

ล็อต ปริมาณ (เซนต์)
0.01 100,000
0.1 1,000,000
1.0 10,000,000

ราคา

ค่าราคาอยู่ใน pipettes ในการแปลง: display_price = pipette_value / 10^pipDigits

สำหรับ EURUSD (5 หลัก) ค่า pipette ของ 112345 = 1.12345

ประเภทคำสั่ง

ประเภท คำอธิบาย ฟิลด์ที่จำเป็น
MARKET ดำเนินการทันทีที่ราคาปัจจุบัน symbolId, tradeSide, volume
LIMIT ดำเนินการที่ราคา Limit หรือดีกว่า + limitPrice
STOP เริ่มทำงานเมื่อตลาดถึงราคา Stop + stopPrice
MARKET_RANGE ดำเนินการภายในช่วงราคา + baseSlippagePrice
STOP_LIMIT คำสั่ง Limit ที่เริ่มทำงานที่ราคา Stop + stopPrice, limitPrice

ระยะเวลาที่มีผล

นโยบาย คำอธิบาย
GOOD_TILL_CANCEL คำสั่งยังคงใช้งานได้จนกว่าจะถูกดำเนินการหรือยกเลิก
GOOD_TILL_DATE คำสั่งหมดอายุที่ expirationTimestamp ที่ระบุ
IMMEDIATE_OR_CANCEL ดำเนินการสิ่งที่มีอยู่ทันที ยกเลิกส่วนที่เหลือ

ข้อมูลบัญชี

GET /v1/balance Get account balance

ส่งคืนยอดคงเหลือบัญชี อิควิตี้ และมาร์จิ้นที่เหลืออยู่

พารามิเตอร์

ไม่มีพารามิเตอร์

การตอบสนอง

200 การตอบกลับที่สำเร็จ

Response body
{
  "balance": 10000.00,
  "equity": 10250.75,
  "freeMargin": 9800.50,
  "balanceVersion": 42,
  "moneyDigits": 2,
  "depositAssetId": 1
}
ฟิลด์ ประเภท คำอธิบาย
balance double ยอดคงเหลือบัญชีในสกุลเงินฝาก
equity double ยอดคงเหลือ + P&L แบบลอยตัว
freeMargin double มาร์จิ้นที่พร้อมใช้งานสำหรับเทรดใหม่
balanceVersion int64 ตัวนับเวอร์ชันยอดคงเหลือ
moneyDigits int32 ตำแหน่งทศนิยมสำหรับค่าเงิน
depositAssetId int64 ID สินทรัพย์สกุลเงินฝาก
GET /v1/symbols รับสัญลักษณ์ที่พร้อมใช้งาน

ส่งคืนสัญลักษณ์ทั้งหมดที่พร้อมใช้งานสำหรับการเทรดในบัญชี

พารามิเตอร์

ไม่มีพารามิเตอร์

การตอบสนอง

200 อาร์เรย์ของออบเจ็กต์ Symbol

Response body
[
  {
    "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

Response body
[
  {
    "assetId": 1,
    "name": "USD",
    "displayName": "US Dollar"
  }
]

Asset

ฟิลด์ ประเภท คำอธิบาย
assetId int64 ID สินทรัพย์
name string รหัสสินทรัพย์ (เช่น "USD")
displayName string ชื่อที่แสดง

ข้อมูลตลาด

GET /v1/prices รับราคาปัจจุบัน

ส่งคืนราคา Bid/Ask ปัจจุบันสำหรับสัญลักษณ์ที่ระบุ นี่คือ สแนปช็อต – API ไม่รองรับการสตรีม

พารามิเตอร์
ชื่อ อยู่ใน ประเภท จำเป็น คำอธิบาย
symbolId query int64[] ID สัญลักษณ์คั่นด้วยเครื่องหมายจุลภาค
การตอบสนอง

200 อาร์เรย์ของออบเจ็กต์ SpotPrice

Response body
[
  {
    "symbolId": 1,
    "bid": 112340,
    "ask": 112355,
    "high": 112890,
    "low": 111950,
    "sessionClose": 112100,
    "timestamp": 1700000000000
  }
]

SpotPrice

ฟิลด์ ประเภท คำอธิบาย
symbolId int64 ID ของสัญลักษณ์
bid int64 ราคา Bid ที่ดีที่สุด (pipettes)
ask int64 ราคา Ask ที่ดีที่สุด (pipettes)
high int64 ราคาสูงสุดของเซสชัน (pipettes)
low int64 ราคาต่ำสุดของเซสชัน (pipettes)
sessionClose int64 ราคาปิดของเซสชันก่อนหน้า (pipettes)
timestamp int64 ประทับเวลาราคาอ้างอิง (epoch ms)
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

Response body
[
  {
    "timestamp": 1700000000000,
    "open": 112340.0,
    "high": 112890.0,
    "low": 111950.0,
    "close": 112500.0,
    "volume": 4521
  }
]

Trendbar

ฟิลด์ ประเภท คำอธิบาย
timestamp int64 เวลาเปิดแท่ง (epoch ms)
open double ราคาเปิด (pipettes)
high double ราคาสูงสุด (pipettes)
low double ราคาต่ำสุด (pipettes)
close double ราคาปิด (pipettes)
volume int64 ปริมาณ tick

คำสั่ง

POST /v1/orders ส่งคำสั่งใหม่

ส่งคำสั่งซื้อขายใหม่ ส่งคืน ExecutionResponse

พารามิเตอร์

ไม่มีพารามิเตอร์ path หรือ query

Request body application/json
ฟิลด์ ประเภท จำเป็น คำอธิบาย
symbolId int64 สัญลักษณ์ที่จะซื้อขาย
orderType string MARKET, LIMIT, STOP, MARKET_RANGE, STOP_LIMIT
tradeSide string BUY หรือ SELL
volume int64 ปริมาณในหน่วยเซ็นต์
limitPrice double ราคา Limit – จำเป็นสำหรับ LIMIT, STOP_LIMIT
stopPrice double ราคาทริกเกอร์ Stop – จำเป็นสำหรับ STOP, STOP_LIMIT
stopLoss double ราคา Stop loss
takeProfit double ราคา Take profit
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 เวลาหมดอายุ (epoch ms) – สำหรับ GOOD_TILL_DATE
Example request body
{
  "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

Example success response
{
  "orderId": 12345,
  "positionId": 67890,
  "executionType": "ORDER_FILLED",
  "order": { "..." : "..." },
  "position": { "..." : "..." },
  "deal": { "..." : "..." }
}
GET /v1/orders รับคำสั่งที่รอดำเนินการ

ส่งคืนคำสั่งที่รอดำเนินการ (ยังไม่ได้ดำเนินการ) ทั้งหมด

พารามิเตอร์

ไม่มีพารามิเตอร์

การตอบสนอง

200 อาร์เรย์ของออบเจ็กต์ Order ที่รอดำเนินการ

PUT /v1/orders/{orderId} แก้ไขคำสั่งที่รอดำเนินการ

แก้ไขคำสั่งที่รอดำเนินการที่มีอยู่ ส่งคืน ExecutionResponse

พารามิเตอร์
ชื่อ อยู่ใน ประเภท จำเป็น คำอธิบาย
orderId path int64 คำสั่งที่จะแก้ไข
Request body application/json

ชุดย่อยใดๆ ของฟิลด์ต่อไปนี้

ฟิลด์ ประเภท คำอธิบาย
volume int64 ปริมาณใหม่เป็นเซนต์
limitPrice double ราคา Limit ใหม่
stopPrice double ราคา Stop ใหม่
stopLoss double ราคา Stop loss ใหม่
takeProfit double ราคา Take profit ใหม่
expirationTimestamp int64 เวลาหมดอายุใหม่ (epoch ms)
การตอบสนอง

200 ExecutionResponse พร้อม ORDER_REPLACED

404 ไม่พบคำสั่ง

DELETE /v1/orders/{orderId} ยกเลิกคำสั่งที่รอดำเนินการ

ยกเลิกคำสั่งที่รอดำเนินการ ส่งคืน ExecutionResponse

พารามิเตอร์
ชื่อ อยู่ใน ประเภท จำเป็น คำอธิบาย
orderId path int64 คำสั่งที่จะยกเลิก
การตอบสนอง

200 ExecutionResponse พร้อม ORDER_CANCELLED

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

Response body
[
  {
    "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 ราคา Stop loss
takeProfit double ราคา Take profit
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} แก้ไข SL/TP ของตำแหน่ง

อัปเดต Stop Loss และ/หรือ Take Profit สำหรับตำแหน่งที่เปิดอยู่ ส่งคืน ExecutionResponse

พารามิเตอร์
ชื่อ อยู่ใน ประเภท จำเป็น คำอธิบาย
positionId path int64 ID ของตำแหน่ง
Request body application/json
ฟิลด์ ประเภท คำอธิบาย
stopLoss double ราคา Stop Loss ใหม่ (null เพื่อลบออก)
takeProfit double ราคา Take Profit ใหม่ (null เพื่อลบออก)
trailingStopLoss boolean เปิดใช้งาน Trailing Stop Loss
Example request body
{
  "stopLoss": 111500,
  "takeProfit": 113500,
  "trailingStopLoss": false
}
การตอบสนอง
POST /v1/positions/{positionId}/close ปิดตำแหน่ง

ปิดตำแหน่งที่เปิดอยู่ทั้งหมดหรือบางส่วน ใช้ค่าที่น้อยกว่าปริมาณเต็มของตำแหน่งสำหรับการปิดบางส่วน ส่งคืน ExecutionResponse

พารามิเตอร์
ชื่อ อยู่ใน ประเภท จำเป็น คำอธิบาย
positionId path int64 ID ของตำแหน่ง
Request body application/json
ฟิลด์ ประเภท จำเป็น คำอธิบาย
volume int64 ปริมาณที่จะปิดเป็นเซนต์
Example – full close (1 lot)
{
  "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 อาร์เรย์ของออบเจ็กต์ดีล

Response body
[
  {
    "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 เวลาที่ดำเนินการ (epoch ms)
dealStatus string สถานะ – ดูค่าด้านล่าง
commission double ค่าคอมมิชชันที่เรียกเก็บ

ค่า dealStatus

คุณค่า ความหมาย
FILLED คำสั่งเติมเต็มทั้งหมด
PARTIALLY_FILLED คำสั่งถูกจับคู่บางส่วน
REJECTED ถูกปฏิเสธโดยเซิร์ฟเวอร์เทรด
INTERNALLY_REJECTED ถูกปฏิเสธภายในก่อนถึงเซิร์ฟเวอร์
ERROR เกิดข้อผิดพลาดระหว่างการดำเนินการ
MISSED คำสั่งพลาด (เช่น ช่องว่างในตลาด)

Schemas { #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 response format
{
  "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 จะระบุจำนวนวินาทีที่คุณต้องรอก่อนส่งคำขอถัดไป