mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-11 17:28:08 +00:00
64 lines
1.8 KiB
Markdown
64 lines
1.8 KiB
Markdown
- [Okx Fetch Closed Orders Pagenumber Pagination](./examples/py/)
|
|
|
|
|
|
```python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
|
import sys
|
|
|
|
|
|
import ccxt # noqa: E402
|
|
|
|
'''
|
|
This is an example of pagenumber-based pagination as described here:
|
|
https://github.com/ccxt/ccxt/wiki/Manual#pagenumber-based-cursor-pagination
|
|
'''
|
|
|
|
symbol = 'ETH/BTC'
|
|
|
|
exchange = ccxt.okx({
|
|
'apiKey': 'YOUR_API_KEY', # put your values here
|
|
'secret': 'YOUR_SECRET',
|
|
})
|
|
|
|
|
|
def get_all_closed_orders_since_to(exchange, symbol, since, to):
|
|
result = []
|
|
page = 1
|
|
min_timestamp = to
|
|
print('Fetching all orders since', exchange.iso8601(since), since)
|
|
while min_timestamp > since:
|
|
try:
|
|
print('Fetching page', page)
|
|
params = {'current_page': page}
|
|
orders = exchange.fetch_closed_orders(symbol, since, None, params)
|
|
if len(orders):
|
|
min_timestamp = orders[0]['timestamp']
|
|
print('Fetched', len(orders), 'orders, the oldest order as of', exchange.iso8601(min_timestamp), min_timestamp)
|
|
result += orders
|
|
page += 1
|
|
else:
|
|
min_timestamp = since
|
|
except ccxt.ExchangeNotAvailable as e:
|
|
pass # retry
|
|
return result
|
|
|
|
|
|
one_day = 24 * 60 * 60 * 1000 # in milliseconds
|
|
since = exchange.parse8601('2018-11-25T00:00:00') # 0:00 AM UTC in milliseconds
|
|
# or
|
|
since = exchange.milliseconds() - one_day # last 24 hours in milliseconds
|
|
|
|
to = since + one_day
|
|
|
|
all_orders = get_all_closed_orders_since_to(exchange, symbol, since, to)
|
|
|
|
all_orders = exchange.sort_by(all_orders, 'timestamp')
|
|
|
|
print('Fetched all', len(all_orders), 'orders')
|
|
print('The oldest order as of', exchange.iso8601(all_orders[0]['timestamp']))
|
|
print('The youngest order as of', exchange.iso8601(all_orders[-1]['timestamp']))
|
|
print('Done.')
|
|
|
|
``` |