Qubx 0.6.44__cp312-cp312-manylinux_2_39_x86_64.whl → 0.6.47__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/core/context.py CHANGED
@@ -198,6 +198,9 @@ class StrategyContext(IStrategyContext):
198
198
  self.strategy.on_init(self.initializer)
199
199
  self._strategy_state.is_on_init_called = True
200
200
 
201
+ if subscription_warmup := self.initializer.get_subscription_warmup():
202
+ self.set_warmup(subscription_warmup)
203
+
201
204
  if base_sub := self.initializer.get_base_subscription():
202
205
  self.set_base_subscription(base_sub)
203
206
 
qubx/core/initializer.py CHANGED
@@ -31,6 +31,7 @@ class BasicStrategyInitializer(IStrategyInitializer):
31
31
  mismatch_resolver: Optional[StateResolverProtocol] = None
32
32
  auto_subscribe: Optional[bool] = None
33
33
  simulation: Optional[bool] = None
34
+ subscription_warmup: Optional[dict[Any, str]] = None
34
35
 
35
36
  # Additional configuration that might be needed
36
37
  config: Dict[str, Any] = field(default_factory=dict)
@@ -106,3 +107,9 @@ class BasicStrategyInitializer(IStrategyInitializer):
106
107
 
107
108
  def get_pending_instrument_subscriptions(self) -> dict[str, set[Instrument]]:
108
109
  return self._pending_instrument_subscriptions
110
+
111
+ def set_subscription_warmup(self, configs: dict[Any, str]) -> None:
112
+ self.subscription_warmup = configs
113
+
114
+ def get_subscription_warmup(self) -> dict[Any, str]:
115
+ return self.subscription_warmup if self.subscription_warmup else {}
qubx/core/interfaces.py CHANGED
@@ -1695,6 +1695,24 @@ class IStrategyInitializer:
1695
1695
  """
1696
1696
  ...
1697
1697
 
1698
+ def set_subscription_warmup(self, configs: dict[Any, str]) -> None:
1699
+ """
1700
+ Set the warmup period for the subscription.
1701
+
1702
+ This method is used to set the warmup period for the subscription in on_init stage.
1703
+ Then this config is used to translate warmup configs to StrategyContext
1704
+
1705
+ Args:
1706
+ configs: A dictionary of subscription types and their warmup periods.
1707
+ """
1708
+ ...
1709
+
1710
+ def get_subscription_warmup(self) -> dict[Any, str]:
1711
+ """
1712
+ Get the warmup period for the subscription.
1713
+ """
1714
+ ...
1715
+
1698
1716
 
1699
1717
  class IStrategy(metaclass=Mixable):
1700
1718
  """Base class for trading strategies."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: Qubx
3
- Version: 0.6.44
3
+ Version: 0.6.47
4
4
  Summary: Qubx - Quantitative Trading Framework
5
5
  Author: Dmitry Marienko
6
6
  Author-email: dmitry.marienko@xlydian.com
@@ -11,7 +11,6 @@ Classifier: Programming Language :: Python :: 3.11
11
11
  Classifier: Programming Language :: Python :: 3.12
12
12
  Classifier: Programming Language :: Python :: 3.13
13
13
  Requires-Dist: aiohttp (>=3.10.11,<3.11.0)
14
- Requires-Dist: bitfinex-api-py (>=3.0.4,<4.0.0)
15
14
  Requires-Dist: ccxt (>=4.2.68,<5.0.0)
16
15
  Requires-Dist: croniter (>=2.0.5,<3.0.0)
17
16
  Requires-Dist: cython (==3.0.8)
@@ -40,6 +39,7 @@ Requires-Dist: pymongo (>=4.6.1,<5.0.0)
40
39
  Requires-Dist: python-binance (>=1.0.19,<2.0.0)
41
40
  Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
42
41
  Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
42
+ Requires-Dist: qubx-bitfinex-api (>=3.0.7,<4.0.0)
43
43
  Requires-Dist: questdb (>=2.0.3,<3.0.0)
44
44
  Requires-Dist: redis (>=5.2.1,<6.0.0)
45
45
  Requires-Dist: scikit-learn (>=1.4.2,<2.0.0)
@@ -50,6 +50,7 @@ Requires-Dist: statsmodels (>=0.14.2,<0.15.0)
50
50
  Requires-Dist: tabulate (>=0.9.0,<0.10.0)
51
51
  Requires-Dist: toml (>=0.10.2,<0.11.0)
52
52
  Requires-Dist: tqdm
53
+ Requires-Dist: websockets (==15.0.1)
53
54
  Project-URL: Repository, https://github.com/xLydianSoftware/Qubx
