مقدمه
به داکیومنت API تبدیل خوش آمدید.
برای استفاده از API میتوانید از ماژول پایتونی زیر استفاده نمایید:
امنیت
مکانیزمهای امنیتی
نوع مکانیزم | ملزومات |
---|---|
TRADE | api-key و signature |
USER | api-key |
NONE | - |
- برای APIهایی که مکانیزم امنیتی آنها از نوع
TRADE
باشد، نیاز است تا Headerی با نامX-MBX-APIKEY
ارسال شود که مقدار آن، API Key دریافتشده از سایت میباشد. همچنین لازم است تا پارامترهای ارسالی، با کلیدapi-secret
دریافتشده از سایت، رمز شده و تحت عنوانsignature
در پارامترها ارسال شود. - برای APIهایی که مکانیزم امنیتی آنها از نوع
NONE
باشد، نیازی به ارسال هیچ پارامتر اضافهای نیست.
احراز هویت
در APIهایی که دارای مکانیزم امنیتی TRADE
هستند، برای احراز هویت لازم است تا api-key
و api-secret
از سایت دریافت شده و به صورتی که در زیر توضیح داده شده، ارسال شوند.
از طریق این آدرس اقدام به دریافت API Key کنید.
سپس لازم هست تا api-key
دریافتشده را به عنوان header درخواست خود به صورت زیر قرار دهید:
X-MBX-APIKEY: your_api_key
در ادامه لازم است تا پارامترهای ارسالی را با api-secret
رمز کنید.
برای این کار باید زمان ارسال درخواست را در فرمت timestamp
به انتهای پارامترهای ارسالی اضافه کنید و کل این مجموعه را به ساختار Query String در آورده و آن را با کلید api-secret
و با الگوریتم SHA256 و با مکانیزم HMAC رمز کنید.
خروجی رشتهی رمزشدهی بالا را تحت عنوان signature
به انتهای پارامترهای ارسالی اضافه کرده و درخواست خود را ارسال کنید.
- منظور از Query String ساختاری شبیه به ساختار زیر است:
param_1=test_1¶m_2=test_2&...×tamp=1507725176595
توضیحات
وضعیت سفارشات
وضعیت سفارش | توضیحات |
---|---|
NEW |
سفارش ایجاد شده است |
PARTIALLY_FILLED |
بخشی از سفارش انجام شده است |
FILLED |
سفارش به طور کامل انجام شده است |
CANCELED |
سفارش لغو شده است |
REJECTED |
سفارش رد شده است |
نوع سفارشات
LIMIT
MARKET
STOP_LOSS_LIMIT
جهت سفارشات
BUY
SELL
وضعیت سفارش OCO
وضعیت سفارش | توضیحات |
---|---|
EXECUTING |
سفارش ایجاد شده یا یکی از سفارشات زیرمجموعه در حال اجراست |
ALL_DONE |
سفارش تکمیل شده و سفارشات زیرمجموعه پایان یافتهاند |
REJECT |
سفارش رد و یا لغو شده است |
وضعیت سفارشات زیرمجموعه OCO
وضعیت سفارش | توضیحات |
---|---|
RESPONSE |
یکی از سفارشات زیرمجموعه لغو و یا رد شده است |
EXEC_STARTED |
سفارشات زیرمجموعه فعال شدهاند و یا وضعیتشان تغییر کرده است |
ALL_DONE |
سفارشات زیرمجموعه تکمیل شده و پایان یافتهاند |
معامله
ارسال سفارش
POST https://api1.tabdeal.org/api/v1/order [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
from tabdeal.enums import OrderSides, OrderTypes
client = Spot(api_key, api_secret)
order = client.new_order(
symbol='BTCIRT',
side=OrderSides.SELL,
type=OrderTypes.MARKET,
quantity="0.001"
)
نمونه خروجی:
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 139,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126344421,
"price": "0.0000000000000000",
"origQty": "0.00100000",
"executedQty": "0.00100000",
"cummulativeQuoteQty": "99999.99900000",
"cumulativeQuoteQty": "99999.99900000",
"status": "FILLED",
"type": "MARKET",
"side": "SELL",
"stopPrice": "0.0000000000000000",
"updateTime": 1650126344546,
"isWorking": false,
"isStopOrderTriggered": false,
"fills": [
{
"price": "99999999.00000000",
"qty": "0.00100000",
"commission": "399.99999600",
"commissionAsset": "IRT",
"tradeId": 4
}
]
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
side | بله | ENUM | SELL یا BUY |
type | بله | ENUM | MARKET یا LIMIT یا STOP_LOSS_LIMIT |
quantity | بله | DECIMAL | تعداد خرید یا فروش |
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
newClientOrderId | خیر | STRING | id سفارش که توسط کاربر تولید شده |
price | خیر | DECIMAL | قیمت خرید یا فروش |
stopPrice | خیر | DECIMAL | قیمت فعال شدن سفارش |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست. - در صورتی که
type
سفارشLIMIT
باشد، ارسالprice
الزامی است. - در صورتی که
type
سفارشSTOP_LOSS_LIMIT
باشد، ارسالstopPrice
الزامی است. - پارامتر
newClientOrderId
شناسهی یکتا برای سفارش است و توسط کاربر تولید میشود که برای هر کاربر باید یکتا باشد.
جستجوی سفارش
GET https://api1.tabdeal.org/r/api/v1/order [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key, api_secret)
order = client.get_order(
symbol='BTC_IRT',
order_id=140
)
نمونه خروجی:
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 140,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126546994,
"price": "99999999.00000000",
"origQty": "0.00200000",
"executedQty": "0.00100000",
"cummulativeQuoteQty": "99999.99900000",
"cumulativeQuoteQty": "99999.99900000",
"status": "PARTIALLY_FILLED",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000",
"updateTime": 1650126680079,
"isWorking": true,
"isStopOrderTriggered": false,
"fee": "0.99900000"
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
orderId | خیر | LONG | id سفارش |
origClientOrderId | خیر | STRING | id سفارش که توسط کاربر تولید شده |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست. - ارسال فقط یکی از پارامترهای
orderId
یاorigClientOrderId
الزامی است.
سفارشات باز
GET https://api1.tabdeal.org/r/api/v1/openOrders [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key, api_secret)
orders = client.get_open_orders(
symbol='BTCIRT'
)
نمونه خروجی:
[
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 140,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126546994,
"price": "99999999.00000000",
"origQty": "0.00200000",
"executedQty": "0.00100000",
"cummulativeQuoteQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "PARTIALLY_FILLED",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000",
"updateTime": 1650126680079,
"isWorking": true,
"isStopOrderTriggered": false
}
]
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
- در صورتی که
symbol
یاtabdealSymbol
را ارسال نکنید، سفارشات باز تمام بازارها را برمیگرداند.
لغو سفارش
DELETE https://api1.tabdeal.org/api/v1/order [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key, api_secret)
order = client.cancel_order(
symbol='BTC_IRT',
order_id=143
)
نمونه خروجی:
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 143,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126665341,
"price": "99999999.00000000",
"origQty": "0.00300000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000",
"updateTime": 1650126730359,
"isWorking": false,
"isStopOrderTriggered": false
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
orderId | خیر | LONG | id سفارش |
origClientOrderId | خیر | STRING | id سفارش که توسط کاربر تولید شده |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست. - ارسال فقط یکی از پارامترهای
orderId
یاorigClientOrderId
الزامی است.
تمام سفارشات
GET https://api1.tabdeal.org/r/api/v1/allOrders [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key, api_secret)
orders = client.get_orders(
symbol='BTCIRT',
start_time=1650126305575,
end_time=1650126665350
)
نمونه خروجی:
[
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 143,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126665341,
"price": "99999999.00000000",
"origQty": "0.00300000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000",
"updateTime": 1650126730359,
"isWorking": false,
"isStopOrderTriggered": false
},
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 138,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126305575,
"price": "99999999.00000000",
"origQty": "0.00100000",
"executedQty": "0.00100000",
"cummulativeQuoteQty": "99999.99900000",
"cumulativeQuoteQty": "99999.99900000",
"status": "FILLED",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000",
"updateTime": 1650126569260,
"isWorking": false,
"isStopOrderTriggered": false
}
]
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
startTime | خیر | LONG | سفارشاتی که بعد از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
endTime | خیر | LONG | سفارشاتی که قبل از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
limit | خیر | INT | خروجی تنها به این تعداد بازگردانده میشود |
- ارسال
symbol
یاtabdealSymbol
الزامی نیست. تفاوت این دو در علامت_
بین علامت ارزهاست. - در صورت عدم ارسال
symbol
یاtabdealSymbol
تمام سفارشات مربوط به همه بازار ها ارسال خواهد شد. - پارامتر
limit
حداکثر1000
میتواند باشد و مقدار پیشفرض آن در صورت عدم ارسال پارامتر،50
است.
لغو تمام سفارشات باز
DELETE https://api1.tabdeal.org/api/v1/openOrders [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key, api_secret)
orders = client.cancel_open_orders(
symbol='BTC_IRT'
)
نمونه خروجی:
[
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 145,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126930817,
"price": "99999999.00000000",
"origQty": "0.00300000",
"executedQty": "0.00100000",
"cummulativeQuoteQty": "99999.99900000",
"cumulativeQuoteQty": "99999.99900000",
"status": "FILLED",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000",
"updateTime": 1650126954582,
"isWorking": false,
"isStopOrderTriggered": false
}
]
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست.
ارسال سفارش OCO
POST https://api1.tabdeal.org/api/v1/order/oco [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
from tabdeal.enums import OrderSides
client = Spot(api_key, api_secret)
oco = client.new_oco_order(
symbol='BTC_IRT',
side=OrderSides.SELL,
quantity="0.005",
price="100100000",
stop_price="99899999",
stop_limit_price="99890000",
list_client_order_id="oco_6",
limit_client_order_id="limit_6",
stop_client_order_id="stop_6"
)
نمونه خروجی:
{
"orderListId": 20,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "oco_6",
"transactionTime": 1652161449338,
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orders": [
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 159,
"clientOrderId": "limit_6"
},
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 226,
"clientOrderId": "stop_6"
}
],
"orderReports": [
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 159,
"orderListId": 20,
"clientOrderId": "limit_6",
"transactTime": 1652161449593,
"price": "100100000.00000000",
"origQty": "0.00500000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "NEW",
"type": "LIMIT",
"side": "SELL",
"stopPrice": "0.00000000",
"updateTime": 1652161449905,
"isWorking": true,
"isStopOrderTriggered": false
},
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 226,
"orderListId": 20,
"clientOrderId": "stop_6",
"transactTime": 1652161450753,
"price": "99890000.00000000",
"origQty": "0.00500000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "NEW",
"type": "STOP_LOSS_LIMIT",
"side": "SELL",
"stopPrice": "99899999.00000000",
"updateTime": 1652161450753,
"isWorking": true,
"isStopOrderTriggered": false
}
]
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
side | بله | ENUM | SELL یا BUY |
quantity | بله | DECIMAL | تعداد خرید یا فروش |
price | بله | DECIMAL | قیمت سفارش limit |
stopPrice | بله | DECIMAL | قیمت فعالسازی سفارش stop |
stopLimitPrice | بله | DECIMAL | قیمت سفارش stop |
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ listClientOrderId |
limitClientOrderId | خیر | STRING | id سفارش limit که توسط کاربر تولید شده |
stopClientOrderId | خیر | STRING | id سفارش stop که توسط کاربر تولید شده |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست. - پارامترهای
listClientOrderId
وlimitClientOrderId
وstopClientOrderId
شناسههای یکتا برای سفارشات هستند و توسط کاربر تولید میشوند که برای هر کاربر باید یکتا باشند.
جستجوی سفارش OCO
GET https://api1.tabdeal.org/r/api/v1/orderList [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key, api_secret)
oco = client.get_oco_order(
oco_id=19
)
نمونه خروجی:
{
"orderListId": 19,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": null,
"transactionTime": 1651489273803,
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orders": [
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 142,
"clientOrderId": null
},
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 225,
"clientOrderId": null
}
]
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
orderListId | خیر | LONG | id سفارش |
origClientOrderId | خیر | STRING | id سفارش که توسط کاربر تولید شده |
- ارسال فقط یکی از پارامترهای
orderListId
یاorigClientOrderId
الزامی است.
سفارشات باز OCO
GET https://api1.tabdeal.org/r/api/v1/openOrderList [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key, api_secret)
open_oco = client.get_oco_open_orders()
نمونه خروجی:
[
{
"orderListId": 19,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": null,
"transactionTime": 1651489273803,
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orders": [
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 142,
"clientOrderId": null
},
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 225,
"clientOrderId": null
}
]
},
{
"orderListId": 22,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": null,
"transactionTime": 1652162579757,
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orders": [
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 161,
"clientOrderId": null
},
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 228,
"clientOrderId": null
}
]
}
]
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
لغو سفارش OCO
DELETE https://api1.tabdeal.org/api/v1/orderList [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key, api_secret)
order = client.cancel_oco_order(
symbol='BTC_IRT',
oco_id=19
)
نمونه خروجی:
{
"orderListId": 19,
"contingencyType": "OCO",
"listStatusType": "ALL_DONE",
"listOrderStatus": "ALL_DONE",
"listClientOrderId": null,
"transactionTime": 1651489273803,
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orders": [
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 142,
"clientOrderId": null
},
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 225,
"clientOrderId": null
}
],
"orderReports": [
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 142,
"orderListId": 19,
"clientOrderId": null,
"transactTime": 1651489273833,
"price": "100100000.00000000",
"origQty": "0.00500000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"type": "LIMIT",
"side": "SELL",
"stopPrice": "0.00000000",
"updateTime": 1652162973131,
"isWorking": false,
"isStopOrderTriggered": false
},
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 225,
"orderListId": 19,
"clientOrderId": null,
"transactTime": 1651489275437,
"price": "99890000.00000000",
"origQty": "0.00500000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"type": "STOP_LOSS_LIMIT",
"side": "SELL",
"stopPrice": "99899999.00000000",
"updateTime": 1652162973140,
"isWorking": false,
"isStopOrderTriggered": false
}
]
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
orderListId | خیر | LONG | id سفارش |
listClientOrderId | خیر | STRING | id سفارش که توسط کاربر تولید شده |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست. - ارسال فقط یکی از پارامترهای
orderListId
یاlistClientOrderId
الزامی است.
تمام سفارشات OCO
GET https://api1.tabdeal.org/r/api/v1/allOrderList [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key, api_secret)
all_oco = client.get_oco_orders(
start_time=1650962658352,
end_time=1652161449338,
limit=2
)
نمونه خروجی:
[
{
"orderListId": 19,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": null,
"transactionTime": 1651489273803,
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orders": [
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 142,
"clientOrderId": null
},
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 225,
"clientOrderId": null
}
]
},
{
"orderListId": 18,
"contingencyType": "OCO",
"listStatusType": "ALL_DONE",
"listOrderStatus": "ALL_DONE",
"listClientOrderId": "oco_5",
"transactionTime": 1650963634241,
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orders": [
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 141,
"clientOrderId": null
},
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 224,
"clientOrderId": null
}
]
}
]
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
startTime | خیر | LONG | سفارشاتی که بعد از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
endTime | خیر | LONG | سفارشاتی که قبل از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
limit | خیر | INT | خروجی تنها به این تعداد بازگردانده میشود |
- پارامتر
limit
حداکثر1000
میتواند باشد و مقدار پیشفرض آن در صورت عدم ارسال پارامتر،50
است.
معاملات من
GET https://api1.tabdeal.org/r/api/v1/myTrades [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key, api_secret)
trades = client.my_trades(
symbol='BTC_IRT',
start_time=1653210673316,
end_time=1653222331419,
limit=2
)
نمونه خروجی:
[
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"id": 36,
"orderId": 1140,
"price": "99900500.00000000",
"qty": "0.00500000",
"quoteQty": "0.00498000",
"commission": "1998.01000000",
"commissionAsset": "IRT",
"time": 1653211038472,
"isBuyer": false,
"isMaker": true
},
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"id": 35,
"orderId": 1137,
"price": "99900500.00000000",
"qty": "0.00500000",
"quoteQty": "0.00498000",
"commission": "1998.01000000",
"commissionAsset": "IRT",
"time": 1653210886838,
"isBuyer": false,
"isMaker": true
}
]
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
startTime | خیر | LONG | معاملاتی که بعد از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
endTime | خیر | LONG | معاملاتی که قبل از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
limit | خیر | INT | خروجی تنها به این تعداد بازگردانده میشود |
orderId | خیر | INT | معاملاتی که سفارش آنها این id را دارند بازگردانده میشوند |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست. - پارامتر
limit
حداکثر1000
میتواند باشد و مقدار پیشفرض آن در صورت عدم ارسال پارامتر،50
است.
اطلاعات کاربر
GET https://api1.tabdeal.org/r/api/v1/account [Trade]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key, api_secret)
account = client.account()
نمونه خروجی:
{
"makerCommission": 40,
"takerCommission": 40,
"canTrade": true,
"canWithdraw": false,
"canDeposit": false,
"updateTime": 1657531256965,
"accountType": "SPOT",
"balances": [
{
"asset": "BTC",
"free": "0.05297200",
"freeze": "0.04700000"
},
{
"asset": "IRT",
"free": "99990721.20000000",
"freeze": "0.00000000"
},
{
"asset": "USDT",
"free": "0.00000000",
"freeze": "0.00000000"
},...
],
"permissions": [
"SPOT"
]
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
بازار
لیست سفارشات
GET https://api1.tabdeal.org/r/api/v1/depth [NONE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot()
order_book = client.depth(
symbol='BTCUSDT',
limit=1
)
نمونه خروجی:
{
"bids": [
[
"39792.23000000", // PRICE
"8.27169000" // QUANTITY
],
[
"39792.18000000", // PRICE
"0.33006000" // QUANTITY
]
],
"asks": [
[
"39792.24000000", // PRICE
"1.27040000" // QUANTITY
],
[
"39792.27000000", // PRICE
"0.00850000" // QUANTITY
]
]
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
limit | خیر | INT | خروجی تنها به این تعداد بازگردانده میشود |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست. - پارامتر
limit
حداکثر5000
میتواند باشد و مقدار پیشفرض آن در صورت عدم ارسال پارامتر،50
است.
لیست معاملات
GET https://api1.tabdeal.org/r/api/v1/trades [NONE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot()
trades = client.trades(
symbol='BTC_IRT',
limit=2
)
نمونه خروجی:
[
{
"id": 18,
"price": "100000000.00000000",
"qty": "0.02500000",
"quoteQty": "0.02490000",
"time": 1648990888735,
"isBuyerMaker": false
},
{
"id": 17,
"price": "99999999.00000000",
"qty": "0.02500000",
"quoteQty": "2489999.97510000",
"time": 1648990780492,
"isBuyerMaker": true
}
]
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
limit | خیر | INT | خروجی تنها به این تعداد بازگردانده میشود |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست. - پارامتر
limit
حداکثر1000
میتواند باشد و مقدار پیشفرض آن در صورت عدم ارسال پارامتر،50
است.
لیست بازارها
GET https://api1.tabdeal.org/r/api/v1/exchangeInfo [NONE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot()
market = client.exchange_info(
symbol='BTC_IRT'
)
market = client.exchange_info(
symbol='MANAUSDT'
)
markets = client.exchange_info(
symbols=['BTCIRT', 'MANAUSDT']
)
نمونه خروجی:
[
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"status": "TRADING",
"baseAsset": "BTC",
"baseAssetPrecision": "8",
"quoteAsset": "IRT",
"quoteAssetPrecision": "8",
"baseCommissionPrecision": "8",
"quoteCommissionPrecision": "8",
"orderTypes": [
"LIMIT",
"STOP_LOSS_LIMIT",
"MARKET"
],
"icebergAllowed": false,
"ocoAllowed": true,
"quoteOrderQtyMarketAllowed": false,
"allowTrailingStop": false,
"isSpotTradingAllowed": true,
"isMarginTradingAllowed": false,
"filters": [
{
"filterType": "PRICE_FILTER",
"minPrice": "300.00000000",
"maxPrice": "30000000000.00000000",
"tickSize": "1.00000000"
},
{
"filterType": "PERCENT_PRICE",
"multiplierUp": 5.0,
"multiplierDown": 0.2,
"avgPriceMins": 5
},
{
"filterType": "LOT_SIZE",
"minQty": "0.00005000",
"stepSize": "0.00000001"
},
{
"filterType": "MIN_NOTIONAL",
"minNotional": "99000.00000000",
"applyToMarket": false,
"avgPriceMins": 5
},
{
"filterType": "MARKET_LOT_SIZE",
"minQty": "0.00005000",
"maxQty": "0.99250018",
"stepSize": "0.00000001"
}
],
"permissions": [
"SPOT"
]
}
]
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
symbol | خیر | STRING | نام بازار |
symbols | خیر | STRING | نام بازارها |
tabdealSymbol | خیر | STRING | نام بازار با _ |
tabdealSymbols | خیر | STRING | نام بازارها با _ |
limit | خیر | INT | خروجی تنها به این تعداد بازگردانده میشود |
- پارامتر
limit
حداکثر1000
میتواند باشد و مقدار پیشفرض آن در صورت عدم ارسال پارامتر،50
است. - در صورتی که هیچکدام از فیلدهای
symbol
یاsymbols
یاtabdealSymbol
یاtabdealSymbols
ارسال نشود، تمامی بازارها بازگردانده میشوند.
تست اتصال به سرور
GET https://api1.tabdeal.org/r/api/v1/ping [NONE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot()
client.ping()
نمونه خروجی:
{}
پارامترها:
نیاز به ارسال پارامتر نیست.
گرفتن زمان سرور
GET https://api1.tabdeal.org/r/api/v1/time [NONE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot()
client.time()
نمونه خروجی:
{
"serverTime": 1660046774413
}
پارامترها:
نیاز به ارسال پارامتر نیست.
وب سوکت بازار
توضیحات
wss://api1.tabdeal.org/stream/
نمونه خروجی:
{
"result": null,
"id": 1
}
- برای اتصال به وب سوکت باید از url بالا استفاده کنید.
- برای استفاده از وب سوکت لازم است تا یک json با پارامترهای زیر ارسال شود:
پارامتر | الزامی | توضیحات |
---|---|---|
method | بله | نام بازار |
id | بله | شناسهی عددی یکتای درخواست ارسالی |
params | وابسته به method |
لیست پارامترهای مورد نیاز |
مقادیر معتبر برای پارامتر method
مقدار | توضیحات |
---|---|
SUBSCRIBE | برای subscribe کردن در topic موردنظر |
- پارامتر
id
شناسهی یکتای درخواست ارسالی است و پاسخ پیام ارسالی با همینid
بازمیگردد. - در خروجی درخواست در صورتی که درخواست موفقیتآمیز باشد، مقدار پارامتر
result
برابر باnull
خواهد بود.
سفارشات (OrderBook)
"[symbol]@depth@2000ms", "btcusdt@depth@2000ms", "usdtirt@depth@2000ms"
نمونه درخواست ارسالی
{
"method": "SUBSCRIBE",
"params": ["usdtirt@depth@2000ms"],
"id": 1
}
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.websocket_client import SpotWebsocketClient
def handler(message):
print(message)
tabdeal_ws = SpotWebsocketClient()
tabdeal_ws.market_order_book(
symbol="bnbusdt",
id=1,
callback=handler,
)
نمونه خروجی:
{
"stream": "usdtirt@depth@2000ms", // topic
"data": {
"e": "depthUpdate", // event type
"E": 1657530675579, // timeStamp
"s": "USDTIRT", // symbol
"b": [ // bids (Buy)
[
"32290", // price
"155.903075" // quantity
],
[
"32267",
"31.501710"
],
[
"32265",
"31.501710"
],
[
"32263",
"31.501710"
],
[
"32261",
"31.501710"
],...
],
"a": [ // asks (Sell)
[
"32311", // price
"76.378076" // quantity
],
[
"32427",
"9.876782"
],
[
"32430",
"2984.657201"
],
[
"32503",
"19.753564"
],
[
"32568",
"98.767818"
],...
]
}
}
این topic برای subscribe کردن در لیست سفارشات بازارهاست. در پارامتر params
لیست بازارهایی که میخواهیم در آنها subscribe کنیم را میدهیم و ساختار آن به صورت بالا است.
- لیست سفارشات بازار هر
2
ثانیه یکبار توسط این topic ارسال میشود. - در صورتی که میخواهید به بازارهای بیشتری متصل شوید، لازم است تا در پارامتر
params
سایر بازارها را نیز قرار دهید.
وب سوکت اطلاعات کاربر
توضیحات
wss://api1.tabdeal.org/stream/streams={listen_key}
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.websocket_client import SpotWebsocketClient
from tabdeal.spot import Spot
def handler(message):
print(message)
tabdeal_ws = SpotWebsocketClient()
tabdeal = Spot(api_key=api_key)
response = tabdeal.new_listen_key()
tabdeal_ws.user_data(
listen_key=response["listenKey"],
callback=handler,
)
- هر کاربر یک
listenKey
دارد که با استفاده از آن میتواند به وب سوکت متصل شده و از رویدادهای مرتبط با خود مطلع شود. - هر
listenKey
فقط60
دقیقه معتبر است. - برای اتصال به وب سوکت اطلاعات کاربر، لازم است تا
listenKey
کاربر را در url بالا قرار داده و به آن متصل شوید.
دریافت listenKey
POST https://api1.tabdeal.org/api/v1/userDataStream [USER]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key)
listen_key = client.new_listen_key()
نمونه خروجی:
{
"listenKey": "5b9drdtugwm5d1a76ztika1xxa649xv3mquc57cd2eyoag77han53iov8yyixnt3"
}
- با ارسال درخواست به این url یک
listenKey
دریافت میکنید که به مدت60
دقیقه معتبر است. - در صورتی که از قبل
listenKey
معتبر داشته باشید، با ارسال درخواست به این url مدت زمان اعتبارlistenKey
قبلی افزایش یافته و خروجی این درخواست همانlistenKey
قبلی خواهد بود.
بهروزرسانی listenKey
PUT https://api1.tabdeal.org/api/v1/userDataStream [USER]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key)
listen_key = client.renew_listen_key(
listen_key="5b9drdtugwm5d1a76ztika1xxa649xv3mquc57cd2eyoag77han53iov8yyixnt3"
)
نمونه خروجی:
{}
- با ارسال درخواست به این url مدت اعتبار
listenKey
ارسالی، به مدت60
دقیقه افزایش مییابد.
حذف listenKey
DELETE https://api1.tabdeal.org/api/v1/userDataStream [USER]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key)
listen_key = client.close_listen_key(
listen_key="5b9drdtugwm5d1a76ztika1xxa649xv3mquc57cd2eyoag77han53iov8yyixnt3"
)
نمونه خروجی:
{}
- با ارسال درخواست،
listenKey
ارسالی حذف خواهد شد و دیگر قابل استفاده نخواهد بود.
اطلاعات دریافتی (سفارش)
نمونه خروجی برای سفارش
{
"e": "executionReport", // Event type
"E": 1499405658658, // Event time
"s": "ETHBTC", // Symbol
"c": "mUvoqJxFIILMdfAW5iGSOW", // Client order ID
"S": "BUY", // Side
"o": "LIMIT", // Order type
"f": "GTC", // Time in force
"q": "1.00000000", // Order quantity
"p": "0.10264410", // Order price
"P": "0.00000000", // Stop price
"g": -1, // OrderListId (OCO Id)
"x": "NEW", // Current execution type
"X": "NEW", // Current order status
"i": 4293153, // Order ID
"l": "0.00000000", // Last executed quantity
"z": "0.00000000", // Cumulative filled quantity
"L": "0.00000000", // Last executed price
"n": "0", // Commission amount
"N": null, // Commission asset
"t": -1, // Trade ID
"m": false, // Is this trade the maker side?
"O": 1499405658657 // Order creation time
}
نمونه خروجی برای سفارش OCO
{
"e": "listStatus", //Event Type
"E": 1564035303637, //Event Time
"s": "ETHBTC", //Symbol
"g": 2, //OrderListId (OCO Id)
"c": "OCO", //Contingency Type
"l": "EXEC_STARTED", //List Status Type
"L": "EXECUTING", //List Order Status
"C": "F4QN4G8DlFATFlIUQ0cjdD", //List Client Order ID
"T": 1564035303625, //Transaction Time
"O": [ //An array of objects
{
"s": "ETHBTC", //Symbol
"i": 17, // orderId
"c": "AJYsMjErWJesZvqlJCTUgL" //ClientOrderId
},
{
"s": "ETHBTC",
"i": 18,
"c": "bfYPSQdLoqAJeNrOr9adzq"
}
]
}
یکی از اطلاعاتی که از وب سوکت اطلاعات کاربر دریافت میشود تغییرات مربوط به سفارشات کاربر است و درصورت ایجاد سفارش جدید یا حذف سفارش موجود و یا fill شدن کل یا بخشی از سفارش موجود، از این وب سوکت دیتای سفارش کاربر مانند نمونه ارسال میشود.
- درصورتی که تغییری در سفارشات زیرمجموعهی OCO ایجاد شود، هم دیتای مربوط به OCO و هم Order مربوطه ارسال میشوند.
- پارامتر
x
در خروجی برای نشان دادن عملیات انجامشده روی سفارش است.
عملیاتهای انجامشده روی سفارش
عملیات | توضیحات |
---|---|
NEW |
سفارش ایجاد شد |
CANCELED |
سفارش لغو شد |
TRADE |
روی سفارش، معامله صورت گرفت |
TRIGGERRED |
سفارش STOP فعال شد |
کیف پول
لیست داراییها
GET https://api1.tabdeal.org/r/api/v1/asset/get-funding-asset [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.spot import Spot
client = Spot(api_key, api_secret)
order = client.funding_wallet(
asset='BTC',
)
نمونه خروجی:
{
"asset": "BTC",
"free": "1.97427700",
"freeze": "0.00634300"
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
asset | خیر | STRING | نماد مربوط به دارایی مورد نظر |
- در صورتی که پارامتر
asset
ارسال نشود، لیست تمام داراییها بازگردانده میشود.
معامله اهرمدار
جابهجایی
POST https://api1.tabdeal.org/r/api/v1/margin/isolated/transfer [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
client = IsolatedMargin(api_key, api_secret)
transfer = client.transfer(
asset='BTC',
amount="0.01",
trans_from="ISOLATED_MARGIN",
trans_to="SPOT",
symbol="BTCUSDT"
)
نمونه خروجی:
{
"tranId": 21
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
asset | بله | STRING | نماد مربوط به دارایی مورد نظر |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
transFrom | بله | ENUM | ISOLATED_MARGIN یا SPOT |
transTo | بله | ENUM | ISOLATED_MARGIN یا SPOT |
amount | بله | DECIMAL | مقدار جابهجایی |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست.
تاریخچه جابهجایی
GET https://api1.tabdeal.org/r/api/v1/margin/isolated/transfer [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
client = IsolatedMargin(api_key, api_secret)
transfer_history = client.get_transfers(
asset='BTC',
current=1,
symbol="BTCUSDT"
)
نمونه خروجی:
{
"rows": [
{
"amount": "0.01000000",
"asset": "BTC",
"status": "CONFIRMED", // PENDING, CONFIRMED, FAILED;
"timestamp": 1566898617,
"txId": 5240372201,
"type": "ROLL_IN",
"transFrom": "SPOT",
"transTo": "ISOLATED_MARGIN"
},
{
"amount": "10.00000000",
"asset": "USDT",
"status": "CONFIRMED", // PENDING, CONFIRMED, FAILED;
"timestamp": 1566888403,
"txId": 5239808703,
"type": "ROLL_OUT",
"transFrom": "ISOLATED_MARGIN",
"transTo": "SPOT"
}
],
"total": 2
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
asset | خیر | STRING | نماد مربوط به دارایی مورد نظر |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
startTime | خیر | LONG | سفارشاتی که بعد از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
endTime | خیر | LONG | سفارشاتی که قبل از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
size | خیر | INT | خروجی تنها به این تعداد بازگردانده میشود |
current | خیر | INT | خروجی برای این صفحه برگردانده میشود |
type | خیر | ENUM | ROLL_OUT یا ROLL_IN |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست. - مقدار size به صورت پیش فرض
10
است و حداکثر مقدار قابل قبول برای آن1000
میباشد.
سفارشات باز معامله اهرمدار
GET https://api1.tabdeal.org/r/api/v1/margin/openOrders [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
client = IsolatedMargin(api_key, api_secret)
orders = client.get_open_margin_orders(
symbol='BTCIRT'
)
نمونه خروجی:
[
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 140,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126546994,
"price": "99999999.00000000",
"origQty": "0.00200000",
"executedQty": "0.00100000",
"cummulativeQuoteQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "PARTIALLY_FILLED",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000",
"updateTime": 1650126680079,
"isWorking": true,
"isStopOrderTriggered": false
}
]
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
- در صورتی که
symbol
یاtabdealSymbol
را ارسال نکنید، سفارشات باز تمام بازارها را برمیگرداند.
لغو تمام سفارشات باز معامله اهرمدار
DELETE https://api1.tabdeal.org/api/v1/margin/openOrders [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
client = IsolatedMargin(api_key, api_secret)
orders = client.cancel_margin_open_orders(
symbol='BTC_IRT'
)
نمونه خروجی:
[
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 145,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126930817,
"price": "99999999.00000000",
"origQty": "0.00300000",
"executedQty": "0.00100000",
"cummulativeQuoteQty": "99999.99900000",
"cumulativeQuoteQty": "99999.99900000",
"status": "FILLED",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000",
"updateTime": 1650126954582,
"isWorking": false,
"isStopOrderTriggered": false
}
]
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست.
تمام سفارشات معامله اهرمدار
GET https://api1.tabdeal.org/r/api/v1/margin/allOrders [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
client = IsolatedMargin(api_key, api_secret)
orders = client.get_all_margin_orders(
symbol='BTCIRT',
start_time=1650126305575,
end_time=1650126665350
)
نمونه خروجی:
[
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 143,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126665341,
"price": "99999999.00000000",
"origQty": "0.00300000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000",
"updateTime": 1650126730359,
"isWorking": false,
"isStopOrderTriggered": false
},
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 138,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126305575,
"price": "99999999.00000000",
"origQty": "0.00100000",
"executedQty": "0.00100000",
"cummulativeQuoteQty": "99999.99900000",
"cumulativeQuoteQty": "99999.99900000",
"status": "FILLED",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000",
"updateTime": 1650126569260,
"isWorking": false,
"isStopOrderTriggered": false
}
]
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
startTime | خیر | LONG | سفارشاتی که بعد از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
endTime | خیر | LONG | سفارشاتی که قبل از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
limit | خیر | INT | خروجی تنها به این تعداد بازگردانده میشود |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست. - پارامتر
limit
حداکثر1000
میتواند باشد و مقدار پیشفرض آن در صورت عدم ارسال پارامتر،50
است.
ارسال سفارش معامله اهرمدار
POST https://api1.tabdeal.org/api/v1/margin/order [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
from tabdeal.enums import OrderSides, OrderTypes
client = IsolatedMargin(api_key, api_secret)
order = client.create_margin_order(
symbol='BTCIRT',
side=OrderSides.BUY,
type=OrderTypes.MARKET,
quantity="0.001",
borrow_quantity="4500000"
)
نمونه خروجی:
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 139,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126344421,
"price": "0.00000000",
"origQty": "0.00100000",
"executedQty": "0.00100000",
"cummulativeQuoteQty": "99999.99900000",
"cumulativeQuoteQty": "99999.99900000",
"status": "FILLED",
"type": "MARKET",
"side": "SELL",
"stopPrice": "0.00000000",
"updateTime": 1650126344546,
"isWorking": false,
"isStopOrderTriggered": false,
"fills": [
{
"price": "99999999.00000000",
"qty": "0.00100000",
"commission": "399.99999600",
"commissionAsset": "IRT",
"tradeId": 4
}
]
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
side | بله | ENUM | SELL یا BUY |
type | بله | ENUM | MARKET یا LIMIT یا STOP_LOSS_LIMIT |
quantity | بله | DECIMAL | تعداد خرید یا فروش |
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
newClientOrderId | خیر | STRING | id سفارش که توسط کاربر تولید شده |
price | خیر | DECIMAL | قیمت خرید یا فروش |
stopPrice | خیر | DECIMAL | قیمت فعال شدن سفارش |
borrow_quantity | بله | DECIMAL | مقدار اعتبار دریافتی از ارز دوم برای خرید یا ارز اول برای فروش |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست. - در صورتی که
type
سفارشLIMIT
باشد، ارسالprice
الزامی است. - در صورتی که
type
سفارشSTOP_LOSS_LIMIT
باشد، ارسالstopPrice
الزامی است. - پارامتر
newClientOrderId
شناسهی یکتا برای سفارش است و توسط کاربر تولید میشود که برای هر کاربر باید یکتا باشد. - پارامتر
borrow_quantity
میتواند به واحد ارز اول یا دوم بازار باشد. اگر سفارش خرید باشد این پارامتر بر حسب ارز دوم بازار و اگر سفارش فروش باشد بر حسب ارز اول بازار میباشد.
جستجوی سفارش معامله اهرمدار
GET https://api1.tabdeal.org/r/api/v1/margin/order [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
client = IsolatedMargin(api_key, api_secret)
order = client.get_margin_order(
symbol='BTC_IRT',
order_id=140
)
نمونه خروجی:
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 140,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126546994,
"price": "99999999.00000000",
"origQty": "0.00200000",
"executedQty": "0.00100000",
"cummulativeQuoteQty": "99999.99900000",
"cumulativeQuoteQty": "99999.99900000",
"status": "PARTIALLY_FILLED",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000",
"updateTime": 1650126680079,
"isWorking": true,
"isStopOrderTriggered": false
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
orderId | خیر | LONG | id سفارش |
origClientOrderId | خیر | STRING | id سفارش که توسط کاربر تولید شده |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست. - ارسال فقط یکی از پارامترهای
orderId
یاorigClientOrderId
الزامی است.
لغو سفارش معامله اهرمدار
DELETE https://api1.tabdeal.org/api/v1/margin/order [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
client = IsolatedMargin(api_key, api_secret)
order = client.cancel_margin_order(
symbol='BTC_IRT',
order_id=143
)
نمونه خروجی:
{
"symbol": "BTCIRT",
"tabdealSymbol": "BTC_IRT",
"orderId": 143,
"orderListId": -1,
"clientOrderId": null,
"transactTime": 1650126665341,
"price": "99999999.00000000",
"origQty": "0.00300000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000",
"updateTime": 1650126730359,
"isWorking": false,
"isStopOrderTriggered": false
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
timestamp | بله | LONG | زمان ارسال درخواست |
signature | بله | STRING | رشته ی رمز شده |
symbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
orderId | خیر | LONG | id سفارش |
origClientOrderId | خیر | STRING | id سفارش که توسط کاربر تولید شده |
- ارسال
symbol
یاtabdealSymbol
الزامی است. تفاوت این دو در علامت_
بین علامت ارزهاست. - ارسال فقط یکی از پارامترهای
orderId
یاorigClientOrderId
الزامی است.
ارزهای معامله اهرمدار
GET https://api1.tabdeal.org/api/v1/margin/allAssets [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
client = IsolatedMargin(api_key, api_secret)
assets = client.get_all_assets()
نمونه خروجی:
[
{
"assetFullName": "TetherUS",
"symbol": "USDTIRT",
"tabdealSymbol": "BTC_USDT",
"assetName": "USDT",
"isBorrowable": true,
"userMaxBorrow": "150.00000000"
}
]
- این درخواست پارامتر ورودی ندارد.
تاریخچه بازپرداخت
GET https://api1.tabdeal.org/api/v1/margin/repay [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
client = IsolatedMargin(api_key, api_secret)
assets = client.get_repays(
isolatedSymbol="BTCUSDT",
size=3
)
نمونه خروجی:
{
"rows": [
{
"isolatedSymbol": "BTCUSDT",
"tabdealSymbol": "BTC_USDT",
"amount": "14.00000000", // Total amount borrowed/repaid
"asset": "USDT",
"interest": "0.01866667", // Interest repaid
"principal": "13.98133333", // Principal repaid
"status": "CONFIRMED", // PENDING, CONFIRMED, FAILED;
"timestamp": 1563438204000,
"txId": 2970933056
}
],
"total": 1
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
asset | خیر | STRING | نماد مربوط به دارایی مورد نظر |
isolatedSymbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
txId | خیر | LONG | id تراکنش |
startTime | خیر | LONG | سفارشاتی که بعد از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
endTime | خیر | LONG | سفارشاتی که قبل از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
size | خیر | INT | خروجی تنها به این تعداد بازگردانده میشود |
current | خیر | INT | خروجی برای این صفحه برگردانده میشود |
تاریخچه بهره
GET https://api1.tabdeal.org/api/v1/margin/interestHistory [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
client = IsolatedMargin(api_key, api_secret)
assets = client.get_interests(
isolatedSymbol="BTCUSDT",
size=3
)
نمونه خروجی:
{
"rows": [
{
"txId": 1352286576452864727,
"interestAccuredTime": 1672160400000,
"asset": "USDT",
"principal": "45.3313",
"interest": "0.00024995",
"interestRate": "0.00013233",
"type": "ON_BORROW",
"isolatedSymbol": "BTCUSDT",
"tabdealSymbol": "BTC_USDT"
}
],
"total": 1
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
asset | خیر | STRING | نماد مربوط به دارایی مورد نظر |
isolatedSymbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
startTime | خیر | LONG | سفارشاتی که بعد از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
endTime | خیر | LONG | سفارشاتی که قبل از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
size | خیر | INT | خروجی تنها به این تعداد بازگردانده میشود |
current | خیر | INT | خروجی برای این صفحه برگردانده میشود |
- مقدار size به صورت پیش فرض
10
است و حداکثر مقدار قابل قبول برای آن1000
میباشد. type
پاسخ دارای ۲ مقدار میباشد:- PERIODIC: سود به ازای هر ساعت نگه داشتن اعتبار
- ON_BORROW: نخستین بهره دریافتی به ازای اعتبار گرفتن
اطلاعات حساب معامله اهرمدار
GET https://api1.tabdeal.org/api/v1/margin/isolated/account [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
client = IsolatedMargin(api_key, api_secret)
assets = client.get_isolated_margin_account(
symbols=["BTCUSDT"]
)
نمونه خروجی با symbols:
{
"assets":[
{
"baseAsset":
{
"asset": "BTC",
"borrowEnabled": true,
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000",
"netAssetOfBtc": "0.00000000",
"netAssetOfUsdt": "0.00000000",
"repayEnabled": true,
"totalAsset": "0.00000000"
},
"quoteAsset":
{
"asset": "USDT",
"borrowEnabled": true,
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000",
"netAssetOfBtc": "0.00000000",
"netAssetOfUsdt": "0.00000000",
"repayEnabled": true,
"totalAsset": "0.00000000"
},
"symbol": "BTCUSDT",
"isolatedCreated": true,
"enabled": true,
"marginLevel": "0.00000000",
"marginLevelStatus": "EXCESSIVE", // "EXCESSIVE", "NORMAL", "MARGIN_CALL", "FORCE_LIQUIDATION"
"marginRatio": "0.00000000",
"indexPrice": "10000.00000000",
"liquidatePrice": "1000.00000000",
"liquidateRate": "1.00000000",
"tradeEnabled": true
}
]
}
نمونه خروجی بدون symbols:
{
"assets":[
{
"baseAsset":
{
"asset": "BTC",
"borrowEnabled": true,
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000",
"netAssetOfBtc": "0.00000000",
"netAssetOfUsdt": "0.00000000",
"repayEnabled": true,
"totalAsset": "0.00000000"
},
"quoteAsset":
{
"asset": "USDT",
"borrowEnabled": true,
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000",
"netAssetOfBtc": "0.00000000",
"netAssetOfUsdt": "0.00000000",
"repayEnabled": true,
"totalAsset": "0.00000000"
},
"symbol": "BTCUSDT",
"isolatedCreated": true,
"enabled": true,
"marginLevel": "0.00000000",
"marginLevelStatus": "EXCESSIVE", // "EXCESSIVE", "NORMAL", "MARGIN_CALL", "FORCE_LIQUIDATION"
"marginRatio": "0.00000000",
"indexPrice": "10000.00000000",
"liquidatePrice": "1000.00000000",
"liquidateRate": "1.00000000",
"tradeEnabled": true
}
],
"totalAssetOfUsdt": "0.00000000",
"totalLiabilityOfUsdt": "0.00000000",
"totalNetAssetOfUsdt": "0.00000000",
"totalAssetOfBtc": "0.00000000",
"totalLiabilityOfBtc": "0.00000000",
"totalNetAssetOfBtc": "0.00000000"
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
symbols | خیر | STRING | نام بازارها با ، |
tabdealSymbols | خیر | STRING | نام بازار با _ و با ، |
- اگر
symbols
ارسال نشود، تمامی داراییهای اهرمدار برگردانده خواهند شد. - در صورتی که
symbols
ارسال شود، تنها داراییهای مربوط به نمادهای ارسال شده برگردانده خواهند شد.
تاریخچه لیکویید شدنها
GET https://api1.tabdeal.org/api/v1/margin/forceLiquidationRec [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
client = IsolatedMargin(api_key, api_secret)
assets = client.get_margin_force_liquidation_rec(
isolatedSymbol="BTCUSDT",
size=3
)
نمونه خروجی:
{
"rows": [
{
"avgPrice": "0.00388359",
"executedQty": "31.39000000",
"price": "0.00388110",
"qty": "31.39000000",
"symbol": "BTCUSDT",
"tabdealSymbol": "BTC_USDT",
"isIsolated": true,
"updatedTime": 1558941374745
}
],
"total": 1
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
isolatedSymbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
startTime | خیر | LONG | سفارشاتی که بعد از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
endTime | خیر | LONG | سفارشاتی که قبل از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
size | خیر | INT | خروجی تنها به این تعداد بازگردانده میشود |
current | خیر | INT | خروجی برای این صفحه برگردانده میشود |
تاریخچه گرفتن اعتبار
GET https://api1.tabdeal.org/api/v1/margin/loan [TRADE]
ارسال درخواست با کتابخانه پایتونی:
from tabdeal.isolated_margin import IsolatedMargin
client = IsolatedMargin(api_key, api_secret)
assets = client.get_margin_loan_details(
asset="USDT",
isolatedSymbol="BTCUSDT",
size=3
)
نمونه خروجی:
{
"rows": [
{
"isolatedSymbol": "BTCUSDT",
"tabdealSymbol": "BTC_USDT",
"txId": 2970933056,
"asset": "USDT",
"principal": "13.98133333",
"status": "CONFIRMED", // PENDING, CONFIRMED, FAILED;
"timestamp": 1563438204000
}
],
"total": 1
}
پارامترها:
پارامتر | الزامی | نوع | توضیحات |
---|---|---|---|
asset | خیر | STRING | نماد مربوط به دارایی مورد نظر |
isolatedSymbol | خیر | STRING | نام بازار |
tabdealSymbol | خیر | STRING | نام بازار با _ |
startTime | خیر | LONG | سفارشاتی که بعد از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
endTime | خیر | LONG | سفارشاتی که قبل از این زمان ایجاد شده باشند به عنوان خروجی بازگردانده میشوند |
size | خیر | INT | خروجی تنها به این تعداد بازگردانده میشود |
current | خیر | INT | خروجی برای این صفحه برگردانده میشود |
خطاها
در تمامی درخواست های ارسال شده اگر به هر دلیلی امکان پردازش درخواست وجود نداشته باشد خطایی بازگردانده می شود. این پاسخ به فرمت json و شامل کلیدهای code
و msg
می باشد.
نمونه خطای ارسال شده:
{
"code": errorCode,
"msg": "errorMessage"
}
خطای سرور
این دسته از خطاها مربوط به سرور هستند.
کد | توضیحات |
---|---|
1000 | خطای سرور (نامشخص) |
1001 | خطای سرور (نامشخص) |
1002 | تراکم بالای سفارشات |
1003 | ویژگی مورد نظر موجود نیست |
خطای احراز هویت
درخواست های فرستاده شده به درستی احراز هویت نمی شوند.
کد | توضیحات |
---|---|
1100 | signature یا timestamp یا api_key داده نشده است و یا اینکه api_key وجود ندارد |
1101 | timestamp نامعتبر است و یا اینکه 60 ثانیه از سرور جلوتر است و یا اینکه خارج از recieve window است |
1102 | recieve window نامعتبر است یا اینکه از 60000 بزرگ تر است |
1103 | signature نامعتبر است |
خطا در ارسال درخواست
پارامترهای ارسالی نامعتبر است.
کد | توضیحات |
---|---|
1200 | خطای نامعلوم سمت client ، با پشتیبانی تماس بگیرید |
1201 | پارامترهای ارسالی نامعتبر است |
1202 | اطلاعات فرستاده شده فرمت json درستی ندارند |
1203 | پارامترهای الزامی باید فرستاده شود |
1204 | سفارش مورد نظر پیدا نشد |
1205 | OCO مورد نظر پیدا نشد |
1206 | بازار مورد نظر پیدا نشد |
1207 | زمان شروع و زمان پایان میتوانند حداکثر 90 روز اختلاف داشته باشند |
1208 | ارسال سفارش باید منطبق بر قوانین بازار باشد |
1209 | قیمت گذاری OCO اشتباه است |
1210 | timestamp باید به میلی ثانیه باشد |
1211 | ساختار نمادهای (بازار) ارسالی اشتباه است |
1212 | ارز مورد نظر پیدا نشد |
1213 | با این clientOrderId قبلا سفارش ثبت شده است |
1214 | listenKey پیدا نشد |
1215 | سفارش قبلا لغو شده است |
1216 | تعداد درخواست های ارسالی از حد مجاز بیشتر شده است |
1217 | اجازه ارسال درخواست به این Endpoint با این HTTP متد وجود ندارد |
1218 | اعتبار کافی نیست |
خطای معامله اهرمدار
این دسته از خطاها مربوط به معامله اهرمدار هستند.
کد | توضیحات |
---|---|
5000 | حساب معامله تعهدی شما غیرفعال است. |
5001 | مقدار بیش از حد مجاز است. |
5002 | لطفا مقادیر بزرگتر از صفر وارد نمایید. |
10013 | مقدار وارد شده از وجه تضمین شما بیشتر است. |
5004 | اعطای اعتبار در بازار به سقف خود رسیده است. |
3027 | ارز انتخاب شده، معامله تعهدی ندارد. |
3028 | این بازار از معامله تعهدی پشتیبانی نمیکند. |
5007 | شما مجاز به انتقال وجه به این اکانت معامله تعهدی نیستید. |
5008 | امکان انتقال ارز به خارج اکانت معامله تعهدی، امکانپذیر نیست. |
3006 | شما به سقف دریافت اعتبار رسیدهاید. |
5010 | شما مجاز به گرفتن اعتبار نیستید. |
10008 | گرفتن اعتبار بر روی این ارز ممکن نیست. |
3015 | مقدار بازپرداخت از مقدار اعتبار بیشتر است. |
21007 | شما در حال لیکویید شدن هستید. |
5014 | مقدار واردشده، بیش از حداکثر مقدار قابل جابهجایی است. |
5015 | شما در حال حاضر پوزیشن باز ندارید. |
5016 | سفارش شما پر نشده و پوزیشن بازی ندارید. امکان فعالسازی حدضرر و قیمت هدف فقط در پوزیشن باز وجود دارد. |
5017 | شما میتوانید برای هر پوزیشن تنها یک حدضرر فعال نمایید. |
5018 | شما میتوانید برای هر پوزیشن تنها یک حدضرر فعال نمایید. |
5019 | قیمت وارد شده معتبر نمیباشد. |
5020 | برای این پوزیشن حد ضرر/قیمت هدف فعال ندارید. |
تغییرات
ورژن 0.6.0
مرداد ۱۴۰۱
اضافه شده
- اضافه شدن
POST r/api/v1/account
برای دریافت اطلاعات کاربر - اضافه شدن وب سوکت برای دریافت اطلاعات کاربر در لحظه
- اضافه شدن وب سوکت orderbook برای مشاهده لیست سفارشات بازارها در لحظه
ورژن 0.7.0
دی ۱۴۰۲
اضافه شده
- اضافه شدن معامله اهرمدار برای ثبت سفارش در بازارهای معامله اهرمدار
- اضافه شدن فیلتر شناسه سفارش برای سرویس معاملات من