cryptodatapy 0.2.6__py3-none-any.whl → 0.2.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,747 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "id": "61dffe91-efa4-4f27-9b81-b349273678fb",
7
+ "metadata": {},
8
+ "outputs": [
9
+ {
10
+ "name": "stderr",
11
+ "output_type": "stream",
12
+ "text": [
13
+ "fatal: bad revision 'HEAD'\n"
14
+ ]
15
+ }
16
+ ],
17
+ "source": [
18
+ "import pandas as pd\n",
19
+ "from cryptodatapy.extract.libraries.ccxt_api import CCXT\n",
20
+ "from cryptodatapy.extract.datarequest import DataRequest\n",
21
+ "from cryptodatapy.transform.convertparams import ConvertParams\n",
22
+ "from cryptodatapy.extract.getdata import GetData"
23
+ ]
24
+ },
25
+ {
26
+ "cell_type": "code",
27
+ "execution_count": 2,
28
+ "id": "35541a56-30b9-4c62-9933-8c84e77db669",
29
+ "metadata": {},
30
+ "outputs": [],
31
+ "source": [
32
+ "cx = CCXT()"
33
+ ]
34
+ },
35
+ {
36
+ "cell_type": "code",
37
+ "execution_count": 3,
38
+ "id": "af738a24-f94d-4ab2-b309-36526f8b386a",
39
+ "metadata": {},
40
+ "outputs": [],
41
+ "source": [
42
+ "# get all Binance perp futures tickers\n",
43
+ "data_req = DataRequest(source='ccxt')\n",
44
+ "perp_tickers = GetData(data_req).get_meta(method='get_markets_info', \n",
45
+ " quote_ccy='USDT',\n",
46
+ " mkt_type='perpetual_future',\n",
47
+ " exch='binanceusdm', \n",
48
+ " as_list=True)"
49
+ ]
50
+ },
51
+ {
52
+ "cell_type": "code",
53
+ "execution_count": 4,
54
+ "id": "44a02d43-e561-4567-b991-7dbc7f1789c3",
55
+ "metadata": {},
56
+ "outputs": [
57
+ {
58
+ "data": {
59
+ "text/plain": [
60
+ "['BTC/USDT:USDT',\n",
61
+ " 'ETH/USDT:USDT',\n",
62
+ " 'BCH/USDT:USDT',\n",
63
+ " 'XRP/USDT:USDT',\n",
64
+ " 'EOS/USDT:USDT',\n",
65
+ " 'LTC/USDT:USDT',\n",
66
+ " 'TRX/USDT:USDT',\n",
67
+ " 'ETC/USDT:USDT',\n",
68
+ " 'LINK/USDT:USDT',\n",
69
+ " 'XLM/USDT:USDT',\n",
70
+ " 'ADA/USDT:USDT',\n",
71
+ " 'XMR/USDT:USDT',\n",
72
+ " 'DASH/USDT:USDT',\n",
73
+ " 'ZEC/USDT:USDT',\n",
74
+ " 'XTZ/USDT:USDT',\n",
75
+ " 'BNB/USDT:USDT',\n",
76
+ " 'ATOM/USDT:USDT',\n",
77
+ " 'ONT/USDT:USDT',\n",
78
+ " 'IOTA/USDT:USDT',\n",
79
+ " 'BAT/USDT:USDT',\n",
80
+ " 'VET/USDT:USDT',\n",
81
+ " 'NEO/USDT:USDT',\n",
82
+ " 'QTUM/USDT:USDT',\n",
83
+ " 'IOST/USDT:USDT',\n",
84
+ " 'THETA/USDT:USDT',\n",
85
+ " 'ALGO/USDT:USDT',\n",
86
+ " 'ZIL/USDT:USDT',\n",
87
+ " 'KNC/USDT:USDT',\n",
88
+ " 'ZRX/USDT:USDT',\n",
89
+ " 'COMP/USDT:USDT',\n",
90
+ " 'OMG/USDT:USDT',\n",
91
+ " 'DOGE/USDT:USDT',\n",
92
+ " 'SXP/USDT:USDT',\n",
93
+ " 'KAVA/USDT:USDT',\n",
94
+ " 'BAND/USDT:USDT',\n",
95
+ " 'RLC/USDT:USDT',\n",
96
+ " 'WAVES/USDT:USDT',\n",
97
+ " 'MKR/USDT:USDT',\n",
98
+ " 'SNX/USDT:USDT',\n",
99
+ " 'DOT/USDT:USDT',\n",
100
+ " 'DEFI/USDT:USDT',\n",
101
+ " 'YFI/USDT:USDT',\n",
102
+ " 'BAL/USDT:USDT',\n",
103
+ " 'CRV/USDT:USDT',\n",
104
+ " 'TRB/USDT:USDT',\n",
105
+ " 'RUNE/USDT:USDT',\n",
106
+ " 'SUSHI/USDT:USDT',\n",
107
+ " 'EGLD/USDT:USDT',\n",
108
+ " 'SOL/USDT:USDT',\n",
109
+ " 'ICX/USDT:USDT',\n",
110
+ " 'STORJ/USDT:USDT',\n",
111
+ " 'BLZ/USDT:USDT',\n",
112
+ " 'UNI/USDT:USDT',\n",
113
+ " 'AVAX/USDT:USDT',\n",
114
+ " 'FTM/USDT:USDT',\n",
115
+ " 'ENJ/USDT:USDT',\n",
116
+ " 'FLM/USDT:USDT',\n",
117
+ " 'REN/USDT:USDT',\n",
118
+ " 'KSM/USDT:USDT',\n",
119
+ " 'NEAR/USDT:USDT',\n",
120
+ " 'AAVE/USDT:USDT',\n",
121
+ " 'FIL/USDT:USDT',\n",
122
+ " 'RSR/USDT:USDT',\n",
123
+ " 'LRC/USDT:USDT',\n",
124
+ " 'OCEAN/USDT:USDT',\n",
125
+ " 'CVC/USDT:USDT',\n",
126
+ " 'BEL/USDT:USDT',\n",
127
+ " 'CTK/USDT:USDT',\n",
128
+ " 'AXS/USDT:USDT',\n",
129
+ " 'ALPHA/USDT:USDT',\n",
130
+ " 'ZEN/USDT:USDT',\n",
131
+ " 'SKL/USDT:USDT',\n",
132
+ " 'GRT/USDT:USDT',\n",
133
+ " '1INCH/USDT:USDT',\n",
134
+ " 'CHZ/USDT:USDT',\n",
135
+ " 'SAND/USDT:USDT',\n",
136
+ " 'ANKR/USDT:USDT',\n",
137
+ " 'LIT/USDT:USDT',\n",
138
+ " 'UNFI/USDT:USDT',\n",
139
+ " 'REEF/USDT:USDT',\n",
140
+ " 'RVN/USDT:USDT',\n",
141
+ " 'SFP/USDT:USDT',\n",
142
+ " 'XEM/USDT:USDT',\n",
143
+ " 'BTCST/USDT:USDT',\n",
144
+ " 'COTI/USDT:USDT',\n",
145
+ " 'CHR/USDT:USDT',\n",
146
+ " 'MANA/USDT:USDT',\n",
147
+ " 'ALICE/USDT:USDT',\n",
148
+ " 'HBAR/USDT:USDT',\n",
149
+ " 'ONE/USDT:USDT',\n",
150
+ " 'LINA/USDT:USDT',\n",
151
+ " 'STMX/USDT:USDT',\n",
152
+ " 'DENT/USDT:USDT',\n",
153
+ " 'CELR/USDT:USDT',\n",
154
+ " 'HOT/USDT:USDT',\n",
155
+ " 'MTL/USDT:USDT',\n",
156
+ " 'OGN/USDT:USDT',\n",
157
+ " 'NKN/USDT:USDT',\n",
158
+ " 'SC/USDT:USDT',\n",
159
+ " 'DGB/USDT:USDT',\n",
160
+ " '1000SHIB/USDT:USDT',\n",
161
+ " 'BAKE/USDT:USDT',\n",
162
+ " 'GTC/USDT:USDT',\n",
163
+ " 'BTCDOM/USDT:USDT',\n",
164
+ " 'IOTX/USDT:USDT',\n",
165
+ " 'RAY/USDT:USDT',\n",
166
+ " 'C98/USDT:USDT',\n",
167
+ " 'MASK/USDT:USDT',\n",
168
+ " 'ATA/USDT:USDT',\n",
169
+ " 'DYDX/USDT:USDT',\n",
170
+ " '1000XEC/USDT:USDT',\n",
171
+ " 'GALA/USDT:USDT',\n",
172
+ " 'CELO/USDT:USDT',\n",
173
+ " 'AR/USDT:USDT',\n",
174
+ " 'KLAY/USDT:USDT',\n",
175
+ " 'ARPA/USDT:USDT',\n",
176
+ " 'CTSI/USDT:USDT',\n",
177
+ " 'LPT/USDT:USDT',\n",
178
+ " 'ENS/USDT:USDT',\n",
179
+ " 'PEOPLE/USDT:USDT',\n",
180
+ " 'ROSE/USDT:USDT',\n",
181
+ " 'DUSK/USDT:USDT',\n",
182
+ " 'FLOW/USDT:USDT',\n",
183
+ " 'IMX/USDT:USDT',\n",
184
+ " 'API3/USDT:USDT',\n",
185
+ " 'GMT/USDT:USDT',\n",
186
+ " 'APE/USDT:USDT',\n",
187
+ " 'WOO/USDT:USDT',\n",
188
+ " 'FTT/USDT:USDT',\n",
189
+ " 'JASMY/USDT:USDT',\n",
190
+ " 'DAR/USDT:USDT',\n",
191
+ " 'OP/USDT:USDT',\n",
192
+ " 'INJ/USDT:USDT',\n",
193
+ " 'STG/USDT:USDT',\n",
194
+ " 'SPELL/USDT:USDT',\n",
195
+ " '1000LUNC/USDT:USDT',\n",
196
+ " 'LUNA2/USDT:USDT',\n",
197
+ " 'LDO/USDT:USDT',\n",
198
+ " 'CVX/USDT:USDT',\n",
199
+ " 'ICP/USDT:USDT',\n",
200
+ " 'APT/USDT:USDT',\n",
201
+ " 'QNT/USDT:USDT',\n",
202
+ " 'FET/USDT:USDT',\n",
203
+ " 'FXS/USDT:USDT',\n",
204
+ " 'HOOK/USDT:USDT',\n",
205
+ " 'MAGIC/USDT:USDT',\n",
206
+ " 'T/USDT:USDT',\n",
207
+ " 'HIGH/USDT:USDT',\n",
208
+ " 'MINA/USDT:USDT',\n",
209
+ " 'ASTR/USDT:USDT',\n",
210
+ " 'AGIX/USDT:USDT',\n",
211
+ " 'PHB/USDT:USDT',\n",
212
+ " 'GMX/USDT:USDT',\n",
213
+ " 'CFX/USDT:USDT',\n",
214
+ " 'STX/USDT:USDT',\n",
215
+ " 'BNX/USDT:USDT',\n",
216
+ " 'ACH/USDT:USDT',\n",
217
+ " 'SSV/USDT:USDT',\n",
218
+ " 'CKB/USDT:USDT',\n",
219
+ " 'PERP/USDT:USDT',\n",
220
+ " 'TRU/USDT:USDT',\n",
221
+ " 'LQTY/USDT:USDT',\n",
222
+ " 'USDC/USDT:USDT',\n",
223
+ " 'ID/USDT:USDT',\n",
224
+ " 'ARB/USDT:USDT',\n",
225
+ " 'JOE/USDT:USDT',\n",
226
+ " 'TLM/USDT:USDT',\n",
227
+ " 'AMB/USDT:USDT',\n",
228
+ " 'LEVER/USDT:USDT',\n",
229
+ " 'RDNT/USDT:USDT',\n",
230
+ " 'HFT/USDT:USDT',\n",
231
+ " 'XVS/USDT:USDT',\n",
232
+ " 'BLUR/USDT:USDT',\n",
233
+ " 'EDU/USDT:USDT',\n",
234
+ " 'IDEX/USDT:USDT',\n",
235
+ " 'SUI/USDT:USDT',\n",
236
+ " '1000PEPE/USDT:USDT',\n",
237
+ " '1000FLOKI/USDT:USDT',\n",
238
+ " 'UMA/USDT:USDT',\n",
239
+ " 'RAD/USDT:USDT',\n",
240
+ " 'KEY/USDT:USDT',\n",
241
+ " 'COMBO/USDT:USDT',\n",
242
+ " 'NMR/USDT:USDT',\n",
243
+ " 'MAV/USDT:USDT',\n",
244
+ " 'MDT/USDT:USDT',\n",
245
+ " 'XVG/USDT:USDT',\n",
246
+ " 'WLD/USDT:USDT',\n",
247
+ " 'PENDLE/USDT:USDT',\n",
248
+ " 'ARKM/USDT:USDT',\n",
249
+ " 'AGLD/USDT:USDT',\n",
250
+ " 'YGG/USDT:USDT',\n",
251
+ " 'DODOX/USDT:USDT',\n",
252
+ " 'BNT/USDT:USDT',\n",
253
+ " 'OXT/USDT:USDT',\n",
254
+ " 'SEI/USDT:USDT',\n",
255
+ " 'CYBER/USDT:USDT',\n",
256
+ " 'HIFI/USDT:USDT',\n",
257
+ " 'ARK/USDT:USDT',\n",
258
+ " 'GLMR/USDT:USDT',\n",
259
+ " 'BICO/USDT:USDT',\n",
260
+ " 'STRAX/USDT:USDT',\n",
261
+ " 'LOOM/USDT:USDT',\n",
262
+ " 'BIGTIME/USDT:USDT',\n",
263
+ " 'BOND/USDT:USDT',\n",
264
+ " 'ORBS/USDT:USDT',\n",
265
+ " 'STPT/USDT:USDT',\n",
266
+ " 'WAXP/USDT:USDT',\n",
267
+ " 'BSV/USDT:USDT',\n",
268
+ " 'RIF/USDT:USDT',\n",
269
+ " 'POLYX/USDT:USDT',\n",
270
+ " 'GAS/USDT:USDT',\n",
271
+ " 'POWR/USDT:USDT',\n",
272
+ " 'SLP/USDT:USDT',\n",
273
+ " 'TIA/USDT:USDT',\n",
274
+ " 'SNT/USDT:USDT',\n",
275
+ " 'CAKE/USDT:USDT',\n",
276
+ " 'MEME/USDT:USDT',\n",
277
+ " 'TWT/USDT:USDT',\n",
278
+ " 'TOKEN/USDT:USDT',\n",
279
+ " 'ORDI/USDT:USDT',\n",
280
+ " 'STEEM/USDT:USDT',\n",
281
+ " 'BADGER/USDT:USDT',\n",
282
+ " 'ILV/USDT:USDT',\n",
283
+ " 'NTRN/USDT:USDT',\n",
284
+ " 'KAS/USDT:USDT',\n",
285
+ " 'BEAMX/USDT:USDT',\n",
286
+ " '1000BONK/USDT:USDT',\n",
287
+ " 'PYTH/USDT:USDT',\n",
288
+ " 'SUPER/USDT:USDT',\n",
289
+ " 'USTC/USDT:USDT',\n",
290
+ " 'ONG/USDT:USDT',\n",
291
+ " 'ETHW/USDT:USDT',\n",
292
+ " 'JTO/USDT:USDT',\n",
293
+ " '1000SATS/USDT:USDT',\n",
294
+ " 'AUCTION/USDT:USDT',\n",
295
+ " '1000RATS/USDT:USDT',\n",
296
+ " 'ACE/USDT:USDT',\n",
297
+ " 'MOVR/USDT:USDT',\n",
298
+ " 'NFP/USDT:USDT',\n",
299
+ " 'AI/USDT:USDT',\n",
300
+ " 'XAI/USDT:USDT',\n",
301
+ " 'WIF/USDT:USDT',\n",
302
+ " 'MANTA/USDT:USDT',\n",
303
+ " 'ONDO/USDT:USDT',\n",
304
+ " 'LSK/USDT:USDT',\n",
305
+ " 'ALT/USDT:USDT',\n",
306
+ " 'JUP/USDT:USDT',\n",
307
+ " 'ZETA/USDT:USDT',\n",
308
+ " 'RONIN/USDT:USDT',\n",
309
+ " 'DYM/USDT:USDT',\n",
310
+ " 'OM/USDT:USDT',\n",
311
+ " 'PIXEL/USDT:USDT',\n",
312
+ " 'STRK/USDT:USDT',\n",
313
+ " 'MAVIA/USDT:USDT',\n",
314
+ " 'GLM/USDT:USDT',\n",
315
+ " 'PORTAL/USDT:USDT',\n",
316
+ " 'TON/USDT:USDT',\n",
317
+ " 'AXL/USDT:USDT',\n",
318
+ " 'MYRO/USDT:USDT',\n",
319
+ " 'METIS/USDT:USDT',\n",
320
+ " 'AEVO/USDT:USDT',\n",
321
+ " 'VANRY/USDT:USDT',\n",
322
+ " 'BOME/USDT:USDT',\n",
323
+ " 'ETHFI/USDT:USDT',\n",
324
+ " 'ENA/USDT:USDT',\n",
325
+ " 'W/USDT:USDT',\n",
326
+ " 'TNSR/USDT:USDT',\n",
327
+ " 'SAGA/USDT:USDT',\n",
328
+ " 'TAO/USDT:USDT',\n",
329
+ " 'OMNI/USDT:USDT',\n",
330
+ " 'REZ/USDT:USDT',\n",
331
+ " 'BB/USDT:USDT',\n",
332
+ " 'NOT/USDT:USDT',\n",
333
+ " 'TURBO/USDT:USDT',\n",
334
+ " 'IO/USDT:USDT',\n",
335
+ " 'ZK/USDT:USDT',\n",
336
+ " 'MEW/USDT:USDT',\n",
337
+ " 'LISTA/USDT:USDT',\n",
338
+ " 'ZRO/USDT:USDT',\n",
339
+ " 'RENDER/USDT:USDT',\n",
340
+ " 'BANANA/USDT:USDT',\n",
341
+ " 'RARE/USDT:USDT',\n",
342
+ " 'G/USDT:USDT',\n",
343
+ " 'SYN/USDT:USDT',\n",
344
+ " 'SYS/USDT:USDT',\n",
345
+ " 'VOXEL/USDT:USDT',\n",
346
+ " 'BRETT/USDT:USDT',\n",
347
+ " 'ALPACA/USDT:USDT',\n",
348
+ " 'POPCAT/USDT:USDT',\n",
349
+ " 'SUN/USDT:USDT',\n",
350
+ " 'VIDT/USDT:USDT',\n",
351
+ " 'NULS/USDT:USDT',\n",
352
+ " 'DOGS/USDT:USDT',\n",
353
+ " 'MBOX/USDT:USDT',\n",
354
+ " 'CHESS/USDT:USDT',\n",
355
+ " 'FLUX/USDT:USDT',\n",
356
+ " 'BSW/USDT:USDT',\n",
357
+ " 'QUICK/USDT:USDT',\n",
358
+ " 'NEIROETH/USDT:USDT',\n",
359
+ " 'RPL/USDT:USDT',\n",
360
+ " 'AERGO/USDT:USDT',\n",
361
+ " 'POL/USDT:USDT',\n",
362
+ " 'UXLINK/USDT:USDT',\n",
363
+ " '1MBABYDOGE/USDT:USDT',\n",
364
+ " 'NEIRO/USDT:USDT',\n",
365
+ " 'KDA/USDT:USDT',\n",
366
+ " 'FIDA/USDT:USDT',\n",
367
+ " 'FIO/USDT:USDT',\n",
368
+ " 'CATI/USDT:USDT',\n",
369
+ " 'GHST/USDT:USDT',\n",
370
+ " 'LOKA/USDT:USDT',\n",
371
+ " 'HMSTR/USDT:USDT',\n",
372
+ " 'REI/USDT:USDT']"
373
+ ]
374
+ },
375
+ "execution_count": 4,
376
+ "metadata": {},
377
+ "output_type": "execute_result"
378
+ }
379
+ ],
380
+ "source": [
381
+ "perp_tickers"
382
+ ]
383
+ },
384
+ {
385
+ "cell_type": "code",
386
+ "execution_count": 5,
387
+ "id": "11815102-7944-4b9b-86ce-adb340cd169b",
388
+ "metadata": {},
389
+ "outputs": [],
390
+ "source": [
391
+ "start = pd.Timestamp.now()"
392
+ ]
393
+ },
394
+ {
395
+ "cell_type": "code",
396
+ "execution_count": 6,
397
+ "id": "ff4408bf-3b80-41a8-8f39-5b84f1a60f0a",
398
+ "metadata": {
399
+ "scrolled": true
400
+ },
401
+ "outputs": [],
402
+ "source": [
403
+ "data_req = DataRequest(source='ccxt',\n",
404
+ " exch = 'binanceusdm',\n",
405
+ " source_markets=perp_tickers,\n",
406
+ " fields=['open', 'high', 'low', 'close', 'volume'],\n",
407
+ " freq='1h',\n",
408
+ " quote_ccy=None,\n",
409
+ " mkt_type='perpetual_future',\n",
410
+ " start_date=None,\n",
411
+ " end_date=None,\n",
412
+ " trials=3,\n",
413
+ " pause=0.5\n",
414
+ " ) "
415
+ ]
416
+ },
417
+ {
418
+ "cell_type": "code",
419
+ "execution_count": 7,
420
+ "id": "59491938-986f-434c-aa58-1ed02ba08543",
421
+ "metadata": {},
422
+ "outputs": [
423
+ {
424
+ "name": "stderr",
425
+ "output_type": "stream",
426
+ "text": [
427
+ "Fetching OHLCV data: 27%|█████▊ | 83/313 [33:31<1:20:29, 21.00s/ticker]WARNING:root:Failed to get OHLCV data from binanceusdm for BTCST/USDT:USDT on attempt #1.\n",
428
+ "WARNING:root:binanceusdm {\"code\":-1122,\"msg\":\"Invalid symbol status.\"}\n",
429
+ "WARNING:root:Failed to get OHLCV data from binanceusdm for BTCST/USDT:USDT on attempt #2.\n",
430
+ "WARNING:root:binanceusdm {\"code\":-1122,\"msg\":\"Invalid symbol status.\"}\n",
431
+ "WARNING:root:Failed to get OHLCV data from binanceusdm for BTCST/USDT:USDT on attempt #3.\n",
432
+ "WARNING:root:binanceusdm {\"code\":-1122,\"msg\":\"Invalid symbol status.\"}\n",
433
+ "WARNING:root:Failed to get OHLCV data from binanceusdm for BTCST/USDT:USDT after 3 attempts.\n",
434
+ "Fetching OHLCV data: 100%|█████████████████████| 313/313 [1:06:48<00:00, 12.81s/ticker]\n"
435
+ ]
436
+ }
437
+ ],
438
+ "source": [
439
+ "df = await cx.get_data(data_req)"
440
+ ]
441
+ },
442
+ {
443
+ "cell_type": "code",
444
+ "execution_count": 8,
445
+ "id": "80ada1aa-495f-4bea-a4b4-547f9dd4c45f",
446
+ "metadata": {},
447
+ "outputs": [
448
+ {
449
+ "data": {
450
+ "text/plain": [
451
+ "Timedelta('0 days 01:07:44.569036')"
452
+ ]
453
+ },
454
+ "execution_count": 8,
455
+ "metadata": {},
456
+ "output_type": "execute_result"
457
+ }
458
+ ],
459
+ "source": [
460
+ "pd.Timestamp.now() - start"
461
+ ]
462
+ },
463
+ {
464
+ "cell_type": "code",
465
+ "execution_count": 9,
466
+ "id": "7689e169-4d7c-4f1c-9c65-73d899b641d3",
467
+ "metadata": {},
468
+ "outputs": [
469
+ {
470
+ "data": {
471
+ "text/html": [
472
+ "<div>\n",
473
+ "<style scoped>\n",
474
+ " .dataframe tbody tr th:only-of-type {\n",
475
+ " vertical-align: middle;\n",
476
+ " }\n",
477
+ "\n",
478
+ " .dataframe tbody tr th {\n",
479
+ " vertical-align: top;\n",
480
+ " }\n",
481
+ "\n",
482
+ " .dataframe thead th {\n",
483
+ " text-align: right;\n",
484
+ " }\n",
485
+ "</style>\n",
486
+ "<table border=\"1\" class=\"dataframe\">\n",
487
+ " <thead>\n",
488
+ " <tr style=\"text-align: right;\">\n",
489
+ " <th></th>\n",
490
+ " <th></th>\n",
491
+ " <th>open</th>\n",
492
+ " <th>high</th>\n",
493
+ " <th>low</th>\n",
494
+ " <th>close</th>\n",
495
+ " <th>volume</th>\n",
496
+ " </tr>\n",
497
+ " <tr>\n",
498
+ " <th>date</th>\n",
499
+ " <th>ticker</th>\n",
500
+ " <th></th>\n",
501
+ " <th></th>\n",
502
+ " <th></th>\n",
503
+ " <th></th>\n",
504
+ " <th></th>\n",
505
+ " </tr>\n",
506
+ " </thead>\n",
507
+ " <tbody>\n",
508
+ " <tr>\n",
509
+ " <th>2019-09-08 17:00:00</th>\n",
510
+ " <th>BTC/USDT:USDT</th>\n",
511
+ " <td>10000.0</td>\n",
512
+ " <td>10000.0</td>\n",
513
+ " <td>10000.0</td>\n",
514
+ " <td>10000.0</td>\n",
515
+ " <td>0.002</td>\n",
516
+ " </tr>\n",
517
+ " <tr>\n",
518
+ " <th>2019-09-08 18:00:00</th>\n",
519
+ " <th>BTC/USDT:USDT</th>\n",
520
+ " <td>10000.0</td>\n",
521
+ " <td>10000.0</td>\n",
522
+ " <td>10000.0</td>\n",
523
+ " <td>10000.0</td>\n",
524
+ " <td>&lt;NA&gt;</td>\n",
525
+ " </tr>\n",
526
+ " <tr>\n",
527
+ " <th>2019-09-08 19:00:00</th>\n",
528
+ " <th>BTC/USDT:USDT</th>\n",
529
+ " <td>10344.77</td>\n",
530
+ " <td>10357.53</td>\n",
531
+ " <td>10337.43</td>\n",
532
+ " <td>10340.12</td>\n",
533
+ " <td>471.659</td>\n",
534
+ " </tr>\n",
535
+ " <tr>\n",
536
+ " <th>2019-09-08 20:00:00</th>\n",
537
+ " <th>BTC/USDT:USDT</th>\n",
538
+ " <td>10340.12</td>\n",
539
+ " <td>10368.64</td>\n",
540
+ " <td>10334.54</td>\n",
541
+ " <td>10351.42</td>\n",
542
+ " <td>583.271</td>\n",
543
+ " </tr>\n",
544
+ " <tr>\n",
545
+ " <th>2019-09-08 21:00:00</th>\n",
546
+ " <th>BTC/USDT:USDT</th>\n",
547
+ " <td>10351.42</td>\n",
548
+ " <td>10391.9</td>\n",
549
+ " <td>10324.77</td>\n",
550
+ " <td>10391.9</td>\n",
551
+ " <td>689.759</td>\n",
552
+ " </tr>\n",
553
+ " <tr>\n",
554
+ " <th>...</th>\n",
555
+ " <th>...</th>\n",
556
+ " <td>...</td>\n",
557
+ " <td>...</td>\n",
558
+ " <td>...</td>\n",
559
+ " <td>...</td>\n",
560
+ " <td>...</td>\n",
561
+ " </tr>\n",
562
+ " <tr>\n",
563
+ " <th rowspan=\"5\" valign=\"top\">2024-09-30 00:00:00</th>\n",
564
+ " <th>ZETA/USDT:USDT</th>\n",
565
+ " <td>0.7161</td>\n",
566
+ " <td>0.7179</td>\n",
567
+ " <td>0.6878</td>\n",
568
+ " <td>0.7026</td>\n",
569
+ " <td>9282132.0</td>\n",
570
+ " </tr>\n",
571
+ " <tr>\n",
572
+ " <th>ZIL/USDT:USDT</th>\n",
573
+ " <td>0.01602</td>\n",
574
+ " <td>0.01605</td>\n",
575
+ " <td>0.01596</td>\n",
576
+ " <td>0.01602</td>\n",
577
+ " <td>5219176.0</td>\n",
578
+ " </tr>\n",
579
+ " <tr>\n",
580
+ " <th>ZK/USDT:USDT</th>\n",
581
+ " <td>0.14636</td>\n",
582
+ " <td>0.14814</td>\n",
583
+ " <td>0.14378</td>\n",
584
+ " <td>0.14606</td>\n",
585
+ " <td>22500668.0</td>\n",
586
+ " </tr>\n",
587
+ " <tr>\n",
588
+ " <th>ZRO/USDT:USDT</th>\n",
589
+ " <td>5.0065</td>\n",
590
+ " <td>5.035</td>\n",
591
+ " <td>4.905</td>\n",
592
+ " <td>4.9879</td>\n",
593
+ " <td>1302227.4</td>\n",
594
+ " </tr>\n",
595
+ " <tr>\n",
596
+ " <th>ZRX/USDT:USDT</th>\n",
597
+ " <td>0.3605</td>\n",
598
+ " <td>0.3614</td>\n",
599
+ " <td>0.3583</td>\n",
600
+ " <td>0.3594</td>\n",
601
+ " <td>432972.7</td>\n",
602
+ " </tr>\n",
603
+ " </tbody>\n",
604
+ "</table>\n",
605
+ "<p>5756566 rows × 5 columns</p>\n",
606
+ "</div>"
607
+ ],
608
+ "text/plain": [
609
+ " open high low close \\\n",
610
+ "date ticker \n",
611
+ "2019-09-08 17:00:00 BTC/USDT:USDT 10000.0 10000.0 10000.0 10000.0 \n",
612
+ "2019-09-08 18:00:00 BTC/USDT:USDT 10000.0 10000.0 10000.0 10000.0 \n",
613
+ "2019-09-08 19:00:00 BTC/USDT:USDT 10344.77 10357.53 10337.43 10340.12 \n",
614
+ "2019-09-08 20:00:00 BTC/USDT:USDT 10340.12 10368.64 10334.54 10351.42 \n",
615
+ "2019-09-08 21:00:00 BTC/USDT:USDT 10351.42 10391.9 10324.77 10391.9 \n",
616
+ "... ... ... ... ... \n",
617
+ "2024-09-30 00:00:00 ZETA/USDT:USDT 0.7161 0.7179 0.6878 0.7026 \n",
618
+ " ZIL/USDT:USDT 0.01602 0.01605 0.01596 0.01602 \n",
619
+ " ZK/USDT:USDT 0.14636 0.14814 0.14378 0.14606 \n",
620
+ " ZRO/USDT:USDT 5.0065 5.035 4.905 4.9879 \n",
621
+ " ZRX/USDT:USDT 0.3605 0.3614 0.3583 0.3594 \n",
622
+ "\n",
623
+ " volume \n",
624
+ "date ticker \n",
625
+ "2019-09-08 17:00:00 BTC/USDT:USDT 0.002 \n",
626
+ "2019-09-08 18:00:00 BTC/USDT:USDT <NA> \n",
627
+ "2019-09-08 19:00:00 BTC/USDT:USDT 471.659 \n",
628
+ "2019-09-08 20:00:00 BTC/USDT:USDT 583.271 \n",
629
+ "2019-09-08 21:00:00 BTC/USDT:USDT 689.759 \n",
630
+ "... ... \n",
631
+ "2024-09-30 00:00:00 ZETA/USDT:USDT 9282132.0 \n",
632
+ " ZIL/USDT:USDT 5219176.0 \n",
633
+ " ZK/USDT:USDT 22500668.0 \n",
634
+ " ZRO/USDT:USDT 1302227.4 \n",
635
+ " ZRX/USDT:USDT 432972.7 \n",
636
+ "\n",
637
+ "[5756566 rows x 5 columns]"
638
+ ]
639
+ },
640
+ "execution_count": 9,
641
+ "metadata": {},
642
+ "output_type": "execute_result"
643
+ }
644
+ ],
645
+ "source": [
646
+ "df"
647
+ ]
648
+ },
649
+ {
650
+ "cell_type": "code",
651
+ "execution_count": 10,
652
+ "id": "fb772efb-9ed5-493b-9fe7-f2e0ce93da37",
653
+ "metadata": {},
654
+ "outputs": [],
655
+ "source": [
656
+ "df.to_parquet('s3://factorlab-data/binance_perps_ohlcv_hourly.parquet')"
657
+ ]
658
+ },
659
+ {
660
+ "cell_type": "code",
661
+ "execution_count": null,
662
+ "id": "9e78edb8-89b7-4572-bb61-0bd7f405e2a7",
663
+ "metadata": {},
664
+ "outputs": [],
665
+ "source": [
666
+ "# hist, d freq: ohlcv, funding rates, oi\n",
667
+ "# hist, d freq, btc quote: ohlcv\n",
668
+ "# hist, h freq: ohlcv, funding rates, oi\n",
669
+ "# 1 day from today, h freq: ohlcv, funding rates, oi\n",
670
+ "# 1 day, h freq, star-end date chg: ohlcv, funding rates"
671
+ ]
672
+ },
673
+ {
674
+ "cell_type": "code",
675
+ "execution_count": null,
676
+ "id": "10a2d056-4dbd-466e-89cb-74ba438a3e5b",
677
+ "metadata": {},
678
+ "outputs": [],
679
+ "source": []
680
+ },
681
+ {
682
+ "cell_type": "code",
683
+ "execution_count": null,
684
+ "id": "b5b59b00-cd16-48a6-93d7-245658bf7803",
685
+ "metadata": {},
686
+ "outputs": [],
687
+ "source": []
688
+ },
689
+ {
690
+ "cell_type": "code",
691
+ "execution_count": null,
692
+ "id": "fff0b3f5-0186-48da-97c3-ed60af830fb3",
693
+ "metadata": {},
694
+ "outputs": [],
695
+ "source": []
696
+ },
697
+ {
698
+ "cell_type": "code",
699
+ "execution_count": null,
700
+ "id": "b5e9f777-4720-4366-b4a0-6be539716317",
701
+ "metadata": {},
702
+ "outputs": [],
703
+ "source": []
704
+ },
705
+ {
706
+ "cell_type": "code",
707
+ "execution_count": null,
708
+ "id": "0fc5a543-34e7-4f45-923e-40c2c7baf80b",
709
+ "metadata": {},
710
+ "outputs": [],
711
+ "source": [
712
+ "# TODO load_markets() when instantiating the exchange in ccxt"
713
+ ]
714
+ },
715
+ {
716
+ "cell_type": "code",
717
+ "execution_count": null,
718
+ "id": "fc4645e9-055d-4035-93d1-b56980761c3e",
719
+ "metadata": {},
720
+ "outputs": [],
721
+ "source": [
722
+ "# exchange.has"
723
+ ]
724
+ }
725
+ ],
726
+ "metadata": {
727
+ "kernelspec": {
728
+ "display_name": "cryptodatapy",
729
+ "language": "python",
730
+ "name": "cryptodatapy"
731
+ },
732
+ "language_info": {
733
+ "codemirror_mode": {
734
+ "name": "ipython",
735
+ "version": 3
736
+ },
737
+ "file_extension": ".py",
738
+ "mimetype": "text/x-python",
739
+ "name": "python",
740
+ "nbconvert_exporter": "python",
741
+ "pygments_lexer": "ipython3",
742
+ "version": "3.9.12"
743
+ }
744
+ },
745
+ "nbformat": 4,
746
+ "nbformat_minor": 5
747
+ }