OctoBot-Trading 2.4.84__tar.gz → 2.4.86__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.
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/CHANGELOG.md +8 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86/OctoBot_Trading.egg-info}/PKG-INFO +2 -2
- {OctoBot-Trading-2.4.84/OctoBot_Trading.egg-info → OctoBot-Trading-2.4.86}/PKG-INFO +2 -2
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/README.md +1 -1
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/__init__.py +1 -1
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/api/__init__.py +0 -4
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/api/exchange.py +0 -8
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/constants.py +1 -14
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/__init__.py +2 -4
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/types/rest_exchange.py +27 -4
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/util/__init__.py +2 -6
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/util/exchange_util.py +17 -13
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/__init__.py +4 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/modes_util.py +26 -9
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/util/test_exchange_util.py +6 -22
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/LICENSE +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/MANIFEST.in +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/OctoBot_Trading.egg-info/SOURCES.txt +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/OctoBot_Trading.egg-info/dependency_links.txt +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/OctoBot_Trading.egg-info/not-zip-safe +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/OctoBot_Trading.egg-info/requires.txt +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/OctoBot_Trading.egg-info/top_level.txt +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/api/channels.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/api/contracts.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/api/modes.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/api/orders.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/api/portfolio.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/api/positions.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/api/profitability.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/api/storage.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/api/symbol_data.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/api/trader.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/api/trades.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/enums.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/errors.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_channel.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/contracts/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/contracts/contract_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/contracts/future_contract.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/contracts/margin_contract.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/exchange_symbol_data.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/exchange_symbols_data.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/funding/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/funding/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/funding/channel/funding.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/funding/channel/funding_updater.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/funding/channel/funding_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/funding/funding_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/kline/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/kline/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/kline/channel/kline.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/kline/channel/kline_updater.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/kline/channel/kline_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/kline/kline_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ohlcv/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ohlcv/candles_adapter.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ohlcv/candles_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ohlcv/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ohlcv/channel/ohlcv.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ohlcv/channel/ohlcv_updater.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ohlcv/channel/ohlcv_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ohlcv/preloaded_candles_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/order_book/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/order_book/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/order_book/channel/order_book.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/order_book/channel/order_book_updater.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/order_book/channel/order_book_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/order_book/order_book_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/prices/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/prices/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/prices/channel/price.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/prices/channel/prices_updater.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/prices/channel/prices_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/prices/price_events_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/prices/prices_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/recent_trades/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/recent_trades/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/recent_trades/channel/recent_trade.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/recent_trades/channel/recent_trade_updater.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/recent_trades/channel/recent_trade_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/recent_trades/recent_trades_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ticker/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ticker/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ticker/channel/ticker.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ticker/channel/ticker_updater.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ticker/channel/ticker_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ticker/ticker_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/abstract_exchange.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/abstract_websocket_exchange.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/adapters/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/adapters/abstract_adapter.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/config/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/config/backtesting_exchange_config.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/config/exchange_config_data.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/connectors/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/connectors/ccxt/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/connectors/ccxt/ccxt_adapter.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/connectors/ccxt/ccxt_client_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/connectors/ccxt/ccxt_clients_cache.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/connectors/ccxt/ccxt_connector.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/connectors/ccxt/ccxt_websocket_connector.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/connectors/ccxt/constants.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/connectors/ccxt/enums.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/connectors/simulator/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/connectors/simulator/ccxt_client_simulation.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/connectors/simulator/exchange_simulator_adapter.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/connectors/simulator/exchange_simulator_connector.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/exchange_builder.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/exchange_channels.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/exchange_details.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/exchange_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/exchange_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/exchange_websocket_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/exchanges.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/implementations/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/implementations/default_rest_exchange.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/implementations/default_websocket_exchange.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/implementations/exchange_simulator.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/traders/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/traders/trader.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/traders/trader_simulator.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/types/websocket_exchange.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/util/exchange_market_status_fixer.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/util/symbol_details.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/util/websockets_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/abstract_trading_mode.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/channel/abstract_mode_consumer.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/channel/abstract_mode_producer.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/channel/mode.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/mode_activity.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/mode_config.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/modes_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/basic_keywords/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/basic_keywords/account_balance.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/basic_keywords/amount.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/basic_keywords/configuration.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/basic_keywords/position.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/basic_keywords/price.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/basic_keywords/run_persistence.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/basic_keywords/trading_signals.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/basic_keywords/user_inputs.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/context_management.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/dsl/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/dsl/quantity.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/script_keywords/dsl/values.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/scripted_trading_mode/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/modes/scripted_trading_mode/abstract_scripted_trading_mode.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/octobot_channel_consumer.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/exchange_personal_data.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/channel/orders.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/channel/orders_updater.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/channel/orders_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/decimal_order_adapter.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/groups/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/groups/balanced_take_profit_and_stop_order_group.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/groups/group_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/groups/one_cancels_the_other_order_group.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/order_adapter.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/order_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/order_group.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/order_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/orders_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/orders_storage_operations.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/states/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/states/cancel_order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/states/close_order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/states/fill_order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/states/open_order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/states/order_state_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/states/pending_creation_chained_order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/states/pending_creation_order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/limit/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/limit/buy_limit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/limit/limit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/limit/sell_limit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/limit/stop_loss_limit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/limit/stop_loss_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/limit/take_profit_limit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/limit/take_profit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/market/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/market/buy_market_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/market/market_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/market/sell_market_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/trailing/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/trailing/trailing_stop_limit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/trailing/trailing_stop_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/unknown_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/orders/types/unsupported_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/asset.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/assets/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/assets/future_asset.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/assets/margin_asset.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/assets/spot_asset.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/channel/balance.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/channel/balance_updater.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/channel/balance_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/history/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/history/historical_asset_value.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/history/historical_asset_value_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/history/historical_portfolio_value_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/portfolio.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/portfolio_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/portfolio_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/portfolio_profitability.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/portfolio_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/portfolio_value_holder.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/sub_portfolio.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/types/future_portfolio.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/types/margin_portfolio.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/types/spot_portfolio.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/portfolios/value_converter.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/channel/positions.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/channel/positions_updater.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/channel/positions_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/position.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/position_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/position_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/position_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/positions_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/states/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/states/active_position_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/states/idle_position_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/states/liquidate_position_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/states/position_state_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/types/inverse_position.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/positions/types/linear_position.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/trades/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/trades/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/trades/channel/trades.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/trades/channel/trades_updater.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/trades/trade.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/trades/trade_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/trades/trade_pnl.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/trades/trades_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/trades/trades_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/transactions/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/transactions/transaction.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/transactions/transaction_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/transactions/transactions_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/transactions/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/transactions/types/blockchain_transaction.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/transactions/types/fee_transaction.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/transactions/types/realised_pnl_transaction.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/personal_data/transactions/types/transfer_transaction.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/signals/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/signals/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/signals/channel/remote_trading_signal.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/signals/channel/remote_trading_signal_channel_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/signals/channel/signal_producer.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/signals/signal_creation.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/signals/trading_signal_bundle_builder.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/signals/util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/storage/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/storage/abstract_storage.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/storage/candles_storage.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/storage/orders_storage.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/storage/portfolio_storage.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/storage/storage_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/storage/trades_storage.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/storage/transactions_storage.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/storage/util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/supervisors/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/supervisors/abstract_portfolio_supervisor.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/supervisors/abstract_supervisor.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/util/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/util/config_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/util/initializable.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/util/initialization_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/util/simulator_updater_utils.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/util/test_tools/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/util/test_tools/exchange_data.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/util/test_tools/exchanges_test_tools.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/util/test_tools/spot_rest_exchange_test_tools.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/util/test_tools/websocket_test_tools.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/requirements.txt +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/setup.cfg +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/setup.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/api/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/api/test_channels.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/api/test_exchange.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/api/test_modes.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/api/test_orders.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/api/test_portfolio.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/api/test_profitability.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/api/test_symbol_data.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/api/test_trader.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/api/test_trades.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/cli/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/contracts/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/contracts/test_future_contract.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/contracts/test_margin_contract.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/funding/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/funding/test_funding_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/kline/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/kline/test_kline_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/ohlcv/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/ohlcv/test_candles_adapter.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/ohlcv/test_candles_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/order_book/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/order_book/test_order_book_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/prices/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/prices/test_price_events_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/prices/test_prices_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/recent_trades/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/recent_trades/test_recent_trades_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/test_exchange_symbols_data.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/ticker/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchange_data/ticker/test_ticker_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/connectors/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/connectors/ccxt/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/connectors/ccxt/mock_exchanges_data.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/connectors/ccxt/test_ccxt_connector.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/implementations/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/implementations/test_default_rest_exchange.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/implementations/test_default_websocket_exchange.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/test_abstract_exchange.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/test_abstract_websocket_exchange.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/test_exchange_builder.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/test_exchange_config_data.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/test_exchange_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/test_exchange_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/test_exchange_simulator.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/test_exchanges.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/traders/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/traders/test_trader.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/types/test_websocket_exchange.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/util/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/util/test_exchange_market_status_fixer.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/modes/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/modes/script_keywords/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/modes/script_keywords/basic_keywords/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/modes/script_keywords/basic_keywords/test_account_balance.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/modes/script_keywords/basic_keywords/test_amount.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/modes/script_keywords/basic_keywords/test_position.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/modes/script_keywords/basic_keywords/test_price.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/modes/script_keywords/dsl/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/modes/script_keywords/dsl/test_quantity.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/modes/test_abstract_mode_consumer.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/modes/test_abstract_trading_mode.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/modes/test_modes_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/groups/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/groups/test_balanced_take_profit_and_stop_order_group.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/groups/test_group_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/groups/test_one_cancels_the_other_order_group.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/states/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/states/test_cancel_order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/states/test_close_order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/states/test_fill_order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/states/test_open_order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/states/test_order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/states/test_order_state_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/states/test_pending_creation_chained_order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/states/test_pending_creation_order_state.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/test_decimal_order_adapter.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/test_double_filled_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/test_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/test_order_adapter.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/test_order_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/test_order_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/test_orders_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/test_orders_storage_operations.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/limit/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/limit/test_buy_limit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/limit/test_limit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/limit/test_sell_limit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/limit/test_stop_loss_limit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/limit/test_stop_loss_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/limit/test_take_profit_limit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/limit/test_take_profit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/market/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/market/test_buy_market_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/market/test_sell_market_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/test_unknown_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/trailing/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/trailing/test_trailing_stop_limit_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/orders/types/trailing/test_trailing_stop_order.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/assets/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/assets/test_future_asset.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/assets/test_margin_asset.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/assets/test_spot_asset.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/history/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/history/test_historical_asset_value_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/history/test_historical_portfolio_value_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/test_asset.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/test_portfolio.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/test_portfolio_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/test_portfolio_profitability.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/test_portfolio_value_holder.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/test_value_converter.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/types/test_future_portfolio.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/types/test_margin_portfolio.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/portfolios/types/test_spot_portfolio.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/positions/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/positions/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/positions/states/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/positions/test_position.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/positions/test_position_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/positions/test_positions_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/positions/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/positions/types/test_inverse_position.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/positions/types/test_linear_position.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/trades/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/trades/test_trade_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/trades/test_trade_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/trades/test_trade_pnl.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/trades/test_trade_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/transactions/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/transactions/test_transaction_factory.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/personal_data/transactions/test_transactions_manager.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/signals/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/signals/test_trading_signal_bundle_builder.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/signals/test_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/test_utils/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/test_utils/order_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/test_utils/random_numbers.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/util/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/util/test_config_util.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/__init__.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/real_exchange_tester.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/real_futures_exchange_tester.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_ascendex.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_binance.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_binance_futures.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_bingx.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_bitfinex.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_bitget.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_bithumb.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_bitso.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_bitstamp.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_bybit.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_bybit_futures.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_coinbase.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_coinex.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_cryptocom.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_gateio.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_hitbtc.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_hollaex.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_htx.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_kraken.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_kucoin.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_kucoin_futures.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_mexc.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_ndax.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_okcoin.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_okx.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_okx_futures.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_phemex.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_poloniex.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_upbit.py +0 -0
- {OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests_additional/real_exchanges/test_wavesexchange.py +0 -0
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## [2.4.86] - 2024-06-07
|
8
|
+
### Added
|
9
|
+
- [ModesUtil] limit order price & quantity convertors
|
10
|
+
|
11
|
+
## [2.4.85] - 2024-05-31
|
12
|
+
### Added
|
13
|
+
- [Exchanges] Fix permission issue false positive
|
14
|
+
|
7
15
|
## [2.4.84] - 2024-05-26
|
8
16
|
### Added
|
9
17
|
- [ExchangeData] IncompatibleAssetDetails
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: OctoBot-Trading
|
3
|
-
Version: 2.4.
|
3
|
+
Version: 2.4.86
|
4
4
|
Summary: OctoBot project trading package
|
5
5
|
Home-page: https://github.com/Drakkar-Software/OctoBot-Trading
|
6
6
|
Author: Drakkar-Software
|
@@ -16,7 +16,7 @@ Classifier: Operating System :: POSIX
|
|
16
16
|
Requires-Python: >=3.8
|
17
17
|
License-File: LICENSE
|
18
18
|
|
19
|
-
# OctoBot-Trading [2.4.
|
19
|
+
# OctoBot-Trading [2.4.86](https://github.com/Drakkar-Software/OctoBot-Trading/blob/master/CHANGELOG.md)
|
20
20
|
[](https://app.codacy.com/gh/Drakkar-Software/OctoBot-Trading?utm_source=github.com&utm_medium=referral&utm_content=Drakkar-Software/OctoBot-Trading&utm_campaign=Badge_Grade_Dashboard)
|
21
21
|
[](https://pypi.python.org/pypi/OctoBot-Trading/)
|
22
22
|
[](https://coveralls.io/github/Drakkar-Software/OctoBot-Trading?branch=master)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: OctoBot-Trading
|
3
|
-
Version: 2.4.
|
3
|
+
Version: 2.4.86
|
4
4
|
Summary: OctoBot project trading package
|
5
5
|
Home-page: https://github.com/Drakkar-Software/OctoBot-Trading
|
6
6
|
Author: Drakkar-Software
|
@@ -16,7 +16,7 @@ Classifier: Operating System :: POSIX
|
|
16
16
|
Requires-Python: >=3.8
|
17
17
|
License-File: LICENSE
|
18
18
|
|
19
|
-
# OctoBot-Trading [2.4.
|
19
|
+
# OctoBot-Trading [2.4.86](https://github.com/Drakkar-Software/OctoBot-Trading/blob/master/CHANGELOG.md)
|
20
20
|
[](https://app.codacy.com/gh/Drakkar-Software/OctoBot-Trading?utm_source=github.com&utm_medium=referral&utm_content=Drakkar-Software/OctoBot-Trading&utm_campaign=Badge_Grade_Dashboard)
|
21
21
|
[](https://pypi.python.org/pypi/OctoBot-Trading/)
|
22
22
|
[](https://coveralls.io/github/Drakkar-Software/OctoBot-Trading?branch=master)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# OctoBot-Trading [2.4.
|
1
|
+
# OctoBot-Trading [2.4.86](https://github.com/Drakkar-Software/OctoBot-Trading/blob/master/CHANGELOG.md)
|
2
2
|
[](https://app.codacy.com/gh/Drakkar-Software/OctoBot-Trading?utm_source=github.com&utm_medium=referral&utm_content=Drakkar-Software/OctoBot-Trading&utm_campaign=Badge_Grade_Dashboard)
|
3
3
|
[](https://pypi.python.org/pypi/OctoBot-Trading/)
|
4
4
|
[](https://coveralls.io/github/Drakkar-Software/OctoBot-Trading?branch=master)
|
@@ -120,8 +120,6 @@ from octobot_trading.api.exchange import (
|
|
120
120
|
get_enabled_exchanges_names,
|
121
121
|
get_auto_filled_exchange_names,
|
122
122
|
get_exchange_details,
|
123
|
-
is_api_permission_error,
|
124
|
-
is_exchange_rules_compliancy_error,
|
125
123
|
cancel_ccxt_throttle_task,
|
126
124
|
stop_exchange,
|
127
125
|
)
|
@@ -301,8 +299,6 @@ __all__ = [
|
|
301
299
|
"get_enabled_exchanges_names",
|
302
300
|
"get_auto_filled_exchange_names",
|
303
301
|
"get_exchange_details",
|
304
|
-
"is_api_permission_error",
|
305
|
-
"is_exchange_rules_compliancy_error",
|
306
302
|
"cancel_ccxt_throttle_task",
|
307
303
|
"stop_exchange",
|
308
304
|
"get_trading_modes",
|
@@ -322,14 +322,6 @@ async def get_exchange_details(
|
|
322
322
|
)
|
323
323
|
|
324
324
|
|
325
|
-
def is_api_permission_error(error: BaseException) -> bool:
|
326
|
-
return exchanges.is_api_permission_error(error)
|
327
|
-
|
328
|
-
|
329
|
-
def is_exchange_rules_compliancy_error(error: BaseException) -> bool:
|
330
|
-
return exchanges.is_exchange_rules_compliancy_error(error)
|
331
|
-
|
332
|
-
|
333
325
|
def cancel_ccxt_throttle_task():
|
334
326
|
for task in asyncio.all_tasks():
|
335
327
|
# manually cancel ccxt async throttle task since it apparently can't be cancelled otherwise
|
@@ -126,21 +126,8 @@ SIMULATOR_TESTED_EXCHANGES = sorted(["bitfinex2", "bithumb", "bitstamp", "bittre
|
|
126
126
|
"hitbtc", "kraken", "poloniex", "bitso", "ndax", "upbit",
|
127
127
|
"wavesexchange"])
|
128
128
|
|
129
|
-
# when ccxt is raising ccxt.ExchangeError instead of ccxt.AuthenticationError on api key permissions issue
|
130
|
-
EXCHANGE_PERMISSION_ERRORS: typing.List[typing.Iterable[str]] = [
|
131
|
-
# OKX ex: okx {"msg":"API key doesn't exist","code":"50119"}
|
132
|
-
("api", "key"),
|
133
|
-
|
134
|
-
# Binance ex: DDoSProtection('binance {"code":-2015,"msg":"Invalid API-key, IP, or permissions for action."}')
|
135
|
-
("key", "permissions for action"),
|
136
|
-
|
137
|
-
# coinbase ex: coinbase {"error":"PERMISSION_DENIED",
|
138
|
-
# "error_details":"Missing required scopes","message":"Missing required scopes"}
|
139
|
-
("permission_denied", "required scopes"),
|
140
|
-
("missing required scopes"),
|
141
|
-
]
|
142
|
-
|
143
129
|
# text content of errors due to exchange compliancy rules
|
130
|
+
# Warning: should never be a false positive
|
144
131
|
EXCHANGE_COMPLIANCY_ERRORS: typing.List[typing.Iterable[str]] = [
|
145
132
|
# OKX ex: Trading of this pair or contract is restricted due to local compliance requirements
|
146
133
|
("restricted", "compliance"),
|
@@ -62,6 +62,7 @@ from octobot_trading.exchanges.util import (
|
|
62
62
|
log_time_sync_error,
|
63
63
|
get_partners_explanation_message,
|
64
64
|
get_enabled_exchanges,
|
65
|
+
exchange_error_translator,
|
65
66
|
is_compatible_account,
|
66
67
|
get_historical_ohlcv,
|
67
68
|
get_exchange_type,
|
@@ -76,8 +77,6 @@ from octobot_trading.exchanges.util import (
|
|
76
77
|
get_local_exchange_manager,
|
77
78
|
get_auto_filled_exchange_names,
|
78
79
|
get_exchange_details,
|
79
|
-
is_api_permission_error,
|
80
|
-
is_exchange_rules_compliancy_error,
|
81
80
|
is_error_on_this_type,
|
82
81
|
force_disable_web_socket,
|
83
82
|
check_web_socket_config,
|
@@ -149,6 +148,7 @@ __all__ = [
|
|
149
148
|
"log_time_sync_error",
|
150
149
|
"get_partners_explanation_message",
|
151
150
|
"get_enabled_exchanges",
|
151
|
+
"exchange_error_translator",
|
152
152
|
"is_compatible_account",
|
153
153
|
"get_historical_ohlcv",
|
154
154
|
"get_exchange_type",
|
@@ -163,8 +163,6 @@ __all__ = [
|
|
163
163
|
"get_local_exchange_manager",
|
164
164
|
"get_auto_filled_exchange_names",
|
165
165
|
"get_exchange_details",
|
166
|
-
"is_api_permission_error",
|
167
|
-
"is_exchange_rules_compliancy_error",
|
168
166
|
"is_error_on_this_type",
|
169
167
|
"AbstractExchange",
|
170
168
|
"is_channel_managed_by_websocket",
|
{OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/types/rest_exchange.py
RENAMED
@@ -91,6 +91,14 @@ class RestExchange(abstract_exchange.AbstractExchange):
|
|
91
91
|
|
92
92
|
# text content of errors due to orders not found errors
|
93
93
|
EXCHANGE_ORDER_NOT_FOUND_ERRORS: typing.List[typing.Iterable[str]] = []
|
94
|
+
# when ccxt is raising ccxt.ExchangeError instead of ccxt.AuthenticationError on api key permissions issue
|
95
|
+
# text content of errors due to api key permissions issues
|
96
|
+
EXCHANGE_PERMISSION_ERRORS: typing.List[typing.Iterable[str]] = []
|
97
|
+
# text content of errors due to account compliancy issues
|
98
|
+
EXCHANGE_COMPLIANCY_ERRORS: typing.List[typing.Iterable[str]] = []
|
99
|
+
# text content of errors due to exchange local account permissions (ex: accounts from X country can't trade XYZ)
|
100
|
+
# text content of errors due to traded assets for account
|
101
|
+
EXCHANGE_ACCOUNT_TRADED_SYMBOL_PERMISSION_ERRORS: typing.List[typing.Iterable[str]] = []
|
94
102
|
|
95
103
|
DEFAULT_CONNECTOR_CLASS = ccxt_connector.CCXTConnector
|
96
104
|
|
@@ -207,7 +215,7 @@ class RestExchange(abstract_exchange.AbstractExchange):
|
|
207
215
|
except ccxt.DDoSProtection as e:
|
208
216
|
# raised upon rate limit issues, last response data might have details on what is happening
|
209
217
|
# ensure this is not a permission error (can happen on binance)
|
210
|
-
if
|
218
|
+
if self.is_api_permission_error(e):
|
211
219
|
# invalid api key or missing trading rights
|
212
220
|
raise errors.AuthenticationError(
|
213
221
|
f"Error when handling order {e}. Please make sure that trading permissions are on for this API key."
|
@@ -223,12 +231,12 @@ class RestExchange(abstract_exchange.AbstractExchange):
|
|
223
231
|
f"Error when handling order {e}. "
|
224
232
|
f"Exchange currently refuses to create orders of type {order_type} on {symbol}."
|
225
233
|
) from e
|
226
|
-
if
|
234
|
+
if self.is_api_permission_error(e):
|
227
235
|
# invalid api key or missing trading rights
|
228
236
|
raise errors.AuthenticationError(
|
229
237
|
f"Error when handling order {e}. Please make sure that trading permissions are on for this API key."
|
230
238
|
) from e
|
231
|
-
if
|
239
|
+
if self.is_exchange_rules_compliancy_error(e):
|
232
240
|
raise errors.ExchangeCompliancyError(
|
233
241
|
f"Error when handling order {e}. Exchange is refusing this order request on this account because "
|
234
242
|
f"of its compliancy requirements."
|
@@ -276,7 +284,7 @@ class RestExchange(abstract_exchange.AbstractExchange):
|
|
276
284
|
current_price=current_price,
|
277
285
|
reduce_only=reduce_only, params=params)
|
278
286
|
except (ccxt.InvalidOrder, ccxt.BadRequest) as err:
|
279
|
-
if
|
287
|
+
if self.is_exchange_account_traded_symbol_permission_error(err):
|
280
288
|
# exchange won't let this order create: raise
|
281
289
|
raise errors.ExchangeAccountSymbolPermissionError(
|
282
290
|
f"Error when creating {symbol} {order_type} order on {self.exchange_manager.exchange_name}: {err}"
|
@@ -893,6 +901,21 @@ class RestExchange(abstract_exchange.AbstractExchange):
|
|
893
901
|
return exchanges_util.is_error_on_this_type(error, self.EXCHANGE_ORDER_NOT_FOUND_ERRORS)
|
894
902
|
return False
|
895
903
|
|
904
|
+
def is_api_permission_error(self, error: BaseException) -> bool:
|
905
|
+
if self.EXCHANGE_PERMISSION_ERRORS:
|
906
|
+
return exchanges_util.is_error_on_this_type(error, self.EXCHANGE_PERMISSION_ERRORS)
|
907
|
+
return False
|
908
|
+
|
909
|
+
def is_exchange_rules_compliancy_error(self, error: BaseException) -> bool:
|
910
|
+
if self.EXCHANGE_COMPLIANCY_ERRORS:
|
911
|
+
return exchanges_util.is_error_on_this_type(error, self.EXCHANGE_COMPLIANCY_ERRORS)
|
912
|
+
return False
|
913
|
+
|
914
|
+
def is_exchange_account_traded_symbol_permission_error(self, error: BaseException) -> bool:
|
915
|
+
if self.EXCHANGE_ACCOUNT_TRADED_SYMBOL_PERMISSION_ERRORS:
|
916
|
+
return exchanges_util.is_error_on_this_type(error, self.EXCHANGE_ACCOUNT_TRADED_SYMBOL_PERMISSION_ERRORS)
|
917
|
+
return False
|
918
|
+
|
896
919
|
"""
|
897
920
|
Auto fetched and filled exchanges
|
898
921
|
"""
|
{OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/util/__init__.py
RENAMED
@@ -31,6 +31,7 @@ from octobot_trading.exchanges.util.exchange_util import (
|
|
31
31
|
get_partners_explanation_message,
|
32
32
|
get_enabled_exchanges,
|
33
33
|
get_local_exchange_manager,
|
34
|
+
exchange_error_translator,
|
34
35
|
is_compatible_account,
|
35
36
|
get_historical_ohlcv,
|
36
37
|
get_exchange_type,
|
@@ -44,9 +45,6 @@ from octobot_trading.exchanges.util.exchange_util import (
|
|
44
45
|
get_exchange_class_from_name,
|
45
46
|
get_auto_filled_exchange_names,
|
46
47
|
get_exchange_details,
|
47
|
-
is_api_permission_error,
|
48
|
-
is_exchange_rules_compliancy_error,
|
49
|
-
is_exchange_account_traded_symbol_permission_error,
|
50
48
|
is_error_on_this_type,
|
51
49
|
)
|
52
50
|
from octobot_trading.exchanges.util import websockets_util
|
@@ -67,6 +65,7 @@ __all__ = [
|
|
67
65
|
"get_partners_explanation_message",
|
68
66
|
"get_enabled_exchanges",
|
69
67
|
"get_local_exchange_manager",
|
68
|
+
"exchange_error_translator",
|
70
69
|
"is_compatible_account",
|
71
70
|
"get_historical_ohlcv",
|
72
71
|
"get_exchange_type",
|
@@ -80,9 +79,6 @@ __all__ = [
|
|
80
79
|
"get_exchange_class_from_name",
|
81
80
|
"get_auto_filled_exchange_names",
|
82
81
|
"get_exchange_details",
|
83
|
-
"is_api_permission_error",
|
84
|
-
"is_exchange_rules_compliancy_error",
|
85
|
-
"is_exchange_account_traded_symbol_permission_error",
|
86
82
|
"is_error_on_this_type",
|
87
83
|
"force_disable_web_socket",
|
88
84
|
"check_web_socket_config",
|
{OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/util/exchange_util.py
RENAMED
@@ -28,6 +28,7 @@ import octobot_commons.tentacles_management as tentacles_management
|
|
28
28
|
import octobot_tentacles_manager.api as api
|
29
29
|
|
30
30
|
import octobot_trading.enums as enums
|
31
|
+
import octobot_trading.errors as errors
|
31
32
|
import octobot_trading.constants as constants
|
32
33
|
import octobot_trading.exchanges.types as exchanges_types
|
33
34
|
import octobot_trading.exchanges.implementations as exchanges_implementations
|
@@ -228,7 +229,8 @@ async def get_local_exchange_manager(
|
|
228
229
|
.disable_trading_mode() \
|
229
230
|
.build()
|
230
231
|
try:
|
231
|
-
|
232
|
+
with exchange_error_translator(exchange_manager):
|
233
|
+
yield exchange_manager
|
232
234
|
finally:
|
233
235
|
# do not log stopping message
|
234
236
|
logger = exchange_manager.exchange.connector.logger
|
@@ -238,6 +240,20 @@ async def get_local_exchange_manager(
|
|
238
240
|
logger.disable(False)
|
239
241
|
|
240
242
|
|
243
|
+
@contextlib.contextmanager
|
244
|
+
def exchange_error_translator(exchange_manager):
|
245
|
+
try:
|
246
|
+
yield
|
247
|
+
except ccxt.ExchangeError as err:
|
248
|
+
# convert permission and compliancy errors while the exchange manager still exists and can be used
|
249
|
+
if exchange_manager.exchange.is_api_permission_error(err):
|
250
|
+
raise errors.AuthenticationError(f"{err} ({err.__class__})") from err
|
251
|
+
if exchange_manager.exchange.is_exchange_rules_compliancy_error(err):
|
252
|
+
raise errors.ExchangeCompliancyError(f"{err} ({err.__class__})") from err
|
253
|
+
# default raise
|
254
|
+
raise
|
255
|
+
|
256
|
+
|
241
257
|
async def is_compatible_account(exchange_name: str, exchange_config: dict, tentacles_setup_config, is_sandboxed: bool) \
|
242
258
|
-> (bool, bool, str):
|
243
259
|
"""
|
@@ -428,18 +444,6 @@ def get_associated_symbol(exchange_manager, asset: str, target_asset: str) -> (t
|
|
428
444
|
return symbol, is_reversed_symbol
|
429
445
|
|
430
446
|
|
431
|
-
def is_api_permission_error(error: BaseException) -> bool:
|
432
|
-
return is_error_on_this_type(error, constants.EXCHANGE_PERMISSION_ERRORS)
|
433
|
-
|
434
|
-
|
435
|
-
def is_exchange_rules_compliancy_error(error: BaseException) -> bool:
|
436
|
-
return is_error_on_this_type(error, constants.EXCHANGE_COMPLIANCY_ERRORS)
|
437
|
-
|
438
|
-
|
439
|
-
def is_exchange_account_traded_symbol_permission_error(error: BaseException) -> bool:
|
440
|
-
return is_error_on_this_type(error, constants.EXCHANGE_ACCOUNT_TRADED_SYMBOL_PERMISSION_ERRORS)
|
441
|
-
|
442
|
-
|
443
447
|
def is_error_on_this_type(error: BaseException, descriptions: typing.List[typing.Iterable[str]]) -> bool:
|
444
448
|
lower_error = str(error).lower()
|
445
449
|
for identifiers in descriptions:
|
@@ -69,6 +69,8 @@ from octobot_trading.modes.modes_util import (
|
|
69
69
|
get_assets_requiring_extra_price_data_to_convert,
|
70
70
|
convert_assets_to_target_asset,
|
71
71
|
convert_asset_to_target_asset,
|
72
|
+
get_instantly_filled_limit_order_adapted_price,
|
73
|
+
get_instantly_filled_limit_order_adapted_price_and_quantity,
|
72
74
|
notify_portfolio_optimization_complete,
|
73
75
|
)
|
74
76
|
|
@@ -97,5 +99,7 @@ __all__ = [
|
|
97
99
|
"get_assets_requiring_extra_price_data_to_convert",
|
98
100
|
"convert_assets_to_target_asset",
|
99
101
|
"convert_asset_to_target_asset",
|
102
|
+
"get_instantly_filled_limit_order_adapted_price",
|
103
|
+
"get_instantly_filled_limit_order_adapted_price_and_quantity",
|
100
104
|
"notify_portfolio_optimization_complete",
|
101
105
|
]
|
@@ -122,15 +122,7 @@ async def convert_asset_to_target_asset(
|
|
122
122
|
|
123
123
|
if trading_personal_data.get_trade_order_type(order_type) is not trading_enums.TradeOrderType.MARKET:
|
124
124
|
# can't use market orders: use limit orders with price a bit under the current price to instant fill it.
|
125
|
-
|
126
|
-
if order_type is trading_enums.TraderOrderType.SELL_LIMIT:
|
127
|
-
price -= price_delta
|
128
|
-
elif order_type is trading_enums.TraderOrderType.BUY_LIMIT:
|
129
|
-
price += price_delta
|
130
|
-
else:
|
131
|
-
trading_mode.logger.error(
|
132
|
-
f"Unhandled order type in convertor limit order price adapter: {order_type}"
|
133
|
-
)
|
125
|
+
price = get_instantly_filled_limit_order_adapted_price(price, order_type)
|
134
126
|
|
135
127
|
# get order quantity
|
136
128
|
quantity = _get_available_or_target_quantity(trading_mode, symbol, order_type, price, asset_amount)
|
@@ -154,6 +146,31 @@ async def convert_asset_to_target_asset(
|
|
154
146
|
return created_orders
|
155
147
|
|
156
148
|
|
149
|
+
def get_instantly_filled_limit_order_adapted_price(
|
150
|
+
price: decimal.Decimal, order_type: trading_enums.TraderOrderType
|
151
|
+
) -> decimal.Decimal:
|
152
|
+
price_delta = price * constants.INSTANT_FILLED_LIMIT_ORDER_PRICE_DELTA
|
153
|
+
if order_type is trading_enums.TraderOrderType.SELL_LIMIT:
|
154
|
+
price -= price_delta
|
155
|
+
elif order_type is trading_enums.TraderOrderType.BUY_LIMIT:
|
156
|
+
price += price_delta
|
157
|
+
else:
|
158
|
+
logging.get_logger(__name__).error(
|
159
|
+
f"Unhandled order type in convertor limit order price adapter: {order_type}"
|
160
|
+
)
|
161
|
+
return price
|
162
|
+
|
163
|
+
|
164
|
+
def get_instantly_filled_limit_order_adapted_price_and_quantity(
|
165
|
+
price: decimal.Decimal, quantity: decimal.Decimal, order_type: trading_enums.TraderOrderType
|
166
|
+
) -> (decimal.Decimal, decimal.Decimal):
|
167
|
+
adapted_price = get_instantly_filled_limit_order_adapted_price(price, order_type)
|
168
|
+
origin_cost = price * quantity
|
169
|
+
# keep the same total cost, adapt quantity
|
170
|
+
adapted_quantity = origin_cost / adapted_price
|
171
|
+
return adapted_price, adapted_quantity
|
172
|
+
|
173
|
+
|
157
174
|
def _get_associated_symbol_and_order_type(trading_mode, asset: str, target_asset: str) \
|
158
175
|
-> (str, trading_enums.TraderOrderType):
|
159
176
|
symbol, reversed_symbol = exchange_util.get_associated_symbol(trading_mode.exchange_manager, asset, target_asset)
|
{OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/tests/exchanges/util/test_exchange_util.py
RENAMED
@@ -244,26 +244,10 @@ async def test_get_exchange_details(tentacles_setup_config, supported_exchanges)
|
|
244
244
|
get_tentacle_config_mock.assert_called_once()
|
245
245
|
|
246
246
|
|
247
|
-
def test_is_api_permission_error():
|
248
|
-
with mock.patch.object(exchange_util, "is_error_on_this_type") as is_error_on_this_type_mock:
|
249
|
-
err = Exception("plop")
|
250
|
-
exchanges.is_api_permission_error(err)
|
251
|
-
is_error_on_this_type_mock.assert_called_once_with(
|
252
|
-
err, constants.EXCHANGE_PERMISSION_ERRORS
|
253
|
-
)
|
254
|
-
|
255
|
-
|
256
|
-
def test_is_exchange_rules_compliancy_error():
|
257
|
-
with mock.patch.object(exchange_util, "is_error_on_this_type") as is_error_on_this_type_mock:
|
258
|
-
err = Exception("plop")
|
259
|
-
exchanges.is_exchange_rules_compliancy_error(err)
|
260
|
-
is_error_on_this_type_mock.assert_called_once_with(
|
261
|
-
err, constants.EXCHANGE_COMPLIANCY_ERRORS
|
262
|
-
)
|
263
|
-
|
264
|
-
|
265
247
|
def test_is_error_on_this_type():
|
266
|
-
|
267
|
-
|
268
|
-
assert exchange_util.is_error_on_this_type(Exception("
|
269
|
-
assert exchange_util.is_error_on_this_type(Exception("api"),
|
248
|
+
errors = [("api", "key", "doesn't exist"),]
|
249
|
+
|
250
|
+
assert exchange_util.is_error_on_this_type(Exception("plop"), errors) is False
|
251
|
+
assert exchange_util.is_error_on_this_type(Exception("api key doesn't exist"), errors) is True
|
252
|
+
assert exchange_util.is_error_on_this_type(Exception("api"), errors) is False
|
253
|
+
assert exchange_util.is_error_on_this_type(Exception("api"), errors) is False
|
File without changes
|
File without changes
|
File without changes
|
{OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/OctoBot_Trading.egg-info/dependency_links.txt
RENAMED
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
|
{OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/funding/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/kline/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ohlcv/__init__.py
RENAMED
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
|
{OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/prices/__init__.py
RENAMED
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
|
{OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchange_data/ticker/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/abstract_exchange.py
RENAMED
File without changes
|
File without changes
|
{OctoBot-Trading-2.4.84 → OctoBot-Trading-2.4.86}/octobot_trading/exchanges/adapters/__init__.py
RENAMED
File without changes
|
File without changes
|