54
55
  Description-Content-Type: text/markdown
55
56
 
@@ -36,13 +36,13 @@ qubx/connectors/tardis/utils.py,sha256=epThu9DwqbDb7BgScH6fHa_FVpKUaItOqp3JwtKGc
36
36
  qubx/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  qubx/core/account.py,sha256=4_XskMLR9Uh-rpJBDYMrceYiGMvAZw56k1ve-unIW8w,19417
38
38
  qubx/core/basics.py,sha256=PaprFa6sscrYPZfxImWOPLfVoVlu3PtcXTWbz0ZMtEk,28864
39
- qubx/core/context.py,sha256=ZetAOnQ9pfUiMAFln02zJr4FePTjKaY5OSIVwaMPhnE,22822
39
+ qubx/core/context.py,sha256=zkDJIilM7Et-gWjtTtQTOZ5zIwwx-Ueqhsxdy5pQZnk,22950
40
40
  qubx/core/deque.py,sha256=3PsmJ5LF76JpsK4Wp5LLogyE15rKn6EDCkNOOWT6EOk,6203
41
41
  qubx/core/errors.py,sha256=LENtlgmVzxxUFNCsuy4PwyHYhkZkxuZQ2BPif8jaGmw,1411
42
42
  qubx/core/exceptions.py,sha256=11wQC3nnNLsl80zBqbE6xiKCqm31kctqo6W_gdnZkg8,581
43
43
  qubx/core/helpers.py,sha256=m7JrZaBckXHb4zjhKpdCbxFe3kfda-SCNLfagyq7Ve4,19158
44
- qubx/core/initializer.py,sha256=PUiD_cIjvGpuPjYyRpUjpwm3xNQ2Kipa8bAhbtxCQRo,3935
45
- qubx/core/interfaces.py,sha256=CzIl8tB6ImQkDcZEmhpstwHPOCY8NhZxXmBHLQUAieI,58253
44
+ qubx/core/initializer.py,sha256=YgTBs5LpIk6ZFdmMD8zCnJnVNcMh1oeYvt157jhwyMg,4242
45
+ qubx/core/interfaces.py,sha256=BaWE9ln6mZk3dU2Da7fMe02-hijVjbYZOvWJx6ueyLo,58830
46
46
  qubx/core/loggers.py,sha256=0g33jfipGFShSMrXBoYVzL0GfTzI36mwBJqHNUHmhdo,13342
47
47
  qubx/core/lookups.py,sha256=aEuyZqd_N4cQ-oHz3coEHcdX9Yb0cP5-NwDuj-DQyNk,19477
48
48
  qubx/core/metrics.py,sha256=74xIecCvlxVXl0gy0JvgjJ2X5gg-RMmVZw9hQikkHE0,60269
@@ -52,11 +52,11 @@ qubx/core/mixins/processing.py,sha256=cmjD0PcQv3gFP6oILfNgdNgw7Tez0fUZu_nFn6680V
52
52
  qubx/core/mixins/subscription.py,sha256=V_g9wCPQ8S5SHkU-qOZ84cV5nReAUrV7DoSNAGG0LPY,10372
53
53
  qubx/core/mixins/trading.py,sha256=idfRPaqrvkfMxzu9mXr9i_xfqLee-ZAOrERxkxv6Ruo,7256
54
54
  qubx/core/mixins/universe.py,sha256=kMhBvGzkRBhuJJKr0Ld8w_BLHBuVIqCVwFGo9myWzT8,9966
55
- qubx/core/series.cpython-312-x86_64-linux-gnu.so,sha256=xWa2_qK_4NXxeIalUfHU1WJ-ljqymSPu6nAvrESHWY8,978280
55
+ qubx/core/series.cpython-312-x86_64-linux-gnu.so,sha256=JkQx9VlTWM0UireyO6YMr_h-GU2zel2bKxJKB1Cb2bY,978280
56
56
  qubx/core/series.pxd,sha256=jBdMwgO8J4Zrue0e_xQ5RlqTXqihpzQNu6V3ckZvvpY,3978
57
57
  qubx/core/series.pyi,sha256=RaHm_oHHiWiNUMJqVfx5FXAXniGLsHxUFOUpacn7GC0,4604
58
58
  qubx/core/series.pyx,sha256=7cM3zZThW59waHiYcZmMxvYj-HYD7Ej_l7nKA4emPjE,46477
