Qubx 0.7.5__cp312-cp312-manylinux_2_39_x86_64.whl → 0.7.6__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/account.py +2 -3
- qubx/connectors/xlighter/broker.py +3 -2
- qubx/core/interfaces.py +1 -2
- qubx/core/series.cpython-312-x86_64-linux-gnu.so +0 -0
- qubx/core/series.pyx +11 -7
- qubx/core/utils.cpython-312-x86_64-linux-gnu.so +0 -0
- qubx/restarts/state_resolvers.py +1 -0
- 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.5.dist-info → qubx-0.7.6.dist-info}/METADATA +1 -1
- {qubx-0.7.5.dist-info → qubx-0.7.6.dist-info}/RECORD +15 -15
- {qubx-0.7.5.dist-info → qubx-0.7.6.dist-info}/WHEEL +0 -0
- {qubx-0.7.5.dist-info → qubx-0.7.6.dist-info}/entry_points.txt +0 -0
- {qubx-0.7.5.dist-info → qubx-0.7.6.dist-info}/licenses/LICENSE +0 -0
|
@@ -415,9 +415,8 @@ class LighterAccountProcessor(BasicAccountProcessor):
|
|
|
415
415
|
try:
|
|
416
416
|
orders = parse_account_all_orders_message(message, self.instrument_loader)
|
|
417
417
|
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
)
|
|
418
|
+
_d_msg = "\n\t".join([f"{order.id} ({order.instrument.symbol})" for order in orders])
|
|
419
|
+
logger.debug(f"Received {len(orders)} orders: \n\t{_d_msg}")
|
|
421
420
|
|
|
422
421
|
for order in orders:
|
|
423
422
|
self.channel.send((order.instrument, "order", order, False))
|
|
@@ -401,7 +401,9 @@ class LighterBroker(IBroker):
|
|
|
401
401
|
base_amount_int = int(amount * (10**instrument.size_precision))
|
|
402
402
|
price_int = int(price * (10**instrument.price_precision))
|
|
403
403
|
|
|
404
|
-
|
|
404
|
+
logger.debug(
|
|
405
|
+
f"[{order.instrument.symbol}] :: Modifying order {order.id}: amount={order.quantity} → {amount}, price={order.price} → {price}"
|
|
406
|
+
)
|
|
405
407
|
|
|
406
408
|
# Step 1: Sign modification transaction locally
|
|
407
409
|
signer = self.client.signer_client
|
|
@@ -435,7 +437,6 @@ class LighterBroker(IBroker):
|
|
|
435
437
|
options=order.options,
|
|
436
438
|
)
|
|
437
439
|
|
|
438
|
-
logger.info(f"Order modification submitted via WebSocket: {order.id}")
|
|
439
440
|
return updated_order
|
|
440
441
|
|
|
441
442
|
except Exception as e:
|
qubx/core/interfaces.py
CHANGED
|
@@ -942,8 +942,7 @@ class ITradingManager:
|
|
|
942
942
|
|
|
943
943
|
Args:
|
|
944
944
|
instrument: The instrument to get the minimum size for
|
|
945
|
-
amount: The amount to
|
|
946
|
-
price: The price to get the minimum size for
|
|
945
|
+
amount: The amount to be traded to determine if it's position reducing or not
|
|
947
946
|
"""
|
|
948
947
|
...
|
|
949
948
|
|
|
Binary file
|
qubx/core/series.pyx
CHANGED
|
@@ -1236,7 +1236,10 @@ cdef class OHLCV(TimeSeries):
|
|
|
1236
1236
|
|
|
1237
1237
|
return self._is_new_item
|
|
1238
1238
|
|
|
1239
|
-
cpdef short update_by_bar(
|
|
1239
|
+
cpdef short update_by_bar(
|
|
1240
|
+
self, long long time, double open, double high, double low, double close,
|
|
1241
|
+
double vol_incr=0.0, double b_vol_incr=0.0, double volume_quote=0.0, double bought_volume_quote=0.0, int trade_count=0, short is_incremental=1
|
|
1242
|
+
):
|
|
1240
1243
|
cdef Bar b
|
|
1241
1244
|
cdef Bar l_bar
|
|
1242
1245
|
bar_start_time = floor_t64(time, self.timeframe)
|
|
@@ -1468,14 +1471,15 @@ cdef class OHLCV(TimeSeries):
|
|
|
1468
1471
|
ValueError(f"Input must be a pandas DataFrame, got {type(df_p).__name__}")
|
|
1469
1472
|
|
|
1470
1473
|
_ohlc = OHLCV(name, infer_series_frequency(df_p).item())
|
|
1474
|
+
_has_count = "count" in df_p.columns
|
|
1471
1475
|
for t in df_p.itertuples():
|
|
1472
1476
|
_ohlc.update_by_bar(
|
|
1473
|
-
t.Index.asm8, t.open, t.high, t.low, t.close,
|
|
1474
|
-
getattr(t, "volume", 0.0),
|
|
1475
|
-
getattr(t, "taker_buy_volume", 0.0),
|
|
1476
|
-
getattr(t, "quote_volume", 0.0),
|
|
1477
|
-
getattr(t, "taker_buy_quote_volume", 0.0),
|
|
1478
|
-
|
|
1477
|
+
time=t.Index.asm8, open=t.open, high=t.high, low=t.low, close=t.close,
|
|
1478
|
+
vol_incr=getattr(t, "volume", 0.0),
|
|
1479
|
+
b_vol_incr=getattr(t, "taker_buy_volume", 0.0),
|
|
1480
|
+
volume_quote=getattr(t, "quote_volume", 0.0),
|
|
1481
|
+
bought_volume_quote=getattr(t, "taker_buy_quote_volume", 0.0),
|
|
1482
|
+
trade_count=t.count if _has_count else 0,
|
|
1479
1483
|
)
|
|
1480
1484
|
return _ohlc
|
|
1481
1485
|
|
|
Binary file
|
qubx/restarts/state_resolvers.py
CHANGED
|
@@ -149,6 +149,7 @@ class StateResolver:
|
|
|
149
149
|
|
|
150
150
|
# - now check which positions are open in live and we didn't update them by InitializingSignal
|
|
151
151
|
for instrument, live_pos in live_positions.items():
|
|
152
|
+
ctx.cancel_orders(live_pos.instrument)
|
|
152
153
|
if live_pos.is_open() and instrument not in sim_active_targets:
|
|
153
154
|
# - just close the position
|
|
154
155
|
ctx.emit_signal(InitializingSignal(time=ctx.time(), instrument=instrument, signal=0.0))
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -60,8 +60,8 @@ qubx/connectors/ccxt/warmup_service.py,sha256=a7qSFUmgUm6s7qP-ae9RP-j1bR9XyEsNy4
|
|
|
60
60
|
qubx/connectors/tardis/data.py,sha256=TlapY1dwc_aQxf4Na9sF620lK9drrg7E9E8gPTGD3FE,31004
|
|
61
61
|
qubx/connectors/tardis/utils.py,sha256=epThu9DwqbDb7BgScH6fHa_FVpKUaItOqp3JwtKGc5g,9092
|
|
62
62
|
qubx/connectors/xlighter/__init__.py,sha256=6Cs8jUvlDasyjue5KFQBgp5ws7Sh-BiMd-O2ECCIHAE,2174
|
|
63
|
-
qubx/connectors/xlighter/account.py,sha256=
|
|
64
|
-
qubx/connectors/xlighter/broker.py,sha256=
|
|
63
|
+
qubx/connectors/xlighter/account.py,sha256=Z1iGxRJezFrgNYrnyv9O9hAxc5hgme5R3kVWFbyqsd8,19717
|
|
64
|
+
qubx/connectors/xlighter/broker.py,sha256=AeqVMwTn-1oyEvChFt2WLJktrQZvrDAcimX0QSFR4Ug,28681
|
|
65
65
|
qubx/connectors/xlighter/client.py,sha256=0u99uK93KUIvqPRRdY5tAklO5FLPmLRwTb2qk9sABTs,14685
|
|
66
66
|
qubx/connectors/xlighter/constants.py,sha256=KgZGrVpCD0anIHOCOx2w7MU9Jmp1cVTkxr-uDtrVNng,4137
|
|
67
67
|
qubx/connectors/xlighter/data.py,sha256=4aXsxv5owmW2SljAo5ueF38LkZiPeM_s4Mc5dOj_i0g,32545
|
|
@@ -92,7 +92,7 @@ qubx/core/errors.py,sha256=LENtlgmVzxxUFNCsuy4PwyHYhkZkxuZQ2BPif8jaGmw,1411
|
|
|
92
92
|
qubx/core/exceptions.py,sha256=KBJPtAKm9AOqJ1vhwhjbK2WYF8SXoMDbnp0yDgcQy3E,640
|
|
93
93
|
qubx/core/helpers.py,sha256=-6p_vPyVzbQ3Pab41oaUorVmWW1UqKsJZm0qR2U5QHM,24504
|
|
94
94
|
qubx/core/initializer.py,sha256=sY9HYkhYgmHndyPjJ0bUEIoC3nwkg7edwsFB3zar6ec,9167
|
|
95
|
-
qubx/core/interfaces.py,sha256=
|
|
95
|
+
qubx/core/interfaces.py,sha256=ry5o1jx1wAVJOaS3XZie4XDgPbRFyWrtKPGPScaQ-zA,81025
|
|
96
96
|
qubx/core/loggers.py,sha256=eYijsR02S5u1Hv21vjIk_dOUwOMv0fiBDYwEmFhAoWk,14344
|
|
97
97
|
qubx/core/lookups.py,sha256=Bed30kPZvbTGjZ8exojhIMOIVfB46j6741yF3fXGTiM,18313
|
|
98
98
|
qubx/core/metrics.py,sha256=upqH4QrFdhmqlApzSDwenvVd0uxFrMOJMRhjWt9SNSc,85783
|
|
@@ -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=raCBNQqOmDLbQriqLeYWGFFv1kf69c-VEgl9tJBxUcw,1175336
|
|
107
107
|
qubx/core/series.pxd,sha256=YZ8WWQLjyn6fpIlyfnRlARoY3w0XzrvKZkCRlfkt-C0,4998
|
|
108
108
|
qubx/core/series.pyi,sha256=axEc8DBfeCUYu4NZ2eRiL5oWaWhed-uYlR3U0d1QBos,8020
|
|
109
|
-
qubx/core/series.pyx,sha256=
|
|
110
|
-
qubx/core/utils.cpython-312-x86_64-linux-gnu.so,sha256=
|
|
109
|
+
qubx/core/series.pyx,sha256=FMUCWKFyNj08TKVhR7gOR4UHob5ZFvdahc4nipyVKe8,62339
|
|
110
|
+
qubx/core/utils.cpython-312-x86_64-linux-gnu.so,sha256=BTSDP0ivS5vJeC88QBJ_LaQYk_L-LFqvSBIqe9DzbD4,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
|
|
@@ -177,7 +177,7 @@ qubx/resources/instruments/symbols-kraken-spot.json,sha256=3JLxi18nQAXE5J73hFY-m
|
|
|
177
177
|
qubx/resources/instruments/symbols-kraken.f-future.json,sha256=FzOg8KIcl4nBQdPqugc-dMHxXGvyiQncNAHs84Tf4Pg,247468
|
|
178
178
|
qubx/resources/instruments/symbols-kraken.f-perpetual.json,sha256=a1xXqbEcOyL1NLQO2JsSsseezPP7QCB9dub4IQhRviE,177233
|
|
179
179
|
qubx/restarts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
180
|
-
qubx/restarts/state_resolvers.py,sha256=
|
|
180
|
+
qubx/restarts/state_resolvers.py,sha256=vQrjLyaFCS9mlJfNeOIeXp9CATh1oVQNUlOAqcTlqV0,7806
|
|
181
181
|
qubx/restarts/time_finders.py,sha256=AX0Hb-RvB4YSot6L5m1ylkj09V7TYYXFvKgdb8gj0ok,4307
|
|
182
182
|
qubx/restorers/__init__.py,sha256=vrnZBPJHR0-6knAccj4bK0tkjUPNRl32qiLr5Mv4aR0,911
|
|
183
183
|
qubx/restorers/balance.py,sha256=yLV1vBki0XhBxrOhgaJBHuuL8VmIii82LAWgLxusbcE,6967
|
|
@@ -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=Ez93JglVhpz7LIzVW6bHloihxmsMssY54hP-kzfyU5A,950440
|
|
192
192
|
qubx/ta/indicators.pxd,sha256=khYJZY3nn33jeVaURpDwF-GCMtrNwzMkPv43aB6zOv0,6563
|
|
193
193
|
qubx/ta/indicators.pyi,sha256=XNySCW8WE3j4lpCUU2BKRjnAQ7kjjGBXvdowhLBuEAM,3719
|
|
194
194
|
qubx/ta/indicators.pyx,sha256=igtVvX81a3Fv5o_3n4dtCVaom7JN3RP25CT8cwJMz7Y,55757
|
|
@@ -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=GI8EGU_TOBReSf1uWE07bJXsvWaTTiwdKvAT1me8Y1U,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=k4G3Gh4RrAxol5ki1Y_EhErw-Iv6P0MknZmbKFJaMR8,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.6.dist-info/METADATA,sha256=NoXwGPDHHrP7vctkmbL_pHxpeYA3hiieAUzfF3M1DRM,6062
|
|
274
|
+
qubx-0.7.6.dist-info/WHEEL,sha256=RA6gLSyyVpI0R7d3ofBrM1iY5kDUsPwh15AF0XpvgQo,110
|
|
275
|
+
qubx-0.7.6.dist-info/entry_points.txt,sha256=VqilDTe8mVuV9SbR-yVlZJBTjbkHIL2JBgXfQw076HY,47
|
|
276
|
+
qubx-0.7.6.dist-info/licenses/LICENSE,sha256=qwMHOSJ2TD0nx6VUJvFhu1ynJdBfNozRMt6tnSul-Ts,35140
|
|
277
|
+
qubx-0.7.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|