github freqtrade/freqtrade 2020.01

latest releases: 2024.4, 2024.3, 2024.2...
4 years ago

Highlighted changes

Balance / Wallet related

  • Introduction of Dry-Run Wallet, simulating the wallet on the exchange.
  • Introduced the tradable_balance_ratio setting - keeping a safety margin of the available balance on the exchange (defaults to 1% safety margin). It also allows to trade half the account by setting this to 0.5. See documentation.
  • Introduced the amend_last_stake_amount setting, which allows lower stakes if not enough balance is available. See documentation.

General improvements

  • You can now use any currency on the exchange as the stake currency. Previously it was limited to the restricted set of 'BTC', 'XBT', 'ETH', 'USDT', 'EUR', 'USD' currencies only.
  • Performance improvements to backtesting - closing a long-standing issue (#1016).
  • Allowing the strategy to set the unfilled timeout, so it can be set in either configuration or strategy.
  • Added the list-strategies command - allowing to list all strategies in a folder.
  • The /balance RPC method will now convert to stake currency, not to BTC.
  • The load_backtest_data() and load_trades_from_db() methods now have their columns aligned where possible.
  • Plotting now allows advanced plot configurations from within the strategy. Consult the documentation for more details.
  • Wallets are now refreshed when the /balance RPC method is called.
Full changelog
cff8498b Version bump 2020.01
c9ee678a Bump sqlalchemy from 1.3.12 to 1.3.13
a3b0f752 Bump pytest from 5.3.3 to 5.3.4
66939bdc Bump ccxt from 1.21.76 to 1.21.91
184a6005 Bump urllib3 from 1.25.7 to 1.25.8
161c06fd Bump plotly from 4.4.1 to 4.5.0
30e3e434 Add notify_status() to FreqtradeBot
33645e45 Minor cosmetics in start_trading
02563019 move setup_utils_config to configuration module
8c9119b4 Add docustring to commands module
2d02c3f2 Split out pairlist_commands
a3e9d043 Adjust imports to new place for arguments
7f851ad8 Move arguments and cli_options to commands module
a1c684f6 Simplify noqa setup for module imports
f347e593 Small adjustments for moved commands
e033df6a Move optimize_commands to commands module
b254bdfe Move plot_utils to plot_commands
70a0346b Move data-stuff to data-commands
7e233041 Adjust tests to new paths
926bf07d Seperate a few commands into specific files
6e852804 Adjust imports
80ed1c3e Move utils to commands
3f2542fc Move edge-module out of __init__.py
a3ac05cc Fix missed mock
bd4dd840 Fix type-errors with stake_amount
52f0ed53 Adjust tests
f4c7edf5 No args for backtest(), use arguments
aad10cee Add threading lock object for /forcesell
58ceda4b update wallets after forcesell
f36bc80a Add parametrized tests for get_buy_rate
8a940eb0 Align price finding function name on buy side with get_sell_rate
e13045b5 upgrade pip in windows environment
7d2d0235 Fix typo in sell-reason table generation
bff0a095 line was too long
c1c2717b added missing word in hyperopt loss example
1bf475fa Remove .get calls for dry_run - it's a mandatory property
099bbc5c Fix bug when stoploss_on_exchange in combination with dry-run
6e3336cb Adapt test to verify behaviour of stoploss_on_exchange in dry-run
8d451593 Bump pytest from 5.3.2 to 5.3.3
9474cb17 Bump ccxt from 1.21.56 to 1.21.76
fa1e9dd7 Adjust tests to allow updating within safe_sell_amount
29a5e4fb Update wallets before getting amount
8bcfe4a6 Up log level of safe_sell_amount message
90ed4c66 Cover equal case via test
d1bf388b Wallet amount must be compared with >=
6feb68b1 Change feature sorting to tell more of a story
f73f0b16 Update comments on backtesting
c8806a16 Allow wallet update from /balance
4013701b allow wallet update to be skipped if the value is fresh enough.
4c823f12 Sort imports
1e58cd70 Adapt tests to round price up
bea4ad8e Revert price_to_precision to rounding up
d7957bd7 add advanced tests for price_to_precision
425ec53b Combine amount_to_precision tests into one
797dc8a4 Add more detailed tests for amount_to_precision
c67b2530 Bump ccxt from 1.21.32 to 1.21.56
b3938a86 Bump python-telegram-bot from 12.2.0 to 12.3.0
2f8ed7ed Bump numpy from 1.18.0 to 1.18.1
af366357 Minor changes in the docs
495728f5 Refine docs
5fcab1ee Align method names to internal ccxt names
b60d7ad4 Use ccxt.decimal_to_precision instead of our own calculation
fa1f9bcd expose precisionMode from exchange class
53abfdbc Use sorted on set instead of explicit list conversion
3519cebf Add test for failing stake_validation
a7246ba1 No need to "fix" stake_currency enum anymore
60b47b6e Add tests for get_quote_currencies
ca288053 Modify tests to skip stake_currency validations
13274964 Implement validation for valid stake currency
235a10ab Don't suppport <1m timeframes
5faebad8 Don't hardcode TimeFrames - they can differ by exchange.
d3de3983 Docs adjusted
83b88e79 Remove Required marks for new settings
3faa2d0e Refine description for last_stake_amount_min_ratio
fab19ae3 Implement last_stake_amount_min_ratio
e94dfdef UPdate documentation to remove inexisting setting
9713dc8d Ensure wallets.update is called before buy
b748ed34 UPdate documentaiton wording
785cd2a6 Rename test module
c475729c Extract edge reporting to optimize_reports
989ab646 Add profit % to sell_reason table
7461b5dc Mention custom strategy in features
135487b2 SPlit control and Analyse feature into 2 seperate points
cee8f334 rearrange features -- move Run to the top
9559cb98 reworked
db34cb1b Do some adjustments to the wording of the index.md section
c9b0b4c7 Add plot_config to optional plot
c3fd894a Regenerate plots with new settings
3883d18b Add bollinger note
2b3f2e5f Add first version of documentation
6ac7dcf5 Bump arrow from 0.15.4 to 0.15.5
6da97faf Bump coveralls from 1.9.2 to 1.10.0
3c0d1840 Bump ccxt from 1.21.23 to 1.21.32
d846114d Bump scikit-learn from 0.22 to 0.22.1
aabeece4 Bump flake8-tidy-imports from 3.1.0 to 4.0.0
b614964b Bump pytest-mock from 1.13.0 to 2.0.0
888ea58d Add tests for new behaviour
d0ccfa19 Explicitly given indicators should override plot_config
ca054799 Add tests for amend_last_stake_amount
b37f34ff Implement amend_last_stake_amount
7daa5bc3 Don't return None from unlimited_stake - 0 handles this just as well
53499e01 Clearly differentiate trade buys sells (positive and negative)
bdda6203 add plot_config to startegy interface properly
b5a806de Fix typo and add tests for create_plotconfig
4628024d Adapt tests to new add_indicator methodology
f04873b0 Add plot_config to interface
5853b990 make Plot_config the default approach
5d5074ac Implement first working version of plot_config
84ef5881 support dicts as indicators
24aa596e Minor: Refine fee example in the docs
e1f89e3a Reword Note in backtesting fee docs
7e7c82cf Small adjustments to relative_stake PR
71dd0386 add tradable_balance_ratio to to all config samples
55041878 Update Backtesting fee documentation
0dd27491 Update documentation regarding configuration of stake_amount
f3beaa33 Deprecate capital_available_percentage
6d01653b Adapt test to test more cases with reduced tradable_balance
45583864 Apply get_available_balance logic to regular trades, too
3c798116 Extract `get_available_stake_amount`
4ac1ac7e Warn about tradable balance being applied to the current amount of the balance
a8d56b28 IMplement check for unlimited settings
11059e53 Fix missed default minimum in documentation
da1fea65 Minor correction to wording of MacOS Specific install doc
560aea87 Remove fiat_currency temporary variable
90744ff5 show percent instead of ratio (!)
b48bf035 Add note about MacOS installation
c13c11cf Type does not need to be a list
6e615998 Fix documentation typo
94afb7cb Improve integration test with a few additional tests
bfef3cf4 Add additional test case for lower balance ratios
cba156df Add offset calculation for relative stake maximum limit
64db1f67 Prepare tests to valiate reduced full amount.
a47a25ca Refine passing msg params
88efa406 Align the name of a variable to be same for buy and sell parts
f15e5e9d Add _notify_buy()
1b8943ac Add documentation for tradable_balance_ratio
9382b38c Fix mypy error
22fcf7b4 Allow empty stake currency in certain cases
20fc3b79 validate config for utils too
9325880f Split config-validation requires
2c8e8d8e Align columns for btanalysis loading
6fbdd6be Remove unused directory from user_data
e89fa446 Arrange common section for update trade state methods
a9fbad07 Improve docstrings
8cc48cf4 Fix tests where mocks fail now
10ee2362 Extract tests for backtest_reports to their own test module
904e1647 Extract generate_text_table_strategy to seperate module
caec345c Extract generate_text_table_sell_reason from backtesting class
18a53f44 Extract generate_text_table from backtesting class
21418e29 Minor: fix comment
4475110d Cosmetics in freqtradebot
0ea44b01 Fix message in setup.sh
26a2395a Include Pair name in exception log message
9d518b9d Add comment and don't hardcode 4 in test
6ebb9017 Improve test enter_positions
a88464de Improve some test code
fd7af587 Rename process_maybe_execute_buys() --> enter_positions()
84918ad4 Rename process_maybe_execute_sells() --> exit_positions()
b00406a7 Make process_maybe_execute_*() returning integers
4d56e3b3 Address some comments made in the review
8e9a3e8f Capture FtBaseException at the outermost level
1ffda29f Adjust improts to new exception location
024aa3ab Move exceptions to seperate module
20abf677 Add Debug "code" for randomly failing test
fb3a53b8 Use ExchangeResolver for edge_cli too
4c9295fe Rename Bid-strategy helpervariable to something shorter
de23f392 Add trailing_only_offset to template and sample
20a13265 Bump ccxt from 1.21.12 to 1.21.23
df7ceb4c Fix misinformation in /status table
304d15e2 Small corrections
d1c45cf3 Update analysis documentation to include kernel installation
04f28ed9 Refactor try/except: handle DependencyException for each pair separately
ce84f745 Adjust tests
76260430 Refactor create_trades()
5c39ebd0 Adjust logging
b2fb2845 Fix tests after changing output
fc98cf00 Address PR feedback - change output to show Filename only
d6ca562b Make mypy happy and handle hypothetical case when stake_amount == 0
3dbd83e3 Introduce get_free_open_trades() method
8eeabd23 Move warning to create_trades()
ed9cb421 Make mypy happy
ef92fd77 Align behavior: check for available in all cases: edge, unlimited and fixed
abaeab89 Make _calculate_unlimited_stake_amount() a separate method
243bcb23 Make _check_available_stake_amount() a separate method
86f26930 cosmetics
b6d1c5b1 _get_trade_stake_amount() is not private
039dfc30 No need to convert pair name
e51ac2c9 Remove unavailable pair ...
cadde3ab Check if markets.info is a dict before using it
98647b49 Remove wrong "once per hour" listings
63f41cf1 Update documentation with new result
e5aed098 Enhance backtest results with sell reason profit / loss table
ad750486 Fix testing with path in windows
402c761a Change loglevel of Path output to debug
66f9ece0 Add documentation for strategy-list
27b86170 Add tests
2ab989e2 Cleanup some code and add option
5a11ca86 Move instanciation out of search_object
25e6d6a7 Combine load_object methods into one
eb1040dd Convert resolvers to classmethods
a6844569 Add first steps for list-strategies
48935d29 Align edge documentation to configuration page
83ed0b38 Wordwrap before keep it secret
a105e566 Align /balance output to show everything in stake currency
b8442d53 Update integration test to also test dry-run-wallets
33cfeaf9 Remove i.e.  where it doesn't fit
f487dac0 FIx bug in dry-run wallets causing balances to stay there after trades are sold
690eb2a5 configuration.md reviewed
0ac5e503 Remove unused import
c6b9c8ec Forgot to save
ecbb77c1 Add forgotten option
bb8acc61 Convert datadir within config to Path
90cabd7c Wrap line
c6d22339 Convert StrategyLoader to static loader
6d5aca4f Convert hyperoptloss resolver to static loader
248ef5a0 Convert HyperoptResolver to static loader
560acb7c Convert ExchangeResolver to static loader class
5fefa9e9 Convert PairlistResolver to static loader
1c5f8070 Refactor build_paths to staticmethod
779278ed Bump sqlalchemy from 1.3.11 to 1.3.12
9cfbe98a Bump scipy from 1.3.3 to 1.4.1
31a7e9fe Bump mypy from 0.750 to 0.761
20ad8a37 Bump numpy from 1.17.4 to 1.18.0
8f17b813 Bump ccxt from 1.20.84 to 1.21.12
76a93fab Bump python from 3.7.5-slim-stretch to 3.7.6-slim-stretch
2195ae59 Use different time offsets to avoid confusion
dc567f99 Update documentation to new handling of dry-mode database
ffd7034c Persist dry-run trade per default
43c25c8a add documentation for is_pair_locked
a71deeda Document lock-pair implementation
89b4f45f Remove section about strategy template - use new-strategy intead
98353120 Improve pair_lock handling
1ff0d0f1 Add unfilledtimeout to strategy overrides
1a731592 Modify classifiers
c417877e sort pytest dependencies
9ec4368c Add release documentation
95bd9e8e No underscores in cli options
fc5764f9 Edge small cleanup
342f3f45 try with coveralls token in yml ...
0c6b5e01 Try with github-token
6507a26c Fix some tests after merge
e72c6a0d use only first part of the currency to get wallet-amount (!!)
1af96289 Fix note-box syntax error
11e787c8 Finish depth_of_market documentation piece
1c19856d add section about depth_of_market
d73ba71e Improve formatting of orderbook doc
dc07037e Add documentation for price finding
21622ac3 Rename get_ticker to fetch_ticker
cf4c3642 Minor improvements in data.history
c5e6a34f Remove unnecessary parenteses
15373896 Remove startup_candles argument in refresh_data
b2796f99 Remove redundant refresh_pair_history
bbb05b52 Remove fixed random order
60f89c8c Split refresh from load_data/load_pair_history
8513a5e2 Fix failures in test_main
2e2f084f Try to clear caplog ...
e1c0c6af fix random-seed to failing one
86de88ed Align usage of history import in test
a2964afd Rename profit_percent to profit_ratio to be consistent
539b5627 Fix typo
cbd10309 Add mid-state test
362a40db Update docstring
861a7834 Call calc_open_price() whenever necessary
307ade62 Cache open_trade_price
0b5354f1 Add required arguments to Trade method
707c5668 Fix typo
0277cd82 Make mypy happy
9cea5cd4 Add documentation about ohlcv_partial_candle
a6fc743d Align code in _download_*_history()
fa968996 Remove useless check
4cd45b65 Rename download_*_history as non-public
2af9ffa7 Align refresh_backtest_ to each other
75e6acd6 Bump ccxt from 1.20.46 to 1.20.84
05de60a7 Bump cachetools from 3.1.1 to 4.0.0
cc41cdbf Bump mkdocs-material from 4.5.1 to 4.6.0
c05af1b6 Bump plotly from 4.3.0 to 4.4.1
33db37a9 Bump joblib from 0.14.0 to 0.14.1
e398c375 Bump pytest from 5.3.1 to 5.3.2
655672c9 Enhance documentation Note
ce845ab0 Improve docstring for dry-run wallet method
b5b6458f Add note about unlimited stake amount
56e13c89 Enhance documentation for dry-run wallet
23d467eb Show simulation note also in restserver
c741b67c Adjust tests for dry_run wallet simulation
5a574187 Improve dry-run calculations
4463d584 Add release section about collapsible section
f0bbc750 Combine dry_run wallet into original Wallets class
fda8f7e3 Introuce WalletDry - supporting dry-run wallets
52b212db Fix tests after changing dry_run_wallet amount
931d24b5 Have dry_run_wallet default to 1000
26ab1088 Fix mypy errors in develop
f81c49ce Fix typo causing a trailing "tic" in /show_config output
2275a153 Remove default symbol from get_fee()
f2266ea9 Use shorter range for seeded random-state
82ff878e Fix typo in the docs
a48c0ad8 Use first pair of pairlist to get fee
e4cc5c47 Test new show_config branch
014c18ea Improve output from show_config when trailing_stop is active
3bd873f3 Add notes on random-state to the docs
04257d8e Add tests for safe_sell_amount
b69f5afa Round amount to precision also for dry-runs
5db88390 Try to verify available amount on the exchange
330b8cf8 space before unit ...
6e778ad7 Seed hyperopt random_state if not passed
7c7ca1cb Remove min (plural) from codebase
1058e5fb No plural for min
3f9f29ba Fix Flake8 import error
390db950 Show humanized and minutes version of duration
3448f862 Suppress scikit-learn FutureWarnings from skopt imports
3252654e Test adjusted
641e3fdf Fix generation of hyperopt trailing params
de33ec42 use sell_row.open also when the active ROI value just changed
25447329 Bump scikit-learn from 0.21.3 to 0.22
dc9fed4a Adjust documentation
88a24da2 Adapt tests to sending open / close date
e4655c9b include trade-duration with sell-notification
45d12dbc Avoid a few calculations during backtesting
189835b9 Add documentation for ROI-1 case
3163cbdf Apply special case for negative ROI
1e6f9f9f Add testcase for negative ROI sell using open
30918691 refactor get_close_rate out of get_sell_trade-entry
58d70b20 doc explicit optimization feature
0e9e6b34 refactor feature details doc
9199fd59 change doc into

Don't miss a new freqtrade release

NewReleases is sending notifications on new releases.