59
- qubx/core/utils.cpython-312-x86_64-linux-gnu.so,sha256=YgNN7gV7PQUp0JTVt0452U2j-bjjCw8PMEHypG1QLxo,86568
59
+ qubx/core/utils.cpython-312-x86_64-linux-gnu.so,sha256=y3JeYgqNumyIcpG_h9iD1KwNnCMa_nIYNHb1r-j3c64,86568
60
60
  qubx/core/utils.pyi,sha256=a-wS13V2p_dM1CnGq40JVulmiAhixTwVwt0ah5By0Hc,348
61
61
  qubx/core/utils.pyx,sha256=k5QHfEFvqhqWfCob89ANiJDKNG8gGbOh-O4CVoneZ8M,1696
62
62
  qubx/data/__init__.py,sha256=ELZykvpPGWc5rX7QoNyNQwMLgdKMG8MACOByA4pM5hA,549
@@ -123,7 +123,7 @@ qubx/restorers/signal.py,sha256=x-VLSnb863U517sPeZhGvfuIOUfmYVhANg5P7lio_Mg,1163
123
123
  qubx/restorers/state.py,sha256=dLaVnUwRCNRkUqbYyi0RfZs3Q3AdglkI_qTtQ8GDD5Y,7289
124
124
  qubx/restorers/utils.py,sha256=We2gfqwQKWziUYhuUnjb-xo-5tSlbuHWpPQn0CEMTn0,1155
125
125
  qubx/ta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
- qubx/ta/indicators.cpython-312-x86_64-linux-gnu.so,sha256=Qrr1VzZ4m5ATXGJQrf_D1hUdQib5TRUwRaMOC_0QoKY,654440
126
+ qubx/ta/indicators.cpython-312-x86_64-linux-gnu.so,sha256=ND4ZL0LzatfcJmXJbZm71hDdfiN3jC-ZZm3ND8xB0mY,654440
127
127
  qubx/ta/indicators.pxd,sha256=Goo0_N0Xnju8XGo3Xs-3pyg2qr_0Nh5C-_26DK8U_IE,4224
128
128
  qubx/ta/indicators.pyi,sha256=19W0uERft49In5bf9jkJHkzJYEyE9gzudN7_DJ5Vdv8,1963
129
129
  qubx/ta/indicators.pyx,sha256=Xgpew46ZxSXsdfSEWYn3A0Q35MLsopB9n7iyCsXTufs,25969
@@ -160,8 +160,8 @@ qubx/utils/runner/factory.py,sha256=8IxKvsEL0opx5OlO4XEQgAlmu05sgxXxkY4G2MQdLbg,
160
160
  qubx/utils/runner/runner.py,sha256=DhICMOfgE0i7VEC7pNMSEzIyZbb-TbOa6FbR1obZpyc,28901
161
161
  qubx/utils/time.py,sha256=J0ZFGjzFL5T6GA8RPAel8hKG0sg2LZXeQ5YfDCfcMHA,10055
162
162
  qubx/utils/version.py,sha256=e52fIHyxzCiIuH7svCF6pkHuDlqL64rklqz-2XjWons,5309
163
- qubx-0.6.44.dist-info/LICENSE,sha256=qwMHOSJ2TD0nx6VUJvFhu1ynJdBfNozRMt6tnSul-Ts,35140
164
- qubx-0.6.44.dist-info/METADATA,sha256=YtXaFa6les1w_IjRpULYKfrhkc-4m_XGZhBYskcqPkA,4492
165
- qubx-0.6.44.dist-info/WHEEL,sha256=UckHTmFUCaLKpi4yFY8Dewu0c6XkY-KvEAGzGOnaWo8,110
166
- qubx-0.6.44.dist-info/entry_points.txt,sha256=VqilDTe8mVuV9SbR-yVlZJBTjbkHIL2JBgXfQw076HY,47
167
- qubx-0.6.44.dist-info/RECORD,,
163
+ qubx-0.6.47.dist-info/LICENSE,sha256=qwMHOSJ2TD0nx6VUJvFhu1ynJdBfNozRMt6tnSul-Ts,35140
164
+ qubx-0.6.47.dist-info/METADATA,sha256=2ktGWorjJkcW1Wyc9oil6HOgAbAsJk4QHmqdwbRpNJE,4531
165
+ qubx-0.6.47.dist-info/WHEEL,sha256=UckHTmFUCaLKpi4yFY8Dewu0c6XkY-KvEAGzGOnaWo8,110
166
+ qubx-0.6.47.dist-info/entry_points.txt,sha256=VqilDTe8mVuV9SbR-yVlZJBTjbkHIL2JBgXfQw076HY,47
167
+ qubx-0.6.47.dist-info/RECORD,,
File without changes
File without changes