Skip to content

Releases: freqtrade/freqtrade

2022.3

27 Mar 13:52
2e397a8
Compare
Choose a tag to compare

Highlighted changes

  • Huobi added as officially supported exchange (including stoploss-on-exchange support).
  • Kucoin stoploss on exchange support.
  • Gate.io stoploss on exchange support.
  • FreqUI:
    • Rename your bots in the UI.
    • New Heikin Ashi mode.
  • Removal of long deprecated ticker_interval.
  • Simplify derived strategies by allowing "local" imports (e.g. from strategyfile import StrategyName).

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
fdfbafbb3 Version bump 2022.3
60f2a12bd Fix wrong datetime conversion
81957e004 Revert false update
2cb24ed31 Added in ms
a55bc9c1e Pin jinja in docs requirements
3f98fcb0d all datetime included again
d94b84e38 datetime included again
dae9f4d87 Update doc clarity, partially revert prior commit
094676def Removed old datetime keys and added timestamp
e7418cdcd Remove obsolete note box
487d3e891 Revert version to develop for now
c28e0b0d0 Bump types-tabulate from 0.8.5 to 0.8.6
7170b585f Bump mypy from 0.940 to 0.941
057db5aaa Bump types-requests from 2.27.12 to 2.27.14
03090d8f3 Bump pytest from 7.1.0 to 7.1.1
1a37100bd Bump types-python-dateutil from 2.8.9 to 2.8.10
5a136f04d Bump ccxt from 1.76.5 to 1.76.65
59c7403b1 Bump urllib3 from 1.26.8 to 1.26.9
1bc5d449a Bump cryptography from 36.0.1 to 36.0.2
f5e71a67f Bump pymdown-extensions from 9.2 to 9.3
e9c4e6a69 Update derived strategy documentation
6ec7b84b9 Modify hyperoptable strategy to use relative importing
49e087df5 Allow Strategy subclassing in different files by enabling local imports
fcec071a0 Use order date to fetch trades
8556e6a05 Automatically assign buy-tag to force-buys
aceaa3fae remove last ticker_interval compatibility shim
0f76b2373 update deprecation message for ticker_interval
eb08b9218 Raise exception when ticker_interval is set.
95f69b905 Remove ticker_interval support
73fc344eb Improve wording in docs
f55db8e26 Spreadfilter should fail to start if fetchTickers is not supported
96bf82dbc Remove gateio broker program
6024fa482 Use brackets to break IF lines
47317e0f0 version: use 'contains' to check for "develop" instead of literal comparison
89aae71c3 correcting docs for pricing of ask strategy
18030a30e Add exchange parameter to test-pairlist command
5462ff0eb Bump mypy from 0.931 to 0.940
404d700a7 Raise min-requirement for ccxt
3fbe4a994 Bump numpy from 1.22.2 to 1.22.3
a7133f197 Bump nbconvert from 6.4.2 to 6.4.4
4cbdc9a74 Bump types-requests from 2.27.11 to 2.27.12
3fc1c94ab Bump ccxt from 1.75.12 to 1.76.5
3a0ad2f26 Bump uvicorn from 0.17.5 to 0.17.6
7764ad154 Bump types-cachetools from 4.2.10 to 5.0.0
be5b0acfb Bump pytest from 7.0.1 to 7.1.0
c63b5fbbb Use last to get rates for /balance endpoints
32c06f4a0 Improve test
3133be19e Update precisionfilter to use last instead of ask or bid.
7146122f4 Update docstring
b8b56d95f Update missleading docstring
9107819c9 Fix order migration "forgetting" average
843606c9c gateio stoploss adjust
91549d325 Revert "stoploss_adjust fixed breaking tests"
7e7e59637 Revert "moved binance.stoploss_adjust to exchange class"
2ba79a32a Update docs/exchanges.md
f343036e6 Add stoploss-ordertypes mapping for gateio
7825d855c Fix flake8 error in tests
11c76c3c8 Check if timeframe is available before calling exchange
24f480b4c Double-check stoploss behaviour
9ff52c0a9 Add test for emergencysell behaviour
6f4d60790 stoploss_adjust fixed breaking tests
7db28b1b1 gateio stoploss docs
6bb93bdc2 moved binance.stoploss_adjust to exchange class
6e10439f9 Map usdt fiat to correct coingecko fiat
d47274066 Added stoploss_on_exchange flag to gateio
ae4742afc test_fetch_stoploss_order_gateio and test_cancel_stoploss_order_gateio
e3ced55f5 gateio.fetch_order and gateio.cancel_order
61182f849 exchange.fetch_order and exchange.cancel_order added params argument
f2ed6165e convert price to precision price before verifying stoploss adjustment
17041b78f Add stoploss-limit-ratio to full config sample
3c83d8c74 Bump actions/setup-python from 2 to 3
25964f70d Bump actions/checkout from 2 to 3
0c8dd7e50 Bump ccxt from 1.74.63 to 1.75.12
f1d2cb9ce Bump types-cachetools from 4.2.9 to 4.2.10
1d63bb66a Bump mkdocs-material from 8.2.3 to 8.2.5
67a8b8b63 Bump pytest-asyncio from 0.18.1 to 0.18.2
708def3d9 Bump sqlalchemy from 1.4.31 to 1.4.32
d74e3091d Bump fastapi from 0.74.1 to 0.75.0
be4bc4955 Explicitly check for None to determine if initial stoploss was set
c0e12d632 Add FTX ref links
e9456cdf1 Update trade response to use a single Order object
17c9c3caf Enable orders via API
71be547d8 Bump ccxt to 1.74.63
abc8854b5 setup.sh install gettext for mac
f74de1cca Improve Backtesting "wrong setup" message to include tradable_balance
54165662c Don't require unfilledtimeout, it's optional.
69cfb0b27 Revert change to telegram - this should be handled at the source
a2c987937 Reset sell-reason if order is cancelled
f26247e8e Revert wrong version string
68bc2a610 Add huobi to ccxt compat tests
207b211e5 Bump fastapi from 0.74.0 to 0.74.1
42fbec417 Bump ccxt from 1.74.17 to 1.74.43
faf6a35ad Bump types-requests from 2.27.10 to 2.27.11
590944a60 Bump mkdocs-material from 8.2.1 to 8.2.3
1ac360674 Update Readme quickstart
0ebf40f39 Don't call amount_to_precision twice on entry
41316abb5 Sort supported exchanges alphabetically
14d49e85a Update Huobi stoploss to shared method
a1f2f6dde Updates required for huobi datadownload
f3421dfa9 Use unified stopPrice argument
1b91be08f Add huobi to list of supported exchanges
292c35088 Add stoploss support for huobi
9504b3eb0 Improve huobi config generation
ee7bc5572 Add huobi to Exchange setup
2ec1a7b37 Add huobi exchange class
3942b30eb Add kraken TODO
6caa5f713 Update dry-run behaviour
074919909 Add stoploss tests for kucoin
020729cf5 update docs about kucoin stoploss
768b526c3 Add kucoin stoploss on exchange
7ba92086c Make stoploss method more flexible
ea197b79c Add some more logic to stoploss
1d57ce19e Move stoploss -limit implemenentation to exchange class, as this seems to be used by multiple exchanges.
df726a54f cater for case where sell limit order expired

2022.2.2

21 Mar 05:36
Compare
Choose a tag to compare

Highlighted changes

  • Remove shift in backtesting columns - so buy/sell/tag columns are available correctly via dataprovider
  • Added /health endpoint, showing the time of the last completed bot-cycle.
  • Improved "status" message when using multiple trade entries.
  • Improved sorting for PerformanceFilter for pairs without prior result (prior pairlist-ordering is kept for these pairs).
  • Changed sqlite mode to "wal" - fixing rare concurrency issues.
  • Backtesting improvements
    • dataframes retrieved via dataprovider no longer have shifted signals
    • Timeout handling - this will change how custom-pricing works in backtesting. check_buy_timeout() and check_sell_timeout() are now called in backtesting for orders with prices outside of the opening candle.

2022.2:

