Qubx 0.7.9__cp312-cp312-manylinux_2_39_x86_64.whl → 0.7.10__cp312-cp312-manylinux_2_39_x86_64.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 Qubx might be problematic. Click here for more details.
- qubx/connectors/xlighter/client.py +7 -0
- qubx/core/series.cpython-312-x86_64-linux-gnu.so +0 -0
- qubx/core/utils.cpython-312-x86_64-linux-gnu.so +0 -0
- qubx/emitters/indicator.py +2 -10
- qubx/ta/indicators.cpython-312-x86_64-linux-gnu.so +0 -0
- qubx/utils/hft/orderbook.cpython-312-x86_64-linux-gnu.so +0 -0
- qubx/utils/ringbuffer.cpython-312-x86_64-linux-gnu.so +0 -0
- {qubx-0.7.9.dist-info → qubx-0.7.10.dist-info}/METADATA +1 -1
- {qubx-0.7.9.dist-info → qubx-0.7.10.dist-info}/RECORD +12 -12
- {qubx-0.7.9.dist-info → qubx-0.7.10.dist-info}/WHEEL +0 -0
- {qubx-0.7.9.dist-info → qubx-0.7.10.dist-info}/entry_points.txt +0 -0
- {qubx-0.7.9.dist-info → qubx-0.7.10.dist-info}/licenses/LICENSE +0 -0
|
@@ -255,6 +255,13 @@ class LighterClient:
|
|
|
255
255
|
resolution_ms = self._resolution_to_milliseconds(resolution)
|
|
256
256
|
start_timestamp = end_timestamp - (count_back * resolution_ms)
|
|
257
257
|
|
|
258
|
+
start_td = cast(pd.Timestamp, pd.Timestamp(start_timestamp, unit="ms"))
|
|
259
|
+
end_td = cast(pd.Timestamp, pd.Timestamp(end_timestamp, unit="ms"))
|
|
260
|
+
tf = pd.Timedelta(resolution)
|
|
261
|
+
if start_td + tf > end_td:
|
|
262
|
+
start_td = end_td - tf
|
|
263
|
+
start_timestamp = int(start_td.timestamp() * 1000) # type: ignore
|
|
264
|
+
|
|
258
265
|
start_timestamp_str = (
|
|
259
266
|
cast(pd.Timestamp, pd.Timestamp(start_timestamp, unit="ms")).strftime("%Y-%m-%d %H:%M:%S")
|
|
260
267
|
if start_timestamp is not None
|
|
Binary file
|
|
Binary file
|
qubx/emitters/indicator.py
CHANGED
|
@@ -75,10 +75,6 @@ class IndicatorEmitter(Indicator):
|
|
|
75
75
|
# Since Indicator extends TimeSeries, we can pass the wrapped_indicator directly
|
|
76
76
|
super().__init__(name, wrapped_indicator)
|
|
77
77
|
|
|
78
|
-
logger.debug(
|
|
79
|
-
f"[IndicatorEmitter] Created emitter '{name}' wrapping '{wrapped_indicator.name}' -> metric '{self._metric_name}'"
|
|
80
|
-
)
|
|
81
|
-
|
|
82
78
|
def calculate(self, time: int, value: float, new_item_started: bool) -> float:
|
|
83
79
|
"""
|
|
84
80
|
Calculate method that handles the emission logic.
|
|
@@ -117,10 +113,10 @@ class IndicatorEmitter(Indicator):
|
|
|
117
113
|
# Emit the metric with the proper timestamp
|
|
118
114
|
# Convert time to numpy datetime64 if needed
|
|
119
115
|
if isinstance(time, int):
|
|
120
|
-
timestamp = np.datetime64(time,
|
|
116
|
+
timestamp = np.datetime64(time, "ns")
|
|
121
117
|
else:
|
|
122
118
|
timestamp = pd.Timestamp(time).to_datetime64()
|
|
123
|
-
|
|
119
|
+
|
|
124
120
|
self._metric_emitter.emit(
|
|
125
121
|
name=self._metric_name,
|
|
126
122
|
value=float(current_value),
|
|
@@ -130,10 +126,6 @@ class IndicatorEmitter(Indicator):
|
|
|
130
126
|
)
|
|
131
127
|
|
|
132
128
|
if not self._has_emitted:
|
|
133
|
-
logger.debug(
|
|
134
|
-
f"[IndicatorEmitter] '{self.name}' started emitting '{self._metric_name}' "
|
|
135
|
-
f"values from '{self._wrapped_indicator.name}'"
|
|
136
|
-
)
|
|
137
129
|
self._has_emitted = True
|
|
138
130
|
|
|
139
131
|
except Exception as e:
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -62,7 +62,7 @@ qubx/connectors/tardis/utils.py,sha256=epThu9DwqbDb7BgScH6fHa_FVpKUaItOqp3JwtKGc
|
|
|
62
62
|
qubx/connectors/xlighter/__init__.py,sha256=6Cs8jUvlDasyjue5KFQBgp5ws7Sh-BiMd-O2ECCIHAE,2174
|
|
63
63
|
qubx/connectors/xlighter/account.py,sha256=Z1iGxRJezFrgNYrnyv9O9hAxc5hgme5R3kVWFbyqsd8,19717
|
|
64
64
|
qubx/connectors/xlighter/broker.py,sha256=AeqVMwTn-1oyEvChFt2WLJktrQZvrDAcimX0QSFR4Ug,28681
|
|
65
|
-
qubx/connectors/xlighter/client.py,sha256=
|
|
65
|
+
qubx/connectors/xlighter/client.py,sha256=FdFA9nw2xX8-5j-vfLVKDnzD12nM4NL5H5yLY-VmNyE,15053
|
|
66
66
|
qubx/connectors/xlighter/constants.py,sha256=l4R1ednOGpvwJ9qnPG6bjsL6YY6QJA6kKNwu1bZXLGE,4200
|
|
67
67
|
qubx/connectors/xlighter/data.py,sha256=4aXsxv5owmW2SljAo5ueF38LkZiPeM_s4Mc5dOj_i0g,32545
|
|
68
68
|
qubx/connectors/xlighter/extensions.py,sha256=_AxsB24I_sOU6Efvw4oKxhQ-dAI-U7IISn9NiAUoXZs,8915
|
|
@@ -103,11 +103,11 @@ qubx/core/mixins/subscription.py,sha256=2nUikNNPsMExS9yO38kNt7jk1vKE-RPm0b3h1bU6
|
|
|
103
103
|
qubx/core/mixins/trading.py,sha256=jW4P6Gba0O1kaQIy5rl3UqwPwAmEJrMdGYoWj1AhleI,20422
|
|
104
104
|
qubx/core/mixins/universe.py,sha256=aj1Ai_WUccotBt419SMPgAf2xPZL5n0U9CdTD4tQGGI,10845
|
|
105
105
|
qubx/core/mixins/utils.py,sha256=P71cLuqKjId8989MwOL_BtvvCnnwOFMkZyB1SY-0Ork,147
|
|
106
|
-
qubx/core/series.cpython-312-x86_64-linux-gnu.so,sha256=
|
|
106
|
+
qubx/core/series.cpython-312-x86_64-linux-gnu.so,sha256=nd1gkkLkA1EC3xPU34yqiAvKtTwUgxcTEaQmKsY_iiQ,1192328
|
|
107
107
|
qubx/core/series.pxd,sha256=DebCNOl7e7_OIZLTG-vSqubcgYuE0EC2_0-dov7QoIM,5195
|
|
108
108
|
qubx/core/series.pyi,sha256=5xJ0-_SOGhfGgbu1RGyjP4b0T6oRyckS9LoRePPAHqs,8050
|
|
109
109
|
qubx/core/series.pyx,sha256=A-6BbaweFmeuwNvcg-yMrLPQodAFbjZeHqrVfvE2x-o,63520
|
|
110
|
-
qubx/core/utils.cpython-312-x86_64-linux-gnu.so,sha256=
|
|
110
|
+
qubx/core/utils.cpython-312-x86_64-linux-gnu.so,sha256=MANm3HimBNTQOG1KkBt7XSsE1P2hbS8QYWlBsdsMGD0,86568
|
|
111
111
|
qubx/core/utils.pyi,sha256=a-wS13V2p_dM1CnGq40JVulmiAhixTwVwt0ah5By0Hc,348
|
|
112
112
|
qubx/core/utils.pyx,sha256=UR9achMR-LARsztd2eelFsDsFH3n0gXACIKoGNPI9X4,1766
|
|
113
113
|
qubx/data/__init__.py,sha256=cCUJjuq0LCBeeOKXIvBh_YQI00je_IQmr9OcHARJCPE,896
|
|
@@ -127,7 +127,7 @@ qubx/emitters/__init__.py,sha256=MPs7ZRZZnURljusiuvlO5g8M4H1UjEfg5fkyKeJmIBI,791
|
|
|
127
127
|
qubx/emitters/base.py,sha256=uEgdWwCkDdzVyFWlDmlw7INv2BSzDp9WC2ccuaKp-rA,9067
|
|
128
128
|
qubx/emitters/composite.py,sha256=4L-wGNt3xuFdpkH6uAj9_904pXnMbekJfsRdZUxy-dg,4537
|
|
129
129
|
qubx/emitters/csv.py,sha256=vVAfeW40UW4KiTum6x1BHYOO2WRFwX0MbZyKBD7EAwM,4986
|
|
130
|
-
qubx/emitters/indicator.py,sha256=
|
|
130
|
+
qubx/emitters/indicator.py,sha256=o3EXBIWKLs_6iinL1XjmWx97jplwgrrUjV4wK_6mX4o,7822
|
|
131
131
|
qubx/emitters/inmemory.py,sha256=mDPlncqd7Bz4rrr4gJezYaMd9tPUaurfqRg4STCdNXc,8891
|
|
132
132
|
qubx/emitters/prometheus.py,sha256=HmQdhL6Nu-UzxAkahZRjFMoDqxhfg8mlEVpH_ozYc2Q,10521
|
|
133
133
|
qubx/emitters/questdb.py,sha256=LMIfgWUYq8boXWB48mL-bgOKJ27D73EoUFeZGdEF-D8,14440
|
|
@@ -188,7 +188,7 @@ qubx/restorers/signal.py,sha256=5nK5ji8AucyWrFBK9uW619YCI_vPRGFnuDu8JnG3B_Y,1451
|
|
|
188
188
|
qubx/restorers/state.py,sha256=I1VIN0ZcOjigc3WMHIYTNJeAAbN9YB21MDcMl04ZWmY,8018
|
|
189
189
|
qubx/restorers/utils.py,sha256=We2gfqwQKWziUYhuUnjb-xo-5tSlbuHWpPQn0CEMTn0,1155
|
|
190
190
|
qubx/ta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
191
|
-
qubx/ta/indicators.cpython-312-x86_64-linux-gnu.so,sha256=
|
|
191
|
+
qubx/ta/indicators.cpython-312-x86_64-linux-gnu.so,sha256=4lRv3ePi13UJ7iy84FfMw9Xi4t0E09qo9cly8w9jbnQ,1004488
|
|
192
192
|
qubx/ta/indicators.pxd,sha256=LpUPTN5Ja2gCP2SNBstjzhll2lW4hFFWfiS_kw_ChHA,7045
|
|
193
193
|
qubx/ta/indicators.pyi,sha256=3sNsNlzU9VQWrEqTeI5ZMjq8-lSQgoWeYqIP0k6w92E,4149
|
|
194
194
|
qubx/ta/indicators.pyx,sha256=mKv8g9C1TYhnewQSz4bjOFRqst-wTpGfJp4oBW18oXI,63109
|
|
@@ -223,7 +223,7 @@ qubx/utils/charting/orderbook.py,sha256=NmeXxru3CUiKLtl1DzCBbQgSdL4qmTDIxV0u81p2
|
|
|
223
223
|
qubx/utils/collections.py,sha256=go2sH_q2TlXqI3Vxq8GHLfNGlYL4JwS3X1lwJWbpFLE,7425
|
|
224
224
|
qubx/utils/hft/__init__.py,sha256=rZjNmRtD1TWAEe7JPgiak9qJftf8yQavLviWReKQJ5w,101
|
|
225
225
|
qubx/utils/hft/numba_utils.py,sha256=C_C3MwEW5ZbLhOMSH6SSYbQ7BfnvuKhgOtY_N-U-ULM,146
|
|
226
|
-
qubx/utils/hft/orderbook.cpython-312-x86_64-linux-gnu.so,sha256=
|
|
226
|
+
qubx/utils/hft/orderbook.cpython-312-x86_64-linux-gnu.so,sha256=NpTWDSA4GgMhfm_A6uzBQE88ljS-8LCxe1szniIhIUk,316592
|
|
227
227
|
qubx/utils/hft/orderbook.pyi,sha256=F2P9kbh314wjCwfn6BivFWQMEDMLnZDQ2rmWbGoM7-o,5076
|
|
228
228
|
qubx/utils/hft/orderbook.pyx,sha256=gbNrtpNRZjZ8DjXjrIXsw20UixErDrLzN-8Qep8sSJg,15217
|
|
229
229
|
qubx/utils/marketdata/binance.py,sha256=hWX3noZj704JIMBqlwsXA5IzUP7EgiLiC2r12dJAKQA,11565
|
|
@@ -242,7 +242,7 @@ qubx/utils/plotting/renderers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
|
|
|
242
242
|
qubx/utils/plotting/renderers/plotly.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
243
243
|
qubx/utils/questdb.py,sha256=fIOMImSa3N3eZKMakHqs5q5ld4m5jkG6IkrTGfuvXFg,5191
|
|
244
244
|
qubx/utils/rate_limiter.py,sha256=nI4yJ2VjTGoHYPQvURyd7rtpfn37ms6xd0hLt6RJeDc,7008
|
|
245
|
-
qubx/utils/ringbuffer.cpython-312-x86_64-linux-gnu.so,sha256=
|
|
245
|
+
qubx/utils/ringbuffer.cpython-312-x86_64-linux-gnu.so,sha256=QbekH0LL1KdWJYq8oft4UHFCSHu2OZ12nv1p2PIp6fg,108328
|
|
246
246
|
qubx/utils/ringbuffer.pxd,sha256=NiLNnVwSJuDZj6M99DnHt07OEhKVBlEEf80rNukJJeQ,374
|
|
247
247
|
qubx/utils/ringbuffer.pyi,sha256=H0MD68jctVlko09KfxI9-1MloapO5Ba6smaqx1_X5Zo,4580
|
|
248
248
|
qubx/utils/ringbuffer.pyx,sha256=3S8MQreAKMfhaMm3RwztfEQ2AJYDyfPQpfMAsb-JCWA,7069
|
|
@@ -270,8 +270,8 @@ qubx/utils/slack.py,sha256=jhos-5pNGomg3TvFZRVvF0b_FrzxfvnTqAEMlDIrgn8,12234
|
|
|
270
270
|
qubx/utils/time.py,sha256=SYOiz2UqX7dCUhO_vBeWcm42_LmDl-59wp7INu0R8is,15355
|
|
271
271
|
qubx/utils/version.py,sha256=e52fIHyxzCiIuH7svCF6pkHuDlqL64rklqz-2XjWons,5309
|
|
272
272
|
qubx/utils/websocket_manager.py,sha256=ld4jvwnWyIkdKpgpUzyfnXGT3Ul4bGemXjy4HX9XTKs,17182
|
|
273
|
-
qubx-0.7.
|
|
274
|
-
qubx-0.7.
|
|
275
|
-
qubx-0.7.
|
|
276
|
-
qubx-0.7.
|
|
277
|
-
qubx-0.7.
|
|
273
|
+
qubx-0.7.10.dist-info/METADATA,sha256=dsmjk40WXYfbDckYm0LYw_HIeWmXBJhmBKmJmGlsG8s,6063
|
|
274
|
+
qubx-0.7.10.dist-info/WHEEL,sha256=RA6gLSyyVpI0R7d3ofBrM1iY5kDUsPwh15AF0XpvgQo,110
|
|
275
|
+
qubx-0.7.10.dist-info/entry_points.txt,sha256=VqilDTe8mVuV9SbR-yVlZJBTjbkHIL2JBgXfQw076HY,47
|
|
276
|
+
qubx-0.7.10.dist-info/licenses/LICENSE,sha256=qwMHOSJ2TD0nx6VUJvFhu1ynJdBfNozRMt6tnSul-Ts,35140
|
|
277
|
+
qubx-0.7.10.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|