Freqtrade Versions Save

Free, open source crypto trading bot

2023.6

10 months ago

Highlighted changes

  • New command freqtrade lookahead-analysis - Detect if your strategy has a lookahead bias, tainting backtesting results!
  • minimal_roi can now be empty, allowing to fully disable ROI functionality.
  • Fixed some odd behavior with OKX stoploss on exchange orders.
  • Add Pairlist generator (including live evaluation) in webserver mode.
  • Update docker images to Python 3.11.
  • FreqAI
    • Convert data preparation into a pipeline, allowing for easy customizations.

How to update

As always, you can update your bot using one of the following commands:

docker-compose

docker-compose pull
docker-compose up -d

Installation via setup script

# Deactivate venv and run 
./setup.sh --update

Plain native installation

git pull
pip install -U -r requirements.txt
Expand full changelog
7ba459db8 Version bump to 2023.6
092e30a15 Attempt CI without brew update
977bfa08b Bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7
ba6cba31b Bump fastapi from 0.98.0 to 0.99.1
1880f9ffa Bump ast-comments from 1.0.1 to 1.1.0
0310a26b8 Fix documentation typo
29725440c Simplify RPCMessageType schema definition
accc1b509 Simplify class setups without inheritance
4b06b4772 sqlalchemy - pre-commit
b12dbd2be Bump ruff from 0.0.272 to 0.0.275
be07ea5d4 Bump mypy from 1.3.0 to 1.4.1
6b201d525 make sure default PCA behavior reduces parameter space size
8c2098c26 Bump fastapi from 0.97.0 to 0.98.0
6274197f8 Bump sqlalchemy from 2.0.16 to 2.0.17
ae42d57a2 Bump pytest from 7.3.2 to 7.4.0
2d2699b0a Bump mkdocs-material from 9.1.16 to 9.1.17
fec4cb3cf Bump nbconvert from 7.5.0 to 7.6.0
1717f8670 Extract edge output to proper module
72504e62a Extract btstorage methods
65e835990 Improve naming of new file
794bca137 Split optimize report generation from visualization
5e084ad2e convert optimize_reports to a package
fca73531c fix: use .shape instead of index for outliers
9da28e532 bump datasieve
fd420738c ensure outlier-check is returning as a numpy array from datasieve
48e896532 Don't add header if it's not needed
5f98530ef Catch and send exceptions from websockets
69087c30e Don't overwrite "type" with a variable
757c6dc5c Use Self typing
01dfca80a Improve stop test behavior
2f7b29ed3 Fix test_tsl_on_exchange_compatible_with_edge
b49a11876 Fix exit_timeout test
c7683a7b6 Improve docs wording
5d60c6264 align list blocks
96c2ca67e Add usage note for pairs.json file
b0e5fb394 Improve structure of download-data documentation
8c54036fa Move Downloading tip from pairs file section
859f7ff3d be explicit when loading pairs file.
6bc3439cb Bump pytest-mock from 3.10.0 to 3.11.1
e965b2e45 Bump rich from 13.4.1 to 13.4.2
d82a0ad7b Bump ccxt from 3.1.34 to 3.1.44
f04598c5e Bump pre-commit from 3.3.2 to 3.3.3
f82d52c6d Bump xgboost from 1.7.5 to 1.7.6
fc0548ce0 Bump filelock from 3.12.1 to 3.12.2
8cc763b66 Bump time-machine from 2.9.0 to 2.10.0
ed90e77ea Bump nbconvert from 7.4.0 to 7.5.0
1eb691d46 Bump mkdocs-material from 9.1.15 to 9.1.16
571dea6e9 Fix wrong final status on bg-tasks
cca4fa117 Update BaseClassifierModel.py
7e2f857aa Update BasePyTorchClassifier.py
52db6ac7d Use proper log level
d94f3e767 Add explicit tests for download-data
7af14d198 Fix random test failure
44a38e836 Update download data tests
0be4084ea Don't allow downloading wrong pairs
937734365 Improve typehint for markets
66b34edc0 Clarify variable name
6f0f95468 Adjust mocks for new import location
7453ff2fb Migrate download-data out of commands section
b8ab6fe42 Improve wording of check command
e0d5242a4 Reduce download-data verbosity
886b86f7c chore: bump datasieve
b0ab400ff fix: ensure test_size=0 is still accommodated
bf872e8ed Simplify comparison depth
11ff454b3 fix: ensure that a user setting up their own pipeline wont have conflicts with DI_values
6bb75f0dd Simplify import if only one element is used
1567cd284 Use DOCS_LINK throughout
34e7e3efe Simplify imports
2c7aa9f72 Update doc wording
24e806f08 Improve resiliance by using non-exchange controlled order attributes.
7939716a5 Improve formatting of telegram /status messages
4f834c896 Remove old version pin for catboost
ffd7394ad Update freqai.md
2107dce2c Update freqai-feature-engineering.md
72101f059 feat: ensure full backwards compatibility
75ec19062 chore: make DOCS_LINK in constants.py, ensure datasieve is added to setup.py
64fcb1ed1 Better pin scikit-learn
dec3c0f37 Remove environment.yml completely
1b86bf8a1 Don't include non-used parameters in command structure
2cd9043c5 Make documentation discoverable / linked
b3ef024e9 Don't use PurePosixPath
964bf7646 Invert parameters for initialize_single_lookahead_analysis
ad74e6567 Simplify configuration setup
ac36ba659 Improve arguments file formatting
ca88cac08 Remove unused code file
11d7e7925 Fix random test failures
9a7794c52 Improve behavior for when stoploss cancels without content
1a4d94a6f OKX stop should convert contracts to amount
1e44cfe2f Improve stoploss test
e763e2ad3 Bump ccxt from 3.1.23 to 3.1.34
1beaf6f05 Bump plotly from 5.14.1 to 5.15.0
21949c044 bump sqlalchemy pre-commit
2e087750e Bump fastapi from 0.96.0 to 0.97.0
7172bc0af Bump orjson from 3.9.0 to 3.9.1
feb6e5c46 Bump urllib3 from 2.0.2 to 2.0.3
8b27b408c Bump ruff from 0.0.270 to 0.0.272
a9515dee8 Bump pytest from 7.3.1 to 7.3.2
71064c02e Bump sqlalchemy from 2.0.15 to 2.0.16
66dc1fd33 Bump filelock from 3.12.0 to 3.12.1
7542909e1 Bump stable-baselines3 from 2.0.0a10 to 2.0.0a13
a39f23a5c Bump pydantic from 1.10.8 to 1.10.9
663cfc621 fixing tests
bdb535d0e add maskable eval callback multiproc
5dee86eda fix action_masks typing list
c36547a56 add maskable eval callback
afd54d39a add action_masks
5844756ba Add test and fix for stop-price == limit price
4a800fe46 Add explicit test for get_stop_limit_rate
320b3e20a Use correct variable for candle-type when loading data
fc11c79b7 Fix not working date format output
87e144a95 Update webserver tags
9ef814689 Update endpoint in rest-client
1da1972c1 added test for config overrides
e332fbfb4 Add explicit test for okx get_stop_params
280611086 Add explicit test for okx cancel_stop
cfe88f06d Improve behavior of okx rebuys when using stop on exchange
ad8a4897c remove unnecessary example in feature_engineering.md
229ee643c revert change to deal with FT pinning old scikit-learn version
41e37f9d3 improve docs, update doc strings
d9bdd879a improve migration doc
f8d7c2e21 add migration guide, add protections and migration assistance
4cdd6bc6c avoid using ram for unnecessary train_df, fix some deprecation warnings
e24625979 avoid manual pipeline validation
3523f564b Improve Log reduction and corresponding test
265d782af Implement the requested changes.
94ca2988a updated docs
6656740f2 Moved config overrides to its' own function Added config overrides to dry_run_wallet and max_open_trades to avoid false positives.
99842402f Further reduce unnecessary output
16b336397 Fix type problem
b89390c06 Reduce log verbosity during bias tester runs
fc8c6b06a Extract set-log-levels from main logging module
e3056b141 Move logging tests to dedicated test file
05ea36f03 Fix performance when running tons of backtests
6b736c49d Dont persist Backtesting to avoid memory leak
33b028b10 ensure data kitchen thread count is propagated to pipeline
88337b6c5 convert to using constants in data_drawer. Remove unneeded check_if_pred_in_spaces function
e39e40dc6 improve documentation of pipeline building/customization
317e0b5f2 Avoid nested loops in telegram for force* scenarios
f81139b97 Bump python from 3.10.11-slim-bullseye to 3.11.4-slim-bullseye
14557f2d3 merge develop into outsource-data-pipeline
c066f014e fix docs
6d39adc73 bump datasieve version
135aaa2be update docs, improve the interaction with `define_data_pipeline`
dc577d2a1 update to new datasieve interface, add noise to pipeline
4d4589bec fix isort in tests
f7f88aa14 fix pickle file name
5ac141f72 convert to new datasieve api
0b8ef1b88 Fix devcontainer invalid key
c269eef77 Remove unnecessary calc_profit_ratio call
21172802d Devcontainer image should contain as many dependencies as possible
6ec91d11a Bump ccxt from 3.1.13 to 3.1.23
4dcb6395e Bump pre-commit requests types
e61659a2b Bump mkdocs-material from 9.1.14 to 9.1.15
c2125698a Bump types-requests from 2.31.0.0 to 2.31.0.1
093181e8f Bump pandas from 2.0.1 to 2.0.2
bdaf230bd Bump orjson from 3.8.14 to 3.9.0
9dcab313b Bump rich from 13.3.5 to 13.4.1
c9bbeedd8 Bump fastapi from 0.95.2 to 0.96.0
94bc91ef5 Update tests/freqai/test_freqai_datakitchen.py
7a726da69 Update cached binance leverage tiers
71b81ee7c Add margin_mode to pairlists callback
12e31208e Update typedDict type used with pydantic
ac7419e97 Split trademode response value into trade_mode and margin-mode
72f4e1475 Bump api version
74254bb89 Add /exchanges endpoint to list available exchanges
54bf1634c Refactor validExchangesType to separate types package
6f928b826 Update types for build_exchange_list_entry
cc04f3279 bump pre-commit mypy version
fcb960185 Clarify function naming
250ae2d00 Enhance list-exchanges with more information
b5d101777 Update list_exchanges to use a dict internally
e890bc071 Don't bump pi version, but bump regular version
10ea2b44c Update test line length
d9d173533 Extract ExchangePayload updating
48328fb29 reset candle_type_def
49c0fdf36 Bump cryptography from 40.0.1 to 41.0.0
ac046d6a2 Allow setting the exchange explicitly
af16ce874 Allow webserver mode to cache multiple exchanges
e2594e749 Align tests to use webserver mode
77e3e9e89 Move pairlists and background tasks API's to separate file
565c0496d Bump httpx min requirement
d0f900f56 set HTTPX level to warning
30dd63fcb Update freqai.md
8aee368f6 auto-inject webserver mode dependency
e0d9603e9 Raise correct httperrorcode for webserver-only endpoitns
88ecb935b Add "failed" state to bgjob task response
9c6fee384 Enable gate futures for spread-filter again
5fc8426b9 Improve handling of order cancelation failures with force_exit
430cd24bb Invert order (exit trade 3 before trade 4)
08d040db1 Slightly update force_exit test
5311614d5 Update force exit wording
193d88c9c Double-check cancelling stop order didn't close the trade
1f543666f Improve test for reload-markets timings, fix bug
fd955028a Update tests for new background method
7bccf2129 Introduce background_job endpoints
f6a32f4ff bump version
b666c418b Don't use variables for simple debug values
af1dbf7df Extract get_rate_from_ticker from get_rate method
f074383d6 Extract orderbook logic into separate method
785f0d396 bump datasieve version
6315516d5 Improve volumepairlist defaults
623780681 bump datasieve to 0.0.8
e57265361 bring classifier/rl up to new paradigm. ensure tests pass. remove old code. add documentation, add new example transform
9f1bdc19a Bump ruff pre-commit version
35836479d Bump requests pre-commit dependency
cb7a0f9bf Bump orjson from 3.8.12 to 3.8.14
90808683e Bump ruff from 0.0.269 to 0.0.270
8fdec5f3a Bump ccxt from 3.1.5 to 3.1.13
4e9a43ebf Bump cachetools from 5.3.0 to 5.3.1
3bc390cb2 Bump types-requests from 2.30.0.0 to 2.31.0.0
12af6ea76 Bump pytest-cov from 4.0.0 to 4.1.0
51ba4d14e Bump pydantic from 1.10.7 to 1.10.8
6b3b5f201 export_to_csv: Added forced conversion of float64 to int to remove the .0 values once and for all ...
eec783716 - modified help-string for the cli-option lookahead_analysis_exportfilename - moved doc from utils.md to lookahead-analysis.md and modified it (unfinished) - added a check to automatically edit the config['backtest_cache'] to be 'none' - adjusted test_lookahead_helper_export_to_csv to catch the new catching of errors - adjusted test_lookahead_helper_text_table_lookahead_analysis_instances to catch the new catching of errors - changed lookahead_analysis.start result-reporting to show that not enough trades were caught including x of y
1317de8c1 Add rudimentary description per pairlist
8a8616925 Better handling of shift
8ec0469b1 Fix volatilityfilter behavior
9bb25be88 modified help-string for the cli-option lookahead_analysis_exportfilename moved doc from utils.md to lookahead-analysis.md and modified it (unfinished) added a check to automatically edit the config['backtest_cache'] to be 'none'
0ed84fbcc added test_initialize_single_lookahead_analysis
a7426755b added a check for bias1. Looking at has_bias should be enough to statisfy the test. The tests could be extended with thecking the buy/sell signals and the dataframe itself - but this should be sufficient for now.
df5e6409a Bump develop version to 2023.6-dev
5649d1d4d Convert minimal_roi to list comprehension
36c82ad67 Update documentation for min_roi
35a388bf9 Don't force min_roi to have content
636298bb7 added test_lookahead_helper_export_to_csv
31e19add2 start transition toward outsourcing the data pipeline with objective of improving pipeline flexibility
eb31b574c added returns to text_table_lookahead_analysis_instances filled in test_lookahead_helper_text_table_lookahead_analysis_instances
af7afa80a remove gone-wrong import
9e75c768c Improve responses for evaluate get endpoints
4c52109fa Handle pairlist evaluation errors gracefully
33e25434b Change statuscode to 202
756e1f5d5 Test pairlist evaluation
01984a06a Extract pairlist evaluation from sub-method
7cc8da23c Update test for available pairlist
818a3342b move pairlist evaluation to the background
680e7ba98 Get exchange through DI
70a0c2e62 Fix test mishap
3e6a2bf9b Add parameters for analysis tests ...
104fa9e32 Use logger, not the logging module
e73cd1487 Add somewhat sensible assert
9869a2195 Move strategy to it's own directory to avoid having other
3f5c18a03 Add some tests as todo
e18370797 Further test lookahead_helpers
ceddcd924 Move most of the logic to lookahead_analysis helper
d8af0dc9c Slightly improve testcase
1c4a7c7a0 Split Lookahead helper to separate file
7b9f82c71 Remove needless check for "None" list
209eb63ed Add startup test case
2e675efa1 Initial fix - test
073dac8d5 Move lookahead analysis tests to optimize subdir
a0edbe479 Switch to using config instead of args.
2e79aaae0 Remove usage of args.
5488789bc Arguments should be in the configuration.
7d871faf0 added exportfilename to args_to_config introduced strategy_test_v3_with_lookahead_bias.py for checking lookahead_bias# introduced test_lookahead_analysis which currently is broken
91ce1cb2a removed overwrite_existing_exportfilename_content (won't use it myself, wouldn't make sense for others to not overwrite something they re-calculated) switched from args to config (args still work) renamed exportfilename to lookahead_analysis_exportfilename so if users decide to put something into it then it won't compete with other configurations
b252bdd3c made purging of config.freqai.identifier variable
2306c74dc adjusted code to matthias' specifications
5abd616ae Fix disrepancy in freqai doc code example
877d53f43 Add airlists test endpoint (so pairlist configurations can be tested)
3d4be92cc Add option pairlist parameter type
c5bf02970 Better type response
9e4f9798e Add pairlist "is-generator" to api
3ef2a57bc Add "is_pairlist_generator" field to pairlists
e20b94d83 Add more filter param descriptions
4636de30c Improve pairlistparam types
2ea157d9d Add some more pairlist parameter definitions
987da010c Start pairlist parameter listing
5ad352fdf add /pairlists to rest client
2df80fc49 Add /pairlists endpoint to api
2b416d3b6 - Added a first version of docs (needs checking) - optimized pairs for entry_varholder and exit_varholder to only check a single pair instead of all pairs. - bias-check of freqai strategies now possible - added condition to not crash when compared_df is empty (meaning no differences have been found)
767442198 saving and updating the csv file now works open ended timeranges now work if a file fails then it will not report as non-bias, but report in the table as error and the csv file will not have it listed.
a9ef4c3ab partial progress commit: added terminal tabulate-output added yet non-working csv output using pandas
7bd55971d strategy_updater: removed args_common_optimize for strategy-updater
d12a7ff18 freqtrades' merge broke my side, fixed it by porting it over to my develop branch, no changes with this commit logic-wise.

2023.5.1

11 months ago

Bugfix release, fixing a bug causing increased CPU load and unnecessary calls to the API, potentially exhausting ratelimits.

Highlighted changes (2023.5)

  • Improved balance display (incl. new telegram variant /balance full)
  • Recover trades when asset is sold on Exchange (intentionally, or through liquidation).
  • New argument --rejected for backtesting-analysis, allowing analysis of rejected signals.
  • Add full support for Python 3.11 (setup.sh, …)
  • Enhanced freqUI plot Configurator.
  • Add support for area Charts in freqUI.
  • Better protect API keys by no longer exposing them to the strategy.
  • FreqAI:
    • New Torch Transformer model (PyTorchTransformerRegressor).
    • Updated dependencies, including 3.11 support.
    • Use freqUI charts to visualize backtesting results also for freqAI strategies.
    • Tensorboard logging now available for all PyTorch and XGBoost models.

How to update

As always, you can update your bot using one of the following commands:

docker-compose

docker-compose pull
docker-compose up -d

Installation via setup script

# Deactivate venv and run 
./setup.sh --update

Plain native installation