Fix coingecko duplicate USDT mapping

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
f9d10a7fa Version bump 2022.2.1
7883160ce Update to fstrings
018c62005 Fix 0 Division error on exchanges without average
a0b42c7aa gitignore  sqlite temporary files
5826698c0 Don't emergencysell partial sold exit
e88b022cd Version bump 2022.2
4b7271df4 Improve wording, add Picture detailing what must be installed.
3b1b66bee Prevent backtest starting when not in webserver mode
42df65d4e Make sure backtesting is cleaned up in tests
731eb9971 Update mock-trade creation to rollback first
5a4f30d1b Don't specially handle empty results.
1f9ed0bef Add test for wal mode
02ce0dc02 Set journal mode to wal for sqlite databases
b9a99bd0b Bump python-rapidjson from 1.5 to 1.6
7b6a0f7a1 Bump uvicorn from 0.17.4 to 0.17.5
d354f1f84 Bump mkdocs-material from 8.1.11 to 8.2.1
317487fef Bump ccxt from 1.72.98 to 1.73.70
dc8e9bab4 Bump fastapi from 0.73.0 to 0.74.0
d1cded353 Bump filelock from 3.4.2 to 3.6.0
21b5f56f7 Bump types-requests from 2.27.9 to 2.27.10
fddacfeda Remove returntype
a24586cd4 Update migrations for new column
6fb5b22a8 Some cleanup
dc7bcf5dd Update failing test
db540dc99 Orders should also store fee if in receiving currency
e9f451406 Use correct order id
874c161f7 Update more tests to use order_obj to update trade
508e677d7 Fix some tests to call update_trade with order object
1b1216fc8 Rename update_trade method
c13eed217 use Order object to update trade
d610b6305 Improve /balance output by removing trailing zeros
a7a25bb28 Update "round coin value" to trim trailing zeros
a32aed222 Update FTX stoploss code to avoid exception for stoploss-market orders
3785f04be Handle empty min stake amount as observed on FTX
0bbbe2e96 Add test for #6429
60d1e7fc6 fix stake amt
95d4a11bb add precision
eb88c0f71 fixed stake amount
e60553b8f Add max_entry_position hyperopt to docs
e7bfb4fd5 Add test case for "sell below close" case
b043697d7 Update config_full.example.json
78a93b605 noqa
3787b747a Simplify api schema by not using union types
64b98989d Update open candle ROI condition
7b2e33b0b corrects typo
30f6dbfc4 Attempt fix for #6261
acd7f26a9 update tc36 to properly cover #6261
5cc6c2afe Bump pytest-asyncio from 0.17.2 to 0.18.1
5062c17ac Bump pandas from 1.4.0 to 1.4.1
04c20afec Bump nbconvert from 6.4.1 to 6.4.2
7f8e956b4 Bump types-requests from 2.27.8 to 2.27.9
22036d69d Bump mkdocs-material from 8.1.10 to 8.1.11
b18e44bc4 Bump pytest from 7.0.0 to 7.0.1
1674beed9 Bump ccxt from 1.72.36 to 1.72.98
03d4002be Bump pymdown-extensions from 9.1 to 9.2
be8accebd Bump plotly from 5.5.0 to 5.6.0
ca6291479 Bump prompt-toolkit from 3.0.26 to 3.0.28
b1b8167b5 Update stop documentation
c769e9757 Improve "order refind" to also work for stoploss orders
119d4d520 select_order should use ft_order_side, not the exchange specific one
08803524b align variable naming to use current_time
c9cfc246f Sort /forcebuy pairs alphabetically, add cancel button
6511b3bec fix: rename buy_tag to entry_tag
d563bfc3d feature: add buy tag to forcebuy
6a5910386 update wallets in backtesting to ensure a fresh wallet is used
be84a028c Avoid mixed types in the api for /stats
af984bdc0 Update comment regarting NaT replacement
7252cf47f Update url to include campaign tracking
45c03f144 Docstrings are evaluated, while comments are not
a6a041526 Update intro message
1ba9b70af Improve index/readme wording
6d3803fa2 Add TokenBot promo
4e2f06fe9 Simplify band-aid code
6191288ff Add test for NaT problematic
1d10d2c87 Okex -> okx
172e018d2 Add probit to list of non-working exchanges
dcf8ad36f Backtesting should not allow unrealistic (automatic-filling) orders.
926b01798 Fix freqUI charts not displaying when dtype(datetime) column has NaT values
118ae8a3d Fix api_schemas/json_encoders by manually converting NaT values to empty Strings
b192c8273 Only call "custom_exit_price" for limit orders
d2dbe8f8d Improve doc wording
85767d0d7 Add timedout_*_orders to tests
036c2888b Track timedout entry/exit orders
380e383ee Add log_Responses to full config example
4bce64b42 commented method deletition
92d1f2b94 fix tests
7811a36ae max_drawdown_abs calc fix & .DS_Store deletition
5047492f5 gitignore .ds_store files
8cdb6e077 DRAWDOWN_MULT back to a higher value as built-in for safer HOs first
f31fa07b3 Bump numpy from 1.22.1 to 1.22.2
2893d0b50 proper var name
94b546228 Bump python-telegram-bot from 13.10 to 13.11
b8af4bf8f Bump mkdocs-material from 8.1.9 to 8.1.10
110a270a0 Bump uvicorn from 0.17.1 to 0.17.4
576d5a5b4 Bump types-requests from 2.27.7 to 2.27.8
1e4368328 Bump ccxt from 1.71.73 to 1.72.36
22e395af8 Bump pytest from 6.2.5 to 7.0.0
e24c837e1 Bump scipy from 1.7.3 to 1.8.0
099a03f19 flake8
6d91a5ecb Change "buy" and "sell" to "entry" and "exit"
7d3b80fbd isort fix and leftover cleaning
6b5f63d4d change profit_ratio by profit_abs
ee2a7a968 Add tests for /status on closed trades
5eb502985 Performancefilter - improve sorting
ef086d438 Update PerformanceFilter test to run with USDT pairs
c19f3950d Add losing trade to usdt_mock_trades
0b01fcf04 Add ProfitDrawdownHyperoptLoss method
b657d2d8d Add Github funding
7232324eb Update missing doc segment
da73e754b Explicit map coingecko symbol to ID for bnb and sol
8f2425e49 Add rudimentary tests for pg-specific stuff
644442e2f Track timedout orders
17d748dd4 Improve handling of left_open_trades
2a3ab1ef6 1 more line to be hidden
6b9696057 Update documentation to require python3.8 everywhere
4cf514e29 fix flake8
131b2d68d reduce complexity (flake8)
0477070fa hide some lines if trade is closed
c4a54cc9c refinement of status
cfaf13c90 update
82006ff1d Update setup.sh
22173851d Detail tests for custom exit pricing
2a59ef731 Add detail tests for timeout behaviour
808cefe52 Update order_selection logic
9bf86bbe2 Extract backtesting row validation to separate function
58fad7277 Update wallets when necessary
e08006ea2 Adjust tests to use order Object
4ea79a32e Use Order object for ft_timeout check
1e603985c Extract backtesting order cancelling
6637dacd7 Extract protections in backtesting
7ac44380f Extract backtest order closing to models class
090554f19 Try fill backtest order imediately for adjusted order
f4149ee46 Force ROI to be within candle
44e616c26 Add unfilledtimeout to required props for backtesting
49cecf1cb Small cosmetic fix
9140679bf Backtest order timeout continued.
15698dd1c Fix errors so it runs, implement timeout handling.
f7a1cabe2 Add first version to fill orders "later" in backtesting
c12e5a3b6 Initial idea backtesting order timeout
761f7fdef fix: linter
e84a58de2 fix: don't use different configuration keys, just add as 2nd argument
a3e045f69 Plotting: add alias `--backtest-filename` for `--export-filename`
f8faf748d Simplify prepare_buy_details
1e6362deb Add test for new /status telegram message
29879bb41 Update wording to entry/exit
15d538956 Update /health endpoint to be in local timezone
5d0c2bcb4 Shift candles after pushing them to dataprovider
4b9d55dbe Add test for backtest dataprovider
1f26709ac changes
e72c3ec19 Commit just to force tests to run again.
78986a0de I sort managed to fit it on another row. Impressive.
acf6e9459 Fix unittest.
bf62fc9b2 Add /health endpoint that returns last_process timestamp, fix issue #6009
480ed90a0 create to_json function for Order
bd4014e1e Small cleanup
05046b9ee Add more info on status message
3d94d7df5 Update migrations for mariadb
c265f3932 Update sequences for postgres
19948a6f8 Try fix sequence migrations
5dca183b7 Combine order and Trade migrations to better facilitate migrations in advanced DB systems

2022.2.1

26 Feb 07:58
a568548
Compare
Choose a tag to compare

Highlighted changes

  • Remove shift in backtesting columns - so buy/sell/tag columns are available correctly via dataprovider
  • Added /health endpoint, showing the time of the last completed bot-cycle.
  • Improved "status" message when using multiple trade entries.
  • Improved sorting for PerformanceFilter for pairs without prior result (prior pairlist-ordering is kept for these pairs).
  • Changed sqlite mode to "wal" - fixing rare concurrency issues.
  • Backtesting improvements
    • dataframes retrieved via dataprovider no longer have shifted signals
    • Timeout handling - this will change how custom-pricing works in backtesting. check_buy_timeout() and check_sell_timeout() are now called in backtesting for orders with prices outside of the opening candle.

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
f9d10a7fa Version bump 2022.2.1
7883160ce Update to fstrings
018c62005 Fix 0 Division error on exchanges without average
a0b42c7aa gitignore  sqlite temporary files
5826698c0 Don't emergencysell partial sold exit
e88b022cd Version bump 2022.2
4b7271df4 Improve wording, add Picture detailing what must be installed.
3b1b66bee Prevent backtest starting when not in webserver mode
42df65d4e Make sure backtesting is cleaned up in tests
731eb9971 Update mock-trade creation to rollback first
5a4f30d1b Don't specially handle empty results.
1f9ed0bef Add test for wal mode
02ce0dc02 Set journal mode to wal for sqlite databases
b9a99bd0b Bump python-rapidjson from 1.5 to 1.6
7b6a0f7a1 Bump uvicorn from 0.17.4 to 0.17.5
d354f1f84 Bump mkdocs-material from 8.1.11 to 8.2.1
317487fef Bump ccxt from 1.72.98 to 1.73.70
dc8e9bab4 Bump fastapi from 0.73.0 to 0.74.0
d1cded353 Bump filelock from 3.4.2 to 3.6.0
21b5f56f7 Bump types-requests from 2.27.9 to 2.27.10
fddacfeda Remove returntype
a24586cd4 Update migrations for new column
6fb5b22a8 Some cleanup
dc7bcf5dd Update failing test
db540dc99 Orders should also store fee if in receiving currency
e9f451406 Use correct order id
874c161f7 Update more tests to use order_obj to update trade
508e677d7 Fix some tests to call update_trade with order object
1b1216fc8 Rename update_trade method
c13eed217 use Order object to update trade
d610b6305 Improve /balance output by removing trailing zeros
a7a25bb28 Update "round coin value" to trim trailing zeros
a32aed222 Update FTX stoploss code to avoid exception for stoploss-market orders
3785f04be Handle empty min stake amount as observed on FTX
0bbbe2e96 Add test for #6429
60d1e7fc6 fix stake amt
95d4a11bb add precision
eb88c0f71 fixed stake amount
e60553b8f Add max_entry_position hyperopt to docs
e7bfb4fd5 Add test case for "sell below close" case
b043697d7 Update config_full.example.json
78a93b605 noqa
3787b747a Simplify api schema by not using union types
64b98989d Update open candle ROI condition
7b2e33b0b corrects typo
30f6dbfc4 Attempt fix for #6261
acd7f26a9 update tc36 to properly cover #6261
5cc6c2afe Bump pytest-asyncio from 0.17.2 to 0.18.1
5062c17ac Bump pandas from 1.4.0 to 1.4.1
04c20afec Bump nbconvert from 6.4.1 to 6.4.2
7f8e956b4 Bump types-requests from 2.27.8 to 2.27.9
22036d69d Bump mkdocs-material from 8.1.10 to 8.1.11
b18e44bc4 Bump pytest from 7.0.0 to 7.0.1
1674beed9 Bump ccxt from 1.72.36 to 1.72.98
03d4002be Bump pymdown-extensions from 9.1 to 9.2
be8accebd Bump plotly from 5.5.0 to 5.6.0
ca6291479 Bump prompt-toolkit from 3.0.26 to 3.0.28
b1b8167b5 Update stop documentation
c769e9757 Improve "order refind" to also work for stoploss orders
119d4d520 select_order should use ft_order_side, not the exchange specific one
08803524b align variable naming to use current_time
c9cfc246f Sort /forcebuy pairs alphabetically, add cancel button
6511b3bec fix: rename buy_tag to entry_tag
d563bfc3d feature: add buy tag to forcebuy
6a5910386 update wallets in backtesting to ensure a fresh wallet is used
be84a028c Avoid mixed types in the api for /stats
af984bdc0 Update comment regarting NaT replacement
7252cf47f Update url to include campaign tracking
45c03f144 Docstrings are evaluated, while comments are not
a6a041526 Update intro message
1ba9b70af Improve index/readme wording
6d3803fa2 Add TokenBot promo
4e2f06fe9 Simplify band-aid code
6191288ff Add test for NaT problematic
1d10d2c87 Okex -> okx
172e018d2 Add probit to list of non-working exchanges
dcf8ad36f Backtesting should not allow unrealistic (automatic-filling) orders.
926b01798 Fix freqUI charts not displaying when dtype(datetime) column has NaT values
118ae8a3d Fix api_schemas/json_encoders by manually converting NaT values to empty Strings
b192c8273 Only call "custom_exit_price" for limit orders
d2dbe8f8d Improve doc wording
85767d0d7 Add timedout_*_orders to tests
036c2888b Track timedout entry/exit orders
380e383ee Add log_Responses to full config example
4bce64b42 commented method deletition
92d1f2b94 fix tests
7811a36ae max_drawdown_abs calc fix & .DS_Store deletition
5047492f5 gitignore .ds_store files
8cdb6e077 DRAWDOWN_MULT back to a higher value as built-in for safer HOs first
f31fa07b3 Bump numpy from 1.22.1 to 1.22.2
2893d0b50 proper var name
94b546228 Bump python-telegram-bot from 13.10 to 13.11
b8af4bf8f Bump mkdocs-material from 8.1.9 to 8.1.10
110a270a0 Bump uvicorn from 0.17.1 to 0.17.4
576d5a5b4 Bump types-requests from 2.27.7 to 2.27.8
1e4368328 Bump ccxt from 1.71.73 to 1.72.36
22e395af8 Bump pytest from 6.2.5 to 7.0.0
e24c837e1 Bump scipy from 1.7.3 to 1.8.0
099a03f19 flake8
6d91a5ecb Change "buy" and "sell" to "entry" and "exit"
7d3b80fbd isort fix and leftover cleaning
6b5f63d4d change profit_ratio by profit_abs
ee2a7a968 Add tests for /status on closed trades
5eb502985 Performancefilter - improve sorting
ef086d438 Update PerformanceFilter test to run with USDT pairs
c19f3950d Add losing trade to usdt_mock_trades
0b01fcf04 Add ProfitDrawdownHyperoptLoss method
b657d2d8d Add Github funding
7232324eb Update missing doc segment
da73e754b Explicit map coingecko symbol to ID for bnb and sol
8f2425e49 Add rudimentary tests for pg-specific stuff
644442e2f Track timedout orders
17d748dd4 Improve handling of left_open_trades
2a3ab1ef6 1 more line to be hidden
6b9696057 Update documentation to require python3.8 everywhere
4cf514e29 fix flake8
131b2d68d reduce complexity (flake8)
0477070fa hide some lines if trade is closed
c4a54cc9c refinement of status
cfaf13c90 update
82006ff1d Update setup.sh
22173851d Detail tests for custom exit pricing
2a59ef731 Add detail tests for timeout behaviour
808cefe52 Update order_selection logic
9bf86bbe2 Extract backtesting row validation to separate function
58fad7277 Update wallets when necessary
e08006ea2 Adjust tests to use order Object
4ea79a32e Use Order object for ft_timeout check
1e603985c Extract backtesting order cancelling
6637dacd7 Extract protections in backtesting
7ac44380f Extract backtest order closing to models class
090554f19 Try fill backtest order imediately for adjusted order
f4149ee46 Force ROI to be within candle
44e616c26 Add unfilledtimeout to required props for backtesting
49cecf1cb Small cosmetic fix
9140679bf Backtest order timeout continued.
15698dd1c Fix errors so it runs, implement timeout handling.
f7a1cabe2 Add first version to fill orders "later" in backtesting
c12e5a3b6 Initial idea backtesting order timeout
761f7fdef fix: linter
e84a58de2 fix: don't use different configuration keys, just add as 2nd argument
a3e045f69 Plotting: add alias `--backtest-filename` for `--export-filename`
f8faf748d Simplify prepare_buy_details
1e6362deb Add test for new /status telegram message
29879bb41 Update wording to entry/exit
15d538956 Update /health endpoint to be in local timezone
5d0c2bcb4 Shift candles after pushing them to dataprovider
4b9d55dbe Add test for backtest dataprovider
1f26709ac changes
e72c3ec19 Commit just to force tests to run again.
78986a0de I sort managed to fit it on another row. Impressive.
acf6e9459 Fix unittest.
bf62fc9b2 Add /health endpoint that returns last_process timestamp, fix issue #6009
480ed90a0 create to_json function for Order
bd4014e1e Small cleanup
05046b9ee Add more info on status message
3d94d7df5 Update migrations for mariadb
c265f3932 Update sequences for postgres
19948a6f8 Try fix sequence migrations
5dca183b7 Combine order and Trade migrations to better facilitate migrations in advanced DB systems

