Qubx 0.6.18__tar.gz → 0.6.19__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.
- {qubx-0.6.18 → qubx-0.6.19}/PKG-INFO +1 -1
- {qubx-0.6.18 → qubx-0.6.19}/pyproject.toml +1 -1
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/backtester/broker.py +3 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/backtester/ome.py +3 -2
- {qubx-0.6.18 → qubx-0.6.19}/LICENSE +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/README.md +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/build.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/_nb_magic.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/backtester/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/backtester/account.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/backtester/data.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/backtester/management.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/backtester/optimization.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/backtester/runner.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/backtester/simulated_data.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/backtester/simulator.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/backtester/utils.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/cli/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/cli/commands.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/cli/deploy.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/cli/misc.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/cli/release.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/connectors/ccxt/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/connectors/ccxt/account.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/connectors/ccxt/broker.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/connectors/ccxt/data.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/connectors/ccxt/exceptions.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/connectors/ccxt/exchanges/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/connectors/ccxt/exchanges/binance/broker.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/connectors/ccxt/exchanges/binance/exchange.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/connectors/ccxt/factory.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/connectors/ccxt/reader.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/connectors/ccxt/utils.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/account.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/basics.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/context.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/errors.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/exceptions.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/helpers.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/initializer.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/interfaces.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/loggers.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/lookups.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/metrics.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/mixins/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/mixins/market.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/mixins/processing.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/mixins/subscription.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/mixins/trading.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/mixins/universe.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/series.pxd +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/series.pyi +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/series.pyx +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/utils.pyi +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/core/utils.pyx +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/data/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/data/composite.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/data/helpers.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/data/hft.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/data/readers.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/data/registry.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/data/tardis.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/emitters/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/emitters/base.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/emitters/composite.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/emitters/csv.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/emitters/prometheus.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/emitters/questdb.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/exporters/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/exporters/composite.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/exporters/formatters/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/exporters/formatters/base.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/exporters/formatters/incremental.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/exporters/formatters/slack.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/exporters/redis_streams.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/exporters/slack.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/features/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/features/core.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/features/orderbook.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/features/price.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/features/trades.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/features/utils.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/gathering/simplest.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/math/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/math/stats.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/notifications/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/notifications/composite.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/notifications/slack.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/pandaz/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/pandaz/ta.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/pandaz/utils.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/resources/_build.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/resources/instruments/symbols-binance.cm.json +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/resources/instruments/symbols-binance.json +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/resources/instruments/symbols-binance.um.json +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/resources/instruments/symbols-bitfinex.f.json +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/resources/instruments/symbols-bitfinex.json +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/resources/instruments/symbols-kraken.f.json +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/resources/instruments/symbols-kraken.json +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/restarts/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/restarts/state_resolvers.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/restarts/time_finders.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/restorers/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/restorers/balance.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/restorers/factory.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/restorers/interfaces.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/restorers/position.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/restorers/signal.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/restorers/state.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/restorers/utils.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/ta/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/ta/indicators.pxd +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/ta/indicators.pyi +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/ta/indicators.pyx +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/trackers/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/trackers/advanced.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/trackers/composite.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/trackers/rebalancers.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/trackers/riskctrl.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/trackers/sizers.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/_pyxreloader.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/charting/lookinglass.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/charting/mpl_helpers.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/marketdata/binance.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/marketdata/ccxt.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/marketdata/dukas.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/misc.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/ntp.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/numbers_utils.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/orderbook.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/plotting/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/plotting/dashboard.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/plotting/data.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/plotting/interfaces.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/plotting/renderers/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/plotting/renderers/plotly.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/runner/__init__.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/runner/_jupyter_runner.pyt +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/runner/accounts.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/runner/configs.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/runner/factory.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/runner/runner.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/time.py +0 -0
- {qubx-0.6.18 → qubx-0.6.19}/src/qubx/utils/version.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
4
4
|
|
|
5
5
|
[tool.poetry]
|
|
6
6
|
name = "Qubx"
|
|
7
|
-
version = "0.6.
|
|
7
|
+
version = "0.6.19"
|
|
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"
|
|
@@ -81,6 +81,9 @@ class SimulatedBroker(IBroker):
|
|
|
81
81
|
|
|
82
82
|
# - cancel order in OME and remove from the map to free memory
|
|
83
83
|
order_update = ome.cancel_order(order_id)
|
|
84
|
+
if order_update is None:
|
|
85
|
+
return None
|
|
86
|
+
|
|
84
87
|
self._send_exec_report(instrument, order_update)
|
|
85
88
|
|
|
86
89
|
return order_update.order
|
|
@@ -322,7 +322,7 @@ class OrdersManagementEngine:
|
|
|
322
322
|
f"Stop price would trigger immediately: STOP_MARKET {order_side} {amount} of {self.instrument.symbol} at {price} | market: {c_ask} / {c_bid}"
|
|
323
323
|
)
|
|
324
324
|
|
|
325
|
-
def cancel_order(self, order_id: str) -> OmeReport:
|
|
325
|
+
def cancel_order(self, order_id: str) -> OmeReport | None:
|
|
326
326
|
# - check limit orders
|
|
327
327
|
if order_id in self.active_orders:
|
|
328
328
|
order = self.active_orders.pop(order_id)
|
|
@@ -341,7 +341,8 @@ class OrdersManagementEngine:
|
|
|
341
341
|
order = self.stop_orders.pop(order_id)
|
|
342
342
|
# - wrong order_id
|
|
343
343
|
else:
|
|
344
|
-
|
|
344
|
+
logger.error(f"Can't cancel order {order_id} for {self.instrument.symbol} because it's not found in OME !")
|
|
345
|
+
return None
|
|
345
346
|
|
|
346
347
|
order.status = "CANCELED"
|
|
347
348
|
self._dbg(f"{order.id} {order.type} {order.side} {order.quantity} canceled")
|
|
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
|
|
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
|