All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[aiohttp] add CounterClientSession
[ProfileData] add proxy_id [Constants] add CONFIG_EXCHANGE_ACCESS_TOKEN
[ProfileData] add exchange_id
[CommunityChannelTypes] add CONFIGURATION
[ExchangeAuthData] add exchange config when missing
ExchangeAuthData
[ExchangeAuthData] add exchange_type and sandboxed
ExchangeAuthData
[ProfileImport] add force_simulator param
[Config] remove custom restore file [Config] allow restore file copy failure
[Authenticator] update update_orders args
[Constants] CONFIG_EXCHANGE_UID
[ProfileData] TentaclesProfileDataTranslator
[Authenticator] wait_and_check_has_open_source_package
[OS] optional RAM watcher
[Profiles] handle registered tentacles in import
[Profiles] handle profile update
[CommunityChannelTypes] add TRADINGVIEW
ProfileData: added enable field on traded pairs
certify_aiohttp_client_session
ssl_fallback_aiohttp_client_session
PROFITABILITY to InitializationEventExchangeTopics
- usd_like_value from MinimalFund
- usd_like_value to MinimalFund
- ProfileData to profile dict portfolio
- File download: typo
- File download: add error text when possible
- File download: return last_modified
- dependencies
- logging callback
- Profiles: extra_backtesting_time_frames
- Enums: TRIGGER_HEALTH_CHECK
- Profiles: ProfileData import
- [Authenticator] use_as_singleton param
- [Config] handle malformed pairs
[Tree] clear [TimeFrames] get_last_timeframe_time
[TradingData] MinimalFund add from_value_dict
[TradingData] MinimalFund format
[enums] INITIAL_PORTFOLIO_OPTIMIZATION
[ProfileData] minimal_funds
[Signals] add sort_signals to builder
- [Authentication] update_orders
- [Constants] USD_LIKE_COINS
- [Config] save files issues
- [Config] exchange keys format error
- [FlexibleDataclass] add get_field_names
- [FlexibleDataclass] handle any type of field
- [Dataclasses] FlexibleDataclass
- [Logging] extra data to exceptions
- [Databases] is_hard_reset_error
- [Logs] set_enable_web_interface_logs
- [ProfileData] BacktestingContext
- [Authenticator] update_portfolio params
- ProfileData simplify content
- ProfileData format
- UpdatableDataclass
- ProfileData default values
- ProfileData config_name
- ProfileData
- Singletons: add remove methods
- DEPENDENCIES to UserInputOtherSchemaValuesTypes
- sqlite close error
- threadpool stop
- [SignalBundleBuilder] add logger
- make archive path
- setup.py
- setup.py
- Supported python versions
- [PrettyPrinter] decimal adapter
- [Enums] BacktestingMetadata
- [Databases] SQL: delete statement
- [PrettyPrinter] Adapt decimals to number
- [Databases] Auto-repair error
- [DisplayTranslator] config_by_tentacles
- [Databases] Auto-repair when necessary
- [TimeFrames] is_time_frame
- [Orders] historical orders update
- [AbstractTentacle] fix CLASS_UI
- [AbstractTentacle] add cython class and support for generalized user inputs
- [Profiles] add risk and complexity
- [Portfolio] improve portfolio pretty print
- [User Inputs] UserInputEditorOptionsTypes
- [Portfolio] add reference market value in pretty print
- [Logging] add handler-scope level update
- [Profiles] handle profiles sync error
- [PrettyPrinter] telegram lib import
- [Enums] Storage related enums
- [Profiles] Validate imported profiles
- [Databases] Debug logs
- [Config] Improve config files errors management
- [SystemResourcesWatcher] Enable resources dump in csv file
- [Databases] Raise FileNotFoundError on missing path
- [Enums] TriggerSource
- [Databases] Add account type
- [Databases] Create file only when necessary
- [ClockSynchronizer] Disable unnecessary warning
- [Authenticator] AccountUpdateError
- [Authenticator] register
- [Authenticator] update_trades and update_portfolio
- [DataUtil] typing issue
- [Profiles] handle invalid downloaded profiles
- [Profiles] load_profile
Numpy and Cython versions
- [Symbols] use cache for repetitive operations
- [Profiles] quite mode in install
- [DisplayTranslator] add_parts_from_other
- [ChronologicalReadDatabaseCache] reset_cached_indexes
- [Constants] increase MAX_BACKTESTING_RUNS
- Profile rename
- Profiles origin url
- OSUtil get_cpu_and_ram_usage on different platforms
- SystemResourcesWatcher
- [AsyncJob] add log on success after multiple failures
- [Profiles] allow exchange removal on multiple profiles at once
- [ClockSynchronizer] NotImplementedError in update loop
- [ClockSynchronizer] on docker
- [Profiles] install and update
- [SignalPublisher] octobot_commons.errors.MissingSignalBuilder
- [ClockSynchronizer] info log
- [ClockSynchronizer] Stop
- [Clock] ClockSynchronizer
- [UserInputFactory] add update_parent_value
- [FileSystemRunDatabasesPruner] handle no data error
- Symbol methods
- Cython Database
- User inputs
- Database pruner
- EventTree
- [EventTree] rename into BaseTree
- [Profiles] add imported attribute
- [Profiles] parse imported profiles
- [Databases] live id
- [AsyncTools] timeout param
- [Signals] Prevent double emit
- [Signals] Signals definition and publisher
- [Profiles] Do not share disabled exchanges
- [Authenticator] API
- [AsyncTool] API
- [Authenticator] API
- [Databases] add GlobalSharedMemoryStorage
- [Symbols] Symbol object
- [Config] exchange types
- [Databases] ChronologicalReadDatabaseCache set
- [PrettyPrinter] Orders and trades print
- [PrettyPrinter] Portfolio print
- [Enums] Remove clear cache command
- [Enums] Add databases enums
- [Enums] rename ActivationTopics#EVALUATORS into ActivationTopics#EVALUATION_CYCLE
- [Databases] Add filter to get_single_sub_identifier call
- [TradingSignals] feed bases
- [Authenticator] Use singleton
- [Databases] Cython imports
- [Databases] CacheClient
- [Databases] Document and relational databases
- DisplayTranslator, logical operators, multiprocessing_utils, optimization_campaigns
- Bump requirements
- [PrettyPrinter] Assets support
- [Configuration] Add merge_sub_array option in merge_dictionaries_by_appending_keys
- Bump requirements
- [Configuration] add dev_mode_enabled
- Bump requirements
- OS util: parse_boolean_environment_var method
- Singleton: get_instance_if_exists method
- ErrorContainer: print traceback
- Exchange CONFIG_EXCHANGE_SUB_ACCOUNT constant
- Error callback registration
- Error callback
- Async RLock
- authenticator
- bump requirements
- bump requirements
- loggers signatures
- authentication abstract class
- bump requirements
- [Profile import] Add replace current profile if exists parameter
- [Profile loading] Don't use 'default' as default profile
- [Profile loading] Load profiles only if possible and necessary
- Sentry usage until performance impact is measured
- Sentry disable
- Sentry error tracking
- aiohttp util : download_stream_file
- is_machine_64bit and is_arm_machine to os_util
- Github constants
- METRICS_URL constant (issue created on 1.5.12)
- METRICS_URL constant
- Symbols wildcard constant
- metrics url
- Tentacles user commands
- PriceStrings in enums
- Python 3.9 support
- Aarch64 build on DroneCI, now build with github actions
- cython requirement
- numpy requirement
- numpy requirement
- Profiles duplication path
- Profiles import
- Profiles management
- trading configuration keys import
- migrate trading config keys into octobot-commons
- requirements: removed telegram requirement
- config.json test file
- Thread util module
- Remove multi-session-profitability from default config
- Number pretty printer
- Metrics url
- CI to github actions
- Numpy requirements
- Requirements
- disable method on BotLogger
- Release process
- Python 3.8
- Requirements
- Imports
- AsyncJob exception handling
- AsyncJob timers
- AsyncJob
- Requirements
- Fix pretty printer typing issue
- search_class_name_in_class_list from tentacles manager
- Requirements
- Errors counter
- Requirements
- Asyncio tools ErrorContainer
- Asyncio tool wait_for_task_to_perform
- get_password_hash
- Cython version
- Take config schema as argument in config management
- Cython header
- Requirements
- [Enums] ChannelConsumerPriorityLevels
- [PrettyPrinter] Fix trade_pretty_printer cython header
- [Logging] Fix get_backtesting_errors_count cython header
- [ConfigUtil] Decrypt util function
- [CI] Azure pipeline
- [CI] macOs build on travis
- [CI] Appveyor builds
- Telegram requirements
- OctoBotChannel subjects enum
- Evaluators channels name
- OctoBot channel name
- improve asyncio ErrorContainer
- asyncio ErrorContainer
- asyncio ErrorContainer
- Logging_util compiled errors
- Logging_util cython headers
- time_frame_manager cythonization and tests
- symbol_util cythonization
- [EventTree] Events management
- list_util file with flatten_list method
- Pylint and Black code style checkers
- Code style issues
- Singleton annotation
- get_value_or_default replaced by native dict.get
- Cython requirement
- [DataUtil] Improve shift implementation
- Evaluators channel name
- [EventTree] node value time
- [EventTree] event clearing too early
- [EventTree] syntax
- AbtractEvaluator default description
- Missing constant
- AbstractTentacle cythonization
- Wildcard imports
- Tentacles management to include OctoBot-tentacles-manager
- [Requirement] cython to 0.29.16
- [Requirement] numpy to 0.18.2
- [Requirement] jsonschema to 3.2.0
- [Requirement] python-telegram-bot to 12.4.2
- Liquidations, Mini ticker and Book ticker Channels name
- Datetime to timestamp conversion
- Funding Channel name
- Margin Portfolio key
- Error message to exception logger
- Trade prettyprinter format
- shift_value_array function to shift a numpy array
- Cythonized numpy array functions
- Error notifier callback
- Minimal time frame is now 1 min
- Update pretty_printer for the new Trade attributes
- Pretty printer cryptocurrencies alert refresh
- MarkdownFormat comparison error
- Asyncio run_coroutine_in_asyncio_loop method
- External resources management
- Tentacle and classes management utility methods
- Configuration file management
- Pretty printer typo fix
- Tests from OctoBot < 0.4.0
- Number Util float rounding method
- Evaluators_util cython compilation
- TimeFrameManager static methods to function only
- DataUtil static methods to function only
- Evaluator_util check_eval_note returns only boolean
- Travis build stage
- Makefile
- SegFault : Temporary disable abstract_tentacle cython compilation
- EventTree NodeExistsError exception
- EventTree methods relative node param
- EventTree get without creation method
- EventTree with EventNode classes
- tests EventTree methods
- Cython version to 0.29.14
- OSX support
- OS tools
- Code cleanup
- Appveyor CI
- PyPi manylinux deployment
- Install with setup
- Advanced Manager new search methods
- Time constants
- Inspector deep method by subclasses
- Inspector method by subclasses
- Setup installation
- class_inspector default_parents_inspection method
- class_inspector cython compilation
- 'default_parent_inspection' to public
- TIME_CHANNEL to backtesting names
- is_valid_timestamp method exception
- Adapted config manager from OctoBot core
- Tentacle config manager
- Abstract tentacle pxd file
- Advanced manager class
- Generify & cythonize advanced_manager
- Evaluator util
- Future tentacles constants declaration
- Abstract tentacle cython declaration
- OctoBot custom errors (can be used to except elsewhere)
- Tentacles commons constants
- Common channels name
- Singleton Class instances attribute declaration
- Singleton Class implementation
- Singleton Class
- Cython compilation
- Moved singleton.py to singleton/singleton_annotation.py
- AdvancedManager fully split Evaluators and Trading tentacles classes list initialization
- ConfigManager from OctoBot main repository
- AdvancedManager tentacle initialization is now splitted between Evaluators and Trading
- Constants from OctoBot-Tentacles-Manager
- Tentacles management imports to prepare OctoBot-Tentacles-Manager migration to commons
- Config load methods
- 6h time frame in TimeFrames enums
- Adapt pretty printer to OctoBot-Trading callbacks (exchange name)
- Updated order and trade instance getters/property compatibilities
- Catch split_symbol index error exception
- Encrypt and decrypt functions
- Config util
- Data util
- Numpy requirement
- Trading constants from OctoBot constants
- TimeFrames enums
- TimeFrame manager
- dict util methods
- Initializable class
- pretty printer
- convert_symbol new optionnal parameter should_lowercase with False as default value
- convert_symbol method to manage separator between symbol formats
- merge_currencies with a new additional parameter "separator" with MARKET_SEPARATOR as default value
- Manifest
- Symbol utils
- Initializable class