2022.2

25 Feb 14:15
8f7b857
Compare
Choose a tag to compare

Highlighted changes

  • Remove shift in backtesting columns - so buy/sell/tag columns are available correctly via dataprovider
  • Added /health endpoint, showing the time of the last completed bot-cycle.
  • Improved "status" message when using multiple trade entries.
  • Improved sorting for PerformanceFilter for pairs without prior result (prior pairlist-ordering is kept for these pairs).
  • Changed sqlite mode to "wal" - fixing rare concurrency issues.
  • Backtesting improvements
    • dataframes retrieved via dataprovider no longer have shifted signals
    • Timeout handling - this will change how custom-pricing works in backtesting. check_buy_timeout() and check_sell_timeout() are now called in backtesting for orders with prices outside of the opening candle.

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
3b1b66bee Prevent backtest starting when not in webserver mode
42df65d4e Make sure backtesting is cleaned up in tests
731eb9971 Update mock-trade creation to rollback first
5a4f30d1b Don't specially handle empty results.
1f9ed0bef Add test for wal mode
02ce0dc02 Set journal mode to wal for sqlite databases
b9a99bd0b Bump python-rapidjson from 1.5 to 1.6
7b6a0f7a1 Bump uvicorn from 0.17.4 to 0.17.5
d354f1f84 Bump mkdocs-material from 8.1.11 to 8.2.1
317487fef Bump ccxt from 1.72.98 to 1.73.70
dc8e9bab4 Bump fastapi from 0.73.0 to 0.74.0
d1cded353 Bump filelock from 3.4.2 to 3.6.0
21b5f56f7 Bump types-requests from 2.27.9 to 2.27.10
fddacfeda Remove returntype
a24586cd4 Update migrations for new column
6fb5b22a8 Some cleanup
dc7bcf5dd Update failing test
db540dc99 Orders should also store fee if in receiving currency
e9f451406 Use correct order id
874c161f7 Update more tests to use order_obj to update trade
508e677d7 Fix some tests to call update_trade with order object
1b1216fc8 Rename update_trade method
c13eed217 use Order object to update trade
d610b6305 Improve /balance output by removing trailing zeros
a7a25bb28 Update "round coin value" to trim trailing zeros
a32aed222 Update FTX stoploss code to avoid exception for stoploss-market orders
3785f04be Handle empty min stake amount as observed on FTX
0bbbe2e96 Add test for #6429
60d1e7fc6 fix stake amt
95d4a11bb add precision
eb88c0f71 fixed stake amount
e60553b8f Add max_entry_position hyperopt to docs
e7bfb4fd5 Add test case for "sell below close" case
b043697d7 Update config_full.example.json
78a93b605 noqa
3787b747a Simplify api schema by not using union types
64b98989d Update open candle ROI condition
7b2e33b0b corrects typo
30f6dbfc4 Attempt fix for #6261
acd7f26a9 update tc36 to properly cover #6261
5cc6c2afe Bump pytest-asyncio from 0.17.2 to 0.18.1
5062c17ac Bump pandas from 1.4.0 to 1.4.1
04c20afec Bump nbconvert from 6.4.1 to 6.4.2
7f8e956b4 Bump types-requests from 2.27.8 to 2.27.9
22036d69d Bump mkdocs-material from 8.1.10 to 8.1.11
b18e44bc4 Bump pytest from 7.0.0 to 7.0.1
1674beed9 Bump ccxt from 1.72.36 to 1.72.98
03d4002be Bump pymdown-extensions from 9.1 to 9.2
be8accebd Bump plotly from 5.5.0 to 5.6.0
ca6291479 Bump prompt-toolkit from 3.0.26 to 3.0.28
b1b8167b5 Update stop documentation
c769e9757 Improve "order refind" to also work for stoploss orders
119d4d520 select_order should use ft_order_side, not the exchange specific one
08803524b align variable naming to use current_time
c9cfc246f Sort /forcebuy pairs alphabetically, add cancel button
6511b3bec fix: rename buy_tag to entry_tag
d563bfc3d feature: add buy tag to forcebuy
6a5910386 update wallets in backtesting to ensure a fresh wallet is used
be84a028c Avoid mixed types in the api for /stats
af984bdc0 Update comment regarting NaT replacement
7252cf47f Update url to include campaign tracking
45c03f144 Docstrings are evaluated, while comments are not
a6a041526 Update intro message
1ba9b70af Improve index/readme wording
6d3803fa2 Add TokenBot promo
4e2f06fe9 Simplify band-aid code
6191288ff Add test for NaT problematic
1d10d2c87 Okex -> okx
172e018d2 Add probit to list of non-working exchanges
dcf8ad36f Backtesting should not allow unrealistic (automatic-filling) orders.
926b01798 Fix freqUI charts not displaying when dtype(datetime) column has NaT values
118ae8a3d Fix api_schemas/json_encoders by manually converting NaT values to empty Strings
b192c8273 Only call "custom_exit_price" for limit orders
d2dbe8f8d Improve doc wording
85767d0d7 Add timedout_*_orders to tests
036c2888b Track timedout entry/exit orders
380e383ee Add log_Responses to full config example
4bce64b42 commented method deletition
92d1f2b94 fix tests
7811a36ae max_drawdown_abs calc fix & .DS_Store deletition
5047492f5 gitignore .ds_store files
8cdb6e077 DRAWDOWN_MULT back to a higher value as built-in for safer HOs first
f31fa07b3 Bump numpy from 1.22.1 to 1.22.2
2893d0b50 proper var name
94b546228 Bump python-telegram-bot from 13.10 to 13.11
b8af4bf8f Bump mkdocs-material from 8.1.9 to 8.1.10
110a270a0 Bump uvicorn from 0.17.1 to 0.17.4
576d5a5b4 Bump types-requests from 2.27.7 to 2.27.8
1e4368328 Bump ccxt from 1.71.73 to 1.72.36
22e395af8 Bump pytest from 6.2.5 to 7.0.0
e24c837e1 Bump scipy from 1.7.3 to 1.8.0
099a03f19 flake8
6d91a5ecb Change "buy" and "sell" to "entry" and "exit"
7d3b80fbd isort fix and leftover cleaning
6b5f63d4d change profit_ratio by profit_abs
ee2a7a968 Add tests for /status on closed trades
5eb502985 Performancefilter - improve sorting
ef086d438 Update PerformanceFilter test to run with USDT pairs
c19f3950d Add losing trade to usdt_mock_trades
0b01fcf04 Add ProfitDrawdownHyperoptLoss method
b657d2d8d Add Github funding
7232324eb Update missing doc segment
da73e754b Explicit map coingecko symbol to ID for bnb and sol
8f2425e49 Add rudimentary tests for pg-specific stuff
644442e2f Track timedout orders
17d748dd4 Improve handling of left_open_trades
2a3ab1ef6 1 more line to be hidden
6b9696057 Update documentation to require python3.8 everywhere
4cf514e29 fix flake8
131b2d68d reduce complexity (flake8)
0477070fa hide some lines if trade is closed
c4a54cc9c refinement of status
cfaf13c90 update
82006ff1d Update setup.sh
22173851d Detail tests for custom exit pricing
2a59ef731 Add detail tests for timeout behaviour
808cefe52 Update order_selection logic
9bf86bbe2 Extract backtesting row validation to separate function
58fad7277 Update wallets when necessary
e08006ea2 Adjust tests to use order Object
4ea79a32e Use Order object for ft_timeout check
1e603985c Extract backtesting order cancelling
6637dacd7 Extract protections in backtesting
7ac44380f Extract backtest order closing to models class
090554f19 Try fill backtest order imediately for adjusted order
f4149ee46 Force ROI to be within candle
44e616c26 Add unfilledtimeout to required props for backtesting
49cecf1cb Small cosmetic fix
9140679bf Backtest order timeout continued.
15698dd1c Fix errors so it runs, implement timeout handling.
f7a1cabe2 Add first version to fill orders "later" in backtesting
c12e5a3b6 Initial idea backtesting order timeout
761f7fdef fix: linter
e84a58de2 fix: don't use different configuration keys, just add as 2nd argument
a3e045f69 Plotting: add alias `--backtest-filename` for `--export-filename`
f8faf748d Simplify prepare_buy_details
1e6362deb Add test for new /status telegram message
29879bb41 Update wording to entry/exit
15d538956 Update /health endpoint to be in local timezone
5d0c2bcb4 Shift candles after pushing them to dataprovider
4b9d55dbe Add test for backtest dataprovider
1f26709ac changes
e72c3ec19 Commit just to force tests to run again.
78986a0de I sort managed to fit it on another row. Impressive.
acf6e9459 Fix unittest.
bf62fc9b2 Add /health endpoint that returns last_process timestamp, fix issue #6009
480ed90a0 create to_json function for Order
bd4014e1e Small cleanup
05046b9ee Add more info on status message
3d94d7df5 Update migrations for mariadb
c265f3932 Update sequences for postgres
19948a6f8 Try fix sequence migrations
5dca183b7 Combine order and Trade migrations to better facilitate migrations in advanced DB systems

2022.1

03 Feb 11:30
d648206
Compare
Choose a tag to compare

Highlighted changes

  • New callback adjust_trade_position() - Which allows to increase position size on open trades (DCA trading).
  • Improved backesting logic for ROI (sell signal is now evaluated before ROI).
  • Backtest result caching (for repeated backtests via --strategy-list, or when no changes happened). This is enabled by default!
  • Improved memory-usage in backtesting and Hyperopt.
  • Updated Drawdown calculation to calculate drawdown of the account.
  • Improved VolumePairList Performance by excluding blacklisted pairs right away.
  • Improved freqUI mobile style.
  • check_*_timeout now also receives a current_time argument.
  • entry_tag is now a new optional argument for custom_entry_price, custom_stake_amount and confirm_trade_entry callbacks.
  • generate_estimator() implementations for hyperopt now requires an argument, dimensions. If you're implementing custom Estimators, please update your strategies.
  • Dropped python 3.7 support (aligns with pandas/numpy approach)