git pull
pip install -U -r requirements.txt
Expand full changelog
2ea287958 Bump version to 2023.5
bd266f654 Properly handle invalid pairlists type before config validation
f647fb342 Update base_tensorboard.py
9e9f9b21e Bump stable-baselines3 from 2.0.0a9 to 2.0.0a10
b5ed693be Extrac OKX convert stop order, call for regular orders, too
b8220ee0f Improve recovery detection by skipping open orders
a0336c83c Update method casing in tests
6efc62e4c Add test which verifies #8680 won't happen again
6292d1af6 Use camelcase version of private fapi method
9ffdaceef Bybit - use Proxy
1e10b25e3 Bump requests from 2.30.0 to 2.31.0
44bdac5e8 Improve developer docs with some minor improvements
d26aa231f Stable baselines updates, and fix
2242d544f Bump ruff from 0.0.267 to 0.0.269
ad5f0307b bump sqlalchemy precommit
96eb109b4 Bump mkdocs-material from 9.1.12 to 9.1.14
ae52ce8cd Bump sqlalchemy from 2.0.13 to 2.0.15
811198cc3 Bump pre-commit from 3.3.1 to 3.3.2
4e3de64c5 Bump fastapi from 0.95.1 to 0.95.2
8c866abad Bump ccxt from 3.0.103 to 3.1.5
68ab147f5 Bump cachetools from 4.2.2 to 5.3.0
abc82a3fd Simplify api backtesting by extracting the background_method
a87b215d6 Fix odd import
914195acf Ensure one test can't fail 20 others
96d74063f Don't have public attributes marked as private
531622721 Extract api backtest logic from ApiServer class
c4c0371ed add docker comment to docker usage freqai doc section
a2cbe5df0 Remove trailing spaces
0d4010a0b Add sample docker-compose file for freqAI, comment about that
9d0f488de Some more edits due to arrow
707c6744b Fix doc and example indentation
ebfc9a603 Remove some humanize occurances
5d0cff2f7 Add dt_humanize helper
f657d06e9 Move shorten_date to datetime helpers
b40c45ee4 Timerange -> datetime
adcf75134 Bump min-requirement of arrow
261822147 Fix remaining arrow testcases
3ec55885b Remove arrow from more tests
9421ca262 Remove arrow from test_persistence
3a4d103bc Properly check wallets with new type
7a2ff6025 Fix more tests
915cb5ffb add dt_utc helper
c0713eb77 More tests to dt_helpers
29fdcdbf5 reduce arrow in tests
d131dd405 Fix wrong transition
cfae98ae0 dt_now for tests
e4f701fd0 Don't use arrow for everything
5b66ef4be Implement datetime.floor
7f73e9943 Simplify exchange_utils
55ce58d79 Reduce some arrow usages in favor of dt helpers
000f72942 Improve dt_now_ts helper
aa949153e Add now ts helper
5c6f3ea43 Improve wallets time handling
261df527d dt_now
6b735bc68 Implement dt_now
6044bbb6b Add datetime helpers to unify code
2477ef57f Reduce arrow usage throughout code
1d03e8bc5 Reduce arrow usage further
d3382fbe0 Reduce usage of arrow
292bd6297 Reduce verbosity of httpx (we don't need to see telegram calls)
adeab13bd cleanup tests, cross fingers that mac will pass
2ab732480 Ensure pi image can be built
45ee12e25 reload_trade should be a post endpoint
bb760a47d Bump pymdown-extensions to 10.0.1
61ea3d817 Bump pymdown-extensions from 9.11 to 10.0 in /docs
7d15c379c Fix faulty removed import
c7f7dd1d4 Avoid unnecessary type ignore
1b714fdb0 Fix wrong "first trade" date in UI, improve interface
9b1028789 Improve typing
3a0e123c6 Bump pre-commit sqlalchemy
ef15b7b3d pre-commit dateutil types
28905885e Bump sqlalchemy from 2.0.12 to 2.0.13
68f67c5ae Test proper removal of exchange keys
c242d89cd Improve test format
66c3eb282 Remove keys from config before loading strategy
b2a631e93 refactor remove_exchange_credentials
fe36e7741 Split exchange_config before passing through the strategy
fffb056ad load_exchange - force kwargs for non-required arguments
0ea47118e Create test Utils package
dd7624539 Bump ruff from 0.0.265 to 0.0.267
acdd50aad Bump torch from 2.0.0 to 2.0.1
33a0ed67d Bump pyjwt from 2.6.0 to 2.7.0
f21a7a25d Bump types-python-dateutil from 2.8.19.12 to 2.8.19.13
5f01b823d Bump mkdocs-material from 9.1.10 to 9.1.12
b0e7b4395 Bump ccxt from 3.0.97 to 3.0.103
675ab840f Bump mypy from 1.2.0 to 1.3.0
a225ab71e revert file count
9242dfa35 try reactivating tb for some tests
505f36a95 try even more deactivation
1ed084557 try even more deactivation
73e9047cd try to deactivate any test that has a callback
340d2191f deactivate tensorboard by default
55a1a3afd add config option for activating and deactivating tensorboard logger, ensure the various flavors are never activated simultaneously
ab7a474ab try limiting tb_logger to pytorch only (XGBoost still gets its callback)
af8fbad28 Improve Date timezone useage
bbce73852 Improve tests around timezone
66a97ff45 Remove some utcnow usages
726627976 Improve docs around pytho 3.11
784087384 darwin excludes must use "sys_platform"
838fbb76a Improve version constraints
106db716f Force smaller catboost version on 3.8 macos
e76356aff Bump catboost to 1.2, disable some constraints
0db186935 Update cached binance leverage tiers
dc4268b6e Convert Exchange arguments to be kw only
af95d56ce Import deepcopy specifically
0d4010c38 maint: Remove faulty config setting from default_conf
18c1eda09 remove commented lines
2ec1302c1 add warnings in the doc for users to better understand the limitations of continual_learning
fad1c1985 add warnings in the doc for users to better understand the limitations of continual_learning
3ae3cc63d fix bug in continual_learning for PyTorch* models
d50e221e6 Update active ccxt.futures test init
1552d81f4 Simplify load_exchange interface
b2a3fe687 Improve remove credentials
ab0f9d78e Mock tensorboard callbacks for all freqAI tests
23e8932a4 Mock tensorboard callbacks
400cbd183 Fix types
871f1aabb Use tensorboard fallback for mac tests
6d7172ac4 Re-add init file
49b9b463b Move tensorboard callback exports to freqai.tensorboard.
43213cc6f Revert testing Reinforcement lerning on Mac
6e5a9fe4c mac strikes again
ca7ad8a49 good old macos
8261c988b try to fix mac CI
db0645ed1 add helpful hints for reward creation
31d15da49 add disclaimers everywhere about how example strategies are meant as examples
692fa390c fix the import logic, fix tests, put all tensorboard in a single folder
6000e6842 bump ccxt min dependency
1d3687893 Bump min-requirements for python-telegram bot
b970ddeb6 Fix unused import
f7179f7c9 Fix last test with dependency on local user_data dir
1c1005247 Don't hardcode user_data in tests
963ff8c62 Run Repo check on windows, too.
395bf4919 Run Repo-check for macOS, too
2ecd63234 Remove git status again
bd6d4d5d2 Event-name for concurrency group?
1ec1abdc3 Fix syntax
800c6223e Quote concurrency group
3ba1eb6ba Improve concurrency group
c60c4b9ab Update user_dir fixture to return user_data path
7e023419d Auto-mock user_dir to tmpdir
a74a081e6 Check for repository changes
6df5cb887 add install requirement to tensorboard doc
b01aaa4d0 ensure backtesting also produces tb_logs, make sure tests are working
242247be4 Fix var name
ffc4d8726 add tensorboard integration to XGBoost and PyTorch et al
3a7e41e17 Update rest_client.py
d9cc45851 Properly enable pytorch tests
2c0230ba9 avoid mutating new_trained_timerange
35ce88f1e ensure that the buffered timerange is not the trained timestamp so that live_retrain_hours functions properly
55777eba7 Add pre-build arm wheel for pyarrow
f2a65437a Bump ccxt from 3.0.85 to 3.0.97
5a27245fc Bump pyarrow from 11.0.0 to 12.0.0
3e3945390 Bump urllib3 from 1.26.15 to 2.0.2
7e31cc410 Bump mkdocs-material from 9.1.9 to 9.1.10
591a51e4b Bump nbconvert from 7.3.1 to 7.4.0
9d7c90e9d Bump pre-commit from 3.2.2 to 3.3.1
395223221 Bump pre-commit requests types
e0c63e12e Bump mkdocs-material from 9.1.8 to 9.1.9
10604bf49 Run Torch tests on 3.11
75e5f325a Bump ruff from 0.0.263 to 0.0.265
bf7c52a9e Bump types-requests from 2.29.0.0 to 2.30.0.0
7bd33be8f Bump python-telegram-bot from 20.2 to 20.3
68a37cb71 Bump tensorboard from 2.12.2 to 2.13.0
ecd34ce47 Bump requests from 2.29.0 to 2.30.0
4a911bbe9 Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6
3bb872a5e Bump mkdocs from 1.4.2 to 1.4.3
fa40e4e88 Bump websockets from 11.0.2 to 11.0.3
4b1cb9644 Bump orjson from 3.8.11 to 3.8.12
36e1e58da fix arch
3bbb7e38e improve transformer architecture, remove 3.10 install constraint, add documentation for torch.compile()
c2beeb4c7 bug fix backtest feature validation
908a2e817 Align BasePyTorchRegressor tensors to cpu as in BasePyTorchClassifier
306dfc4ae refactor(BasePyTorchClassifier.py): convert tensor to list before creating DataFrame to avoid TypeError. docs(BasePyTorchClassifier.py): add missing parameter description in predict method
e3ff2ccc9 Slightly reword documentation to be more clear
24804f066 Update test comment, uncomment last test section
775ea1c8c Improve type safety
80930d72a Dont loop trades twice
0adac268e Add test for #8591
976cc1ab1 Extract order_obj existence check to separate function
1cc5b6126 Bump pre-commit ruff version
0d1d25e86 Improve error-handling
13974d250 Reduce error severity when maintenance-ratio fails
f419d7870 Add freqaimodel to pair history endpoint
fb5fac164 add Packaging dependency explicitly
a935f1e4d Remove no longer necessary dependency from setup.py
d8a9c9422 Update missing "requirements" install in documentation
220f8c6b5 Add missing freqai-rl dependencies
e3f983729 Update freqai dependencies
8f5fb4e32 Add missing dev dependencies
75daa44c5 Add missing core dependencies
1c2dd884e Remove dependency workarounds in place for gym
238581ee7 Remove <3.11 pin for tqdm
3f58c1997 Bump ccxt from 3.0.84 to 3.0.85
5e32182c7 Bump types requests
103f27cfd Bump sqlalchemy pre-commit
a31ceb51a Bump sqlalchemy from 2.0.10 to 2.0.12
af139ffba add transformer with positional encoding, fix some odds and ends in pytorch, upgrade to PyTorch 2.0
fe9f2d005 Bump types-requests from 2.28.11.17 to 2.29.0.0
1d73c7c27 Bump mkdocs-material from 9.1.7 to 9.1.8
d023e7592 Bump ccxt from 3.0.75 to 3.0.84
063ddd62e Bump uvicorn from 0.21.1 to 0.22.0
7f9a6ffc5 Bump ruff from 0.0.262 to 0.0.263
7dda3f580 Bump orjson from 3.8.10 to 3.8.11
d928792eb Bump requests from 2.28.2 to 2.29.0
9dd077d69 Bump rich from 13.3.4 to 13.3.5
a66e8768c Update docker-compose.yml
d1eb6d4fe Update BasePyTorchRegressor.py
023c155a2 Extract signals generation from backtesting class
6e395ad7c Refactor methods in backtesting
0753f427b Simplify storage
e20d9c8f9 Impoved errorhandling, better typesafety
fc2a3c9f1 Implement further improvements, improve typehinting
703ec3ccc Fix help text to show correct format
76ae539e6 Minor edit
2a9e50a6a Add test testing create-table statement creation for different sql dialects
daf564b62 Invert logic for webhook
1d9933412 improve `/version` output formatting
395ac5f6d Update integration test
491d2cb02 Explicit test for handle_onexchange_order
8cf0e4a31 Fix mypy typing errors
6d3c94a73 type: ignore the offending tensorflow call
c6f3a3bbc avoid typing issues in the tensorboard callback
e86980bef remove typing from callback init
e29ce218e fix typing in TensorboardCallback
e88e25903 explicitly test check_exit_amount
d29a425ba Update parameter type in RPC modules
b0b036c45 Fix logic lapsus in check_exit_amount
d0b5c7d21 update telegram/api documentation with new endpoint
25bed7bb8 Update telegram help with reload_trade
7287e9da1 Add telegram endpoint for reload_trade
0c22710dd Add API endpoint to force trade reloading
f2696c960 Force special exit reason for "recovered" exits
24cab0047 Extract amount checking to wallets, implement for futures
974cf6c36 Move comment to more appropriate spot
95b35e452 Emulate fetch_orders if it ain't supported natively
81633b7c2 Add "handle_onexchange_order" functionality
d14f50f50 temporary comment fetch_orders logic
531b5727f add fetch_orders exchange wrapper
c4a091090 Handle special case where exit order is for more than the trade amount ...
1b228e370 Improve test resiliance by removing unneeded MagicMock
e8fedb685 Update missleading docstring
11c9f96d2 Use lock for trade entries, too
59f9f4d46 Fix exception typos due to newlines
1e9fa4c04 Improve test to cover to_ccxt better
6a271317b use stop_price_param for dry stops
c19d6b4e2 Bump pandas from 1.5.3 to 2.0.1
b49ff3d5b Improve type safety
2615b0297 Move httpx to regular dependencies, losely-pin
c06759223 Improve telegram async tests
516b49ff5 Fix bad types
d25e82d09 Mock exchange loop
5608aaca2 Simplify mocking
7171fd113 Test telegram startup
c9e6137ad Fix test_telegram _init test
cf0b37057 update telegram "cleanup" test
69f61ef76 Further telegram async tests
4177afdf8 More async test updates
678c9ae67 Fix some more async telegram tests
c475c8184 Update several tests to async behavior
fb56889b4 Update a few tests ...
914d7350f Update mocks in apimanager tests
b1367ac46 Update decorator typehint
3d0e1d142 Convert endpoints to async
54732b72f Manage startup/teardown of telegram manually
e7e6f719e _update_msg to async
5134bf8ec Authorized-only and /version to async
cb45689c1 Small fixes to new telegram implementation
14b501a4f Initial changes for telegram migration
68ac93492 Update command list to handle frozenSets
57eed50ac Fix some test failures caused by v20 update
c37b7b77e move telegram fixture to telegram file
da261003d Fix telegram imports to match v20.0
99a4a6405 Bump python-telegram-bot from 13.15 to 20.2
98db27e8f Bump develop version to 2023.5-dev
8086d9053 Update some tests for balance updates
68a8c79c0 Improve output for futures
94a6bc608 Update stake-currency behavior
741834301 Update tests
f937818b8 Add "owned" fields to balance
c4f8ff95d Update tests
dbf1f0897 Add /balance full, reduce regular balance output
7a47500b2 Add "is_bot_managed" flag to API
0a0509971 fix mypy
f1e03a687 Update variable to better reflect it's content
3fb5cd3df Improve formatting
c055f82e9 Pip release follow up
66c326b78 Add proper handling of multiple environments
f455e3327 Simplify method further
af6fc886f Small refactor for new methods
d03fe1f8e add latest experimental version of gymnasium
fc6d7f012 Support for python 3.11
97a6fb285 revert to dataframe.to_json
f5359985e Make CLI option and docs clearer that we're handling signals not trades
854f056ea Fix missing Path constructors
5a4e99b41 Add support for collating and analysing rejected trades in backtest

2023.5

11 months ago

Highlighted changes

  • Improved balance display (incl. new telegram variant /balance full)
  • Recover trades when asset is sold on Exchange (intentionally, or through liquidation).
  • New argument --rejected for backtesting-analysis, allowing analysis of rejected signals.
  • Add full support for Python 3.11 (setup.sh, …)
  • Enhanced freqUI plot Configurator.
  • Add support for area Charts in freqUI.
  • Better protect API keys by no longer exposing them to the strategy.
  • FreqAI:
    • New Torch Transformer model (PyTorchTransformerRegressor).
    • Updated dependencies, including 3.11 support.
    • Use freqUI charts to visualize backtesting results also for freqAI strategies.
    • Tensorboard logging now available for all PyTorch and XGBoost models.

How to update

As always, you can update your bot using one of the following commands:

docker-compose

docker-compose pull
docker-compose up -d

Installation via setup script

# Deactivate venv and run 
./setup.sh --update

Plain native installation

git pull
pip install -U -r requirements.txt
Expand full changelog
2ea287958 Bump version to 2023.5
bd266f654 Properly handle invalid pairlists type before config validation
f647fb342 Update base_tensorboard.py
9e9f9b21e Bump stable-baselines3 from 2.0.0a9 to 2.0.0a10
b5ed693be Extrac OKX convert stop order, call for regular orders, too
b8220ee0f Improve recovery detection by skipping open orders
a0336c83c Update method casing in tests
6efc62e4c Add test which verifies #8680 won't happen again
6292d1af6 Use camelcase version of private fapi method
9ffdaceef Bybit - use Proxy
1e10b25e3 Bump requests from 2.30.0 to 2.31.0
44bdac5e8 Improve developer docs with some minor improvements
d26aa231f Stable baselines updates, and fix
2242d544f Bump ruff from 0.0.267 to 0.0.269
ad5f0307b bump sqlalchemy precommit
96eb109b4 Bump mkdocs-material from 9.1.12 to 9.1.14
ae52ce8cd Bump sqlalchemy from 2.0.13 to 2.0.15
811198cc3 Bump pre-commit from 3.3.1 to 3.3.2
4e3de64c5 Bump fastapi from 0.95.1 to 0.95.2
8c866abad Bump ccxt from 3.0.103 to 3.1.5
68ab147f5 Bump cachetools from 4.2.2 to 5.3.0
abc82a3fd Simplify api backtesting by extracting the background_method
a87b215d6 Fix odd import
914195acf Ensure one test can't fail 20 others
96d74063f Don't have public attributes marked as private
531622721 Extract api backtest logic from ApiServer class
c4c0371ed add docker comment to docker usage freqai doc section
a2cbe5df0 Remove trailing spaces
0d4010a0b Add sample docker-compose file for freqAI, comment about that
9d0f488de Some more edits due to arrow
707c6744b Fix doc and example indentation
ebfc9a603 Remove some humanize occurances
5d0cff2f7 Add dt_humanize helper
f657d06e9 Move shorten_date to datetime helpers
b40c45ee4 Timerange -> datetime
adcf75134 Bump min-requirement of arrow
261822147 Fix remaining arrow testcases
3ec55885b Remove arrow from more tests
9421ca262 Remove arrow from test_persistence
3a4d103bc Properly check wallets with new type
7a2ff6025 Fix more tests
915cb5ffb add dt_utc helper
c0713eb77 More tests to dt_helpers
29fdcdbf5 reduce arrow in tests
d131dd405 Fix wrong transition
cfae98ae0 dt_now for tests
e4f701fd0 Don't use arrow for everything
5b66ef4be Implement datetime.floor
7f73e9943 Simplify exchange_utils
55ce58d79 Reduce some arrow usages in favor of dt helpers
000f72942 Improve dt_now_ts helper
aa949153e Add now ts helper
5c6f3ea43 Improve wallets time handling
261df527d dt_now
6b735bc68 Implement dt_now
6044bbb6b Add datetime helpers to unify code
2477ef57f Reduce arrow usage throughout code
1d03e8bc5 Reduce arrow usage further
d3382fbe0 Reduce usage of arrow
292bd6297 Reduce verbosity of httpx (we don't need to see telegram calls)
adeab13bd cleanup tests, cross fingers that mac will pass
2ab732480 Ensure pi image can be built
45ee12e25 reload_trade should be a post endpoint
bb760a47d Bump pymdown-extensions to 10.0.1
61ea3d817 Bump pymdown-extensions from 9.11 to 10.0 in /docs
7d15c379c Fix faulty removed import
c7f7dd1d4 Avoid unnecessary type ignore
1b714fdb0 Fix wrong "first trade" date in UI, improve interface
9b1028789 Improve typing
3a0e123c6 Bump pre-commit sqlalchemy
ef15b7b3d pre-commit dateutil types
28905885e Bump sqlalchemy from 2.0.12 to 2.0.13
68f67c5ae Test proper removal of exchange keys
c242d89cd Improve test format
66c3eb282 Remove keys from config before loading strategy
b2a631e93 refactor remove_exchange_credentials
fe36e7741 Split exchange_config before passing through the strategy
fffb056ad load_exchange - force kwargs for non-required arguments
0ea47118e Create test Utils package
dd7624539 Bump ruff from 0.0.265 to 0.0.267
acdd50aad Bump torch from 2.0.0 to 2.0.1
33a0ed67d Bump pyjwt from 2.6.0 to 2.7.0
f21a7a25d Bump types-python-dateutil from 2.8.19.12 to 2.8.19.13
5f01b823d Bump mkdocs-material from 9.1.10 to 9.1.12
b0e7b4395 Bump ccxt from 3.0.97 to 3.0.103
675ab840f Bump mypy from 1.2.0 to 1.3.0
a225ab71e revert file count
9242dfa35 try reactivating tb for some tests
505f36a95 try even more deactivation
1ed084557 try even more deactivation
73e9047cd try to deactivate any test that has a callback
340d2191f deactivate tensorboard by default
55a1a3afd add config option for activating and deactivating tensorboard logger, ensure the various flavors are never activated simultaneously
ab7a474ab try limiting tb_logger to pytorch only (XGBoost still gets its callback)
af8fbad28 Improve Date timezone useage
bbce73852 Improve tests around timezone
66a97ff45 Remove some utcnow usages
726627976 Improve docs around pytho 3.11
784087384 darwin excludes must use "sys_platform"
838fbb76a Improve version constraints
106db716f Force smaller catboost version on 3.8 macos
e76356aff Bump catboost to 1.2, disable some constraints
0db186935 Update cached binance leverage tiers
dc4268b6e Convert Exchange arguments to be kw only
af95d56ce Import deepcopy specifically
0d4010c38 maint: Remove faulty config setting from default_conf
18c1eda09 remove commented lines
2ec1302c1 add warnings in the doc for users to better understand the limitations of continual_learning
fad1c1985 add warnings in the doc for users to better understand the limitations of continual_learning
3ae3cc63d fix bug in continual_learning for PyTorch* models
d50e221e6 Update active ccxt.futures test init
1552d81f4 Simplify load_exchange interface
b2a3fe687 Improve remove credentials
ab0f9d78e Mock tensorboard callbacks for all freqAI tests
23e8932a4 Mock tensorboard callbacks
400cbd183 Fix types
871f1aabb Use tensorboard fallback for mac tests
6d7172ac4 Re-add init file
49b9b463b Move tensorboard callback exports to freqai.tensorboard.
43213cc6f Revert testing Reinforcement lerning on Mac
6e5a9fe4c mac strikes again
ca7ad8a49 good old macos
8261c988b try to fix mac CI
db0645ed1 add helpful hints for reward creation
31d15da49 add disclaimers everywhere about how example strategies are meant as examples
692fa390c fix the import logic, fix tests, put all tensorboard in a single folder
6000e6842 bump ccxt min dependency
1d3687893 Bump min-requirements for python-telegram bot
b970ddeb6 Fix unused import
f7179f7c9 Fix last test with dependency on local user_data dir
1c1005247 Don't hardcode user_data in tests
963ff8c62 Run Repo check on windows, too.
395bf4919 Run Repo-check for macOS, too
2ecd63234 Remove git status again
bd6d4d5d2 Event-name for concurrency group?
1ec1abdc3 Fix syntax
800c6223e Quote concurrency group
3ba1eb6ba Improve concurrency group
c60c4b9ab Update user_dir fixture to return user_data path
7e023419d Auto-mock user_dir to tmpdir
a74a081e6 Check for repository changes
6df5cb887 add install requirement to tensorboard doc
b01aaa4d0 ensure backtesting also produces tb_logs, make sure tests are working
242247be4 Fix var name
ffc4d8726 add tensorboard integration to XGBoost and PyTorch et al
3a7e41e17 Update rest_client.py
d9cc45851 Properly enable pytorch tests
2c0230ba9 avoid mutating new_trained_timerange
35ce88f1e ensure that the buffered timerange is not the trained timestamp so that live_retrain_hours functions properly
55777eba7 Add pre-build arm wheel for pyarrow
f2a65437a Bump ccxt from 3.0.85 to 3.0.97
5a27245fc Bump pyarrow from 11.0.0 to 12.0.0
3e3945390 Bump urllib3 from 1.26.15 to 2.0.2
7e31cc410 Bump mkdocs-material from 9.1.9 to 9.1.10
591a51e4b Bump nbconvert from 7.3.1 to 7.4.0
9d7c90e9d Bump pre-commit from 3.2.2 to 3.3.1
395223221 Bump pre-commit requests types
e0c63e12e Bump mkdocs-material from 9.1.8 to 9.1.9
10604bf49 Run Torch tests on 3.11
75e5f325a Bump ruff from 0.0.263 to 0.0.265
bf7c52a9e Bump types-requests from 2.29.0.0 to 2.30.0.0
7bd33be8f Bump python-telegram-bot from 20.2 to 20.3
68a37cb71 Bump tensorboard from 2.12.2 to 2.13.0
ecd34ce47 Bump requests from 2.29.0 to 2.30.0
4a911bbe9 Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6
3bb872a5e Bump mkdocs from 1.4.2 to 1.4.3
fa40e4e88 Bump websockets from 11.0.2 to 11.0.3
4b1cb9644 Bump orjson from 3.8.11 to 3.8.12
36e1e58da fix arch
3bbb7e38e improve transformer architecture, remove 3.10 install constraint, add documentation for torch.compile()
c2beeb4c7 bug fix backtest feature validation
908a2e817 Align BasePyTorchRegressor tensors to cpu as in BasePyTorchClassifier
306dfc4ae refactor(BasePyTorchClassifier.py): convert tensor to list before creating DataFrame to avoid TypeError. docs(BasePyTorchClassifier.py): add missing parameter description in predict method
e3ff2ccc9 Slightly reword documentation to be more clear
24804f066 Update test comment, uncomment last test section
775ea1c8c Improve type safety
80930d72a Dont loop trades twice
0adac268e Add test for #8591
976cc1ab1 Extract order_obj existence check to separate function
1cc5b6126 Bump pre-commit ruff version
0d1d25e86 Improve error-handling
13974d250 Reduce error severity when maintenance-ratio fails
f419d7870 Add freqaimodel to pair history endpoint
fb5fac164 add Packaging dependency explicitly
a935f1e4d Remove no longer necessary dependency from setup.py
d8a9c9422 Update missing "requirements" install in documentation
220f8c6b5 Add missing freqai-rl dependencies
e3f983729 Update freqai dependencies
8f5fb4e32 Add missing dev dependencies
75daa44c5 Add missing core dependencies
1c2dd884e Remove dependency workarounds in place for gym
238581ee7 Remove <3.11 pin for tqdm
3f58c1997 Bump ccxt from 3.0.84 to 3.0.85
5e32182c7 Bump types requests
103f27cfd Bump sqlalchemy pre-commit
a31ceb51a Bump sqlalchemy from 2.0.10 to 2.0.12
af139ffba add transformer with positional encoding, fix some odds and ends in pytorch, upgrade to PyTorch 2.0
fe9f2d005 Bump types-requests from 2.28.11.17 to 2.29.0.0
1d73c7c27 Bump mkdocs-material from 9.1.7 to 9.1.8
d023e7592 Bump ccxt from 3.0.75 to 3.0.84
063ddd62e Bump uvicorn from 0.21.1 to 0.22.0
7f9a6ffc5 Bump ruff from 0.0.262 to 0.0.263
7dda3f580 Bump orjson from 3.8.10 to 3.8.11
d928792eb Bump requests from 2.28.2 to 2.29.0
9dd077d69 Bump rich from 13.3.4 to 13.3.5
a66e8768c Update docker-compose.yml
d1eb6d4fe Update BasePyTorchRegressor.py
023c155a2 Extract signals generation from backtesting class
6e395ad7c Refactor methods in backtesting
0753f427b Simplify storage
e20d9c8f9 Impoved errorhandling, better typesafety
fc2a3c9f1 Implement further improvements, improve typehinting
703ec3ccc Fix help text to show correct format
76ae539e6 Minor edit
2a9e50a6a Add test testing create-table statement creation for different sql dialects
daf564b62 Invert logic for webhook
1d9933412 improve `/version` output formatting
395ac5f6d Update integration test
491d2cb02 Explicit test for handle_onexchange_order
8cf0e4a31 Fix mypy typing errors
6d3c94a73 type: ignore the offending tensorflow call
c6f3a3bbc avoid typing issues in the tensorboard callback
e86980bef remove typing from callback init
e29ce218e fix typing in TensorboardCallback
e88e25903 explicitly test check_exit_amount
d29a425ba Update parameter type in RPC modules
b0b036c45 Fix logic lapsus in check_exit_amount
d0b5c7d21 update telegram/api documentation with new endpoint
25bed7bb8 Update telegram help with reload_trade
7287e9da1 Add telegram endpoint for reload_trade
0c22710dd Add API endpoint to force trade reloading
f2696c960 Force special exit reason for "recovered" exits
24cab0047 Extract amount checking to wallets, implement for futures
974cf6c36 Move comment to more appropriate spot
95b35e452 Emulate fetch_orders if it ain't supported natively
81633b7c2 Add "handle_onexchange_order" functionality
d14f50f50 temporary comment fetch_orders logic
531b5727f add fetch_orders exchange wrapper
c4a091090 Handle special case where exit order is for more than the trade amount ...
1b228e370 Improve test resiliance by removing unneeded MagicMock
e8fedb685 Update missleading docstring
11c9f96d2 Use lock for trade entries, too
59f9f4d46 Fix exception typos due to newlines
1e9fa4c04 Improve test to cover to_ccxt better
6a271317b use stop_price_param for dry stops
c19d6b4e2 Bump pandas from 1.5.3 to 2.0.1
b49ff3d5b Improve type safety
2615b0297 Move httpx to regular dependencies, losely-pin
c06759223 Improve telegram async tests
516b49ff5 Fix bad types
d25e82d09 Mock exchange loop
5608aaca2 Simplify mocking
7171fd113 Test telegram startup
c9e6137ad Fix test_telegram _init test
cf0b37057 update telegram "cleanup" test
69f61ef76 Further telegram async tests
4177afdf8 More async test updates
678c9ae67 Fix some more async telegram tests
c475c8184 Update several tests to async behavior
fb56889b4 Update a few tests ...
914d7350f Update mocks in apimanager tests
b1367ac46 Update decorator typehint
3d0e1d142 Convert endpoints to async
54732b72f Manage startup/teardown of telegram manually
e7e6f719e _update_msg to async
5134bf8ec Authorized-only and /version to async
cb45689c1 Small fixes to new telegram implementation
14b501a4f Initial changes for telegram migration
68ac93492 Update command list to handle frozenSets
57eed50ac Fix some test failures caused by v20 update
c37b7b77e move telegram fixture to telegram file
da261003d Fix telegram imports to match v20.0
99a4a6405 Bump python-telegram-bot from 13.15 to 20.2
98db27e8f Bump develop version to 2023.5-dev
8086d9053 Update some tests for balance updates
68a8c79c0 Improve output for futures
94a6bc608 Update stake-currency behavior
741834301 Update tests
f937818b8 Add "owned" fields to balance
c4f8ff95d Update tests
dbf1f0897 Add /balance full, reduce regular balance output
7a47500b2 Add "is_bot_managed" flag to API
0a0509971 fix mypy
f1e03a687 Update variable to better reflect it's content
3fb5cd3df Improve formatting
c055f82e9 Pip release follow up
66c326b78 Add proper handling of multiple environments
f455e3327 Simplify method further
af6fc886f Small refactor for new methods
d03fe1f8e add latest experimental version of gymnasium
fc6d7f012 Support for python 3.11
97a6fb285 revert to dataframe.to_json
f5359985e Make CLI option and docs clearer that we're handling signals not trades
854f056ea Fix missing Path constructors
5a4e99b41 Add support for collating and analysing rejected trades in backtest

2023.4

1 year ago

Highlighted changes

  • Improved price to precision rounding logic.
  • Initial bot startup time added to /profit output.
  • Switch progressbar to Rich (Improved visualization).
  • Allow reordering of your bots in freqUI (only relevant if you have multiple bots).
  • FreqUI shows the backtesting breakdown tables.
  • FreqAI:
    • Pytorch model support.
    • Add progressbar to Reinforcement learning to show Progress per epoch.
Important reminder

Freqtrade/FreqAI is an open-source project without token offering. freqtrade does not have a domain besides the freqtrade documentation https://www.freqtrade.io/.

Please be cautious of any projects (scams) using the name of freqtrade/freqAI with malicious goals (e.g. to sell you tokens).

How to update

As always, you can update your bot using one of the following commands:

docker-compose

docker-compose pull
docker-compose up -d

Installation via setup script

# Deactivate venv and run 
./setup.sh --update

Plain native installation

git pull
pip install -U -r requirements.txt
Expand full changelog
d40a63156 Version bump 2023.4
829724c0e Fallback to "initialMargin" if collateral is not set
e99af87b6 store periodic breakdown in backtest results
3948890c3 Add --breakdown to backtest-show
d1e9e7039 Improve Resample-period test
f7c6828e6 Bump mkdocs-material from 9.1.6 to 9.1.7
0329c0c3f pre-commit - bump sqlalchemy
c513d1077 Bump sqlalchemy from 2.0.9 to 2.0.10
598478e48 Bump filelock from 3.11.0 to 3.12.0
15fdaecd7 Bump psutil from 5.9.4 to 5.9.5
43d0c7ff9 Bump numpy from 1.24.2 to 1.24.3
a64b641fd Bump ruff from 0.0.261 to 0.0.262
d320ea052 Bump ccxt from 3.0.69 to 3.0.75
185ea9c98 Bump websockets from 11.0.1 to 11.0.2
2dd3b3413 Fix malrendering in freqAI docs
ad4996259 Further increase typehints in freqAI interface
c5dc21e80 Update freqAI documentation with missing typehints
c20b07488 Add FAQ entry about permission error
cb09ef718 Extract converting wallet to est_stake
ce75a032d Balance ratio calculation should ignore non-relevant assets
5dccfab89 Add test for start_cap_ratio
9bc17a923 Downgrade wheel to isntall gym
4a4be27eb use orderid from order, the trade one has been reset
ca1a616b8 use Fstrings for log message
818da02f6 Edit `Advanced Strategies` intro for clarify and brevity
b545fc559 Correct user namespace from `cust_` to `custom_`
1056ff0d1 Update variable to better reflect it's content
670a584d7 Fix markdown inconsistencies
2f9e6c990 Update docs/strategy-callbacks.md
66f5f76a6 Fix anchor for missing heading
46f4fd79a Fix anchor for missing heading
5ed072c48 Remove extraneous code block
94e190b95 docs: strategy-callbacks: revert `leverage=trade.leverage` removal
caf524c68 Don't fail on leverage tier loading error
f9124ef5b docs: strategy-callbacks: removes outdated `leverage` argument
c297d9997 Telegram. Fixed the blacklist removal message
6f401a9e1 docs: use helper function `stoploss_from_absolute` in strategy callbacks "absolute" example
dfe8b3e83 Improve ruff rule selection
7ff35fea3 Default weekly report to monday
f04926835 Bump ccxt from 3.0.59 to 3.0.69
362974b83 Update test to properly capture errors from leverage initialization
14bca509d Cleanup some code
b2ea46425 Handle individual exceptions when initializing leverage tiers
d73e7f292 simplify Leverage tier code
d34b15d6a Telegram. Fixed the blacklist removal message
8aec71e27 Add bitvavo sublass to properly set ohlcv limit
6c6d2a0f4 Improve live test resiliance
8a8cd6798 Improve ccxt_ohlcv test debuggability
d1b600e7b Bump fastapi from 0.95.0 to 0.95.1
7c9584827 Bump rich from 13.3.3 to 13.3.4
864f53bc4 Bump cryptography from 40.0.1 to 40.0.2
f1fcd0760 Bump pytest from 7.3.0 to 7.3.1
f1730ab51 Bump httpx from 0.23.3 to 0.24.0
dba21c815 Bump tensorboard from 2.12.1 to 2.12.2
501a290f8 Pin pip also for windows installs
4ed670f82 pin pip installation to <23.1 - which breaks gym installation
f6e93114e Update binance leverage tiers file
6bc875932 Update constants.py
1d40162e9 Telegram. Fixed the blacklist removal message.
20d17cbc5 Disable telegram from default_conf
a78672c10 Improve log message formatting
6a0a33739 order cost should be with leverage, not leverage-cleared
b9f142c31 Add failing tests with leverage
6e814af36 Add test asserting cost
f81414609 Update ta-lib link
e25f6986d Improve windows doc wordings, remove reference to outdated binary provider.
95cdb8aa0 Update ta-lib windows wheels
3b377149e Add clarifying comment, simplify code
dcf9bbdae ensure data is on same device as the model
84d2d5e2a Change ["Dummy"] to [None].
0afd5a738 Improve stoploss documentation
44bf59668 prevents continous fetching every x bot_loop seconds , adheres to refresh_period, in case the pairlist returned from the remote end is empty.
2131205db Bump tag length to 255
b2b19915e Limit enter_tag and exit_reason to their actual field lenght
bba6f8e13 Use length constant for tests
a6d2233b9 Use constant for custom field lengths
9857675a5 Update torch import
476ed938f Extract custom_tag limit from interface file
40ffac9de Prevent random test failures by freezing time for certain tests
b892d373c Improve timerange parsing when accepting values from API
c4c229868 Bump mkdocs-material from 9.1.5 to 9.1.6
8564dc10b Bump nbconvert from 7.2.10 to 7.3.1
fa293c54f Bump websockets from 11.0 to 11.0.1
70fa4a53c pre-commit - bump sqlalchemy
467c63ff0 Bump ruff from 0.0.260 to 0.0.261
e2cd23b1d Remove deprecated pandas option
0d408d3d4 Bump ccxt from 3.0.58 to 3.0.59
230919777 Bump sqlalchemy from 2.0.8 to 2.0.9
66fe9abce Bump pre-commit from 3.2.1 to 3.2.2
200c18f3e Bump schedule from 1.1.0 to 1.2.0
351b5f6e6 Bump plotly from 5.14.0 to 5.14.1
f73d2a537 Ensure bot_start is called when visualizing results
3833dc0b7 pre-commit - bump dateutil
5a18ab078 Bump mypy from 1.1.1 to 1.2.0
2ea015719 Bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5
03352f3b6 Bump types-python-dateutil from 2.8.19.11 to 2.8.19.12
26eb4f7fe Bump pymdown-extensions from 9.10 to 9.11
7e1f3aa54 Bump filelock from 3.10.6 to 3.11.0
3505fbe78 Bump ta-lib from 0.4.25 to 0.4.26
14532e3a5 Bump orjson from 3.8.9 to 3.8.10
a449f7c78 Bump pytest from 7.2.2 to 7.3.0
8854ef8cb Bump ccxt from 3.0.50 to 3.0.58
526943f29 Remove freqUI alpha warning
cf770d496 Improve visual display of progressbar
bfd9e35e3 Replace hyperopt progressbar with rich progressbar
299e78889 Dump progressbar2 dependency
4c1de4ad5 Update tests
ed57e7d43 Refactor logging to be a package, instead of a module
818d18d4e Add StdErrStreamHandler to logging
b6aac5079 REmove Rich-progress wrapper again
40450ebec Add dependency on Rich
d532da907 Add Rich Progressbar Wrapper
df51111c3 Always show strategy summary
dd8900a1c Improve ordering of backtest output
5404905d2 Fix typos in docs
bed51fa79 Properly build specific Torch image
f5a5c2d6b Improve imports
a102cfdfc Add new /profit fields to API
be72670ca Add documentation about /profit change
cf2cb94f8 Add bot start date to `/profit` output
fa3a81b02 convert Keys to enum
7ff30c6df Add additional, typesafe getters
7751768b2 Store initial_time value
c2c97d9f7 make a fake pair_dict instead of MagicMocking it
48d3c8e62 fix model loading from disk bug, improve doc, clarify installation/docker instructions, add a torch tag to the freqairl docker image. Fix seriously outdated prediction_model docstrings
ac817b780 Improve docstrings for key-value store
4d4f4bf23 Add test for key_value_store
c08372369 Add initial version of key value store
f8d89c46e Don't reset open_order_id if the order didn't cancel
1952e453b Improved formatting for fetch order_or_stop calls
77985fa59 Update thread name for uvicorn worker
a75d89100 Ensure minimum sqlalchemy version is respected
dae3f72be Bump Dockerfile to latest 3.10
f03a99918 Ensure hyper param file can be loaded
a65552422 pytorch mlp rename input to fix mypy error
26738370c pytorch mlp add explicit annotation to fix mypy error
fe02f611f Fix typo in reinforcement learning
92a060c5b Make stop_price_parameter configurable by exchange
6b204c97e fix pytorch data convertor type hints
0c4574b3b prevent mypy error, explicitly unpack input list of pytorch mlp model,
d9d999317 add documentation
7b494c833 add documentation to pytorch data convertor
bc9454e0f add device to data convertor class doc
36a0a14a2 clean code
c13766623 fix imports
7fed0782d pre-commit types-tabulate
bd3b70293 add pytorch data convertor
30fc24bd8 Bump types-tabulate from 0.9.0.1 to 0.9.0.2
b96f6670e pre-commit dateutil
b48498f27 Types pre-commit
ff40ee655 Bump types-python-dateutil from 2.8.19.10 to 2.8.19.11
57deaad80 Bump types-requests from 2.28.11.16 to 2.28.11.17
7779b8227 Bump tensorboard from 2.12.0 to 2.12.1
2bd2058af Bump ruff from 0.0.259 to 0.0.260
bf7936b0a Bump plotly from 5.13.1 to 5.14.0
8236bbfd4 Bump orjson from 3.8.8 to 3.8.9
43496d792 bump sqlalchemy pre-commit
c9b904eb0 Fix typos in documentation
372f1cb37 Reduce verbosity for stop orders
a3acdd524 apply stop-reserve to minimum limits only when necessary
e6a125719 Slightly refactor _get_stake_amount_limit
78a155179 Reorder get_stake_limit
6f79d14c9 pre-commit - bump cachetools
2715b2ccf Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4
2ea575cb3 Bump mkdocs-material from 9.1.4 to 9.1.5
1b31c5416 Bump ccxt from 3.0.37 to 3.0.50
e289c10b6 Bump types-cachetools from 5.3.0.4 to 5.3.0.5
26ed1ca07 Bump xgboost from 1.7.4 to 1.7.5
b1e20bcd1 Bump sqlalchemy from 2.0.7 to 2.0.8
12a73bc15 Bump websockets from 10.4 to 11.0
cfc041038 use rl_config get instead of freqai_info
cccf4f305 fix randomize_starting_position typo
4c608e716 remove misplaced param
cab82e8e6 Add sb3 learn progress bar
dc7e83491 Fix some type issues
631cb44f5 ensure python code block renders
367186cc3 Update freqai-feature-engineering.md
92f34f262 make trade_type value more explicit, add profit to trade_history dict
6dfb1a1d1 Improve docker regular build caching
f8330800d Improve docker arm builds
3ec7c72da Bump develop version to 2023.4.dev
355fde3bc revert setting dk to live in test_plot_feature_importances
861c57713 Support partially filled stop orders
e062a74e7 Add test for partial stop order canceling
c330c493d test for Handle stop on exchange partial filled
5a7ca35c6 declare class names in FreqaiExampleHybridStrategy
077a94797 clean code
8ac3a9435 add note to pytorch docs - setting class names for classifiers
dfbebdea9 improve comment on class_names in freqai interface
b795a7010 fix config example in pytorch mlp documentation
026b6a39a bugfix skip test split when empty
3cabcabcb ensure labels are properly defined in backtesting
55781e7f1 fix tests
f1e831a7b fix bug in backtest target setting
159090c0e Add explicit tests for TRUNCATE mode
0cb28f3d8 Use kwarg for rounding_mode, update tests with additional parameter
d0d0cbe1d Implement price_to_precision logic for stoploss
01dfb1cba Revert having price_rounding_mode as configuration
8903ba5d8 fix enf of file
eabd32128 small docs change
45c6ae446 small docs change
952e64121 small docs change
c44b5b1b3 add pytorch parameters to parameter table docs
fc8625c5c add pytorch classes uml diagram
36a005754 add pytorch documentation
479aafc33 rename Torch to PyTorch
f81e3d866 sort imports
b9c7d338b fix test_start_backtesting
02bccd009 add pytorch mlp models to test_start_backtesting
1ba01746a organize pytorch files
83a7d888b type hint init in pytorch mlp classes
eba82360f skip pytorch tests on python 3.11 and intel based mac os
3fa23860c skip pytorch tests on python 3.11 and intel based mac os
a80afc8f1 add optional target tensor squeezing to pytorch trainer
97339e14c round up divisions in calc_n_epochs
443263803 unsqueeze target tensor when 1 dimensional
9906e7d64 clean code
e8f040bfb add class_name attribute to freqai interface
a4b617e48 type hints fixes
c06cd3895 clean code
0a55753fa move default attributes of pytorch classifier to initializer, to prevent mypy from complaining
6b4d9f97c clean code
500c401b7 improve pytorch classifier documentation
81a2cbb4e fix tests
0510cf449 add config params to tests
68728409a add pytorch regressor test
c00ffcee5 fix pytorch classifier test
9aec1ddb1 sort imports
d98890f32 sort imports
f659f8e30 remove unused imports
54db23917 add pytorch regressor example
601c37f86 refactor classifiers class names
501e746c5 improve mlp documentation
d04146d1b improve mlp documentation
ea08931ab add mlp documentation
ddd1b5c0f modify feedforward net, move layer norm to start of thr block
e08d8190a fix test
fbf7049ac sort imports
2a1a8c0e6 fix test
833aaf8e1 create children class to PyTorchClassifier to implement the fit method where we initialize the trainer and model objects
566346dd8 classifier test - set model file extension
d0a33d2ee fix tests
fab505be1 cheat flake8 for now until we can refactor save into the model class
2f386913a refactor classifiers class names
1c11a5f04 improve mlp documentation
903a1dc3e improve mlp documentation
6f9a8a089 add mlp documentation
8bee49932 modify feedforward net, move layer norm to start of thr block
719faab4b fix test
9f477aa3c sort imports
61ac36c57 fix test
366c148c1 create children class to PyTorchClassifier to implement the fit method where we initialize the trainer and model objects
a49f62eec classifier test - set model file extension
fab9ff129 fix tests
244662b1a set class names attribute in the general classifier testing strategy
455044740 cheat flake8 for now until we can refactor save into the model class
366740885 reduce mlp number of parameters for testing
918889a2b reduce mlp number of parameters for testing
9c8c30b0e add test
d7ea75082 revert to using model_training_parameters
b6096efad logging change
b927c9dc0 remove train loss calculation from estimate_loss
523a58d3d simplify statement for pytorch file_type extension
0012fe36c sort imports
cb17b3698 simplify file_type check comparisons
f9fdf1c31 generalize mlp model
1cf0e7be2 use one iteration on all test and train data for evaluation
8a9f2aedb improve documentation
e88a0d524 convert single quotes to double quotes
2ef11faba reformat documentation
c9eee2944 reformat documentation
6f962362f expand pytorch trainer documentation
ba5de0cd0 add documentation
3081b9402 add documentation
1132fa609 feat: Added price_rounding modes in config
1597c3aa8 set class names in IStrategy.set_freqai_targets method, also save class name with model meta data
7d26df01b fix tensor type hint
c8296ccb2 sort imports
8d60327d6 add missing import
04564dc13 add missing import
6161b858c sort imports
1921a07b8 sort imports
b65ade51b revert config_freqai_example changes
dfbb2e2b3 sort imports
1805db2b0 change documentation and small bugfix
76fbec0c1 ad multiclass target names encoder to ints
4241bff32 type hints fixes
5dd60eda3 type hints fixes
8acdd0b47 type hints fixes
125085fba add freqai.model_exists pytorch file type support
7eedcb9c1 reformat code
e6e747bcd reformat code
348a08f1c add todo - currently assuming class labels are strings ['0.0', '1.0' .. n_classes]. need to resolve it per ClassifierModel
b1ac2bf51 use data loader, add evaluation on epoch
751b20561 initial commit

2023.3

1 year ago

Highlighted changes

  • /marketdir telegram command allowing a dedicated strategy variable to be set.
  • Improved /status message layout and information.
  • Improved Trade-detail information in freqUI.
  • Add leverage argument to stoploss_from_open. If you're using this function with leveraged trades, please make sure to add this argument.
  • Docker-files are now mirrored to the github registry (image ghcr.io/freqtrade/freqtrade:<tag>).
  • New subcommand in strategy-updater - attempting to automatically update from old strategy versions to new versions.
  • Post-only order support for Binance Spot.
  • Stoploss on exchange support for OKX added.
  • Market order support for Gate Spot markets.
  • bot_loop_start() callback now gets called once per iteration in backtesting. As a consequence, it also received a current_time parameter.
  • feather format is now available for trades data.
  • Partial support for 3.11 (no freqAI for now).
  • Mirror Docker images to github/ghcr.io, available as ghcr.io/freqtrade/freqtrade:develop image name.
  • Fix a SQLAlchemy session bug, causing Sessions in non-sqlite environments to continuously raise.
  • FreqAI:
    • Removal of the previously deprecated populate_any_indicators().
    • Don't force ohlcv data for RL (can be disabled via drop_ohlc_from_features).
    • Improved tensorboard_log() functionality for Reinforcement Learning.
Important reminder

Freqtrade/FreqAI is an open-source project without token offering. freqtrade does not have a domain besides the freqtrade documentation https://www.freqtrade.io/.

Please be cautious of any projects (scams) using the name of freqtrade/freqAI with malicious goals (e.g. to sell you tokens).

How to update

As always, you can update your bot using one of the following commands:

docker-compose

docker-compose pull
docker-compose up -d

Installation via setup script

# Deactivate venv and run 
./setup.sh --update

Plain native installation

git pull
pip install -U -r requirements.txt
Expand full changelog
2ea77b22e Bump version to 2023.3
fa7c29fe9 Update producer docs to reflect proper datatype
8a49d6206 Don't update liquidation price for closed trades
a64252492 Improve integration test correctness
eb96490c9 Improve some more stoploss tests
6282b4274 Remove further Magicmock trade
513df4515 Improve stoploss tests
411e21f43 Improve stop test
f0b5f95fd Remove missleading comment
736c396d9 Use correct amount for stoploss test
2860e817b Update cached binance leverage Tiers
19b78fbc2 Override ccxt's marketOrderRequiresPrice settings for gate
cde432fef Enable gate market orders
ed0e7ead3 Fix wrong import
3928051ba Revert unneeded formatting changes
e35c85000 Excude raspberry from catboost installs
4f4dfa2a5 Bump pydantic from 1.10.6 to 1.10.7
90669e0ba Bump ccxt from 3.0.36 to 3.0.37
bc0816aa6 Bump cryptography from 39.0.2 to 40.0.1
1743ad794 Bump pre-commit from 3.2.0 to 3.2.1
4891174a7 list-data should sort pairs also in timerange mode
8845f765d pre-commit - bump requests
7e11bce4f Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3
8955e0917 Bump filelock from 3.10.0 to 3.10.6
d13ea71a5 Bump mkdocs-material from 9.1.3 to 9.1.4
b72f61080 Bump orjson from 3.8.7 to 3.8.8
75c31cc8c Bump ruff from 0.0.257 to 0.0.259
1b3d9efed Bump types-requests from 2.28.11.15 to 2.28.11.16
2f8f60373 Bump ccxt from 3.0.23 to 3.0.36
72284317c Fix failing backtest test
80a27bc0d Fix random uvicorn error
1c9abd9e3 Properly respect can_short flag in backtesting
c14ac8a20 Properly handle non-replaced first entry orders
b09fb5826 don't use "can_short" in backtesting to determine application of leverage
fb1541bdf Explicitly close loop in async tests
444d18aa3 Revert binance PO fix, since ccxt has fixed this bug.
16057da6c typo:  above should be below
7cdcd97c2 Update tests for new logic.
86aef7cf9 Add current_time to bot_loop_start callbak
ee205ddc8 Improve trade.from_json when stops are used
298f5685e Reuse existing "cancel_stoploss" call
486d8a48a Fix docs (buffer_train_data_candles is an integer, not a boolean)
d9c8b322c Update freqai_interface.py
68154a1f5 document why users cant arbitrarily change parameter spaces...
f7c1ee6d3 add precision values to api schema
9c6a49436 Export amount/price precisions per trade
cdd44a400 docs(protections): fix typo
56170dba1 use github to download guess instead of gnu.org
79a2de7a6 Reduce impact of short outages
c0a57d352 send base_currency with messages that need it.
cbdd86d77 Fix test failures due to additional field
281dd7785 Fix some remaining type errors
ad58bac81 Type WS messagetypes
8928d3616 Improve msgtypes
e8cffeeff Update RPCStatusMessage type
76d289f0c Don't overwrite types
245ae9927 Further typing ...
70ad7b42b Improve msg typing
0ece73578 Add typedDict for RPC messages
b317524ed protect adjust_trade_position from crashing in case of unsafe code
469166636 Set initial stoploss when creating the order
150c5510c Don''t fully fail bot when invalid price value is reached
bdf19f1d6 Update freqai_interface.py
8cf3e9f91 Accept "insufficient funds" error on set_leverage from stop calls
ebebcb886 Move build-system to the top of pyproject.toml
36c45fd14 Remove unused argument from set_leverage
0128b63c1 add 'feather' to AVAILABLE_DATAHANDLERS_TRADES
e16db814f featherdatahandler: implement trades_store/_trades_load
97c420b2d Add explicit test for okx lev_prep
639987cba Prevent parameter reuse
4f4bfdac4 Adjustments to okx stoploss
a4e4310d4 Bump pytest-asyncio from 0.20.3 to 0.21.0
cb1f971d4 Bump ccxt from 2.9.12 to 3.0.23
317512103 Bump ast-comments from 1.0.0 to 1.0.1
8d649988c Bump fastapi from 0.94.0 to 0.95.0
54d8aa778 Test stoploss_adjust okx
469024467 Enable okx stop-price types
2de5a59d8 Add test for dry-run fetching
dcca51985 sqlalchemy - pre-commit
c78342b19 Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1
29b9be9bd Bump ruff from 0.0.255 to 0.0.257
4543a1fe0 Bump pre-commit from 3.1.1 to 3.2.0
fc7c8cce3 Bump uvicorn from 0.21.0 to 0.21.1
7d1559f31 Bump mkdocs-material from 9.1.2 to 9.1.3
a43502093 Bump sqlalchemy from 2.0.5.post1 to 2.0.7
47e84ad10 Bump python-rapidjson from 1.9 to 1.10
5ade5777e Bump filelock from 3.9.0 to 3.10.0
fb0e824a8 Bump nbconvert from 7.2.9 to 7.2.10
a7c7f720c Add test for okx fetch_stop
224f289ec OKX Stop: Add some more okx specific logic
d84ece725 Use conditional orders for stop orders
6c5dc7e0a OKX: improve stop order handling
df20757d2 OKX stop: implement proper stoploss fetching
a2ce28824 Add okx stoploss on exchange (non-working for futures).
ce3efa8f0 Remove pointless asserts
c92f28bf6 ruff: Activate UP ruleset
222ecdecd Improve code quality
236499a19 Reorder push logic for ghcr
3d91dd8a9 Support post-only orders for Binance spot
9ccc3e52e Simplify time in force code structure
f5f151fcc Fix typing error
bf3f2e4de Fix failing test
b1f88e886 fixed typo from trades to trade
62c8dd98d Use combination of thread-local and asyncio-aware session context
b0a7b64d4 Close sessions after telegram calls
d808dd49e Fix ruff violation
818d2bf92 Fix stoploss on exchange value in /show_config call
477dc5042 Add pair output to "tossed" messages
9044052b4 Fix exceptions when training fails
764d5507a Fix typo in docker param
628f6b8b7 Fix crane docker permissions
0d3de0701 use Crane to move images around
db0f449d9 Use docker manifest for GHCR builds
774eacc56 Attempt push to ghcr.io
e3e4fbd5b Minor test fix
b7709126f remove .query completely
4cfbc55d3 Update remaining tests to get rid of .query
9d6e973e5 remove .query from most tests
6ed337faa Update several tests to remove .query
e579ff953 Simplify pairlock querying
ae361e1d5 Update more .query usages
8865af910 Remove .query from pairlock
aa54b7770 Rename _session to sessoin
8073989c9 Remove more usages of .query
d45599ca3 Fix some type errors
b469addff remove usage of .query from regular models
47ab28525 Minor test fix
95ff59a21 Improve documentation for get_trades_proxy
7e08e3a59 Update example to use get_trades_proxy
8f29312c9 Minimum re-entry stake should not include stoploss
5c280d564 Improve emergency_exit handling
b23cea6e5 Bump ruff to 0.0.255
487469680 Use correct exception type for ccxt.InvalidOrder
8fd13933c Improve variable naming
cf70deaf8 Disallow negative liquidation prices
3d31eca36 Update Exception to contain more info
d723979c4 Move total_trades to explicit variable
f3a1177ba bring inc back
ad5afd304 Bump uvicorn from 0.20.0 to 0.21.0
0e663a5bf Refresh binance cached leverage tiers
10c5adfa5 Bump fastapi from 0.92.0 to 0.94.0
dc6af9a1a Bump urllib3 from 1.26.14 to 1.26.15
82707be7d Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1
b800f2709 Bump mkdocs-material from 9.1.1 to 9.1.2
31daf72cc Bump mypy from 1.0.1 to 1.1.1
22ebf04da Bump pytest from 7.2.1 to 7.2.2
52a091e06 Bump pydantic from 1.10.5 to 1.10.6
fbca8e658 Allow empty pairlock reasons through api
a10f78e3e fix increment in case of 0
f584edf80 Improve tests by simply running a full strategy through everything
f5848ea89 Add test for successful_buys
b5c4f9ebe Split updater_tests to be clearer
0911cd72a Add test for strategy-updater start method
d2a412d2c Simplify start_strategy_update
cb086f79f Improve doc wording and command parameters
5bfee44bb Whitespace fix
aa283a044 Fix None limit on pair_candles RPC call
82cb10752 add tensorboard category
b23841fbf Bump ccxt to 2.9.12
8726a4645 Don't use deprecated Type construct
59d2ff3ff Simplify `handle_cancel_exit `
39c651e40 Remove pointless reset of close_profit
a2336f256 Add profit descriptions
a76ca771f telegram: Fix sending telegram message with exception
a3988f56b Sorry matthias, did not see that you already committed something and did overwrite you. Added your version to it instead of mine and pushed again (since it was already overwritten by me).
bfc7f48f1 added checks for python3.8  or lower since ast_comments.unparse() needs python 3.9 or higher. testing with python 3.8 would make the build fail tests, skipping it there.
d3a3ddbc6 Check if exchang provides bid/ask via fetch_tickers - and fail with spread filter if it doesn't.
30fd1e742 Add 3.8 block for strategyUpdater
d10ee0979 ensure training_features_list is updated properly
0318486be Update stoploss_from_open documentation for leverage adjustment
85e345fc4 Update BaseReinforcementLearningModel.py
29d337fa0 ensure ohlc is dropped from both train and predict
2c7ae756f Improve mock behavior
d9dc83177 allow user to drop ohlc from features in RL
85e64cd12 Bump ccxt from 2.8.98 to 2.9.4
d779d6081 Expose total_profit_ratio through API
c4a80e33e Fix missing newline in telegram /status
cab1b750b Improve test accuracy
9d285e3dc Add total_profit_ratio to telegram output
fff08f737 /status msg - improve formatting further
ca789b328 /status - whitespace
11eea9b4e Fix formatting for /status Realized profit
de015a2d7 Improve telegram message formatting
0fe72510d Bump pymdown-extensions from 9.9.2 to 9.10
25fd4a04d Update sqlalchemy QueryPropertyDescriptor to match latest version
9750e9ca4 pre-commit python-dateutil
a57b03374 Bump types-python-dateutil from 2.8.19.9 to 2.8.19.10
48e16f6ab Bump sqlalchemy from 2.0.4 to 2.0.5.post1
d1d9e25c2 Bump mkdocs-material from 9.0.15 to 9.1.1
57969f8b0 Bump prompt-toolkit from 3.0.37 to 3.0.38
8484427cf Bump cryptography from 39.0.1 to 39.0.2
f4c17be8d Bump ruff from 0.0.253 to 0.0.254
0bdd238d7 Bump orjson from 3.8.6 to 3.8.7
b072fae50 added strategy-updater compartment inside utils.md
d0d6f53de fixed github formatting errors
d80760d20 bump ccxt to 2.8.98
108a57877 Update tests to latest rpc changes
9444bbb6f `/maxentries` should be in single tics.
7c0c98a36 Properly format first entry value, too.
c1d395a7d Revert "Bump ccxt to 2.8.88"
3f6795962 Update bybit orderbook test
60e651b48 Updat bybit ohlcv data to v5
548db1885 Improve wording on partial exit notifications
aec11618c Telegram improved formatting
f0cbb4f94 Expose relative realized profit
027e02344 Stop from open with leverage
51c15d894 Bump ccxt to 2.8.88
b262f0b37 Update docs re: bot_loop_start in backtest
a3dee9350 Move bot_loop_start call to run on every candle
d0045673f Add explicit test for stoploss_from_open
87b751340 fixed --strategy-list moved ast comments to requirements.txt >=1.0.0 (since that is the first version that adds the comments unparsing)
c03c3a570 improve order REPR display
9573974c4 Update deprecations document
022f85095 Show Number of exits
5b0c14371 Update some comments about 3.11
5d0e14b56 Don't mock full modules
38050b534 Simplify "model-run" conditions
b1a5776f1 Skip reinforcement learning for python 3.11
7a7f16b65 Skip catboost tests on py3.11
684d310ea Limit catboost to python <3.11
49bfa556b Update CI to test against python 3.11
103bd9e2f keep Trade.session private
ba38a826e Update missing mocks
8103656ae Bump mypy in pre-commit
b980f45b2 Fix test mypy errors
b4b8dde4f Add sqlalchemy to pre-commit dependencies
59d57d346 Improve test resiliance
f0f72fdd3 Don't define "mapped" on LocalTrade class
388dfec50 Remove last type error
874413ccc Fix some style violations
4a35d32b6 Improve trade stop types
a1166b107 allow null fee on calc_base_close
e5c9cde36 Update trades_proxy typing
b5f55c9b1 Improve type safety in backtesting
7c09c0178 Add some more typehints
0f914cf2b Use Mapped for LocalTrade
d175ab495 Move SessionType to base module
f2f415897 Bump sqlalchemy to 2.0.4
764001a4c Don't reuse variable
b65cff0ad Update "Query" type
db4f4498d Experimentally type query property ...
c2c039151 Improve typesafety around trade object
8765e3a4d Fix some Type issues
f6b3998bb Fix backtesting type incompatibilities
0691bbaad Update some db types
101d9ab87 Improvements - tests runnable again
65a5cf64d Re-type session
608a7c2d3 Add safe_close_rate
e59eaf33e Update _session to session
47b66f322 More fun with types
491f49388 "Mapped" for trade_model
bb116456a Update Types for Order object
13b1a3e73 Properly pairlock columns using mapped
98791752a Update TradeModels to mapped_column
0bd9b0013 Pairlock to mappedColumn
39a658eac Update DeclarativeBase
3c019e0e1 tentative augmented typing of Trade object
41e27ba62 Enhance some type info
3a9d83f86 Mypy: define sqlalchemy plugin
9d455f58b Improve some trade model Types
829e10ff8 Improve Type for models.py
b62830031 Dummy-type query objects
a553a9923 Update types for pairlock
a629d455f Bump sqlalchemy from 1.4.46 to 2.0.3
feabed30a Update remaining exchange mock occurances
2ca8b0b12 Update more exchange mocks to use EXMS
bcdf4e0fe Use variable for exchange mocks to shorten lines
78e5ec13b Use absolute path for generic mocks
8b51f5f56 Lowercase exchange ID
d1b2e38ae if a stoploss order exists, always allow canceling that
dd10dec73 Improve variable wording
f822f1795 Reduce `/status` verbosity
386915378 Improve /status message (show Total profit)
2f1c5cf14 Remove pointless pylint rules
3706d2812 use pytest.approx in favor of "prec_satoshi" ...
0707e7018 Remove deprecated current_profit from api responses
bebee15d1 Improve TradeSchema readability
262f03bc9 Add backtest warning for market_direction feature
9a5b09089 pre-commit cachetools
5a3f23f00 Bump types-cachetools from 5.3.0.0 to 5.3.0.4
deca5479f pre-commit dateutil-types
594757d27 Bump types-python-dateutil from 2.8.19.8 to 2.8.19.9
fed5d87cf Bump xgboost from 1.7.3 to 1.7.4
adf5b7f23 Bump ccxt from 2.8.17 to 2.8.54
1b4c83146 Bump prompt-toolkit from 3.0.36 to 3.0.37
78e7ab92d Bump plotly from 5.13.0 to 5.13.1
6e45e998a Bump pre-commit from 3.1.0 to 3.1.1
a75e9f193 Bump ruff from 0.0.252 to 0.0.253
0899e5cb8 Improve documentation wording
39331b59e Fixed issues raised in PR
65d1598a9 Show absolute profit in /status command
46b987042 Include realized_profit in api output
75d1dd279 Properly round Stake currencies in telegram message
e5c68661f Simplify code line wrapping
e482feed7 Further improve behavior for telegram /status with stop on exchange
87fe4108a Fix order numeration to also work with stoploss on exchange
02c831a4e Improve Note wording
bcd416c83 Removed unresolved FreqTrade typehint
1d5608d62 Fix last_process related bug in RPC.health
81bc515e5 Bump tabulate types for pre-commit
201522f1b Bump types-tabulate from 0.9.0.0 to 0.9.0.1
48b21d00d bump pre-commit requests
e83eefb71 Bump types-requests from 2.28.11.13 to 2.28.11.15
05f388472 bump pre-commit dateutil
a4423778d Bump mkdocs-material from 9.0.13 to 9.0.15
2a7f86bfb Bump ruff from 0.0.251 to 0.0.252
7add902bc Bump pre-commit from 3.0.4 to 3.1.0
cc78054b8 Bump types-python-dateutil from 2.8.19.6 to 2.8.19.8
533f97f08 Bump pydantic from 1.10.4 to 1.10.5
5b0bc5bbc Don't "fix" dry-run kucoin orders
6f7ab97fc Improve bybit test coverage
27676f4aa Add explicit bybit test
79dc972e5 Add explicit test for kucoin
e88bb4e05 Revert small change - otherwise the data is never updated.
305eda74e Enable Complexity for ruff
84d905a64 Fix missed test
32ce81988 Removed environment.yml and updated documentation
26315b6bc add PTH ruff selection
d014e4590 use Path.open() instead of open
c8a4a773e Fix _pairs_last_refresh_time storing the wrong date
ff3aa7c1a Bump Version to 2023.3.dev
be352ae01 Update more enums
563742f13 Fix enum behavior for python 3.11
7bcae7b66 removed redundant dependencies from environment.yml
cb80d7c26 close the multi_proc env before creating new ones in an attempt to avoid increasing processes
6b829d839 Improve ruff config
bf968a9fd Use actions as documented
b4ea37d59 Remove flake8 in favor of ruff
549a0e1c4 Add ruff linting - initial configuration
2bc9413be Fix minor stylistic errors
e6766b9b8 Add bt-error to UI backtest method.
75bc5809a Better handle backtest errors
986bc63e5 raise OperationalException if latest historical data candle is older than earliest dataprovider candle
fd4e27d88 remove populate_any_indicators
2261cbd92 fixed command regex and updated documentation
3033e2746 Added documentation for new telegram command
8927a92ea fixed lint issue
5fb539190 addressed some issues mentioned in PR
ade64f25d fixed formatting
72af1912c added new text
bcef00ede changed to ast_comments, added tests for comments.
06edc5c04 changed to ast_comments, added tests for comments.
b73089deb fixed a test
a3cc001f1 initial commit
4435c4fd0 removed prints for strategy could not be loaded Changed logic to contain much less if conditions
ed55296d2 removed prints for strategy could not be loaded Changed logic to contain much less if conditions
3cbe51c3c remove duplicated line
dc2566846 handle data gaps between FreqAI and DP better
71ec32ac9 removed prints for strategy could not be loaded changed back to ast, astor is not really needed.
0817e1698 requirements thinned out again StrategyResolver.search_all_objects(enum_failed) set to False since we got no use in True shortened update_code call added modified_code8 test which currently still fails. (and thereby is commented out)
61d7129d7 Update freqtrade/commands/strategy_utils_commands.py
df25dbc04 Don't require a configuration for strategy-updater
a712c5d42 Improve if formatting
e89609dc3 Fix crash due to invalid parameter
66f7c9135 Adding tests added more code inside NameUpdater to grab more variables.
762dd4f02 Adding tests added more code inside NameUpdater to grab more variables.
a51e44eea Adding tests
82218d01f sped up the function generic_visit that now skips unnecessary fields added mentioning of skipped class names since they could not be found
c6f045afa fixing issues of the maintainer found a bug meaning elts could contain lists of elts (now recurively gone through)
70e9fa613 implementing the strategy_updater in a first version

2023.2

1 year ago

Highlighted changes

  • Added support for Bybit futures.
  • Add cancel-open-order RPC endpoints (telegram, freqUI).
  • Stoploss on exchange orders on futures markets can now use different price types.
  • Convert limit orders to market orders (simulating marketable limit orders) if price crosses spread by more than 3%.
  • Updated systemd package to cysystemd to ensure compatibility with new python versions.
  • Show error in freqUI if backtest through UI failed.
  • FreqAI
    • Add shuffle_after_split option.
    • Updated purge_old_models to take an integer, defining the amount of models.
    • Add buffer_train_data_candles to add a buffer before/after the actual timerange.
    • Removed follower_mode. Please use producer/consumer mode instead.
Important reminder

Freqtrade/FreqAI is an open-source project without token offering. freqtrade does not have a domain besides the freqtrade documentation https://www.freqtrade.io/.

Please be cautious of any projects (scams) using the name of freqtrade/freqAI with malicious goals (e.g. to sell you tokens).

How to update

As always, you can update your bot using one of the following commands:

docker-compose

docker-compose pull
docker-compose up -d

Installation via setup script

# Deactivate venv and run 
./setup.sh --update

Plain native installation

git pull
pip install -U -r requirements.txt
Expand full changelog
25724ef72 Version bump 2023.2
dc2cfee05 Don't request sorted candles from HitBTC.
c6455c413 Pin scikit-learn to <1.2.0 for conda as well
3471f5204 Don't reuse variable
c283e2232 fix purge_old_models description in parameter table
5ac4b81a5 fix link in freqai index.md
34c42be74 Fix minor stylistic errors
659140e19 Add bt-error to UI backtest method.
63e5d3302 Better handle backtest errors
7d906fd4c  refactor(if-gate): use temp variable instead of if-gate
23a71680d Update Doc-box typo
150b7f9c8 lighten the disclaimer message
b8f011a2a give users ability to decide how many models to keep in dry/live
9633081c3 remove remnants of follower, clean data-drawer, improve doc
0f878daa9 Remove some too generic noqa statements
01d51aa97 Add necesary noqa statements
f8fa5bd96 Fix gone wrong noqa ...
18bbfa10e Reduce amount of variables for API backtesting
ff1258fd2 Better handle random UI backtest errors
3fbbc57a3 add imposter disclaimer to FreqAI front page
070a7efd7 * fixed filename in model_exists
2b5c11c7b allow users to buffer train data with buffer_train_data_candles parameter
62e120a60 Remove special treatment of cryptography for raspberries
48ecc7f6d Update freqai-reinforcement-learning docs
43962476a Remove non-working links, update links to https
a4a3d27ac Improve FAQ page
f4bd42422 Remove deprecated ubuntu image
af137188f Update wrong FAQ entry
789c867c8 Fix outdated systemd related exception text.
250faf012 Bump types-requests for pre-commit
0cd28e2ca Bump mypy from 1.0.0 to 1.0.1
eb08ef6ce Bump types-requests from 2.28.11.12 to 2.28.11.13
a4e69574d Bump ccxt from 2.7.93 to 2.8.17
c85fc6c8c Bump mkdocs-material from 9.0.12 to 9.0.13
f19128ad2 Bump fastapi from 0.91.0 to 0.92.0
2ef656fac Bump scipy from 1.10.0 to 1.10.1
e9c64c583 Update dependency to cysystemd
f89b63b0c Fix dry-run stoploss orders filling "in place" after restart.
2c0fbd850 Simplify test slightly
31c7b3e13 Update binance leverage tiers
22700527a Convert limit orders to market orders if they cross a threshold
960003968 Update dry-run fill method naming
35fe37199 fix minor typos
351c5fbf7 add shuffle_after_split to conftest
be85ef270 add documentation for shuffle_after_split, add to constants
36d65e00f generalize model_exists() for RL and Keras
a2e138994 Update Binance leverage code
8ef110cc5 Rename ob variable to orderbook
de7d274fc Pass orderbook to dry-run fill logic
7c1092156 Improve Orderbook typing to align for diff. exchanges
020c9a5ce Update freqai.md
ecff21ac2 type Orderbook
3397e47cc Rename stoploss() to create_stoploss()
6e55a873b Rename edge.stoploss to get_stoploss
bddec476f Fix missing typehint in hyper.py
cdd324d0a Rename stoploss_reached to ft_stoploss_reached
ce7d24f52 Extract ft_stoploss_adjust to seperate method
69d545946 Improve stop behavior in SIGTERM cases (docker).
9061c04f1 Bump ccxt from 2.7.80 to 2.7.93
f3a689787 Bump Docker images to latest minor version
f16fd0ad2 Reenable binanceus active test
f681ee794 Bump aiohttp from 3.8.3 to 3.8.4
50a9df9b2 Bump aiofiles from 22.1.0 to 23.1.0
2a87ad044 Bump tensorboard from 2.11.2 to 2.12.0
d14283b0e types-requests - precommit
9faa92680 Bump fastapi from 0.89.1 to 0.91.0
48c331785 Bump mypy from 0.991 to 1.0.0
bbb62c8a4 Bump types-requests from 2.28.11.8 to 2.28.11.12
b05999f6d Bump orjson from 3.8.5 to 3.8.6
ee209e3b4 Bump mkdocs-material from 9.0.11 to 9.0.12
b95ff827d Typo on freqai docs
a3b4678ad stoploss_price_type for gate
bedd3688d Properly format proxy configuration
c229ba97a Update gateio terminology to Gate
07e6932a1 Reenable longrun test mark
73992dde8 Add explicit warning that supported price types gonna differ on each exchanges
45e24d21d Bump ccxt to 2.7.78
f440d6621 Add sample_order for gate
8873a565e expose raw features to the environment for use in calculate_reward
154b6711b use function level noqa ignore
4fc0edb8b add pair to environment for access inside calculate_reward
d47d8c135 Add windows wheel for ta-lib on python 3.11
8d156b277 Bump ccxt to 2.7.66
3d22ad36b Show Config should contain stoploss-on-exchange status
102c1e799 realign binance set_leverage override
980ffa6bf Add test for binance rounding leverage
997df2032 Add response_log for set_leverage
d19ee9c95 Update okx position mode terminology
e2d81b0ce Skip binanceus ccxt test
c15e10fe1 Improve logic for initially placed stoploss
67a2cd708 Bump cryptography from 38.0.1 to 39.0.1
5a61e076d Remove unused import
953be8a7f Split validate_order_types to 2 functions to allow selective application
8c0c2496c Temporarily disable gate advanced stop orders
81619fb4a Properly use sqlalchemy column types
a6adcb485 Bump several pre-commit hooks versions
b6eb1f939 Bump pre-commit
c6601cbd8 Bump pymdown-extensions from 9.9.1 to 9.9.2
f96cb4772 Bump numpy from 1.24.1 to 1.24.2
365522f5c Bump types-cachetools from 5.2.1 to 5.3.0.0
8dde7ab6b Bump ccxt from 2.7.12 to 2.7.45
e964377ed Add new field to full config
d904e9166 Add documentation for new setting
61ba1a0dc Pin telegram in conda environment to <20
b8a527e4a Add gateio price type field
3497de3dd Add more validation
cf9e99b8e Add tests for ordertype validation
2738c3784 Test stoploss validation ...
c4fc81161 Add stop_price_type support (futures only!).
a9241f61f Add Price Type Enum
e38e41ab9 Bump isort from 5.11.4 to 5.12.0
e3f0e66b9 Bump technical from 1.3.0 to 1.4.0
b80d196d5 Bump pre-commit from 2.21.0 to 3.0.4
c61995aad Bump plotly from 5.11.0 to 5.13.0
34711eb68 Bump nbconvert from 7.2.8 to 7.2.9
5ed06cd79 Bump mkdocs-material from 9.0.8 to 9.0.11
801714a58 Update function signatures in all templates
0dd247238 add metadata param to docstrings
e569f6f6d add explicit metadata argument to example strat, include it with backtesting
5da60b718 pass metadata dictionary to feature_engineering_* and set_freqai_targets functions. Add doc
55850a5cc Skip orders when correlated trade was deleted.
02c0f91f4 fix: removes duplicated if branch
3fd6d7298 setup.sh: fix truty/falsy return of check_git_changes()
ef1738fbf Remove follow_mode from docs
618eb951d Add ft_bot_start to notebook docs
330461cf1 setup.sh: checks if git directory is dirty before bothering user with potentially scary question
b7787a984 [kucoin] manage kucoin numeric password passed as environment variable as a string
b4c3e1fd5 `order.amount` -> `order.safe_amount`
36f95fb35 Make test for `None` explicit
ccb4efbe8 remove follow mode in favor of producer consumer
ba7883f54 Update README.md
ceaaac6c3 Improve install sequence to install ta-lib after user interactivity
21618594b Update setup.sh queries to not ask redundant questions
d8583ab6e Bump setuptools in setup.sh
7569e72f5 Bump setuptools from 65.5.0 to 65.5.1
1e12e888d Update README.md
322d4b535 improve fix for setup.sh
72a98943b bybit: Add correct funding_fee_timeframe
9bb376296 Update parse_order test
839215c43 Fix Doc box error
8a0fabed0 Ensure we don't overwrite valid values by invalid exchange responses
680136f57 Add workaround patch for kucoin create_order returning empty
448505fbf Fix minor issue where amount could be empty in rest calls
50d3b7bde Add bybit sample order
42f07e6ec Improve order_parse tests
6012a5582 Improve test
9cfbb21cd Improve error messages
bbc663fce Add telegram test
1c47c118d Add cancel-order api test
daafc1c90 Update test  and help
bd2839fa4 Reorder documentation
e291d1bb1 Document telegram /coo command
1bdc0e391 Add coo command to telegram
152aa994a Fix test
baf2090f9 Just change the docs
592eebe51 Add to setup
8b307357f Add to setup
5073c780d .agg would like strings, not the sum function.
2c1457fb9 Ensure limit is integer (on server)
1dc3c5877 Convert missing candle count to int
410324ac1 time-jump detection should happen on the trimmed dataframe
9e619ecc5 Update rest api documentation
03302fa0b Add cancel_open_order to rest script
c43e857cb Bump API version
c855e2d79 Add delete open order endpoint
a704c4340 provide cancel-reason to handle_cancel_order
2b09f0129 Fixes gym issue
5a7008f37 rename handle_timedout to handle_cancel_order
3cb9cc63b add pyarrow-11 rpi wheel file
2593a929d Bump version to 2023.2.dev
411ad5641 Bump pyarrow from 10.0.1 to 11.0.0
0dd852516 Bump mkdocs-material from 9.0.5 to 9.0.8
2fea23d31 Bump lightgbm from 3.3.4 to 3.3.5
f6ba0fe6a bybit: fix broken ccxt tests
7294db81e Bump ccxt to 2.7.7
d1b069abf bybit: Update test to align with defaultType change
fa033965c use "swap" for bybit
08ede3779 Add documentation note about stoploss on exchange
8665d0866 Add test for bybit startup  magic
1431f7cc3 Set position mode to one-way on startup
73ef1d519 Improve exception wording on binance
c12fb1a49 bybit: Some final cleanup
25fa6bee7 Override get_funding_fees for bybit
051c3be99 add test case for bybit
3a83427f9 Add Bybit stoploss support
c14553bac Add bybit to supported Futures exchanges
c2b33a0f5 Fix set-leverage function sig
7a18e9604 bybit: hot-fix funding fees (temporary - must be changed)
f681ce913 Allow margin and leverage setting failures
31745a9dc bybit: Initial implementation liquidation calculation
93ce963e9 Update test name
752110a26 Add online tests for bybit
d05ecd630 Update tests for new liquidation parameter
34e743384 Add leverage to dry-run liquidation price calculation
a7b030fff Add note about bybit futures
3192af8df Limit bybit futures markets to USDT
63c732a56 Bybit futures data download
75804a7f8 Bump stable-baselines3 alongside with sb3-contrib.
a77fdb159 Bump sb3-contrib from 1.6.2 to 1.7.0
c9bc91c75 add shuffle_after_split option

2023.1

1 year ago

Highlighted changes

  • New backtesting metrics (Sharpe, Sortino and calmar ratio).
  • Improved backtesting speed while keeping high precision with --timeframe-detail.
  • New analysis group for backtesting-analysis to analyze only exit tag performance.
  • New hyperopt space ("trades") to optimize max_open_trades.
  • Allow loading plot-configuration from strategy in freqUI webserver mode.
  • Breaking change for binance-futures users. Naming is now aligned to other futures exchanges, following the base/quote:settle approach. Freqtrade will take care of the data and database automatically - however it's important that you adjust an eventual static pairlist (don't forget your blacklist!). it can also impact strategies that hard-code pair names (like informative pairs).
  • FreqAI:
    • Revised freqAI strategy interface. Make sure to familiarize yourself with the new methods! Follow the FreqAI Strategy migration guide to migrate to the new interface.

:warning: kucoin users should either stick to 2022.12, or update to the latest develop version. This version is known to not work with kucoin.

How to update

As always, you can update your bot using one of the following commands:

docker-compose

docker-compose pull
docker-compose up -d

Installation via setup script

# Deactivate venv and run 
./setup.sh --update

Plain native installation

git pull
pip install -U -r requirements.txt
Expand full changelog
4853cc127 Version bump to 2023.1
ede79590d Update ccxt compat tests with kucoin order
fee7b792e Bump ccxt
507d3d6d9 Add ci for binance.us
25dfbb5a0 Compare stake amout >= in backtesting
9286cbed8 add partial Docstring to backtesting enter_trade
c1e528e11 Version bump ccxt
f7f936c14 Typo fix
020dc3c6e filled-date shouldn't update again
aa1583758 Add test for filled_date not updating if it's already set
8647c0192 Fix typo
2333dbae4 Update reinforcement learning docs to use correct naming
bd913bc24 Disable provenance in buildx config for pi image
9652c00ac Don't amend docker manifest
6c0fa0dc1 Fix typo in docstring
078b43082 Add ccxt compat tests for order parsing
b0720fdcf Bump ccxt to latest version to fix timestamp parsing issues
7fc39eafb Bump ccxt from 2.6.39 to 2.6.58
14d9789f1 Bump types-dateutil for precommit
d3fbd41f5 Bump types-python-dateutil from 2.8.19.5 to 2.8.19.6
73414e0fb Bump types-requests in pre-commit
673f5c325 Bump types-requests from 2.28.11.7 to 2.28.11.8
b104b54e6 Bump pandas from 1.5.2 to 1.5.3
13f6529cc Bump nbconvert from 7.2.7 to 7.2.8
0642a2768 Add missing bracket
58ad5a683 Fix wrong import order in script
79d0fd937 Update pyright config to align with mypy
741d2db33 Enable implicit_optional for telegram
795934116 Remove optional_untyped from config
2bf4cf7d5 Update scripts to PEP484
8108a48f3 Follow PEP 484 - no implicit optionals
bb355cfac improve naming of backtest function
80bb12002 Simplify backtesting by removing now unnecessary private function
89eb1b008 funding-fees need to be recalculated for detailed timeframes, too.
1211b7225 Add test to show behavior reported in #7978
772800bf7 Fix bug in stake_amount adjustment
865d67830 Add backtest_detail test for futures
28e51e2df Simplify some test setups
58d48e79d Convert tests/datadir to path object - better mirroring an initialized configuration
a5d87859d Refactor test to reuse variable
6e2260738 Add 5m futures testdata to support detail-backtest tests
dbddc4c8a Improve wording on adjust_trade_position callback warning
20093ea09 Add warning about callback call frequency in backtesting
81349c2a0 Remove edge section from config template
07c391322 Remove edge from sample configs (except full).
a398f4730 Add documentation note about RSA exchange keys
a27e63a54 Bump ccxt to 2.6.39
892fb77ec Update mypy pre-commit hook
634b80f0e Add tests for plotconfig in ws mode
2298656e4 Bump api_version to 2.23
3216a05a9 Enable plot_config to work in webserver mode
da0992f85 add Config typehint in rpc
00fa90442 update config-freqai-example to match latest binance futures pair syntax
c8ecedf6d Clarify a variable via typehint
6a4fc33c3 Remove <3.8 bandaid
7092212ed re-add futures tickers quoteVolume assert
7713f343a Bump ccxt to 2.6.26
98dcab49a Add fetch_tickers test for futures
b4fcda2c1 add aiohttp proxy
92a5efad0 Fix set_test_proxy usage
b193d8418 Deepcopy config before adding proxies
f46b62f1a Attempt to use and setup a proxy for CI
394a973bb Revert "Attempt to use and setup a proxy for CI"
48ae248d2 Attempt to use and setup a proxy for CI
8cfa5934d Catch AttributeError when importing modules
813724bd8 Add a new analysis group to output stats grouped by exit_tag
8de10e374 Bump mkdocs-material from 9.0.3 to 9.0.5
7f4883008 Bump pymdown-extensions from 9.9 to 9.9.1
a4b2dc30b Bump tensorboard from 2.11.0 to 2.11.2
8dce617ad Bump fastapi from 0.89.0 to 0.89.1
283c1968b Bump cryptography from 38.0.1 to 39.0.0
0296061e4 Fix version comparison to use packaging.version
178a4c886 Bump requests from 2.28.1 to 2.28.2
7785809f4 Bump pytest from 7.2.0 to 7.2.1
59e6f19dd Bump xgboost from 1.7.2 to 1.7.3
dc7b8ac7b Bump ccxt from 2.6.6 to 2.6.24
d24fce83d Bump orjson from 3.8.4 to 3.8.5
9b97ddd0f Bump urllib3 from 1.26.13 to 1.26.14
270eed7e1 Fail if detecting invalid ccxt version for binance futures
ab12aace5 changed `trades_space` to `max_open_trades_space`
b0f1d914c Changed max_open_trades type to int or inf
ce323e66a Remove note about binance futures naming
e14f2cc27 Add db migration test
5d4a247fa Add test for binance data migration
cbcee02de call data migration from backtesting
1fc97a800 use Unified futures naming for futures throughout tests
9d1cf040f Update test leverage tiers
4ea8962ca Rename futures test data
47b50a8a2 Udpate binance leverage tiers to new pair format
c93b265ec Run migration commands on certain data commands
0be0ef9e7 Remove duplicate binance test
0d1172ca4 Update binance future test
e43b9b65f increase minimium ccxt version to 2.6.6
b024fafaf Use futures_pair in ccxt test correctly
5b3304189 trading_mode is not necessarily mandatory
183bf6819 Update binance pair naming in ccxt test
5ad664aac Update binance futures name to swap
9cb7d6c26 Run binance futures migrations on startup
bfd7803fd Update freqai-reinforcement-learning.md
ee7b505dc Add data migration method
b1bfd7674 Add binance futures db migration
1cf69f139 refactor "--version" to use "pathlib" instead of "os"
9d647fd19 Fix websockets for dataframes with NaT entreis
684de1937 Fix link syntax to actually work
08748dd02 fix "--version": needs to change working directory
4abf06119 docs: fix broken link to quickstart
00dbc195a Update huobi ci to use BTC markets
2241f2429 moved deprecated warning to start function
67495530b Add FreqAI migration documentation
93aff9325 improve deprecation note
a61274ae1 ensure cached corr-pairs works with new framework
fbdda8cd1 Always pass Dictionaries to testclient post requests
3ca2dfc07 Bump httpx from 0.23.1 to 0.23.3
0aca0d20d Add some feature flags for mkdocs migration
43b49fef4 Bump orjson from 3.8.3 to 3.8.4
25fd1ea63 Bump mkdocs-material from 8.5.11 to 9.0.3
3b69745c3 Bump ccxt from 2.5.46 to 2.5.56
79fe8fd85 Bump fastapi from 0.88.0 to 0.89.0
d32d70d2e Bump sqlalchemy from 1.4.45 to 1.4.46
c198ca296 Bump scipy from 1.9.3 to 1.10.0
2f0eb95d0 Bump lightgbm from 3.3.3 to 3.3.4
7d27afd4b Fixed test broken due to change in trades_space range
ad4954194 Adapt Tests for new mandatory columns
305b067e4 Support having no Amount/Price available from the exchange initially
fd694f14c Add new order columns, ft_amount and ft_price
10d8b016e Changed max_open_trades default range for optimization
f77dffc95 align to develop
464cb4761 Fixed max_open_trades update from hyperopt
550ab2b8e Improve select_order to only consider filled where needed.
34dbe9dea Improve fixture fake results
1d5440ff7 Bump ccxt from 2.4.60 to 2.5.46
c7f485687 Fix ccxt test failure
7bf531c8b isort fix
c1042996d flake8 fix
6198b2100 update calmar loss
d3b1aa7f0 update sortino calc
157bf962f add missing imports
86ba7dae9 change sharpe hyperopt loss
787d292ba Move "drop_candle" decision to coroutine
abdeb72eb fix tests
d91ac8b66 improve wording in freqai doc
bdf6537c6 Remove unused (and pointless) exchange method
4bac66ff0 Type ohlcv coroutine
75b0a3e63 Use dedicated type for OHLCV response
92800930e Improve backtest detail speed
5257e8b3e Fix random test failures on 3.8
ed99e7f85 fix corr_pairs startup candle count bug
8e5b4750d Continue in "regular backtest" case (no detail-data available).
647063575 In cases of no losing trade, sortino ratio can't be calculated.
f2fa476dc max_open_trades should be an integer
801ab39a2 fix get dataframe data to include startup_candle
1c5e17268 docs update
5fd85368a Added support for max_open_trades hyperopting
c384d1357 Update FreqaiExampleStrategy.py
6f031f005 Fix flake error
63db1fd89 Fix Backtesting  Analysis Column Wrong
314c0925b fix get dataframe data to include startup_candle
73114b93c Update FreqaiExampleStrategy.py
2c430c806 Fix ROI table comma and spacing
52dfb0452 Update freqai-feature-engineering.md
724465c79 Bump pydantic from 1.10.2 to 1.10.4
488b4512e Bump time-machine from 2.8.2 to 2.9.0
d304f95c1 Bump filelock from 3.8.2 to 3.9.0
74b924471 type ccxt_compat tests
cd7bd9bf9 Update gate liquidation price link
6498e352c Remove pointless default
97e8bb09e Update exchange documentation with note about leverage
5188464fc fix typo
c8aa7720a added again feature check in BT from pred files
b39fc6b92 remove add pair to column from docs, fix keyerror bug and adjust hybrid strategy example
b2bab68fb move price assignment to feature_engineering_standard() to reduce un-requested feature additions in RL. Ensure old method of price assignment still works, add deprecation warning to help users migrate their strategies
798438df9 Extract funding-rate call to separate method
499cc5bae Better visualize downloaded candletype in debug mode
2e30bdb9b freqai bt - fix tests
2b89f643b adjust backtest to new feature engineering functions
c78b2080c Add exception test for interest function
6ef15802e make tables an optional dependency
2805e83c9 Bump Develop version to 2023.1
6434bf674 Document new backtesting metrics
32bbe603c Fix sortino std calculation
6f7eb71bb ensure RL works with new naming scheme
d5b516842 Fix 2 docstrings
f21185d1c Add tests for new metrics
c2936d551 improve doc, update test strats, change function names
8227b4aaf freqAI Strategy - improve user experience
d60b38dad Bump tables from 3.7.0 to 3.8.0
6353f3ac1 fix formulas and implement new metrics
7a5439321 Show new metrics in backtesting
89c7c2fec isort fix
611e35ed8 flake8 fix
f410b1b14 Update metrics.py

2022.12

1 year ago

Highlighted changes

  • Enhanced Producer logic, reducing memory usage while improving performance (:warning: this is a breaking change - producer and consumer must be updated together).
  • --timeframe-detail now properly simulates all candles at detail timeframe, significantly increasing backtesting accuracy.
  • New pairlist RemotePairList - allowing a pairlist to be loaded from file or from an API.
  • Removal of deprecated trade.enter_side (use trade.entry_side instead).
  • FreqUI
    • Auto-refresh chart.
    • Order action notifications (fill / cancel).
    • Backtesting support for freqAI strategies.
  • FreqAI enhancements:
    • Reinforcement learning.
    • Improvements to Tensorboard logging.
  • JOSS paper has been accepted. Great job @robcaulk and everyone else involved in making this happen!

How to update

As always, you can update your bot using one of the following commands:

docker-compose

docker-compose pull
docker-compose up -d

Installation via setup script

# Deactivate venv and run 
./setup.sh --update

Plain native installation

git pull
pip install -U -r requirements.txt
Expand full changelog
8e8f71ade Version bump 2022.12
5cb8fe1a5 Add JOSS badge to freqtrade docs and readme.md
c52910f28 Improve resiliance against invalid data
4d112def1 Remove binance AD from docs page
cd4faa9c5 keep max_stake_amount through backtests
62c4675e2 Remove some deprecated fields from the API
cb66663fd show max_stake_amount in API
55001bf32 Keep max_stake_amount (only relevant for DCA orders).
6f2c3e252 Split migration and persistence tests
20901c833 Improve `purge_old_models` explanation
882e68c68 Rename backtest-result from new to "not new".
6a15a9b41 Update backtest-result_new
1cef40a13 Bump numpy from 1.23.5 to 1.24.1
63f114395 is_short should be a boolean
aaeeb8662 Bump ccxt from 2.4.27 to 2.4.60
c5b246af8 Bump isort from 5.11.3 to 5.11.4
00112d81d Bump types-requests pre-commit
9a556d263 Remove all mac conflicts
18709406c use link overwrite
9ea8792d3 Attempt brew fix
3993bd7c1 Bump types-requests from 2.28.11.5 to 2.28.11.7
e0f60e175 Bump pre-commit from 2.20.0 to 2.21.0
b1bf6d8dc Bump nbconvert from 7.2.6 to 7.2.7
ce13ce4b1 Update binance stoploss order types
524da3c7a Don't actually load models to avoid random failures
ad0d7c9a9 Don't allow DCA trades to go beyond max order size
2a7369b56 fix macos CI
73792fd6c Don't attempt to convert None to dict
70531224e Allow setting identifier via UI
07606a9e2 Simplify APi backtest config merging
6d9f1fafb allow backtest_cache to be provided via backtest API
256fac2a2 Add test for freqaimodels endpoint
5dbd5c235 Add endpoint for freqAI models
a119fbd89 Small error-message finetuning
ebf60d85d self._init_done placed wrong. fixed
43f5a1600 parse exception handling, remove info, cache change
4bad2b5c0 Apply suggestions from code review
5b9e3af27 improve wording
5405d8fa6 add discussion and tips for Base3ActionRLEnvironment
a276ef4b0 ensure long only RL is tested
86b30d2d6 Improve emc test resiliancy
0c8d657d9 update types-dateutil precommit
fa87e0807 Bump ccxt from 2.2.92 to 2.4.27
7216d140d Bump torch from 1.13.0 to 1.13.1
06225b950 Bump types-python-dateutil from 2.8.19.4 to 2.8.19.5
d86885c7f Bump blosc from 1.10.6 to 1.11.1
b61fc161b Bump isort from 5.10.1 to 5.11.3
6380c3d46 reduce duplicate code, fix cache check
bb33b96ba init cache on first iteration, init checks, limit length and charmap to info replace if invalid, move filter logic
1f4cc145c Move trade docs to advanced section
eda72ef26 Add documentation for Order object
a439488b7 Add initial trade_object documentation
bad6fe77d Remove deprecated trade property
329a0a3f4 Update docs/freqai.md
c293401b2 Add can_short to freqai base model
e60404715 Enable RL tests on arm mac
a8c9aa01f Add 3ac test
7727f3150 Add 3 Action RL env
dde363343 Add can_short param to base env
e4284f4e7 add citation to freqai doc. Update credits
36948e2a7 fix base4 env done condition
935275010 Remove some unused fixtures
32d57f624 delisted bibox following ccxt PR https://github.com/ccxt/ccxt/pull/16067
6fa3db3a1 Fix failing tests
cd1b8b9ce single space removed for the unit test to pass..
1d5c66da3 + Unit Tests
581a5296c fix docstrings to reflect new env_info changes
7b4abd5ef use a dictionary to make code more readable
7a0eadbdf Don't recalc profit on closed trades
33dce5cf1 Clarify partial exit calculation messaging
ca2a878b8 Update test naming
3af2251ce Fix add_state_info backtesting bug
2018da076 Add env_info dict to base environment
fa260e656 Move "replace or append" decision to dataprovider
dac1c8ab8 fix isort
2285ca7d2 add dp to multiproc
de19d1cfb fix doc minimal_roi
97fee3707 Improve emc test
7f3524949 - print
d52c1c755 Add unit tests
1d92db780 Change CI to actually run one 2 randomized point.
fed46d330 Revert "Bump scikit-learn from 1.1.3 to 1.2.0"
c042d0146 Don't run gc_setup during tests
0dd3836cc fix rpc method docstring
1c0c4fd42 Improve test
a693495a6 Improve external_candle aggregation
96edd3145 Test add_external_candle
414c0ce05 change unused var
6717dff19 update overlapping candle handling, move append to misc
0602479f7 minor changes, update candle appending to support overlaps
f1ebaf473 fix tests
49f6f4066 remove comment
0d5b2eed9 fix same candle handling
d376bf405 fix indefinite reconnecting
ccd1aa70a change log calls to debug, handle already received candle
c050eb8b8 add candle difference calculation to dataprovider
89338fa67 allow specifying channel send throttle
d2c8487ec update add_external_candle, fix breaking on ping error, handle empty dataframes
fce1e9d6d update analyzed df request to allow specifying a single pair
36a00e8de update add_external_candle returns
4cbb3341d change how missing candles will be handled
9660e445b use new channel apis in emc, extend analyzed df to include list of dates for candles
abc3badfb Improve shutdown behavior
5c984bf5c Temporarily downgrade blosc for arm64
6f92c58e3 add docs, add bearer token.
f940280d5 Fix tensorboard_log incrementing note
f9b7d3590 add increment param for tensorboard_log
f6b90595f remove html. change var names.
de9784267 Bump filelock from 3.8.0 to 3.8.2
915e0ac62 Bump ccxt from 2.2.67 to 2.2.92
bc2b9981d Bump python-telegram-bot from 13.14 to 13.15
2647c35f4 Bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.4
034420337 Bump sqlalchemy from 1.4.44 to 1.4.45
5a7b493d3 Bump xgboost from 1.7.1 to 1.7.2
562564801 Bump pytest-asyncio from 0.20.2 to 0.20.3
a35111e55 Bump nbconvert from 7.2.5 to 7.2.6
63d3a9ced Bump prompt-toolkit from 3.0.33 to 3.0.36
434eec733 Bump blosc from 1.10.6 to 1.11.0
78c40f053 Bump scikit-learn from 1.1.3 to 1.2.0
0fd8e214e add documentation for tensorboard_log, change how users interact with tensorboard_log
cb8fc3c8c custom info to tensorboard_metrics
8c7ec0795 ensure predict_proba follows suit. Remove all lib specific params from example config
85f22b5c3 fix bug in MultiOutput* with conv_width = 1
6b9f3f279 Fix test validation
980a5a9b5 Fix docs typo
1da8ad69d improve more tests by freezing time
bbedc4b63 Stop clock to avoid random failures on slow CI runs
3d3a7033e Improve Docker documentation wording
74e623fe5 Improve kraken test resiliance
66412bfa5 Remove unnecessary loop
7efcbbb45 Local File Loading
da2747d48 Add Local .json file Loading
7b3406914 flip add_state_info
9b4364ddc ensure that add_state_info is deactivated during backtesting
b144a6357 Remove Duplicate
547a75d9c Fix Info
607d5b2f8 Split to fetch_pairlist function, Info Message
48160f3fe Flake 8 fix, Json Fetching
199fd2d07 +Remote Pairlist
58604c747 cleanup tensorboard callback
227cdb093 Change dict update order
26a61afa1 Move base tf logic to config validation
bc48099e4 Revert changes
62c69bf2b fix custom_info
72472587d Increase test range for api version test
7c27eedda Bump API version
24edc276e Simplify new_candle message
d30a872ed Move message-silencing list next to enum
687eefa06 Improve emit_df testcase
5e533b550 Emit a simple "new candle" message to allow UI's to refresh charts
189fa6405 Add more dynamic to directory change
730fba956 Ensure base tf included in include_timeframes
e734b3992 Make model_training_parameters optional
102ab91fa Bump orjson from 3.8.2 to 3.8.3
179adea0e Bump ccxt from 2.2.36 to 2.2.67
82d4dca18 Bump mkdocs-material from 8.5.10 to 8.5.11
2eb8f9f02 Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.6.1
66bb2c525 Bump fastapi from 0.87.0 to 0.88.0
caae4441e Bump jsonschema from 4.17.1 to 4.17.3
441069f36 Bump pandas from 1.5.1 to 1.5.2
16bad8dca Bump pymdown-extensions from 9.8 to 9.9
133a081a3 Bump pytest-random-order from 1.0.4 to 1.1.0
d8565261e ignore initializer type
24766928b reorganize/generalize tensorboard callback
f7b4fc5bb Update freqai-reinforcement-learning.md
38d3b4cab add details to doc plot_feature_importance doc
b2edc5808 fix flake8
d6f45a12a add multiproc fix flake8
469aa0d43 add state/action info to callbacks
075c8c23c add state/action info to callbacks
7ddf7ec0a Update freqai-parameter-table.md
05424045b Temporarily disable since binance blocks US
77dc2c92a performance improvevemnts - backtest freqai from saved predictions
2b3e166dc fix fees RL
eb81ccced add download-data command change directory fix relative config path
396e666e9 Keep old behavior of model loading
4a9982f86 Fix sb3_contrib loading issue
95651fcd5 Improve/simplify telegram exception handling
59c7ce02f binance restricted locations and server location
79821ebb3 fix flake8 errors
e7f72d52b bring back market side setting in get_state_info
17cf3c7e8 bug fixes and removed fillna from fit_live_predictions
10a45474e Update data-analysis.md
4571aedb3 consolidate and clean code
3c322bf7d Improve forceenter validation messages
8ea58ab35 change BT prediction files to feather format
b87545cd1 Bump torch from 1.12.1 to 1.13.0
5500c10f7 Improve CI file layout
2c75b5e02 Extract "live" test from regular tests
8efa8bc78 Update stable-baselines3 to 1.6.2
e891c4176 Fix typo in ipynb, too.
9cbfa1201 Directly set model_type in base RL model
05a7fca24 Fix utils docs for backtesting-analysis
9880e9ab6 Fix typo in strategy_analysis_example.md
dc03317cc Bump jsonschema from 4.17.0 to 4.17.1
d73fd4276 Fix flake8 error introduced with 6.0 update
9c28cc810 Bump cryptography from 38.0.1 to 38.0.4
348731598 Bump ccxt from 2.1.96 to 2.2.36
a46b09d40 Bump prompt-toolkit from 3.0.32 to 3.0.33
924bbad19 Bump pyarrow from 10.0.0 to 10.0.1
5aec51a16 Bump urllib3 from 1.26.12 to 1.26.13
7e75bc8fc Bump sb3-contrib from 1.6.1 to 1.6.2
49e41925b Bump flake8 from 5.0.4 to 6.0.0
f21dbbd8b Update imports of custom model
56518def4 isort
7fd6bc526 add randomize_starting_position to the rl_config
25e041b98 sneak in small change to FreqaiExampleHybridStrategy docstring and startup count
64d4a52a5 Improve the RL learning process
67d946927 small wording fix
a02da0806 Fix typo
320535a22 improve tests doc wording
a85602eb9 add "how to run tests"
5b5859238 Fix typo
fe00a6516 FIx custom reward link
cf000a4c0 Bump develop version to 2022.12-dev
e4a3efc7d Don't use strategy.stoploss too often
1a3f88c7b Replace separate start/end date option with usual timerange option
51d21b413 Fix 4ac update_total_profit
4790aaaae Implement cli options for backtesting-analysis date filtering
a26b3a9ca change sleep call back to 0.01
b52f05923 fix list to array in constants.py
be890b52f remove np import
aaaa5a5f6 add documentation for net_arch, other small changes
fcf13580f Revert "offload initial df computation to thread"
7b0a76fb7 Improve typehint
7ebc8ee16 Fix missing Optional typehint
8660ac9aa Fix import in docs
cf2f12b47 Headers between Tables -> Tables can be jumped to directly
bdfedb5fc Improve typehints / reduce warnings from mypy
81fd2e588 ensure typing, remove unsued code
8dbfd2cac improve docstring clarity about how to inherit from ReinforcementLearner, demonstrate inherittance with ReinforcementLearner_multiproc
9f13d99b9 improve parameter table, add better documentation for custom calculate_reward, add various helpful notes in docstrings etc
bd95392ee fix formatted string in warning message :)
4aa4c6f49 change sleep in channel send to 0
f268187e9 offload initial df computation to thread
afc00bc30 log warning if channel too far behind, add docstrings to message stream
391817243 Tidy up complex functions
fc59b0225 prevent ws endpoint from running without valid token
101dec461 close ws channel if can't accept
2e82e6784 move data_provider cleanup to shutdown()
73c458d47 use importlib instead of __import___
00d2a01bf isort
3a07749fc fix docstring
8855e36f5 reduce freqai testing time by reducing retrain frequency and number of features
44b042ba5 remove unused function
8f1a8c752 Add freqairl docker build process
e5fc21f57 Fix broken table rendering
3d26659d5 Fix some doc typos
48242ca02 update catch block in cancel channel tasks
d09157efb update code to use one prediction file / pair
a5442772f ensure only broadcasting to subscribed topics
c01f25ddc update code to freqai_backtest_live_models only from historic predictions
d9d7df70b fix tests, log unknown errors
d2870d48e change typing to async iterator
48a1f2418 update typing, remove unneeded try block, readd sleep
60a167bde add dynamic send timeout
fdc82af88 fix tests - update code to backtest with historic_predictions
3714d7074 smaller throttle in channel send
c1a73a551 move sleep call in send, minor cleanup
80d070e9e update code to use historic_predictions for freqai_backtest_live_models
d02da279f document the simplifications of the training environment
0cb6f71c0 better error handling, true async sending, more readable api
61a859ba4 remove tensorboard req from rl reqs
60fcd8dce fix skipped mac test, fix RL bug in add_state_info, fix use of __import__, revise doc
3903b04d3 save_live_data_backtest - added docs and tests
99bff9cbf backtesting_from_live_saved_files - code refactoring
913749c81 backtesting_from_live_saved_files - code refactoring
b01e4e3db change default value - save_live_data_backtest as false
442467e8a remove old comments and code
d713af045 remove main queue completely
659c8c237 initial revision
bf4d5b432 ensure model_type is defined
6394ef455 fix docstrings
c8d3e5771 add note that these environments are designed for short-long bots only.
c76afc255 explain how to choose environments, and how to customize them
96fafb7f5 remove limit_ram_use
b421521be help default ReinforcementLearner users by assigning the model_type automatically
90f168d1f remove more user references. cleanup dataprovider
f8f553ec1 remove references to "the user"
388ca2120 update docs, fix bug in environment
3c249ba99 add doc for data_kitchen_thread_count`
af9e40056 add test coverage, fix bug in base environment. Ensure proper fee is used.
81f800a79 switch to using FT calc_profi_pct, reverse entry/exit fees
259f87bd4 fix rl test;
e71a8b8ac add ability to integrate state info or not, and prevent state info integration during backtesting
27fa9f1f4 backtest saved dataframe from live
7adca9735 Improve python GC behavior
9c6b97c67 ensure normalization acceleration methods are employed in RL
6746868ea store dataprovider to self instead of strategy
6ff0e66dd ensure strat tests are updated
4f0f3e5b6 removed unnecessary code
8ee95db92 refactoring backtesting_fit_live_predictions function
3e57c18ac add fix_live_predictions function to backtesting
8d9988a94 enforce date column in backtesting freqai predictions files
9c5ba0732 save predictions with date and merge by date
2c1330a4e Update docs to new behavior
ded57fb30 Remove no longer valid test part
d089fdae3 Fix current-time_det calculation
5bd3e54b1 Add test for detail backtesting
0888b53b5 Udpate current_time handling for detail loop
29ba263c3 Update some test parameters
a11d579bc Verify order fills on "detail" timeframe
a2843165e fix leftovers from merge
51b410ac1 Update utils.md
8c39b3722 Update bug_report.md
35cc6aa96 Update data-analysis.md
67850d92a Update question.md
fe3d99b56 Update feature_request.md
11d6d0be9 Update sql_cheatsheet.md
abcbe7a42 Update updating.md
d42722690 Update docker_quickstart.md
8d7adfabe clean RL tests to avoid dir pollution and increase speed
3e258e000 Don't set use_db without resetting it
b9f1872d5 Install RL dependencies as dev dependency
e5204101d add tensorboard back to reqs to keep default integration working (and for docker)
488739424 fix reward inconsistency in template
017e476f4 add extras to setup.py for RL
cf10a76a2 bring back Trades.use_db = True
17fb7f7a3 gym needs 0.21 to match stable_baselines3
ab4705efd provide background and goals for RL in doc
b5dd92f85 remove RL reqs from general FAI reqs
936ca2448 separate RL install from general FAI install, update docs
8c7f47872 Update requirements-freqai.txt
292d72d59 automatically handle model_save_type for user
cf882fa84 fix tests
ab9d781b0 add reinforcement learning page to docs
6e74d4666 Ensure 1 thread available
7ef56e302 Ensure at least 1 thread is available
555cc4263 Ensure 1 thread is available (for testing purposes)
dcf6ebe27 Update BaseReinforcementLearningModel.py
83343dc2f control number of threads, update doc
099137ada remove hasattr calls
9e36b0d2e fix formatting
caa47a2f4 close subproc env on shutdown
647200e8a isort
77c360b26 improve typing, improve docstrings, ensure global tests pass
9c361f442 increase test coverage for RL and FreqAI
95121550e Remove unnecessary models, add model arg
f7dd3045f Parameterize backtesting test
f5cd8f62c Remove unused code from BaseEnv
1c56fa034 add test_models folder
7295ba0fb add test for Base4ActionEnv
f6e9753c9 show advanced users how they can customize agent indepth`
eeebb78a5 skip darwin in RL tests, remove example scripts, improve doc
7b1d409c9 fix mypy/flake8
d056d766e make tests pass
025b98dec bring back doc sentence
3b97b3d5c fix mypy error for strategy
8aac64400 add tests. add guardrails.
48140bff9 fix bug in 4ActRLEnv
27dce20b2 fix bug in Base4ActionRLEnv, improve example strats
240b52953 fix tensorboard path so that users can track all historical models
2493e0c8a Unnecessary lines in Base4, and changes for box space, to fit better for our needs (#7324)
1a8e1362a There was an error in the docs around continual learning and thread count (#7314)
67cddae75 fix tensorboard image
af8f30858 start the reinforcement learning doc
7766350c1 refactor environment inheritence tree to accommodate flexible action types/counts. fix bug in train profit handling
8c313b431 remove whitespace from Dockerfile
baa4f8e3d remove Base3ActionEnv in favor of Base4Action
cdc550da9 Revert the docker changes to be inline with the original freqtrade image
d31926efd Added Base4Action
3199eb453 reduce code for base use-case, ensure multiproc inherits custom env, add ability to limit ram use.
05ccebf9a automate eval freq in multiproc
94cfc8e63 fix multiproc callback, add continual learning to multiproc, fix totalprofit bug in env, set eval_freq automatically, improve default reward
d1bee29b1 improve default reward, fix bugs in environment
a61821e1c remove monitor log
bd870e233 fix monitor bug, set default values in case user doesnt set params
c0cee5df0 add continual retraining feature, handly mypy typing reqs, improve docstrings
b708134c1 switch multiproc thread count to rl_config definition
b26ed7dea fix generic reward, add time duration to reward
280a1dc3f add live rate, add trade duration
f9a49744e add strategy to the freqai object
a2a4bc05d Fix the state profit calculation logic
29f0e01c4 expose environment reward parameters to the user config
d88a0dbf8 add sb3_contrib models to the available agents. include sb3_contrib in requirements.
8b3a8234a fix env bug, allow example strat to short
8cd4daad0 Feat/freqai rl dev (#7)
3eb897c2f reuse callback, allow user to acces all stable_baselines3 agents via config
4b9499e32 improve nomenclature and fix short exit bug
4baa36bdc fix persist a single training environment for PPO
f95602f6b persist a single training environment.
5d4e5e69f reinforce training with state info, reinforce prediction with state info, restructure config to accommodate all parameters from any user imported model type. Set 5Act to default env on TDQN. Clean example config.
7962a1439 remove keep low profit
81b5aa66e make env keep current position when low profit
45218faeb fix coding convention
d55092ff1 Docker building update, and TDQN repair with the newer release of SB+
74e4fd063 ensure config example can work with backtesting RL
b90da46b1 improve price df handling to enable backtesting
2080ff86e 5ac base fixes in logic
16cec7dfb fix save/reload functionality for stablebaselines
0475b7cb1 remove unuse code and fix coding conventions
d60a166fb multiproc TDQN with xtra callbacks
dd382dd37 add monitor to eval env so that multiproc can save best_model
69d542d3e match config and strats to upstream freqai
e5df39e89 ensuring best_model is placed in ram and saved to disk and loaded from disk
bf7ceba95 set cpu threads in config
57c488a6f learning_rate + multicpu changes
48bb51b45 example config added
b1fc5a06c example config added
6d8e838a8 update tensorboard dependency
acf3484e8 add multiprocessing variant of ReinforcementLearningPPO
cf0731095 type fix
1c81ec601 3ac and 5ac example strategies
13cd18dc9 PPO policy change + verbose=1
926023935 make base 3ac and base 5ac environments. TDQN defaults to 3AC.
096533bcb 3ac to 5ac
718c9d044 action fix
9c78e6c26 base PPO model only customizes reward for 3AC
6048f60f1 get TDQN working with 5 action environment
d4db5c328 ensure TDQN class is properly named
91683e1dc restructure RL so that user can customize environment
ecd1f55ab add rl module
70b25461f add rl dependency
9b895500b initial commit - new dev branch
cd3fe4442 callback function and TDQN model added
01232e9a1 callback function and TDQN model added
8eeaab274 add reward function
ec813434f ReinforcementLearningModel
2f4d73eb0 Revert "ReinforcementLearningModel"
c1e7db313 ReinforcementLearningModel
05ed1b544 Working base for reinforcement learning model

2022.11

1 year ago

Highlighted changes

  • FreqUI will now show you all adjustment orders.
  • ShuffleFilter shuffle behavior can now be configured (once per candle (default), once per iteration).
  • Dropped support for 32bit Python under Windows.
  • OKX - bigger timeframes now in UTC (6h+). Please redownload your data for these timeframes! (this impacts mark and ohlcv candles, but not funding rates). :warning:
  • Fix a memory leak in producer/consumer mode caused by pandas.
  • Temporary fix for Kraken data-downloads, which broke mid-November due to an API update.
  • Fix freqAI native installation on M1 Macs.
  • freqAI
    • up to 10x performance boost with indicator caching, vectorized normalization, and optional single precision (reduce_df_footprint = true)
    • FreqaiMultiOutputClassifier allowing as many classifier targets as desired (CatboostClassifierMultiTarget, LightGBMClassifierMultiTarget)
    • Backtest directly on models collected during live/dry run (--freqai-backtest-live-models)

How to update

As always, you can update your bot using one of the following commands:

docker-compose

docker-compose pull
docker-compose up -d

Installation via setup script

# Deactivate venv and run 
./setup.sh --update

Plain native installation

git pull
pip install -U -r requirements.txt
Expand full changelog
5c571f565 Version bump 2022.11
21d740629 Temporary fix for kraken download
dba30393f ensure extra_returns_per_train are set properly on first hist_preds build
9af62ad11 Add note to dev docs about freqUI release
ce213b55a Bybit fix candle limit
756921b16 Update fthypt file
79c041b62 Update tests for new export format
8c014bd36 Export trade-counts to csv
8ee8b6e94 Improve hyperopt list output
0f97ef0d7 Reset stoploss_order_id when order is canceled
1b3e62bcb Lock execute_entry to prevent timing hickups
c593cdc43 Improve type hints
5e6cda11e Update method name for trade fee updating
048119ad3 Improve doc wording around informative pair candle types
b8d1862ca Update cached binance leverage tiers
c963fd720 Slightly change test setup for dry_run_order_fill
335de760e Enable --use-pep517 flag for freqai
bd05f85c2 Simplify ssl documentation
fff745fd8 add map to nginx config
5a489ce71 Fix docs typo
86ff71152 update docs on reverse proxy
8cb2b4666 Improve proxy docs
0fa521704 Improve protection setup
7c00ef8a7 Bump pre-commit requests version
adc1174d2 Bump types-requests from 2.28.11.4 to 2.28.11.5
2df0d613d Bump types-dateutil for precommit
beec9e2d1 Bump mypy from 0.990 to 0.991
f09fb2374 Bump orjson from 3.8.1 to 3.8.2
8d1ee67ed Bump httpx from 0.23.0 to 0.23.1
844334a7e Bump uvicorn from 0.19.0 to 0.20.0
ec15ef039 Bump nbconvert from 7.2.4 to 7.2.5
3f9dacc9b Bump ccxt from 2.1.75 to 2.1.96
5cce8f4f2 Bump types-python-dateutil from 2.8.19.3 to 2.8.19.4
0cb08024f Bump numpy from 1.23.4 to 1.23.5
edb817e2e add tutorial for ssl in docs
106ac2ab4 fix tests, change to get call
12b471c64 Prevent 2 parallel open orders through forceentry
b6a8e421f remove redundant timestamp conversion in ws serializer
12cd83453 Add warning when queue websocket queue becomes too full
4c7bb79c8 Restore prior data transfer format
436b314c8 add safe_remaining
1975e942d Add test for no remaining
48e5a4585 rpc_test: dont replicate whole response,
ce43fa5f4 small fix to websocketchannel and relay
875e9ab44 change df serialization to avoid mem leak
9432bcd06 Fix telegram error on force_enter exception
a993cb512 change to get call in ws_client
0a7f4fd3c fix httpx test warning
afcb86f42 Improve migration types
93addbe5c Improve typechecking
097af973d improve RPC testcase to cover open orders
1380ddd06 update ws client
019577f73 Temporarily Downgrade cryptography until piwheels has the new wheel available
86e094e39 update docs
6a1655c04 support ssl connections in emc
0a702cdd2 Ensure more methods are typechecked
f27be7ada Configure mypy to old behavior
a951b4954 Use Generator when sending initial dataframes
30b467906 Delist FTX, following ccxt's delisting.
c72ffad69 Add starlette test dependency
c12dcd9b9 update pre-commit dateutil
4cece8720 Bump mypy from 0.982 to 0.990
721998521 Bump types-python-dateutil from 2.8.19.2 to 2.8.19.3
60449d9be Bump cryptography from 38.0.1 to 38.0.3
cf5cda4df Bump sqlalchemy from 1.4.43 to 1.4.44
7275d4851 Bump ccxt from 2.1.54 to 2.1.75
60de797dc Bump psutil from 5.9.3 to 5.9.4
b2de07046 bump types-requests
9843fb208 Bump mkdocs-material from 8.5.8 to 8.5.10
bbfcaca9e Bump pymdown-extensions from 9.7 to 9.8
48c4d8d2d Bump types-requests from 2.28.11.2 to 2.28.11.4
ce269b798 Bump fastapi from 0.85.1 to 0.87.0
9d8d18d76 Bump pytest-asyncio from 0.20.1 to 0.20.2
001602e03 Bump nbconvert from 7.2.3 to 7.2.4
3e6834e3f Bump tensorboard from 2.10.1 to 2.11.0
42b29cd30 Fix constants type
1e9e7887a fix constants.py, fix freqai test
a59d61472 Add test for dataframe footprint reduction
942840da2 Improve setting wording to keep future possibilities open
c6013e581 Fix doc typo
535c365b4 Disable ftx ccxt_compat tests
fed3bc673 Simplify Websocket Init
914bdbdd8 Remove FTX from list of supported exchanges
954da4fec Add "forcebuy error" exception log
ee0e59157 Update join relationship of orders table to selectin
8c092d457 Update README.md
214c62247 move dataframe converter to converter.py
e46a57bbd move mem logs to debug
66514e84e add LightGBMClassifierMultiTarget. add test
054133955 fix loading of metric tracker from disk
4664d5e1d Split installation to onCreateCommand
0f9c5f8d4 Simplify timerange handling
57313dd96 Update some usages of timerange to new, simplified method
3e676dbaa Add properties to simplify timerange handling
7147f52e0 FreqAI also requires plotting dependencies
be83e7341 add pip install
88ad3fe43 Remove typo from main page
22c419d5c Add warning about FTX
9e17eabd0 Improve Bybit configuration
ec6ee7ead remove empty space
795328051 remove github.copilot extension
037363f9e support git and local changes in dev containers #7723
d3006f7f3 Bump ccxt to 2.1.54
f43f96704 Improve handling of unfilled stoploss orders in edge-cases
ea489133a Bump catboost from 1.1 to 1.1.1
884014a4b Fix some minor typos
5ba012c59 Disable "tick" in test_update_funding_fees_schedule
850b04357 Bump mkdocs-material from 8.5.7 to 8.5.8
d978ff6bf Bump orjson from 3.8.0 to 3.8.1
0bb57f738 Bump pytest from 7.1.3 to 7.2.0
37e066bd7 Bump prompt-toolkit from 3.0.31 to 3.0.32
224507dfa Bump progressbar2 from 4.1.1 to 4.2.0
f174b41fd Bump sqlalchemy from 1.4.42 to 1.4.43
01a31a6e0 Bump mkdocs from 1.4.1 to 1.4.2
1814f2560 Bump xgboost from 1.6.2 to 1.7.1
3cbbfde6b Bump jsonschema from 4.16.0 to 4.17.0
29585b5ec Improve worker iteration logic
2068a44fd Add test for new behavior
d48a9ae96 Add leverage to backtest results
1d2b89bc1 Improve handling of get_fee to not allow impossible combinations
3af177d8a bump ccxt to 2.1.33
43bdd3496 Optimize reduce_dataframe_footprint function
25b8d34fe Update backtesting test
53df60706 avoid duplicating features with okx/gateio, ensure inference timer gets logged
6e09d552a Properly handle and test ohlcv min_max with empty files
257c83383 add doc for single precision, dont allow half precision, add test
d4cfcbda2 move write_metrics_to_disk to proper place in param table
3ccc120f9 add option to force single precision
8bdc99a3d fix self-imposed bug
19d90b813 improve readibility in start_backtesting()
a7acfb7ab fix dict key error
90c5bfb4b add default conv_width
05b309caf ensure colon replaced for cached attach
6938ed658 change default conv_width to 1
db942321a fix bug with lightgbm and colons
d721b5023 flake8
3ba1e221e fix typo
6c4bdb8f6 remove special characters from feature names
356d79b38 verify mean and std exists in model metadata
ff619edeb Improve explanation comment as to why we're waiting ourselfs
b749f3edd add latency measure from ping in emc and ws_client
a0965606a update ws_client more verbosity, better readable time delta
000b0c219 prevent memory leaks from error in _broadcast_queue_data
cbede2e27 refactor channel.send to avoid queue.put
2dc55e89e better error handling channel send
55bf195bf remove debugging log calls
c2bdaea84 change exception handling in channel send
d848c2728 add task done to broadcast queue method
b3b756ec1 ensure test pass
e25dea7e0 update channel disconnecting
ce9273113 ensure backwards compatitibility
23b6915dd fix issue with different backtesting prediction size
1a38c10fc remove old code
255eb7127 start tracking the current candle in FreqAI, add robustness to corr_df caching and inference timer, add test for cache corr_df
63458a613 isort
2afa185dc add integrated tests for PCA and DBSCAN
d9f41e557 Update pyarrow prebuilt wheel
162056a36 fix flake8
97df232ac add a warning to __init__ for get_corr_dataframes
7b880a969 change elect to decide
fbc281e69 fix grammar, remove hyperlink
c3c6733b2 add statement of need to FreqAI docs
0f2e540a6 Update windows documentation about 32bit Windows
b3f612ecf Bump ccxt to 2.0.96
aa3d6dc29 Bump uvicorn from 0.18.3 to 0.19.0
be67eb958 Bump psutil from 5.9.2 to 5.9.3
39f145e7b Bump websockets from 10.3 to 10.4
ac86d1945 Bump ccxt from 2.0.58 to 2.0.90
7e12d0322 Bump colorama from 0.4.5 to 0.4.6
a5824f5cf Bump pyarrow from 9.0.0 to 10.0.0
7348a8074 Bump nbconvert from 7.2.1 to 7.2.3
30f0a4dba Bump pycoingecko from 3.0.0 to 3.1.0
eb01bed33 Bump scikit-learn from 1.1.2 to 1.1.3
41c2dc2c6 Bump plotly from 5.10.0 to 5.11.0
a49edfbae add tests for CatboostClassifier
d59a7fa2f remove analysis_lock and realign example hybrid strat
707b224af Update generic CI's to ubuntu 22.04
391c3f56f Add typehint to corr_pairlist
bd051cb20 Remove pandas workaround for pi image
7053f81fa simplified predict and predict_proba using super(). Added duplicate class label check.
fc53054d4 leverage list length knowledge, f-string change
f98c7a242 Remove loop of normalization from metadata
5c14aeddc Add "--log-file" alias for "--logfile"
501335114 Rename "shuffle" parameter to "shuffle_freq"
a323acf34 Improve ShufflePairlist to shuffle only once per candle
c26fda282 fix missing f-string from PR #7611
650bb8b7d ensure full pair string is used for caching dataframes. If not, revert to old behavior. Update docs.
352adaf12 Improve readability of is_time_to_refresh function
b7d2c14f2 Improve trading limits docs to mention upper limits
c23a9475e Move exchange utilities into separate module
777af5517 Version bump develop version to 2022.11-dev
6ef82dd8b minor change to return
1c9864012 Delete MultiTargetClassifierTestStrategy.py
a9a3ceadf Delete config_test.json
255f38537 Simplify stoploss behavior by combining more commonalities
6e0ca058f Update function-head for _get_stop_params
cf6b75a3f Use combined stoploss_adjust where possible
b9bf9edb0 update rapidjson opts
217add70b add strat and config for testing on PR
47056eded multi target classifier working but not for parallel
51be45547 remove np object, make default str
4d2b7a74f move record params to utils, use rapidjson
bb0674522 fix tests
07e813dfa change param record to only get certain params
c4a2ee05e fix freqai test
4464e9125 use self.identifier in full path
5ee3b8cbb update config recording to use all configs, fix tests
6606a0113 refactoring - remove unnecessary config file
a9db66808 avoid redundant indicator population for corr_pair list
4e1bf7923 backtest live models - documentation
6919f3aa7 Backtest live models - fix utc date convert issue
01e3507e4 fix freqai backtest live models
6845a5c6e backtest_live_models - refactoring after PR review
55ebbeec1 backtest_live models tests refactoring
0be115de9 backtest_live_models - added new tests and refactoring
72aa47fc5 backtest_live_models - fix issue with timerange BT and 2 trainings within same candle (no data)
14b96aaa3 backtesting live models - fix ci issues
290afd969 backtest_live_models - fix typo
0318ca9f1 backtest_live_models - fix typo
22bef71d5 backtest_live_models - add function comments and tests
ec947ad65 remove commented code - backtest_live_models
5880f7a63 backtest_live_models - params validation and get timerange from live models in BT
0ed7b2bfc change start_backtesting to handle backtest_live_models
7f116db95 added generic function to get timerange from existent models
3ee7eb63f starting backtest live models

2022.10

1 year ago

Highlighted changes

  • ProducerPairList - use pairs from a producer in your consumer.
  • Breaking change partial exit values will now be assumed to be stake_amount without leverage.
  • Breaking change custom_stoploss will be called with the candle's high (and corresponding profit) - to better mirror trailing_stop behavior.
  • Support for partially filled exit order cancellations (will be handled as partial exits - unless the remaining value would become unsellable).
  • send_msg() support for websockets and discord.
  • New subcommand list-freqaimodels to visualize available Model classes.
  • Improved iteration throttling, making sure data is available as soon as a new candle is available.
  • FreqAI enhancements
    • tensorboard integration for catboost.
    • new XGBoost freqAI models in XGBoostRFRegressor and XGBoostRFClassifier.

How to update

As always, you can update your bot using one of the following commands:

docker-compose

docker-compose pull
docker-compose up -d

Installation via setup script

# Deactivate venv and run 
./setup.sh --update

Plain native installation

git pull
pip install -U -r requirements.txt
Expand full changelog
ec7d66349 Version bump 2022.10
9e0b39cdd Properly invert sign
d831d7d31 Rename Freqai hybrid example
fd5f31368 fix indent in initial df send
604f966c8 Enhance documentation with full space override sample
d94c0039e Add missing import to hyperopt docs
3fa50077c Don't use pydantic to type-verify outgoing messages
1ef38f137 Fix XGBoost regressor "used before assignment"
f12d40bd6 Update freqai-running.md
283dab667 Fix pydantic version pin
f70c00dd4 Improve variance around worker timing test
32600a113 fix broadcast
f93b6eec6 Improve timing for worker throttling
5bbd86151 Update binance sample config with better blacklist
6669714a7 Update mal-formatted docstrings
ba82cd9ba bump types-python-dateutil for pre-commit
b9bc91a88 Bump correct pandas version
afe0a29fb Bump pandas from 1.5.0 to 1.5.1
af89c83fa Bump pymdown-extensions from 9.6 to 9.7
06311b6a1 Bump pyjwt from 2.5.0 to 2.6.0
0328cd502 Bump scipy from 1.9.2 to 1.9.3
bde4fbbc5 Bump types-python-dateutil from 2.8.19.1 to 2.8.19.2
e516190b6 Bump mkdocs-material from 8.5.6 to 8.5.7
3480549f4 Bump python-rapidjson from 1.8 to 1.9
54d029da7 Bump ccxt from 2.0.25 to 2.0.58
96f4de442 Bump progressbar2 from 4.0.0 to 4.1.1
c29f96a64 Bump pytest-asyncio from 0.19.0 to 0.20.1
94b65a007 fix message typing in channel manager, minor improvements
49ff51f11 Change storage loc and fix test fail
10090a36d simplify throttle
d0571464d Improve test for worker throttle
c36141594 Simplify "refresh" condition
9cffa3ca2 add comment in channel
3d7a311ca removed sleep calls, better channel sending
2b6d00dde initial channel api change
abcc6dadf use pre-built pyarrow for pi image
47e93dd2b Update documentation
3a9853db1 use high/low for custom stoploss evaluation in backtesting
84a194bca Simplify stoploss logic by removing redundant condition
547fd2881 Price-jump detection should only run once
0ff7a0771 Move price_jump_warn to dataloading
b715d9c52 Improve fee handling
d1591883a add missing datetime conversion in fromJson
212b511bb Remove explicit rateLimit setting for freqAI config
bd424a877 Add Trade from_json method
0aa840792 Move persistence tests to package
f4814a7d5 Improve test resiliance to small roundings
107845afa Keep version number in docker versioning
60cb11a44 Add price jump warning
589944055 fix typos - live predictions candles
073ce1659 remove un-used f-string
295ba2138 Make extra_returns_per_train values available during backtest
7192ed7be Fix bug with dataframe not being 0 indexed
6e95b6667 Modify test ensuring we always have a 0 index
033c5bd44 Make check constant pred labels agnostic
c3d4fb9f1 Simplify backtest calling interface
c7fff1213 Rate-limit EMC startup to avoid overwelming the queue
441032be2 Fix sys.stdout bug for CatboostRegressorMultiTarget
b166c04cb Bring back asyncio.sleep to avoid overwelming the a consumer queue
c8e103e4a Adjust typehints to match return value
c2914feb1 Don't fail contract size repopulation if pair is no longer available
caf907e20 Update date-util precommit types
943f5f21f Improve get_pair_dataframe doc wording
abe4d32ea Update wording in get_analyzed_dataframe docs
6cb14148a Fix random test failure due to catboost bug
6252ae466 Convert position_stacking to attribute of backtest
8534dfb0d Extract backtest 1 candle from main function
0e8cf366f Keep trade state in LocalTrade
5aeea5b14 Bump ccxt from 1.95.30 to 2.0.25
7ec1e3b94 Bump fastapi from 0.85.0 to 0.85.1
600b88624 Bump lightgbm from 3.3.2 to 3.3.3
a9bb7db06 Bump sqlalchemy from 1.4.41 to 1.4.42
2ddfc7bbb Bump mkdocs from 1.4.0 to 1.4.1
8550eb513 Bump numpy from 1.23.3 to 1.23.4
dd3f62ac1 Bump types-python-dateutil from 2.8.19 to 2.8.19.1
e82baf5f6 Use helper-method to modify trades_open
82d75d891 Fix tests that failed due to new strategy.
b7dce8d24 Update stoploss.md
de9f5660f Fix counting available trade slots in backtesting.
b6c096d3b Simplify backtest condition
20fc52177 Fix constant PCA
99dbba6ca avoid reading from disk to instantiate large objects
d81eef0b7 add timestamps to each metric, use rapidjson
05ca725e4 Remove no longer needed local state
c8e6dad9c use exit_reason to determine left open trades
498289728 Fix catboost tests polluting CWD
93ad3810f Add test for list-freqaimodels
4bfe58706 Generalize "path" variables for resolvers
2ef315e8c Add documentation for list-freqaimodels
fda3a2827 add list-freqAI models command
4a8cb3359 Fix broken tests
9d4ba767c Update usages of search_all_objects
1d8d360a1 update _search_all_objects functioning
7f05b4437 Add eval set to CatboostClassifier
f01947105 Don't round prices if no custom prices have been used
7672586de Fix unreliable hyperopt test
c71c0e8da Fix some typos
28be784c2 Fix kucoin live test failure
204578081 Reinstate default of 1000% for roi
f8331e032 Add model libs info
75f1a123e Move "tickers_needed" check to pairlistmanager to cover all pairlists
39c27cfc3 Don't fail if fetchTickers is not availlable
96e6c1b19 Docs: add `ignore_buying_expired_candle_after` and `order pricing` to summary
a6f6a1739 Type fetch_ticker
52e952836 Improve ticker type
35f3f988d Improve price handling in priceFilter
afaca2167 use Type Alias for Ticker result to improve keyerror resiliancy
1e31be562 remove whitespace
dba1b573b remove tensorboard dir from other pred models
88b8f1863 add test for metric tracker
5b5bb8aab catboost tensorboard bugfix
30a45bb59 add XGBoostRF models to freqai test interface
16c0fef72 update timestamp calculation to correct int, remove internal ping interval
eb8c89fe3 move send delay to relay
5ada5eb54 fix error message, update exception import
c9eee2eba revert syntax
724be0afe add tensorboard asset to fai doc
5ffa3cb9b Update docs to mention `freqaimodels` directory
ee0d90d1a Automatically create freqai models directory
002a46c5a Fix typo in docstring
2ad086dd7 add XGBoost random forest predictors to freqai
eaae9c9e0 Update docstring format
60de192d4 Update Classifier docstrings
d3b2b2972 Update pairlist docstring to be less missleading
6be9b81f4 Fix workflow syntax error
d0b163764 Run coveralls only when needed
f120c6698 types-requests - update pre-commit
5218fb1df Bump types-requests from 2.28.11 to 2.28.11.2
13529fabb types-tabulate in pre-commit
3fcba2fb8 Remove hard-pin on python version in ci
c1dfa837b Bump mypy from 0.981 to 0.982
935adc99a Bump types-tabulate from 0.8.11 to 0.9.0.0
9d2f281ca Bump pytest-mock from 3.9.0 to 3.10.0
8bb7b94f8 Bump ccxt from 1.95.2 to 1.95.30
dab2759c2 Bump scipy from 1.9.1 to 1.9.2
40afa079b Bump tabulate from 0.8.10 to 0.9.0
337ea04ba Bump nbconvert from 7.0.0 to 7.2.1
db8cf6c95 disable ping interval in client
71bbffd10 update ws channel send to add data to queue
2c76dd9e3 change wait timeout to 30 seconds to better support reverse proxies
2f64a0862 set channel queue maxsize to 32
3e8d8fd1b refactor broadcasting to a queue per client
a4aa1b972 isolate and standardize location of tensorboard files, add doc, ensure backtesting functionality
76b33359a add an optional metric tracker to collect train timings, inference timings, and cpu load data
a10b2d003 Add freqai timeframe validation (incl. test)
4623c3ec1 Improve test resiliance
4f967fed9 Improve ccxt tests
db1132beb ensure required_candle_call_count is always set
8e3a4eca4 Remove unused type:ignore
4daf0000c Move check and add log warning
9454fb8f7 Fix discord message sending
df5ae6625 Refactor webhook method
1aedf08ba Update tests
ed12cddf3 Update docs with new wording for webhook settings
fb2f2d9a3 Allow webhook message setting directly
e337d4b78 Reset dataframe index after slice
0460f362f typo in handle func name
8fcb80df6 Add support for dp.send_msg() to webhooks
ec7af83c8 add tensorboard to freqai reqs
d42fb1560 Improve generic exception handler
a5bf34587 Improve fiat-convert behavior in case of coingecko outage
fab6b2f10 Align datetime import in fiat_convert
1595e5fd8 small fix in protocol
b92b98af2 fix formatting
3e08c6e54 testing/debugging ws client script
6e179c769 Only store tick refresh time if we cache
a9d5e04a4 Remove constant labels from prediction
86c781798 Add сatboost train_dir for tensorboard
7c702dd10 Add cache eviction
92a1d58df Evict cache if we didn't get new candles for X hours
f475c6c30 Add Specific, time-sensitive test-case for new behavior
638515bce Test advanced caching
678272e2e Improve test formatting
cea017e79 Age out old candles
b7f26e4f9 Update some formatting issues
02e238a94 Combine ohlcv data in exchange class for live mode
edb942f66 Add typing import to sampleStrategy
9b1fb02df Refactor generic data generation to conftest
7dbb78da9 Losely pin pydantic to avoid dependency problems
0d67afe15 allow less precision, ensure regex is catching the right chars
4edb30bfa isort
0e0bda8f1 improve freqai tests
ca913fb29 Add leveraged test-case for order-adjustment
4df533feb Add missing comma
5019300d5 Fix for #7534 in bot
3264d7b89 Fix for #7534 in backtesting
c1d8ade2f Improve supported exchange check by supporting exchange aliases
68db0bc64 move check_exchange to exchange package
a6296be2f Update market_change datatype
eb8eebe49 Reset open_order_id after trade cancel
016e43846 Calculate market-change in hyperopt
bc6729f72 Improve readability of "now_is_time_to_refresh"
7f308c518 Remove last occurance of timerange index
7f475e37d refactor refresh_latest_ohlcv
ca22d857b Improve handling of trades that fail to cancel as they are closed
3585742b4 remove trailing whitespace
265795824 make default type for close_price and date_pred np.nan
c2d0eca9d Remove backticks around FreqAI
6ecd92de4 Allow updating without changing identifier
a78d6a05a Bump mypy from 0.971 to 0.981
3c789bca6 Bump pymdown-extensions from 9.5 to 9.6
4cf4642a6 Parametrize EMC test
f3d4c56b3 Bump pytest-cov from 3.0.0 to 4.0.0
6defa6229 Bump mkdocs-material from 8.5.3 to 8.5.6
373132e13 Bump ccxt from 1.93.98 to 1.95.2
70d6c27e3 Bump pytest-mock from 3.8.2 to 3.9.0
0a7e4d6da Bump mkdocs from 1.3.1 to 1.4.0
f722104f7 Bump catboost from 1.0.6 to 1.1
6f7b75d4b Bump time-machine from 2.8.1 to 2.8.2
b70f18f4c add close price and date to historic_predictions
1727f99b5 Fix missing mock
21440eaec Fix typos and correct/improve descriptions
d0b8c8b1a improve invalid canceled order response handling
e686faf1b Remove faulty test cleanup
9bb061073 Improve tests
308fa4300 Don't use magicmock as trade object
564318415 Improve test resiliance
2c94ed2e5 Decrease message throughput
f4c6b99d6 remove commented lines
cd514cf15 fix inlier metric in backtesting
f2b875483 ensure raw features match when PCA is employed
6702a1b21 Update test to verify webhook won't log-spam on new messagetypes
8f8b5cc28 Disable log spam from analyze_df in webhook/discord
201bbbcee Okx formatting
a96aa568b Add binance futures mode checks
545d65235 Update okx exception wording
fad902693 Update updating docs
cdc01a078 Fix feature list match for pca
47ef99f58 Simplify interface to notify_exit_cancel
819488c90 Improve exit message wording
c946d3059 Add partial cancel message
649879192 Implement partial sell
d462f4029 Simple test improvements
bd664580f Don't unnecessarily reset order_id
cc06c60fd Fix pandas deprecation warnings from freqAI
0d8dfc1a9 Force joblib update via setup.py
f6a0d677d Remove pointless notification assignment
7dd984e25 Simplify cancel_entry
561600e98 Remove false test statements
2d2ff2fff remove unnecessary assignments and comments
34951f59d Update failing tests
be4813118 make shuffle false in constants
38aca8e90 fix failing svm test
b4fb28e4e Update tests for new dataload strategy
00965d8c0 Default to assume stored data only contains complete candles
772abfc6f Add default value for shuffle in docs
683b08432 Set train-test-split shuffle=False as default and remove stratification
255c748ca Update docs for new trade_position behavior
30a5bb08d partial exits should account for leverage
8eda3a45a Test backest detail with leverage
af59572cb prior pairlists should go first
bd106b4b8 Add tests for Producerpairlist
1bb45a265 Fix crash due to insufficient check
30d51b693 Move "pairlist" logging to manager
1c089dcd5 Add docs for Producer/consumer pairlist
527fd3613 num_assets should be optional
4940fa7be Add Producer Pairlist
0c810868d Add Dataprovider to pairlist