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,55 @@
|
||||
- [Poloniex Fetch Trades With Pagination To Csv](./examples/py/)
|
||||
|
||||
|
||||
```python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import os
|
||||
import sys
|
||||
import pandas as pd
|
||||
|
||||
|
||||
import ccxt # noqa: E402
|
||||
|
||||
exchange = ccxt.poloniex()
|
||||
exchange.load_markets()
|
||||
|
||||
# Poloniex will only serve one year of data into the past
|
||||
|
||||
symbol = 'BTC/USDT'
|
||||
before = exchange.milliseconds()
|
||||
previous_length = 0
|
||||
all_trades = {}
|
||||
|
||||
while True:
|
||||
try:
|
||||
print('---------------------------------------------------------------')
|
||||
print('Fetching trades before', exchange.iso8601(before))
|
||||
params = {
|
||||
'end': int(before / 1000) # end param must be in seconds
|
||||
}
|
||||
trades = exchange.fetch_trades(symbol, None, None, params)
|
||||
trades_by_id = exchange.index_by(trades, 'id')
|
||||
before = trades[0]['timestamp']
|
||||
all_trades = exchange.extend(all_trades, trades_by_id)
|
||||
total_length = len(all_trades.keys())
|
||||
print('Fetched', total_length, 'trades in total')
|
||||
if total_length == previous_length:
|
||||
break
|
||||
previous_length = total_length
|
||||
except ccxt.NetworkError as e:
|
||||
print(e) # retry on next iteration
|
||||
except ccxt.ExchangeError as e:
|
||||
print(e)
|
||||
break
|
||||
|
||||
all_trades = exchange.sort_by(all_trades.values(), 'id')
|
||||
print('Fetched', len(all_trades), 'trades since', all_trades[0]['datetime'], 'till', all_trades[-1]['datetime'])
|
||||
|
||||
# omitted_keys = ['fee', 'info']
|
||||
# all_trades = [exchange.omit(trade, omitted_keys) for trade in all_trades]
|
||||
# path_to_your_csv_file = 'trades.csv' # change for your path here
|
||||
# df = pd.DataFrame(all_trades)
|
||||
# df.to_csv(path_to_your_csv_file, index=None, header=True)
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user