Please familiarize yourself with the relevant sections in the documentation before using any of the new features.

You can also sponsor my work on freqtrade via Github sponsors (link also includes Crypto addresses).


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
2d45163f8 Bump version to 2022.1
0058abcc2 Fix crash when no min-stake-amount could be determined
64d0c75bb Fix deprecation warnings
d96a354a3 Version bump ccxt to 1.71.73
479b56054 Add missing entry_tag argument to custom_entry_tag documentation
1a838680e docs: fix typo and fix markdown list rendering
f35c6545c Update strategy-callbacks.md
bc5adc018 Bump prompt-toolkit from 3.0.24 to 3.0.26
65526e980 Bump arrow from 1.2.1 to 1.2.2
8a9b70cc4 Bump pytest-mock from 3.6.1 to 3.7.0
ab5c1e6c1 Bump uvicorn from 0.17.0 to 0.17.1
15dbdfe13 Bump types-python-dateutil from 2.8.8 to 2.8.9
dbf222684 Bump nbconvert from 6.4.0 to 6.4.1
7d066d81c Bump mkdocs-material from 8.1.8 to 8.1.9
287e90af8 Bump ccxt from 1.70.45 to 1.71.46
7aae9565c Only look at buy orders when looking to recalculate trade value
da39ca665 fix new-config
aea84dc11 Limit should default to None when calling pair_candles
d1d520769 Improve status table for position adjust
e7409e74c Remove default from position_adjustment (otherwise strategy parameters won't work anymore)
fb3c67d86 Accept that keys sometimes are not provided
2ba2144df Add tests for ETH fiat_convert
660f474ab Fix ETH duplicate in CoinGecko
138e867a6 Filter tickers on stake-currency for kraken
9df7014de Skip kraken tests temporarily
b8f29802e another typo
cbd213bc0 fix typo
31211a33f Fix ETH duplicate in CoinGecko
002226f5f Update setting to max_entry_position_adjustment
4a2914d72 Update docs/docker_quickstart.md
4408f97a0 Added note to docker_quickstart.md
30b27ae73 explicit dtype
f7a5b2cb7 explicit dimensions, added **kwargs, updated docs
6e47d0673 Bump ccxt from 1.68.20 to 1.70.45
d9347e990 Update references to remove python 3.7 support
aacddf64c Add pandas 3.7 requirements workaround
45a229892 Re-add getting buy orders in docs
381bda1e4 Update test to add new argument
194a5ce3c Update advanced strategy template with missing methods
e25283022 Add entry_tag to "entry" callbacks
b8413410d Bump fastapi from 0.72.0 to 0.73.0
fd1828c28 Bump pandas from 1.3.5 to 1.4.0
cf79cef7b Bump types-filelock from 3.2.4 to 3.2.5
95c7d4868 Bump sqlalchemy from 1.4.29 to 1.4.31
12fabba78 Bump pytest-asyncio from 0.17.1 to 0.17.2
013262f7e Bump mkdocs-material from 8.1.7 to 8.1.8
138fd9440 Bump types-python-dateutil from 2.8.7 to 2.8.8
451eca51c Optimise the multiple usages of the same timestamp.
e67a54f7a Fix missing order time info in backtesting.
daee59f4f Reorder interface methods
57067ce88 Add tests for max_adjustment_buy handling
7429f535c Imrpove code by reusing available properties
6492e1cd7 Investigate random test failure
6613e3757 Additional fix
09db4bcad Don't use strings, use methods directly
51b94889b Just in case also check for closed to avoid counting in canceled orders.
8c79d5573 Fix issue #6268
821a9d9cd Add current_time to check_timeout functions for convenience
cc3852daf Add defaults to constants.py and update docs
56daafd6b Use realistic date for dry-run orders
7bef9a9b3 Extract timeout handling from freqtradebot class
82f0d4d05 set stoploss at trade creation
a35b0b519 Update forcebuy endpoint to support stake-amount
9ecd7400c Allow NaN when calculating digests
314a54488 Add Failing test for get_strategy_run_id
a43c08844 Allow @informative in webserver mode
bb1d8fb54 Improve message when no hyperopt fie is found
3249f9fb9 Add max buys on status table
d02acb21c Add simple test for #buy header
748381c5c Update based on flake8
e35a1e4a0 fix flake8
a9f14ac11 show buy_tag only if not None
8ce5536dd fix tests
4e9f0d89a add buy_tag to trade tooltip in plots
d54990585 Api-backtest to test new functionality
a6c7f4554 Update webserver backtseting to reuse prior results
e9baabce6 Store results when backtesting via API
f30580e5f Update freqtradebot.py
5fb951155 fix typo
62ea1a445 add lines to show_config message
2e537df35 Update strategy_resolver.py
afe46a55f Add documentation for --cache backtest option
d319204de Add note about legacy metadata format
7c010b305 Update strategy-callbacks.md
ac93eea58 update
5fffc5033 Rework backtesting --no-cahche to --cache=[none, day, week, month]. Fix an issue where config modification during runtime would prevent use of cached results.
5525fdae1 add max_buy_position_adjustment as attribute
3925e8a7e add "# Buys" column to status table
a4dbdb549 added type spec
a6a127f59 Update .gitignore
407c20412 Pass dimensions to generate_estimator
d918d24f0 Spreadfilter log % fix
d813fef95 Add asyncio_mode setting for pytest
9c9c9f017 Readd trailing white line
3de843ab2 Add eager-loading for orders. This allows access to trade.orders in all callbacks.
f9a935b9a Update rpc_manager.py
d0dc9e26b Bump uvicorn from 0.16.0 to 0.17.0
f2984e9d0 Bump time-machine from 2.5.0 to 2.6.0
da134d3ad Bump types-cachetools from 4.2.8 to 4.2.9
9092596a1 Bump pytest-asyncio from 0.16.0 to 0.17.1
81b800804 Bump types-python-dateutil from 2.8.6 to 2.8.7
d38418478 Bump ccxt from 1.66.66 to 1.68.20
9fbb9332f Bump types-requests from 2.27.5 to 2.27.7
c403464bb Bump flake8-tidy-imports from 4.5.0 to 4.6.0
3d9f34b06 Bump fastapi from 0.71.0 to 0.72.0
e4af162f3 Bump jsonschema from 4.3.3 to 4.4.0
5afa97583 Bump mkdocs-material from 8.1.5 to 8.1.7
6be6515ec Bump numpy from 1.22.0 to 1.22.1
edd2ea369 Update rpc_manager.py
3cdb672ac Improve test coverage
2bcfc0c90 Add warning about cache problems
d08885ed9 Fix empty "/log" endpoint in certain moments
69c00db7c Only show /balance % improvement if trades have been made
b96b0f89b improved unfilledtimeout defaults
acda9571d Revert "add position_adjustment_enable to config_full.example"
6c4b26146 Convert nan to None in get_signal.
eabeb87ce add position_adjustment_enable to config_full.example
39184e1f9 Fix random test-fail around midnight
270d7ebbf Simplify test strategy
062d00e8f Fix @informative decorator failing with edge.
2b7405470 Fix timerange check.
9becce989 Update failing test
526ed7fa9 Add test_backtest_start_multi_strat_caching test flexing backtest result caching.
16861db65 Implement previous backtest result reuse when config and strategy did not change.
6684bff96 Dry-run orders should have filled set correctly
66a479c26 Small doc improvements
6c0eef94b Fix typo.
9f9e2a872 Remove references to wallets.get_trade_stake_amount
93adb436f Fix flake8 intention issue.
320c9ccf9 Unify functions and make it easy to get a list of filled buy orders
08cae6f06 Fix horrible whitespace mistake.
7699fde38 Update documentation about trade.nr_of_successful_buys
ffe69535d These could be properties.
13bc5c5d8 Fine, this does look better.
678be0b77 Slightly move code.
faa35cb16 Small minor fixes
13651fd3b Downgrade docker-image to 3.9.9
a22e1b650 minor spelling correction
33cb9e900 Fix erroneous import in docs
7344f88ad Add a note about not being called when there's an open order.
7cd844865 Fix documentation example.
8643b20a0 Improve documentation about /stopbuy command
af3d220ff Update example method signature.
db3483c82 Our example should also set position_adjustment_enable
775b1201d psutil is always required now.
e50b07ecb Make code compatible.
94f2c9998 Temporary fix for lazy loading. Probably we can do it better.
438a08360 Update TA-lib binary files
fbf026ac4 Fix sorting of imports.
3b7167ab0  Fix backtesting missing filled amounts in orders.
26f2db477 Fix notify_enter attempting to fetch rate during testing.
30d293bfe Fix bug with None in backtesting.
0d00da8da Bump ta-lib from 0.4.23 to 0.4.24
e0b05c4df Bump progressbar2 from 3.55.0 to 4.0.0
fc1069cfe Bump urllib3 from 1.26.7 to 1.26.8
1e35f5470 Bump types-tabulate from 0.8.4 to 0.8.5
130275faf Bump mypy from 0.930 to 0.931
29457078e Bump requests from 2.26.0 to 2.27.1
8d554585f Bump types-filelock from 3.2.1 to 3.2.4
fe067994e Bump types-requests from 2.26.3 to 2.27.5
2d930d081 Bump types-python-dateutil from 2.8.4 to 2.8.6
af60b9db5 Bump ccxt from 1.66.32 to 1.66.66
bc95e1e15 Bump fastapi from 0.70.1 to 0.71.0
626970b32 Bump types-cachetools from 4.2.7 to 4.2.8
a0d378fb7 Bump nbconvert from 6.3.0 to 6.4.0
b8e8a31f8 Bump python-telegram-bot from 13.9 to 13.10
3fc44aa1b Bump mkdocs-material from 8.1.4 to 8.1.5
cbd449f71 Remove non-decimal numerical separator...
Read more

2021.12

29 Dec 16:00
b530600
Compare
Choose a tag to compare

Highlighted changes

  • Allow forcebuy / forcesell to specify ordertype when called via API.
  • Webhooks now allow a "raw" format, sending messages as text/plain.
  • version() method for strategy, to allow versioning from within the strategy.
  • custom_entry_price() and custom_exit_price() support for backtesting.
  • Added exchange.unknown_fee_rate parameter to allow specifying rates for non-tradable fee currencies (e.g. gateio -> POINT).
  • Remove pairs from the blacklist:
    • Added /blacklist_delete [pairs] or /bl_delete [pairs] to telegram to remove pairs from the blacklist.
    • Add corresponding Delete endpoint to the API.
    • Add "remove" functionality to freqUI.
  • Webhooks now get base_currency - the Coin that's beeing traded.

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
043218cc7 Version bump to 2021.12
24807515c Fix random test failure
5a546855e Import TTLCache from cachetools
3804a1777 Bump scikit-learn from 1.0.1 to 1.0.2
3cba405b2 Bump filelock from 3.4.0 to 3.4.2
24d16d7da Bump mypy from 0.920 to 0.930
2e84b8f0d Bump types-python-dateutil from 2.8.3 to 2.8.4
470ef7c16 Bump jsonschema from 4.3.1 to 4.3.2
1093f22b8 Bump plotly from 5.4.0 to 5.5.0
e08505862 Bump sqlalchemy from 1.4.28 to 1.4.29
81b383fe5 Bump ccxt from 1.64.44 to 1.65.25
2917cc1f2 Bitpanda's "fetch_my_trades" requires "to" argument
6fdad8c6b Prevent exception, ensure deletion occurs
356b2d3d9 Reestablish backward compatibility
b1feb69ca Use Pathlib to delete testfile
d11a8928d Fix test not running when user_data contains historical data.
98f6d2d72 Update CI to notify on discord only
110e48c54 Remove travis config file
61dbb6206 Slightly reduce verbosity when reload_conf is issued
9a9cc31d8 Update docs regarding multiarch builds
e5aaef644 Fix CI failure
6ba8b17fd Use LoggingMixin.log_once to remove/reduce logs on pairlists
40036bc71 Force dry-run for webserver backtest mode
21da01f77 Bump cryptography from 36.0.0 to 36.0.1
b6f8765d3 Bump mypy from 0.910 to 0.920
cde35509d Bump jsonschema from 4.2.1 to 4.3.1
5a3a5e98d Bump time-machine from 2.4.1 to 2.5.0
44ac002cf Bump types-requests from 2.26.1 to 2.26.2
56d96d6cf Bump ccxt from 1.63.65 to 1.64.44
36632b48c Bump numpy from 1.21.4 to 1.21.5
1b3aaffef Bump mkdocs-material from 8.1.0 to 8.1.3
58c3d69d1 📝 Docs - Added `Any` import
ea38b5808 Add base_currency to allowed webhook fields
39f0a17e6 Fix formatting
f9aa36f29 Don't hard-fail when executing emergency sell fails
b80b5ed1a Improve uri_logging test
9d8646072 Add test case for checking removal of logs for pains in blacklist
793d09056 Improve log message wording for rejected stake amounts
95949bd46 Update windows wheels to ta-lib 0.4.22
884a04c7f Bump fastapi from 0.70.0 to 0.70.1
172b9383c Bump pandas from 1.3.4 to 1.3.5
ec4a24649 Bump ccxt from 1.63.55 to 1.63.65
3398469e5 Update PerformanceFilter to have min_profit as ratio again.
8dd3128ed Add type annotation to new logs suppression code
5b998aeca Remove unused import
878e16545 Suppress additional logs for pairs in blacklist
b90c5e56f Fix webserver schema bug when running in webserver mode
8fdef2900 Increment API version to let clients know this is now available
58cd91bd8 Bump python-telegram-bot from 13.8.1 to 13.9
857f4ec12 Remove exception-handlers which catch exceptions that are never raised
783ee633a Bump crazy-max/ghaction-docker-buildx from 1 to 3.3.1
fb134c67a Bump peter-evans/dockerhub-description from 2.1.0 to 2.4.3
849ca1ec0 Dependabot - use correct branch
8da79d0ab Add blacklist-control to telegram
aaf5f4ce3 Bump sqlalchemy from 1.4.27 to 1.4.28
ae92bf56b Bump ccxt from 1.63.1 to 1.63.55
f47cfbd2a Bump mkdocs-material from 8.0.4 to 8.1.0
c9c683f2b Bump prompt-toolkit from 3.0.23 to 3.0.24
81cafd090 Bump uvicorn from 0.15.0 to 0.16.0
671b9903d Add github-actions dependabot
cc96db76f Add possibility to delete pairs from the pairlist via api
e729fad99 Add unknown_fee_rate parameter
e9c3f0cbb Add note about python3.10 not being supported
be6b1f6f8 Import from enums, not submodules
facb5b399 Revert "Bump python from 3.9.9-slim-bullseye to 3.10.1-slim-bullseye"
7848e17a4 Bump python from 3.9.9-slim-bullseye to 3.10.1-slim-bullseye
3dda0ef2e Bump mkdocs-material from 8.0.1 to 8.0.4
50a6eaea2 Bump ccxt from 1.62.42 to 1.63.1
61211a119 Bump ta-lib from 0.4.21 to 0.4.22
fbd64d757 Improve doc wording
4278c5a24 add note about arm64 installation
c981cc335 Remove wrong comment
d0467b30b Add strategy_version to API response
e3190cf8a Update documentation
2080bf095 Fix some formatting errors, add test for strategy version
68ac8008e Call custom_exit_price only for sell_signal and custom_sell
84ad17628 Improve documentation wording
86910b58d Bracket entry/exit prices to low/high of the candle
d09a30cc6 OrderTypeValues should be in enums
ad5c8f601 Simplify datahandler classes by exploiting commonalities
d3ad4fb52 Don't crash dry-run if orderbook side is empty
294c98ed5 Document exchange.uid
0375a0830 use to_hdf instead of HDFStore
5ce1eeecf Reorder messages to be sent in correct order
c22f381df Fix Schema issue
542963c7a Reduce code complexity by combining buy and buy_fill methods
f0abe218a Batch ohlcv requests to not overwelm ccxt's async throttler
231b1e2f5 Improve Async error message content
85b1f6f6b Update pairlists.md
60eca8b1f revert to random object
dfb148f8d Fix formatting
f8cb3d290 Restore openAPI functioning
2e5147745 Update mkdocs file to 8.0
018407852 Added missing webhook config params to constants
57e55eb93 Bump time-machine from 2.4.0 to 2.4.1
c126d2530 Add few sentences on docs
24997fb36 Bump mkdocs-material from 7.3.6 to 8.0.1
b81d768eb Bump types-requests from 2.26.0 to 2.26.1
39c3175b6 Bump types-python-dateutil from 2.8.2 to 2.8.3
b0b2fdba7 Bump aiofiles from 0.7.0 to 0.8.0
c2a7b1930 Bump types-cachetools from 4.2.5 to 4.2.6
589c9f55e Bump scipy from 1.7.2 to 1.7.3
e9e8023d7 Bump ccxt from 1.61.92 to 1.62.42
df09fe5df Bump prompt-toolkit from 3.0.22 to 3.0.23
29180a1d2 Moved retry config to constants
0fa5bf54c Changed comment
cf5ff9257 Add plotconfig as property documentation and sample
c7d10e2c7 delete unneeded comment
fb6ae174b Added raw config and retry config to webhook
fd9bf2adb add weekly and monthly to valid keys
6429205d3 Improve Notebook documentation to include Dataprovider
2b3e7eeb2 Use Enum values within bot code
409a80176 Fix caching problem in refresh_ohlcv
b90303c9a Update ShuffleFilter.py
2f0f576fc Update pairlists.md
8c52ba336 ShuffleFilterDetectLiveMode
bc52b3db5 Properly handle None values via API
80ed5283b Add forcesell market/limit distinction
338fe333a Allow forcebuy to specify order_type
d4fd13bf5 Telegram and log prints strategy version.
00406ea7d Update backtesting.py

2021.11

27 Nov 18:12
4179a1a
Compare
Choose a tag to compare

Highlighted changes

  • New CalmarHyperOptLoss loss function.
  • unlock_reason() to allow strategies to unlock all pairs locked by with particular reason.
  • setup.sh script now supports yum based (RHEL/Centos) distributions.
  • Added support for custom sell_reason from within populate_sell.
  • Show Buy-tag table during backtesting.
  • Official support for OKEX.
  • New telegram commands /weekly [num] and /monthly [num] to get more statistics.
  • Trigger emergency sell if trade exit fails for X times (can be configured via unfilledtimeout.exit_timeout_count).
  • Trade mode allows more history (multiple ohlcv calls) via startup_candle_count. Please use with care, as it will have a performance impact.
  • Improved Fill notifications in telegram.

Please familiarize yourself with the relevant sections in the documentation before using any of the new features.

You can sponsor my work on freqtrade via github sponsor (https://github.com/sponsors/xmatthias/) (includes Crypto addresses).

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
7e1eedd7d Version bump to 2021.11
a9cdb428d Version bump to 2021.10
3f10430eb Version bump to 2021.9
a62977789 Improve test coverage in telegram module
6ca6f6250 Remove duplicate code in optimize_reports
897788de1 Reformulate exception to be "nicer"
f4bc30c92 Update docs to include "vpn/ssh" section
5307d2bf3 Trimming the sentence
c23d90e2b Update test_backtesting.py
0c629fc95 Update test_backtesting.py
0d1e84cf5 Add more words
65906d330 Improve tests for pair_to_filename
e8feac367 Improve tests for pair_to_filename
c23ca35d2 Update ARMHF image to 3.9
b8cefd687 Add api_version to botresponse
c245a2a89 fix typo in Volatility filter description.
43dab3ee6 Changed the wording of the documentation to be clearer
78a00f251 Use market data to get base and quote currencies in @informative() decorator.
64e34f382 Sell-fill should include open-rate
ecf2ac3c2 Bump aiohttp to 3.8.1
80946cd9d Bump ccxt from 1.61.24 to 1.61.92
0ef99206b Bump plotly from 5.3.1 to 5.4.0
247f855ba Bump types-cachetools from 4.2.4 to 4.2.5
fdc6ca1bd Bump cryptography from 35.0.0 to 36.0.0
ab93e1368 Bump filelock from 3.3.2 to 3.4.0
c0cc3f5f9 Small doc improvements to callback documentation
b36fe8fe0 Simplify strategy documentation
0bae1471b Extract callbacks into a separate site
ef67a2adf Improve callback documentation
d8ee72554 Improve callback documentation
f8f7d81fc Update strategy template to use parameters
a239e5f72 Add segment on colliding signals
0b6060dd1 indentation problem :)
5fb0f5353 Add curl to install description
60cf52aa3 Remove unused test code
d477ccab1 Bump ccxt from 1.60.68 to 1.61.24
e3bb102dc Bump python-telegram-bot from 13.7 to 13.8.1
7bd384c7f Bump nbconvert from 6.2.0 to 6.3.0
876b59f47 Bump jinja2 from 3.0.2 to 3.0.3
8ec5f72be Bump isort from 5.10.0 to 5.10.1
178e3ac6a Bump coveralls from 3.3.0 to 3.3.1
2a1c61fb3 Bump sqlalchemy from 1.4.26 to 1.4.27
c04679072 Bump pymdown-extensions from 9.0 to 9.1
43120e03f Bump types-requests from 2.25.11 to 2.26.0
4d1d8de9b Split /stats messages
1dc98cc4d Break line
5b9cbaf27 Use Close value for trade signal calculation
632c1bc0a Add static workaround for kucoin 429000 issue
7c1161992 avoid using replace in messages
c4c1b301c buy notification code consolidation
0bc938445 more notification code consolidation
7412b7ba5 buy/sell fill notification code consolidation
a177e58dc Remove "currency" generating from splitting pair str
37d461c6c Improve strategy dataframe documentation
0e70d23be Add documentation for exit_tags
0e2b5ef6d Simplify custom strategy file wording
df27499e1 Improve `/help` output from telegram
32e337629 Update buy/sell fill telegram notifications
a237667bc Update buy/sell fill telegram notifications
39bb34cdb Fix test loading bug
e0fd880c1 Improve some more pct formattings
4eb903835 Some more fixes to % formatting
1b271d084 Improve % outputs to not use explicit "pct" entries
ce2aa1dc6 Small formatting upgrades
f8d30abd7 Handle order returns that contain trades directly
f7b2c0c5d Remove unneeded assignment from tests
e7d1630c9 Add space
d3d17f9f8 Only allow min-stake adjustments of up to 30%
23a566b47 validate_stake_amount should not be a private method
c9d974d21 Clarify performancefilter docs
e8b4d4488 Add warning about telegram group usage
6f0a98229 docs: removes duplicated "without" in pairlists.md
6267678ca Use doublequotes for docstrings
f9e5a25b3 Add docstring style to Contributing
2bfec7d54 Add small test-case confirming trade object copy
ae0e72a94 Provide strategy with copied objects
e4cca6316 Align sell_reason assignment location
63f4221f7 Fix broken documentation link
84261237a Improve doc wording
3ce898e4a Bump isort from 5.9.3 to 5.10.0
b39794f8d Bump scipy from 1.7.1 to 1.7.2
ab06584a3 Bump numpy from 1.21.3 to 1.21.4
a2c12f15f Bump ccxt from 1.60.11 to 1.60.68
d0199b601 Bump coveralls from 3.2.0 to 3.3.0
dbc863bcd Bump jsonschema from 4.1.2 to 4.2.1
c54cf63ba Bump prompt-toolkit from 3.0.21 to 3.0.22
c11e1a84e Fix wrong logging
de4bc7204 Update documentation to clarify new behaviour
a08dd17bc Use startup_candle-count to determine call count
9fa64c264 Allow multiple calls to get more candles in live-run
fb6ba6215 Add default to "is_new_pair"
4595c1e73 Slightly reformat to simplify new change
25fcab079 Enhance /show_config endpoint
4f5c5b698 Clarify timeout documentation
d0e192e20 Fix naive timezone for /daily command
f7dc47b1c Add test for exit_timeout_count
d5acd979d Move dev-only requirement
3c33b48fd Fix naive timezones
7a907a763 Add Emergencyselling after X timeouts have been reached
da4344d21 Remove line breaks
8eabdd659 Fix missing CallbackQueryHandler
70253258f Test /monthly & clean
87634f040 /weekly and /monthly documentation
459ff9692 Add /weekly and /monthly to Telegram RPC
5f40158c0 WIP Add /weekly and /monthly to Telegram RPC
a8651b0dc /weekly and /monthly documentation
15616d75a Add /weekly and /monthly to Telegram RPC
d99eaccb5 Fix exception when using okex
ae3b53014 Add failing test for OKEX failure
60a5ded53 Don't convert telegram chat_id
2115a3ed1 Update warning message open trades
ffc2de8d3 WIP Add /weekly and /monthly to Telegram RPC
ae2343db9 Update optimize_reports
10e839c17 Update setup.sh
5b9a168ca removed build-essential from redhat install
c061b576a OKEX Notes
048db4f50 Enhance "new exchange" documentation
437e5f064 Fix officially supported exchange list
6fb086635 Add OKEX to list of officially supported exchanges
ce597d12d Update exchanges.md
f60d10107 Some finetuning for OKEX
1fefb132e Improve wording in documentation
161a3fac1 Run exchange-enabled tests against okex
e78df59e3 Configure candle length for OKEX
f365e6870 [docs] Update RateLimit value [small]
7ae9b9017 Further clarify backtesting trailing stop logic
3056be3a1 document prerequisites for exchange listing
74e8b2899 Improve FAQ with outdated history message
a16328f37 Don't force timeframe in config in config generator
6623dfe7d Improve CORS documentation
46d4418e8 Bump scikit-learn from 1.0 to 1.0.1
45f7093e5 Bump mkdocs-material from 7.3.4 to 7.3.6
e2041ddb7 Bump ccxt from 1.59.2 to 1.59.77
3d59289b0 Bump filelock from 3.3.1 to 3.3.2
6b90b4a14 Test "get-signal"
dffe76f10 Don't double-loop to generate profits
c15f73aa1 Rename command to backtesting-show
20904f1ca Add tests for new command
72ecb45d8 Add test for backtest_show logic
650d6c276 Add documentation
d60001e88 Stoploss cannot be below candle low
459a2239c Fix candle ranges in backtesting test
6cf140f8f FIx testcases
851062ca4 Rename backtest-filter to backtest_show
f47270943 Add option to show sorted pairlist
0f3809345 Remove backtest-path parameter
c579fcfc1 Add tests and documentation for unlock_reason
240923341 Reformat telegram test
5cdae2ce3 Remove CalmarDaily hyperopt loss
e9d71f26b small changes
658006e7e removed wrong use of map and filter function
560802c32 Added tests for the new rpc/telegram functions
02e69e166 Changes to unlock_reason: 	- introducing filter 	- replaced get_all_locks with a query for speed 	. removed logging in backtesting mode for speed 	. replaced for-loop with map-function for speed
335412a3a Improve wording of FAQ entry
f280397fd Add FAQ section about Fees
dc605e29a removed empty lines for flake8
2eb33707c Undo changes
91b9e5ce6 Delete StackingDemo.py
c1b5dcd75 Delete freqtradebot.py
6b17094c6 Delete configuration.py
51c925f9f Delete StackingConfig.json
21ab83163 Quick import/clarity fix
e4e75d486 Added test data for buy_tag/sell_reason testing
9c6cbc025 Update StackingDemo.py
9f6e4c6c0 uncomment
ae0689969 removed commenting
c3f3bdaa2 Add "allow_position_stacking" value to config, which allows rebuys of a pair Add function unlock_reason(str: pair) which removes all PairLocks with reason Provide demo strategy that allows buying the same pair multiple times
b51f946ee Fixed models and rpc performance functions, added skeletons for tests.
d1e2a5326 Added centOS support to setup.sh script
7ff16997e Wrote echo block method for setup script
88b96d5d1 Update hyperopt_loss_calmar.py
22dd2ca00 Fix mypy type errors
17432b282 Improve some stylings
5f309627e Update tests for Calmar ratio
0e085298e Fixed test failures.
1267374c8 Small fixes to tests
905f3a1a5 Removed exit_tag from Trade objects.
1fdc4425d Changed exit_tag to be represented as sell_reason
69a59cdf3 Fixed flake 8, changed sell_tag to exit_tag and fixed telegram functions
0bb7ea10a Fixed minor header for backtest...
Read more

2021.10

28 Oct 18:50
dadf015
Compare
Choose a tag to compare

Highlighted changes

  • New trades-to-ohlcv subcommand to easily convert trades to ohlcv data (kraken only).
  • New loss function MaxDrawDownHyperOptLoss.
  • New endpoint to get System information (CPU / Ram).
  • FreqUI now supports multi-bot mode, connecting to multiple bots.
  • freqtrade install-ui now allows to specify a specific UI version.
  • Possibility to skip unavailable spaces with --ignore-missing-spaces.
  • Fail and warn when using qtpylib.vwap() - pointing to qtpylib.rolling_vwap() instead.
  • Support StaticPairlist after VolumePairlist, to append a static list of pairs.
  • Added --breakdown argument to backtesting, showing a daily/weekly/monthly breakdown of trades.

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
98ed7edb1 Version bump to 2021.10
92130837a Improve and clarify informative pairs documentation
e2b64a750 Update data-download.md
f80d3d48e Add default to minimal_roi to avoid failures
262f186a3 .
cea251c83 Clarify documentation for /forcebuy
4e88bd07f Bump numpy from 1.21.2 to 1.21.3
538d9e8b3 Bump arrow from 1.2.0 to 1.2.1
826d4eb2f Bump jsonschema from 4.1.0 to 4.1.2
3d90305f8 Bump ccxt from 1.58.47 to 1.59.2
b50b38f04 Bump sqlalchemy from 1.4.25 to 1.4.26
520c5687a Bump prompt-toolkit from 3.0.20 to 3.0.21
f7926083c Clean up unclosed file handles
df033d92e Improve performance of decimalspace.py
fde10f539 Use pathlib.stem instead of str(x).ends_with
053fb076e Add documentation for breakdown command
e458c9867 Styling fixes
7b5346b98 Add test for breakdown-stats
fa028c213 Support day/week/month breakdowns
7197f4ce7 Don't show daily % profit (it's wrong)
de5497c76 backtest_days cannot be below 1
545446022 Revert initial_points to 30
55b021618 Allow StaticPairlist in non-first position
42a4dfed2 Reallow bitstamp
f863f4fdf Update advanced-setup.md
5d2e37409 Update docs/advanced-setup.md
f9b166747 Update docs/advanced-setup.md
0da5ef16e Remove unnecessary dependency
ddba4e32d Fully remove flake8-type-annotations
8a7ea6553 Bump types-filelock from 3.2.0 to 3.2.1
3af55cc8c Bump pandas from 1.3.3 to 1.3.4
75e6a2d27 Bump mkdocs-material from 7.3.2 to 7.3.4
618f0ffe6 Bump types-tabulate from 0.8.2 to 0.8.3
44e6e1342 Bump ccxt from 1.57.94 to 1.58.47
4b0274901 Bump mkdocs from 1.2.2 to 1.2.3
82684f5de Bump progressbar2 from 3.53.3 to 3.55.0
69c98c414 Bump python-rapidjson from 1.4 to 1.5
035380d8a Bump types-cachetools from 4.2.2 to 4.2.4
d7756efe8 Bump wrapt from 1.13.1 to 1.13.2
b60371822 Bump pyjwt from 2.2.0 to 2.3.0
e7a2672f0 Bump filelock from 3.3.0 to 3.3.1
9b0171ef3 Bump flake8 from 4.0.0 to 4.0.1
12a041b46 Bump pytest-asyncio from 0.15.1 to 0.16.0
6be40cb7c Bump types-requests from 2.25.9 to 2.25.11
00fc38a5d Update setup.sh to correctly exit if ta-lib fails
7d8cd736b Support days-breakdown also for hyperopt results
28483a795 Fix doc-link in developer docs
d4d57f000 Document expansion of `--pairs`, add download-inactive
e23eb99ab Disable ability to use lookahead-biased vwap
abd5c4f27 Convert additional test to USDT
fb2c8f762 Rollback after each request
f61dc6d95 📝 `mkdocs.yml` - Fixed darktheme toggle
5a9983086 How to run multiple instances with docker
89ca8abea Bump fastapi from 0.68.1 to 0.70.0
5ba1d66be Make sure transactions are reset
dcefb3eb9 Fix delete_Trade api test
7f1080368 Commit mock-trades to avoid errors in tests
de5657a91 Fix test failing when UI is installed
fe9f597ea Don't build ta-lib in parallel, this causes failures
c02a53818 Add documentation and log to PerformanceFilter
fe8374f2a Test for non-failing missing hyperopt space
3279ea568 Add new parameter to hyperopt docs
aed919a05 Simplify "no-space-configured" error handling by moving it to hyperopt_auto
8798ae567 Version bump also scikit-optimize
ce9debe9f Add version argument to freqUI installer
396bc9b2e Version bump flake8-tidy-imports to 4.5.0
fa00b52c4 Bump scikit-learn from 0.24.2 to 1.0
802599bdc Bump ccxt from 1.57.38 to 1.57.94
29371b2f2 Bump joblib from 1.0.1 to 1.1.0
90ea3d444 Bump mkdocs-material from 7.3.1 to 7.3.2
4921a4cae Bump jinja2 from 3.0.1 to 3.0.2
32174f8f9 Bump pyjwt from 2.1.0 to 2.2.0
afc086f33 Bump arrow from 1.1.1 to 1.2.0
e467491db Bump jsonschema from 4.0.1 to 4.1.0
3fdc62d29 Bump flake8 from 3.9.2 to 4.0.0
5fb0401dc Bump cryptography from 3.4.8 to 35.0.0
7323ffa25 Bump blosc from 1.10.4 to 1.10.6
57095d716 Bump wrapt from 1.12.1 to 1.13.1
1a3b41ed9 Rephrase and simplify UI access section in docker quickstart
2c6834214 Move pypi installation to documentation
7b1c88866 Add FAQ entry for incomplete candles
30bc96cf3 simplify expression
11ec1d9b0 Revert previous commit
482f4418c Clarify "required candle" message
1327c21d0 Update README.md
f07eeddda Update api_schemas.py
a1be6124f Don't set bid_last_balance if None in tests
45b7a0c83 Add Test and docs for MaxDrawDownHyperOptLoss
29863ad2b Fix error when ask_last_balance is not set
46c320513 use profit_abs
526bdaa2d Recommend using 0.0.0.0 as listen address for docker
65d4df938 Improve docker port api
992cef56e Add test for sysinfo endpoint
57ef25789 Fix style errors
6ba46b38b fix formatting
c0d01dbc2 add max_drawdown loss
949d61608 Update docker_quickstart.md
0db5c0731 Fix issues with sysinfo rpc/API code, add SysInfo api_schema
92f8f231a Remove ratelimit from kucoin template
7f4baab42 Remove explicit rateLimits, improve docs
f15922a16 Fix custom_stoploss in strategy template
07750518c Added min_profit param to PerformanceFilter
f41fd4e88 Bump mkdocs-material from 7.3.0 to 7.3.1
949f4fbbb Bump types-cachetools from 4.2.0 to 4.2.2
2b41066ab Bump pytest-cov from 2.12.1 to 3.0.0
0071d002b Bump ccxt from 1.57.3 to 1.57.38
35c4a0a18 Bump jsonschema from 3.2.0 to 4.0.1
ff45d52d4 Bump types-filelock from 0.1.5 to 3.2.0
d220c55d4 Bump pymdown-extensions from 8.2 to 9.0
0d9beaa3f Bump filelock from 3.0.12 to 3.3.0
1c63d01ce Prevent using market-orders on gateio
f5e520338 Use "round" to 12 digits for TickSize mode
e73f5ab48 Add test confirming #5652
126c29198 Improve docs
9e77a739f Change usdt stake_amount to 60$
058c7b3e9 Fixed odd test_execute_entry where the filled coins were higher than the amount
908dee961 Changed test values in test_sell_profit_only to usdt like values
93679db7c Removed ... TODOs
057a18723 Removed uneccessary TODOs
3b5cc5f01 Improve dates used for hyperopt tests
77388eb42 Improve generate_test_data to make it easier to use
5fdeca812 Combine most hyperopt-loss tests to one
022839b72 remove unnecessary test
e5e1e49f5 Remove some unused test parameters
96d09b561 Fixed breaking rpc tests
6f8e66117 flake8 isort
107fa911a Fixed test_tsl_on_exchange_compatible_with_edge
c820db4c6 Fix couple more usdt tests which failed due to ticker prices causing roi being hit, but tests did not expect that to happen.
896137026 Fix failing test due to not updated expected values.
2ee87f8c6 Fix failing USDT tests due to not enough open markets.
43339f166 A lot of the usdt freqtradebot tests pass now
ba5d78f00 swapped default_conf for default_conf_usdt and ticker for ticker_usdt
7eebb6bb2 updated test_create_trade to use default_conf_usdt
755cc9cda Updated test_check_available_stake_amount to use default_conf_usdt
26fdad846 Removed edge_conf_usdt
d0e0d0ee0 Removed init_persistence_usdt
5ce09c751 updated test_reupdate_enter_order_fees to usdt
ffa9a3ac7 changed default_conf_usdt stake_amount to 10
6fdcf8cd7 created default_conf_usdt and init_persistence_usdt so that these tests pass: test_handle_stoploss_on_exchange_trailing, test_handle_stoploss_on_exchange_custom_stop, test_update_trade_state_withorderdict
d1e3d4807 changed test_update_trade_state_withorderdict to usdt
8d7f75c4d Fixed a bunch of freqtradebot tests
dadd13420 changes some tests to use usdt values
f69cb39a1 Fix missing comma in kucoin template
15df5fd9c Fix pair_candles to point to correct API call
df45f467c Adding ability to ignore unparameterized spaces
95227376b Adding IUS to optimize args
08fcd1a0d Adding ignore space errors to Hyperopt CLI
5dd1088d8 Adding ignore unparameterized spaces flag
5f23af580 Rename update_open_trades to clarify it's only called at startup
bd27993e7 Add documentation segment about indicator libraries
178db516b Add documentation for trade-to-ohlcv
248c61bb2 Add test for trades-to-ohlcv
fc511aac4 don't use %default when no default is defined
656526c00 Add trades-to-ohlcv command to simplify adding new timeframes
e025576d8 Introduce markets_static fixture serving an immutable list of markets. Adapt pairlist/markets tests to use this new fixture.
097da448e Add CPU,RAM sysinfo support to the REST API to help with bot system monitoring
76a02ff70 fix indentations
2bed41da5 Add days breakdown table to backtesting

