پرش به محتویات

معامله

همهٔ متدهای معامله کلید API لازم دارند.

ثبت سفارش

client.create_order(symbol, type, side, amount=None, price=None, params=None)
type لازم دارد
limit amount، price
market amount (ارز پایه) یا params={"quoteAmount": ...}، نه هر دو
stop_limit amount، price (قیمت محدود پس از فعال‌شدن)، params={"stopPrice": ...}
oco amount، price، params={"stopPrice": ..., "takeProfitPrice": ...}

params کلید clientOrderId (شناسهٔ دلخواه شما که یکتا نگه‌داشتنش با خودتان است) را هم می‌گیرد. کلیدهای ناشناخته همان‌طور فرستاده می‌شوند. کلاینت پیش از ارسال سفارش را بررسی می‌کند؛ مثلاً نبودن قیمت بدون مصرف سهمیهٔ نرخ خطای InvalidOrder می‌دهد.

order = client.create_order("BTC/IRT", "limit", "buy", "0.001", "3100000000",
                            {"clientOrderId": "grid-7"})
order["status"]   # "open"

create_orders(orders) تا ۱۰ سفارش را در یک درخواست اتمی ثبت می‌کند (یا همه یا هیچ):

client.create_orders([
    {"symbol": "USDT/IRT", "type": "limit", "side": "buy", "amount": "10", "price": "90000"},
    {"symbol": "USDT/IRT", "type": "limit", "side": "sell", "amount": "10", "price": "91000"},
])

وضعیت سفارش

state بیت‌پین status در ccxt
initial، active open
closed، کامل پر شده closed
closed، کامل پر نشده canceled

filled، remaining، cost (مقدار پرشده به ارز مظنه) و average از فیلدهای بیت‌پین محاسبه می‌شوند. سفارش خام در info است.

خواندن سفارش‌ها

متد چه چیزی
fetch_order(id) یک سفارش
fetch_orders(symbol, since, limit, params) سفارش‌های فعال و سفارش‌های بسته‌شده در ۷ روز اخیر
fetch_open_orders(...) فقط initial و active
fetch_closed_orders(...) بسته‌شده در ۷ روز اخیر
fetch_order_history(symbol, since, until, limit, params) سفارش‌های بستهٔ قدیمی‌تر با حداقل یک معامله؛ بازه حداکثر ۹۰ روز؛ با کمی تأخیر به‌روز می‌شود

params برای fetch_orders: side، type، state (فهرست مجاز است)، identifier، ids_in، identifiers_in. با paginate=True همهٔ صفحه‌ها خوانده می‌شوند (maxPages، پیش‌فرض ۱۰۰). صفحه‌ها با نشانگر شناسه کار می‌کنند و کلاینت آن را برایتان مدیریت می‌کند.

لغو

متد
cancel_order(id) با شناسهٔ سفارش
cancel_order_by_identifier(client_order_id) با clientOrderId شما
cancel_orders(ids=[...]) یا cancel_orders(identifiers=[...]) تا ۱۰ سفارش؛ خروجی {"canceled": [...], "not_canceled": [...]}

لغو موفق یعنی موتور معاملات درخواست را پذیرفته است؛ سفارش لحظه‌ای بعد بسته می‌شود. با fetch_order یا watch_orders مطمئن شوید. لغو سفارش بسته خطای InvalidOrder می‌دهد.

معاملات شما

fetch_my_trades(symbol=None, since=None, limit=None) معاملات ۲۴ ساعت اخیر را با fee (cost، currency) برمی‌گرداند. since قدیمی‌تر از ۲۴ ساعت خطای BadRequest می‌دهد؛ به جای آن از fetch_order_history استفاده کنید.