mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-09 16:28:06 +00:00
80 lines
2.2 KiB
Markdown
80 lines
2.2 KiB
Markdown
- [Async Rtt](./examples/py/)
|
|
|
|
|
|
```python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
|
import sys
|
|
from asyncio import run
|
|
from pprint import pprint
|
|
|
|
|
|
import ccxt.async_support as ccxt # noqa: E402
|
|
# or
|
|
# import ccxtpro as ccxt # if you're using ccxtpro
|
|
|
|
|
|
# WARNING!
|
|
# This example measures the round-trip time when placing orders with an exchange
|
|
# In order to measure the speed of requests it disables the rate-limiting
|
|
# Disabling the rate-limiter is required to do an accurate measurement
|
|
# If you keep running without a rate limiter for a long time the exchange will ban you
|
|
# In a live production system always use either the built-in rate limiter or make your own
|
|
|
|
|
|
async def main():
|
|
|
|
# the exchange instance has to be reused
|
|
# do not recreate the exchange before each call!
|
|
|
|
exchange = ccxt.binance({
|
|
|
|
'apiKey': 'YOUR_API_KEY',
|
|
'secret': 'YOUR_API_SECRET',
|
|
|
|
# 'uid': 'YOUR_UID', # some exchanges require this
|
|
# 'password': 'YOUR_API_PASSWORD', # some exchanges require this
|
|
|
|
# if you do not rate-limit your requests the exchange can ban you!
|
|
'enableRateLimit': False, # https://github.com/ccxt/ccxt/wiki/Manual#rate-limit
|
|
|
|
})
|
|
|
|
await exchange.load_markets() # https://github.com/ccxt/ccxt/wiki/Manual#loading-markets
|
|
|
|
# exchange.verbose = True # uncomment for debugging purposes if needed
|
|
|
|
symbol = 'BTC/USDC'
|
|
market = exchange.market(symbol)
|
|
ticker = await exchange.fetch_ticker(symbol)
|
|
|
|
amount = market['limits']['amount']['min']
|
|
|
|
# we will place limit buy order at 3/4 of the price to make sure they're not triggered
|
|
|
|
price = ticker['last'] * 0.8
|
|
amount = round(market['limits']['cost']['min'] / price, 4)
|
|
|
|
results = []
|
|
|
|
for i in range(0, 10):
|
|
started = exchange.milliseconds()
|
|
order = await exchange.create_order(symbol, 'limit', 'buy', amount, price)
|
|
ended = exchange.milliseconds()
|
|
elapsed = ended - started
|
|
results.append(elapsed)
|
|
await exchange.cancel_order(order['id'], order['symbol'])
|
|
pprint(order)
|
|
pprint(results)
|
|
|
|
|
|
rtt = int(sum(results) / len(results))
|
|
print('Successfully tested 10 orders, the average round-trip time per order is', rtt, 'milliseconds')
|
|
|
|
await exchange.close()
|
|
|
|
|
|
run(main())
|
|
|
|
``` |