2021.9

28 Sep 17:22
a0ee490
Compare
Choose a tag to compare

Highlighted changes

  • --timeframe-detail in backtesting allows you to look "into" candles` for improved backtest results.
  • Improved new-config templates, defaulting to a "ready to start" configuration.
  • Improved download-data logic for new pairs on binance.
  • Officially support kucoin and gate.io.
  • PerformanceFilter can now only consider trades closed within the last X minute.
  • Allow hyperopt to define custom estimators (generate_estimator).
  • @informative decorator to easily define informative pairs.
  • Improved /balance output, including change % over the whole period (including assumed starting balance).
  • Notifications when protections trigger. Enabled by default for global protections, must be explicitly enabled for "per pair" protections.

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
5938514e5 Version bump to 2021.9
5726886b0 Reduce backtest-noise from "pandas slice" warning
3fbf716f8 Fix "sticking" timerange in webserver mode
5b7a1f864 Validate config also in webserver mode
78096c9ef Bump nbconvert from 6.1.0 to 6.2.0
905950230 Bump ccxt from 1.56.86 to 1.57.3
08b1f04ed Bump types-requests from 2.25.8 to 2.25.9
6319c104f Fix unreliable backtest-result when using webserver mode
f4f204d84 Update test to use cost dict
4c268847d Add pandas-ta to setup.py
b59906b11 Update minimum for tradable_balance_ratio to 0.0
72a1e27fc Bump ccxt from 1.56.30 to 1.56.86
954c46819 Add pandas-ta to requirements
0353f070f Bump progressbar2 from 3.53.2 to 3.53.3
90d5af9a3 Bump urllib3 from 1.26.6 to 1.26.7
766ef90b5 Bump sqlalchemy from 1.4.23 to 1.4.25
e85dc6326 Bump mkdocs-material from 7.2.6 to 7.3.0
422d56018 Bump types-requests from 2.25.6 to 2.25.8
692e91a26 changed close date from datetime.utcnow() to datetime.now(timezone.utc)
d7903f012 Move PerformanceWarning to advanced section
2bf49445b add parameterized names
30cc69c88 set all to eth for multi test
8cfb6ddd5 fix long line
f768bdea5 cleanup based on feedback
553c868d7 combined test_order_book_depth_of_market and test_order_book_depth_of_market_high_delta
b0de4d333 fixed webhook error
707d0ef79 remove trades_for_order3
277828bf0 parameterize some tests
6fc770d97 Add warning about running with docker on windows
abddb0db6 Fix header indention
3ce05c0d5 Add "sane" defaults to protection triggers
fd23ab3d6 improve formatting, add tests
dd0db7ee5 Split protection-notification into global and per-pair
a0fb43c6c Add pairlock-notification
c91a9a92f Add troubleshooting information
1da091dea ProtectionManager should return the lock just created
879bf47b3 Refactor telegram.py to simplify send_msg
ec0353177 Improve naming of variables
ab8821718 Improve /balance output to include starting balance and percentual change
cee4ed541 parametrized test_update_trade_state_withorderdict
ec9dbc550 parametrized test_create_trade_minimal_amount
c1895a0fc Remove warning related to legacy hyperopt
eab7f8f69 [SQUASH] Doh.
713e7819f [SQUASH] Remove mypy import.
518a59ad4 parametrized test_edge_overrides_stoploss
42a2fdc1c parametrized test_order_dict
216f75bbb parametrized test_sell_profit_only , test__safe_exit_amount, test_order_book_bid_strategy1
e4ca42fae [SQUASH] Update stoploss_from_absolute to behave more like stoploss_from_open and add a test for it.
7e6aa9390 [SQUASH] Unconditionally include quote currency when asset is explicitly specified. Added docs suggesting to use string formatting to make strategy independent of configured stake currency.
e88c4701b [SQUASH] Address PR comments.
bb6ae682f Small simplifications
5dc78a0c6 [SQUASH] Get rid of _initialize() and fix informatives for dynamic pairlists.
f81df19b9 [TMP] Make tests not fail for now.
dfa61b7ad [SQUASH] Fix informatives for each pair not being created because dataprovider was not available. Fix not being able to have informative dataframe of a pair in whitelist.
f2a1d9d2f [SQUASH] Address PR comments.
1fdb65633 Add a decorator which can be used to declare populate_indicators() functions for informative pairs.
d84ef3474 A helper to calculate stoploss value from absolute price.
56fb25c5e Add test for PerformanceFilter lookback
564e0b9a1 Switch performanceFilter to use Minutes lookback resolution
12c12d42d Add documentation for days parameter in PerformanceFilter
d7395e873 Removed unused OperationalException
4b2c1a9b8 Remove trailing whitespace
e715f2a25 Update formatting
9525a5b96 Add type to "trials" parameter
fb6beb90e Include Raspberry Pi armv6 (0, 0W,...)
124e97f3b Remove ununsed variables from export_csv_file
5fc993231 Update HyperoptTools.export_csv_file usage
3a98fb72a Update prepare_trials_columns() return type
982deeedf Update freqtrade/persistence/models.py
54ef36a49 Updates after review to PerformanceFilter days param
457e738b4 Added days parameter to PerformanceFilter
994c3c3a4 Add some errorhandling for custom estimator
c0811ae89 Add possibility to override estimator from within hyperopt
90ad17893 Remove verbosity of edge
57ea0c322 Rename indicator_space to buy_indicator_space
f7bae81d9 Dataframe should be copied after populate_indicator
4e2b1764b ccxt_compat_tests must run with dry-run=False
35eda8c8c Improve agefilter test
3ce5197e8 Add Tests for AgeFilter caching
c9ba52d73 Expire cached pairs in age-filter once per day
a12c3ecc9 Remove credentials whenever dry-run is set from within the exchange
8afb3c4b7 Move AgeFilter cache to instance level
3cdd06f56 Add PeriodicCache
b13bd8762 Bump ccxt from 1.55.83 to 1.56.30
81039fce2 Bump progressbar2 from 3.53.1 to 3.53.2
d8f48cf0e Bump pandas from 1.3.2 to 1.3.3
236dc4800 Update CI to use new hyperopt interface
0017b3438 Remove list-hyperopts
3675df834 Update documentation regarding Legacy Hyperopt
fd6bf591f Update some tests to remove explicit hyperopt interface
dad4a49e8 Remove legacy hyperopt interface from hyperopt.py
ebb0b8aa3 Remove new-hyperopt command
432c3df17 Add documentation for Bittex/Gemini with VolumePairlist
a5f90a409 Small updates to async_history_fetch
4c4604f83 Add explicit test for get_historic_ohlcv
8c9159f59 Improve comments
a19c33ba5 Don't blindly create coroutines, but fire them off in batches
982534ddc Add gate.io to list of supported exchanges
366247dff removed caplog.clears at end of functions in test_freqtradebot
b2f289e40 Fixed freqtradebot failing tests
a1c9a4d61 freqtradebot local name changes
362dc2040 notify_buy -> notify_enter, notify_sell -> notify_exit
e1f846f22 sell_lock -> exit_lock
e0092a85e handle_cancel_buy/sell -> handle_cancel_enter/exit
be93c75e4 reupdate_buy_order_fees -> reupdate_enter_order_fees
aac05029e safe_sell_amount -> safe_exit_amount
79ca6135a added caplog clears to freqtradebot tests
2d66987ac Add test for "pair-startdate" detection
8c83c258a Move "first-pair_getting" to binance subclass
71ff214ad Support "initial_call" for download-data of new pairs
880474594 have ftuser use `/bin/bash` in dockerfile
10d0987f4 Fix docs for custom hyperopt space
6bd495a32 Fix 0Exception error
a04875eb5 Update edge.md
765e72715 Bump mkdocs-material from 7.2.5 to 7.2.6
44f8d7abf Bump ccxt from 1.55.56 to 1.55.83
771193cbe Bump plotly from 5.3.0 to 5.3.1
4daa4b9e6 Bump pytest from 6.2.4 to 6.2.5
1d24d3d5e case insensitive blacklist
c519ecf8d Exclude more untestable sections from coverage
a8f28ffb1 Increase test coverage
2173ff013 Update PR template to not link to issues in changelog
4e049f65f Exclude some parts from coverage that can't really be tested
eb0362c29 ⚡️ ️`install_ta-lib.sh` - Run `ldconfig` after `make install`
493fb3507 Fix uvicorn not working properly on windows
103a8e827 ⚡ `setup.sh` - Use `build_helpers/install_ta-lib.sh` for TA-Lib installation
2f92838c3 Properly close parenteses in exchange doc
b4130dfab Use volumePairlist instead of staticPairlist in generated config
c489e6825 Simplify binance blacklist
68f13173b Update new-config templates to use USDT by default
e64ccd8fc Add new_config section for kucoin
19ad16548 Add time_in_force for kucoin
93c1dff71 Allow adding new additional headers
87fa49d52 Bump python from 3.9.6-slim-buster to 3.9.7-slim-buster
1cbe30343 Add documentation for --detail-timeframe
da5f8c87a Add stake_currency to strategy interface
4cc1f2b4a Update bot-basics.md
2a0c95a2e Update freqtrade/commands/build_config_commands.py
45c6f9069 Bump mkdocs-material from 7.2.4 to 7.2.5
9e0ab9c2c Bump fastapi from 0.68.0 to 0.68.1
26451e8c0 Bump ccxt from 1.55.28 to 1.55.56
d0504c47e Bump plotly from 5.2.1 to 5.3.0
c64ebeb6e Bump cryptography from 3.4.7 to 3.4.8
c17595b31 Docs: Mention Performance Warning for strategies
20878290a Surround "unlimited" by double quotes in build config.
c14d8ea82 Export HDF5 and CBLOSC paths.
1895230af Clarify exception on load when markets could not be loaded
89581ad25 Fix typo in protections hyperopt doc
f79b30e88 Docs: Minor fixes
482e65453 Remove extra comma after the last element in binance pair_blacklist.
ac0dada96 Update Version to develop again
fa4ec9f83 Add explicit test for get_sell_trade_entry
3406b889b First test
8405ccc15 Seperate detail data loading from regular backest-data loading
88172fab8 Allow "detailed" backtesting timeframe to look into the candle

2021.8

28 Aug 09:47
b4d869e
Compare
Choose a tag to compare

Highlighted changes

  • startup-candles are available for populate_buy_trend() and populate_sell_trend().
  • Addition of buy_tag to classify buys based on the signal used.
  • Informative pairs are now limited to the selected timerange during backtesting.
  • Backtesting now caches informative pairs to speed up backtesting and hyperopt.
  • Support Environment Variables (e.g. export FREQTRADE__EXCHANGE__KEY=<yourExchangeKey>).
  • Hyperopt protections (warning: Configuring protections in the configuration is deprecated as part of this).
  • Add BooleanParameter() - a shorthand for CategoricalParameter([True, False]).
  • New callbacks custom_entry_price() and custom_exit_price() to specify custom order prices.

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
b3a4b0fbd Version bump to 2021.8
2ce458810 rename default_hyperopt_loss file
07d71f014 Rename defaultStrategy file
6d96b1127 Rename DefaultStrategy
df1c0540a Rename Hyperopt Test Class
0d8e105a3 Rename legacystrategy file
58ecb34a6 Allow DefaultHyperopts as hyperopt name
fbf8eb452 Rename test-legacy strategy
1f3ccc258 DefaultStrategy does not need to be limited
c4be52d1c rename execute_sell to execute_trade_exit
63844d39f Rename execute_buy to execute_entry
7fb570cc5 hyperopt Fallback methods should not be used.
68dd34909 Update hyperopt docs regarding protections
3745966c6 Update help-docstring for hyperopt
23d21d8ac Fix wrong message if protection-space is missing
4b36276e4 Improve has_space test
8a9407bac Don't hard-fail when fetch_ticker doesn't return a value
60b476611 Simplify a number of tests by relying on default arguments
345c7ab64 Bump sqlalchemy from 1.4.22 to 1.4.23
90f1845ea Bump prompt-toolkit from 3.0.19 to 3.0.20
0f9bfcf8b Bump types-cachetools from 0.1.10 to 4.2.0
4ee467f85 Bump ccxt from 1.55.20 to 1.55.28
3026583ed Reduce verbosity of "is in blacklist" logging
04b4deab5 Update strategy-advanced.md
56759cea7 Add "high fee rate" blocker to fees from trades
127f470bc .* ADDED
40ad45101 Download-data log process added
695a1e21b Set gate.io download limit to 1000 candles
ba5abb20b Run compat ci for gate.io
dc0b4d07d Fix typo
9951f5107 Update test to ensure direction of movement is correct
d97fc1e48 Update docs/strategy-advanced.md
ffd60f392 add custom price max distance ratio option in configuration.md
9469c6dfa small cosmetic changes in doc related to custom entry and exit exemple
2fb9f6e2f rename custom price max distance option in config, update formula and test associated
acb00cd07 Use realistic threshold for "get_fee" test
6e41add40 Version bump ccxt
4164f9385 Simplify fiat_convert and handle multi-mappings
37e3d2035 Fix no-event-loop available
9758bed25 Fix refresh_latest_ohlcv bug
f47191582 Add test for refresh_latest_ohlcv caching
f08d673a5 add details and exemple of custom_price_max_distance_percent usage in doc
17daba321 add custom_price_max_distance_percent config option in constants
faff40577 fix test_execute_buy In case of custom entry price
3ea4b2ba0 add custom_price_max_distance_percent security to get_valid_price, update tests
0264d77d8 Fix test for fixed typo
f24a951ec fix: typo spelling grammar
4115121c2 Fix missing return statement in is_Relative_to
4b65206e6 Add compat code for is_relative_to
6b2ef36a5 Prevent directory traversal in UI Serving
abddb3ef2 Add test for directory traversal
108a6cb89 Bump pandas from 1.3.1 to 1.3.2
3878e5186 Bump numpy from 1.21.1 to 1.21.2
a10fd6690 Bump plotly from 5.1.0 to 5.2.1
d8607b2ce Bump flake8-tidy-imports from 4.3.0 to 4.4.1
712579324 Bump uvicorn from 0.14.0 to 0.15.0
e7b6a996d Bump mkdocs-material from 7.2.2 to 7.2.4
37d454512 Bump ccxt from 1.54.74 to 1.55.6
dda827658 Update documentation for sell_profit_offset
322ea2481 Add log-message for edge-case
ed6776c5c Fix disappearing pairlist bug
4f10a8852 Reduce verbosity when incompatible pairs are detected
123971d27 Don't change passed in parameter variable
0f7ddabec Slightly reword documentation
bb472ff98 Improve new-exchange documentation
db5a94439 Cleanup GHA node after building images
c7147311f Fix json syntax error in config template
0a6c0c429 add a note concerning default custom entry or exit price in documentation
20cc60bfd update get_valid_price function and test cases to handle inputs with try catch
dbf7f34ec add unit test to function get_valid_price
b098ce4e7 add function get_valid_price to validate type of custom entry or exit price and use default proposed price if invalid
ae11be397 manage None or string value returned by custom_entry_price and add unit test for those cases
e03784d98 Fix filled exception
fad253ad5 Version bump ccxt to 1.54.74
f6267c751 Fix buy_tag not being saved to trade object.
61c076563 Add max-slippage limiting for dry-run orders to avoid insane market order fills
65d025923 add code
039d6384e Stream hyperopt-result in small batches
3f160c714 Cache dataframe before cutting the first candle
cf27968b9 Properly preserve trade's low during backtesting
5bfb9edf0 Only query date once from list
895b912c7 Fix recently introduced lookahead bias in backtesting
a5f796bc9 refactor ohlcvdata_to_dataframe to advise_all_indicators
519c256b8 Fix kucoin typo in index.md as well
927ac24f8 Update README.md
f17942b68 Fix random test failure
5919992ad Bump types-requests from 2.25.1 to 2.25.6
47f641d12 Remove hyperopt-pickle result support
b89a99389 Bump types-filelock from 0.1.4 to 0.1.5
59626b4ff Bump types-tabulate from 0.1.1 to 0.8.2
bad25b753 Bump ccxt from 1.54.24 to 1.54.62
32e8e3b24 Bump types-cachetools from 0.1.9 to 0.1.10
3bd0c3d00 Remove legacy code from export to csv
be240566b Fix random test failure
faf16a64e Remove legacy hyperopt file support
0ae4eccea Refactor Hyperopt-list and hyperopt-show to reduce some duplicate code
7eaadb263 Add custom-* methods to bot-basics
cf70b34ff Add min_value to all volumepairlist samples
5393c55b5 Document min_value for VolumePairList
b9356a556 Autopep8 formatting
0985b1126 add doc for custom exit price
84d082033 fix default retval for strategy custom_entry_price
0aeebc9d5 add test for custom exit price
90c194de1 Align Readme and documentation index in supported exchange lists
eee5f174f update link
cb3b0cf31 add custom_exit_price in interface and freqtradebot
f243ad4af add custom_exit_price in strategy interface
f9f519fd3 add custom_exit_price function to interface
d9b9eecd4 remove entry price reached method
2cf781f3d add freqtradebot execute_buy test in custom entry price case
ad0e4a856 Add BooleanParameter
b73768acd Fix bug in property overwriting prevention
3c4122333 Add test for protections-hyperopt
a661e0db6 Deprecate protections from config
ceed3c663 Document using protections
a6454cfc3 Autoenable protections when protection-space is selected
091bf7c4d Output protection space
544e0da6c Add protection parameter space
800b2eeaf Load protections as part of backtest()
74a5cb3c2 Remove protections from full config
6410a6528 Add missing methods to advanced strategy template
bc3e6deb1 remove specific test for buy with custom entry
b644233ea rename custom_entry_price kwarg to align it to the interface
b3dafb378 remove use_custom_entry_price as a config option
16146357b reuse buy_limit_requested as rate input for custom entry price
42e24d8b4 remove price change cancel reason in contants, will be added in another PR
00939b63f flake 8 fixes
53fb8b05e remove short logic in entry_price_reached function
d9c9b7d7f restore interface test file
3d8c3ffd3 fix syntax error in unit test
5284112b6 fix in custom entry function output,remove changes related to outdated prices, doc exemple minor changes
f11f5d17e add feature custom entry price for live
dfc17f2bd Fix ci failure
4ab03f7e3 Don't load fallback methods for autohyperopt
e70a74200 Reorder space methods in hyperopt
c98164144 Don't fail if strategy doesn't contain sell signal
3c5f06d5c Update tests/exchange/test_exchange.py
b63eda3a2 Some minor cleanup and improved test coverage
3a19e1610 Bump mkdocs-material from 7.2.1 to 7.2.2
7fd3fc98c Bump types-requests from 2.25.0 to 2.25.1
849b8197a Bump scipy from 1.7.0 to 1.7.1
4afcea9a1 Bump fastapi from 0.67.0 to 0.68.0
4f05d31b9 Bump ccxt from 1.53.72 to 1.54.24
b3f057e7c Bump isort from 5.9.2 to 5.9.3
059c32b06 Check for and default to 'None'
056bc93bc backtesting needs startup_candle_count
047df0c21 Removed leverage references
e9ef9a6d2 Use .view() to convert dates to enums
90a61b176 Changed tests in tests/test_persistence.py to use usdt prices
6f8519d0a Add environment variable support
c5e3348b8 Migrations for indexes should run in a seperate session
1ccc89d1e Store fully analyzed dataframe
b1cbc75e9 Properly cache pair dataframe in backtesting (without startup-range).
6abd352c0 Add test for backtesting dataframe cache
ab3c75341 Fix develop_plot building
499af5c42 Update webservermode docs
35bf2a59a Improve test reliability (fix fluky test)
aa34889c0 Don't run migrations twice
25c527ee6  combined exchange.buy and exchange.sell, Adding dummy mock to create_order in tests in test_freqtradebot
34c8a5afa remove second filter, add max option
b7ba2f115 retrigger checks
0fcbe097c remove blankspace
7a0cb95ff fix testcase
b9c2489b7 remove SN
ba0fa1120 revert rename naming
acfaa39e5 revert back test_rpc_api_server
8032257fd revert test_pairlist
aea5da0c7 changes testcase
65fc094c9 add to webhook-config
5fe18be4b add note buy_tag and split 3 assignment for get_signal
dd923c347 Update docs/strategy-advanced.md
65b4705b6 Update docs/strateg...
Read more