Qubx 0.7.9__tar.gz → 0.7.10__tar.gz

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.

Files changed (272) hide show
  1. {qubx-0.7.9 → qubx-0.7.10}/PKG-INFO +1 -1
  2. {qubx-0.7.9 → qubx-0.7.10}/pyproject.toml +1 -1
  3. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/client.py +7 -0
  4. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/emitters/indicator.py +2 -10
  5. {qubx-0.7.9 → qubx-0.7.10}/LICENSE +0 -0
  6. {qubx-0.7.9 → qubx-0.7.10}/README.md +0 -0
  7. {qubx-0.7.9 → qubx-0.7.10}/build.py +0 -0
  8. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/__init__.py +0 -0
  9. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/_nb_magic.py +0 -0
  10. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/__init__.py +0 -0
  11. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/account.py +0 -0
  12. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/broker.py +0 -0
  13. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/data.py +0 -0
  14. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/management.py +0 -0
  15. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/ome.py +0 -0
  16. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/optimization.py +0 -0
  17. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/runner.py +0 -0
  18. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/sentinels.py +0 -0
  19. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/simulated_data.py +0 -0
  20. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/simulated_exchange.py +0 -0
  21. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/simulator.py +0 -0
  22. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/transfers.py +0 -0
  23. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/backtester/utils.py +0 -0
  24. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/cli/__init__.py +0 -0
  25. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/cli/commands.py +0 -0
  26. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/cli/deploy.py +0 -0
  27. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/cli/misc.py +0 -0
  28. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/cli/release.py +0 -0
  29. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/cli/tui.py +0 -0
  30. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/__init__.py +0 -0
  31. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/account.py +0 -0
  32. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/adapters/__init__.py +0 -0
  33. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/adapters/polling_adapter.py +0 -0
  34. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/broker.py +0 -0
  35. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/connection_manager.py +0 -0
  36. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/data.py +0 -0
  37. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/exceptions.py +0 -0
  38. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/exchange_manager.py +0 -0
  39. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/exchanges/__init__.py +0 -0
  40. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/exchanges/base.py +0 -0
  41. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/exchanges/binance/broker.py +0 -0
  42. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/exchanges/binance/exchange.py +0 -0
  43. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/exchanges/bitfinex/bitfinex.py +0 -0
  44. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/exchanges/bitfinex/bitfinex_account.py +0 -0
  45. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/exchanges/hyperliquid/__init__.py +0 -0
  46. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/exchanges/hyperliquid/account.py +0 -0
  47. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/exchanges/hyperliquid/broker.py +0 -0
  48. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/exchanges/hyperliquid/hyperliquid.py +0 -0
  49. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/exchanges/kraken/kraken.py +0 -0
  50. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/factory.py +0 -0
  51. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/handlers/__init__.py +0 -0
  52. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/handlers/base.py +0 -0
  53. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/handlers/factory.py +0 -0
  54. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/handlers/funding_rate.py +0 -0
  55. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/handlers/liquidation.py +0 -0
  56. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/handlers/ohlc.py +0 -0
  57. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/handlers/open_interest.py +0 -0
  58. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/handlers/orderbook.py +0 -0
  59. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/handlers/quote.py +0 -0
  60. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/handlers/trade.py +0 -0
  61. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/reader.py +0 -0
  62. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/subscription_config.py +0 -0
  63. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/subscription_manager.py +0 -0
  64. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/subscription_orchestrator.py +0 -0
  65. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/utils.py +0 -0
  66. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/ccxt/warmup_service.py +0 -0
  67. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/tardis/data.py +0 -0
  68. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/tardis/utils.py +0 -0
  69. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/__init__.py +0 -0
  70. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/account.py +0 -0
  71. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/broker.py +0 -0
  72. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/constants.py +0 -0
  73. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/data.py +0 -0
  74. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/extensions.py +0 -0
  75. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/factory.py +0 -0
  76. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/handlers/__init__.py +0 -0
  77. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/handlers/base.py +0 -0
  78. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/handlers/orderbook.py +0 -0
  79. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/handlers/quote.py +0 -0
  80. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/handlers/stats.py +0 -0
  81. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/handlers/trades.py +0 -0
  82. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/instruments.py +0 -0
  83. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/nonce.py +0 -0
  84. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/parsers.py +0 -0
  85. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/rate_limits.py +0 -0
  86. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/reader.py +0 -0
  87. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/utils.py +0 -0
  88. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/connectors/xlighter/websocket.py +0 -0
  89. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/__init__.py +0 -0
  90. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/account.py +0 -0
  91. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/basics.py +0 -0
  92. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/context.py +0 -0
  93. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/deque.py +0 -0
  94. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/detectors/__init__.py +0 -0
  95. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/detectors/delisting.py +0 -0
  96. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/detectors/stale.py +0 -0
  97. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/errors.py +0 -0
  98. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/exceptions.py +0 -0
  99. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/helpers.py +0 -0
  100. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/initializer.py +0 -0
  101. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/interfaces.py +0 -0
  102. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/loggers.py +0 -0
  103. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/lookups.py +0 -0
  104. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/metrics.py +0 -0
  105. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/mixins/__init__.py +0 -0
  106. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/mixins/market.py +0 -0
  107. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/mixins/processing.py +0 -0
  108. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/mixins/subscription.py +0 -0
  109. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/mixins/trading.py +0 -0
  110. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/mixins/universe.py +0 -0
  111. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/mixins/utils.py +0 -0
  112. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/series.pxd +0 -0
  113. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/series.pyi +0 -0
  114. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/series.pyx +0 -0
  115. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/utils.pyi +0 -0
  116. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/core/utils.pyx +0 -0
  117. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/data/__init__.py +0 -0
  118. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/data/composite.py +0 -0
  119. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/data/containers.py +0 -0
  120. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/data/helpers.py +0 -0
  121. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/data/hft.py +0 -0
  122. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/data/readers.py +0 -0
  123. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/data/registry.py +0 -0
  124. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/data/storage.py +0 -0
  125. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/data/storages/csv.py +0 -0
  126. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/data/storages/questdb.py +0 -0
  127. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/data/storages/utils.py +0 -0
  128. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/data/tardis.py +0 -0
  129. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/data/transformers.py +0 -0
  130. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/emitters/__init__.py +0 -0
  131. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/emitters/base.py +0 -0
  132. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/emitters/composite.py +0 -0
  133. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/emitters/csv.py +0 -0
  134. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/emitters/inmemory.py +0 -0
  135. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/emitters/prometheus.py +0 -0
  136. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/emitters/questdb.py +0 -0
  137. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/exporters/__init__.py +0 -0
  138. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/exporters/composite.py +0 -0
  139. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/exporters/formatters/__init__.py +0 -0
  140. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/exporters/formatters/base.py +0 -0
  141. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/exporters/formatters/incremental.py +0 -0
  142. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/exporters/formatters/slack.py +0 -0
  143. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/exporters/formatters/target_position.py +0 -0
  144. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/exporters/redis_streams.py +0 -0
  145. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/exporters/slack.py +0 -0
  146. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/features/__init__.py +0 -0
  147. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/features/core.py +0 -0
  148. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/features/orderbook.py +0 -0
  149. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/features/price.py +0 -0
  150. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/features/trades.py +0 -0
  151. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/features/utils.py +0 -0
  152. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/gathering/simplest.py +0 -0
  153. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/health/__init__.py +0 -0
  154. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/health/base.py +0 -0
  155. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/loggers/__init__.py +0 -0
  156. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/loggers/csv.py +0 -0
  157. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/loggers/factory.py +0 -0
  158. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/loggers/inmemory.py +0 -0
  159. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/loggers/mongo.py +0 -0
  160. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/math/__init__.py +0 -0
  161. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/math/stats.py +0 -0
  162. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/notifications/__init__.py +0 -0
  163. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/notifications/composite.py +0 -0
  164. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/notifications/slack.py +0 -0
  165. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/notifications/throttler.py +0 -0
  166. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/pandaz/__init__.py +0 -0
  167. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/pandaz/ta.py +0 -0
  168. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/pandaz/utils.py +0 -0
  169. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/resources/_build.py +0 -0
  170. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/resources/crypto-fees.ini +0 -0
  171. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/resources/instruments/hyperliquid-spot.json +0 -0
  172. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/resources/instruments/hyperliquid.f-perpetual.json +0 -0
  173. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/resources/instruments/symbols-binance-spot.json +0 -0
  174. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/resources/instruments/symbols-binance.cm-future.json +0 -0
  175. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/resources/instruments/symbols-binance.cm-perpetual.json +0 -0
  176. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/resources/instruments/symbols-binance.um-future.json +0 -0
  177. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/resources/instruments/symbols-binance.um-perpetual.json +0 -0
  178. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/resources/instruments/symbols-bitfinex.f-perpetual.json +0 -0
  179. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/resources/instruments/symbols-kraken-spot.json +0 -0
  180. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/resources/instruments/symbols-kraken.f-future.json +0 -0
  181. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/resources/instruments/symbols-kraken.f-perpetual.json +0 -0
  182. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/restarts/__init__.py +0 -0
  183. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/restarts/state_resolvers.py +0 -0
  184. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/restarts/time_finders.py +0 -0
  185. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/restorers/__init__.py +0 -0
  186. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/restorers/balance.py +0 -0
  187. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/restorers/factory.py +0 -0
  188. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/restorers/interfaces.py +0 -0
  189. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/restorers/position.py +0 -0
  190. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/restorers/signal.py +0 -0
  191. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/restorers/state.py +0 -0
  192. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/restorers/utils.py +0 -0
  193. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/ta/__init__.py +0 -0
  194. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/ta/indicators.pxd +0 -0
  195. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/ta/indicators.pyi +0 -0
  196. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/ta/indicators.pyx +0 -0
  197. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/__init__.py +0 -0
  198. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/base.py +0 -0
  199. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/project/accounts.toml.j2 +0 -0
  200. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/project/config.yml.j2 +0 -0
  201. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/project/jlive.sh.j2 +0 -0
  202. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/project/jpaper.sh.j2 +0 -0
  203. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/project/pyproject.toml.j2 +0 -0
  204. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/project/src/{{ strategy_name }}/__init__.py.j2 +0 -0
  205. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/project/src/{{ strategy_name }}/strategy.py.j2 +0 -0
  206. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/project/template.yml +0 -0
  207. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/simple/__init__.py.j2 +0 -0
  208. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/simple/accounts.toml.j2 +0 -0
  209. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/simple/config.yml.j2 +0 -0
  210. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/simple/jlive.sh.j2 +0 -0
  211. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/simple/jpaper.sh.j2 +0 -0
  212. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/simple/strategy.py.j2 +0 -0
  213. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/templates/simple/template.yml +0 -0
  214. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/trackers/__init__.py +0 -0
  215. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/trackers/advanced.py +0 -0
  216. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/trackers/composite.py +0 -0
  217. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/trackers/rebalancers.py +0 -0
  218. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/trackers/riskctrl.py +0 -0
  219. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/trackers/sizers.py +0 -0
  220. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/__init__.py +0 -0
  221. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/_pyxreloader.py +0 -0
  222. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/charting/lookinglass.py +0 -0
  223. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/charting/mpl_helpers.py +0 -0
  224. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/charting/orderbook.py +0 -0
  225. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/collections.py +0 -0
  226. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/hft/__init__.py +0 -0
  227. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/hft/numba_utils.py +0 -0
  228. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/hft/orderbook.pyi +0 -0
  229. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/hft/orderbook.pyx +0 -0
  230. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/marketdata/binance.py +0 -0
  231. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/marketdata/ccxt.py +0 -0
  232. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/marketdata/dukas.py +0 -0
  233. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/misc.py +0 -0
  234. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/nonce.py +0 -0
  235. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/ntp.py +0 -0
  236. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/numbers_utils.py +0 -0
  237. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/orderbook.py +0 -0
  238. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/plotting/__init__.py +0 -0
  239. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/plotting/dashboard.py +0 -0
  240. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/plotting/data.py +0 -0
  241. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/plotting/interfaces.py +0 -0
  242. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/plotting/renderers/__init__.py +0 -0
  243. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/plotting/renderers/plotly.py +0 -0
  244. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/questdb.py +0 -0
  245. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/rate_limiter.py +0 -0
  246. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/ringbuffer.pxd +0 -0
  247. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/ringbuffer.pyi +0 -0
  248. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/ringbuffer.pyx +0 -0
  249. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/__init__.py +0 -0
  250. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/_jupyter_runner.pyt +0 -0
  251. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/accounts.py +0 -0
  252. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/configs.py +0 -0
  253. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/factory.py +0 -0
  254. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/kernel_service.py +0 -0
  255. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/runner.py +0 -0
  256. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/textual/__init__.py +0 -0
  257. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/textual/app.py +0 -0
  258. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/textual/handlers.py +0 -0
  259. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/textual/init_code.py +0 -0
  260. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/textual/kernel.py +0 -0
  261. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/textual/styles.tcss +0 -0
  262. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/textual/widgets/__init__.py +0 -0
  263. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/textual/widgets/command_input.py +0 -0
  264. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/textual/widgets/debug_log.py +0 -0
  265. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/textual/widgets/orders_table.py +0 -0
  266. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/textual/widgets/positions_table.py +0 -0
  267. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/textual/widgets/quotes_table.py +0 -0
  268. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/runner/textual/widgets/repl_output.py +0 -0
  269. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/slack.py +0 -0
  270. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/time.py +0 -0
  271. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/version.py +0 -0
  272. {qubx-0.7.9 → qubx-0.7.10}/src/qubx/utils/websocket_manager.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Qubx
3
- Version: 0.7.9
3
+ Version: 0.7.10
4
4
  Summary: Qubx - Quantitative Trading Framework
5
5
  License-File: LICENSE
6
6
  Author: Dmitry Marienko
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "Qubx"
7
- version = "0.7.9"
7
+ version = "0.7.10"
8
8
  description = "Qubx - Quantitative Trading Framework"
9
9
  authors = [ "Dmitry Marienko <dmitry.marienko@xlydian.com>", "Yuriy Arabskyy <yuriy.arabskyy@xlydian.com>",]
10
10
  readme = "README.md"
@@ -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
@@ -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, 'ns')
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:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes