mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-11 09:18:08 +00:00
commit
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
- [Exchange Save Load Markets Cache](./examples/py/)
|
||||
|
||||
|
||||
```python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import asyncio
|
||||
import os
|
||||
from random import randint
|
||||
import sys
|
||||
from pprint import pprint
|
||||
|
||||
|
||||
import ccxt.pro as ccxt # noqa: E402
|
||||
|
||||
|
||||
print('CCXT Version:', ccxt.__version__)
|
||||
|
||||
exchange = ccxt.bybit({
|
||||
# 'apiKey': 'YOUR_API_KEY',
|
||||
# 'secret': 'YOUR_SECRET_KEY',
|
||||
})
|
||||
|
||||
cache = {} # in this example we will save markets cache in this variable, but it can be saved in a file or database
|
||||
|
||||
# We should use this strategy, when we need to recreate the exchange instance
|
||||
# multiple times, but we don't want to reload the cache every time
|
||||
# to avoid the extra time and resources needed to load the markets cache
|
||||
|
||||
|
||||
async def save_markets_cache():
|
||||
global cache
|
||||
before = exchange.milliseconds()
|
||||
|
||||
markets = await exchange.load_markets()
|
||||
|
||||
after = exchange.milliseconds()
|
||||
|
||||
print("Time to load markets:", after - before, "ms")
|
||||
|
||||
currencies = exchange.currencies
|
||||
|
||||
cache['markets'] = markets
|
||||
cache['currencies'] = currencies
|
||||
|
||||
|
||||
async def instantiate_with_cache():
|
||||
global cache
|
||||
|
||||
new_instance = ccxt.bybit({
|
||||
'markets': cache['markets'],
|
||||
'currencies': cache['currencies']
|
||||
})
|
||||
|
||||
before = exchange.milliseconds()
|
||||
|
||||
await new_instance.load_markets()
|
||||
|
||||
after = exchange.milliseconds()
|
||||
|
||||
print ("Time to load markets with cache:", after - before, "ms") # as you can see, it is instanteous
|
||||
|
||||
async def main():
|
||||
try:
|
||||
await save_markets_cache()
|
||||
|
||||
await instantiate_with_cache()
|
||||
|
||||
except Exception as e:
|
||||
print(e)
|
||||
await exchange.close()
|
||||
|
||||
|
||||
asyncio.run(main())
|
||||
|
||||
|
||||
# it should output something like this
|
||||
# CCXT Version: 4.4.38
|
||||
# Time to load markets: 1582 ms
|
||||
# Time to load markets with cache: 0 ms
|
||||
```
|
||||
Reference in New Issue
Block a user