OctoBot-Trading 2.4.76__tar.gz → 2.4.77__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.76 → OctoBot-Trading-2.4.77}/CHANGELOG.md +4 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77/OctoBot_Trading.egg-info}/PKG-INFO +2 -2
- {OctoBot-Trading-2.4.76/OctoBot_Trading.egg-info → OctoBot-Trading-2.4.77}/PKG-INFO +2 -2
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/README.md +1 -1
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/__init__.py +1 -1
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/connectors/ccxt/ccxt_client_util.py +9 -1
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/connectors/ccxt/ccxt_connector.py +3 -3
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/connectors/ccxt/ccxt_websocket_connector.py +1 -1
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/test_exchange_config_data.py +13 -5
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/real_exchange_tester.py +9 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_ascendex.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_binance.py +2 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_binance_futures.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bingx.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bitfinex.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bitget.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bithumb.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bitso.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bitstamp.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bybit.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bybit_futures.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_coinbase.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_coinex.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_cryptocom.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_gateio.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_hitbtc.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_hollaex.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_htx.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_kraken.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_kucoin.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_kucoin_futures.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_mexc.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_ndax.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_okcoin.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_okx.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_okx_futures.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_phemex.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_poloniex.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_upbit.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_wavesexchange.py +1 -4
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/LICENSE +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/MANIFEST.in +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/OctoBot_Trading.egg-info/SOURCES.txt +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/OctoBot_Trading.egg-info/dependency_links.txt +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/OctoBot_Trading.egg-info/not-zip-safe +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/OctoBot_Trading.egg-info/requires.txt +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/OctoBot_Trading.egg-info/top_level.txt +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/api/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/api/channels.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/api/contracts.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/api/exchange.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/api/modes.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/api/orders.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/api/portfolio.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/api/positions.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/api/profitability.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/api/storage.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/api/symbol_data.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/api/trader.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/api/trades.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/constants.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/enums.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/errors.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_channel.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/contracts/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/contracts/contract_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/contracts/future_contract.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/contracts/margin_contract.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/exchange_symbol_data.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/exchange_symbols_data.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/funding/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/funding/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/funding/channel/funding.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/funding/channel/funding_updater.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/funding/channel/funding_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/funding/funding_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/kline/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/kline/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/kline/channel/kline.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/kline/channel/kline_updater.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/kline/channel/kline_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/kline/kline_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ohlcv/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ohlcv/candles_adapter.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ohlcv/candles_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ohlcv/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ohlcv/channel/ohlcv.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ohlcv/channel/ohlcv_updater.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ohlcv/channel/ohlcv_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ohlcv/preloaded_candles_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/order_book/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/order_book/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/order_book/channel/order_book.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/order_book/channel/order_book_updater.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/order_book/channel/order_book_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/order_book/order_book_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/prices/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/prices/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/prices/channel/price.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/prices/channel/prices_updater.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/prices/channel/prices_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/prices/price_events_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/prices/prices_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/recent_trades/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/recent_trades/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/recent_trades/channel/recent_trade.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/recent_trades/channel/recent_trade_updater.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/recent_trades/channel/recent_trade_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/recent_trades/recent_trades_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ticker/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ticker/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ticker/channel/ticker.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ticker/channel/ticker_updater.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ticker/channel/ticker_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchange_data/ticker/ticker_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/abstract_exchange.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/abstract_websocket_exchange.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/adapters/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/adapters/abstract_adapter.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/config/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/config/backtesting_exchange_config.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/config/exchange_config_data.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/connectors/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/connectors/ccxt/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/connectors/ccxt/ccxt_adapter.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/connectors/ccxt/ccxt_clients_cache.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/connectors/ccxt/constants.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/connectors/ccxt/enums.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/connectors/simulator/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/connectors/simulator/ccxt_client_simulation.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/connectors/simulator/exchange_simulator_adapter.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/connectors/simulator/exchange_simulator_connector.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/exchange_builder.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/exchange_channels.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/exchange_details.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/exchange_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/exchange_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/exchange_websocket_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/exchanges.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/implementations/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/implementations/default_rest_exchange.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/implementations/default_websocket_exchange.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/implementations/exchange_simulator.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/traders/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/traders/trader.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/traders/trader_simulator.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/types/rest_exchange.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/types/websocket_exchange.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/util/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/util/exchange_market_status_fixer.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/util/exchange_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/util/symbol_details.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/exchanges/util/websockets_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/abstract_trading_mode.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/channel/abstract_mode_consumer.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/channel/abstract_mode_producer.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/channel/mode.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/mode_activity.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/mode_config.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/modes_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/modes_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/basic_keywords/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/basic_keywords/account_balance.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/basic_keywords/amount.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/basic_keywords/configuration.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/basic_keywords/position.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/basic_keywords/price.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/basic_keywords/run_persistence.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/basic_keywords/trading_signals.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/basic_keywords/user_inputs.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/context_management.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/dsl/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/dsl/quantity.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/script_keywords/dsl/values.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/scripted_trading_mode/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/modes/scripted_trading_mode/abstract_scripted_trading_mode.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/octobot_channel_consumer.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/exchange_personal_data.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/channel/orders.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/channel/orders_updater.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/channel/orders_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/decimal_order_adapter.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/groups/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/groups/balanced_take_profit_and_stop_order_group.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/groups/group_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/groups/one_cancels_the_other_order_group.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/order_adapter.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/order_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/order_group.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/order_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/orders_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/orders_storage_operations.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/states/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/states/cancel_order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/states/close_order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/states/fill_order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/states/open_order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/states/order_state_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/states/pending_creation_chained_order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/states/pending_creation_order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/limit/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/limit/buy_limit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/limit/limit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/limit/sell_limit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/limit/stop_loss_limit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/limit/stop_loss_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/limit/take_profit_limit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/limit/take_profit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/market/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/market/buy_market_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/market/market_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/market/sell_market_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/trailing/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/trailing/trailing_stop_limit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/trailing/trailing_stop_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/unknown_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/orders/types/unsupported_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/asset.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/assets/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/assets/future_asset.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/assets/margin_asset.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/assets/spot_asset.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/channel/balance.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/channel/balance_updater.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/channel/balance_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/history/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/history/historical_asset_value.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/history/historical_asset_value_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/history/historical_portfolio_value_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/portfolio.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/portfolio_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/portfolio_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/portfolio_profitability.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/portfolio_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/portfolio_value_holder.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/sub_portfolio.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/types/future_portfolio.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/types/margin_portfolio.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/types/spot_portfolio.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/portfolios/value_converter.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/channel/positions.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/channel/positions_updater.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/channel/positions_updater_simulator.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/position.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/position_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/position_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/position_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/positions_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/states/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/states/active_position_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/states/idle_position_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/states/liquidate_position_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/states/position_state_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/types/inverse_position.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/positions/types/linear_position.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/trades/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/trades/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/trades/channel/trades.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/trades/channel/trades_updater.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/trades/trade.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/trades/trade_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/trades/trade_pnl.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/trades/trades_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/trades/trades_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/transactions/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/transactions/transaction.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/transactions/transaction_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/transactions/transactions_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/transactions/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/transactions/types/blockchain_transaction.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/transactions/types/fee_transaction.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/transactions/types/realised_pnl_transaction.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/personal_data/transactions/types/transfer_transaction.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/signals/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/signals/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/signals/channel/remote_trading_signal.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/signals/channel/remote_trading_signal_channel_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/signals/channel/signal_producer.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/signals/signal_creation.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/signals/trading_signal_bundle_builder.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/signals/util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/storage/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/storage/abstract_storage.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/storage/candles_storage.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/storage/orders_storage.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/storage/portfolio_storage.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/storage/storage_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/storage/trades_storage.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/storage/transactions_storage.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/storage/util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/supervisors/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/supervisors/abstract_portfolio_supervisor.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/supervisors/abstract_supervisor.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/util/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/util/config_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/util/initializable.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/util/initialization_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/util/simulator_updater_utils.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/util/test_tools/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/util/test_tools/exchange_data.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/util/test_tools/exchanges_test_tools.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/util/test_tools/spot_rest_exchange_test_tools.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/octobot_trading/util/test_tools/websocket_test_tools.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/requirements.txt +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/setup.cfg +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/setup.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/api/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/api/test_channels.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/api/test_exchange.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/api/test_modes.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/api/test_orders.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/api/test_portfolio.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/api/test_profitability.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/api/test_symbol_data.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/api/test_trader.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/api/test_trades.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/cli/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/contracts/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/contracts/test_future_contract.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/contracts/test_margin_contract.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/funding/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/funding/test_funding_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/kline/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/kline/test_kline_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/ohlcv/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/ohlcv/test_candles_adapter.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/ohlcv/test_candles_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/order_book/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/order_book/test_order_book_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/prices/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/prices/test_price_events_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/prices/test_prices_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/recent_trades/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/recent_trades/test_recent_trades_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/test_exchange_symbols_data.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/ticker/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchange_data/ticker/test_ticker_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/connectors/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/connectors/ccxt/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/connectors/ccxt/mock_exchanges_data.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/connectors/ccxt/test_ccxt_connector.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/implementations/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/implementations/test_default_rest_exchange.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/implementations/test_default_websocket_exchange.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/test_abstract_exchange.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/test_abstract_websocket_exchange.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/test_exchange_builder.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/test_exchange_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/test_exchange_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/test_exchange_simulator.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/test_exchanges.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/traders/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/traders/test_trader.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/types/test_websocket_exchange.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/util/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/util/test_exchange_market_status_fixer.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/util/test_exchange_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/modes/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/modes/script_keywords/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/modes/script_keywords/basic_keywords/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/modes/script_keywords/basic_keywords/test_account_balance.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/modes/script_keywords/basic_keywords/test_amount.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/modes/script_keywords/basic_keywords/test_position.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/modes/script_keywords/basic_keywords/test_price.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/modes/script_keywords/dsl/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/modes/script_keywords/dsl/test_quantity.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/modes/test_abstract_mode_consumer.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/modes/test_abstract_trading_mode.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/modes/test_modes_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/groups/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/groups/test_balanced_take_profit_and_stop_order_group.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/groups/test_group_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/groups/test_one_cancels_the_other_order_group.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/states/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/states/test_cancel_order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/states/test_close_order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/states/test_fill_order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/states/test_open_order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/states/test_order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/states/test_order_state_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/states/test_pending_creation_chained_order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/states/test_pending_creation_order_state.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/test_decimal_order_adapter.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/test_double_filled_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/test_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/test_order_adapter.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/test_order_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/test_order_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/test_orders_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/test_orders_storage_operations.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/limit/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/limit/test_buy_limit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/limit/test_limit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/limit/test_sell_limit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/limit/test_stop_loss_limit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/limit/test_stop_loss_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/limit/test_take_profit_limit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/limit/test_take_profit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/market/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/market/test_buy_market_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/market/test_sell_market_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/test_unknown_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/trailing/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/trailing/test_trailing_stop_limit_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/orders/types/trailing/test_trailing_stop_order.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/assets/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/assets/test_future_asset.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/assets/test_margin_asset.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/assets/test_spot_asset.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/history/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/history/test_historical_asset_value_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/history/test_historical_portfolio_value_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/test_asset.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/test_portfolio.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/test_portfolio_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/test_portfolio_profitability.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/test_portfolio_value_holder.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/test_value_converter.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/types/test_future_portfolio.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/types/test_margin_portfolio.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/portfolios/types/test_spot_portfolio.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/positions/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/positions/channel/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/positions/states/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/positions/test_position.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/positions/test_position_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/positions/test_positions_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/positions/types/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/positions/types/test_inverse_position.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/positions/types/test_linear_position.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/trades/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/trades/test_trade_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/trades/test_trade_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/trades/test_trade_pnl.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/trades/test_trade_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/transactions/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/transactions/test_transaction_factory.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/personal_data/transactions/test_transactions_manager.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/signals/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/signals/test_trading_signal_bundle_builder.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/signals/test_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/test_utils/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/test_utils/order_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/test_utils/random_numbers.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/util/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/util/test_config_util.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/__init__.py +0 -0
- {OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/real_futures_exchange_tester.py +0 -0
@@ -4,6 +4,10 @@ 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.77] - 2024-04-13
|
8
|
+
### Added
|
9
|
+
- [Exchanges] Handle inactive markets
|
10
|
+
|
7
11
|
## [2.4.76] - 2024-04-12
|
8
12
|
### Added
|
9
13
|
- [Exchanges] Handle order type open status for symbol
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: OctoBot-Trading
|
3
|
-
Version: 2.4.
|
3
|
+
Version: 2.4.77
|
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.77](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.77
|
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.77](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.77](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)
|
@@ -134,8 +134,16 @@ def get_ccxt_client_login_options(exchange_manager):
|
|
134
134
|
return {'defaultType': 'spot'}
|
135
135
|
|
136
136
|
|
137
|
-
def get_symbols(client):
|
137
|
+
def get_symbols(client, active_only):
|
138
138
|
try:
|
139
|
+
if active_only:
|
140
|
+
return set(
|
141
|
+
symbol
|
142
|
+
for symbol in client.symbols
|
143
|
+
if client.markets.get(symbol, {}).get(
|
144
|
+
enums.ExchangeConstantsMarketStatusColumns.ACTIVE.value, True
|
145
|
+
)
|
146
|
+
)
|
139
147
|
return set(client.symbols)
|
140
148
|
except (AttributeError, TypeError):
|
141
149
|
# ccxt exchange load_markets failed
|
@@ -97,7 +97,7 @@ class CCXTConnector(abstract_exchange.AbstractExchange):
|
|
97
97
|
)
|
98
98
|
|
99
99
|
# initialize symbols and timeframes
|
100
|
-
self.symbols = self.get_client_symbols()
|
100
|
+
self.symbols = self.get_client_symbols(active_only=True)
|
101
101
|
self.time_frames = self.get_client_time_frames()
|
102
102
|
|
103
103
|
except (ccxt.ExchangeNotAvailable, ccxt.RequestTimeout) as e:
|
@@ -157,8 +157,8 @@ class CCXTConnector(abstract_exchange.AbstractExchange):
|
|
157
157
|
else:
|
158
158
|
raise
|
159
159
|
|
160
|
-
def get_client_symbols(self):
|
161
|
-
return ccxt_client_util.get_symbols(self.client)
|
160
|
+
def get_client_symbols(self, active_only=True):
|
161
|
+
return ccxt_client_util.get_symbols(self.client, active_only)
|
162
162
|
|
163
163
|
def get_client_time_frames(self):
|
164
164
|
return ccxt_client_util.get_time_frames(self.client)
|
@@ -766,7 +766,7 @@ class CCXTWebsocketConnector(abstract_websocket_exchange.AbstractWebsocketExchan
|
|
766
766
|
return self.EXCHANGE_FEEDS.get(Feeds.CANDLE, Feeds.UNSUPPORTED.value) != Feeds.UNSUPPORTED.value
|
767
767
|
|
768
768
|
def _is_supported_pair(self, pair):
|
769
|
-
return pair in ccxt_client_util.get_symbols(self.client)
|
769
|
+
return pair in ccxt_client_util.get_symbols(self.client, True)
|
770
770
|
|
771
771
|
def _is_pair_independent_feed(self, feed):
|
772
772
|
return feed in self.PAIR_INDEPENDENT_CHANNELS
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests/exchanges/test_exchange_config_data.py
RENAMED
@@ -80,7 +80,6 @@ class TestExchangeConfig:
|
|
80
80
|
}
|
81
81
|
_, exchange_manager = await self.init_default(config=config)
|
82
82
|
|
83
|
-
assert "UNI/BTC" in exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"]
|
84
83
|
assert "AVAX/BTC" in exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"]
|
85
84
|
assert "ADA/BTC" in exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"]
|
86
85
|
assert "MATIC/BTC" in exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"]
|
@@ -90,6 +89,9 @@ class TestExchangeConfig:
|
|
90
89
|
assert "AVAX/BNB" not in exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"]
|
91
90
|
assert "ETH/BTC" in exchange_manager.exchange_config.traded_symbol_pairs
|
92
91
|
|
92
|
+
# inactive markets
|
93
|
+
assert "UNI/BTC" not in exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"]
|
94
|
+
|
93
95
|
# disabled
|
94
96
|
assert "Ethereum" not in exchange_manager.exchange_config.traded_cryptocurrencies
|
95
97
|
assert "ADA/ETH" not in exchange_manager.exchange_config.traded_symbol_pairs
|
@@ -113,10 +115,12 @@ class TestExchangeConfig:
|
|
113
115
|
}
|
114
116
|
_, exchange_manager = await self.init_default(config=config)
|
115
117
|
|
116
|
-
assert "TRX/BTC" in exchange_manager.exchange_config.traded_symbol_pairs
|
117
118
|
assert "ADA/BTC" in exchange_manager.exchange_config.traded_symbol_pairs
|
118
119
|
assert "Bitcoin" in exchange_manager.exchange_config.traded_cryptocurrencies
|
119
120
|
|
121
|
+
# inactive markets
|
122
|
+
assert "TRX/BTC" not in exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"]
|
123
|
+
|
120
124
|
# invalid ETH wildcard config
|
121
125
|
assert "Ethereum" not in exchange_manager.exchange_config.traded_cryptocurrencies
|
122
126
|
|
@@ -141,7 +145,6 @@ class TestExchangeConfig:
|
|
141
145
|
|
142
146
|
_, exchange_manager = await self.init_default(config=config)
|
143
147
|
|
144
|
-
assert "UNI/BTC" in exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"]
|
145
148
|
assert "AVAX/BTC" in exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"]
|
146
149
|
assert "ADA/BTC" in exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"]
|
147
150
|
assert "MATIC/BTC" in exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"]
|
@@ -152,6 +155,9 @@ class TestExchangeConfig:
|
|
152
155
|
assert "AVAX/BNB" not in exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"]
|
153
156
|
assert "BTC/USDT" in exchange_manager.exchange_config.traded_symbol_pairs
|
154
157
|
|
158
|
+
# inactive markets
|
159
|
+
assert "UNI/BTC" not in exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"]
|
160
|
+
|
155
161
|
# disabled
|
156
162
|
assert "Ethereum" not in exchange_manager.exchange_config.traded_cryptocurrencies
|
157
163
|
assert "ADA/ETH" not in exchange_manager.exchange_config.traded_symbol_pairs
|
@@ -189,11 +195,13 @@ class TestExchangeConfig:
|
|
189
195
|
_, exchange_manager = await self.init_default(config=config)
|
190
196
|
|
191
197
|
assert exchange_manager.exchange_config.traded_cryptocurrencies["Binance Coin"] == ["BNB/USDT"]
|
192
|
-
assert exchange_manager.exchange_config.traded_cryptocurrencies["Binance USD"] == ["BNB/BUSD"]
|
193
198
|
assert exchange_manager.exchange_config.traded_cryptocurrencies["Bitcoin"] == ["BNB/BTC"]
|
194
199
|
assert exchange_manager.exchange_config.traded_cryptocurrencies["Tether"] == ["BNB/USDT"]
|
195
200
|
|
196
|
-
|
201
|
+
# inactive markets
|
202
|
+
assert exchange_manager.exchange_config.traded_cryptocurrencies["Binance USD"] == []
|
203
|
+
|
204
|
+
sorted_pairs_without_redundancy = sorted(["BNB/USDT", "BNB/BTC"])
|
197
205
|
assert sorted(exchange_manager.exchange_config.traded_symbol_pairs) == sorted_pairs_without_redundancy
|
198
206
|
|
199
207
|
cancel_ccxt_throttle_task()
|
@@ -35,6 +35,7 @@ class RealExchangeTester:
|
|
35
35
|
SYMBOL = None
|
36
36
|
SYMBOL_2 = None
|
37
37
|
SYMBOL_3 = None
|
38
|
+
INACTIVE_MARKETS = []
|
38
39
|
# default is 1h, change if necessary
|
39
40
|
TIME_FRAME = commons_enums.TimeFrames.ONE_HOUR
|
40
41
|
ALLOWED_TIMEFRAMES_WITHOUT_CANDLE = 0
|
@@ -102,6 +103,14 @@ class RealExchangeTester:
|
|
102
103
|
# async def test_create_order(self):
|
103
104
|
# pass
|
104
105
|
|
106
|
+
def ensure_required_market_status_values(self, market_status):
|
107
|
+
assert market_status
|
108
|
+
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
109
|
+
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
110
|
+
assert market_status[Ecmsc.ACTIVE.value] \
|
111
|
+
is False if market_status[Ecmsc.SYMBOL.value] in self.INACTIVE_MARKETS else True
|
112
|
+
assert market_status[Ecmsc.PRECISION.value]
|
113
|
+
|
105
114
|
async def test_get_historical_ohlcv(self):
|
106
115
|
# common implementation, should always work if candles history is supported
|
107
116
|
historical_ohlcv = await self.get_historical_ohlcv()
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_ascendex.py
RENAMED
@@ -52,10 +52,7 @@ class TestAscendExRealExchangeTester(RealExchangeTester):
|
|
52
52
|
|
53
53
|
async def test_get_market_status(self):
|
54
54
|
for market_status in await self.get_market_statuses():
|
55
|
-
|
56
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
57
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
58
|
-
assert market_status[Ecmsc.PRECISION.value]
|
55
|
+
self.ensure_required_market_status_values(market_status)
|
59
56
|
# on AscendEx, precision is a decimal instead of a number of digits
|
60
57
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
61
58
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in AscendEx tentacle
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_binance.py
RENAMED
@@ -32,6 +32,7 @@ class TestBinanceRealExchangeTester(RealExchangeTester):
|
|
32
32
|
SYMBOL = "BTC/USDT"
|
33
33
|
SYMBOL_2 = "ETH/BTC"
|
34
34
|
SYMBOL_3 = "XRP/BTC"
|
35
|
+
INACTIVE_MARKETS = [SYMBOL_3]
|
35
36
|
|
36
37
|
async def test_time_frames(self):
|
37
38
|
time_frames = await self.time_frames()
|
@@ -55,10 +56,7 @@ class TestBinanceRealExchangeTester(RealExchangeTester):
|
|
55
56
|
|
56
57
|
async def test_get_market_status(self):
|
57
58
|
for market_status in await self.get_market_statuses():
|
58
|
-
|
59
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
60
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
61
|
-
assert market_status[Ecmsc.PRECISION.value]
|
59
|
+
self.ensure_required_market_status_values(market_status)
|
62
60
|
assert int(market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_AMOUNT.value]) == \
|
63
61
|
market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_AMOUNT.value]
|
64
62
|
assert int(market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_PRICE.value]) == \
|
@@ -59,10 +59,7 @@ class TestBinanceFuturesRealExchangeTester(RealFuturesExchangeTester):
|
|
59
59
|
|
60
60
|
async def test_get_market_status(self):
|
61
61
|
for market_status in await self.get_market_statuses():
|
62
|
-
|
63
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
64
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
65
|
-
assert market_status[Ecmsc.PRECISION.value]
|
62
|
+
self.ensure_required_market_status_values(market_status)
|
66
63
|
assert int(market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_AMOUNT.value]) == \
|
67
64
|
market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_AMOUNT.value]
|
68
65
|
assert int(market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_PRICE.value]) == \
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bingx.py
RENAMED
@@ -56,10 +56,7 @@ class TestBingxRealExchangeTester(RealExchangeTester):
|
|
56
56
|
|
57
57
|
async def test_get_market_status(self):
|
58
58
|
for market_status in await self.get_market_statuses():
|
59
|
-
|
60
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
61
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
62
|
-
assert market_status[Ecmsc.PRECISION.value]
|
59
|
+
self.ensure_required_market_status_values(market_status)
|
63
60
|
assert int(market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_AMOUNT.value]) == \
|
64
61
|
market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_AMOUNT.value]
|
65
62
|
assert int(market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_PRICE.value]) == \
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bitfinex.py
RENAMED
@@ -55,10 +55,7 @@ class TestBitfinexRealExchangeTester(RealExchangeTester):
|
|
55
55
|
|
56
56
|
async def test_get_market_status(self):
|
57
57
|
for market_status in await self.get_market_statuses():
|
58
|
-
|
59
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
60
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
61
|
-
assert market_status[Ecmsc.PRECISION.value]
|
58
|
+
self.ensure_required_market_status_values(market_status)
|
62
59
|
assert int(market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_AMOUNT.value]) == \
|
63
60
|
market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_AMOUNT.value]
|
64
61
|
assert int(market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_PRICE.value]) == \
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bitget.py
RENAMED
@@ -57,10 +57,7 @@ class TestBitgetRealExchangeTester(RealExchangeTester):
|
|
57
57
|
|
58
58
|
async def test_get_market_status(self):
|
59
59
|
for market_status in await self.get_market_statuses():
|
60
|
-
|
61
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
62
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
63
|
-
assert market_status[Ecmsc.PRECISION.value]
|
60
|
+
self.ensure_required_market_status_values(market_status)
|
64
61
|
# on Bitget, precision is a decimal instead of a number of digits
|
65
62
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
66
63
|
Ecmsc.PRECISION_AMOUNT.value] < 1 # to be fixed in Bitget tentacle
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bithumb.py
RENAMED
@@ -50,10 +50,7 @@ class TestBithumbRealExchangeTester(RealExchangeTester):
|
|
50
50
|
|
51
51
|
async def test_get_market_status(self):
|
52
52
|
for market_status in await self.get_market_statuses():
|
53
|
-
|
54
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
55
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
56
|
-
assert market_status[Ecmsc.PRECISION.value]
|
53
|
+
self.ensure_required_market_status_values(market_status)
|
57
54
|
assert int(market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_AMOUNT.value]) == \
|
58
55
|
market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_AMOUNT.value]
|
59
56
|
assert int(market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_PRICE.value]) == \
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bitso.py
RENAMED
@@ -49,10 +49,7 @@ class TestBitsoRealExchangeTester(RealExchangeTester):
|
|
49
49
|
|
50
50
|
async def test_get_market_status(self):
|
51
51
|
for market_status in await self.get_market_statuses():
|
52
|
-
|
53
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
54
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
55
|
-
assert market_status[Ecmsc.PRECISION.value]
|
52
|
+
self.ensure_required_market_status_values(market_status)
|
56
53
|
# on this exchange, precision is a decimal instead of a number of digits
|
57
54
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
58
55
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in this exchange tentacle
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bitstamp.py
RENAMED
@@ -53,10 +53,7 @@ class TestBitstampRealExchangeTester(RealExchangeTester):
|
|
53
53
|
|
54
54
|
async def test_get_market_status(self):
|
55
55
|
for market_status in await self.get_market_statuses():
|
56
|
-
|
57
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
58
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
59
|
-
assert market_status[Ecmsc.PRECISION.value]
|
56
|
+
self.ensure_required_market_status_values(market_status)
|
60
57
|
# on this exchange, precision is a decimal instead of a number of digits
|
61
58
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
62
59
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in this exchange tentacle
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_bybit.py
RENAMED
@@ -53,10 +53,7 @@ class TestBybitRealExchangeTester(RealExchangeTester):
|
|
53
53
|
|
54
54
|
async def test_get_market_status(self):
|
55
55
|
for market_status in await self.get_market_statuses():
|
56
|
-
|
57
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
58
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
59
|
-
assert market_status[Ecmsc.PRECISION.value]
|
56
|
+
self.ensure_required_market_status_values(market_status)
|
60
57
|
# on Bybit, precision is a decimal instead of a number of digits
|
61
58
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
62
59
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in Bybit tentacle
|
@@ -59,10 +59,7 @@ class TestBybitRealExchangeTester(RealFuturesExchangeTester):
|
|
59
59
|
|
60
60
|
async def test_get_market_status(self):
|
61
61
|
for market_status in await self.get_market_statuses():
|
62
|
-
|
63
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
64
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
65
|
-
assert market_status[Ecmsc.PRECISION.value]
|
62
|
+
self.ensure_required_market_status_values(market_status)
|
66
63
|
# on Bybit, precision is a decimal instead of a number of digits
|
67
64
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
68
65
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in Bybit tentacle
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_coinbase.py
RENAMED
@@ -50,10 +50,7 @@ class TestCoinbaseRealExchangeTester(RealExchangeTester):
|
|
50
50
|
|
51
51
|
async def test_get_market_status(self):
|
52
52
|
for market_status in await self.get_market_statuses():
|
53
|
-
|
54
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
55
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
56
|
-
assert market_status[Ecmsc.PRECISION.value]
|
53
|
+
self.ensure_required_market_status_values(market_status)
|
57
54
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
58
55
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in coinbase tentacle
|
59
56
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_coinex.py
RENAMED
@@ -53,10 +53,7 @@ class TestCoinexRealExchangeTester(RealExchangeTester):
|
|
53
53
|
|
54
54
|
async def test_get_market_status(self):
|
55
55
|
for market_status in await self.get_market_statuses():
|
56
|
-
|
57
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
58
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
59
|
-
assert market_status[Ecmsc.PRECISION.value]
|
56
|
+
self.ensure_required_market_status_values(market_status)
|
60
57
|
# on this exchange, precision is a decimal instead of a number of digits
|
61
58
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
62
59
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in this exchange tentacle
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_cryptocom.py
RENAMED
@@ -51,10 +51,7 @@ class TestCryptoComRealExchangeTester(RealExchangeTester):
|
|
51
51
|
|
52
52
|
async def test_get_market_status(self):
|
53
53
|
for market_status in await self.get_market_statuses():
|
54
|
-
|
55
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
56
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
57
|
-
assert market_status[Ecmsc.PRECISION.value]
|
54
|
+
self.ensure_required_market_status_values(market_status)
|
58
55
|
# on CryptoCom, precision is a decimal instead of a number of digits
|
59
56
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
60
57
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in CryptoCom tentacle
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_gateio.py
RENAMED
@@ -49,10 +49,7 @@ class TestGateIORealExchangeTester(RealExchangeTester):
|
|
49
49
|
|
50
50
|
async def test_get_market_status(self):
|
51
51
|
for market_status in await self.get_market_statuses():
|
52
|
-
|
53
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
54
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
55
|
-
assert market_status[Ecmsc.PRECISION.value]
|
52
|
+
self.ensure_required_market_status_values(market_status)
|
56
53
|
assert 1e-08 <= market_status[Ecmsc.PRECISION.value][
|
57
54
|
Ecmsc.PRECISION_AMOUNT.value] < 1 # to be fixed in tentacle
|
58
55
|
assert 1e-08 <= market_status[Ecmsc.PRECISION.value][
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_hitbtc.py
RENAMED
@@ -50,10 +50,7 @@ class TestHitBtcRealExchangeTester(RealExchangeTester):
|
|
50
50
|
|
51
51
|
async def test_get_market_status(self):
|
52
52
|
for market_status in await self.get_market_statuses():
|
53
|
-
|
54
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
55
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
56
|
-
assert market_status[Ecmsc.PRECISION.value]
|
53
|
+
self.ensure_required_market_status_values(market_status)
|
57
54
|
assert 1e-08 <= market_status[Ecmsc.PRECISION.value][
|
58
55
|
Ecmsc.PRECISION_AMOUNT.value] < 1 # to be fixed in hitbtc tentacle
|
59
56
|
assert 1e-09 <= market_status[Ecmsc.PRECISION.value][
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_hollaex.py
RENAMED
@@ -44,10 +44,7 @@ class TestHollaexRealExchangeTester(RealExchangeTester):
|
|
44
44
|
|
45
45
|
async def test_get_market_status(self):
|
46
46
|
for market_status in await self.get_market_statuses():
|
47
|
-
|
48
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
49
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
50
|
-
assert market_status[Ecmsc.PRECISION.value]
|
47
|
+
self.ensure_required_market_status_values(market_status)
|
51
48
|
assert 1e-08 <= market_status[Ecmsc.PRECISION.value][
|
52
49
|
Ecmsc.PRECISION_AMOUNT.value] < 1.0 # to be fixed in tentacle
|
53
50
|
assert 1e-08 <= market_status[Ecmsc.PRECISION.value][
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_htx.py
RENAMED
@@ -50,10 +50,7 @@ class TestHTXRealExchangeTester(RealExchangeTester):
|
|
50
50
|
|
51
51
|
async def test_get_market_status(self):
|
52
52
|
for market_status in await self.get_market_statuses():
|
53
|
-
|
54
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
55
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
56
|
-
assert market_status[Ecmsc.PRECISION.value]
|
53
|
+
self.ensure_required_market_status_values(market_status)
|
57
54
|
assert 1e-06 <= market_status[Ecmsc.PRECISION.value][
|
58
55
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in tentacle
|
59
56
|
assert 1e-09 <= market_status[Ecmsc.PRECISION.value][
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_kraken.py
RENAMED
@@ -49,10 +49,7 @@ class TestKrakenRealExchangeTester(RealExchangeTester):
|
|
49
49
|
|
50
50
|
async def test_get_market_status(self):
|
51
51
|
for market_status in await self.get_market_statuses():
|
52
|
-
|
53
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
54
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
55
|
-
assert market_status[Ecmsc.PRECISION.value]
|
52
|
+
self.ensure_required_market_status_values(market_status)
|
56
53
|
# on this exchange, precision is a decimal instead of a number of digits
|
57
54
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
58
55
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in this exchange tentacle
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_kucoin.py
RENAMED
@@ -54,10 +54,7 @@ class TestKucoinRealExchangeTester(RealExchangeTester):
|
|
54
54
|
|
55
55
|
async def test_get_market_status(self):
|
56
56
|
for market_status in await self.get_market_statuses():
|
57
|
-
|
58
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
59
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
60
|
-
assert market_status[Ecmsc.PRECISION.value]
|
57
|
+
self.ensure_required_market_status_values(market_status)
|
61
58
|
# on this exchange, precision is a decimal instead of a number of digits
|
62
59
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
63
60
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in this exchange tentacle
|
@@ -56,10 +56,7 @@ class TestKucoinFuturesRealExchangeTester(RealFuturesExchangeTester):
|
|
56
56
|
|
57
57
|
async def test_get_market_status(self):
|
58
58
|
for market_status in await self.get_market_statuses():
|
59
|
-
|
60
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
61
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
62
|
-
assert market_status[Ecmsc.PRECISION.value]
|
59
|
+
self.ensure_required_market_status_values(market_status)
|
63
60
|
# on this exchange, precision is a decimal instead of a number of digits
|
64
61
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
65
62
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in this exchange tentacle
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_mexc.py
RENAMED
@@ -50,10 +50,7 @@ class TestMEXCRealExchangeTester(RealExchangeTester):
|
|
50
50
|
|
51
51
|
async def test_get_market_status(self):
|
52
52
|
for market_status in await self.get_market_statuses():
|
53
|
-
|
54
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
55
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
56
|
-
assert market_status[Ecmsc.PRECISION.value]
|
53
|
+
self.ensure_required_market_status_values(market_status)
|
57
54
|
assert 1e-06 <= market_status[Ecmsc.PRECISION.value][
|
58
55
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in tentacle
|
59
56
|
assert 1e-09 <= market_status[Ecmsc.PRECISION.value][
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_ndax.py
RENAMED
@@ -53,10 +53,7 @@ class TestNdaxRealExchangeTester(RealExchangeTester):
|
|
53
53
|
|
54
54
|
async def test_get_market_status(self):
|
55
55
|
for market_status in await self.get_market_statuses():
|
56
|
-
|
57
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
58
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
59
|
-
assert market_status[Ecmsc.PRECISION.value]
|
56
|
+
self.ensure_required_market_status_values(market_status)
|
60
57
|
# on this exchange, precision is a decimal instead of a number of digits
|
61
58
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
62
59
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in this exchange tentacle
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_okcoin.py
RENAMED
@@ -33,10 +33,7 @@ class _TestOkcoinRealExchangeTester(TestOkxRealExchangeTester): #unreachable ?
|
|
33
33
|
|
34
34
|
async def test_get_market_status(self):
|
35
35
|
for market_status in await self.get_market_statuses():
|
36
|
-
|
37
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
38
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
39
|
-
assert market_status[Ecmsc.PRECISION.value]
|
36
|
+
self.ensure_required_market_status_values(market_status)
|
40
37
|
assert 1e-08 <= market_status[Ecmsc.PRECISION.value][
|
41
38
|
Ecmsc.PRECISION_AMOUNT.value] < 1 # to be fixed in tentacle
|
42
39
|
assert 1e-08 <= market_status[Ecmsc.PRECISION.value][
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_okx.py
RENAMED
@@ -53,10 +53,7 @@ class TestOkxRealExchangeTester(RealExchangeTester):
|
|
53
53
|
|
54
54
|
async def test_get_market_status(self):
|
55
55
|
for market_status in await self.get_market_statuses():
|
56
|
-
|
57
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
58
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
59
|
-
assert market_status[Ecmsc.PRECISION.value]
|
56
|
+
self.ensure_required_market_status_values(market_status)
|
60
57
|
assert 1e-08 <= market_status[Ecmsc.PRECISION.value][
|
61
58
|
Ecmsc.PRECISION_AMOUNT.value] < 1 # to be fixed in tentacle
|
62
59
|
assert 1e-08 <= market_status[Ecmsc.PRECISION.value][
|
@@ -53,10 +53,7 @@ class TestOkxFuturesRealExchangeTester(RealFuturesExchangeTester):
|
|
53
53
|
|
54
54
|
async def test_get_market_status(self):
|
55
55
|
for market_status in await self.get_market_statuses():
|
56
|
-
|
57
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
58
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
59
|
-
assert market_status[Ecmsc.PRECISION.value]
|
56
|
+
self.ensure_required_market_status_values(market_status)
|
60
57
|
assert 1e-08 <= market_status[Ecmsc.PRECISION.value][
|
61
58
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in tentacle
|
62
59
|
assert 1e-08 <= market_status[Ecmsc.PRECISION.value][
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_phemex.py
RENAMED
@@ -56,10 +56,7 @@ class TestPhemexRealExchangeTester(RealExchangeTester):
|
|
56
56
|
|
57
57
|
async def test_get_market_status(self):
|
58
58
|
for market_status in await self.get_market_statuses():
|
59
|
-
|
60
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
61
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
62
|
-
assert market_status[Ecmsc.PRECISION.value]
|
59
|
+
self.ensure_required_market_status_values(market_status)
|
63
60
|
# on Phemex, precision is a decimal instead of a number of digits
|
64
61
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
65
62
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in Phemex tentacle
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_poloniex.py
RENAMED
@@ -47,10 +47,7 @@ class TestPoloniexRealExchangeTester(RealExchangeTester):
|
|
47
47
|
|
48
48
|
async def test_get_market_status(self):
|
49
49
|
for market_status in await self.get_market_statuses():
|
50
|
-
|
51
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
52
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
53
|
-
assert market_status[Ecmsc.PRECISION.value]
|
50
|
+
self.ensure_required_market_status_values(market_status)
|
54
51
|
assert 1e-08 <= market_status[Ecmsc.PRECISION.value][
|
55
52
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in tentacle
|
56
53
|
assert 1e-08 <= market_status[Ecmsc.PRECISION.value][
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/tests_additional/real_exchanges/test_upbit.py
RENAMED
@@ -50,10 +50,7 @@ class TestUpbitRealExchangeTester(RealExchangeTester):
|
|
50
50
|
|
51
51
|
async def test_get_market_status(self):
|
52
52
|
for market_status in await self.get_market_statuses():
|
53
|
-
|
54
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
55
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
56
|
-
assert market_status[Ecmsc.PRECISION.value]
|
53
|
+
self.ensure_required_market_status_values(market_status)
|
57
54
|
# on this exchange, precision is a decimal instead of a number of digits
|
58
55
|
assert 0 < market_status[Ecmsc.PRECISION.value][
|
59
56
|
Ecmsc.PRECISION_AMOUNT.value] <= 1 # to be fixed in this exchange tentacle
|
@@ -55,10 +55,7 @@ class TestWavesExchangeRealExchangeTester(RealExchangeTester):
|
|
55
55
|
|
56
56
|
async def test_get_market_status(self):
|
57
57
|
for market_status in await self.get_market_statuses():
|
58
|
-
|
59
|
-
assert market_status[Ecmsc.TYPE.value] == self.MARKET_STATUS_TYPE
|
60
|
-
assert market_status[Ecmsc.SYMBOL.value] in (self.SYMBOL, self.SYMBOL_2, self.SYMBOL_3)
|
61
|
-
assert market_status[Ecmsc.PRECISION.value]
|
58
|
+
self.ensure_required_market_status_values(market_status)
|
62
59
|
assert int(market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_AMOUNT.value]) == \
|
63
60
|
market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_AMOUNT.value]
|
64
61
|
assert int(market_status[Ecmsc.PRECISION.value][Ecmsc.PRECISION_PRICE.value]) == \
|
File without changes
|
File without changes
|
File without changes
|
{OctoBot-Trading-2.4.76 → OctoBot-Trading-2.4.77}/OctoBot_Trading.egg-info/dependency_links.txt
RENAMED
File without changes
|