An abstract, fully-typed, async Python SDK for automated crypto trading. By Tribulnation.
Project description
Tribulnation SDK
An abstract, fully-typed, async Python SDK for automated crypto trading.
Trading Quick Start
from tribulnation.sdk import TradingSDK
sdk = TradingSDK()
mexc = await sdk.market('mexc:spot:BTCUSDT')
dydx = await sdk.market('dydx:perp:BTC-USD')
async for my_trade in mexc.trades_stream():
print(f'Hedging {my_trade}')
await dydx.place_order({
'type': 'LIMIT',
'qty': -my_trade.qty,
'price': my_trade.price,
})
Installation
pip install tribulnation-sdk[mexc, dydx, hyperliquid]
Supported Venues
mexc: MEXCdydx: dYdXhyperliquid: Hyperliquid
Enumerating Venues/Exchanges/Markets
venues = await sdk.venues()
venue = await sdk.venue(venues[0])
exchanges = await venue.exchanges()
exchange = await venue.exchange(exchanges[0])
markets = await exchange.markets()
market = await exchange.market(markets[0])
Market IDs
Market IDs have this form: <venue_id>:<exchange_id>:<market_id>.
You can also scope. These are equivalent:
- Directly on the SDK:
await sdk.book('mexc:spot:BTCUSDT')
- By venue:
venue = await sdk.venue('mexc')
await venue.book('spot:BTCUSDT')
- By exchange:
exchange = await venue.exchange('spot')
await exchange.book('BTCUSDT')
- By market:
market = await exchange.market('BTCUSDT')
await market.depth()
Market Interface
- Public data:
depth() -> Book: order bookdepth_stream() -> Stream[Book]: real-time order book updatesrules() -> Rules: market rules (tick size, fees, etc.)
- User data:
query_order(id: str) -> OrderState | Noneopen_orders() -> Sequence[OrderState]trades_history(start: datetime, end: datetime) -> AsyncIterable[Sequence[Trade]]trades_stream() -> Stream[Trade]: real-time user tradesposition() -> Position: base-asset position
- Trading:
place_order(order: Order) -> OrderResponseplace_orders(orders: Sequence[Order]) -> Sequence[OrderResponse]cancel_order(id: str) -> Anycancel_orders(ids: Sequence[str])cancel_open_orders()
- Perpetual markets:
index() -> Decimal: index pricenext_funding() -> FundingRate: next funding ratefunding_history(start: datetime, end: datetime) -> AsyncIterable[Sequence[FundingRate]]: market funding rate historyfunding_payments(start: datetime, end: datetime) -> AsyncIterable[Sequence[FundingPayment]]: your funding payments historyposition() -> PerpPosition: open base-asset position, including the entry price
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tribulnation_sdk-1.1.2.tar.gz
(25.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tribulnation_sdk-1.1.2.tar.gz.
File metadata
- Download URL: tribulnation_sdk-1.1.2.tar.gz
- Upload date:
- Size: 25.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29feb162b31f5f966c4f9980e2ab7b7c46d58f93e07abd4ab4d895a0b886b0ad
|
|
| MD5 |
64e23880fbe5036bd8ca8253922a3efb
|
|
| BLAKE2b-256 |
7e7aaf443bd97eaf05f16adb21d459071f2d90ad390d7c34f0cd1fd56996ab7b
|
File details
Details for the file tribulnation_sdk-1.1.2-py3-none-any.whl.
File metadata
- Download URL: tribulnation_sdk-1.1.2-py3-none-any.whl
- Upload date:
- Size: 35.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1f6541eb40768fdeec1437a3a078464cd051d8a0f1a81ef9d2aa6f485067a26
|
|
| MD5 |
edcfde251b8e4df65568b117067e6cf9
|
|
| BLAKE2b-256 |
84e01a2d8ab3a3b8f10281e1e9fd1482952cfc4d34ff328c659e9505e96cb6c6
|