siglab-py 0.1.56__py3-none-any.whl → 0.1.57__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.
Potentially problematic release.
This version of siglab-py might be problematic. Click here for more details.
- siglab_py/util/market_data_util.py +17 -41
- {siglab_py-0.1.56.dist-info → siglab_py-0.1.57.dist-info}/METADATA +1 -1
- {siglab_py-0.1.56.dist-info → siglab_py-0.1.57.dist-info}/RECORD +5 -5
- {siglab_py-0.1.56.dist-info → siglab_py-0.1.57.dist-info}/WHEEL +0 -0
- {siglab_py-0.1.56.dist-info → siglab_py-0.1.57.dist-info}/top_level.txt +0 -0
|
@@ -301,7 +301,7 @@ def fetch_candles(
|
|
|
301
301
|
|
|
302
302
|
if end_ts>datetime.now().timestamp():
|
|
303
303
|
end_ts = int(datetime.now().timestamp())
|
|
304
|
-
|
|
304
|
+
|
|
305
305
|
if type(exchange) is YahooExchange:
|
|
306
306
|
return exchange.fetch_candles(
|
|
307
307
|
start_ts=start_ts,
|
|
@@ -335,10 +335,7 @@ def fetch_candles(
|
|
|
335
335
|
exchange=exchange,
|
|
336
336
|
normalized_symbols=normalized_symbols,
|
|
337
337
|
candle_size=candle_size,
|
|
338
|
-
|
|
339
|
-
num_candles_limit=num_candles_limit,
|
|
340
|
-
cache_dir=cache_dir,
|
|
341
|
-
list_ts_field=list_ts_field
|
|
338
|
+
num_candles_limit=num_candles_limit
|
|
342
339
|
)
|
|
343
340
|
return { '' : None }
|
|
344
341
|
|
|
@@ -348,47 +345,23 @@ def _fetch_candles_ccxt(
|
|
|
348
345
|
exchange,
|
|
349
346
|
normalized_symbols : List[str],
|
|
350
347
|
candle_size : str,
|
|
351
|
-
num_candles_limit : int = 100,
|
|
352
|
-
logger = None,
|
|
353
|
-
cache_dir : Union[str, None] = None,
|
|
354
|
-
list_ts_field : Union[str, None] = None
|
|
355
|
-
) -> Dict[str, Union[pd.DataFrame, None]]:
|
|
356
|
-
ticker = normalized_symbols[0]
|
|
357
|
-
pd_candles = _fetch_candles(
|
|
358
|
-
symbol = ticker,
|
|
359
|
-
exchange = exchange,
|
|
360
|
-
start_ts = start_ts,
|
|
361
|
-
end_ts = end_ts,
|
|
362
|
-
candle_size = candle_size,
|
|
363
|
-
)
|
|
364
|
-
return {
|
|
365
|
-
ticker : pd_candles
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
def _fetch_candles(
|
|
369
|
-
symbol : str,
|
|
370
|
-
exchange : CcxtExchange,
|
|
371
|
-
start_ts : int,
|
|
372
|
-
end_ts : int,
|
|
373
|
-
candle_size : str = '1d',
|
|
374
348
|
num_candles_limit : int = 100
|
|
375
|
-
):
|
|
376
|
-
|
|
377
|
-
one_timeframe = f"1{timeframe[-1]}"
|
|
378
|
-
candles = exchange.fetch_ohlcv(symbol=symbol, timeframe=one_timeframe, since=since, limit=limit, params=params)
|
|
379
|
-
if candles and len(candles)>0:
|
|
380
|
-
candles.sort(key=lambda x : x[0], reverse=False)
|
|
381
|
-
|
|
382
|
-
return candles
|
|
349
|
+
) -> Dict[str, Union[pd.DataFrame, None]]:
|
|
350
|
+
ticker = normalized_symbols[0]
|
|
383
351
|
|
|
384
|
-
|
|
385
|
-
|
|
352
|
+
def _fetch_ohlcv(exchange, symbol, timeframe, since, limit, params) -> Union[List, NoReturn]:
|
|
353
|
+
one_timeframe = f"1{timeframe[-1]}"
|
|
354
|
+
candles = exchange.fetch_ohlcv(symbol=symbol, timeframe=one_timeframe, since=since, limit=limit, params=params)
|
|
355
|
+
if candles and len(candles)>0:
|
|
356
|
+
candles.sort(key=lambda x : x[0], reverse=False)
|
|
386
357
|
|
|
358
|
+
return candles
|
|
359
|
+
|
|
387
360
|
all_candles = []
|
|
388
361
|
params = {}
|
|
389
362
|
this_cutoff = start_ts
|
|
390
363
|
while this_cutoff<end_ts:
|
|
391
|
-
candles = _fetch_ohlcv(exchange=exchange, symbol=
|
|
364
|
+
candles = _fetch_ohlcv(exchange=exchange, symbol=ticker, timeframe=candle_size, since=int(this_cutoff * 1000), limit=num_candles_limit, params=params)
|
|
392
365
|
if candles and len(candles)>0:
|
|
393
366
|
all_candles = all_candles + [[ int(x[0]), float(x[1]), float(x[2]), float(x[3]), float(x[4]), float(x[5]) ] for x in candles if x[1] and x[2] and x[3] and x[4] and x[5] ]
|
|
394
367
|
|
|
@@ -402,10 +375,13 @@ def _fetch_candles(
|
|
|
402
375
|
this_cutoff += 1
|
|
403
376
|
|
|
404
377
|
columns = ['exchange', 'symbol', 'timestamp_ms', 'open', 'high', 'low', 'close', 'volume']
|
|
405
|
-
pd_all_candles = pd.DataFrame([ [ exchange.name,
|
|
378
|
+
pd_all_candles = pd.DataFrame([ [ exchange.name, ticker, x[0], x[1], x[2], x[3], x[4], x[5] ] for x in all_candles], columns=columns)
|
|
406
379
|
fix_column_types(pd_all_candles)
|
|
407
380
|
pd_all_candles['pct_chg_on_close'] = pd_all_candles['close'].pct_change()
|
|
408
|
-
|
|
381
|
+
|
|
382
|
+
return {
|
|
383
|
+
ticker : pd_all_candles
|
|
384
|
+
}
|
|
409
385
|
|
|
410
386
|
def fetch_deribit_btc_option_expiries(
|
|
411
387
|
market: str = 'BTC'
|
|
@@ -26,9 +26,9 @@ siglab_py/tests/unit/market_data_util_tests.py,sha256=A1y83itISmMJdn6wLpfwcr4tGo
|
|
|
26
26
|
siglab_py/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
27
|
siglab_py/util/analytic_util.py,sha256=xo9gD1ELQt_1v84yu9d4NgxtOIXthePZGipvDrjZAQ8,43834
|
|
28
28
|
siglab_py/util/aws_util.py,sha256=KGmjHrr1rpnnxr33nXHNzTul4tvyyxl9p6gpwNv0Ygc,2557
|
|
29
|
-
siglab_py/util/market_data_util.py,sha256=
|
|
29
|
+
siglab_py/util/market_data_util.py,sha256=hBZiFhko0NFf8A74mv9Qia-YYbjK4RuhzC9I6L353is,19033
|
|
30
30
|
siglab_py/util/retry_util.py,sha256=mxYuRFZRZoaQQjENcwPmxhxixtd1TFvbxIdPx4RwfRc,743
|
|
31
|
-
siglab_py-0.1.
|
|
32
|
-
siglab_py-0.1.
|
|
33
|
-
siglab_py-0.1.
|
|
34
|
-
siglab_py-0.1.
|
|
31
|
+
siglab_py-0.1.57.dist-info/METADATA,sha256=SiMQHpopJdPupRvZPoetRePia_2c82SBUiGQX7SEFxI,980
|
|
32
|
+
siglab_py-0.1.57.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
|
33
|
+
siglab_py-0.1.57.dist-info/top_level.txt,sha256=AbD4VR9OqmMOGlMJLkAVPGQMtUPIQv0t1BF5xmcLJSk,10
|
|
34
|
+
siglab_py-0.1.57.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|