Simplify numpy mapping logic
parent
59249a8c1e
commit
8403d8a482
|
@ -327,6 +327,29 @@ class Client:
|
|||
Get OHLC data and convert to numpy array for perffff:
|
||||
https://docs.kucoin.com/#get-klines
|
||||
|
||||
Kucoin bar data format:
|
||||
[
|
||||
"1545904980", //Start time of the candle cycle 0
|
||||
"0.058", //opening price 1
|
||||
"0.049", //closing price 2
|
||||
"0.058", //highest price 3
|
||||
"0.049", //lowest price 4
|
||||
"0.018", //Transaction volume 5
|
||||
"0.000945" //Transaction amount 6
|
||||
],
|
||||
|
||||
piker ohlc numpy array format:
|
||||
[
|
||||
('index', int),
|
||||
('time', int),
|
||||
('open', float),
|
||||
('high', float),
|
||||
('low', float),
|
||||
('close', float),
|
||||
('volume', float),
|
||||
('bar_wap', float), # will be zeroed by sampler if not filled
|
||||
]
|
||||
|
||||
'''
|
||||
# Generate generic end and start time if values not passed
|
||||
# Currently gives us 12hrs of data
|
||||
|
@ -360,34 +383,30 @@ class Client:
|
|||
bars: list[list[str]] = data
|
||||
break
|
||||
|
||||
# Map to OHLC values to dict then to np array
|
||||
new_bars = []
|
||||
for i, bar in enumerate(bars[::-1]):
|
||||
data = {
|
||||
'index': i,
|
||||
'time': bar[0],
|
||||
'open': bar[1],
|
||||
'close': bar[2],
|
||||
'high': bar[3],
|
||||
'low': bar[4],
|
||||
'volume': bar[5],
|
||||
'amount': bar[6],
|
||||
'bar_wap': 0.0,
|
||||
}
|
||||
reversed_bars = bars[::-1]
|
||||
|
||||
row = []
|
||||
for _, (field_name, field_type) in enumerate(_ohlc_dtype):
|
||||
value = data[field_name]
|
||||
|
||||
match field_name:
|
||||
case 'index':
|
||||
row.append(int(value))
|
||||
case 'time':
|
||||
row.append(value)
|
||||
case _:
|
||||
row.append(float(value))
|
||||
|
||||
new_bars.append(tuple(row))
|
||||
for i, bar in enumerate(reversed_bars):
|
||||
new_bars.append(
|
||||
(
|
||||
# index
|
||||
i,
|
||||
# time
|
||||
int(bar[0]),
|
||||
# open
|
||||
float(bar[1]),
|
||||
# high
|
||||
float(bar[3]),
|
||||
# low
|
||||
float(bar[4]),
|
||||
# close
|
||||
float(bar[2]),
|
||||
# volume
|
||||
float(bar[5]),
|
||||
# bar_wap
|
||||
0.0,
|
||||
)
|
||||
)
|
||||
|
||||
array = np.array(new_bars, dtype=_ohlc_dtype) if as_np else bars
|
||||
return array
|
||||
|
|
Loading…
Reference in New Issue