Compare commits

..

7167 Commits

Author SHA1 Message Date
robcaulk
755041c134 add noise feature, improve docstrings 2022-08-19 18:35:24 +02:00
robcaulk
98c62dad91 integrate inlier metric function 2022-08-19 15:22:54 +02:00
th0rntwig
52ee7fc981 Add inlier metric computation 2022-08-19 15:22:54 +02:00
Matthias
16af10a5bc Update notebook sample with simplified datadir configuration
closes #7252
2022-08-19 14:05:27 +02:00
Matthias
7d84ef2e2c Remove unused imports 2022-08-19 13:45:10 +02:00
Matthias
b420614d65 Reduce code duplication in datahandlers 2022-08-19 09:33:07 +02:00
Matthias
975bf8fe88 Update Docstring to match actual return values 2022-08-19 09:23:53 +02:00
Matthias
47b3143534 Simplify and fix some tests 2022-08-19 09:10:54 +02:00
Matthias
42eb508515 Attempt fix of #7184 2022-08-19 07:09:46 +02:00
Matthias
76a3e97e05 Add migrations end message
closes #7251
2022-08-19 06:39:51 +02:00
Matthias
70a77ba3d9 Check for "last" availability in PrecisionFilter
closes #7250
2022-08-18 20:07:50 +02:00
Matthias
85b43ec1a1 Remove double-check for "isolated margin" 2022-08-18 15:23:58 +02:00
Matthias
fde469a253 Remove unnecessary check 2022-08-18 14:53:44 +02:00
Matthias
075e9b8526 Log Exchange responses for set_leverage 2022-08-18 09:52:03 +02:00
Matthias
46e8d9a5e4 Reduce verbosity when whitelist is empty 2022-08-18 09:09:37 +02:00
Matthias
18fab86431 Add dock segment about webserver mode for docker 2022-08-18 08:32:15 +02:00
Matthias
0461a89348 Fix test failures 2022-08-18 07:20:49 +02:00
Matthias
66910bfe63 Don't fail if mark candles are missing
closes #7239
2022-08-17 20:01:57 +02:00
Matthias
3983368228 gateio futures is showing base currency in volume! 2022-08-17 14:51:48 +02:00
Matthias
83ca168bb8 Merge pull request #7216 from freqtrade/precise_calcs
Precise calcs
2022-08-17 14:32:02 +02:00
Matthias
c615e1bc62 Avoid loop error during ccxt tests 2022-08-17 14:31:40 +02:00
Matthias
b9667f50cf Fix random test failure 2022-08-17 14:05:12 +02:00
Matthias
e7902bffa0 Remove checks for dataprovider existance - it's available in all modes. 2022-08-17 10:57:25 +02:00
Matthias
e0883a4ea0 Improve doc wording 2022-08-17 10:55:59 +02:00
Matthias
819bc71941 Update docs for freqai docker container 2022-08-17 10:35:56 +02:00
Matthias
463cf66881 Fix bad image name 2022-08-17 10:32:29 +02:00
Matthias
c8d7c2caac Update CI to build and push freqAI images 2022-08-17 10:32:29 +02:00
Matthias
8d182768f9 stoploss should also use trimmed prices 2022-08-17 09:57:11 +02:00
Matthias
0b0e7eaf96 Mutex TTL Cache accesses which can be accessed by multiple threads
Apparently, cachetools is (intentionally) not threadsafe
when using the Caches directly.
It's therefore recommended to wrap these with an explicit lock to avoid
problems.

source: https://github.com/tkem/cachetools/issues/245

closes #7215
2022-08-16 19:48:21 +02:00
Matthias
24690c1918 Don't convert open_rate to precision
this may cause more problems than it solves.
2022-08-16 18:32:00 +02:00
Matthias
3b44dc52e1 Minor corrections 2022-08-16 18:10:48 +02:00
Matthias
ea6bc47d7a gateio default configs should specify unknown_fee_rate 2022-08-16 17:26:53 +02:00
Matthias
5dde011b31 Add unknown_fee_rate to full sample config 2022-08-16 17:23:49 +02:00
Matthias
a1e4fbf313 Run price_to_precision for dry-run orders 2022-08-16 17:23:49 +02:00
Matthias
1ac81aa316 Show message if fee update failed due to missing
closes #7234
2022-08-16 17:09:23 +02:00
Matthias
c865814a8e Merge pull request #7236 from freqtrade/fix-lgbm-warning
Fix input shape for LighGBMClassifier
2022-08-16 13:49:25 +02:00
robcaulk
4c0fda400f fix input shape warning for LGBMClassifier, add sample_weights/eval_weights 2022-08-16 11:41:53 +02:00
Matthias
fa89368c02 Add test for precision backpopulation 2022-08-16 11:11:52 +02:00
Matthias
96d2f61812 Properly round timestamps to avoid constant log messages 2022-08-16 10:22:59 +02:00
Matthias
b8c1cf0107 Fix test leakage if config is available 2022-08-16 10:19:19 +02:00
Matthias
15a1c59a91 Backtesting should cache precisionMode 2022-08-16 10:15:19 +02:00
Matthias
a73e4f8e41 Truncate amount before comparing for closure 2022-08-16 09:49:53 +02:00
Matthias
2fb7a3091d Improve backfill of precisions 2022-08-16 09:32:31 +02:00
Matthias
711b6b1a1a Merge branch 'develop' into precise_calcs 2022-08-16 09:29:39 +02:00
Matthias
a5b438e41e Run price_to_precision for dry-run orders 2022-08-16 09:28:23 +02:00
Matthias
1dd56e35d5 Ensure comparisions align when closing a trade 2022-08-16 08:21:02 +02:00
Matthias
e4b7bcaeab Fix some tests 2022-08-16 08:01:07 +02:00
Matthias
e818797427 Minor fix in amount_to_precision logic 2022-08-15 20:29:05 +02:00
Matthias
c0bdb71810 Update docstring 2022-08-15 20:06:29 +02:00
Matthias
f2b6ff910f Accept wrong pair in get_precision_amount 2022-08-15 20:05:22 +02:00
Matthias
09ee9089fb Merge pull request #6832 from freqtrade/feat/freqai
Freqai: an interface for users to build/train/backtest predictive models and run them live
2022-08-15 20:03:08 +02:00
Matthias
e6af9a6903 Allow empty precisionMode on conversions 2022-08-15 20:00:15 +02:00
Matthias
c3f159bd57 Add precision fields to database 2022-08-15 19:58:40 +02:00
Matthias
22241c55d5 Add methods to get precision_amount from markets 2022-08-15 19:56:25 +02:00
Matthias
15e85797c2 Simplify to_precision tests and imports 2022-08-15 08:51:15 +02:00
Matthias
6c32331740 Move precision calculations to standalone functions 2022-08-15 08:43:58 +02:00
Matthias
053ab12ba6 Merge pull request #7227 from freqtrade/dependabot/pip/develop/plotly-5.10.0
Bump plotly from 5.9.0 to 5.10.0
2022-08-15 08:11:38 +02:00
Matthias
c7e1719215 Fix interface import sorting 2022-08-15 06:53:02 +02:00
Matthias
686b72a82d Merge pull request #7229 from freqtrade/dependabot/pip/develop/ccxt-1.92.20
Bump ccxt from 1.91.93 to 1.92.20
2022-08-15 06:49:54 +02:00
Matthias
398b2946b5 Update test formatting 2022-08-15 06:49:28 +02:00
Matthias
490c3a30ed Merge pull request #7225 from freqtrade/dependabot/pip/develop/nbconvert-6.5.3
Bump nbconvert from 6.5.0 to 6.5.3
2022-08-15 06:32:54 +02:00
Matthias
3caf0f9df3 Merge pull request #7231 from freqtrade/dependabot/pip/develop/orjson-3.7.12
Bump orjson from 3.7.11 to 3.7.12
2022-08-15 06:32:31 +02:00
Matthias
b7b74a430c Merge pull request #7230 from freqtrade/dependabot/pip/develop/mkdocs-material-8.4.0
Bump mkdocs-material from 8.3.9 to 8.4.0
2022-08-15 06:31:40 +02:00
Matthias
4ae9b48d89 Merge pull request #7228 from freqtrade/dependabot/pip/develop/filelock-3.8.0
Bump filelock from 3.7.1 to 3.8.0
2022-08-15 06:31:19 +02:00
dependabot[bot]
dba7d7fd65 Bump ccxt from 1.91.93 to 1.92.20
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.91.93 to 1.92.20.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.91.93...1.92.20)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 04:29:20 +00:00
Matthias
a0c348cf97 Merge pull request #7226 from freqtrade/dependabot/pip/develop/numpy-1.23.2
Bump numpy from 1.23.1 to 1.23.2
2022-08-15 06:28:53 +02:00
Matthias
ce892d4cde Merge pull request #7224 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.40
Bump sqlalchemy from 1.4.39 to 1.4.40
2022-08-15 06:28:17 +02:00
dependabot[bot]
6fb5fbdd30 Bump orjson from 3.7.11 to 3.7.12
Bumps [orjson](https://github.com/ijl/orjson) from 3.7.11 to 3.7.12.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.7.11...3.7.12)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 03:01:56 +00:00
dependabot[bot]
bc79027cf4 Bump mkdocs-material from 8.3.9 to 8.4.0
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.3.9 to 8.4.0.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.3.9...8.4.0)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 03:01:51 +00:00
dependabot[bot]
2581acd75e Bump filelock from 3.7.1 to 3.8.0
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.7.1 to 3.8.0.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/py-filelock/compare/3.7.1...3.8.0)

---
updated-dependencies:
- dependency-name: filelock
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 03:01:36 +00:00
dependabot[bot]
baa0af68b2 Bump plotly from 5.9.0 to 5.10.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.9.0 to 5.10.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.9.0...v5.10.0)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 03:01:33 +00:00
dependabot[bot]
025ff27dd2 Bump numpy from 1.23.1 to 1.23.2
Bumps [numpy](https://github.com/numpy/numpy) from 1.23.1 to 1.23.2.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v1.23.1...v1.23.2)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 03:01:29 +00:00
dependabot[bot]
96c279f86c Bump nbconvert from 6.5.0 to 6.5.3
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 6.5.0 to 6.5.3.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Commits](https://github.com/jupyter/nbconvert/compare/6.5...6.5.3)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 03:01:22 +00:00
dependabot[bot]
4b708caa6a Bump sqlalchemy from 1.4.39 to 1.4.40
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.39 to 1.4.40.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 03:01:19 +00:00
robcaulk
3f6d427084 add a check for number of training features in tests 2022-08-14 21:46:37 +02:00
robcaulk
006b11e5d5 fix leftover bug in indicator population 2022-08-14 21:42:55 +02:00
robcaulk
8961b8d560 merge in inference timer and historic predictions handling improvements. 2022-08-14 20:31:15 +02:00
robcaulk
ad846cdb76 fix lock bug, update docstring 2022-08-14 20:24:29 +02:00
Matthias
464d99808f Update doc table formatting 2022-08-14 18:22:01 +02:00
Matthias
d442383a15 Fix ta-lib install script 2022-08-14 18:17:17 +02:00
Matthias
a29402ddde Rename and move analysis_lock to data_kitchen 2022-08-14 17:23:14 +02:00
Matthias
3a9ec76c91 Move "freqai.lock" to backend to simplify user interface 2022-08-14 17:19:50 +02:00
Matthias
a5e96881f4 slightly update doc wording 2022-08-14 17:08:29 +02:00
Matthias
c08a89378d Merge pull request #7192 from AchmadFathoni/patch_conda_ta-lib
Add script for patching conda libta-lib
2022-08-14 09:46:33 +02:00
Matthias
e7513c96b3 install py-find-1st from conda forge
closes #7193
2022-08-14 09:36:38 +02:00
Matthias
24f1dc4ecc Update patched ta-lib install for conda 2022-08-14 09:06:04 +02:00
Matthias
044cf8bb2e Allow new whitelist combination in "button" commands 2022-08-14 08:41:25 +02:00
Matthias
22ac291c3a Merge pull request #7211 from ecoppen/rpc/whitelist_options
Optional /whitelist args - sorted, nobase
2022-08-14 08:26:21 +02:00
Robert Caulk
c9c128f781 finalize logo, improve doc, improve algo overview, fix base tensorflowmodel for mypy 2022-08-14 02:49:01 +02:00
Matthias
8d9284a524 Fix docs edit button 2022-08-13 20:20:09 +02:00
Matthias
7a2b4dbb99 Fix docs edit button 2022-08-13 20:16:36 +02:00
robcaulk
58de20af0f make BaseClassifierModel. Add predict_proba to lightgbm 2022-08-13 20:07:31 +02:00
robcaulk
31be707cc8 clean up code, add docstrings 2022-08-13 19:40:24 +02:00
robcaulk
3e38c1b0bd take dynamic sized tail off historic_predictions as return dataframe to strategy. 2022-08-13 19:40:24 +02:00
robcaulk
7d448fd4ac allow fit_live_predictions access to current pair 2022-08-13 19:40:24 +02:00
robcaulk
1f192be43b avoid denormalizing labels twice 2022-08-13 19:40:24 +02:00
robcaulk
b1b76a2dbe debug classifier with predict proba 2022-08-13 19:40:24 +02:00
robcaulk
23cc21ce59 add predict_proba to base classifier, improve historic predictions handling 2022-08-13 19:40:24 +02:00
Matthias
61acbf21d0 Fix broken telegram tests 2022-08-13 15:46:06 +02:00
Matthias
7075b00e20 Remove odd dry run stoploss behavior
closes #7208
2022-08-13 11:37:23 +02:00
Matthias
7c18ec4053 Add missing key to "full" config sample 2022-08-13 11:24:55 +02:00
Matthias
e09fbe9e53 Improve test resiliance 2022-08-13 11:17:22 +02:00
Matthias
d36da95941 Fix bad import 2022-08-13 11:07:58 +02:00
Matthias
82ac8cb41f Add freqai backtesting_load test 2022-08-13 10:48:57 +02:00
Matthias
0b92c30abd Fix typo in test file 2022-08-13 10:19:46 +02:00
Matthias
5aaab75d1c Add test for dynamic_pairlist_expand 2022-08-13 10:18:57 +02:00
Matthias
1ac6ec1446 Fix failing test... 2022-08-13 09:56:21 +02:00
Matthias
b682fc446e Graciously fail if strategy has freqAI code, but freqAI is not enabled. 2022-08-13 09:53:18 +02:00
Matthias
c190d57f1a Test populate_any_indicator interface 2022-08-13 09:48:59 +02:00
Matthias
3918f4abbd Simplify strategy interface by removing explicit self.freqai_info assignment 2022-08-13 09:27:56 +02:00
Matthias
3b827ee60a Add "freqai.enabled" flag to disable freqAI via config flag
aligns with how other optional modules work in freqtrade.
2022-08-13 09:24:04 +02:00
Matthias
49989012ab Bump catboost requirement to latest 2022-08-13 09:20:58 +02:00
Matthias
f6545ebdb8 Disallow backtesting with --strategy-list for now. 2022-08-13 09:10:03 +02:00
Matthias
e3a5b97b45 Update recalc_from_trades to use FtPrecise 2022-08-13 08:43:56 +02:00
Matthias
9513c39a17 Fix migration rounding test 2022-08-13 08:43:56 +02:00
Matthias
3bcb47d75d Remove usage of Decimal 2022-08-13 08:43:56 +02:00
Matthias
902afc2f02 Use FtPrecise in interest calculation 2022-08-13 08:43:56 +02:00
Matthias
da253f12fe Bump CCXT to required version 2022-08-13 08:43:56 +02:00
Matthias
0e61c2d057 Replace Decimal with FtPrecise in trade_model 2022-08-13 08:43:56 +02:00
Matthias
df701b5862 Merge branch 'develop' into feat/freqai 2022-08-13 08:43:24 +02:00
ecoppen
2312b86a66 Update telegram-usage.md
Add the optional arguments to the documentation.
2022-08-12 19:59:08 +01:00
ecoppen
ccc0ad6f64 fix - reload whitelist
Should fix the issue, if not I'll move development to a different computer and get local testing running properly.
2022-08-12 19:58:41 +01:00
ecoppen
923f73a516 nobase -> baseonly 2022-08-12 19:56:46 +01:00
robcaulk
fb4b73ce89 ensure dates are saved 2022-08-12 12:03:44 +02:00
Matthias
b427c7ff13 Use diff. close time to avoid buggy behavior 2022-08-12 07:28:19 +00:00
Matthias
d93bb82193 Add more Commits to failing test 2022-08-12 08:19:40 +02:00
Matthias
aa1bf2adbd Try fix windows testfailure 2022-08-12 06:43:34 +02:00
Matthias
cc885e25ac Improve NAN Handling in RPC 2022-08-11 20:16:07 +02:00
Matthias
de690b0a69 Use PEP440 compatible versioning 2022-08-11 20:08:40 +02:00
Matthias
dd4e44931e Improve NAN handling in RPC module 2022-08-11 15:02:52 +00:00
Matthias
f7502bcc92 slightly update dca_short test 2022-08-11 11:35:24 +00:00
robcaulk
2cae3c42e6 remove trade database analyzer, clean up a bit 2022-08-10 17:43:06 +02:00
ecoppen
ace9626483 Update tests for sorted and nobase
Tests for PR #7211
2022-08-10 15:04:24 +01:00
ecoppen
c0d60c63ab Optional /whitelist args - sorted, nobase
Added two optional arguments for whitelist - `sorted` for alphabetical order and `nobase` for displaying the whitelist without base currency e.g. /USDT.

Updated help with optional commands.

Added a space in an unrelated help message.
2022-08-10 14:56:38 +01:00
Matthias
ed004236ce Add float initializer to FtPrecise 2022-08-10 11:54:07 +00:00
Matthias
e7cb1b7375 Wrap Precise into FtPecise 2022-08-10 11:26:06 +00:00
robcaulk
91d0c91287 improve docs 2022-08-10 11:56:42 +02:00
Matthias
adc8ee88e2 Move periodicCache to Utils package 2022-08-10 08:57:19 +00:00
Matthias
573964b19f Dry Market orders should update "remaining" 2022-08-10 07:12:56 +02:00
Matthias
53251e7140 Merge pull request #7194 from freqtrade/rpc/partial_forceexit
Partial forceExit
2022-08-10 07:12:40 +02:00
Matthias
ce2c9bf26d Slight renaming of variable 2022-08-10 06:44:41 +02:00
Matthias
736884c5a9 Orders should be allowed to have empty fill/remaining values 2022-08-09 20:43:58 +02:00
Matthias
b5c5a95b64 FTX: Use conditionalOrders endpoint to get proper stop-market order id
closes #7165
2022-08-09 20:09:35 +02:00
robcaulk
4289c5c684 update freqai logo 2022-08-09 16:51:57 +02:00
robcaulk
5a16d5a512 Deactivate database analyzer if user does not use sqlite 2022-08-09 16:36:22 +02:00
robcaulk
e7de812948 Allow user to user pair_dict for persistent storage of custom data 2022-08-09 16:03:10 +02:00
robcaulk
aef086b02e Improved dict typing, timeframe parser, collect dates associated with training data points 2022-08-09 15:30:25 +02:00
Matthias
02646a4a08 Update scikit-learn in freqai deps 2022-08-09 06:23:16 +02:00
Matthias
9a82898d6b Merge branch 'develop' into feat/freqai 2022-08-09 06:22:57 +02:00
Matthias
77b3b8a134 Use main exchange instead of creating a separate instance. 2022-08-08 18:34:11 +00:00
Matthias
20b4134787 Properly exclude catboost in ARM 2022-08-08 18:15:18 +00:00
Matthias
8a18609be4 Merge pull request #7201 from freqtrade/dependabot/pip/develop/types-requests-2.28.8
Bump types-requests from 2.28.6 to 2.28.8
2022-08-08 07:18:27 +02:00
Matthias
0c7d862aae types-requests bump pre-commit 2022-08-08 06:54:00 +02:00
Matthias
05fb4de68b Merge pull request #7198 from freqtrade/dependabot/pip/develop/flake8-5.0.4
Bump flake8 from 5.0.1 to 5.0.4
2022-08-08 06:53:09 +02:00
Matthias
21649712a9 Merge pull request #7202 from freqtrade/dependabot/pip/develop/ccxt-1.91.93
Bump ccxt from 1.91.55 to 1.91.93
2022-08-08 06:52:14 +02:00
Matthias
001b6c087a Merge pull request #7199 from freqtrade/dependabot/pip/develop/scikit-learn-1.1.2
Bump scikit-learn from 1.1.1 to 1.1.2
2022-08-08 06:50:09 +02:00
Matthias
77b6025f12 Merge pull request #7200 from freqtrade/dependabot/pip/develop/jsonschema-4.9.1
Bump jsonschema from 4.9.0 to 4.9.1
2022-08-08 06:49:49 +02:00
dependabot[bot]
71c88244fe Bump ccxt from 1.91.55 to 1.91.93
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.91.55 to 1.91.93.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.91.55...1.91.93)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-08 03:01:38 +00:00
dependabot[bot]
97c077171a Bump types-requests from 2.28.6 to 2.28.8
Bumps [types-requests](https://github.com/python/typeshed) from 2.28.6 to 2.28.8.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-08 03:01:28 +00:00
dependabot[bot]
a45a35f38c Bump jsonschema from 4.9.0 to 4.9.1
Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.9.0 to 4.9.1.
- [Release notes](https://github.com/python-jsonschema/jsonschema/releases)
- [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.9.0...v4.9.1)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-08 03:01:25 +00:00
dependabot[bot]
7fd3f98ae8 Bump scikit-learn from 1.1.1 to 1.1.2
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 1.1.1 to 1.1.2.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.1.1...1.1.2)

---
updated-dependencies:
- dependency-name: scikit-learn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-08 03:01:20 +00:00
dependabot[bot]
11a2eb6cc5 Bump flake8 from 5.0.1 to 5.0.4
Bumps [flake8](https://github.com/pycqa/flake8) from 5.0.1 to 5.0.4.
- [Release notes](https://github.com/pycqa/flake8/releases)
- [Commits](https://github.com/pycqa/flake8/compare/5.0.1...5.0.4)

---
updated-dependencies:
- dependency-name: flake8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-08 03:01:16 +00:00
robcaulk
ea64f43e52 bring back auto DF resizing for okx 2022-08-08 01:13:13 +02:00
robcaulk
67c722c9c8 fix asyncio bug 2022-08-07 14:48:39 +02:00
Matthias
e48e82232d Force response API to js to fix faulty system configs
closes #7147
2022-08-07 10:42:56 +02:00
Matthias
0b2104fc7a Properly increment the api version 2022-08-07 10:13:36 +02:00
Matthias
5182f755f1 Add debug setup documentation
closes #7167
2022-08-07 10:08:48 +02:00
Matthias
6ded2d5b7c Improve forceexit API test 2022-08-07 09:47:11 +02:00
Matthias
d3780b931c Add test passing leverage to execute_entry 2022-08-07 09:47:11 +02:00
Matthias
d1998f7ed0 Fix forceexit calling 2022-08-07 09:47:11 +02:00
Matthias
eff8cd7ecb Add leverage to force_entry 2022-08-07 09:47:11 +02:00
Matthias
daf015d007 extract nested force_exit function to private instance function 2022-08-07 09:47:11 +02:00
Matthias
82aecc81f3 Accept parameters to forceexit 2022-08-07 09:47:11 +02:00
Achmad Fathoni
aaa5349003 Add script for patching conda libta-lib 2022-08-07 13:44:09 +07:00
Matthias
78e129034e Update docs to specify trading limit behaviour
closes #7183
2022-08-06 17:59:08 +02:00
robcaulk
eb8bde37c1 Add lightgbm classifier, add classifier check test, fix classifier bug. 2022-08-06 17:51:21 +02:00
Matthias
bfa859e618 Remove unnecessary method (simplify) 2022-08-06 17:46:58 +02:00
Matthias
5250189f77 Add Rollback function to Trade
simplifies Session work
2022-08-06 17:03:49 +02:00
Matthias
47a30047eb Fix typo 2022-08-06 15:03:10 +02:00
Matthias
b16f57cb0d Minor stylistic fixes 2022-08-06 14:55:46 +02:00
Robert Caulk
c172ce1011 improve flexibility of user defined prediction dataframe 2022-08-06 13:51:19 +02:00
Matthias
45d68222a1 Reduce verbosity of Fiat Converter 2022-08-06 13:18:40 +02:00
Robert Caulk
fdc82f8302 add doc section for classifier 2022-08-06 09:45:26 +02:00
Matthias
f8f1ade163 Reduce function complexity by extracting message sending 2022-08-06 09:21:11 +02:00
Matthias
2687633941 Test iterative sending of /status 2022-08-06 09:16:04 +02:00
Matthias
b12dd15f4f Send multiple messages in /status if required 2022-08-06 09:10:12 +02:00
Robert Caulk
07763d0d4f add classifier, improve model naming scheme 2022-08-06 08:33:55 +02:00
Robert Caulk
ce8fbbf743 ensure loading historical df matches frequi indices 2022-08-06 07:25:59 +02:00
robcaulk
60d782e5c5 remove unnecessary function 2022-08-05 21:31:32 +02:00
robcaulk
a42a060ab5 fix DB once and for all. Make DBSCAN more efficient and robust. 2022-08-05 21:29:03 +02:00
Robert Caulk
a3799c4d5d start frequi with historical data if available 2022-08-05 18:27:47 +02:00
robcaulk
29b7b014e5 fix bug in DB path initialization 2022-08-05 18:19:26 +02:00
robcaulk
db1d367941 fix bug associated to fit_live_predictions_candles 2022-08-05 13:46:20 +02:00
robcaulk
26de992d20 ensure user sets startup candles in backtesting mode 2022-08-05 12:23:14 +02:00
robcaulk
05ec5c5e54 generalize database url path for any db type 2022-08-05 12:19:29 +02:00
Matthias
9545402452 Improve defaults for config builder 2022-08-05 11:58:09 +02:00
Matthias
29e41cc817 Update docs to reflect correct result
closes #7181
2022-08-05 11:15:44 +02:00
Matthias
7675187c37 Use telegram message length to avoid constants 2022-08-05 07:31:19 +02:00
Matthias
cffc769549 Fix /profit endpoint calculations for partial sells
* don't recalculate for closed trades
* include realized_profit in the calculation

part of #7178
2022-08-05 07:26:41 +02:00
Matthias
c6e121ffb4 Update tests with correct usdt mock trades 2022-08-05 07:21:46 +02:00
OGSK
a8541d86fb Edit index of custom_stake_amount 2022-08-05 06:25:21 +02:00
OGSK
debc73b654 Edit Typo Custom-stake-amount
Edit Custom-stake-amount to `custom_stake_amount`
2022-08-05 06:25:08 +02:00
Matthias
c2a3e2776e Merge pull request #7180 from freqtrade/dependabot/docker/python-3.10.6-slim-bullseye
Bump python from 3.10.5-slim-bullseye to 3.10.6-slim-bullseye
2022-08-05 06:24:00 +02:00
dependabot[bot]
df4a5a7573 Bump python from 3.10.5-slim-bullseye to 3.10.6-slim-bullseye
Bumps python from 3.10.5-slim-bullseye to 3.10.6-slim-bullseye.

---
updated-dependencies:
- dependency-name: python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-05 03:02:12 +00:00
Robert Caulk
51a6b4289f improve DBSCAN performance for subsequent trainings 2022-08-04 17:41:58 +02:00
Robert Caulk
fe1b8515a8 fix bug in DBSCAN, update doc 2022-08-04 17:00:59 +02:00
Matthias
55360b4c08 Merge pull request #7174 from stash86/patch-3
Fix typo
2022-08-04 16:27:22 +02:00
Stefano Ariestasia
febd809119 Fix typo
adjust_trade_position should return stake_amount, not amount
2022-08-04 20:55:52 +09:00
robcaulk
29225e4baf add DBSCAN outlier detection feature, add supporting documentation 2022-08-04 12:15:16 +02:00
Matthias
778833f90e Modify comment in new test-strategies to point out their purpose 2022-08-04 07:17:26 +02:00
Matthias
95327750dc Final abs. profit should not be doubled in rpc messages 2022-08-04 07:07:54 +02:00
robcaulk
eae82d0222 fix bug with database url during backtesting. comment out example trade db analysis. 2022-08-03 16:17:57 +02:00
robcaulk
95d3009a95 give user ability to analyze live trade dataframe inside custom prediction model. Add documentation to explain new functionality 2022-08-02 20:14:02 +02:00
Matthias
9df10c6b5b Merge pull request #7155 from freqtrade/dependabot/pip/develop/scipy-1.9.0
Bump scipy from 1.8.1 to 1.9.0
2022-08-01 19:54:20 +02:00
Matthias
ae0d6f63fa Version bump ccxt to 1.91.55
closes #7151
2022-08-01 19:43:13 +02:00
Matthias
87e5460aed Merge pull request #7157 from freqtrade/dependabot/pip/develop/types-requests-2.28.6
Bump types-requests from 2.28.3 to 2.28.6
2022-08-01 09:46:34 +02:00
Matthias
895ebbfd18 Exclude aarch64 from catboost requirements 2022-08-01 07:34:27 +00:00
Matthias
694bea133b Merge pull request #7156 from freqtrade/dependabot/pip/develop/flake8-5.0.1
Bump flake8 from 4.0.1 to 5.0.1
2022-08-01 08:39:06 +02:00
Matthias
3b90bdf980 Merge pull request #7160 from freqtrade/dependabot/pip/develop/jsonschema-4.9.0
Bump jsonschema from 4.7.2 to 4.9.0
2022-08-01 07:02:30 +02:00
Matthias
d75e0a9820 Fix Flake8 errors after flake update 2022-08-01 06:43:59 +02:00
Matthias
707a4e7c9e types-requests bump pre-commit 2022-08-01 06:41:08 +02:00
dependabot[bot]
f3154a4313 Bump jsonschema from 4.7.2 to 4.9.0
Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.7.2 to 4.9.0.
- [Release notes](https://github.com/python-jsonschema/jsonschema/releases)
- [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.7.2...v4.9.0)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 04:35:30 +00:00
Matthias
e9b7e1e600 Merge pull request #7161 from freqtrade/dependabot/pip/develop/urllib3-1.26.11
Bump urllib3 from 1.26.10 to 1.26.11
2022-08-01 06:34:37 +02:00
Matthias
70dcff3b23 Merge pull request #7154 from freqtrade/dependabot/pip/develop/ccxt-1.91.52
Bump ccxt from 1.91.29 to 1.91.52
2022-08-01 06:34:16 +02:00
Matthias
dce16909b4 Merge pull request #7162 from freqtrade/dependabot/github_actions/develop/pypa/gh-action-pypi-publish-1.5.1
Bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1
2022-08-01 06:33:52 +02:00
Matthias
f82724bbc1 Merge pull request #7158 from freqtrade/dependabot/pip/develop/orjson-3.7.11
Bump orjson from 3.7.8 to 3.7.11
2022-08-01 06:33:34 +02:00
robcaulk
3013282dbf remove non-catboost stuff from schema 2022-08-01 05:39:38 +02:00
dependabot[bot]
97064a9ce3 Bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1
Bumps [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) from 1.5.0 to 1.5.1.
- [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases)
- [Commits](https://github.com/pypa/gh-action-pypi-publish/compare/v1.5.0...v1.5.1)

---
updated-dependencies:
- dependency-name: pypa/gh-action-pypi-publish
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 03:13:38 +00:00
dependabot[bot]
79b650258e Bump urllib3 from 1.26.10 to 1.26.11
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.10 to 1.26.11.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/1.26.11/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.10...1.26.11)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 03:02:02 +00:00
dependabot[bot]
ed230dd750 Bump orjson from 3.7.8 to 3.7.11
Bumps [orjson](https://github.com/ijl/orjson) from 3.7.8 to 3.7.11.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.7.8...3.7.11)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 03:01:52 +00:00
dependabot[bot]
372be54252 Bump types-requests from 2.28.3 to 2.28.6
Bumps [types-requests](https://github.com/python/typeshed) from 2.28.3 to 2.28.6.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 03:01:46 +00:00
dependabot[bot]
b4ded59c63 Bump flake8 from 4.0.1 to 5.0.1
Bumps [flake8](https://github.com/pycqa/flake8) from 4.0.1 to 5.0.1.
- [Release notes](https://github.com/pycqa/flake8/releases)
- [Commits](https://github.com/pycqa/flake8/compare/4.0.1...5.0.1)

---
updated-dependencies:
- dependency-name: flake8
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 03:01:43 +00:00
dependabot[bot]
a75fa26caf Bump scipy from 1.8.1 to 1.9.0
Bumps [scipy](https://github.com/scipy/scipy) from 1.8.1 to 1.9.0.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.8.1...v1.9.0)

---
updated-dependencies:
- dependency-name: scipy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 03:01:38 +00:00
dependabot[bot]
7a696f58f9 Bump ccxt from 1.91.29 to 1.91.52
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.91.29 to 1.91.52.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.91.29...1.91.52)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 03:01:30 +00:00
robcaulk
946d4c7cfc fix trailing whitespace for flake8 2022-07-31 18:39:46 +02:00
robcaulk
4e68626bcb ensure convolutional window is prepended for frequi consistency 2022-07-31 17:51:19 +02:00
robcaulk
d830105605 *BREAKING CHANGE* remove unnecessary arguments from populate_any_indicators(), accommodate tests 2022-07-31 17:05:29 +02:00
robcaulk
153336d424 move corr_pairlist expansion to after expand_pairlist() 2022-07-31 15:45:28 +02:00
Matthias
659870312d Use JSON Schema validation for freaAI schema validation 2022-07-31 15:23:27 +02:00
Matthias
cbb05354a8 Add install variant for freqai 2022-07-31 15:10:01 +02:00
Kavinkumar
a4bada3ebe Partial exit using average price (#6545)
Introduce Partial exits
2022-07-31 14:19:04 +02:00
robcaulk
61693f6c8b fix tests after changing config_example file 2022-07-31 13:20:11 +02:00
robcaulk
e6ebc0443e make single generalized config for freqai. update docs to reflect that. 2022-07-31 13:08:43 +02:00
Matthias
369c6da5d8 Merge pull request #7146 from freqtrade/fix/liquidation
Update liquidation price handling
2022-07-31 08:09:54 +02:00
Matthias
15424169ad Merge pull request #7108 from rzrymiak/develop
Added description heading to README.md
2022-07-31 07:10:37 +02:00
rzrymiak
09e5fb2f55 Removed description header 2022-07-30 22:37:46 +00:00
Robert Caulk
c2eaa3d2cd add image of algorithmic overview to doc 2022-07-30 18:51:00 +02:00
Matthias
bad15f077c Simplify fetch_positions by using already existing method 2022-07-30 17:49:06 +02:00
Matthias
dc82675f00 Add Test for liquidation in stop-loss-reached 2022-07-30 17:28:19 +02:00
Matthias
fc31c890e3 Merge pull request #7135 from freqtrade/rpc/sendmsg
Strategy allow rpc messages
2022-07-30 16:15:00 +02:00
Matthias
d046f0cc5e Improve method wording for liquidation price setter 2022-07-30 16:11:31 +02:00
Matthias
dba7a7257d Use stop_or_liquidation instead of stop_loss 2022-07-30 16:10:16 +02:00
Matthias
845cecd38f Add stoploss or liquidation property 2022-07-30 16:10:16 +02:00
Matthias
4da96bc511 Update docs 2022-07-30 16:10:16 +02:00
Matthias
15752ce3c2 Rename set_stoploss method to be fully private 2022-07-30 16:10:16 +02:00
Matthias
ff4cc5d316 Revamp liquidation test to actually make sense 2022-07-30 16:10:16 +02:00
Matthias
9852733ef7 Improve tests to align with modified logic 2022-07-30 16:10:16 +02:00
Matthias
f57ecb1861 Simplify adjust_stop test 2022-07-30 16:10:16 +02:00
Matthias
8711b7d99f Liquidations cannot be rejected. 2022-07-30 16:10:16 +02:00
Matthias
995be90f91 Liquidation should be a separate exit type 2022-07-30 16:10:16 +02:00
robcaulk
dd8288c090 expose full parameter set for SVM outlier detection. Set default shuffle to false to improve reproducibility 2022-07-30 13:40:05 +02:00
Matthias
d70650b074 Add note for plot-dataframe and current-whitelist
closes #7142
2022-07-30 08:20:22 +02:00
robcaulk
f22b140782 fix backtesting bug, undo move of label stat calc, fix example strat exit logic 2022-07-29 17:27:35 +02:00
robcaulk
08d3ac7ef8 add keras and conv_width to schema and documentation 2022-07-29 08:49:35 +02:00
robcaulk
59624181bd isort BaseRegressionModel imports 2022-07-29 08:23:44 +02:00
robcaulk
c84d54b35e Fix typing issue, avoid using .get() when unnecessary, convert to fstrings 2022-07-29 08:12:50 +02:00
Matthias
efbd83c56d Small type and typo fixes in freqai_interface 2022-07-28 07:24:30 +02:00
Matthias
a2a0d35a24 Update missing typehints 2022-07-28 07:07:40 +02:00
Matthias
3273881282 Merge branch 'develop' into feat/freqai 2022-07-28 06:36:38 +02:00
Matthias
cc3ead9d7b Set required_profit for stoploss guard, allowing to ignore small stoplosses.
closes #7076
2022-07-27 19:52:39 +02:00
Matthias
f31106dc61 Minor comment fixes 2022-07-27 07:27:24 +02:00
Matthias
31ddec8348 Add missing test to confirm backtesting won't send messages 2022-07-27 06:51:56 +02:00
Matthias
2595e40e47 Remove unused test-strategy 2022-07-27 06:47:16 +02:00
Matthias
0adfa4d9ef Add tests for dataprovider send-message methods 2022-07-27 06:34:15 +02:00
Matthias
7bac054668 Add documentation and clarity for send_msg 2022-07-26 20:24:52 +02:00
Matthias
229e8864bb Add send_msg capability to dataprovider 2022-07-26 20:15:49 +02:00
Matthias
bc760b7eb2 Simplify small segment in datadrawer 2022-07-26 19:41:49 +02:00
Matthias
a0b9388757 Bump ccxt to 1.91.29
closes #7132
2022-07-26 17:57:25 +02:00
robcaulk
324e54c015 fix possible memory leak associated with Catboost Pool object 2022-07-26 17:29:29 +02:00
robcaulk
3f149c4067 fix return type in BaseTensorFlowModel 2022-07-26 16:01:54 +02:00
robcaulk
ad25a4cb56 reduce number of pair_dict lookups, remove coin_first 2022-07-26 15:58:40 +02:00
robcaulk
fb4e8430cd isort auto import sorting 2022-07-26 10:51:39 +02:00
robcaulk
e213d0ad55 isolate data_drawer functions from data_kitchen, accommodate tests, add new test 2022-07-26 10:24:14 +02:00
robcaulk
56b17e6f3c allow user to pass test_size = 0 and avoid using eval sets in prediction models 2022-07-25 19:40:13 +02:00
Matthias
4c68bec171 Fix problem in is_cancel_order_result_suitable
fixes #7119
2022-07-25 17:47:52 +02:00
Matthias
ea112fb583 Add test for empty order (cancelled order) 2022-07-25 17:47:28 +02:00
robcaulk
55cf378ec2 remove leftover breakpoint from test file 2022-07-25 17:13:24 +02:00
Robert Caulk
897f18a8c8 ensure proper integer type casting for timestamps. Add check test for backtesting subdaily time periods 2022-07-25 15:07:09 +02:00
Robert Caulk
7b105532d1 fix mypy error and add test for principal component analysis 2022-07-25 11:46:59 +02:00
Robert Caulk
4abc26b582 add test for follow_mode 2022-07-25 10:48:04 +02:00
Robert Caulk
c9d46a5237 finish bringing follow_mode up to date 2022-07-25 09:24:40 +02:00
Matthias
0806f253b1 Merge pull request #7125 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.19
Bump types-python-dateutil from 2.8.18 to 2.8.19
2022-07-25 08:43:58 +02:00
Matthias
4b8132f3c6 Merge pull request #7128 from freqtrade/dependabot/pip/develop/mypy-0.971
Bump mypy from 0.961 to 0.971
2022-07-25 08:42:16 +02:00
Matthias
47b52d4bab Bump types-dateutil in pre-commit 2022-07-25 07:58:16 +02:00
dependabot[bot]
40969f20bf Bump types-python-dateutil from 2.8.18 to 2.8.19
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.18 to 2.8.19.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-25 05:53:15 +00:00
dependabot[bot]
93340f546b Bump mypy from 0.961 to 0.971
Bumps [mypy](https://github.com/python/mypy) from 0.961 to 0.971.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v0.961...v0.971)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-25 05:53:10 +00:00
Matthias
b7f5beea40 Merge pull request #7124 from freqtrade/dependabot/pip/develop/mkdocs-1.3.1
Bump mkdocs from 1.3.0 to 1.3.1
2022-07-25 07:52:38 +02:00
Matthias
c0080f2241 Merge pull request #7126 from freqtrade/dependabot/pip/develop/types-requests-2.28.3
Bump types-requests from 2.28.1 to 2.28.3
2022-07-25 07:52:16 +02:00
Matthias
43343d0e55 Revert markdown to 3.3.7 2022-07-25 07:21:12 +02:00
Matthias
3ce46ff09e Bump types-requests in pre-commit 2022-07-25 07:19:21 +02:00
Matthias
fba3c3c649 Merge pull request #7127 from freqtrade/dependabot/pip/develop/ccxt-1.91.22
Bump ccxt from 1.90.89 to 1.91.22
2022-07-25 07:17:14 +02:00
Matthias
bc87171243 Merge pull request #7123 from freqtrade/dependabot/pip/develop/orjson-3.7.8
Bump orjson from 3.7.7 to 3.7.8
2022-07-25 07:17:00 +02:00
dependabot[bot]
f93a3a5fca Bump ccxt from 1.90.89 to 1.91.22
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.90.89 to 1.91.22.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.90.89...1.91.22)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-25 03:01:52 +00:00
dependabot[bot]
98d0ad76bf Bump types-requests from 2.28.1 to 2.28.3
Bumps [types-requests](https://github.com/python/typeshed) from 2.28.1 to 2.28.3.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-25 03:01:44 +00:00
dependabot[bot]
d5933fb2af Bump mkdocs from 1.3.0 to 1.3.1
Bumps [mkdocs](https://github.com/mkdocs/mkdocs) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/mkdocs/mkdocs/releases)
- [Commits](https://github.com/mkdocs/mkdocs/compare/1.3.0...1.3.1)

---
updated-dependencies:
- dependency-name: mkdocs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-25 03:01:37 +00:00
dependabot[bot]
1b49e45222 Bump orjson from 3.7.7 to 3.7.8
Bumps [orjson](https://github.com/ijl/orjson) from 3.7.7 to 3.7.8.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.7.7...3.7.8)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-25 03:01:32 +00:00
Robert Caulk
ab587747fb first fix for follower path bug 2022-07-24 23:32:24 +02:00
Matthias
520ee3f7a1 Convert freqAI into packages 2022-07-24 17:07:45 +02:00
Matthias
1885deb632 More docstring changes 2022-07-24 16:54:39 +02:00
Matthias
70b7a254af Update some areas to use default docstring formatting 2022-07-24 16:51:48 +02:00
Matthias
61c41fd919 Merge branch 'develop' into feat/freqai 2022-07-24 16:18:58 +02:00
Matthias
83cac7bee2 Improve some more tests by adding proper orders 2022-07-24 10:51:13 +02:00
Matthias
6e691a016d Use leverage-tiers loading in tests 2022-07-24 10:24:59 +02:00
Robert Caulk
88e10f7306 add exception for not passing timerange. Remove hard coded arguments for CatboostPredictionModels. Update docs 2022-07-24 09:01:23 +02:00
Robert Caulk
fff39eff9e fix multitarget bug 2022-07-24 08:42:50 +02:00
Matthias
95f5218ceb Reenable Catboost test (#7118)
* Reenable Catboost test

* Simplify freqAI tests, ensure they use a tempdir for modelstorage
2022-07-24 07:32:13 +02:00
Matthias
2eb1d18c2a Don't load leverage tiers when not necessary 2022-07-23 19:56:38 +02:00
robcaulk
f3d46613ee move prediction denormalization into datakitchen. remove duplicate associated code. avoid normalization/denormalization for string dtypes. 2022-07-23 17:14:33 +02:00
Matthias
81c1aa3c13 Update imports in freqAI sample strategies 2022-07-23 17:08:05 +02:00
Matthias
8a3cffcd1b Remove remaining CustomModel references 2022-07-23 17:08:05 +02:00
Matthias
62f7606d2c Update tests to new variant 2022-07-23 17:08:05 +02:00
Matthias
8fa6e8b4ba Remove freqAI model bridge in favor of self.freqai 2022-07-23 17:08:05 +02:00
robcaulk
c91e23dc50 let user avoid normalizing labels 2022-07-23 16:14:13 +02:00
Matthias
7682c9ace7 Update trade_close test to include orders 2022-07-23 15:27:52 +02:00
Matthias
24a786bedd Update rpc test to contain sell order 2022-07-23 15:23:24 +02:00
Matthias
80845807e1 Improve some test resiliance 2022-07-23 15:14:38 +02:00
Matthias
a02d02ac12 Enhance protections tests to have orders in mock trade 2022-07-23 14:43:52 +02:00
robcaulk
50d630a155 remove unnecessary comments from data_drawer.py 2022-07-23 13:35:44 +02:00
robcaulk
a1cff377ec add record of contribution to data_kitchen.py 2022-07-23 13:32:04 +02:00
robcaulk
c2d6a0e891 add record of contribution to doc and source 2022-07-23 13:04:06 +02:00
robcaulk
3acc869570 improve the dataframe key description, update outdated parts of doc 2022-07-23 12:42:24 +02:00
Matthias
5c4f60f376 Improve configuration table formatting and ordering 2022-07-23 09:11:22 +02:00
Matthias
e97468964a Add support for --timeframe-detail in hyperopt
fix #7070
2022-07-23 08:52:03 +02:00
Matthias
36dc9be7aa Update some docs wording 2022-07-22 20:27:25 +02:00
Matthias
32c3f62934 Fix documentation typo
closes #7115
2022-07-22 19:45:50 +02:00
robcaulk
5559e605b8 small PR conversation resolutions 2022-07-22 17:46:14 +02:00
robcaulk
40f00196eb use cloudpickle in place of pickle. define Paths once in data_drawer. 2022-07-22 17:37:51 +02:00
robcaulk
accc629e32 set separate table sections in doc 2022-07-22 12:44:43 +02:00
robcaulk
98c8a447b2 add LightGBMPredictionMultiModel 2022-07-22 12:40:51 +02:00
robcaulk
afcb0bec00 clean up obsolete comments, move remove_features_from_df to datakitchen 2022-07-22 12:29:20 +02:00
Matthias
0b21750e76 Reorder advanced topics 2022-07-22 07:22:06 +02:00
robcaulk
ac0f484918 add freqai logo to top of doc 2022-07-22 00:02:07 +02:00
robcaulk
3205788bce extend doc to include descriptions of the return values from FreqAI to the strategy 2022-07-21 22:11:46 +02:00
robcaulk
8033e0bf23 add counter to backtesting log so users know how many more pairs and how many more models will need to be trained 2022-07-21 13:22:12 +02:00
robcaulk
183dec866a remove ability to backtest open ended timeranges (safer) 2022-07-21 13:02:52 +02:00
robcaulk
e694ea1cfd make sure backtesting gets the populated indicators with slimmed down user strat 2022-07-21 12:48:09 +02:00
robcaulk
ca4dd58642 remove superceded function from datakitchen 2022-07-21 12:40:54 +02:00
robcaulk
8f86b0deaa *breaking change* simplify user strat by consolidating feature loops into backend 2022-07-21 12:24:22 +02:00
robcaulk
e7337728bf add separator in folder name just incase an asset ends in an integer 2022-07-21 11:25:28 +02:00
robcaulk
c9a6dc88a1 add parameter list/discriptions to doc 2022-07-21 11:11:36 +02:00
Matthias
6c5e48dd4f dev-dependencies should include freqAI 2022-07-21 07:26:44 +02:00
robcaulk
a99c126266 help windows builds pass freqai tests. Add freqai to README.md 2022-07-20 16:14:19 +02:00
robcaulk
4e5d60fdc9 match scikit-learn version to hyperopt required version 2022-07-20 15:54:22 +02:00
robcaulk
921a7ef216 add requirements-freqai.txt to builds 2022-07-20 15:51:25 +02:00
robcaulk
286bd0c40b follow string for adding a strat to tests/strategy/strats 2022-07-20 15:00:02 +02:00
robcaulk
c43935e82a create dedicated minimal freqai test strat 2022-07-20 14:39:28 +02:00
robcaulk
88d769d801 comment out problematic catboost test 2022-07-20 14:18:06 +02:00
robcaulk
d43c146676 add more tests for datakitchen functionalities, add regression tests for freqai_interface train/backtest 2022-07-20 12:56:46 +02:00
Matthias
78f77f6d35 Merge pull request #7101 from freqtrade/dependabot/pip/develop/markdown-3.4.1
Bump markdown from 3.3.7 to 3.4.1
2022-07-20 06:48:28 +02:00
rzrymiak
ac2e8d760e Added description heading to README.md 2022-07-19 14:24:44 -07:00
Matthias
b609dbcd86 Update mdx_truly_sane_lists to be compatible with markdown again 2022-07-19 19:51:03 +02:00
lolong
9c051958a6 Feat/freqai (#7105)
Vectorize weight setting, log training dates

Co-authored-by: robcaulk <rob.caulk@gmail.com>
2022-07-19 17:49:18 +02:00
robcaulk
714d9534b6 start adding tests 2022-07-19 16:16:44 +02:00
Matthias
75e190ff1d Update sell-test without filled buy order 2022-07-19 07:20:36 +02:00
lolong
ed0f8b1189 Improve FreqAI documentation (#7072)
Improve doc + some other small fixes

Co-authored-by: robcaulk <rob.caulk@gmail.com>
2022-07-18 11:57:52 +02:00
Matthias
99d5fbc9c0 Merge pull request #7102 from freqtrade/dependabot/pip/develop/types-requests-2.28.1
Bump types-requests from 2.28.0 to 2.28.1
2022-07-18 08:38:35 +02:00
Matthias
0daa9d3e57 Bump types-requests in pre-commit 2022-07-18 07:56:41 +02:00
Matthias
7365d23db8 Merge pull request #7099 from freqtrade/dependabot/pip/develop/fastapi-0.79.0
Bump fastapi from 0.78.0 to 0.79.0
2022-07-18 07:55:29 +02:00
Matthias
df538f9cd6 Merge pull request #7097 from freqtrade/dependabot/pip/develop/jsonschema-4.7.2
Bump jsonschema from 4.6.2 to 4.7.2
2022-07-18 07:54:55 +02:00
Matthias
9d261c88e6 Merge pull request #7098 from freqtrade/dependabot/pip/develop/pytest-asyncio-0.19.0
Bump pytest-asyncio from 0.18.3 to 0.19.0
2022-07-18 07:54:31 +02:00
Matthias
8a1c95247d Merge pull request #7100 from freqtrade/dependabot/pip/develop/ccxt-1.90.89
Bump ccxt from 1.90.88 to 1.90.89
2022-07-18 07:53:52 +02:00
dependabot[bot]
ea523136fc Bump types-requests from 2.28.0 to 2.28.1
Bumps [types-requests](https://github.com/python/typeshed) from 2.28.0 to 2.28.1.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-18 03:01:49 +00:00
dependabot[bot]
d2ef248781 Bump markdown from 3.3.7 to 3.4.1
Bumps [markdown](https://github.com/Python-Markdown/markdown) from 3.3.7 to 3.4.1.
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.3.7...3.4.1)

---
updated-dependencies:
- dependency-name: markdown
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-18 03:01:43 +00:00
dependabot[bot]
f07ad7aa87 Bump ccxt from 1.90.88 to 1.90.89
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.90.88 to 1.90.89.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.90.88...1.90.89)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-18 03:01:40 +00:00
dependabot[bot]
cb63d5e3df Bump fastapi from 0.78.0 to 0.79.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.78.0 to 0.79.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.78.0...0.79.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-18 03:01:31 +00:00
dependabot[bot]
5f820ab0a6 Bump pytest-asyncio from 0.18.3 to 0.19.0
Bumps [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) from 0.18.3 to 0.19.0.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Changelog](https://github.com/pytest-dev/pytest-asyncio/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.18.3...v0.19.0)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-18 03:01:26 +00:00
dependabot[bot]
2c6fb617a6 Bump jsonschema from 4.6.2 to 4.7.2
Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.6.2 to 4.7.2.
- [Release notes](https://github.com/python-jsonschema/jsonschema/releases)
- [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.6.2...v4.7.2)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-18 03:01:23 +00:00
Robert Caulk
921f3899f0 revert pickle reading for historic predictions 2022-07-17 16:06:36 +02:00
Robert Caulk
41eeb99177 load pickle file for writing 2022-07-17 10:05:21 +02:00
Matthias
46be1b8778 Version bump ccxt to 1.90.88 2022-07-17 07:21:42 +02:00
Matthias
05a5ae4fcf Update plotting to use entry/exit terminology 2022-07-16 22:28:46 +02:00
Robert Caulk
9d184586f1 fix bug in historic prediction saving 2022-07-16 21:16:59 +02:00
Matthias
9347677c60 Uppdate pricecontours test to not recreate backtesting every loop
in hopes to fix random failure
2022-07-16 19:33:26 +02:00
Matthias
3bb4f2c7c2 Merge pull request #6780 from samgermain/dry-taker-or-maker
Dry run taker or maker fees
2022-07-16 18:15:02 +02:00
Matthias
f6bfd89cef Merge branch 'develop' into feat/freqai 2022-07-16 18:14:34 +02:00
Matthias
423af371c0 Simplify calculation by calling "get_fee" only once 2022-07-16 17:59:05 +02:00
Matthias
4172f92bfc simplify dry-run taker/maker selection 2022-07-16 17:25:13 +02:00
Matthias
8b2535a8da Update Typing for fees 2022-07-16 15:42:17 +02:00
Matthias
8d2e22f009 Merge branch 'develop' into pr/samgermain/6780 2022-07-16 15:35:00 +02:00
Matthias
004bf31142 Merge pull request #7093 from freqtrade/fix/gate_futures_stoposs
gateio futures - several fixes
2022-07-16 15:18:32 +02:00
Matthias
3eb2131d0b Merge pull request #7092 from freqtrade/fix/hyperopt_inherit
hyperopt inherit fix
2022-07-16 15:17:14 +02:00
Matthias
bf07d8fe87 Update test to properly patch/mock exchange 2022-07-16 13:57:12 +02:00
Matthias
357000c478 Extract exchange validation to separate method 2022-07-16 13:45:26 +02:00
Matthias
d03dfb3934 Oder cost is real cost (including leverage) 2022-07-16 13:14:21 +02:00
Matthias
ed64e4299b Stoploss orders should also be eligible to update closed fees 2022-07-16 13:14:21 +02:00
Matthias
415780a4fe gateio order cost is not in contracts
closes #7081
2022-07-16 13:14:21 +02:00
Matthias
7b8a5585dd Fetch 2ndary stoploss order once the order triggered. 2022-07-16 13:14:21 +02:00
Matthias
7c4dd4c48c Support fee cost as string
closes #7056
2022-07-16 13:14:21 +02:00
Matthias
40e2da10f3 Add hypeorpt cloudpickle magic
closes #7078
2022-07-16 11:49:33 +02:00
Matthias
e53e530874 Add test showing broken inheritance hyperopt 2022-07-16 11:49:33 +02:00
Matthias
2e642593e5 Update formatting of hyperopt_conf fixture 2022-07-16 11:47:32 +02:00
Matthias
29efe75a6f Update hyperoptable strategy to use V3 interface 2022-07-16 11:47:32 +02:00
Matthias
1c7f60103d Don't use master for publish CI action 2022-07-15 20:26:24 +02:00
Robert Caulk
4ef2ed2f1b Merge pull request #7085 from wagnercosta/feat/freqai
freqai: fix issue when bot restarts with same identifier, does not load predi…
2022-07-15 20:00:53 +02:00
Matthias
fada432f49 Pin markdown docs dependency 2022-07-15 19:48:12 +02:00
Matthias
b657a4df23 Improve hyperopt docs
part of #7088
2022-07-15 19:02:23 +02:00
Wagner Costa Santos
ca2029a46b fix issue when bot restarts with same identifier, does not load prediction history 2022-07-14 18:55:24 -03:00
Matthias
cdc58058d7 Add candletype to notebook example
closes #7084, closes #7073
2022-07-14 19:40:26 +02:00
robcaulk
4141d165ff add BaseTensorFlowModel class 2022-07-12 19:10:09 +02:00
robcaulk
ef409dd345 Add ground work for TensorFlow models, add protections from common mistakes 2022-07-12 18:09:17 +02:00
Robert Caulk
fea63fba12 Fix saving/loading historic predictions 2022-07-12 10:12:50 +02:00
Robert Caulk
8ce6b18318 start collecting indefinite history of predictions. Allow user to generate statistics on these predictions. Direct FreqAI to save these to disk and reload them if available. 2022-07-11 22:01:48 +02:00
Matthias
0669d93f56 Merge pull request #7068 from freqtrade/ccxt_ordertype_validations
Ccxt ordertype validations
2022-07-11 19:41:05 +02:00
Matthias
5c164efdb6 Also check for createLimitOrder as optionals 2022-07-11 16:09:12 +02:00
Matthias
b9ba94d644 Bump ccxt to 1.90.47 2022-07-11 16:07:58 +02:00
Matthias
bf992fd9df Add test for newly added functionality 2022-07-11 14:09:44 +02:00
Matthias
f9d3775d4c Move "candle" logic for message to telegram
this avoids calling this method unless necessary
2022-07-11 14:09:39 +02:00
Matthias
9a3a2f9013 Simplify adding candle to message 2022-07-11 13:55:32 +02:00
Matthias
8e8f026ea7 Telegram candle message should be configurable 2022-07-11 12:14:19 +02:00
Matthias
ed03ef47ef Merge branch 'develop' into pr/SurferAdmin/6916 2022-07-11 11:49:22 +02:00
Matthias
ec3179156c Revert unwanted changes. 2022-07-11 11:48:24 +02:00
Matthias
3fc92b1b21 Create BaseRegression model - designed to reduce code duplication across currently available models. 2022-07-11 11:33:59 +02:00
Matthias
64f89af69e Add Explicit test for "has" checks 2022-07-11 10:43:21 +02:00
Matthias
6ac1aa15f5 Reenable ccxt order checks 2022-07-11 10:36:19 +02:00
Matthias
f8e35d8760 Add TODO to disabled test 2022-07-11 10:30:05 +02:00
Matthias
523d8a84a8 skip "supports market order" for now until CCXT fixes their assignemnt bugs. 2022-07-11 10:22:51 +02:00
Matthias
7d6b3d0e02 Update hyperopt param docs to be clear that non-conclusive parameters will be ignored 2022-07-11 08:17:16 +02:00
Matthias
0600c4d70e Merge pull request #7064 from freqtrade/dependabot/pip/develop/urllib3-1.26.10
Bump urllib3 from 1.26.9 to 1.26.10
2022-07-11 08:16:58 +02:00
Matthias
2bba071b6a Merge pull request #7063 from freqtrade/dependabot/pip/develop/numpy-1.23.1
Bump numpy from 1.23.0 to 1.23.1
2022-07-11 08:16:39 +02:00
Matthias
a4901ae9a7 Merge pull request #7059 from freqtrade/dependabot/pip/develop/pre-commit-2.20.0
Bump pre-commit from 2.19.0 to 2.20.0
2022-07-11 08:16:01 +02:00
Matthias
04ec44edc3 Merge pull request #7065 from freqtrade/dependabot/pip/develop/python-rapidjson-1.8
Bump python-rapidjson from 1.6 to 1.8
2022-07-11 08:15:44 +02:00
Matthias
50d368f3ec Merge pull request #7060 from freqtrade/dependabot/pip/develop/cryptography-37.0.4
Bump cryptography from 37.0.2 to 37.0.4
2022-07-11 08:15:22 +02:00
dependabot[bot]
0bb8c8feba Bump python-rapidjson from 1.6 to 1.8
Bumps [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) from 1.6 to 1.8.
- [Release notes](https://github.com/python-rapidjson/python-rapidjson/releases)
- [Changelog](https://github.com/python-rapidjson/python-rapidjson/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-rapidjson/python-rapidjson/compare/v1.6...v1.8)

---
updated-dependencies:
- dependency-name: python-rapidjson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 05:23:01 +00:00
Matthias
9b3032390c Merge pull request #7066 from freqtrade/dependabot/pip/develop/orjson-3.7.7
Bump orjson from 3.7.6 to 3.7.7
2022-07-11 07:22:01 +02:00
dependabot[bot]
c06b524b4e Bump urllib3 from 1.26.9 to 1.26.10
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.9 to 1.26.10.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/1.26.10/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.9...1.26.10)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 05:16:14 +00:00
dependabot[bot]
7c6c2c4d6e Bump cryptography from 37.0.2 to 37.0.4
Bumps [cryptography](https://github.com/pyca/cryptography) from 37.0.2 to 37.0.4.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/37.0.2...37.0.4)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 05:15:38 +00:00
dependabot[bot]
7b998378ce Bump numpy from 1.23.0 to 1.23.1
Bumps [numpy](https://github.com/numpy/numpy) from 1.23.0 to 1.23.1.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v1.23.0...v1.23.1)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 05:15:37 +00:00
Matthias
2bc78fd045 Merge pull request #7062 from freqtrade/dependabot/pip/develop/jsonschema-4.6.2
Bump jsonschema from 4.6.1 to 4.6.2
2022-07-11 07:15:07 +02:00
dependabot[bot]
fa158ba8de Bump pre-commit from 2.19.0 to 2.20.0
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 2.19.0 to 2.20.0.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v2.19.0...v2.20.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 05:14:41 +00:00
Matthias
9d453ffa08 Merge pull request #7061 from freqtrade/dependabot/pip/develop/ccxt-1.90.41
Bump ccxt from 1.90.40 to 1.90.41
2022-07-11 07:14:39 +02:00
Matthias
6aac4f9990 Merge pull request #7058 from freqtrade/dependabot/pip/develop/mkdocs-material-8.3.9
Bump mkdocs-material from 8.3.8 to 8.3.9
2022-07-11 07:13:52 +02:00
Matthias
d5e45d9c43 Merge pull request #7057 from freqtrade/dependabot/pip/develop/pytest-mock-3.8.2
Bump pytest-mock from 3.8.1 to 3.8.2
2022-07-11 07:13:29 +02:00
dependabot[bot]
719fa6f8e1 Bump orjson from 3.7.6 to 3.7.7
Bumps [orjson](https://github.com/ijl/orjson) from 3.7.6 to 3.7.7.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.7.6...3.7.7)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 03:02:39 +00:00
dependabot[bot]
c98786a4f6 Bump jsonschema from 4.6.1 to 4.6.2
Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/python-jsonschema/jsonschema/releases)
- [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.6.1...v4.6.2)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 03:02:17 +00:00
dependabot[bot]
b1d34dba94 Bump ccxt from 1.90.40 to 1.90.41
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.90.40 to 1.90.41.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.90.40...1.90.41)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 03:02:12 +00:00
dependabot[bot]
5070a04a82 Bump mkdocs-material from 8.3.8 to 8.3.9
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.3.8 to 8.3.9.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.3.8...8.3.9)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 03:01:50 +00:00
dependabot[bot]
9086176f73 Bump pytest-mock from 3.8.1 to 3.8.2
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.8.1 to 3.8.2.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.8.1...v3.8.2)

---
updated-dependencies:
- dependency-name: pytest-mock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 03:01:47 +00:00
Matthias
494e0529d2 Update conftest for leverage tiers 2022-07-10 19:31:14 +02:00
Robert Caulk
607455919e Change config parameter names to improve clarity and consistency throughout the code (!!breaking change, please check discord support channel for migration instructions or review templates/FreqaiExampleStrategy.py config_examples/config_freqai_futures.example.json file changes!!) 2022-07-10 12:35:44 +02:00
Matthias
819cc9c0e4 Fully align LightGBM with Catboost 2022-07-10 11:06:18 +02:00
Matthias
58b18770e3 Fix LightGBM missing argument in predict method 2022-07-10 11:05:35 +02:00
Matthias
9313a2d294 Update leverage tiers to latest version 2022-07-10 10:11:39 +02:00
Matthias
59b0fd1166 Merge pull request #7051 from freqtrade/gateio_fee_fix
Gateio fee fix
2022-07-10 09:45:24 +02:00
Matthias
ea5f41aa6d Version bump ccxt 2022-07-10 09:06:19 +02:00
Matthias
2e1061af64 Fix faulty LightGBM model 2022-07-09 08:21:42 +00:00
Matthias
aab59a8caf Bump ccxt to required version 2022-07-09 09:00:12 +02:00
Matthias
c98e7ea055 Revert allowing empty currency for futures 2022-07-09 08:57:15 +02:00
Matthias
b7167ec880 Fix wrong fee calclulation for gateio futures 2022-07-09 08:51:59 +02:00
Matthias
5b733a723d use "fees" for trades responses 2022-07-09 08:51:28 +02:00
Matthias
81f7d77d74 Allow fee currency to be empty for futures 2022-07-09 08:51:28 +02:00
Matthias
2499276fca Refactor calculate_fee_rate to take separate parameters instead of an "Order"
we passed in a trade object anyway
2022-07-09 08:51:28 +02:00
Matthias
e52f82b565 Add leverage to custom_stake_amount callback
closes #7047
2022-07-08 19:44:20 +02:00
Matthias
b39508f64d remove loadMarkets from "required" section,
it's now implied that all ccxt exchanges provide this method.
2022-07-07 19:44:54 +02:00
robcaulk
d9acdc9767 remove excess, increase no model warning clarity 2022-07-06 18:20:21 +02:00
Matthias
2dc46ca0b8 Add cost to partial test buy order 2022-07-06 07:12:13 +02:00
Matthias
dbc3376fe9 Add alias for gate to gateio 2022-07-06 07:12:13 +02:00
Matthias
da9dac64f2 Merge pull request #7045 from freqtrade/remove_abortion
replace the word "abortion" with "denied" in log messages
2022-07-05 20:41:13 +02:00
robcaulk
514f7d491c change rejected to denied 2022-07-05 12:58:43 +02:00
robcaulk
647f9b5460 replace the word abortion with rejected in log messages 2022-07-05 12:49:09 +02:00
robcaulk
4cac67fd66 Catch infrequent issue associated with grabbing first candle 2022-07-05 12:43:33 +02:00
Matthias
6f0721ae2b Update dry-order-fix to use sqlalchemy internals 2022-07-04 17:17:39 +02:00
Matthias
fe8083c7f8 Improve test for dry-run orderclosing 2022-07-04 17:17:01 +02:00
Matthias
6da3fa08e4 Update migrations to also support Postgres
closes #7038
2022-07-04 11:14:59 +02:00
Matthias
edc9a42a4c Merge pull request #7036 from freqtrade/dependabot/pip/develop/uvicorn-0.18.2
Bump uvicorn from 0.18.1 to 0.18.2
2022-07-04 09:11:37 +02:00
Matthias
14fb499a71 Merge pull request #7033 from freqtrade/dependabot/pip/develop/jsonschema-4.6.1
Bump jsonschema from 4.6.0 to 4.6.1
2022-07-04 09:11:19 +02:00
dependabot[bot]
5820fc3b44 Bump jsonschema from 4.6.0 to 4.6.1
Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/python-jsonschema/jsonschema/releases)
- [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.6.0...v4.6.1)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 05:55:44 +00:00
Matthias
fe0a64154d Merge pull request #7037 from freqtrade/dependabot/pip/develop/ccxt-1.89.96
Bump ccxt from 1.89.14 to 1.89.96
2022-07-04 07:54:52 +02:00
Matthias
d993216ec2 Merge pull request #7035 from freqtrade/dependabot/pip/develop/requests-2.28.1
Bump requests from 2.28.0 to 2.28.1
2022-07-04 07:54:36 +02:00
Matthias
f589e13cf2 Merge pull request #7031 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.30
Bump prompt-toolkit from 3.0.29 to 3.0.30
2022-07-04 07:10:06 +02:00
dependabot[bot]
0a8a0c66b4 Bump requests from 2.28.0 to 2.28.1
Bumps [requests](https://github.com/psf/requests) from 2.28.0 to 2.28.1.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.28.0...v2.28.1)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 05:10:00 +00:00
dependabot[bot]
dd21d963fc Bump ccxt from 1.89.14 to 1.89.96
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.89.14 to 1.89.96.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.89.14...1.89.96)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 05:09:28 +00:00
Matthias
a7fa84f681 Merge pull request #7030 from freqtrade/dependabot/pip/develop/orjson-3.7.6
Bump orjson from 3.7.3 to 3.7.6
2022-07-04 07:09:09 +02:00
Matthias
05e8abb934 Merge pull request #7032 from freqtrade/dependabot/pip/develop/python-telegram-bot-13.13
Bump python-telegram-bot from 13.12 to 13.13
2022-07-04 07:08:22 +02:00
dependabot[bot]
9a8d03b1f5 Bump uvicorn from 0.18.1 to 0.18.2
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.18.1 to 0.18.2.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.18.1...0.18.2)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 03:03:02 +00:00
dependabot[bot]
0555d7783c Bump python-telegram-bot from 13.12 to 13.13
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 13.12 to 13.13.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/v13.13/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v13.12...v13.13)

---
updated-dependencies:
- dependency-name: python-telegram-bot
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 03:02:40 +00:00
dependabot[bot]
b16bb23cc8 Bump prompt-toolkit from 3.0.29 to 3.0.30
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.29 to 3.0.30.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.29...3.0.30)

---
updated-dependencies:
- dependency-name: prompt-toolkit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 03:02:34 +00:00
dependabot[bot]
92d189a84f Bump orjson from 3.7.3 to 3.7.6
Bumps [orjson](https://github.com/ijl/orjson) from 3.7.3 to 3.7.6.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.7.3...3.7.6)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 03:02:30 +00:00
Matthias
eda9464d30 Fix docs test 2022-07-03 19:54:29 +02:00
robcaulk
bd3a6ba2fe update backtesting to handle new output framework 2022-07-03 17:34:44 +02:00
robcaulk
8ac8d53c32 All LGBMRegressor model parameters are now set in config 2022-07-03 16:30:01 +02:00
robcaulk
a6077ac7f4 Merge feat/freqai into develop to get new features 2022-07-03 16:17:13 +02:00
Matthias
07aa372e2a Ensure bot_loop_start is called in hyperopt, too
closes #7001
2022-07-03 14:10:59 +02:00
Matthias
c5e6520fee Reorder methods in freqtradebot 2022-07-03 13:35:26 +02:00
robcaulk
4ff0ef7359 fix bug returning multiple targets for training 2022-07-03 12:15:59 +02:00
Matthias
f2fdc21374 Only use exit_tag if exit_type i exit_signal
closes #7027
2022-07-03 11:07:05 +02:00
Matthias
906c7b92fe Add enhance testcase to show problematic exit_reason behavior 2022-07-03 11:05:15 +02:00
robcaulk
ffb39a5029 black formatting on freqai files 2022-07-03 10:59:38 +02:00
Matthias
df8c9fc4e1 Merge pull request #7005 from freqtrade/dependabot/pip/develop/uvicorn-0.18.1
Bump uvicorn from 0.17.6 to 0.18.1
2022-07-03 07:52:09 +02:00
robcaulk
106131ff0f Rehaul organization of return values 2022-07-02 18:09:38 +02:00
robcaulk
93e1410ed9 first step toward cleaning output and enabling multimodel training per pair 2022-07-01 14:00:30 +02:00
robcaulk
6c7d02cb18 expose nu in the SVM outlier detection via svm_nu in config 2022-06-28 15:12:25 +02:00
Matthias
3c1380fbc6 Merge pull request #7009 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.18
Bump types-python-dateutil from 2.8.17 to 2.8.18
2022-06-28 08:02:33 +02:00
Matthias
86f4077024 update dateutil precommit 2022-06-28 07:37:54 +02:00
dependabot[bot]
f2bc35e058 Bump types-python-dateutil from 2.8.17 to 2.8.18
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.17 to 2.8.18.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 20:06:56 +00:00
Matthias
0a5225695a Merge pull request #7016 from freqtrade/dependabot/pip/develop/types-tabulate-0.8.11
Bump types-tabulate from 0.8.9 to 0.8.11
2022-06-27 22:05:45 +02:00
Matthias
74471e41db update tabulate precommit types 2022-06-27 18:23:00 +02:00
dependabot[bot]
8b1798522c Bump types-tabulate from 0.8.9 to 0.8.11
Bumps [types-tabulate](https://github.com/python/typeshed) from 0.8.9 to 0.8.11.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-tabulate
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 13:18:58 +00:00
Matthias
7de7425e24 Merge pull request #7007 from freqtrade/dependabot/pip/develop/time-machine-2.7.1
Bump time-machine from 2.7.0 to 2.7.1
2022-06-27 15:18:23 +02:00
Matthias
37dff8dc82 Merge pull request #7018 from freqtrade/dependabot/pip/develop/types-requests-2.28.0
Bump types-requests from 2.27.30 to 2.28.0
2022-06-27 15:17:57 +02:00
Matthias
0c69a08863 update requests precommit 2022-06-27 12:09:27 +02:00
dependabot[bot]
f6e058a327 Bump types-requests from 2.27.30 to 2.28.0
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.30 to 2.28.0.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 09:59:19 +00:00
dependabot[bot]
d60127a6d8 Bump time-machine from 2.7.0 to 2.7.1
Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.7.0 to 2.7.1.
- [Release notes](https://github.com/adamchainz/time-machine/releases)
- [Changelog](https://github.com/adamchainz/time-machine/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/time-machine/compare/2.7.0...2.7.1)

---
updated-dependencies:
- dependency-name: time-machine
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 09:59:07 +00:00
Matthias
11a8151653 Merge pull request #7012 from freqtrade/dependabot/pip/develop/types-cachetools-5.2.1
Bump types-cachetools from 5.0.2 to 5.2.1
2022-06-27 11:54:43 +02:00
Matthias
e3abaaa1b7 Merge pull request #7019 from freqtrade/dependabot/pip/develop/pandas-1.4.3
Bump pandas from 1.4.2 to 1.4.3
2022-06-27 11:54:06 +02:00
robcaulk
7dfbd432d1 fix config saving bug, assign priorities to pairs in scanning, sleep the scanning loop to reduce CPU usage 2022-06-27 11:35:33 +02:00
dependabot[bot]
82ef97af7e Bump pandas from 1.4.2 to 1.4.3
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.4.2 to 1.4.3.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/main/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.4.2...v1.4.3)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 07:44:33 +00:00
Matthias
74fdda6846 Merge pull request #7017 from freqtrade/dependabot/pip/develop/ccxt-1.89.14
Bump ccxt from 1.88.15 to 1.89.14
2022-06-27 09:43:29 +02:00
Matthias
9eaf0400fa Merge pull request #7020 from freqtrade/dependabot/pip/develop/orjson-3.7.3
Bump orjson from 3.7.2 to 3.7.3
2022-06-27 09:10:46 +02:00
Matthias
01185ab483 update cachetools precommit 2022-06-27 07:59:26 +02:00
Matthias
8405bf767b Merge pull request #7006 from freqtrade/dependabot/pip/develop/pytest-mock-3.8.1
Bump pytest-mock from 3.7.0 to 3.8.1
2022-06-27 07:43:55 +02:00
dependabot[bot]
9a9d1a8974 Bump orjson from 3.7.2 to 3.7.3
Bumps [orjson](https://github.com/ijl/orjson) from 3.7.2 to 3.7.3.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.7.2...3.7.3)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 05:39:04 +00:00
dependabot[bot]
0ef2c812db Bump ccxt from 1.88.15 to 1.89.14
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.88.15 to 1.89.14.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.88.15...1.89.14)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 05:38:31 +00:00
Matthias
85d1b433bc Merge pull request #7013 from freqtrade/dependabot/pip/develop/tabulate-0.8.10
Bump tabulate from 0.8.9 to 0.8.10
2022-06-27 07:38:20 +02:00
Matthias
d8f616cf35 Merge pull request #7011 from freqtrade/dependabot/pip/develop/plotly-5.9.0
Bump plotly from 5.8.2 to 5.9.0
2022-06-27 07:37:33 +02:00
Matthias
870c25c81f Merge pull request #7010 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.39
Bump sqlalchemy from 1.4.37 to 1.4.39
2022-06-27 07:37:00 +02:00
Matthias
fb3bc189b5 Merge pull request #7008 from freqtrade/dependabot/pip/develop/mkdocs-material-8.3.8
Bump mkdocs-material from 8.3.6 to 8.3.8
2022-06-27 07:36:08 +02:00
dependabot[bot]
6510c8d330 Bump tabulate from 0.8.9 to 0.8.10
Bumps [tabulate](https://github.com/astanin/python-tabulate) from 0.8.9 to 0.8.10.
- [Release notes](https://github.com/astanin/python-tabulate/releases)
- [Changelog](https://github.com/astanin/python-tabulate/blob/master/CHANGELOG)
- [Commits](https://github.com/astanin/python-tabulate/compare/v0.8.9...v0.8.10)

---
updated-dependencies:
- dependency-name: tabulate
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 03:03:00 +00:00
dependabot[bot]
efee148e43 Bump types-cachetools from 5.0.2 to 5.2.1
Bumps [types-cachetools](https://github.com/python/typeshed) from 5.0.2 to 5.2.1.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 03:02:53 +00:00
dependabot[bot]
8b7dc031f7 Bump plotly from 5.8.2 to 5.9.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.8.2 to 5.9.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.8.2...v5.9.0)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 03:02:51 +00:00
dependabot[bot]
963f38a690 Bump sqlalchemy from 1.4.37 to 1.4.39
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.37 to 1.4.39.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 03:02:46 +00:00
dependabot[bot]
45db2347dc Bump mkdocs-material from 8.3.6 to 8.3.8
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.3.6 to 8.3.8.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.3.6...8.3.8)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 03:02:29 +00:00
dependabot[bot]
4840c7d2fd Bump pytest-mock from 3.7.0 to 3.8.1
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.7.0 to 3.8.1.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.7.0...v3.8.1)

---
updated-dependencies:
- dependency-name: pytest-mock
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 03:02:16 +00:00
dependabot[bot]
92dbb0d366 Bump uvicorn from 0.17.6 to 0.18.1
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.17.6 to 0.18.1.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.17.6...0.18.1)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-27 03:02:07 +00:00
robcaulk
68bafa9517 archive config to the model folder, filter out features before returning dataframe to strategy (to alleviate frequi issues)` 2022-06-26 23:03:48 +02:00
robcaulk
051b99791d reduce unnecessary verbosity, fix error on first training sweep, add LightGBMPredictionModel 2022-06-26 19:04:23 +02:00
Matthias
b5d0bc997d Clarify stoploss behavior when not defining offset
closes #6828
2022-06-24 17:25:33 +02:00
Matthias
ca88ea50c5 Merge pull request #6859 from mkavinkumar1/get
Removed None in dict.get()
2022-06-23 21:45:13 +02:00
Matthias
2b07d34611 Revert several undesired changes 2022-06-23 20:47:51 +02:00
Matthias
8bf0bf10c5 Merge branch 'develop' into pr/SmartManoj/6859 2022-06-23 20:43:35 +02:00
Matthias
ddc355feb6 Bump numpy from 1.22.4 to 1.23.0 2022-06-23 08:07:22 +00:00
Matthias
90feccf33c slightly update custom dockerfile with add. comment
closes #6994
2022-06-23 07:17:24 +02:00
Surfer
06571e99aa Merge branch 'freqtrade:develop' into develop 2022-06-22 09:38:23 -04:00
Matthias
53e5483daa Store StopPrice for dry-run orders
closes #6996
2022-06-22 06:31:51 +02:00
Surfer
cc4e5b26f0 Merge branch 'freqtrade:develop' into develop 2022-06-21 14:16:03 -04:00
Surfer Admin
e2a94d75b4 Merge branch 'develop' of https://github.com/Surfableio/freqtrade into develop 2022-06-21 14:06:56 -04:00
Surfer Admin
405ea74f16 stopPrice 2022-06-21 14:06:41 -04:00
Matthias
3a0f31fe89 Merge pull request #6914 from freqtrade/leverage_tiers_async
Leverage tiers async
2022-06-21 10:18:40 +02:00
Robert Caulk
852706cd6b Fix default behavior for expiration_hours 2022-06-21 08:12:51 +02:00
Matthias
eebd624baf Merge pull request #6988 from freqtrade/dependabot/pip/develop/mkdocs-material-8.3.6
Bump mkdocs-material from 8.3.4 to 8.3.6
2022-06-20 09:44:14 +02:00
dependabot[bot]
15fac746a8 Bump mkdocs-material from 8.3.4 to 8.3.6
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.3.4 to 8.3.6.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.3.4...8.3.6)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-20 06:59:58 +00:00
Matthias
7756c11454 Merge pull request #6991 from freqtrade/dependabot/pip/develop/ccxt-1.88.15
Bump ccxt from 1.87.12 to 1.88.15
2022-06-20 08:59:16 +02:00
Matthias
5e8bfb576b Merge pull request #6989 from freqtrade/dependabot/pip/develop/types-cachetools-5.0.2
Bump types-cachetools from 5.0.1 to 5.0.2
2022-06-20 08:07:06 +02:00
Matthias
3189b284c0 Fix tests condition 2022-06-20 08:04:34 +02:00
Matthias
165755fb33 Merge pull request #6990 from freqtrade/dependabot/pip/develop/colorama-0.4.5
Bump colorama from 0.4.4 to 0.4.5
2022-06-20 08:02:25 +02:00
Matthias
1cd2b0504a Run regular tests for 3.9 under other ubuntu systems 2022-06-20 07:15:15 +02:00
dependabot[bot]
e1e3a903f9 Bump ccxt from 1.87.12 to 1.88.15
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.87.12 to 1.88.15.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.87.12...1.88.15)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-20 05:07:35 +00:00
dependabot[bot]
996372b8f6 Bump colorama from 0.4.4 to 0.4.5
Bumps [colorama](https://github.com/tartley/colorama) from 0.4.4 to 0.4.5.
- [Release notes](https://github.com/tartley/colorama/releases)
- [Changelog](https://github.com/tartley/colorama/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/tartley/colorama/compare/0.4.4...0.4.5)

---
updated-dependencies:
- dependency-name: colorama
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-20 05:06:39 +00:00
Matthias
50c19ece53 Fix ccxt test gateio flukyness 2022-06-20 07:05:51 +02:00
Matthias
f9668ede4a Fix CI Syntax error 2022-06-20 07:02:12 +02:00
Matthias
0804fc7a3a CI should run ccxt tests only once 2022-06-20 07:01:35 +02:00
Matthias
55fb7656df Update pre-commit cachetools 2022-06-20 06:58:41 +02:00
dependabot[bot]
8406010260 Bump types-cachetools from 5.0.1 to 5.0.2
Bumps [types-cachetools](https://github.com/python/typeshed) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-20 03:01:26 +00:00
robcaulk
b35c64b6c0 fix bug in backtest, typo in example strat 2022-06-19 16:41:09 +02:00
Matthias
0d967f93ba Improve performance of some RPC calls
These don't need orders to be loaded. As a side-effect, this will
also reduce the strain on the database.
2022-06-19 16:13:04 +02:00
Matthias
0809f9aef6 Add offset to trade response 2022-06-18 19:27:05 +02:00
Matthias
bb61250bfe Merge pull request #6987 from freqtrade/profit_metrics
Profit metrics
2022-06-18 17:20:20 +02:00
Matthias
0168343b76 Add trading-volume to api schema 2022-06-18 16:53:25 +02:00
Matthias
474e6705e6 Add Profit factor to backtesting 2022-06-18 16:35:40 +02:00
Matthias
53bfa7931d Add rudimentary test for prior bug
Test fails without the fix in 8c46d19071
2022-06-18 16:32:22 +02:00
Matthias
8c46d19071 Fix backtesting bug
balance was never released on cancelled trades
2022-06-18 16:27:54 +02:00
robcaulk
3599d18ff6 fix bug in follow_mode, thanks @blood4rc 2022-06-18 12:05:28 +02:00
Matthias
b7e4dea6c5 Document new Profit metrics 2022-06-18 11:43:50 +02:00
Matthias
40c9abc7e1 Add trading volume to /profit output 2022-06-18 11:40:32 +02:00
Matthias
6a15d36d14 Add Drawdown and profit_factor to /profit
#6816
2022-06-18 11:14:28 +02:00
Matthias
d77ce468ea Add "dry" hint to buy/sell messages
part of #6962
2022-06-18 09:40:53 +02:00
Matthias
03815cb81b Use fstrings in telegram messaging 2022-06-18 09:23:16 +02:00
Matthias
d62273294d Update /help for /fx to align with actual command name
closes #6985
2022-06-18 09:10:33 +02:00
Matthias
017fd03180 Fix but with late entries in backtesting 2022-06-18 09:05:22 +02:00
Matthias
616bf315cb gateio: futures market orders require IOC to be set. 2022-06-17 23:02:39 +02:00
Matthias
fda8248d41 Gateio allow market orders on futures markets 2022-06-17 22:43:24 +02:00
robcaulk
6da7a98857 add docstrings to new functions, remove superceded code 2022-06-17 16:16:23 +02:00
robcaulk
5e914d5756 improve model youth by constantly scanning pairs in dry/live and always training new models. Fix bug in DI return values 2022-06-17 16:06:51 +02:00
robcaulk
f631ae911b add model expiration feature, fix bug in DI return values 2022-06-17 14:55:40 +02:00
Matthias
6bdf9c2a94 Simplify trade profit calculations further 2022-06-17 11:17:05 +00:00
Matthias
91f9818ae3 Simplify trade calculations 2022-06-17 09:53:29 +00:00
Matthias
d7770c507b Remove implicit use of certain rates in profit calculations 2022-06-17 07:00:42 +00:00
Matthias
76cae8e8e3 Update tests to always provide rate to profit calculations 2022-06-17 06:55:31 +00:00
Matthias
575b4ead1a Update Test with funding_fee 0 2022-06-17 06:29:17 +00:00
Matthias
14a859c190 Improve some documentation around futures / leverage 2022-06-16 19:50:13 +02:00
Matthias
61040c9f8e Fix freqAI dockerfile not running freqai code ... 2022-06-16 19:35:16 +02:00
robcaulk
0b0688a91e ensure scanning purges models 2022-06-16 16:12:38 +02:00
Matthias
121edc3e42 Add freqAI docker file 2022-06-16 12:36:15 +00:00
Surfer
36f7315481 Merge branch 'freqtrade:develop' into develop 2022-06-16 08:19:57 -04:00
robcaulk
c5de0c49e4 first functional scanning commit 2022-06-16 00:24:18 +02:00
robcaulk
4d472a0ea1 merging datarehaul into scanning branch 2022-06-16 00:22:49 +02:00
Matthias
8f32fa5cb3 Avoid exception on exchange recycling if __init__ fails 2022-06-15 20:13:07 +02:00
Matthias
f9e2e87346 Improve some formatting and typehints 2022-06-15 20:03:36 +02:00
Matthias
ec40e79362 Merge pull request #6874 from froggleston/buy_reasons
Buy reasons
2022-06-15 19:06:00 +02:00
Matthias
e2e6c790be Minor doc update 2022-06-15 16:50:25 +02:00
froggleston
4a5ed5a273 Fix tests 2022-06-15 11:48:57 +01:00
froggleston
14110bd5ca Merge branch 'buy_reasons' of github.com:froggleston/freqtrade into buy_reasons 2022-06-15 11:25:24 +01:00
froggleston
c391ca08de Change backtesting-analysis options to space separated lists 2022-06-15 11:25:06 +01:00
Matthias
29d8aeb9b3 Don't fail on invalid parameter 2022-06-15 07:13:47 +02:00
Matthias
3c62df6b86 Ensure the same timestamp is used for backtest and signal export 2022-06-15 06:53:52 +02:00
froggleston
6bb342f23a Add export-filename support 2022-06-14 16:54:27 +01:00
Matthias
01a68e1060 Remove unnecessary check and condition 2022-06-13 20:48:49 +02:00
Matthias
1ffee96bad Fix protection parameters not loading from parameter file
closes #6978
2022-06-13 19:59:05 +02:00
Matthias
d5fd1f9c38 Improve order filled handling 2022-06-13 13:24:48 +00:00
Matthias
848a5d85c6 Add small stability fix to test 2022-06-13 13:24:48 +00:00
Matthias
d7901132b8 Merge pull request #6973 from freqtrade/dependabot/pip/develop/plotly-5.8.2
Bump plotly from 5.8.0 to 5.8.2
2022-06-13 10:52:15 +02:00
Matthias
dca639cf26 Merge pull request #6970 from freqtrade/dependabot/pip/develop/pymdown-extensions-9.5
Bump pymdown-extensions from 9.4 to 9.5
2022-06-13 10:03:11 +02:00
Matthias
11603e70c9 Merge pull request #6972 from freqtrade/dependabot/pip/develop/orjson-3.7.2
Bump orjson from 3.7.1 to 3.7.2
2022-06-13 10:02:55 +02:00
dependabot[bot]
35adeb6412 Bump plotly from 5.8.0 to 5.8.2
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.8.0 to 5.8.2.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.8.0...v5.8.2)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-13 07:33:30 +00:00
dependabot[bot]
850f5d3842 Bump orjson from 3.7.1 to 3.7.2
Bumps [orjson](https://github.com/ijl/orjson) from 3.7.1 to 3.7.2.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.7.1...3.7.2)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-13 07:32:39 +00:00
Matthias
9923462907 Merge pull request #6971 from freqtrade/dependabot/pip/develop/requests-2.28.0
Bump requests from 2.27.1 to 2.28.0
2022-06-13 09:32:03 +02:00
Matthias
46a214e41a Merge pull request #6969 from freqtrade/dependabot/pip/develop/mypy-0.961
Bump mypy from 0.960 to 0.961
2022-06-13 09:31:51 +02:00
dependabot[bot]
fdca583c67 Bump pymdown-extensions from 9.4 to 9.5
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 9.4 to 9.5.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/9.4...9.5)

---
updated-dependencies:
- dependency-name: pymdown-extensions
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-13 07:07:39 +00:00
Matthias
29c38e0623 Merge pull request #6968 from freqtrade/dependabot/pip/develop/mkdocs-material-8.3.4
Bump mkdocs-material from 8.3.2 to 8.3.4
2022-06-13 09:07:02 +02:00
Matthias
a56ee4ee94 Merge pull request #6976 from freqtrade/dependabot/pip/develop/ccxt-1.87.12
Bump ccxt from 1.85.57 to 1.87.12
2022-06-13 09:06:46 +02:00
dependabot[bot]
cb2f89bca6 Bump requests from 2.27.1 to 2.28.0
Bumps [requests](https://github.com/psf/requests) from 2.27.1 to 2.28.0.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.27.1...v2.28.0)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-13 06:26:23 +00:00
dependabot[bot]
43b8b0a083 Bump mypy from 0.960 to 0.961
Bumps [mypy](https://github.com/python/mypy) from 0.960 to 0.961.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v0.960...v0.961)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-13 06:25:53 +00:00
dependabot[bot]
71f314d4c4 Bump ccxt from 1.85.57 to 1.87.12
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.85.57 to 1.87.12.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.85.57...1.87.12)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-13 06:25:35 +00:00
dependabot[bot]
ee0b9e3a5c Bump mkdocs-material from 8.3.2 to 8.3.4
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.3.2 to 8.3.4.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.3.2...8.3.4)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-13 06:25:18 +00:00
Matthias
5e4b3882e6 Merge pull request #6974 from freqtrade/dependabot/pip/develop/types-filelock-3.2.7
Bump types-filelock from 3.2.6 to 3.2.7
2022-06-13 08:25:10 +02:00
Matthias
4030a5df8e Merge pull request #6975 from freqtrade/dependabot/github_actions/develop/actions/setup-python-4
Bump actions/setup-python from 3 to 4
2022-06-13 08:24:20 +02:00
Matthias
e67d29cd2f Update more trades to use create_mock_trades 2022-06-13 07:17:13 +02:00
dependabot[bot]
70966c8a8f Bump actions/setup-python from 3 to 4
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3 to 4.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-13 05:08:12 +00:00
Matthias
8fd245c28b Update pre-commit filelocktypes 2022-06-13 06:58:06 +02:00
Matthias
43c871f2f4 Use time-machine to stabilize time-sensitive tests 2022-06-13 06:49:31 +02:00
Matthias
390e600f55 Update statistics output 2022-06-13 06:46:34 +02:00
dependabot[bot]
40c7caac16 Bump types-filelock from 3.2.6 to 3.2.7
Bumps [types-filelock](https://github.com/python/typeshed) from 3.2.6 to 3.2.7.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-filelock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-13 03:01:53 +00:00
Matthias
7619fd08d6 Update telegram tests to use mock_trades 2022-06-12 19:41:28 +02:00
Matthias
dff83ef620 Update telegram profit test to USDT 2022-06-12 17:30:01 +02:00
Matthias
56652c2b39 Improve test resiliance 2022-06-12 17:09:47 +02:00
Matthias
c981ad4608 Fix missing space 2022-06-12 08:31:02 +02:00
Matthias
75a248cf42 Fstring freqAI sample strategy, remove duplicate features 2022-06-11 19:56:37 +02:00
Matthias
2e1ed132f7 Merge pull request #6964 from freqtrade/rpc_rel_daily
Telegram / api daily relative profit
2022-06-11 19:31:32 +02:00
Matthias
c9761f4736 FreqUI should be installed by default when running setup.sh 2022-06-11 18:02:03 +02:00
Matthias
9c65fad73f Merge Pull request #6919 into develop 2022-06-11 17:49:32 +02:00
Matthias
4b70e03daa Add some rudimentary tsts for discord webhook integration 2022-06-11 17:49:23 +02:00
Matthias
fdfa94bcc3 make discord notifications fully configurable. 2022-06-11 17:43:46 +02:00
Matthias
f816c15e1e Update discord message format 2022-06-11 16:48:28 +02:00
Matthias
3a06337601 Update API to provide new values. 2022-06-11 11:28:45 +02:00
Matthias
9ba11f7bcc Update docs and tests for new daily command 2022-06-11 11:26:49 +02:00
Matthias
76827b31a9 Add relative profit to daily/weekly commands 2022-06-11 11:18:21 +02:00
Matthias
0a801c0223 Simplify daily RPC test 2022-06-11 08:58:36 +02:00
Matthias
1a5c3c587d Simplify weekly/monthly tests, convert to usdt 2022-06-11 08:53:37 +02:00
Matthias
ab6a306e07 Update daily test to USDT 2022-06-11 08:31:59 +02:00
Matthias
2c7c5f9a6e Update mock_usdt trade method 2022-06-10 20:47:52 +02:00
robcaulk
eb47c74096 merge datarehaul into main freqai branch 2022-06-10 20:26:19 +02:00
Matthias
76f87377ba Reduce decimals on FIAT daily column 2022-06-10 20:18:53 +02:00
Matthias
e8f8cd9d36 Merge pull request #6960 from italodamato/opt-ask-force-new-points
remove `random_state` condition when sampling random points
2022-06-10 19:45:36 +02:00
Italo
7142394121 remove random_state condition
otherwise the random sample always draws the same set of points
2022-06-10 09:46:45 +01:00
Matthias
ad3c01736e time aggregate to only query for data necessary
improves the query by not creating a full trade object.
2022-06-10 07:26:53 +02:00
Matthias
2218313f5c Merge pull request #6957 from freqtrade/rpc_consolidate_daily
Rpc consolidate daily
2022-06-10 06:39:59 +02:00
Matthias
2e67e2f911 Merge pull request #6958 from italodamato/opt-ask-force-new-points
don't overwrite is_random
2022-06-10 06:37:03 +02:00
Italo
dce9fdd0e4 don't overwrite is_random
this should fix issue #6746
2022-06-09 20:06:23 +01:00
Matthias
8fb743b91d improve variable wording 2022-06-09 20:13:26 +02:00
Matthias
dd32127014 Merge pull request #6944 from gaugau3000/develop
give extra info on rate origin for confirm_trade_*
2022-06-09 20:10:29 +02:00
Matthias
3c2ba99fc4 Improve sql cheatsheet docs 2022-06-09 19:57:56 +02:00
Matthias
a9c7ad8a0f Add warning about sqlite disabled foreign keys 2022-06-09 19:51:21 +02:00
Matthias
1ddd5f1901 Update docstring throughout the bot. 2022-06-09 19:41:08 +02:00
Matthias
88f8cbe172 Update tests to reflect new naming 2022-06-09 19:38:18 +02:00
Matthias
b211a5156f Add test for strategy_wrapper lazy loading 2022-06-09 19:36:15 +02:00
Matthias
a547001601 Reduce Telegram "unit" stats 2022-06-09 07:06:32 +02:00
Matthias
d4dd026310 Consolidate monthly stats to common method 2022-06-09 07:06:32 +02:00
Matthias
3cb15a2a54 Combine weekly and daily profit methods 2022-06-09 07:06:32 +02:00
Matthias
c550cd8b0d Simplify query in freqtradebot 2022-06-09 07:04:46 +02:00
Matthias
6a7ffd5483 Merge pull request #6952 from freqtrade/dependabot/docker/python-3.10.5-slim-bullseye
Bump python from 3.10.4-slim-bullseye to 3.10.5-slim-bullseye
2022-06-09 06:27:59 +02:00
dependabot[bot]
d265b8adb6 Bump python from 3.10.4-slim-bullseye to 3.10.5-slim-bullseye
Bumps python from 3.10.4-slim-bullseye to 3.10.5-slim-bullseye.

---
updated-dependencies:
- dependency-name: python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-09 03:01:48 +00:00
Matthias
7eacb847b0 Fix backtesting bug when order is not replaced 2022-06-08 20:21:45 +02:00
gautier pialat
ac40ae89b9 give extra info on rate origin for confirm_trade_*
Documentation :
Take into consideration the market buy/sell rates use case for the confirm_trade_entry and confirm_trade_exit callback function
2022-06-08 00:20:33 +02:00
Matthias
381d64833d version-bump ccxt 2022-06-07 21:05:31 +02:00
robcaulk
d9b79d94e4 increase candle update flexibility to allow long sequential trainings that may last more than one candle 2022-06-07 20:57:10 +02:00
robcaulk
66800c7a45 ensure newest candles are always appended 2022-06-07 20:24:23 +02:00
robcaulk
f8f25e36ef update example config/strat 2022-06-07 19:54:45 +02:00
robcaulk
15d049cffe detect if upper tf candles are new or not, append if so. Correct the epoch for candle update check 2022-06-07 19:49:20 +02:00
Matthias
ca281c5722 Merge pull request #6943 from freqtrade/cancel_outdated_orders
Cancel orders which can no longer be found after several days
2022-06-07 18:05:15 +02:00
Matthias
9534d6cca1 Cancel orders which can no longer be found after several days 2022-06-07 07:03:40 +02:00
robcaulk
cab8f517b4 add lock to datadrawer 2022-06-07 01:07:30 +02:00
robcaulk
4b26b6aaec add lock to any historic data access 2022-06-07 00:54:18 +02:00
Robert Caulk
3c2e314ee5 Fix bugs 2022-06-06 16:26:07 -06:00
Robert Caulk
e6c5e737a2 Fix other bugs 2022-06-06 16:24:32 -06:00
Robert Caulk
bf19055e53 Update function spelling 2022-06-06 15:56:12 -06:00
Robert Caulk
2451ed8c88 Quick bug fix 2022-06-06 15:11:54 -06:00
Matthias
5007024f63 Merge pull request #6940 from freqtrade/bt_orders
Open orders should also be shown in the UI
2022-06-06 13:44:21 +02:00
Matthias
de79192432 Merge pull request #6941 from freqtrade/ci/concurrency
Update CI to use github actions builtin concurrency
2022-06-06 13:36:55 +02:00
Matthias
057be50941 Remove old concurrency method 2022-06-06 11:11:47 +02:00
Matthias
4eb6e80b4f Merge pull request #6936 from freqtrade/dependabot/pip/develop/jsonschema-4.6.0
Bump jsonschema from 4.5.1 to 4.6.0
2022-06-06 11:03:40 +02:00
Matthias
c00a7b65af Merge pull request #6937 from freqtrade/dependabot/pip/develop/types-requests-2.27.30
Bump types-requests from 2.27.29 to 2.27.30
2022-06-06 11:00:40 +02:00
Matthias
0b806af487 Add orders column to btresult 2022-06-06 10:59:10 +02:00
Matthias
82c5a6b29d Update CI to use concurrency 2022-06-06 10:57:33 +02:00
Matthias
ea9b68badd Add updating freqtrade to updating desc 2022-06-06 10:54:26 +02:00
Matthias
99f6c75c40 Bump types-requests precommit 2022-06-06 10:22:19 +02:00
Matthias
e2948857bf Merge pull request #6938 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.37
Bump sqlalchemy from 1.4.36 to 1.4.37
2022-06-06 10:21:38 +02:00
Matthias
767de555a6 Merge pull request #6934 from freqtrade/dependabot/pip/develop/filelock-3.7.1
Bump filelock from 3.7.0 to 3.7.1
2022-06-06 10:20:50 +02:00
Matthias
73043f2ccc Merge pull request #6933 from freqtrade/dependabot/pip/develop/orjson-3.7.1
Bump orjson from 3.6.8 to 3.7.1
2022-06-06 10:20:35 +02:00
Matthias
55cda53325 Merge pull request #6935 from freqtrade/dependabot/pip/develop/mkdocs-material-8.3.2
Bump mkdocs-material from 8.2.16 to 8.3.2
2022-06-06 10:20:08 +02:00
Matthias
a96dce0f8f Merge pull request #6939 from freqtrade/dependabot/pip/develop/ccxt-1.84.97
Bump ccxt from 1.84.39 to 1.84.97
2022-06-06 10:19:48 +02:00
dependabot[bot]
05922e9ebc Bump ccxt from 1.84.39 to 1.84.97
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.84.39 to 1.84.97.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.84.39...1.84.97)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 03:02:15 +00:00
dependabot[bot]
4affa75ff5 Bump sqlalchemy from 1.4.36 to 1.4.37
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.36 to 1.4.37.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 03:02:07 +00:00
dependabot[bot]
963dc0221c Bump types-requests from 2.27.29 to 2.27.30
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.29 to 2.27.30.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 03:01:59 +00:00
dependabot[bot]
35316ec068 Bump jsonschema from 4.5.1 to 4.6.0
Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.5.1 to 4.6.0.
- [Release notes](https://github.com/python-jsonschema/jsonschema/releases)
- [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.5.1...v4.6.0)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 03:01:55 +00:00
dependabot[bot]
6547f3aadb Bump mkdocs-material from 8.2.16 to 8.3.2
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.2.16 to 8.3.2.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.2.16...8.3.2)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 03:01:52 +00:00
dependabot[bot]
04cb49b7e4 Bump filelock from 3.7.0 to 3.7.1
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.7.0 to 3.7.1.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/py-filelock/compare/3.7.0...3.7.1)

---
updated-dependencies:
- dependency-name: filelock
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 03:01:48 +00:00
dependabot[bot]
786bc36163 Bump orjson from 3.6.8 to 3.7.1
Bumps [orjson](https://github.com/ijl/orjson) from 3.6.8 to 3.7.1.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.6.8...3.7.1)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 03:01:44 +00:00
Matthias
79107fd062 Add minimal order object serialization 2022-06-05 22:12:27 +02:00
Matthias
8369d5bedd Include open orders in json responses 2022-06-05 22:12:27 +02:00
Matthias
c0ff554d5b Cleanup old, left open dry-run orders 2022-06-05 22:12:27 +02:00
Matthias
f709222943 Properly close out orders in backtesting 2022-06-05 22:12:27 +02:00
Matthias
c499bb051f Allow empty unfilledtimeout for webserver mode 2022-06-05 19:41:17 +02:00
Matthias
a790bad1e4 Add entry_tag to leverage callback
closes #6929
2022-06-05 10:24:54 +02:00
Matthias
27bea580d4 Fix rest-client script's force_enter
closes #6927
2022-06-05 09:40:04 +02:00
robcaulk
d6b8801f41 fix follower bug 2022-06-05 04:40:58 +02:00
robcaulk
e8c0dcf9f3 add debug message to timerange 2022-06-03 17:14:07 +02:00
robcaulk
f2762e3b4b fix bug in return_values() 2022-06-03 16:58:51 +02:00
robcaulk
16b4a5b71f rehaul of backend data management - increasing performance by holding history in memory, reducing load on the ratelimit by only pinging exchange once per candle. Improve code readability. 2022-06-03 15:19:46 +02:00
robcaulk
15a971346d catch infinity values when filtering 2022-06-02 17:13:20 +02:00
Robert Caulk
7d41542f93 process_only_new_candles in examplestrat should be True, thanks @Bloodhunter4rc 2022-06-02 07:24:08 -06:00
robcaulk
fea39254d9 fix custom_exit (thanks @paranoidandy) 2022-06-02 14:58:45 +02:00
robcaulk
b37c31cc21 fix ta-lib issue with simultaneous method access 2022-06-02 14:37:40 +02:00
robcaulk
4ac6ef2972 make defining period intervals more user friendly and flexible 2022-06-02 13:45:29 +02:00
robcaulk
ace951bf7e another queue bug fix for fresh starts 2022-06-02 13:28:06 +02:00
Anuj Shah
eb4adeab4d fix flake8 issues 2022-06-02 11:19:29 +05:30
Anuj Shah
45c47bda60 refactor into discord rpc module 2022-06-01 21:14:48 +05:30
Anuj Shah
afd8e85835 feat: add support for discord notification 2022-06-01 15:54:32 +05:30
robcaulk
833d25bda0 Save data after queue reorg 2022-06-01 08:05:38 +02:00
robcaulk
0b0dd8dd80 Force high priority pair to be trained before anything else. 2022-06-01 07:55:05 +02:00
Surfer Admin
7fe8b7661d Display the signal candle analyzed in telegram. 2022-05-31 15:46:43 -04:00
Matthias
34a44b9dd2 Fix backtesting bug when canceling orders
closes #6911
2022-05-31 20:32:41 +02:00
Matthias
66edbcd3d5 Fix slight backtesting bug in edge-case scenarios 2022-05-31 20:08:34 +02:00
robcaulk
7523ed825e automatically detect maximum required data based on user fed indicators (to avoid NaNs in dataset for rolling indicators), add new config parameter for backtesting to let users increase their startup_candles to accommodate high timeframe indicators, add docs to explain all. Add new feature for automatic indicator duplication according to user defined intervals (exhibited in example strat and configs now). 2022-05-31 18:42:27 +02:00
Matthias
3549176370 Update missleading docstring
closes #6913
2022-05-31 17:52:45 +02:00
Matthias
88845f6d88 Fix cancel order deleting trade
if one order was successfully filled, the trade cannot be deleted.

closes #6907
2022-05-31 17:49:51 +02:00
Matthias
eee337c764 Merge pull request #6906 from freqtrade/params_to_instance
Params to instance
2022-05-31 16:18:48 +02:00
robcaulk
9b3b08a2bb let follower purge old model files 2022-05-31 15:37:38 +02:00
robcaulk
bac4ced382 Ensure follower predictions are persistent and uniquely stored 2022-05-31 14:35:04 +02:00
Matthias
ea537b32c7 Update tests for leverage_tier_loading 2022-05-31 11:40:14 +00:00
robcaulk
70adf55643 Automatically detect and change follower data_path to accommodate remote systems 2022-05-31 12:35:09 +02:00
robcaulk
0306f5ca13 Add autopurge feature so that FreqAI cleans up after itself when it no longer needs old models on disk 2022-05-31 11:58:21 +02:00
Matthias
cce8d1aa4d Update get_market_leverage_tiers to be async 2022-05-31 08:48:34 +00:00
Matthias
be6e0813db Remove --strategy from analysis test 2022-05-31 06:53:03 +02:00
robcaulk
45f4f0f603 ensure follower sends back null arrays in case leader hasnt created a model file yet 2022-05-31 01:48:48 +02:00
robcaulk
29d2f59f12 fix PCA bug 2022-05-31 00:40:45 +02:00
robcaulk
606f18e5c1 Add follow_mode feature so that secondary bots can be launched with the same identifier and load models trained by the leader 2022-05-30 21:35:48 +02:00
Matthias
c285ad0e2b Remove --strategy parameters, update docs 2022-05-30 20:26:24 +02:00
Matthias
d950b0acbe Update documentation about dynamic parameters 2022-05-30 18:18:01 +02:00
robcaulk
5b4c649d43 detect variable sized dataframes coming from strat, adjust our stored/returned data accordingly 2022-05-30 13:55:46 +02:00
robcaulk
e229902381 fix bug in previous commit 2022-05-30 12:48:22 +02:00
robcaulk
a20651efd8 Increase performance by only predicting on most recent candle instead of full strat provided dataframe. Collect predictions and store them so that we can feed true predictions back to strategy (so that frequi isnt updating historic predictions based on newly trained models). 2022-05-30 11:37:05 +02:00
Matthias
d8df9fdccf Merge pull request #6900 from freqtrade/dependabot/pip/develop/types-requests-2.27.29
Bump types-requests from 2.27.27 to 2.27.29
2022-05-30 08:36:39 +02:00
Matthias
8e2c7e1298 extract detect_parameters to separate function 2022-05-30 07:26:26 +02:00
Matthias
f323cbc769 Bump types-requests precommit 2022-05-30 07:23:05 +02:00
Matthias
b73fd0ac69 Merge pull request #6899 from freqtrade/dependabot/pip/develop/mypy-0.960
Bump mypy from 0.950 to 0.960
2022-05-30 07:22:39 +02:00
Matthias
5bf021be2e Enhance hyperoptable strategy to test instance parameters 2022-05-30 07:08:37 +02:00
Matthias
eaa656f859 Hyperoptable parameters can be instance attributes 2022-05-30 07:07:47 +02:00
dependabot[bot]
2b2967f34e Bump types-requests from 2.27.27 to 2.27.29
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.27 to 2.27.29.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 04:54:54 +00:00
Matthias
7962092092 Merge pull request #6897 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.17
Bump types-python-dateutil from 2.8.16 to 2.8.17
2022-05-30 06:54:21 +02:00
Matthias
386d3e0353 Rename stop/roi loading method 2022-05-30 06:52:44 +02:00
Matthias
ad8ff10a05 Minor doc changes 2022-05-30 06:32:46 +02:00
Matthias
41052b4e1e Bump types dateutil precommit 2022-05-30 06:28:03 +02:00
Matthias
8837e1937b Merge pull request #6896 from freqtrade/dependabot/pip/develop/python-telegram-bot-13.12
Bump python-telegram-bot from 13.11 to 13.12
2022-05-30 06:27:25 +02:00
Matthias
d83b204f4b Merge pull request #6901 from freqtrade/dependabot/pip/develop/ccxt-1.84.39
Bump ccxt from 1.83.62 to 1.84.39
2022-05-30 06:25:39 +02:00
Matthias
5d801ff287 Merge pull request #6898 from freqtrade/dependabot/pip/develop/mkdocs-material-8.2.16
Bump mkdocs-material from 8.2.15 to 8.2.16
2022-05-30 06:22:16 +02:00
dependabot[bot]
23fa00e29a Bump ccxt from 1.83.62 to 1.84.39
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.83.62 to 1.84.39.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.83.62...1.84.39)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 03:02:26 +00:00
dependabot[bot]
a937f36997 Bump mypy from 0.950 to 0.960
Bumps [mypy](https://github.com/python/mypy) from 0.950 to 0.960.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v0.950...v0.960)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 03:02:13 +00:00
dependabot[bot]
9366c1d36f Bump mkdocs-material from 8.2.15 to 8.2.16
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.2.15 to 8.2.16.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.2.15...8.2.16)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 03:02:03 +00:00
dependabot[bot]
e7c78529e9 Bump types-python-dateutil from 2.8.16 to 2.8.17
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.16 to 2.8.17.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 03:01:58 +00:00
dependabot[bot]
b52fd0b4df Bump python-telegram-bot from 13.11 to 13.12
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 13.11 to 13.12.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/v13.12/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v13.11...v13.12)

---
updated-dependencies:
- dependency-name: python-telegram-bot
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 03:01:56 +00:00
robcaulk
2f1a2c1cd7 allow users to store data in custom formats, update spot config to reflect better target horizon to training period ratio 2022-05-30 02:12:31 +02:00
robcaulk
d59eac3321 revert a79032b 2022-05-29 21:33:38 +02:00
Matthias
f65df4901e Update doc clarity 2022-05-29 20:53:09 +02:00
robcaulk
a79032bf75 fixing bug in training queue 2022-05-29 20:19:32 +02:00
Matthias
056047f635 Fix --help 2022-05-29 20:07:02 +02:00
robcaulk
3f72263278 allow pairs deeper in the queue to get trained if the higher priority pairs dont need training 2022-05-29 20:02:43 +02:00
robcaulk
cc6cae47ec allow pairs deeper in the queue to get trained if the higher priority pairs dont need training 2022-05-29 19:49:43 +02:00
robcaulk
4eb4753e20 allow subdaily retraining for backtesting 2022-05-29 17:44:35 +02:00
froggleston
9a068c0b14 Add test for each analysis group, remove default table output if not indicator-list 2022-05-29 16:25:31 +01:00
froggleston
24b02127ec Update docs 2022-05-29 15:42:34 +01:00
Matthias
e6affcc23e Move parameter file loading to hyper-mixin 2022-05-29 16:39:52 +02:00
Matthias
1ee08d22d2 Delay parameter init
closes #6894
2022-05-29 16:39:52 +02:00
robcaulk
0aa7162055 ensure the prediction is reset in the pair_dict after any trade exit, not just custom_exit 2022-05-29 16:36:46 +02:00
robcaulk
fe36b08fce fix key error in example strat 2022-05-29 16:26:34 +02:00
robcaulk
ce365eb9e3 improve example strat so that it has dynamic buy and sell logic according to original prediction 2022-05-29 14:45:46 +02:00
froggleston
df1c36e5aa Change command name, use load_backtest_stats for strategy resolving 2022-05-29 11:54:27 +01:00
froggleston
c59209a01a Merge branch 'buy_reasons' of github.com:froggleston/freqtrade into buy_reasons 2022-05-29 11:20:32 +01:00
froggleston
e7c5818d16 First pass changes for cleaning up 2022-05-29 11:20:11 +01:00
Matthias
a875a7dc40 Use unified stopPrice for binance 2022-05-29 11:01:01 +02:00
Matthias
f64f2b1ad8 Fix /stats Formatting issue in multi-message settings 2022-05-29 10:34:22 +02:00
robcaulk
4eb29c8810 Dont reset pair priority if it doesnt successfully train 2022-05-28 18:34:26 +02:00
robcaulk
83dd453723 catch errors occuring on background thread, and make sure to keep the ball rolling. Improve pair retraining queue. 2022-05-28 18:26:19 +02:00
robcaulk
e54614fa2f remove remnants of single threaded version, ensure pair queue priority is checked before retraining 2022-05-28 14:55:07 +02:00
robcaulk
2a4d1e2d64 fix bug in setting new timerange for retraining 2022-05-28 12:23:26 +02:00
robcaulk
7870a86e9a fix live retraining bug 2022-05-28 11:38:57 +02:00
robcaulk
0bf915054d handle key check correctly 2022-05-28 11:22:32 +02:00
robcaulk
c5a16e91fb throw user error if user tries to load models but feeds the wrong features (while using PCA) 2022-05-28 11:11:41 +02:00
Matthias
3e7bf6a9ef Remove imports in test_strategy2 2022-05-27 19:31:34 +02:00
Matthias
b04fe5d4ee Simplify test v2 strategy 2022-05-27 19:30:14 +02:00
robcaulk
b8f9c3557b dirty dirty, dont look here (hacking a flag to avoid reloading leverage_tiers in dry/live) 2022-05-27 13:56:34 +02:00
robcaulk
891fb87712 give load_cached_data_for_updating the right flags to avoid redownloading data in dry/live 2022-05-27 13:38:22 +02:00
robcaulk
65fdebab75 let load_pairs_histories load futures candles in live 2022-05-27 13:01:33 +02:00
robcaulk
c080571b7a help futures go dry/live with auto download feature 2022-05-27 12:23:32 +02:00
Matthias
24cf044646 Fix bybit spot mode 2022-05-27 08:18:04 +00:00
robcaulk
8a501831d6 fix the error logic on previous commit 2022-05-27 01:15:55 +02:00
robcaulk
23c30dbc10 add error for user trying to backtest with backtest_period<1 2022-05-27 00:43:52 +02:00
robcaulk
6193205012 fix bug for target_mean/std array merging in backtesting 2022-05-26 21:07:50 +02:00
Matthias
43b7955fc2 Fully rely on pathlib 2022-05-26 19:37:55 +02:00
Matthias
682daa4e94 Reset logging mixin to avoid random test failure 2022-05-26 18:05:40 +02:00
froggleston
145faf9817 Use tmpdir for testing 2022-05-26 11:06:38 +01:00
Matthias
da970cca82 Merge pull request #6888 from stash86/patch-1
fix typo
2022-05-26 06:32:44 +02:00
Stefano Ariestasia
e1c6cf5f91 fix typo 2022-05-26 10:12:50 +09:00
Matthias
537d10c627 Improve some typing 2022-05-25 20:43:43 +02:00
Matthias
3e66275c98 Refactor bot_start to separate function
to be reused further ...
2022-05-25 20:01:21 +02:00
Matthias
023f817179 Improve wording for supported futures exchanges 2022-05-25 19:37:32 +02:00
robcaulk
ff531c416f reduce complexity inside start_download_data() in an effort to appease flake8 2022-05-25 15:31:50 +02:00
robcaulk
d79983c791 try to pass flake8 2022-05-25 14:55:19 +02:00
robcaulk
7593339c14 small cleanup 2022-05-25 14:42:46 +02:00
robcaulk
b79d4e8876 Allow user to go live and start from pretrained models (after a completed backtest) by simply reusing the identifier config parameter while dry/live. 2022-05-25 14:40:32 +02:00
robcaulk
7486d9d9e2 proper validation of freqai config parameters 2022-05-25 12:37:25 +02:00
Matthias
b2968df5dc Fix some type problems 2022-05-25 10:13:37 +00:00
robcaulk
7ff3258607 remove assertions, log error if user has not assigned freqai in config, fix stratify bug 2022-05-25 11:43:45 +02:00
robcaulk
35bed842cb cleanup, add clarity to comments and docstrings 2022-05-25 11:31:03 +02:00
froggleston
21e6c14e1e Final test changes 2022-05-25 10:08:03 +01:00
froggleston
f5c2930889 Presume that pytest will call the cleanup call 2022-05-25 09:58:38 +01:00
froggleston
2873ca6d38 Add cleanup, adjust _print_table for indicators, add rsi to test output 2022-05-25 09:57:12 +01:00
Matthias
9e4c68a5b4 Merge pull request #6887 from freqtrade/ci_strategyTemplates
Run CI against strategy templates
2022-05-25 09:13:18 +02:00
Matthias
43f726ba8f Run CI against different templates 2022-05-25 06:34:05 +00:00
froggleston
edd474e663 Another test fix attempt 2022-05-24 21:21:20 +01:00
froggleston
22b9805e47 Fix all tests 2022-05-24 21:04:23 +01:00
froggleston
3adda84b96 Update docs, add test 2022-05-24 20:27:15 +01:00
Matthias
d6773bc32c Merge pull request #6886 from freqtrade/fix/typing
Fix/typing
2022-05-24 19:41:59 +02:00
Matthias
a8ee77cd5e Simplify backtesting typechecking 2022-05-24 19:13:35 +02:00
robcaulk
58b5abbaa6 improve multithreaded training queue system 2022-05-24 15:28:38 +02:00
robcaulk
31ae2b3060 alleviate FutureWarning in sklearn about ensuring svm model features are passed with identical order 2022-05-24 14:46:16 +02:00
froggleston
8c03ebb78f Fix group 0 table, add pathlib.Path use 2022-05-24 12:48:13 +01:00
robcaulk
255d35976e add priority metadata to pairs to avoid a sync of train time + train period 2022-05-24 12:58:53 +02:00
froggleston
80c6190c05 Fix analyze_commands setup 2022-05-24 11:47:26 +01:00
froggleston
ae1ede58da Fix import order 2022-05-24 11:47:26 +01:00
froggleston
a1a09a802b Add analyze_commands 2022-05-24 11:47:25 +01:00
froggleston
9488e8992d First commit for integrating buy_reasons into FT 2022-05-24 11:47:25 +01:00
robcaulk
059c285425 paying closer attention to managing live retraining on separate thread without affecting prediction of other coins on master thread 2022-05-24 12:01:01 +02:00
Matthias
7f3853bbcd Merge pull request #6883 from freqtrade/makeProcessCandlesTrue
Change default value of process_only_new_candles to True since False …
2022-05-24 07:03:14 +02:00
Matthias
904f094b80 Don't reassign method, but implement it properly 2022-05-24 06:59:54 +02:00
Matthias
23e089061b Merge pull request #6870 from freqtrade/should_exit_list
Should exit list
2022-05-24 06:57:50 +02:00
Matthias
0a713faca8 Fix some type errors 2022-05-24 06:54:16 +02:00
Matthias
f1a72e448a Align interfaces and strategy templates 2022-05-24 06:54:16 +02:00
Matthias
3f68c3b68e Update some types 2022-05-24 06:54:16 +02:00
Matthias
502404c0cc Use pyproject.toml instead of setup.cfg 2022-05-24 06:54:16 +02:00
Matthias
7f4161ff78 Add typehints to strategy wrapper 2022-05-24 06:54:16 +02:00
Matthias
07ec3b27fe Add typing information to retrier decorator 2022-05-24 06:54:16 +02:00
robcaulk
b0d2d13eb1 improve data persistence/mapping for live/dry. This accommodates quick reloads after crash and handles multi-pair cleanly 2022-05-23 21:05:05 +02:00
Matthias
42ae8ba6fb Refactor hyperopt parameters to separate file 2022-05-23 20:18:09 +02:00
robcaulk
e1c068ca66 add config asserts, use .get method with default values for optional functionality, move data_cleaning_* to freqai_interface (away from user custom pred model) since it is controlled by config params. 2022-05-23 12:07:09 +02:00
robcaulk
5c4014ee62 Change default value of process_only_new_candles to True since False is an uncommon usecase for expert strategy devs 2022-05-23 10:24:58 +02:00
robcaulk
dede128648 set process_only_new_candles to true in example strat 2022-05-23 10:15:59 +02:00
robcaulk
ee3cdd0ffe more cleanup 2022-05-23 09:55:58 +02:00
Matthias
063fc5174d Merge pull request #6877 from freqtrade/dependabot/pip/develop/types-filelock-3.2.6
Bump types-filelock from 3.2.5 to 3.2.6
2022-05-23 09:20:50 +02:00
Matthias
34b1231df3 Bump filelock-precommit 2022-05-23 08:32:46 +02:00
dependabot[bot]
b88dfe4297 Bump types-filelock from 3.2.5 to 3.2.6
Bumps [types-filelock](https://github.com/python/typeshed) from 3.2.5 to 3.2.6.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-filelock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-23 06:32:06 +00:00
Matthias
bb1e1a9680 Merge pull request #6880 from freqtrade/dependabot/pip/develop/scikit-learn-1.1.1
Bump scikit-learn from 1.1.0 to 1.1.1
2022-05-23 08:31:55 +02:00
Matthias
2b79398dba Merge pull request #6879 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.16
Bump types-python-dateutil from 2.8.15 to 2.8.16
2022-05-23 08:31:03 +02:00
Matthias
f6e2c2c0da Merge pull request #6875 from freqtrade/dependabot/pip/develop/ccxt-1.83.62
Bump ccxt from 1.83.12 to 1.83.62
2022-05-23 08:30:42 +02:00
Matthias
cc3ec279c2 Bump dateutil types precommit 2022-05-23 06:57:49 +02:00
Matthias
734803aa44 Merge pull request #6882 from freqtrade/dependabot/pip/develop/types-requests-2.27.27
Bump types-requests from 2.27.25 to 2.27.27
2022-05-23 06:57:08 +02:00
dependabot[bot]
596aeec652 Bump scikit-learn from 1.1.0 to 1.1.1
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.1.0...1.1.1)

---
updated-dependencies:
- dependency-name: scikit-learn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-23 04:33:43 +00:00
Matthias
eb5fe9e3ae Merge pull request #6857 from froggleston/develop
Add support for fudging unavailable funding rates, allowing backtesti…
2022-05-23 06:31:51 +02:00
Matthias
66497c28e8 Bump pre-commit requests types 2022-05-23 06:28:11 +02:00
Matthias
c28cdc3d86 Merge pull request #6878 from freqtrade/dependabot/pip/develop/scipy-1.8.1
Bump scipy from 1.8.0 to 1.8.1
2022-05-23 06:26:55 +02:00
Matthias
8973554595 Merge pull request #6876 from freqtrade/dependabot/pip/develop/psutil-5.9.1
Bump psutil from 5.9.0 to 5.9.1
2022-05-23 06:25:37 +02:00
Matthias
26d5b22974 Merge pull request #6881 from freqtrade/dependabot/pip/develop/numpy-1.22.4
Bump numpy from 1.22.3 to 1.22.4
2022-05-23 06:25:13 +02:00
dependabot[bot]
7f5650699e Bump types-requests from 2.27.25 to 2.27.27
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.25 to 2.27.27.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-23 03:01:48 +00:00
dependabot[bot]
34657639f8 Bump numpy from 1.22.3 to 1.22.4
Bumps [numpy](https://github.com/numpy/numpy) from 1.22.3 to 1.22.4.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.22.3...v1.22.4)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-23 03:01:46 +00:00
dependabot[bot]
ff9dcfe789 Bump types-python-dateutil from 2.8.15 to 2.8.16
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.15 to 2.8.16.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-23 03:01:32 +00:00
dependabot[bot]
40f63ae51c Bump scipy from 1.8.0 to 1.8.1
Bumps [scipy](https://github.com/scipy/scipy) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: scipy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-23 03:01:30 +00:00
dependabot[bot]
f819fafa1c Bump psutil from 5.9.0 to 5.9.1
Bumps [psutil](https://github.com/giampaolo/psutil) from 5.9.0 to 5.9.1.
- [Release notes](https://github.com/giampaolo/psutil/releases)
- [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst)
- [Commits](https://github.com/giampaolo/psutil/compare/release-5.9.0...release-5.9.1)

---
updated-dependencies:
- dependency-name: psutil
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-23 03:01:20 +00:00
dependabot[bot]
27019339b5 Bump ccxt from 1.83.12 to 1.83.62
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.83.12 to 1.83.62.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.83.12...1.83.62)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-23 03:01:15 +00:00
robcaulk
3587bd82e1 cleanup superceded code 2022-05-23 00:10:36 +02:00
robcaulk
af0cc21af9 Enable hourly/minute retraining in live/dry. Suppress catboost folder output. Update config + constants + docs to reflect updates. 2022-05-23 00:06:26 +02:00
Matthias
e3beaae8be update hyperopt typing 2022-05-22 19:32:32 +02:00
Matthias
0b5544ef9e Stoploss fill should fill as "filled" notification
Closes #6873
2022-05-22 19:18:12 +02:00
robcaulk
42d95af829 Aggregated commit. Adding support vector machine for outlier detection, improve user interface to dry/live, better standardization, fix various other bugs 2022-05-22 17:51:49 +02:00
Matthias
938a66511a Update Documentation for new confirm_trade_exit behavior 2022-05-22 11:28:11 +02:00
Matthias
3692fcd3d5 Improve exit signal sequence 2022-05-22 11:01:18 +02:00
Matthias
ce3bfd59f5 Add explicit should_sell test 2022-05-22 10:31:29 +02:00
Matthias
b7388557a9 Update interface tests 2022-05-22 10:20:01 +02:00
Matthias
bdb904e714 Should_exit should return all sell signals 2022-05-22 10:17:49 +02:00
Matthias
1315d02437 Fix startup sending "longed" messages for open stoplosses 2022-05-22 09:01:46 +02:00
Matthias
26d394ca74 Add liquidation Price to api response 2022-05-22 08:54:27 +02:00
Matthias
ea8fda0dee Slightly improve test 2022-05-22 08:36:28 +02:00
Matthias
1ff1e3b43d Merge pull request #6869 from freqtrade/update_levtiers
Update leveraged tiers
2022-05-22 08:35:02 +02:00
Matthias
f006978caf Be more explicit in default value 2022-05-21 17:35:49 +02:00
Matthias
681ef13174 Relax dry-run leverage test-case to simplify future updates 2022-05-21 16:23:29 +02:00
Matthias
97abcf4b32 Add documentation for leverage_tiers update 2022-05-21 16:10:00 +02:00
Matthias
963cc17c18 Update leveraged tiers 2022-05-21 16:05:00 +02:00
Matthias
0d388b561b Add test for "combine_funding_and_mark", fix bug 2022-05-21 09:03:30 +02:00
Matthias
2df42a3035 Move "funding fillup" logic to exchange class 2022-05-21 08:50:39 +02:00
Matthias
6bd5535d6c Use exchange method to combine funding and mark candles 2022-05-21 08:31:34 +02:00
Matthias
0e158b66b0 Update docs link 2022-05-21 08:26:44 +02:00
froggleston
c499a92f57 Remove surplus mark columns, and make fillna on funding rate only 2022-05-20 11:48:53 +01:00
Matthias
0138114fc2 Merge pull request #6866 from freqtrade/dry_order_db
Dry orders from db
2022-05-20 12:10:09 +02:00
Matthias
c3e3188c6a Rename variable 2022-05-20 11:30:25 +02:00
Matthias
843bf0631e Remove Sponsored Promotions 2022-05-20 07:14:49 +02:00
Matthias
b3acfb3c6f Bump ccxt to 1.83.12
closes #6849
2022-05-20 06:55:51 +02:00
Matthias
2cf17e04be Init persistence for tests that use dry-run orders 2022-05-20 06:26:16 +02:00
robcaulk
c5ecf94177 move live retraining to separate thread. 2022-05-19 21:15:58 +02:00
Matthias
46ea135b6b Update dry-run considerations 2022-05-19 20:10:11 +02:00
Matthias
219363fffb Check for both ask and bid in SpreadFilter
closes #6865
2022-05-19 19:53:23 +02:00
Matthias
56a73575a1 Add explicit test for order_to_ccxt 2022-05-19 19:29:39 +02:00
robcaulk
1fae6c9ef7 keep model accessible in memory to avoid loading objects from disk during live/dry 2022-05-19 19:27:38 +02:00
robcaulk
67eb94c69d download-data will now check if freqai is active in config, and if so will also download data for corr_pairlist 2022-05-19 17:55:00 +02:00
robcaulk
89eacf2f47 Retrain model if FreqAI found a pretrained model but user strategy is not passing the expected features (user has changed the features in the strategy but has passed a the same config[freqai][identifier]). Logger warning output to user. 2022-05-19 17:15:50 +02:00
Matthias
5e18e51ce0 Fix some tests 2022-05-19 07:03:53 +02:00
Matthias
a3d9384bc0 Remove clean-dry-run code 2022-05-19 06:56:34 +02:00
Matthias
0a95ef6ab2 Don't reset open orders in dry-run on restart 2022-05-19 06:42:38 +02:00
froggleston
363098d32d Fix reversed makr/funding_rate columns 2022-05-18 12:56:43 +01:00
froggleston
736f9f4972 Fix docs and add outer join support for merging funding rates across full timerange 2022-05-18 12:47:37 +01:00
Matthias
d5486f17d8 Update Test to use StrategyV3 2022-05-18 10:57:19 +02:00
மனோஜ்குமார் பழனிச்சாமி
2b61aa282a Removed None in dict.get()
https://stackoverflow.com/a/12631641

Extra Changes: freqtrade\freqtradebot.py:70
freqtrade\plugins\pairlistmanager.py:31
2022-05-18 03:41:10 +05:30
froggleston
c41d4c4f45 Fix leverage docs 2022-05-17 22:37:48 +01:00
froggleston
37e4ede65c Fix flake issues 2022-05-17 22:32:17 +01:00
froggleston
bb758da940 Add support for fudging unavailable funding rates, allowing backtesting of timeranges where futures candles are available, but rates are not 2022-05-17 22:05:33 +01:00
robcaulk
c708dd3186 doc update thanks matthias 2022-05-17 20:46:23 +02:00
Matthias
c81b960791 Fix some typos 2022-05-17 19:58:36 +02:00
robcaulk
db66b82f6f accept open-ended timeranges from user 2022-05-17 19:50:06 +02:00
Matthias
7b9439f2e4 Merge pull request #6854 from eSeR1805/feat_bt_cancel_entry_reporting
BT: Reporting canceled/replaced entry orders
2022-05-17 19:26:44 +02:00
robcaulk
d1d451c27e auto populate features based on a prepended % in the strategy (remove feature assignment from config). Update doc/constants/example strategy to reflect change 2022-05-17 18:15:03 +02:00
robcaulk
8664e8f9a3 create a prediction_models folder where basic prediction models can live (similar to optimize/hyperopt-loss. Update resolver/docs/and gitignore to accommodate change 2022-05-17 17:13:38 +02:00
eSeR1805
34684ec86a Merge branch 'freqtrade:develop' into feat_bt_cancel_entry_reporting 2022-05-17 14:09:57 +03:00
eSeR1805
c6bf6779f8 Update docs BT sample report and details. 2022-05-17 14:09:01 +03:00
eSeR1805
bb7ffd8fbe Update testcases relying on BT results. 2022-05-17 14:08:35 +03:00
eSeR1805
0585b378b3 BT: Report canceled/replaced orders also. 2022-05-17 14:07:42 +03:00
eSeR1805
6e8f24f6a7 BT: track canceled/replaced orders also. 2022-05-17 14:07:02 +03:00
Matthias
8d46e16c46 Merge pull request #6848 from freqtrade/datahandler_case
Datahandler case insensitive
2022-05-17 09:34:11 +02:00
Matthias
1cd8ebc8c8 Merge pull request #6847 from freqtrade/use_Precise
Use precise
2022-05-17 09:33:39 +02:00
Matthias
6fd003c655 Merge pull request #6851 from eSeR1805/feat_bt_cancel_entry_reporting
BT: Reporting canceled trade entries
2022-05-17 07:05:26 +02:00
Matthias
b022680962 Merge pull request #6822 from SmartManoj/patch-10
fixed variable naming style
2022-05-17 06:34:39 +02:00
மனோஜ்குமார் பழனிச்சாமி
7cd0f8a7b1 Merge branch 'develop' into patch-10 2022-05-17 08:07:13 +05:30
eSeR1805
905b24bd4d Update BT report detailing. 2022-05-17 02:04:45 +03:00
eSeR1805
a2a8e4fdc7 Update doc BT sample report. 2022-05-17 02:01:27 +03:00
eSeR1805
99aea454b5 Update testcases to match reporting. 2022-05-17 01:42:48 +03:00
eSeR1805
f2e2e57237 Report trade entries canceled by user. 2022-05-17 01:41:31 +03:00
eSeR1805
fb7c0792c0 Track trade entries canceled by user. 2022-05-17 01:41:01 +03:00
Matthias
76637d3939 Simplify timeframe-transition 2022-05-16 20:10:52 +02:00
Matthias
2e65a1793d Add fallback to load 1M files as well as 1Mo files 2022-05-16 19:48:27 +02:00
Matthias
a1048fb619 Store monthly candles as "Mo" 2022-05-16 19:39:43 +02:00
Matthias
9607d04279 Improve ccxt imports 2022-05-16 19:22:07 +02:00
Matthias
d09b462930 Add rudimentary tests for Precise "builtin operator" workings 2022-05-16 19:21:38 +02:00
Matthias
c8e0fc926d Update to do Builtin Precise math 2022-05-16 19:21:38 +02:00
Matthias
a793cf8f05 Use ccxt's "precise" to do precise math 2022-05-16 19:21:38 +02:00
Matthias
528509f809 Extract get_price_side from get_rate 2022-05-16 19:20:13 +02:00
Matthias
860a15ff40 Merge pull request #6839 from freqtrade/dependabot/pip/develop/plotly-5.8.0
Bump plotly from 5.7.0 to 5.8.0
2022-05-16 19:18:43 +02:00
Matthias
1913565507 Merge pull request #6834 from stash86/patch-1
Missing \n on /help response
2022-05-16 10:39:46 +02:00
Matthias
c54919e4ce Merge pull request #6841 from freqtrade/dependabot/pip/develop/scikit-learn-1.1.0
Bump scikit-learn from 1.0.2 to 1.1.0
2022-05-16 10:02:58 +02:00
Matthias
d6c452a93e Merge pull request #6836 from freqtrade/dependabot/pip/develop/pyjwt-2.4.0
Bump pyjwt from 2.3.0 to 2.4.0
2022-05-16 10:01:59 +02:00
dependabot[bot]
f5183df0f1 Bump scikit-learn from 1.0.2 to 1.1.0
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 1.0.2 to 1.1.0.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.0.2...1.1.0)

---
updated-dependencies:
- dependency-name: scikit-learn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-16 04:37:41 +00:00
dependabot[bot]
bd65236e17 Bump pyjwt from 2.3.0 to 2.4.0
Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.3.0...2.4.0)

---
updated-dependencies:
- dependency-name: pyjwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-16 04:37:25 +00:00
Matthias
36d95a3a30 Merge pull request #6843 from freqtrade/dependabot/pip/develop/mkdocs-material-8.2.15
Bump mkdocs-material from 8.2.14 to 8.2.15
2022-05-16 06:36:52 +02:00
Matthias
f8e9dc0650 Merge pull request #6840 from freqtrade/dependabot/pip/develop/flake8-tidy-imports-4.8.0
Bump flake8-tidy-imports from 4.7.0 to 4.8.0
2022-05-16 06:36:28 +02:00
Matthias
66621d6723 Merge pull request #6838 from freqtrade/dependabot/pip/develop/fastapi-0.78.0
Bump fastapi from 0.76.0 to 0.78.0
2022-05-16 06:36:09 +02:00
Matthias
f015985062 Merge pull request #6837 from freqtrade/dependabot/pip/develop/time-machine-2.7.0
Bump time-machine from 2.6.0 to 2.7.0
2022-05-16 06:34:41 +02:00
Matthias
f1474cea7a Merge pull request #6842 from freqtrade/dependabot/pip/develop/ccxt-1.82.61
Bump ccxt from 1.81.81 to 1.82.61
2022-05-16 06:33:30 +02:00
Matthias
5c5b9534c1 Merge pull request #6844 from freqtrade/dependabot/pip/develop/filelock-3.7.0
Bump filelock from 3.6.0 to 3.7.0
2022-05-16 06:33:15 +02:00
dependabot[bot]
dd1b84f938 Bump filelock from 3.6.0 to 3.7.0
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/py-filelock/compare/3.6.0...3.7.0)

---
updated-dependencies:
- dependency-name: filelock
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-16 03:02:00 +00:00
dependabot[bot]
a8b4066f85 Bump mkdocs-material from 8.2.14 to 8.2.15
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.2.14 to 8.2.15.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.2.14...8.2.15)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-16 03:01:57 +00:00
dependabot[bot]
9e44d69774 Bump ccxt from 1.81.81 to 1.82.61
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.81.81 to 1.82.61.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.81.81...1.82.61)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-16 03:01:53 +00:00
dependabot[bot]
9fc21686ed Bump flake8-tidy-imports from 4.7.0 to 4.8.0
Bumps [flake8-tidy-imports](https://github.com/adamchainz/flake8-tidy-imports) from 4.7.0 to 4.8.0.
- [Release notes](https://github.com/adamchainz/flake8-tidy-imports/releases)
- [Changelog](https://github.com/adamchainz/flake8-tidy-imports/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/flake8-tidy-imports/compare/4.7.0...4.8.0)

---
updated-dependencies:
- dependency-name: flake8-tidy-imports
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-16 03:01:40 +00:00
dependabot[bot]
748055892c Bump plotly from 5.7.0 to 5.8.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.7.0 to 5.8.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.7.0...v5.8.0)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-16 03:01:33 +00:00
dependabot[bot]
47c116a423 Bump fastapi from 0.76.0 to 0.78.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.76.0 to 0.78.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.76.0...0.78.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-16 03:01:28 +00:00
dependabot[bot]
4fc6857d87 Bump time-machine from 2.6.0 to 2.7.0
Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.6.0 to 2.7.0.
- [Release notes](https://github.com/adamchainz/time-machine/releases)
- [Changelog](https://github.com/adamchainz/time-machine/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/time-machine/compare/2.6.0...2.7.0)

---
updated-dependencies:
- dependency-name: time-machine
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-16 03:01:25 +00:00
Stefano Ariestasia
2cb8eecf18 add space 2022-05-16 07:43:36 +09:00
Stefano Ariestasia
e21f6a7787 missing newline 2022-05-16 07:28:40 +09:00
Stefano Ariestasia
36e514e825 Merge branch 'freqtrade:develop' into patch-1 2022-05-16 07:27:11 +09:00
Matthias
8198bfd997 Merge pull request #6833 from freqtrade/python_310_main_versoin
Python 310 main version
2022-05-15 20:01:19 +02:00
Matthias
008ee14889 Improve ci to run on ubuntu 22.04 2022-05-15 19:29:42 +02:00
Matthias
3d36d35e30 Merge pull request #6825 from freqtrade/okx_history
Okx history
2022-05-15 19:27:45 +02:00
Matthias
86af3fe0e7 Update image versions from 3.9 to 3.10 2022-05-15 19:22:12 +02:00
robcaulk
80dcd88abf allow user to run config from anywhere on their system 2022-05-15 17:42:15 +02:00
robcaulk
9e94d28860 add timerange to backtest commnad 2022-05-15 17:42:15 +02:00
robcaulk
e5759d950b fix typo 2022-05-15 17:42:15 +02:00
robcaulk
f4296173e9 use bash visual in doc 2022-05-15 17:42:15 +02:00
robcaulk
717df891b1 use bash visual in doc 2022-05-15 17:42:15 +02:00
robcaulk
a8022c104a give beta testers more information in the doc 2022-05-15 17:42:15 +02:00
robcaulk
a7029e35b5 ensure informative pairs includes any combination of whitelist - corr_pairlist 2022-05-15 17:42:15 +02:00
robcaulk
9b3e5faebe create more flexible whitelist, avoid duplicating whitelist features into corr_pairlist, update docs 2022-05-15 17:42:15 +02:00
robcaulk
22bd5556ed add self-retraining functionality for live/dry 2022-05-15 17:42:15 +02:00
robcaulk
178c2014b0 appease mypy 2022-05-15 17:42:15 +02:00
robcaulk
a4f5811a5b fix flake8 issue in arguments.py 2022-05-15 17:42:15 +02:00
robcaulk
aae233bd6c try passing the check tests 2022-05-15 17:42:15 +02:00
robcaulk
f653ace24b another attempt at fixing datalength bug 2022-05-15 17:42:15 +02:00
robcaulk
b08c0888bb add USERPATH_FREQAIMODELS, remove return values from @abstract methods 2022-05-15 17:42:15 +02:00
robcaulk
b03c7b514d optional style for interfacing freqai with backtesting 2022-05-15 17:42:15 +02:00
robcaulk
e9a7b68bc1 revert constants.py and add changes 2022-05-15 17:42:15 +02:00
Matthias
a0b25938f4 Fix exit_reason assignment in backtesting 2022-05-15 17:41:59 +02:00
Matthias
a8f064a8cb Fix exit_reason assignment in live mode 2022-05-15 17:41:59 +02:00
robcaulk
3020218096 fix bug on backtest timerange 2022-05-15 17:41:34 +02:00
robcaulk
00ff0c9b91 ensure user defined timerange truncates final backtest so that we arent mismatching data lengths upon return to strategy. Rename DataHandler class to FreqaiDataKitchen 2022-05-15 17:41:34 +02:00
robcaulk
66715c5ba4 update doc 2022-05-15 17:41:34 +02:00
robcaulk
def71a0afe auto build full_timerange and self manage training_timerange 2022-05-15 17:41:34 +02:00
robcaulk
764f9449b4 fix logger, debug some flake8 appeasements 2022-05-15 17:41:34 +02:00
robcaulk
29c2d1d189 use logger in favor of print 2022-05-15 17:38:58 +02:00
robcaulk
99f7e44c30 flake8 passing, use pathlib in lieu of os.path to accommodate windows/mac OS 2022-05-15 17:38:58 +02:00
robcaulk
2600ba4e74 remove unused remnants 2022-05-15 17:38:58 +02:00
robcaulk
630d201546 remove trained_stake 2022-05-15 17:38:58 +02:00
robcaulk
b40f8f88ac cleaning and bug fixing 2022-05-15 17:38:58 +02:00
robcaulk
fc837c4daa add freqao backend machinery, user interface, documentation 2022-05-15 17:38:58 +02:00
Matthias
706994340f Fix bad docstring 2022-05-15 17:06:40 +02:00
Matthias
ebab02fce3 Merge pull request #6827 from eSeR1805/fix_readjust_entry_bt_sl
Fix: Refresh SL on entry order replacement
2022-05-15 16:41:18 +02:00
eSeR1805
cf001db396 Merge pull request #1 from xmatthias/bt_stop_attempt
Update stoploss handling for entry-order adjustment
2022-05-15 16:56:40 +03:00
Matthias
18fd3bb333 Update stoploss handling for entry-order adjustment 2022-05-15 15:45:39 +02:00
Matthias
9143e9ecb1 Add some safety measures for new startup_candles verification 2022-05-15 15:12:29 +02:00
Matthias
d60d0f64d2 Revert ohlcv_candle_limit logic for okx 2022-05-14 19:35:06 +02:00
Matthias
116b58e97c add "date_minus_candles" method 2022-05-14 19:30:42 +02:00
Matthias
a947a1316b Add test to ensure stoploss is set properly in live 2022-05-14 17:42:01 +02:00
Matthias
3b14439240 Slightly improve performance of order adjusts
Avoind  2nd call to `get_rate()`.

closes #6821
2022-05-14 16:16:32 +02:00
eSeR1805
c27e0a0a1b Allow SL refresh only if no filled entry orders. 2022-05-14 16:56:56 +03:00
eSeR1805
ec54b47b6e Flake fix. 2022-05-14 16:39:27 +03:00
eSeR1805
1c20fb7638 Refresh open_rate and stoploss on order replacement. 2022-05-14 16:37:04 +03:00
Matthias
5767d652bf Add explicit test and document behavior 2022-05-14 14:18:51 +02:00
Matthias
2a1368d508 Offsetfilter: add number_assets parameter
closes #6824
2022-05-14 14:16:13 +02:00
Matthias
bb1b283d95 Update some ohlcv_candle_limit calls 2022-05-14 13:44:10 +02:00
Matthias
111b04c9e6 Okx - conditional candle-length 2022-05-14 09:51:44 +02:00
Matthias
64668b11da add ohlcv_has_history - disabling kraken downloads 2022-05-14 09:10:38 +02:00
Matthias
8e9384e8e6 Merge pull request #6823 from mkavinkumar1/clean-bt
cleaned up backtesting
2022-05-13 21:00:06 +02:00
Matthias
80ebd8f875 Merge pull request #6820 from SmartManoj/patch-9
Corrected docstring
2022-05-13 19:29:47 +02:00
மனோஜ்குமார் பழனிச்சாமி
64670726a6 flake8 fix 2022-05-13 21:52:26 +05:30
மனோஜ்குமார் பழனிச்சாமி
9d13c87292 cleaned up backtesting
Solves the [bug](https://github.com/freqtrade/freqtrade/runs/6425715015?check_suite_focus=true)
2022-05-13 21:46:25 +05:30
மனோஜ்குமார் பழனிச்சாமி
71a80cab3a fixed variable naming style 2022-05-13 21:19:40 +05:30
மனோஜ்குமார் பழனிச்சாமி
8a3c2c6cad Corrected docstring
Discussed in Discord
2022-05-13 19:32:52 +05:30
Matthias
c299601ece Add warning about OKX futures backtesting data 2022-05-13 07:03:18 +02:00
Matthias
5444f4ee6f Merge pull request #6793 from mkavinkumar1/log
logged balance details
2022-05-12 19:11:28 +02:00
Matthias
891900c186 Merge pull request #6812 from freqtrade/db_migrate
Db migrate
2022-05-11 19:54:31 +02:00
Matthias
1fc041d0d6 Fix formatting issue 2022-05-11 19:39:56 +02:00
Matthias
ae463fcdf2 Merge pull request #6792 from mkavinkumar1/rpc
consistent exchange name
2022-05-11 19:23:36 +02:00
Matthias
7c1838427f Merge pull request #6814 from DJCrashdummy/patch-1
minor polish for explanation of `backtesting --breakdown`
2022-05-11 09:09:32 +02:00
DJCrashdummy
b2b503f043 minor polish for explanation of --breakdown
- corrected the command to fit the explanation
- added a little explanation how to read the weekly & monthly breakdown
2022-05-11 06:26:49 +00:00
DJCrashdummy
8a6a6ec911 corrected minor "typo" in formatting 2022-05-11 06:30:58 +02:00
Matthias
f374c9da70 PR cleanup 2022-05-11 06:30:40 +02:00
Matthias
044afdf7af Add better test scenario 2022-05-10 20:27:24 +02:00
Matthias
31cce741ac Add sequence migration 2022-05-10 07:13:51 +02:00
Matthias
269630e755 Add preliminary documentation for database conversion 2022-05-10 07:13:42 +02:00
Matthias
c19be34e71 Add rudimentary test for db migration 2022-05-09 20:58:40 +02:00
Matthias
0958c06b84 Implement database migration to other system 2022-05-09 20:58:40 +02:00
Matthias
c3b0f6b64b Add feature shell for database conversion 2022-05-09 20:58:40 +02:00
Matthias
0f499469fc Merge pull request #6796 from freqtrade/model_reorg
Model reorg
2022-05-09 20:15:45 +02:00
Matthias
e66e1317dc Merge pull request #6803 from freqtrade/dependabot/pip/develop/types-tabulate-0.8.9
Bump types-tabulate from 0.8.8 to 0.8.9
2022-05-09 08:00:20 +02:00
Matthias
54450bcb8c Merge pull request #6804 from freqtrade/dependabot/pip/develop/ccxt-1.81.81
Bump ccxt from 1.81.43 to 1.81.81
2022-05-09 07:13:18 +02:00
Matthias
35ec657ef1 Bump types-tabulate==0.8.9 precommit 2022-05-09 06:55:01 +02:00
dependabot[bot]
a5beacbdd0 Bump types-tabulate from 0.8.8 to 0.8.9
Bumps [types-tabulate](https://github.com/python/typeshed) from 0.8.8 to 0.8.9.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-tabulate
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 04:53:29 +00:00
Matthias
bfcb8c9b82 Merge pull request #6806 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.15
Bump types-python-dateutil from 2.8.14 to 2.8.15
2022-05-09 06:52:59 +02:00
Matthias
a69b8d2fb6 Merge pull request #6800 from freqtrade/dependabot/pip/develop/pre-commit-2.19.0
Bump pre-commit from 2.18.1 to 2.19.0
2022-05-09 06:52:43 +02:00
dependabot[bot]
2dd655eda0 Bump pre-commit from 2.18.1 to 2.19.0
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 2.18.1 to 2.19.0.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v2.18.1...v2.19.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 04:52:32 +00:00
Matthias
ad81cd280f Merge pull request #6805 from freqtrade/dependabot/pip/develop/flake8-tidy-imports-4.7.0
Bump flake8-tidy-imports from 4.6.0 to 4.7.0
2022-05-09 06:51:40 +02:00
Matthias
162a517411 Merge pull request #6802 from freqtrade/dependabot/pip/develop/fastapi-0.76.0
Bump fastapi from 0.75.2 to 0.76.0
2022-05-09 06:51:21 +02:00
Matthias
5f0c79cc47 Merge pull request #6801 from freqtrade/dependabot/pip/develop/jsonschema-4.5.1
Bump jsonschema from 4.4.0 to 4.5.1
2022-05-09 06:37:29 +02:00
Matthias
4e5a8ce87e Merge pull request #6799 from freqtrade/dependabot/pip/develop/mkdocs-material-8.2.14
Bump mkdocs-material from 8.2.12 to 8.2.14
2022-05-09 06:37:06 +02:00
dependabot[bot]
5080245a73 Bump ccxt from 1.81.43 to 1.81.81
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.81.43 to 1.81.81.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.81.43...1.81.81)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 04:32:48 +00:00
Matthias
0756027e33 BUmp types-python-dateutil precommit 2022-05-09 06:32:28 +02:00
Matthias
5f7b19cb56 Merge pull request #6798 from freqtrade/dependabot/pip/develop/cryptography-37.0.2
Bump cryptography from 37.0.1 to 37.0.2
2022-05-09 06:31:44 +02:00
dependabot[bot]
69b79cd799 Bump types-python-dateutil from 2.8.14 to 2.8.15
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.14 to 2.8.15.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 03:11:16 +00:00
dependabot[bot]
1ae74c1197 Bump flake8-tidy-imports from 4.6.0 to 4.7.0
Bumps [flake8-tidy-imports](https://github.com/adamchainz/flake8-tidy-imports) from 4.6.0 to 4.7.0.
- [Release notes](https://github.com/adamchainz/flake8-tidy-imports/releases)
- [Changelog](https://github.com/adamchainz/flake8-tidy-imports/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/flake8-tidy-imports/compare/4.6.0...4.7.0)

---
updated-dependencies:
- dependency-name: flake8-tidy-imports
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 03:11:12 +00:00
dependabot[bot]
77a22a6b1c Bump fastapi from 0.75.2 to 0.76.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.75.2 to 0.76.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.75.2...0.76.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 03:10:38 +00:00
dependabot[bot]
74b309cf50 Bump jsonschema from 4.4.0 to 4.5.1
Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.4.0 to 4.5.1.
- [Release notes](https://github.com/python-jsonschema/jsonschema/releases)
- [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.4.0...v4.5.1)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 03:10:27 +00:00
dependabot[bot]
30cc8e92a1 Bump mkdocs-material from 8.2.12 to 8.2.14
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.2.12 to 8.2.14.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.2.12...8.2.14)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 03:10:15 +00:00
dependabot[bot]
df48399a90 Bump cryptography from 37.0.1 to 37.0.2
Bumps [cryptography](https://github.com/pyca/cryptography) from 37.0.1 to 37.0.2.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/37.0.1...37.0.2)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 03:10:07 +00:00
Matthias
511afbcd9d Merge pull request #6797 from lukeingalls/patch-1
then -> than
2022-05-08 21:50:41 +02:00
Luke Ingalls
f71b2624ab then -> than 2022-05-08 10:07:22 -07:00
Matthias
30d6eeffd0 Fix migration bug 2022-05-08 17:49:13 +02:00
Matthias
b58e811b14 Move trade/order Models to their own class 2022-05-08 17:45:20 +02:00
Matthias
af1a5e0449 Extract base and Pairlock from models file 2022-05-08 17:38:06 +02:00
Matthias
3221726d85 Update migration to use boolean value
closes #6794
2022-05-08 17:29:42 +02:00
Matthias
ab91758c7e Merge pull request #6790 from eSeR1805/profit_reporting
Report profit only on filled entries.
2022-05-08 17:25:42 +02:00
Matthias
4a7515e66a Add test for 0.0 case 2022-05-08 16:04:06 +02:00
Matthias
1436bc1a70 Update list-strategies command
closes #6795
2022-05-08 15:30:44 +02:00
மனோஜ்குமார் பழனிச்சாமி
f43ae0ea43 logged balance details 2022-05-08 13:53:07 +05:30
மனோஜ்குமார் பழனிச்சாமி
d79b90a98f consistent exchange name 2022-05-08 12:46:58 +05:30
Matthias
45b328af2e explicitly call cleanup when cleaning backtest 2022-05-08 08:11:39 +02:00
eSeR1805
bfc7898654 Report profit only on filled entries. 2022-05-07 21:56:22 +03:00
Matthias
c9498d0117 Merge pull request #6692 from eSeR1805/feat_readjust_entry
Feature: Readjust Entry Order
2022-05-07 20:11:20 +02:00
Matthias
277e07589e update/fix some comments and docs 2022-05-07 17:47:37 +02:00
eSeR1805
eca8d16c61 Minor fix and enhancement for TC51. 2022-05-07 17:31:56 +03:00
Matthias
f5f599c7f0 Add LowProfitPairs only_per_side option 2022-05-07 15:25:15 +02:00
Matthias
26648e54cc Merge pull request #6789 from freqtrade/okx_positionmode
Okx positionmode
2022-05-07 14:30:44 +02:00
Matthias
dc0c1bf87d Only fetch accounts when authenticated. 2022-05-07 13:17:27 +02:00
Matthias
149704e748 Fix wrong type 2022-05-07 11:39:47 +02:00
Matthias
6fdcf3a10a Support both position modes on OKX 2022-05-07 10:58:41 +02:00
Matthias
2da284b921 Properly type side for create_order 2022-05-07 10:02:54 +02:00
Matthias
68a97a898d Disable scheduled notification in CI 2022-05-07 08:04:43 +02:00
Matthias
108903f7f0 Add DCA order adjust test 2022-05-06 19:50:10 +02:00
Matthias
70bac41d89 Add more backtest test scenarios 2022-05-06 19:50:10 +02:00
eSeR1805
182a6f475d Minor typos. 2022-05-06 10:13:29 +03:00
Matthias
5b3eaa3003 Ensure advanced strategy template is runnable 2022-05-06 06:42:08 +02:00
Matthias
d11c44940e Slightly reword docs
remove some Note-boxes - people tend to skip these.
2022-05-06 06:42:01 +02:00
Matthias
2d9be6dace move open_rate updating to close_bt_order 2022-05-05 19:50:16 +02:00
eSeR1805
29f1edbde7 Cleanup. Remove stray new line. 2022-05-05 12:24:32 +03:00
eSeR1805
495708df76 Merge branch 'develop' into feat_readjust_entry 2022-05-05 12:20:09 +03:00
eSeR1805
2bed0eab0c BT: Update trade open_rate on first filled order. 2022-05-05 12:19:05 +03:00
eSeR1805
25c74e26d1 Models:Trade: Revert trade open_rate update. 2022-05-05 12:18:19 +03:00
Matthias
1a37c6ff42 Bump ccxt to 1.81.43
fixes bug in okx live liquidation pricing
2022-05-05 07:05:00 +02:00
eSeR1805
ae01afdd0f Models:Trade: Fix open_rate updates. 2022-05-04 22:05:53 +03:00
eSeR1805
496bf84e3a Merge branch 'develop' into feat_readjust_entry 2022-05-04 21:43:41 +03:00
eSeR1805
dbecc097df Models:Trade: Update trade open_rate based on lastest order. 2022-05-04 21:34:45 +03:00
Sam Germain
10cbb5e67c test_exchange::test_taker_or_maker fixes 2022-05-04 00:10:09 -06:00
Sam Germain
86ad5dd02a test_exchange::test_taker_or_maker fixes 2022-05-04 00:08:41 -06:00
Sam Germain
dac9931b4a test_create_dry_run_order_fees 2022-05-03 23:56:49 -06:00
Sam Germain
5d9aee6b7e test_taker_or_maker 2022-05-03 23:56:49 -06:00
Sam Germain
e8803477df exchange/exchange add param taker_or_maker to add_dry_order_fee 2022-05-03 23:56:40 -06:00
Matthias
b73f770955 Merge pull request #6778 from markdregan/patch-1
Add bot_loop_start() call in plotting.py
2022-05-04 07:24:32 +02:00
Matthias
b2f33944ec Add preliminary backtesting test 2022-05-04 07:13:02 +02:00
Matthias
5c82cce06c Fix new test failures 2022-05-04 06:40:12 +02:00
Mark Regan
ce035a5947 Add bot_loop_start() call in plotting.py
plotting.py was missing a call to strategy.bot_loop_start() resulting in strategies using this callback to not work.

Made changes and confirmed plotting now works for strategies using bot_loop_start() callback.

LMK if anything else needed for PR.
2022-05-03 23:34:12 +01:00
Matthias
2705096ce6 Merge pull request #6777 from freqtrade/fix/contractsizefee
Fix fee handling for futures trades
2022-05-03 20:34:37 +02:00
Matthias
091cb4fb8d Reduce no stake amount verbosity
closes #6768
2022-05-03 19:42:17 +02:00
Matthias
eb996a152a Fix fee handling for futures trades 2022-05-03 19:06:17 +02:00
Matthias
65ab6d2468 Merge pull request #6771 from talentoscope/patch-1
Update setup.sh
2022-05-03 08:12:29 +02:00
talentoscope
8e1cdb9103 Update setup.sh
Added curl to dependencies for Debian systems
2022-05-02 23:20:13 +01:00
Matthias
88c8fe5570 Merge pull request #6715 from nicolaspapp/feat/relative-drawdown
Add relative drawdown
2022-05-02 21:09:14 +02:00
Matthias
7a57629918 Keep Backtest-metrics aligned 2022-05-02 20:08:38 +02:00
Matthias
3f64c6307f Maintain compatibility with old backtest results 2022-05-02 20:01:44 +02:00
Matthias
1e2523af61 Fix some assumptions on the data
available_capital is not guaranteed to be available, while dry-run-wallet is.
2022-05-02 19:44:14 +02:00
eSeR1805
52d510c331 Merge branch 'develop' into feat_readjust_entry 2022-05-02 18:30:05 +03:00
eSeR1805
4c74601073 Freqtradebot: Cleanup stray debug messages. 2022-05-02 18:22:41 +03:00
eSeR1805
59397cdd19 Freqtradebot: Fix full cancel logging location. 2022-05-02 18:09:28 +03:00
eSeR1805
b83cd95a02 Tests: add basic testcases for entry adjustment. 2022-05-02 18:07:48 +03:00
Matthias
c1b10bbb91 Merge pull request #6763 from freqtrade/dependabot/pip/develop/mypy-0.950
Bump mypy from 0.942 to 0.950
2022-05-02 09:13:08 +02:00
Matthias
46993ce3ae Merge pull request #6761 from freqtrade/dependabot/pip/develop/types-tabulate-0.8.8
Bump types-tabulate from 0.8.7 to 0.8.8
2022-05-02 09:12:52 +02:00
Matthias
2a6efab8a2 Don't use deprecated abstractclassmethod decorator 2022-05-02 06:24:52 +00:00
Matthias
38dffe1ed6 types-tabulate - pre-commit update 2022-05-02 08:11:05 +02:00
dependabot[bot]
24ce90ba9b Bump types-tabulate from 0.8.7 to 0.8.8
Bumps [types-tabulate](https://github.com/python/typeshed) from 0.8.7 to 0.8.8.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-tabulate
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 06:00:02 +00:00
Matthias
541ee436c5 Merge pull request #6759 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.36
Bump sqlalchemy from 1.4.35 to 1.4.36
2022-05-02 07:59:30 +02:00
Matthias
725706beab Merge pull request #6765 from freqtrade/dependabot/pip/develop/types-requests-2.27.25
Bump types-requests from 2.27.20 to 2.27.25
2022-05-02 07:59:14 +02:00
Matthias
24cb40fe98 Merge pull request #6758 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.14
Bump types-python-dateutil from 2.8.12 to 2.8.14
2022-05-02 07:24:32 +02:00
Matthias
e3c298e892 Merge pull request #6766 from freqtrade/dependabot/pip/develop/jinja2-3.1.2
Bump jinja2 from 3.1.1 to 3.1.2
2022-05-02 07:11:19 +02:00
dependabot[bot]
67dd9be95a Bump sqlalchemy from 1.4.35 to 1.4.36
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.35 to 1.4.36.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 05:00:17 +00:00
Matthias
bd07d356bd Merge pull request #6762 from freqtrade/dependabot/pip/develop/cryptography-37.0.1
Bump cryptography from 36.0.2 to 37.0.1
2022-05-02 06:59:27 +02:00
Matthias
71ae92274d Bump pre-commit dependency 2022-05-02 06:45:42 +02:00
Matthias
49c1b310c2 Bump pre-commit types 2022-05-02 06:44:30 +02:00
dependabot[bot]
ba28fa6c3c Bump cryptography from 36.0.2 to 37.0.1
Bumps [cryptography](https://github.com/pyca/cryptography) from 36.0.2 to 37.0.1.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/36.0.2...37.0.1)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 04:31:35 +00:00
dependabot[bot]
9de0652b2c Bump jinja2 from 3.1.1 to 3.1.2
Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.1.1...3.1.2)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 04:31:34 +00:00
Matthias
13dc0a0b4d Merge pull request #6764 from freqtrade/dependabot/pip/develop/ccxt-1.81.16
Bump ccxt from 1.80.61 to 1.81.16
2022-05-02 06:30:11 +02:00
Matthias
3f25fb2139 Merge pull request #6760 from freqtrade/dependabot/pip/develop/mkdocs-material-8.2.12
Bump mkdocs-material from 8.2.10 to 8.2.12
2022-05-02 06:29:37 +02:00
dependabot[bot]
093bea4230 Bump types-requests from 2.27.20 to 2.27.25
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.20 to 2.27.25.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 03:01:34 +00:00
dependabot[bot]
73aafb886b Bump ccxt from 1.80.61 to 1.81.16
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.80.61 to 1.81.16.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.80.61...1.81.16)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 03:01:33 +00:00
dependabot[bot]
4990534bf4 Bump mypy from 0.942 to 0.950
Bumps [mypy](https://github.com/python/mypy) from 0.942 to 0.950.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v0.942...v0.950)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 03:01:22 +00:00
dependabot[bot]
3d730661ee Bump mkdocs-material from 8.2.10 to 8.2.12
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.2.10 to 8.2.12.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.2.10...8.2.12)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 03:01:11 +00:00
dependabot[bot]
a0e27d82aa Bump types-python-dateutil from 2.8.12 to 2.8.14
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.12 to 2.8.14.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 03:01:00 +00:00
eSeR1805
04c51d2d1a Merge branch 'develop' into feat_readjust_entry 2022-05-01 21:42:15 +03:00
Nicolas Papp
7160f9085a Update summary examples 2022-05-01 12:32:12 -03:00
Nicolas Papp
f9244aad92 Fix on max drawdown formula to match tests 2022-05-01 12:25:53 -03:00
eSeR1805
4e43194dfe BT: Refactor open order management. 2022-05-01 18:06:20 +03:00
Matthias
582e30bca6 Merge pull request #6716 from freqtrade/pairlocks_direction
Pairlocks direction
2022-05-01 17:04:20 +02:00
Matthias
910addd02b Merge pull request #6753 from freqtrade/download_prepend
Download prepend
2022-05-01 15:15:16 +02:00
Matthias
995c48b642 Merge branch 'develop' into pairlocks_direction 2022-05-01 14:59:04 +02:00
Matthias
2cedbe5704 Fix documentation mishap 2022-05-01 14:50:36 +02:00
eSeR1805
9d205132d0 Revert unintended comment change. 2022-05-01 12:10:11 +03:00
eSeR1805
8c19953cdd Quick exit when order should be maintained. 2022-05-01 12:08:19 +03:00
Matthias
53a2f55cf0 Merge branch 'develop' into pr/nicolaspapp/6715 2022-05-01 10:03:10 +02:00
Matthias
d5fc923dcb Properly validate stoploss existence for optimize commands
closes #6740
2022-05-01 09:53:46 +02:00
Matthias
0c921e0116 Reorder api_backtesting test sequence 2022-04-30 20:08:40 +02:00
Matthias
5c1ac3cf95 Fix caching bug with freqUI backtesting 2022-04-30 19:55:13 +02:00
Matthias
93591f2a7b Merge pull request #6748 from SmartManoj/patch-8
Update PULL_REQUEST_TEMPLATE.md
2022-04-30 17:46:05 +02:00
Matthias
8b5d454b50 Fix subtle bug in trades download 2022-04-30 17:44:57 +02:00
Matthias
e49b3ef051 Improve message formatting 2022-04-30 17:35:11 +02:00
Matthias
f6a7e6b785 Add prepend option to download-data 2022-04-30 17:32:50 +02:00
Matthias
11d447cd5a Add support for download-data "until" 2022-04-30 15:42:41 +02:00
Matthias
e4df2b0b96 Revert unwanted changes 2022-04-30 14:55:52 +02:00
Matthias
4580127fa8 Small refactor 2022-04-30 14:51:57 +02:00
Matthias
c6c569b772 chore: split BTAnalyais to metrics 2022-04-30 14:47:27 +02:00
Matthias
4262f84744 Merge branch 'develop' into pr/nicolaspapp/6715 2022-04-30 14:22:18 +02:00
Matthias
2acb68e6e2 Move hyperopt-loss functions to their own package 2022-04-30 13:59:23 +02:00
eSeR1805
3be2afdd88 Merge branch 'develop' into feat_readjust_entry 2022-04-30 13:39:23 +03:00
eSeR1805
ad0c5d9440 Refactor entry adjustment for backtesting. 2022-04-30 13:38:17 +03:00
eSeR1805
f9977c26e7 Full cancel only for non DCA trades. 2022-04-30 12:55:03 +03:00
Matthias
bfae732ba4 Merge pull request #6627 from samgermain/bot-start
Added bot_start callback to strategy interface
2022-04-30 09:14:51 +02:00
Matthias
09b74cebce Move edge bot_loop_start to edge_cli
(otherwise it's called twice when running trade mode with edge on).
2022-04-30 08:55:07 +02:00
Sam Germain
8756e7d9a1 flake8 linting 2022-04-29 23:35:08 -06:00
Sam Germain
4a6f1e90c3 Merge branch 'develop' into bot-start 2022-04-29 22:23:42 -06:00
Sam Germain
23431a7106 removed invalid plotting and test_default_strategy tests for bot_start, edited edge test 2022-04-29 22:21:22 -06:00
Sam Germain
788d9f5b55 updated bot_start documentation with working example 2022-04-29 22:20:26 -06:00
Matthias
9029833c8c Merge pull request #6750 from erdieee/develop
Fix config_examples typo
2022-04-29 20:42:24 +02:00
erdieee
f23faac368 Fix config_examples typo 2022-04-29 20:10:50 +02:00
Matthias
43049e0465 Evict cache if parameter file changed
closes #6735
2022-04-29 19:44:17 +02:00
Matthias
fbd142844f Refactor bt-caching stuff to it's own module 2022-04-29 19:37:13 +02:00
மனோஜ்குமார் பழனிச்சாமி
f96c552c46 Update PULL_REQUEST_TEMPLATE.md
Added instructions as comments
2022-04-29 22:14:02 +05:30
Matthias
b60411b918 Merge pull request #6744 from freqtrade/orjson
Use ORJSON for http responses
2022-04-29 17:58:42 +02:00
Matthias
da7a6f58f9 Revert requiring stoploss for backtest/hyperopt 2022-04-29 17:46:33 +02:00
eSeR1805
09089b160e Merge branch 'develop' into feat_readjust_entry 2022-04-29 13:02:38 +03:00
Matthias
b6bee45e82 Exclude user_data from isort 2022-04-29 09:54:54 +00:00
Matthias
48ff788e82 Clarify that stoploss is required
closes #6740
2022-04-29 09:53:05 +00:00
Matthias
21df1b0db3 Use ORJSON for http responses 2022-04-29 07:17:31 +02:00
eSeR1805
17650d7e60 Maintain existing order. Update functionality and documentation 2022-04-29 00:10:17 +03:00
eSeR1805
eb23170c43 Merge branch 'develop' into feat_readjust_entry 2022-04-28 23:06:52 +03:00
Matthias
d1a61f9c61 Don't start futures backtest if leverage-tiers don't contain pair 2022-04-28 20:05:19 +02:00
Matthias
cb5c3316d1 Simplify log output 2022-04-28 19:43:52 +02:00
Matthias
4063ab27cf Merge pull request #6728 from turrisxyz/setup-permissions
chore: Set permissions for GitHub actions
2022-04-28 16:23:06 +02:00
Matthias
8962bffbe0 Merge branch 'develop' into setup-permissions 2022-04-28 14:51:33 +02:00
Matthias
4c95996069 Add Permissions for notify-complete job 2022-04-28 14:50:50 +02:00
Matthias
64072f76b9 Don't fail scheduled ci tasks due to notification 2022-04-28 14:40:47 +02:00
Matthias
e0d86307cb Merge pull request #6732 from freqtrade/remove_duplicate_liqprice_call
Don't call interest_rate and isolated_liq twice
2022-04-28 07:38:32 +02:00
Matthias
2ef1181e16 Simplify trade __repr__ 2022-04-28 07:33:30 +02:00
Matthias
1e83589641 Fix hyperopt 2022-04-28 06:59:03 +02:00
Matthias
ca49821df0 Fix race condition for loop 2022-04-28 06:29:14 +02:00
Matthias
46855221aa Fix rounding issue with contract-sized pairs for dry-run orders 2022-04-27 19:58:19 +02:00
Matthias
220927289d Update documentation to highlight futures supported exchanges 2022-04-27 19:10:04 +02:00
Matthias
2c0a7c5d74 Don't call interest_rate and isolated_liq twice 2022-04-27 17:13:58 +02:00
Matthias
30c9dc6975 Fix exit-signa being assigned when tag is set but no signal is present. 2022-04-27 13:53:11 +02:00
Matthias
ad7fbfab1b Slightly improved styling 2022-04-27 13:27:33 +02:00
Matthias
415dcc6a87 Merge pull request #6729 from rokups/rk/exit_tag
Add 'exit_tag' parameter to 'custom_exit_price' callback.
2022-04-27 07:07:28 +02:00
Matthias
108f11b1d7 Fix docs typos 2022-04-27 06:42:56 +02:00
Rokas Kupstys
6d99222320 Add 'exit_tag' parameter to 'custom_exit_price' callback. 2022-04-26 10:01:51 +03:00
Sam Germain
a35dc843ea removed asyncio from bot_start example 2022-04-25 22:39:58 -06:00
Nicolas Papp
bc5048e4f3 Update to backtesting.md 2022-04-25 23:50:47 -03:00
naveen
4cccf31a3e chore: Set permissions for GitHub actions
Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
2022-04-26 01:07:59 +00:00
Sam Germain
7f035a9d53 added docs for bot_start 2022-04-25 17:59:50 -06:00
Sam Germain
810e190e16 added tests for bot_start 2022-04-25 17:48:57 -06:00
Sam Germain
e76c6e8ad3 added bot_start call to edge_positioning.__init__ 2022-04-25 17:48:57 -06:00
Sam Germain
e09b4498fa added bot_start call to plot/plotting 2022-04-25 17:48:57 -06:00
Sam Germain
4fd904e0a9 added bot_start to backtesting 2022-04-25 17:48:57 -06:00
Sam Germain
d92761b2b1 Revert "strategy callback on_whitelist_update"
This reverts commit 39798dc1192161c3060830dd4684571aa86b7821.
2022-04-25 17:48:43 -06:00
Sam Germain
bf7da35e31 strategy callback on_whitelist_update 2022-04-25 17:48:07 -06:00
Sam Germain
0b90e1d309 Added bot_start callback to strategy interface 2022-04-25 17:47:12 -06:00
Matthias
44000ae0b3 Fix CAGR missing for old results 2022-04-25 17:37:25 +02:00
Matthias
246a336f56 Merge pull request #6726 from froggleston/bt_concat
Move df append to pd concat
2022-04-25 16:03:27 +02:00
Matthias
e38c4883dc Merge pull request #6725 from freqtrade/cagr
Add CAGR calculation to backtesting
2022-04-25 16:02:39 +02:00
Matthias
9a5a57d848 Merge pull request #6724 from freqtrade/pre-commit-additional_updates
Check pre-commit verison updates
2022-04-25 14:57:45 +02:00
froggleston
431c539cbd Fix isort import order 2022-04-25 10:42:24 +01:00
Matthias
4444259078 Fix hyperopt-loss interface to enforce kwargs 2022-04-25 11:33:18 +02:00
froggleston
580da21dda Move df append to pd concat 2022-04-25 10:31:19 +01:00
Matthias
2b3f683960 Update pre-commit to exclude build-helpers 2022-04-25 11:23:45 +02:00
Matthias
500fdc2759 run mypy also against tests 2022-04-25 11:12:35 +02:00
Matthias
4143ebbeae Add CAGR calculation to backtesting 2022-04-25 10:51:11 +02:00
Matthias
fc118d0e95 Re-align dependencies 2022-04-25 10:19:31 +02:00
Matthias
6d576bc02d Check pre-commit verison updates 2022-04-25 10:18:04 +02:00
Matthias
7b02114ad2 Restrict trading pairs with too low precision
closes #6606
2022-04-25 09:49:51 +02:00
Matthias
86b3aac9ba Fix FTX not fetching the very latest data 2022-04-25 08:38:02 +02:00
Matthias
f45bafdb16 Merge pull request #6723 from freqtrade/strategy_v1_remove
Strategy v1 remove
2022-04-25 08:26:35 +02:00
Matthias
14a0dadd01 Merge pull request #6718 from freqtrade/dependabot/pip/develop/pytest-7.1.2
Bump pytest from 7.1.1 to 7.1.2
2022-04-25 08:23:34 +02:00
Matthias
f0c816f9e3 Merge pull request #6719 from freqtrade/dependabot/pip/develop/pymdown-extensions-9.4
Bump pymdown-extensions from 9.3 to 9.4
2022-04-25 07:43:30 +02:00
Matthias
ad6e5c5312 Test informative fallback again 2022-04-25 07:41:51 +02:00
Matthias
5ff2261b74 Improve test to explicitly test for dates 2022-04-25 07:32:32 +02:00
Matthias
9bc6bbe472 Improve test for max_drawdown calculations 2022-04-25 07:23:16 +02:00
Matthias
9bb0f1f675 Move legacy strategy to "broken strats" folder 2022-04-25 07:11:32 +02:00
Matthias
ec2582a4ae Update tests to no longer use Strategy V1 2022-04-25 07:02:09 +02:00
Matthias
562e36c3ec Remove Interface V1 support 2022-04-25 07:01:27 +02:00
dependabot[bot]
b4afbb0b0a Bump pymdown-extensions from 9.3 to 9.4
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 9.3 to 9.4.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/9.3...9.4)

---
updated-dependencies:
- dependency-name: pymdown-extensions
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 04:54:53 +00:00
Matthias
4ee862c7e3 Merge pull request #6717 from freqtrade/dependabot/pip/develop/ccxt-1.80.61
Bump ccxt from 1.79.81 to 1.80.61
2022-04-25 06:54:16 +02:00
Matthias
1aa07a0fe1 Merge pull request #6722 from freqtrade/dependabot/pip/develop/types-requests-2.27.20
Bump types-requests from 2.27.19 to 2.27.20
2022-04-25 06:54:03 +02:00
Matthias
ad17dce746 Merge pull request #6721 from freqtrade/dependabot/pip/develop/mkdocs-material-8.2.10
Bump mkdocs-material from 8.2.9 to 8.2.10
2022-04-25 06:53:33 +02:00
Matthias
5cc5d77b5f Merge pull request #6720 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.12
Bump types-python-dateutil from 2.8.11 to 2.8.12
2022-04-25 06:53:13 +02:00
dependabot[bot]
399be6f4e5 Bump types-requests from 2.27.19 to 2.27.20
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.19 to 2.27.20.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 03:17:53 +00:00
dependabot[bot]
9b39c83586 Bump mkdocs-material from 8.2.9 to 8.2.10
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.2.9 to 8.2.10.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.2.9...8.2.10)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 03:17:44 +00:00
dependabot[bot]
eee9fbb669 Bump types-python-dateutil from 2.8.11 to 2.8.12
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.11 to 2.8.12.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 03:17:38 +00:00
dependabot[bot]
5bfa2186a7 Bump pytest from 7.1.1 to 7.1.2
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.1.1 to 7.1.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.1.1...7.1.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 03:17:29 +00:00
dependabot[bot]
46ac46a5d3 Bump ccxt from 1.79.81 to 1.80.61
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.79.81 to 1.80.61.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.79.81...1.80.61)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 03:17:23 +00:00
Nicolas Papp
e8aec967dd Update on note 2022-04-24 17:42:52 -03:00
Nicolas Papp
086cc6be93 Correction on tests 2022-04-24 17:37:09 -03:00
Matthias
4de0fdbfca Minor edits found during review 2022-04-24 14:43:30 +02:00
Matthias
6623192108 improve doc wording 2022-04-24 14:39:13 +02:00
Matthias
737bdfe844 Use "side" parameter when calling Pairlocks 2022-04-24 14:33:24 +02:00
Matthias
144e4da96e Update stoploss guard tests 2022-04-24 14:33:24 +02:00
Matthias
b0a8bf3025 Show lock side 2022-04-24 14:33:24 +02:00
Matthias
4942d73693 update pairlock tests 2022-04-24 14:33:24 +02:00
Matthias
845f960a4e realign pairlock naming to side 2022-04-24 14:33:24 +02:00
Matthias
fc201bb4ff implement pairlock side further 2022-04-24 14:33:24 +02:00
Matthias
420836b1b2 Update test naming 2022-04-24 14:33:24 +02:00
Matthias
7c79d937e0 Properly type "side" parameter 2022-04-24 14:33:24 +02:00
Matthias
b7cada1edd Convert ProtectionReturn to dataclass 2022-04-24 14:33:24 +02:00
Matthias
9e199165b4 Update protection-interface to support per-side locks 2022-04-24 14:33:24 +02:00
Matthias
6ff3b178b0 Add direction column to pairlocks 2022-04-24 14:33:24 +02:00
Matthias
25c6c5e326 Update backtest sell terminology to exit 2022-04-24 14:30:50 +02:00
Matthias
3c17409bd7 Update buy to entry in backtesting 2022-04-24 14:28:15 +02:00
Matthias
3637549a5e Merge pull request #6714 from froggleston/develop
Update advanced backtesting docs to match fixed buy_reasons script
2022-04-23 19:25:58 +02:00
froggleston
acec564014 Update advanced backtesting docs to match fixed buy_reasons script 2022-04-23 17:18:38 +01:00
Nicolas Papp
0f943c482b PEP8 code compliance 2022-04-23 13:15:14 -03:00
Matthias
8cac0a47cc Fix joblib being in wrong requirements 2022-04-23 17:08:34 +02:00
Matthias
2d07cbce59 Fix bad pre-commit installation
closes #6713
2022-04-23 17:05:41 +02:00
Matthias
0807d3106f Remove unused import 2022-04-23 15:34:40 +02:00
Matthias
6408590a73 Merge pull request #6712 from freqtrade/ci/speed
Speed up ci by running coverage only where necessary
2022-04-23 15:01:19 +02:00
Matthias
12d03e6a91 Remove unused test methods 2022-04-23 14:53:47 +02:00
Matthias
d4e12371c2 Merge pull request #6558 from samgermain/recursive-strategy-folder
Recursively search subdirectories in config['user_data_dir']/strategies for a strategy
2022-04-23 14:23:53 +02:00
Matthias
b1ca47e3d6 Merge pull request #6707 from koradiyakaushal/develop
Ref: timeseries friendly merge_ordered in merge_informative_pair func…
2022-04-23 14:22:23 +02:00
Matthias
3586c2e984 Windows no random order 2022-04-23 14:22:06 +02:00
Matthias
c1a7fc873d Speed up ci by running coverage only where necessary 2022-04-23 11:47:10 +02:00
Matthias
f2912f8815 Improve mypy runs 2022-04-23 11:31:12 +02:00
Matthias
a2af7b4fd8 Test non-ffill approach 2022-04-23 11:25:20 +02:00
Matthias
1120392f39 Fix pre-commit indentation 2022-04-23 11:22:00 +02:00
Matthias
84f5a4d5bc Fix indentation 2022-04-23 10:51:24 +02:00
Matthias
30f314d580 windows compatibility of test 2022-04-23 10:44:11 +02:00
Matthias
89f16ad3a5 Merge pull request #6543 from froggleston/v3_fixes
Add support for storing buy candle indicator rows in backtesting results
2022-04-23 09:45:11 +02:00
Matthias
5a90d5ece6 Fix docstring quotes 2022-04-23 09:44:04 +02:00
Matthias
7328553c0b Merge pull request #6563 from italodamato/opt-ask-force-new-points
Optimize only new points
2022-04-23 09:43:33 +02:00
Matthias
580a2c6545 Don't repeat backtest-storing 2022-04-23 09:23:53 +02:00
Matthias
aa5345190e Test recursive strategy-listing 2022-04-23 09:19:18 +02:00
Matthias
f1f4846053 Merge branch 'develop' into pr/samgermain/6558 2022-04-23 09:16:28 +02:00
Matthias
ba92e09b7b list-strategies should find recursively as well 2022-04-23 09:11:50 +02:00
Matthias
c6927a1501 Fix argument spelling 2022-04-23 09:10:40 +02:00
Matthias
dff9d52b30 Remove hints on no longer used option, add very primitive test 2022-04-23 08:51:52 +02:00
froggleston
2fc4e5e117 Fix weird removal of comma 2022-04-22 18:54:02 +01:00
froggleston
b8ddf2d5cd Update docs 2022-04-22 18:49:28 +01:00
froggleston
767592a1d6 Add signals enum to 'export' cli option 2022-04-22 18:46:12 +01:00
Matthias
7f60364f63 Add doc-page to index 2022-04-22 06:38:51 +02:00
Patel Kaushal
ba305e93ed Ref: timeseries friendly merge_ordered in merge_informative_pair function 2022-04-21 18:35:41 +05:30
froggleston
f92997d378 Move signal candle generation into separate function 2022-04-20 14:05:33 +01:00
froggleston
933054a51c Move enable option text to make better sense 2022-04-20 13:54:50 +01:00
froggleston
ea7fb4e6e6 Revert docs to buy_reasons script version 2022-04-20 13:51:45 +01:00
froggleston
b3cb722646 Use joblib instead of pickle, add signal candle read/write test, move docs to new Advanced Backtesting doc 2022-04-20 13:38:52 +01:00
froggleston
9421d19cba Add documentation 2022-04-19 14:05:03 +01:00
froggleston
3ad1411f5e Fix imports 2022-04-19 13:08:01 +01:00
froggleston
aa5984930d Fix filename generation 2022-04-19 13:00:09 +01:00
froggleston
165f59325f Merge branch 'v3_fixes' of github.com:froggleston/freqtrade into v3_fixes 2022-04-19 12:48:29 +01:00
froggleston
84f486295d Add tests for new storing of backtest signal candles 2022-04-19 12:48:21 +01:00
Robert Davey
4b0f168e52 Merge branch 'freqtrade:develop' into v3_fixes 2022-04-19 12:10:30 +01:00
eSeR1805
76558f284f Fix user cancellation functionality. 2022-04-19 13:33:37 +03:00
eSeR1805
cea4f663d5 Merge branch 'develop' into feat_readjust_entry 2022-04-18 21:22:19 +03:00
eSeR1805
d24ee9032a Update usage in backtest. No functional update. 2022-04-18 21:21:38 +03:00
eSeR1805
d9f838a65f Update template usage to reflect changes. 2022-04-18 21:20:50 +03:00
eSeR1805
3166739ec9 Update strategy callback params and description. 2022-04-18 21:17:39 +03:00
eSeR1805
95e009b9cb Update adjustment functionality and add cancelation option 2022-04-18 21:16:45 +03:00
eSeR1805
2cac1b7dcc Add new (user cancellation) reason. 2022-04-18 21:14:35 +03:00
eSeR1805
541147c801 Update documentation to match feature changes. 2022-04-18 21:13:50 +03:00
Matthias
e4629a2730 Merge pull request #6694 from samgermain/notional-switch
switch notionalFloor -> minNotional and notionalCap -> maxNotional
2022-04-18 08:54:20 +02:00
Matthias
9b55b3875f Merge pull request #6700 from freqtrade/dependabot/pip/develop/types-requests-2.27.19
Bump types-requests from 2.27.16 to 2.27.19
2022-04-18 08:27:42 +02:00
Matthias
1ce20ea739 Bump requirements to 1.79.81, min-required to 1.79.69 2022-04-18 08:16:38 +02:00
Matthias
14ddd19584 Merge pull request #6696 from freqtrade/dependabot/pip/develop/fastapi-0.75.2
Bump fastapi from 0.75.1 to 0.75.2
2022-04-18 08:12:13 +02:00
dependabot[bot]
153b31c934 Bump types-requests from 2.27.16 to 2.27.19
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.16 to 2.27.19.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-18 06:11:57 +00:00
Matthias
3cae57cd91 Merge pull request #6702 from freqtrade/dependabot/pip/develop/nbconvert-6.5.0
Bump nbconvert from 6.4.5 to 6.5.0
2022-04-18 08:11:26 +02:00
Matthias
38254d2124 Merge pull request #6699 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.11
Bump types-python-dateutil from 2.8.10 to 2.8.11
2022-04-18 08:11:12 +02:00
Matthias
ef9d9e250f Merge pull request #6697 from freqtrade/dependabot/pip/develop/types-cachetools-5.0.1
Bump types-cachetools from 5.0.0 to 5.0.1
2022-04-18 08:10:51 +02:00
Matthias
63a774ac7f Merge pull request #6698 from freqtrade/dependabot/pip/develop/types-tabulate-0.8.7
Bump types-tabulate from 0.8.6 to 0.8.7
2022-04-18 08:10:37 +02:00
dependabot[bot]
b69483e3af Bump nbconvert from 6.4.5 to 6.5.0
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 6.4.5 to 6.5.0.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Commits](https://github.com/jupyter/nbconvert/compare/6.4.5...6.5)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-18 03:01:42 +00:00
dependabot[bot]
f020d129d7 Bump types-python-dateutil from 2.8.10 to 2.8.11
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.10 to 2.8.11.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-18 03:01:27 +00:00
dependabot[bot]
7d88dcb5f4 Bump types-tabulate from 0.8.6 to 0.8.7
Bumps [types-tabulate](https://github.com/python/typeshed) from 0.8.6 to 0.8.7.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-tabulate
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-18 03:01:24 +00:00
dependabot[bot]
2ff18e78c4 Bump types-cachetools from 5.0.0 to 5.0.1
Bumps [types-cachetools](https://github.com/python/typeshed) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-18 03:01:22 +00:00
dependabot[bot]
a1e425a801 Bump fastapi from 0.75.1 to 0.75.2
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.75.1 to 0.75.2.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.75.1...0.75.2)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-18 03:01:19 +00:00
Sam Germain
80b34deb4d bump ccxt to 1.79.69 to account for https://github.com/ccxt/ccxt/pull/12873" 2022-04-17 14:38:34 -06:00
eSeR1805
17da4ca099 Use order_date_utc 2022-04-17 12:11:30 +03:00
Sam Germain
591a2fb7fc switch notionalFloor -> minNotional and notionalCap -> maxNotional 2022-04-16 21:47:44 -06:00
froggleston
34fb8dacd7 Fix isort complaints 2022-04-16 17:03:24 +01:00
froggleston
b738c4e695 Fix flake8 complaints 2022-04-16 16:49:20 +01:00
froggleston
7210a11730 Fix flake8 complaints 2022-04-16 16:37:06 +01:00
froggleston
a63affc5f1 Fix flake8 complaints 2022-04-16 16:32:04 +01:00
froggleston
f55a9940a7 Fix line spacing 2022-04-16 16:15:04 +01:00
froggleston
b1bcf9f33c Fix backtest_enable typo 2022-04-16 14:58:17 +01:00
froggleston
8990ba2709 Fix store signal candles 2022-04-16 14:49:53 +01:00
froggleston
21734c5de7 Add pickle import 2022-04-16 14:46:30 +01:00
froggleston
26ba899d7d Add constant, boolean check, rename option to fit with other x_enable, check that RunMode is BACKTEST 2022-04-16 14:37:36 +01:00
Robert Davey
afd3a32883 Merge branch 'develop' into v3_fixes 2022-04-16 14:23:13 +01:00
eSeR1805
698c25f133 Fix issues reported by flake. 2022-04-16 15:44:07 +03:00
eSeR1805
d65b64a46f Merge branch 'develop' into feat_readjust_entry 2022-04-16 15:20:50 +03:00
eSeR1805
237d116d8c Update existing tests to use the new func name. 2022-04-16 15:08:54 +03:00
eSeR1805
452f44206a Add new callback to advanced template. 2022-04-16 15:08:09 +03:00
eSeR1805
bf5799ef9e Add new functionality to backtesting. 2022-04-16 15:07:18 +03:00
eSeR1805
f8a7fdd5ed Add new callback to strategy interface. 2022-04-16 15:04:22 +03:00
eSeR1805
317c1e0746 Add option to handle_cancel_enter to prevent closing trade. 2022-04-16 15:03:44 +03:00
eSeR1805
76c545ba0d Reorganize, rename, redescribe and add new functionality 2022-04-16 15:03:09 +03:00
eSeR1805
e5d4f7766e Add new cancel reason for when replacing orders. 2022-04-16 14:44:41 +03:00
eSeR1805
16b6b08227 Update docs to include info on new functionality. 2022-04-16 14:42:41 +03:00
Matthias
4019c05fee Update entry/exit timeout documentation
the type of order is now an Order, no longer a dictionary.

closes #6691
2022-04-16 06:48:12 +02:00
Matthias
a4ec8984cd Merge pull request #6685 from freqtrade/bt_load_history
Backtesting load history
2022-04-15 16:06:20 +02:00
Matthias
75d6a92e62 Merge pull request #6689 from kokimame/avoid-case-amount-zero
Avoid ignoring the case precision amount = 0
2022-04-15 15:20:18 +02:00
Matthias
f61d4d36c3 Add test for 0 precision amount 2022-04-15 14:48:09 +02:00
kokimame
d23d830346 Avoid ignoring the case precision amount = 0 2022-04-15 00:35:11 +09:00
Italo
1153e65b3e fix flake8 2022-04-14 14:34:04 +01:00
Italo
340c0ea391 update is_random before asked_non_tried
is_random depends on asked_non_tried and needs to be updated first
2022-04-14 14:15:11 +01:00
Matthias
4acb77305a Don't break when running hyperopt-x tools on old resuts 2022-04-13 19:33:27 +02:00
Matthias
b1a6db8d29 Fix bad usage of base_currency 2022-04-13 19:24:21 +02:00
Italo
35cea6dcfa fix unique_list 2022-04-13 09:36:46 +01:00
Matthias
f89b64c972 Improve test by having multistrat.meta file available 2022-04-13 07:09:26 +02:00
Matthias
4ac54a76af Add strategy as mandatory argument 2022-04-13 06:47:39 +02:00
Italo
fa298d6f1c fix unique_list logic 2022-04-12 23:57:40 +01:00
Matthias
dd5693f4e5 Add note about binance Futures trading rules
closes #6683
2022-04-12 07:21:30 +02:00
Matthias
0c87702545 test for backtest history 2022-04-12 06:28:37 +02:00
Nicolas Papp
c8e4687833 Plots and hyperopt 2022-04-11 16:41:48 -03:00
Matthias
4254d86658 Move test-backtestfiles to separate directory 2022-04-11 20:32:02 +02:00
Matthias
85e7deb2cd Add loading of historic backtest result 2022-04-11 20:04:47 +02:00
Matthias
d9039152ba Add "get backtest historic results" endpoint 2022-04-11 19:44:47 +02:00
Nicolas Papp
178240aa6c Merge branch 'develop' of https://github.com/nicolaspapp/freqtrade into feat/relative-drawdown 2022-04-11 14:42:10 -03:00
Matthias
baefda80d1 Enable flake8 E226 rule 2022-04-11 18:02:06 +02:00
Matthias
1084787a38 Add note for Update releases 2022-04-11 17:48:39 +02:00
Matthias
43779232e1 Inlcude docs requirements in dev dependencies
developers should also be able to render the docs without further action.
2022-04-11 07:13:31 +02:00
Matthias
3e2d9725dd Merge pull request #6680 from freqtrade/dependabot/pip/develop/ccxt-1.78.62
Bump ccxt from 1.77.98 to 1.78.62
2022-04-11 07:12:12 +02:00
Matthias
7f9ea581ea Merge pull request #6681 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.29
Bump prompt-toolkit from 3.0.28 to 3.0.29
2022-04-11 07:02:15 +02:00
Matthias
f688c6e568 Merge pull request #6679 from freqtrade/dependabot/pip/develop/plotly-5.7.0
Bump plotly from 5.6.0 to 5.7.0
2022-04-11 06:34:44 +02:00
dependabot[bot]
c93bed5e2b Bump ccxt from 1.77.98 to 1.78.62
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.77.98 to 1.78.62.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.77.98...1.78.62)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 04:28:17 +00:00
Matthias
0f6ef6c798 Merge pull request #6678 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.35
Bump sqlalchemy from 1.4.34 to 1.4.35
2022-04-11 06:27:08 +02:00
Matthias
75a0ed075b Merge pull request #6677 from freqtrade/dependabot/pip/develop/mkdocs-material-8.2.9
Bump mkdocs-material from 8.2.8 to 8.2.9
2022-04-11 06:26:50 +02:00
dependabot[bot]
5edae71d28 Bump prompt-toolkit from 3.0.28 to 3.0.29
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.28 to 3.0.29.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.28...3.0.29)

---
updated-dependencies:
- dependency-name: prompt-toolkit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 03:01:53 +00:00
dependabot[bot]
739cd773c3 Bump plotly from 5.6.0 to 5.7.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.6.0 to 5.7.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.6.0...v5.7.0)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 03:01:39 +00:00
dependabot[bot]
72fd4bf337 Bump sqlalchemy from 1.4.34 to 1.4.35
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.34 to 1.4.35.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 03:01:36 +00:00
dependabot[bot]
84fca32ed9 Bump mkdocs-material from 8.2.8 to 8.2.9
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.2.8 to 8.2.9.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.2.8...8.2.9)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 03:01:29 +00:00
Sam Germain
64e6729ae9 docs for recursive_strategy_search 2022-04-10 18:56:28 -06:00
Sam Germain
c876d42e36 safe check for recursive_strategy_search in strategy_resolver 2022-04-10 18:50:51 -06:00
Sam Germain
9070114417 Merge branch 'recursive-strategy-folder' of https://github.com/samgermain/freqtrade into recursive-strategy-folder 2022-04-10 18:45:09 -06:00
Sam Germain
d5ce868f1a removed 1 letter alias for recursive-strategy-folder 2022-04-10 18:44:33 -06:00
Nicolas Papp
47a6ef4f00 Max relative drawdown 2022-04-10 12:53:47 -03:00
Matthias
68fe7476c9 Update more terminology to forceexit 2022-04-10 15:56:29 +02:00
Matthias
77c840c2a4 Fix syntax-error in exit_reason migration 2022-04-10 15:10:13 +02:00
Matthias
9556af1e6c Improve documentation for config imports 2022-04-10 10:14:34 +02:00
Matthias
cd2e49bb60 Simplify downloading futures data code 2022-04-10 09:53:33 +02:00
Matthias
95f69a8c3b Remove some outdated TODO's 2022-04-10 09:53:33 +02:00
Matthias
1951ee8e29 Merge pull request #6615 from cyberjunky/cyber-forcesell-tg
Add selection buttons for trades to forcesell cmd in telegram
2022-04-10 09:51:35 +02:00
Matthias
2653d83fee Merge branch 'develop' into pr/cyberjunky/6615 2022-04-10 09:24:53 +02:00
Matthias
54633e90a7 Merge branch 'develop' into pr/italodamato/6563 2022-04-10 09:16:31 +02:00
Matthias
a99cbe459c Merge pull request #6671 from freqtrade/custom_exit_profit
Custom exit - call it independent of profit
2022-04-10 09:09:45 +02:00
Matthias
282804463c Add Documentation for /forceexit without parameter 2022-04-10 09:07:51 +02:00
Matthias
ffff45e76b simplify exit message 2022-04-10 08:44:49 +02:00
Matthias
850760bc00 Remove migration from very old database
(database without Orders table)
2022-04-10 08:43:30 +02:00
Matthias
46c18dfce2 Merge pull request #6670 from freqtrade/store_asset
store base and quote currency separately in the database
2022-04-10 08:42:28 +02:00
Matthias
105e7ea1a9 Merge pull request #6675 from zolbayars/update-plotting-documentation
Docs: update plotting doc to show strategy option is mandatory
2022-04-10 07:32:46 +02:00
zolbayars
09b41a6f8d Docs: update plotting doc to show strategy option is mandatory 2022-04-10 10:39:48 +08:00
Matthias
710089b46c Merge pull request #6673 from RafaelDorigo/develop
Update strategy_migration.md
2022-04-09 20:07:24 +02:00
RafaelDorigo
9f9219675f Update strategy_migration.md 2022-04-09 19:58:58 +02:00
Matthias
6ebd30db88 Merge pull request #6665 from freqtrade/config_from_config
Allow recursive loading of configuration files
2022-04-09 17:18:51 +02:00
Matthias
114591048c Always call custom_sell - also when there's a new enter signal 2022-04-09 17:17:49 +02:00
Matthias
139b65835c Only show long/short signals on telegram for non-spot markets 2022-04-09 17:09:17 +02:00
Matthias
ef18d09161 Call custom_exit also when the trade is not in profit and exit_profit_only is set. 2022-04-09 16:50:38 +02:00
Matthias
8e98a2ff9f api - provide assset_currency via API 2022-04-09 16:42:18 +02:00
Matthias
81b41183a5 Merge pull request #6668 from RafaelDorigo/develop
Fixed setup.sh
2022-04-09 15:35:26 +02:00
RafaelDorigo
e606051102 Fixed setup.sh 2022-04-09 11:53:47 +02:00
Matthias
f385e2c2b6 Update test to also cover "no trade found" scenario 2022-04-09 10:04:10 +02:00
Matthias
ebcb530d4f Log if no stake-amount is left for trade 2022-04-09 09:58:03 +02:00
Matthias
cbdaaf705c Merge pull request #6636 from mkavinkumar1/pre-commit
added pre-commit
2022-04-09 09:50:54 +02:00
Matthias
ddfc68d533 Add test case for interactive telegram exit 2022-04-09 09:41:01 +02:00
Matthias
9cd92ed48c Fix forceexit to work 2022-04-09 09:24:20 +02:00
Matthias
40eb3f274f Fix merge mistake 2022-04-09 08:36:22 +02:00
Matthias
392967a26f Update formatting 2022-04-08 18:07:01 +02:00
Matthias
967bbe99bb Merge branch 'develop' into pr/cyberjunky/6615 2022-04-08 18:05:27 +02:00
Matthias
16e64ddf97 Update docs for multi-config loading 2022-04-08 17:59:16 +02:00
Matthias
ecb0e43c2a Improve pre-commit docs 2022-04-08 17:50:32 +02:00
Matthias
b8556498ef Fix pre-commit to actually work 2022-04-08 17:46:53 +02:00
Matthias
238ff6c9fe Use better naming 2022-04-08 17:30:23 +02:00
Matthias
1435d26996 store config-file loading paths 2022-04-08 17:26:51 +02:00
Matthias
3427df0653 Add simple test for recursive loading 2022-04-08 16:11:18 +02:00
Matthias
1ea49ce864 Support nested configurations 2022-04-08 15:50:44 +02:00
Matthias
aee0cfd17a forcebuy_enable -> force_entry_enable 2022-04-08 13:39:41 +02:00
Italo
1559692e47 Update hyperopt.py
remove duplicates from list of asked points
2022-04-08 11:44:42 +01:00
Matthias
ef2f8be526 Merge pull request #6653 from mkavinkumar1/renaming-forceentry-forceexit
renamed forceentry forceexit
2022-04-08 12:31:48 +02:00
Matthias
075fc6d35e Apply suggestions from code review 2022-04-08 11:45:03 +02:00
மனோஜ்குமார் பழனிச்சாமி
0e9b348868 Update api_v1.py 2022-04-08 11:08:11 +05:30
மனோஜ்குமார் பழனிச்சாமி
ca400b8195 Updated requested changes in PR #6653 2022-04-08 10:45:05 +05:30
மனோஜ்குமார் பழனிச்சாமி
f7020df097 Updating requested changes in PR #6653 2022-04-08 07:07:51 +05:30
மனோஜ்குமார் பழனிச்சாமி
9417bb01dc Merge branch 'develop' into renaming-forceentry-forceexit 2022-04-08 00:01:51 +05:30
மனோஜ்குமார் பழனிச்சாமி
9ee53b5f9e Update docs/telegram-usage.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2022-04-07 23:55:07 +05:30
Matthias
1347107c1e extract load_from_files to load_config 2022-04-07 20:15:06 +02:00
Matthias
673b3034ee Simplify load_from_files 2022-04-07 20:05:51 +02:00
Matthias
bdd9f584fa Update some docs terminology 2022-04-07 20:04:16 +02:00
Matthias
a659bcb60b Update some docs terminology 2022-04-07 19:46:00 +02:00
Matthias
ea1c55b161 Update backtesting to use row instead of sell_row 2022-04-07 19:43:34 +02:00
Matthias
890694da08 Merge pull request #6661 from SmartManoj/patch-5
Update fiat_convert.py
2022-04-07 19:25:58 +02:00
Matthias
cbbbe8a5ba Fix test using existing config file, therefore becomming fluky 2022-04-07 09:08:17 +00:00
Matthias
3188d036a6 improve trading_mode handling
Ensure trading_mode is set by new-config
handle empty strings to default to spot.

closes #6663
2022-04-07 08:45:45 +00:00
மனோஜ்குமார் பழனிச்சாமி
7bf3475fbd Update fiat_convert.py 2022-04-07 10:28:55 +05:30
Matthias
299dd84cfe Merge pull request #6656 from freqtrade/use_sell_signal
Use sell signal -> use_exit_signal
2022-04-06 19:46:46 +02:00
Matthias
916764d4f2 Merge pull request #6658 from mkavinkumar1/rename-enter-side
renamed enter-side
2022-04-06 19:32:55 +02:00
Matthias
28b58712fb Add compatibility shim for trade.entry_trade 2022-04-06 19:13:46 +02:00
Matthias
d5ec79c0b9 Update deprecated settings to support non-nested transitions 2022-04-06 19:09:34 +02:00
Matthias
62d13a9f74 Fix test indentation 2022-04-06 16:03:11 +02:00
Matthias
146d6e7c6c Add UAH to supported fiat currencies
closes #6657
2022-04-06 06:43:06 +02:00
மனோஜ்குமார் பழனிச்சாமி
b751dd339a Update test_rpc_telegram.py 2022-04-06 07:23:43 +05:30
மனோஜ்குமார் பழனிச்சாமி
aa76191636 fixed tests 2022-04-06 07:19:00 +05:30
மனோஜ்குமார் பழனிச்சாமி
28f4a3b373 updated for PR #6653 2022-04-06 07:05:43 +05:30
மனோஜ்குமார் பழனிச்சாமி
7e97e58820 renamed enter-side 2022-04-06 06:32:13 +05:30
Matthias
8d95e76d26 Add tests for new naming definitions 2022-04-05 20:43:39 +02:00
Matthias
82e9f62381 Add missing setting in arguments.py 2022-04-05 20:27:32 +02:00
Matthias
a09637cbe1 Update migration documentation with new settings 2022-04-05 20:25:31 +02:00
Matthias
b1378efdeb ignore_roi_if_buy_signal -> ignore_roi_if_entry_signal 2022-04-05 20:21:39 +02:00
Matthias
5bafdb6108 Update testcase 2022-04-05 20:15:08 +02:00
Matthias
4897731030 use_sell_signal -> use_exit_signal 2022-04-05 20:10:20 +02:00
Matthias
5ce5c70be6 sell_profit_offset -> exit_profit_offset 2022-04-05 20:03:27 +02:00
Matthias
bba9629a2a Rename sell_profit_only to exit_profit_only 2022-04-05 20:00:35 +02:00
மனோஜ்குமார் பழனிச்சாமி
5fa96174e1 Update test_rpc.py 2022-04-05 16:58:30 +05:30
மனோஜ்குமார் பழனிச்சாமி
8442fb915f renamed 2022-04-05 16:01:53 +05:30
மனோஜ்குமார் பழனிச்சாமி
0d93916f79 Update developer.md 2022-04-05 11:28:22 +05:30
Matthias
5c01969969 Fix messed up doc rendering 2022-04-05 07:13:09 +02:00
மனோஜ்குமார் பழனிச்சாமி
57af08fde7 updated requested changes in PR #6636 2022-04-05 10:21:07 +05:30
Matthias
2a46e6a214 Change some sell terminology 2022-04-05 06:50:44 +02:00
Matthias
31bdaedc33 Fix messed up doc rendering 2022-04-05 06:47:55 +02:00
Matthias
d3e6fa19d5 Merge pull request #6648 from freqtrade/exit_type_rename
Exit type rename
2022-04-05 06:44:56 +02:00
Matthias
89355a212e Improve wording on strategy migration 2022-04-04 19:53:56 +02:00
Matthias
4cd4edf08b Update exit_reasons while migrating the database 2022-04-04 19:52:26 +02:00
Matthias
2b55f45be0 Improve deprecated documentation 2022-04-04 19:45:52 +02:00
Matthias
0db5d9f7fa Update telegram message formatting 2022-04-04 19:37:23 +02:00
Matthias
7d3116f9fb webhookbuy -> webhookentry 2022-04-04 19:32:27 +02:00
Matthias
eff636ba53 Update RPC message types to ENTRY 2022-04-04 19:29:15 +02:00
Matthias
125dff1dad Properly deprecate webhook settings (with transition) 2022-04-04 19:21:13 +02:00
Matthias
5ecb695e50 Update deprecated notification settings 2022-04-04 19:17:11 +02:00
Matthias
129a7c632c Update method names 2022-04-04 19:14:21 +02:00
Matthias
8a9839fb6d Update telegram notification settings 2022-04-04 19:10:44 +02:00
Matthias
0b88185c2c Sell-fill -> exit_fill 2022-04-04 19:08:50 +02:00
Matthias
8b33d9cdb2 sell_cancel -> exit_cancel 2022-04-04 19:07:20 +02:00
Matthias
6a0110aa3c Update webhook configuration 2022-04-04 19:05:36 +02:00
Matthias
6d9218cb34 sell_signal -> exit_signal 2022-04-04 17:11:11 +02:00
Matthias
1917527179 custom_sell -> custom_exit 2022-04-04 17:04:43 +02:00
Matthias
cd146bfa8f emergency_sell -> emergency_exit 2022-04-04 17:03:27 +02:00
Matthias
54ad130bb9 Update force_sell to force_exit 2022-04-04 16:59:27 +02:00
Matthias
33841da382 Slightly imporve Typing by reusing long/short type 2022-04-04 16:51:57 +02:00
Matthias
f8783c908e Add side to custom_entry_price 2022-04-04 16:48:27 +02:00
Matthias
61faee1e7d Merge pull request #6644 from freqtrade/dependabot/pip/develop/pandas-1.4.2
Bump pandas from 1.4.1 to 1.4.2
2022-04-04 10:54:15 +02:00
Matthias
0bb696bfed Merge pull request #6642 from freqtrade/dependabot/pip/develop/types-requests-2.27.16
Bump types-requests from 2.27.15 to 2.27.16
2022-04-04 07:38:01 +02:00
Matthias
2bca27b337 Merge pull request #6643 from freqtrade/dependabot/pip/develop/fastapi-0.75.1
Bump fastapi from 0.75.0 to 0.75.1
2022-04-04 07:37:50 +02:00
dependabot[bot]
ef65bece7b Bump pandas from 1.4.1 to 1.4.2
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.4.1 to 1.4.2.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/main/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.4.1...v1.4.2)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 05:05:50 +00:00
Matthias
ff1c486cf7 Merge pull request #6645 from freqtrade/dependabot/pip/develop/ccxt-1.77.98
Bump ccxt from 1.77.97 to 1.77.98
2022-04-04 07:04:50 +02:00
dependabot[bot]
655165ace0 Bump ccxt from 1.77.97 to 1.77.98
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.77.97 to 1.77.98.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.77.97...1.77.98)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 04:37:13 +00:00
Matthias
9e72d50e64 Merge pull request #6639 from freqtrade/dependabot/pip/develop/ccxt-1.77.97
Bump ccxt from 1.77.45 to 1.77.97
2022-04-04 06:34:16 +02:00
Matthias
9a68eeb649 Merge pull request #6640 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.34
Bump sqlalchemy from 1.4.32 to 1.4.34
2022-04-04 06:33:38 +02:00
Matthias
2c8df83e9a Merge pull request #6641 from freqtrade/dependabot/pip/develop/nbconvert-6.4.5
Bump nbconvert from 6.4.4 to 6.4.5
2022-04-04 06:26:07 +02:00
dependabot[bot]
d5ec95e8e0 Bump fastapi from 0.75.0 to 0.75.1
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.75.0 to 0.75.1.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.75.0...0.75.1)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 03:01:46 +00:00
dependabot[bot]
d668416d9c Bump types-requests from 2.27.15 to 2.27.16
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.15 to 2.27.16.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 03:01:37 +00:00
dependabot[bot]
225f6d1525 Bump nbconvert from 6.4.4 to 6.4.5
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 6.4.4 to 6.4.5.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Commits](https://github.com/jupyter/nbconvert/compare/6.4.4...6.4.5)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 03:01:35 +00:00
dependabot[bot]
20f032601a Bump sqlalchemy from 1.4.32 to 1.4.34
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.32 to 1.4.34.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 03:01:33 +00:00
dependabot[bot]
74ff9f551b Bump ccxt from 1.77.45 to 1.77.97
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.77.45 to 1.77.97.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.77.45...1.77.97)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 03:01:26 +00:00
Matthias
69491c1430 Update more wording to "exit" 2022-04-03 19:39:13 +02:00
Matthias
283d04a5ad Update docstring wording 2022-04-03 19:36:32 +02:00
Matthias
dc462e63fe update BTContainer use_sell_signal 2022-04-03 19:27:30 +02:00
Matthias
9dfb3db1aa Update local variable 2022-04-03 19:22:59 +02:00
மனோஜ்குமார் பழனிச்சாமி
e2a42d3027 added pre-commit 2022-04-03 18:57:58 +05:30
Ron Klinkien
dd61886341 Readded missing keyboard commands
Rename forcesell methods to forceexit
2022-04-03 12:29:29 +02:00
Matthias
8acffbc1d8 sell_type -> exit_type 2022-04-03 11:18:36 +02:00
Matthias
2d2bea17e7 sell_order_status -> exit_order_status 2022-04-03 11:17:01 +02:00
Matthias
d054916439 Merge pull request #6632 from freqtrade/short_terminology
Short terminology
2022-04-03 11:10:16 +02:00
Matthias
d94b73b396 Update some documentation 2022-04-03 10:44:27 +02:00
Matthias
a27c837d18 Update sell_reason to exit_reason 2022-04-03 10:41:35 +02:00
Matthias
cd78792f48 Improve some telegram terminology 2022-04-03 10:40:13 +02:00
Ron Klinkien
936ada5699 Fixed syntax error 2022-04-03 09:58:55 +02:00
Matthias
157f8f8139 Update some more sell_reason occurances 2022-04-03 08:17:17 +02:00
Matthias
e894f620c2 Improve compatibility 2022-04-03 08:15:23 +02:00
Matthias
240ca421af Merge pull request #6630 from SmartManoj/patch-4
checking exchange name with lower
2022-04-02 20:09:10 +02:00
Matthias
ec63cfd656 Add compatibility layer for backtesting results 2022-04-02 20:04:30 +02:00
Matthias
543aa74278 update sell_reason to exit_reason 2022-04-02 20:04:29 +02:00
Ron Klinkien
f89265e0fb Merge branch 'develop' into cyber-forcesell-tg 2022-04-02 20:02:42 +02:00
Matthias
39d925c295 Change to precise casing instead of .lower() 2022-04-02 19:48:01 +02:00
Matthias
b0fab3ad50 Properly handle empty dataframes after trimming
closes #6629
2022-04-02 16:16:29 +02:00
Matthias
f742d21690 Add test showing #6629 2022-04-02 16:16:26 +02:00
Matthias
7c5e730007 Merge pull request #6628 from topscoder/patch-2
Fixes CoinGecko typos in fiat_convert
2022-04-02 08:16:32 +02:00
மனோஜ்குமார் பழனிச்சாமி
40b4a9977e checking exchange name with lower 2022-04-02 11:23:06 +05:30
topscoder
60d52f0a20 Consistent CoinGecko naming in test_fiat_convert.py 2022-04-01 20:57:09 +02:00
topscoder
7db3c846b4 Fixes CoinGecko typos in fiat_convert.py 2022-04-01 20:52:16 +02:00
Matthias
0b40c37cc5 Merge pull request #6624 from samgermain/lev-docs
docs for shorting
2022-04-01 20:29:41 +02:00
Stefano Ariestasia
da0688b6aa Revert "Add exchange id for binance Futures"
This reverts commit 3c8387ab61.
2022-04-02 03:20:21 +09:00
Matthias
2f967f6df9 Slightly change wording, fix links 2022-04-01 20:01:57 +02:00
Sam Germain
b4b594c0dd docs on setting enter_short and exit_short 2022-04-01 06:02:32 -06:00
Sam Germain
476c6416cc docs/strategy-customization enter_short and exit_short 2022-04-01 05:59:59 -06:00
Sam Germain
3e10849e02 short docs added link to strategy migration guide 2022-04-01 05:55:00 -06:00
Stefano Ariestasia
3c8387ab61 Add exchange id for binance Futures 2022-04-01 20:48:13 +09:00
Sam Germain
dd7f9c6f8b docs for shorting 2022-04-01 05:47:26 -06:00
Matthias
b40c017af5 Merge pull request #6623 from stash86/patch-1
fix some typo
2022-04-01 12:49:03 +02:00
Stefano Ariestasia
0c096e4e03 fix some typo 2022-04-01 19:28:42 +09:00
Matthias
889fa7bac2 Add small offset to time to avoid random fails 2022-04-01 10:49:21 +02:00
Matthias
d1ea5ea856 Merge pull request #6622 from freqtrade/short_plot
Short plot
2022-04-01 09:18:37 +02:00
Ron Klinkien
f029702bd1 Fixed flake8 issues 2022-04-01 09:16:35 +02:00
Matthias
775305e9c4 Use correct candleconfig in plot endpoint 2022-04-01 08:57:58 +02:00
Matthias
fe3260aae2 Remove false statement about plotting futures data 2022-04-01 08:51:11 +02:00
Matthias
a13d4e5519 Renumber backtest-detail tests 2022-04-01 07:00:51 +02:00
Matthias
e3a624cf68 Fix futures plotting 2022-04-01 06:44:17 +02:00
Sam Germain
4b238987b0 plot.generate_candlestick_graph Added short equivelent, separating plotting scatter creation to a function 2022-04-01 06:27:42 +02:00
Matthias
c57d807845 Merge pull request #6552 from freqtrade/feat/short
Feat/short
2022-03-31 21:23:57 +02:00
Matthias
0c9bbc753f Fix random test failure by setting fixed time passed 2022-03-31 20:00:55 +02:00
Matthias
0cba4ec460 Fix doc typo 2022-03-31 19:14:11 +02:00
Sam Germain
2fe5a1594f Add conditional to recursive strategy searching if in config 2022-03-31 08:21:15 -06:00
Sam Germain
b4b809ff8e changed recursive to recursive_strategy_search 2022-03-31 08:16:21 -06:00
Sam Germain
f44ae494fb Added recursive to configuration 2022-03-31 08:12:02 -06:00
Sam Germain
185daf5772 add recursive command line option 2022-03-31 08:12:02 -06:00
Sam Germain
6df15a7af9 Recursively search subdirectories in user_data/strategies for a strategy 2022-03-31 08:12:02 -06:00
Ron Klinkien
3d8cfa7ea5 Several fixes
Code optimizations
2022-03-31 08:30:20 +02:00
Matthias
94274e4823 Remove order.leverage column 2022-03-31 06:57:16 +02:00
Matthias
e3471129f7 Update documentation structure, add links to migration page 2022-03-31 06:53:33 +02:00
Matthias
2d914c8e13 Simplify formatting in exchange class 2022-03-30 20:02:56 +02:00
Ron Klinkien
6c811b3de1 Made regex strings raw
Removed unwanted changes
2022-03-30 19:57:02 +02:00
Matthias
1f6ca29bbf Update comment 2022-03-30 19:38:25 +02:00
Matthias
8e7fa9f6c8 Update bot test formatting 2022-03-30 19:32:52 +02:00
Matthias
95b0e682b5 Merge pull request #6618 from samgermain/doc-help
Add trading mode to list-pairs and list-markets output in docs
2022-03-30 19:10:08 +02:00
Sam Germain
527c4277d8 Add trading mode to list-pairs and list-markets output in docs 2022-03-30 05:29:11 -06:00
Ron Klinkien
c42af7d095 Fixed typo in test file 2022-03-30 12:41:41 +02:00
Ron Klinkien
3ed7f3f2df Display all trade info in buttons
First step to fix tests for changed forcesell code
2022-03-30 12:28:30 +02:00
Italo
e85c7ca8ff remove blank line 2022-03-30 09:50:37 +01:00
Italo
8d4afc0eaf Merge branch 'opt-ask-force-new-points' of https://github.com/italodamato/freqtrade-1 into opt-ask-force-new-points 2022-03-30 09:49:07 +01:00
Italo
bad179ebaa fix merge mess
This reverts commit 9f171193ef.
2022-03-30 09:48:10 +01:00
Italo
b560248165 Merge branch 'develop' into opt-ask-force-new-points 2022-03-30 09:42:38 +01:00
Italo
3e24d01af4 fix flake8 2022-03-30 09:41:40 +01:00
Italo
9f171193ef Revert "Merge branch 'plot_hyperopt_stats' into opt-ask-force-new-points"
This reverts commit 4eb9cc6e8b, reversing
changes made to a3b401a762.
2022-03-30 09:39:07 +01:00
Matthias
2af31672c6 Merge pull request #6608 from stash86/patch-1
Add few lines to docs
2022-03-30 07:21:52 +02:00
Matthias
b91b7b4464 Fix hyperopt assigning sell_signal to wrong field 2022-03-30 07:16:48 +02:00
Matthias
9a7867971a Update wording to new pricing definition 2022-03-30 07:13:28 +02:00
Matthias
dafc2bf361 Merge branch 'develop' into feat/short 2022-03-30 07:09:41 +02:00
Matthias
e1ccbdb927 Merge pull request #6607 from freqtrade/short_pricing
Short pricing updates
2022-03-30 06:59:40 +02:00
Stefano Ariestasia
02aded68f9 Update strategy-customization.md 2022-03-30 08:37:35 +09:00
Stefano Ariestasia
4d5f6ed5e2 Update strategy-customization.md 2022-03-30 08:37:11 +09:00
Stefano Ariestasia
c615e4fcc2 updates 2022-03-30 08:35:49 +09:00
Italo
4eb9cc6e8b Merge branch 'plot_hyperopt_stats' into opt-ask-force-new-points 2022-03-30 00:30:33 +01:00
Italo
a3b401a762 highlight random points in hyperopt results table 2022-03-30 00:29:14 +01:00
Italo
229b0b037e reduce search loops 2022-03-29 19:33:35 +01:00
Matthias
ddb0254999 Merge pull request #6614 from krimsonkla/jmr/kucoin_ohlcv_candle_limit
Update kucoin candle limit
2022-03-29 20:18:52 +02:00
Matthias
f84b24dee9 Bump ccxt to 1.77.45
closes #6610
2022-03-29 20:06:25 +02:00
Matthias
7def1398c8 Merge pull request #6603 from adrianceding/fix_timeout
Fix using future data to fill when use timeout
2022-03-29 19:50:34 +02:00
Ron Klinkien
29d6725fb7 Allow forcesell to be a valid keyboard option 2022-03-29 19:41:49 +02:00
Ron Klinkien
46acc8352f Add selection buttons for trades to forcesell cmd in telegram 2022-03-29 19:19:07 +02:00
Matthias
648e969a7a Realign entry_pricing fields 2022-03-29 19:07:29 +02:00
Italo
a1816434b7 Merge branch 'freqtrade:develop' into plot_hyperopt_stats 2022-03-29 17:24:40 +01:00
Jason Risch
6b57be35e9 Update kucoin candle limit 2022-03-29 07:23:45 -07:00
Matthias
c1657dfb7b Update / align documentation 2022-03-29 06:58:41 +02:00
Stefano Ariestasia
05db0067ee Add few missing info on shorting setup 2022-03-29 10:51:36 +09:00
Stefano Ariestasia
7c2e8420af Add note that enter_long must be set 2022-03-29 09:27:30 +09:00
Matthias
8ebef914e2 Update pricing documentation 2022-03-28 20:20:10 +02:00
Matthias
2d740230f7 price_last_balance renaming 2022-03-28 19:53:55 +02:00
Matthias
d7c6520268 Update remaining tests 2022-03-28 19:30:14 +02:00
Matthias
cee09493be Update market order validation 2022-03-28 19:25:46 +02:00
Matthias
440967e483 Update some tests 2022-03-28 19:17:22 +02:00
Matthias
88f6663f58 Merge pull request #6599 from freqtrade/dependabot/pip/develop/jinja2-3.1.1
Bump jinja2 from 3.0.3 to 3.1.1
2022-03-28 19:09:14 +02:00
Matthias
9aa821a953 Merge pull request #6604 from SmartManoj/patch-3
Corrected test_create_order
2022-03-28 16:19:03 +02:00
மனோஜ்குமார் பழனிச்சாமி
5552ad779c Corrected test_create_order 2022-03-28 19:31:12 +05:30
adriance
d6082c33a7 fix type error 2022-03-28 21:29:50 +08:00
adriance
a0971a3e2c fix using future data to fill when use timeout 2022-03-28 21:00:05 +08:00
Adriance
cb48071f1f Merge branch 'freqtrade:feat/short' into feat/short 2022-03-28 20:20:11 +08:00
dependabot[bot]
89e7b3705b Bump jinja2 from 3.0.3 to 3.1.1
Bumps [jinja2](https://github.com/pallets/jinja) from 3.0.3 to 3.1.1.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.0.3...3.1.1)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 08:25:34 +00:00
Matthias
ffd77fa418 Merge pull request #6594 from freqtrade/dependabot/pip/develop/mkdocs-material-8.2.8
Bump mkdocs-material from 8.2.5 to 8.2.8
2022-03-28 10:24:50 +02:00
Matthias
a6dc8dd902 Merge pull request #6597 from freqtrade/dependabot/pip/develop/mypy-0.942
Bump mypy from 0.941 to 0.942
2022-03-28 10:24:16 +02:00
Matthias
f70166270d Update pricing to use entry/exit pricing 2022-03-28 07:07:46 +02:00
Matthias
2f429bf7ec Merge pull request #6602 from freqtrade/dependabot/github_actions/develop/actions/cache-3
Bump actions/cache from 2 to 3
2022-03-28 06:51:47 +02:00
dependabot[bot]
3cffaed8df Bump mypy from 0.941 to 0.942
Bumps [mypy](https://github.com/python/mypy) from 0.941 to 0.942.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v0.941...v0.942)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 04:30:07 +00:00
dependabot[bot]
b321c0f5fb Bump mkdocs-material from 8.2.5 to 8.2.8
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.2.5 to 8.2.8.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.2.5...8.2.8)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 04:30:05 +00:00
Matthias
202c4573ba Merge pull request #6595 from freqtrade/dependabot/pip/develop/ccxt-1.77.36
Bump ccxt from 1.76.65 to 1.77.36
2022-03-28 06:29:16 +02:00
Matthias
b51e2e0391 Merge pull request #6598 from freqtrade/dependabot/pip/develop/types-requests-2.27.15
Bump types-requests from 2.27.14 to 2.27.15
2022-03-28 06:28:45 +02:00
Matthias
dc3998a03e Merge pull request #6596 from freqtrade/dependabot/pip/develop/mkdocs-1.3.0
Bump mkdocs from 1.2.3 to 1.3.0
2022-03-28 06:27:59 +02:00
Matthias
350c094cda Merge pull request #6593 from freqtrade/dependabot/pip/develop/pytest-asyncio-0.18.3
Bump pytest-asyncio from 0.18.2 to 0.18.3
2022-03-28 06:25:31 +02:00
Matthias
24be0228e2 Merge pull request #6601 from freqtrade/dependabot/github_actions/develop/peter-evans/dockerhub-description-3
Bump peter-evans/dockerhub-description from 2.4.3 to 3
2022-03-28 06:24:28 +02:00
dependabot[bot]
c570732157 Bump actions/cache from 2 to 3
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 03:16:05 +00:00
dependabot[bot]
449af0ce9c Bump peter-evans/dockerhub-description from 2.4.3 to 3
Bumps [peter-evans/dockerhub-description](https://github.com/peter-evans/dockerhub-description) from 2.4.3 to 3.
- [Release notes](https://github.com/peter-evans/dockerhub-description/releases)
- [Commits](https://github.com/peter-evans/dockerhub-description/compare/v2.4.3...v3)

---
updated-dependencies:
- dependency-name: peter-evans/dockerhub-description
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 03:16:02 +00:00
dependabot[bot]
6f64e8da8d Bump types-requests from 2.27.14 to 2.27.15
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.14 to 2.27.15.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 03:01:48 +00:00
dependabot[bot]
8b1e2f55b4 Bump mkdocs from 1.2.3 to 1.3.0
Bumps [mkdocs](https://github.com/mkdocs/mkdocs) from 1.2.3 to 1.3.0.
- [Release notes](https://github.com/mkdocs/mkdocs/releases)
- [Commits](https://github.com/mkdocs/mkdocs/compare/1.2.3...1.3.0)

---
updated-dependencies:
- dependency-name: mkdocs
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 03:01:36 +00:00
dependabot[bot]
9ba8303823 Bump ccxt from 1.76.65 to 1.77.36
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.76.65 to 1.77.36.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.76.65...1.77.36)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 03:01:33 +00:00
dependabot[bot]
d45cec20ab Bump pytest-asyncio from 0.18.2 to 0.18.3
Bumps [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) from 0.18.2 to 0.18.3.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Changelog](https://github.com/pytest-dev/pytest-asyncio/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.18.2...v0.18.3)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 03:01:22 +00:00
Matthias
9f863369bd Migrate bid/ask strategy to entry/exit pricing 2022-03-27 18:58:46 +02:00
Matthias
bcf326a035 Initial steps to change bid/ask pricing to enter/exit 2022-03-27 18:03:49 +02:00
Matthias
d1f61c4cf9 Use proper fee for DCA entries 2022-03-27 17:00:45 +02:00
Matthias
30cff1bd2c Update hdf5 to not raise naturalNaming warnings 2022-03-27 16:39:34 +02:00
Matthias
84777e255e Force-bump ccxt version to 1.77.29 2022-03-27 14:58:27 +02:00
Matthias
85bb2dcc8d Merge pull request #6590 from freqtrade/short_gateio
Fix gateio fee handling for futures
2022-03-27 14:57:36 +02:00
Matthias
0f1de435da Fix ccxt compat tests 2022-03-27 08:28:44 +02:00
Adriance
6629b6c828 Merge branch 'freqtrade:feat/short' into feat/short 2022-03-27 12:33:39 +08:00
Matthias
d244391860 no need to "abs" cost will be fixed in ccxt 2022-03-26 19:06:37 +01:00
Adriance
ad8eac960e Merge branch 'freqtrade:feat/short' into feat/short 2022-03-27 01:30:45 +08:00
Matthias
f509959bd4 Update 2022-03-26 16:26:31 +01:00
Matthias
fdc7077a2c Remove some unnecessary test arguments 2022-03-26 15:25:43 +01:00
Matthias
f5578aba48 Update trading_fee naming 2022-03-26 15:16:04 +01:00
Matthias
9b8a2435f8 Add tests for fetch_order gateio patch 2022-03-26 15:12:05 +01:00
Matthias
9a8c24ddf3 Update gateio to patch fees 2022-03-26 15:04:17 +01:00
Matthias
33229c91cb Add fetch_trading_fees endpoint 2022-03-26 13:53:36 +01:00
Matthias
5d3f2523e3 Merge pull request #6589 from freqtrade/short_timeout
Short timeout
2022-03-26 12:57:00 +01:00
Matthias
4424dcc2df Fix odd test 2022-03-26 12:01:28 +01:00
Matthias
0624817242 update unfilledtimeout settings to entry/exit 2022-03-26 11:55:11 +01:00
Matthias
60f2a12bd9 Fix wrong datetime conversion 2022-03-26 08:23:02 +01:00
Matthias
6f1b14c013 Update buy_timeout and sell_timeout methods 2022-03-25 19:57:06 +01:00
Matthias
973644de66 Fix bad import 2022-03-25 19:25:43 +01:00
Matthias
78fe29cc2d Merge pull request #6588 from samgermain/contracts
Add amount_to_contracts and order_contracts_to_amount to exchange.stoploss
2022-03-25 19:18:01 +01:00
Matthias
46f4227329 Check if symbol is not None 2022-03-25 18:11:02 +01:00
Matthias
50ba20ec9f Remove some unused test methods 2022-03-25 16:14:18 +01:00
Matthias
1c0946833d Fix bug in exit-count detection 2022-03-25 16:06:03 +01:00
Matthias
a682faf6b1 Merge pull request #6585 from mkavinkumar1/conftest
Removed old datetime keys and added timestamp
2022-03-25 15:57:37 +01:00
Matthias
81957e004d Revert false update 2022-03-25 15:38:38 +01:00
Matthias
b419d0043c Don't run CI directly on feat/short 2022-03-25 15:36:52 +01:00
Matthias
cd11ba3489 Fix naming in interface.py 2022-03-25 15:36:30 +01:00
Matthias
1ab6773257 Update todo-lev to todo 2022-03-25 15:17:46 +01:00
Matthias
f8e87e45a5 Merge pull request #6576 from samgermain/funding-tests
funding_fee tests
2022-03-25 15:11:45 +01:00
Sam Germain
d3ea14de68 test_stoploss_contract_size 2022-03-25 07:21:31 -06:00
Sam Germain
054b637001 Add amount_to_contracts and order_contracts_to_amount to stoploss 2022-03-25 06:56:05 -06:00
Matthias
743a7b7849 Merge branch 'develop' into feat/short 2022-03-25 10:04:18 +01:00
மனோஜ்குமார் பழனிச்சாமி
2cb24ed310 Added in ms
Just multiplied by 1000 as minuting checking in ms is not performed
2022-03-25 13:45:05 +05:30
Matthias
a004bcf00f Small refactor to backtesting 2022-03-25 08:03:32 +01:00
Matthias
a55bc9c1e4 Pin jinja in docs requirements 2022-03-25 08:02:27 +01:00
Matthias
5f71232d6f Fix doc typo 2022-03-25 07:03:50 +01:00
Matthias
dcfa3e8648 Update SellType to ExitType 2022-03-25 06:55:37 +01:00
Matthias
c07883b1f9 Move ExitCheckTuple to enums 2022-03-25 06:50:18 +01:00
Matthias
8d111d357a Update SellCheckTuple to new naming 2022-03-25 06:46:29 +01:00
Matthias
62e8c7b5b7 Rename parameter to avoid ambiguity 2022-03-25 06:39:57 +01:00
Matthias
d7f76ee452 Update confirm_trade_exit to use sell_reason terminology 2022-03-25 06:37:40 +01:00
மனோஜ்குமார் பழனிச்சாமி
3f98fcb0db all datetime included again 2022-03-25 09:19:39 +05:30
மனோஜ்குமார் பழனிச்சாமி
d94b84e38c datetime included again 2022-03-25 08:58:27 +05:30
Matthias
46ca773c25 Simplify some rpc code 2022-03-24 19:58:53 +01:00
Adriance
d961ddc2e2 Merge branch 'freqtrade:feat/short' into feat/short 2022-03-24 22:19:36 +08:00
Matthias
2442257856 Merge pull request #6540 from mkavinkumar1/patch-2
correcting docs for pricing of ask strategy
2022-03-24 08:02:46 +01:00
Matthias
dae9f4d877 Update doc clarity, partially revert prior commit 2022-03-24 06:50:25 +01:00
Matthias
83f6401820 Add additional endpoints to "has_optional" dict as comments 2022-03-23 19:56:29 +01:00
Matthias
08a55d4f6d Extract supported Exchanges to exchange.common 2022-03-23 19:51:44 +01:00
Matthias
e545ac1978 Revert condition to exploit lazy evaluation 2022-03-23 19:41:57 +01:00
Matthias
7d02e81857 Remove impossible TODO 2022-03-23 19:40:40 +01:00
Matthias
800d0c7f24 Ensure binance fallback file is included in releases 2022-03-23 19:40:34 +01:00
Matthias
3fa8327711 Remove sample_short_strategy - sample_strategy is a better long/short strategy example 2022-03-23 19:30:02 +01:00
மனோஜ்குமார் பழனிச்சாமி
094676def4 Removed old datetime keys and added timestamp 2022-03-23 20:47:55 +05:30
Matthias
de6519eb05 Update config builder to include okx for futures 2022-03-23 06:56:52 +01:00
Matthias
14f9d712dc Simplify okx lev_prep 2022-03-23 06:49:17 +01:00
Matthias
5791d0a394 Align kraken._get_params with okex 2022-03-23 06:49:07 +01:00
Matthias
8a708a9892 Don't assing attributes we never use 2022-03-23 06:48:23 +01:00
Matthias
71e746a060 fix missed "buy" wording in bot-basics 2022-03-23 06:48:00 +01:00
Matthias
b1e3ead88b Merge branch 'develop' into feat/short 2022-03-22 20:28:38 +01:00
Matthias
31253196ea Improve docs wording 2022-03-22 20:21:24 +01:00
Matthias
247635db79 Fix tests 2022-03-22 19:28:13 +01:00
Matthias
e7418cdcdb Remove obsolete note box
closes #6581
2022-03-22 19:03:22 +01:00
Italo
b5a346a46d Update hyperopt.py 2022-03-22 11:01:38 +00:00
Matthias
fa3c00c673 Remove some default arguments in history_utils 2022-03-22 07:20:21 +01:00
Matthias
99e9dfaebe Update missing documentation link 2022-03-22 07:02:40 +01:00
Matthias
46e86bd018 Update some hyperopt wording 2022-03-22 07:00:10 +01:00
Matthias
bc12fd6cbb Update backtest-result outputs to reflect new terminology 2022-03-22 06:47:20 +01:00
Matthias
5b4f343d36 Update buy output for backtesting 2022-03-22 06:45:36 +01:00
Matthias
08777abd85 Update backtesting output terminology to "exit" 2022-03-22 06:43:37 +01:00
Italo
2733aa33b6 Update hyperopt.py 2022-03-22 00:28:11 +00:00
Matthias
00287febc6 Merge pull request #6542 from TheJoeSchr/check_version_with_endswith
[develop] Check version with endswith
2022-03-21 22:17:39 +01:00
Matthias
487d3e891e Revert version to develop for now 2022-03-21 19:41:34 +01:00
Matthias
2c89da6bf7 Update code to properly behave when rounding open_date for funding fees 2022-03-21 19:38:27 +01:00
Matthias
4e52055a17 Merge pull request #6560 from freqtrade/inject_path_iresolver
Inject path to strategy loading
2022-03-21 19:09:14 +01:00
Matthias
35a4053dbe Merge pull request #6561 from adrianceding/fix_taker_stake_amount
Unified taker and maker's stake amount calculation logic
2022-03-21 19:07:00 +01:00
adriance
694e56cdc3 Merge branch 'fix_taker_stake_amount' into feat/short 2022-03-21 21:18:32 +08:00
Adriance
4a51ad27cf Merge branch 'freqtrade:feat/short' into feat/short 2022-03-21 21:17:25 +08:00
Italo
37a43019d6 fix
- clear cache before calling `ask`
- avoid errors in case asked_non_tried has less than n_points elements
2022-03-21 11:36:53 +00:00
Sam Germain
f03f586eeb funding_fee tests 2022-03-21 05:01:18 -06:00
Matthias
7eddc09c1c Merge pull request #6569 from freqtrade/dependabot/pip/develop/urllib3-1.26.9
Bump urllib3 from 1.26.8 to 1.26.9
2022-03-21 10:25:58 +01:00
Matthias
4db713318b Merge pull request #6568 from freqtrade/dependabot/pip/develop/types-tabulate-0.8.6
Bump types-tabulate from 0.8.5 to 0.8.6
2022-03-21 10:25:42 +01:00
Matthias
0a977291b6 Merge pull request #6571 from freqtrade/dependabot/pip/develop/mypy-0.941
Bump mypy from 0.940 to 0.941
2022-03-21 09:44:28 +01:00
dependabot[bot]
c28e0b0d0c Bump types-tabulate from 0.8.5 to 0.8.6
Bumps [types-tabulate](https://github.com/python/typeshed) from 0.8.5 to 0.8.6.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-tabulate
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 08:06:41 +00:00
dependabot[bot]
7170b585f9 Bump mypy from 0.940 to 0.941
Bumps [mypy](https://github.com/python/mypy) from 0.940 to 0.941.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v0.940...v0.941)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 08:06:25 +00:00
Matthias
47516ed353 Merge pull request #6567 from freqtrade/dependabot/pip/develop/types-requests-2.27.14
Bump types-requests from 2.27.12 to 2.27.14
2022-03-21 09:05:17 +01:00
Matthias
334452d3ee Merge pull request #6566 from freqtrade/dependabot/pip/develop/cryptography-36.0.2
Bump cryptography from 36.0.1 to 36.0.2
2022-03-21 06:32:47 +01:00
Matthias
9d756bc6a1 Merge pull request #6573 from freqtrade/dependabot/pip/develop/pytest-7.1.1
Bump pytest from 7.1.0 to 7.1.1
2022-03-21 06:32:17 +01:00
Matthias
c9dc07bdaa Merge pull request #6570 from freqtrade/dependabot/pip/develop/ccxt-1.76.65
Bump ccxt from 1.76.5 to 1.76.65
2022-03-21 06:32:06 +01:00
Matthias
2b63adf6c3 Merge pull request #6565 from freqtrade/dependabot/pip/develop/pymdown-extensions-9.3
Bump pymdown-extensions from 9.2 to 9.3
2022-03-21 06:31:51 +01:00
dependabot[bot]
057db5aaab Bump types-requests from 2.27.12 to 2.27.14
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.12 to 2.27.14.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 05:30:51 +00:00
Matthias
371f6bf90e Merge pull request #6572 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.10
Bump types-python-dateutil from 2.8.9 to 2.8.10
2022-03-21 06:29:59 +01:00
dependabot[bot]
03090d8f3f Bump pytest from 7.1.0 to 7.1.1
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.1.0 to 7.1.1.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.1.0...7.1.1)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 03:01:45 +00:00
dependabot[bot]
1a37100bd4 Bump types-python-dateutil from 2.8.9 to 2.8.10
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.9 to 2.8.10.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 03:01:41 +00:00
dependabot[bot]
5a136f04df Bump ccxt from 1.76.5 to 1.76.65
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.76.5 to 1.76.65.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.76.5...1.76.65)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 03:01:33 +00:00
dependabot[bot]
59c7403b12 Bump urllib3 from 1.26.8 to 1.26.9
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.8 to 1.26.9.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/1.26.9/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.8...1.26.9)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 03:01:23 +00:00
dependabot[bot]
1bc5d449a2 Bump cryptography from 36.0.1 to 36.0.2
Bumps [cryptography](https://github.com/pyca/cryptography) from 36.0.1 to 36.0.2.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/36.0.1...36.0.2)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 03:01:16 +00:00
dependabot[bot]
f5e71a67fa Bump pymdown-extensions from 9.2 to 9.3
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 9.2 to 9.3.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/9.2...9.3)

---
updated-dependencies:
- dependency-name: pymdown-extensions
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 03:01:11 +00:00
Matthias
4fd0681265 Combine stake_amount recalculation 2022-03-20 20:00:30 +01:00
Italo
fca93d8dfe Update hyperopt.py 2022-03-20 16:12:06 +00:00
Matthias
22206d0d76 Merge pull request #6559 from freqtrade/short_docs
Futures strategy migration docs
2022-03-20 17:12:04 +01:00
Italo
f8a674f24d make robust in case all points have been tried 2022-03-20 16:08:38 +00:00
Italo
23f1a1904b more compact 2022-03-20 16:06:41 +00:00
Italo
0fd269e4f0 typo 2022-03-20 16:03:07 +00:00
Italo
e16bb1b34e Optimize only new points
Enforce points returned from `self.opt.ask` have not been already evaluated
2022-03-20 16:02:03 +00:00
Italo
112738d68d Merge branch 'freqtrade:develop' into plot_hyperopt_stats 2022-03-20 15:42:53 +00:00
Italo
d796ce0935 Update hyperopt.py
1. Try to get points using `self.opt.ask` first
        2. Discard the points that have already been evaluated
        3. Retry using `self.opt.ask` up to 3 times
        4. If still some points are missing in respect to `n_points`, random sample some points
        5. Repeat until at least `n_points` points in the `asked_non_tried` list
        6. Return a list with legth truncated at `n_points`
2022-03-20 15:41:14 +00:00
Matthias
e9c4e6a69d Update derived strategy documentation 2022-03-20 13:21:09 +01:00
Matthias
6ec7b84b92 Modify hyperoptable strategy to use relative importing 2022-03-20 13:12:26 +01:00
Matthias
49e087df5b Allow Strategy subclassing in different files by enabling local imports 2022-03-20 13:07:06 +01:00
adriance
f01c9cd28c fix taker stake amount with leverage 2022-03-20 20:06:32 +08:00
Matthias
fcec071a08 Use order date to fetch trades
using the trade open-date may fail in case of several trade-entries spread over a longer timeperiod.

closes #6551
2022-03-20 09:46:51 +01:00
Matthias
8556e6a053 Automatically assign buy-tag to force-buys
closes #6544
2022-03-20 09:33:47 +01:00
Matthias
aceaa3faec remove last ticker_interval compatibility shim 2022-03-20 09:33:47 +01:00
Matthias
de8e869038 update missing "side" argument 2022-03-20 09:16:34 +01:00
Matthias
0f76b23733 update deprecation message for ticker_interval 2022-03-20 09:03:43 +01:00
Matthias
eb08b92180 Raise exception when ticker_interval is set. 2022-03-20 09:01:36 +01:00
Matthias
95f69b905a Remove ticker_interval support 2022-03-20 09:00:53 +01:00
Matthias
a64ca541a2 Merge pull request #6555 from freqtrade/inverse_leverage_minstake
Inverse leverage with stake detection
2022-03-20 08:38:59 +01:00
Matthias
c38f8a0e69 Update custom_sell() documentation 2022-03-20 08:33:53 +01:00
Matthias
d27a37be0d Update docs for populate_exit_trend 2022-03-20 08:30:14 +01:00
Matthias
59791b0659 Update populate_buy_trend to populate_entry_trend 2022-03-20 08:30:14 +01:00
Matthias
9d6d8043ee update FAQ to reflect new reality 2022-03-20 08:30:14 +01:00
Matthias
cd3ae7ebdf Update migration docs to include buy/entry trend migration 2022-03-20 08:30:14 +01:00
Matthias
25aba9c422 reformat leverage docs 2022-03-20 08:30:14 +01:00
Matthias
e51a1e1b20 Improve documentation, add "can_short" 2022-03-20 08:30:14 +01:00
Matthias
6a80c0f030 Add order_types migration docs 2022-03-20 08:30:14 +01:00
Matthias
7c7b0d1fcc Update documentation for time_in_force migration 2022-03-20 08:30:14 +01:00
Matthias
c89a68c1ab Alternative candle types 2022-03-20 08:30:14 +01:00
Matthias
36287a84cb enhance migration documentation 2022-03-20 08:30:14 +01:00
Matthias
23b98fbb73 Update some documentation for short trading 2022-03-20 08:30:14 +01:00
Matthias
72fd937a74 INTERFACE_VERSION to 3 2022-03-20 08:30:14 +01:00
Matthias
ee77ae3ada Add strategy-migration doc page 2022-03-20 08:30:14 +01:00
Matthias
052758bbac Refactor price and stake out of _enter_trade 2022-03-19 15:45:43 +01:00
Matthias
b292f28b35 Call leverage before custom_stake_amount to properly determine min-stake-amount 2022-03-19 15:44:37 +01:00
Matthias
35607ae03b Add test for min_leverage 2022-03-19 15:44:37 +01:00
Matthias
7d8ca63752 Merge pull request #6550 from freqtrade/short_tickerproblems
Short tickerproblems
2022-03-19 15:43:40 +01:00
Matthias
f44601d0cc Update ccxt-compat test config 2022-03-19 14:45:35 +01:00
Matthias
9f34f824af Fix hyperopt when using futures markets 2022-03-19 13:20:14 +01:00
Matthias
97c1316bf1 Add new validation to validate excludes 2022-03-18 19:26:54 +01:00
Matthias
d32153c8d3 Validate pricing configuration 2022-03-18 17:07:12 +01:00
Matthias
2791e799ee Rename tickers_has_quoteVolume 2022-03-18 16:49:37 +01:00
Matthias
1de5d2fb94 Remove unnecessary condition 2022-03-18 16:44:27 +01:00
Matthias
0c63c0bbb3 Update Gateio stoploss adjust 2022-03-18 10:41:38 +01:00
Matthias
f37038fb7d Fix gateio stoploss_adjust header 2022-03-18 10:35:00 +01:00
Matthias
7868e50141 Merge branch 'develop' into feat/short 2022-03-18 08:18:17 +01:00
Matthias
208a139d2b Incorporate fetch_bids_asks to allow binance spread filter to work
closes #6474
2022-03-18 07:08:16 +01:00
Matthias
fdce055061 Update deep_merge_dicts to disallow null-overrides 2022-03-18 06:58:22 +01:00
Matthias
73fc344eb1 Improve wording in docs 2022-03-18 06:38:54 +01:00
Matthias
b56aab0bdf Update Volumepairlist type 2022-03-18 06:34:35 +01:00
Matthias
f55db8e262 Spreadfilter should fail to start if fetchTickers is not supported 2022-03-17 20:21:10 +01:00
Matthias
1299a703e2 Implement fix for okx futures not having quoteVolume 2022-03-17 20:15:51 +01:00
Matthias
a13b633c56 update VOlumepairlist to also work without tickers 2022-03-17 20:11:56 +01:00
Matthias
b6a6aa48c9 Create separate _ft_has_futures dict 2022-03-17 20:05:05 +01:00
Matthias
b97522796b Merge pull request #6547 from freqtrade/short_bt_tests
Short bt tests
2022-03-17 17:20:42 +01:00
Matthias
96bf82dbc6 Remove gateio broker program 2022-03-17 17:06:10 +01:00
Matthias
6024fa482e Use brackets to break IF lines 2022-03-17 07:41:08 +01:00
Matthias
9b2ec5e653 Fix missleading variable naming 2022-03-17 06:58:08 +01:00
Matthias
20f02eb773 Add test for stoploss case 2022-03-16 21:28:24 +01:00
Matthias
2fab3de4d7 More backtest-detail tests 2022-03-16 20:12:09 +01:00
Matthias
295668d06c Add a few testcases 2022-03-16 20:12:09 +01:00
Matthias
d6309449cf Fix short bug where close_rate is wrongly adjusted 2022-03-16 20:12:09 +01:00
Matthias
c934f939e3 Update a few more short tests 2022-03-16 20:12:09 +01:00
Matthias
c0781a98e8 Add ROI test 2022-03-16 20:12:09 +01:00
Matthias
a89c1da19f Fix 2 bugs in ROI calculation 2022-03-16 20:12:09 +01:00
Matthias
298797cbfd Add stoploss short test 2022-03-16 20:12:09 +01:00
Matthias
c47b5b9087 Update bt_detail column descriptions 2022-03-16 20:12:00 +01:00
Matthias
84e9dc5001 Merge pull request #6537 from adrianceding/fs_fix
Add BT's leverage and short calculation
2022-03-16 19:25:19 +01:00
froggleston
162e94455b Add support for storing buy candle indicator rows in backtesting results 2022-03-16 12:16:24 +00:00
adriance
8f432fe468 Merge branch 'feat/short' into fs_fix 2022-03-16 14:22:08 +08:00
Matthias
7c9d2dd20a Fix a few more short bugs in backtesting 2022-03-16 07:00:50 +01:00
Joe Schr
47317e0f06 version: use 'contains' to check for "develop" instead of literal comparison 2022-03-15 21:08:37 +01:00
Kavinkumar
89aae71c32 correcting docs for pricing of ask strategy 2022-03-15 11:41:39 +05:30
adriance
ceba4d6e9b Remove meaningless code 2022-03-15 14:03:06 +08:00
Matthias
cbbdf00ddd Update comments in short backtest rates 2022-03-15 06:39:07 +01:00
Matthias
ebd61ebdef Merge pull request #6513 from samgermain/gateio-stoploss
Gateio stoploss on exchange
2022-03-15 06:27:54 +01:00
adriance
fd211166f0 fixed side error 2022-03-15 12:23:59 +08:00
adriance
7059892304 Optimize the code. Fix stop_rate judgment error 2022-03-15 12:04:02 +08:00
Matthias
12948aade6 Remove unused argument 2022-03-14 19:29:26 +01:00
Matthias
18030a30e7 Add exchange parameter to test-pairlist command
This will allow for quick tests of the same pairlist config against
multiple exchanges.
2022-03-14 19:21:58 +01:00
adriance
7dd57e8c04 format 2022-03-14 18:39:11 +08:00
adriance
31182c4d80 format 2022-03-14 18:38:44 +08:00
adriance
1d4eeacc6d fix test_backtest__enter_trade_futures row data error 2022-03-14 17:55:42 +08:00
Matthias
3b53ffb22f Merge pull request #6533 from freqtrade/dependabot/pip/develop/ccxt-1.76.5
Bump ccxt from 1.75.12 to 1.76.5
2022-03-14 07:58:49 +01:00
Matthias
8cb3158810 Merge pull request #6532 from freqtrade/dependabot/pip/develop/uvicorn-0.17.6
Bump uvicorn from 0.17.5 to 0.17.6
2022-03-14 07:14:18 +01:00
Matthias
717a4b82fe Merge pull request #6529 from freqtrade/dependabot/pip/develop/mypy-0.940
Bump mypy from 0.931 to 0.940
2022-03-14 07:14:01 +01:00
adriance
26a74220fd remove buy filled logic 2022-03-14 13:43:42 +08:00
adriance
bea38a2e7c remove filled date logic 2022-03-14 13:42:52 +08:00
dependabot[bot]
5462ff0ebc Bump mypy from 0.931 to 0.940
Bumps [mypy](https://github.com/python/mypy) from 0.931 to 0.940.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v0.931...v0.940)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 05:25:16 +00:00
Matthias
af1543ea37 Merge pull request #6534 from freqtrade/dependabot/pip/develop/types-requests-2.27.12
Bump types-requests from 2.27.11 to 2.27.12
2022-03-14 06:24:37 +01:00
Matthias
edda5b4ceb Merge pull request #6531 from freqtrade/dependabot/pip/develop/types-cachetools-5.0.0
Bump types-cachetools from 4.2.10 to 5.0.0
2022-03-14 06:24:22 +01:00
Matthias
a419e7012e Merge pull request #6535 from freqtrade/dependabot/pip/develop/nbconvert-6.4.4
Bump nbconvert from 6.4.2 to 6.4.4
2022-03-14 06:24:04 +01:00
Matthias
404d700a74 Raise min-requirement for ccxt 2022-03-14 06:23:48 +01:00
Matthias
c5cb617c92 Merge pull request #6536 from freqtrade/dependabot/pip/develop/numpy-1.22.3
Bump numpy from 1.22.2 to 1.22.3
2022-03-14 06:22:43 +01:00
Matthias
999a154213 Merge pull request #6530 from freqtrade/dependabot/pip/develop/pytest-7.1.0
Bump pytest from 7.0.1 to 7.1.0
2022-03-14 06:22:16 +01:00
adriance
a750369796 adjust none 2022-03-14 12:09:13 +08:00
adriance
f9e93cf3f8 fix buy filled date none 2022-03-14 11:55:36 +08:00
adriance
3d9c55d519 restore set_isolated_liq 2022-03-14 11:29:26 +08:00
adriance
c9bbc4a824 Merge branch 'feat/short' into fs_fix 2022-03-14 11:26:04 +08:00
dependabot[bot]
3fbe4a9944 Bump numpy from 1.22.2 to 1.22.3
Bumps [numpy](https://github.com/numpy/numpy) from 1.22.2 to 1.22.3.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.22.2...v1.22.3)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 03:01:30 +00:00
dependabot[bot]
a7133f1974 Bump nbconvert from 6.4.2 to 6.4.4
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 6.4.2 to 6.4.4.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Commits](https://github.com/jupyter/nbconvert/compare/6.4.2...6.4.4)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 03:01:20 +00:00
dependabot[bot]
4cbdc9a74f Bump types-requests from 2.27.11 to 2.27.12
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.11 to 2.27.12.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 03:01:17 +00:00
dependabot[bot]
3fc1c94aba Bump ccxt from 1.75.12 to 1.76.5
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.75.12 to 1.76.5.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.75.12...1.76.5)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 03:01:14 +00:00
dependabot[bot]
3a0ad2f26e Bump uvicorn from 0.17.5 to 0.17.6
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.17.5 to 0.17.6.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.17.5...0.17.6)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 03:01:07 +00:00
dependabot[bot]
7764ad1541 Bump types-cachetools from 4.2.10 to 5.0.0
Bumps [types-cachetools](https://github.com/python/typeshed) from 4.2.10 to 5.0.0.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 03:01:03 +00:00
dependabot[bot]
be5b0acfbd Bump pytest from 7.0.1 to 7.1.0
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.0.1 to 7.1.0.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.0.1...7.1.0)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 03:01:00 +00:00
Matthias
c63b5fbbbf Use last to get rates for /balance endpoints 2022-03-13 17:53:52 +01:00
Matthias
32c06f4a05 Improve test 2022-03-13 16:45:11 +01:00
Matthias
d5f0c6c78d Exclude alternative candletypes from timeframe check 2022-03-13 16:16:48 +01:00
Matthias
cfa9458bcc Merge branch 'develop' into feat/short 2022-03-13 15:38:12 +01:00
Matthias
3133be19e3 Update precisionfilter to use last instead of ask or bid. 2022-03-13 15:23:01 +01:00
Matthias
7146122f4a Update docstring 2022-03-13 15:06:32 +01:00
Matthias
b8b56d95f3 Update missleading docstring 2022-03-13 14:57:32 +01:00
Matthias
9107819c95 Fix order migration "forgetting" average 2022-03-13 14:42:15 +01:00
adriance
0fce0f64d1 Merge branch 'feat/short' into fs_fix 2022-03-13 14:41:22 +08:00
Matthias
099547c1ec Merge pull request #6527 from adrianceding/feat/short
fix duplicate long
2022-03-13 07:18:48 +01:00
adriance
52bf926066 fix duplicate long 2022-03-13 12:26:57 +08:00
adriance
56c4ea6619 Merge branch 'feat/short' into fs_fix 2022-03-13 12:13:33 +08:00
Sam Germain
843606c9cb gateio stoploss adjust 2022-03-12 20:14:23 -06:00
Sam Germain
91549d3254 Revert "stoploss_adjust fixed breaking tests"
This reverts commit 6f4d607902.
2022-03-12 20:07:56 -06:00
Sam Germain
7e7e596372 Revert "moved binance.stoploss_adjust to exchange class"
This reverts commit 6bb93bdc25.
2022-03-12 20:07:50 -06:00
Sam Germain
bf5afbcdbd Merge branch 'develop' into gateio-stoploss 2022-03-12 19:50:46 -06:00
Sam Germain
2ba79a32a0 Update docs/exchanges.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2022-03-12 19:42:40 -06:00
Matthias
f343036e66 Add stoploss-ordertypes mapping for gateio 2022-03-12 19:23:20 +01:00
Matthias
b8cbc4dcb7 Merge pull request #6523 from freqtrade/short_exit_trend
Update methods wording
2022-03-12 15:53:11 +01:00
Matthias
b044dd2c45 Update custom_sell to custom_exit 2022-03-12 11:37:56 +01:00
Matthias
fe62a71f4c Simplify implementation of "check_override" by extracting it to function 2022-03-12 10:58:48 +01:00
Matthias
6946203a7c Add tests and test-strategies for custom "implements" requirements 2022-03-12 10:05:16 +01:00
adriance
b5662d6547 Merge branch 'feat/short' into fs_fix 2022-03-12 16:50:27 +08:00
Matthias
9460fd8d75 Add Appropriate test for loading error 2022-03-12 09:49:20 +01:00
Matthias
28046c6a22 Change populate_buy_trend to populate_entry_trend 2022-03-12 09:38:28 +01:00
Matthias
efc313b28b Merge pull request #6512 from freqtrade/short_order_types
Short order types renamal
2022-03-12 09:32:16 +01:00
Matthias
7d1e487be5 Merge pull request #6522 from freqtrade/is_short_strat
Is short strat
2022-03-12 09:31:51 +01:00
Matthias
b9b5d749bb Fix typo causing an implicit bug 2022-03-12 08:58:59 +01:00
Matthias
12c909d8a8 Add can_short to sample strategies 2022-03-12 07:00:57 +01:00
Matthias
0aa170ac95 Check can_short in live-mode as well. 2022-03-12 06:58:22 +01:00
Matthias
20fc9459f2 Add test for can_short strategy attribute 2022-03-11 19:37:45 +01:00
Matthias
1c9dbb512a Initial attempt at is_short_strategy block 2022-03-11 19:29:40 +01:00
Matthias
7825d855cd Fix flake8 error in tests 2022-03-11 19:28:15 +01:00
Italo
d2a5448305 Update hyperopt.py 2022-03-11 17:38:32 +00:00
Italo
1a573d57b9 Merge branch 'freqtrade:develop' into plot_hyperopt_stats 2022-03-11 17:36:00 +00:00
Matthias
11c76c3c89 Check if timeframe is available before calling exchange
closes #6517
2022-03-11 18:01:30 +01:00
adriance
51947ded6b Merge branch 'feat/short' into fs_fix 2022-03-11 22:35:35 +08:00
Matthias
24f480b4ce Double-check stoploss behaviour
closes #6508
2022-03-11 08:28:47 +01:00
Matthias
9ff52c0a93 Add test for emergencysell behaviour 2022-03-11 08:26:28 +01:00
Matthias
f6c263882d Update outdated TODO-lev 2022-03-10 07:09:48 +01:00
Matthias
cb9da78a27 Merge branch 'develop' into feat/short 2022-03-10 06:54:20 +01:00
Matthias
98755c1874 Fix wrong estimated output from /balance endpoints 2022-03-10 06:47:17 +01:00
Sam Germain
6f4d607902 stoploss_adjust fixed breaking tests 2022-03-09 19:31:51 -06:00
Sam Germain
7db28b1b16 gateio stoploss docs 2022-03-09 15:54:17 -06:00
Sam Germain
6bb93bdc25 moved binance.stoploss_adjust to exchange class 2022-03-09 15:47:16 -06:00
Matthias
0d754111e9 Fix dry-run-wallets bug in case of futures 2022-03-09 19:02:22 +01:00
Matthias
a837571e2b Improve dry-run-wallets in futures case test 2022-03-09 19:01:38 +01:00
Matthias
6e10439f90 Map usdt fiat to correct coingecko fiat 2022-03-09 17:35:41 +01:00
adriance
499e9c3e98 fix duration 2022-03-10 00:34:59 +08:00
adriance
d579febfec add filled time 2022-03-09 23:55:57 +08:00
adriance
14bce0b1c3 Merge branch 'feat/short' into fs_fix 2022-03-09 22:07:54 +08:00
adriance
1c86e69c34 use filled time calculate duration 2022-03-09 21:55:13 +08:00
adriance
82e0eca128 add short close rate calu 2022-03-09 20:00:06 +08:00
Sam Germain
d47274066e Added stoploss_on_exchange flag to gateio 2022-03-09 01:05:21 -06:00
Sam Germain
ae4742afcb test_fetch_stoploss_order_gateio and test_cancel_stoploss_order_gateio 2022-03-09 00:59:28 -06:00
Sam Germain
e3ced55f5c gateio.fetch_order and gateio.cancel_order 2022-03-09 00:45:50 -06:00
Sam Germain
61182f849b exchange.fetch_order and exchange.cancel_order added params argument 2022-03-09 00:45:10 -06:00
Matthias
93a91bdeee Update order_Types documentation 2022-03-09 07:44:21 +01:00
Matthias
50ab0dc6c5 Fix subtle bug 2022-03-09 07:04:59 +01:00
Matthias
51828a0b0b Update buy-signals to entry wording 2022-03-09 07:03:37 +01:00
Matthias
66afc233db Use Deprecated method for order_Time_in_force 2022-03-09 06:54:13 +01:00
Matthias
943d080f5e Add test for order-types migration 2022-03-09 06:37:08 +01:00
Matthias
420cc5c595 deprecated-setting moval should delete old setting 2022-03-09 06:37:08 +01:00
Matthias
5d4386f037 Implement order_types validation 2022-03-09 06:37:08 +01:00
Matthias
e492bf3159 Update order_types to use entry/exit definition 2022-03-09 06:37:08 +01:00
Matthias
f2ed6165e9 convert price to precision price before verifying stoploss adjustment
closes #6504
2022-03-08 19:35:30 +01:00
dingzhoufeng
9facd5b52a Merge branch 'feat/short' into fs_fix 2022-03-08 15:14:11 +08:00
Matthias
1ce55e88b4 Try to revert sequence in test 2022-03-08 07:10:59 +01:00
Matthias
b4ec2b3a5a Merge pull request #6507 from freqtrade/short_order_tif
Update order time in force to use entry/exit wording
2022-03-08 06:31:05 +01:00
dingzhoufeng
53ecdb931b add leverage 2022-03-08 12:26:43 +08:00
Matthias
3ff261e22c Update order time in force to use entry/exit wording 2022-03-07 19:55:15 +01:00
Matthias
17041b78fc Add stoploss-limit-ratio to full config sample 2022-03-07 19:39:15 +01:00
Matthias
da733a458d Merge pull request #6505 from freqtrade/rename_liq_col
rename column to liquidation_price
2022-03-07 19:02:39 +01:00
Matthias
d2a163e2cf rename column to liquidation_price 2022-03-07 17:16:33 +01:00
Matthias
f0252cf79d Merge pull request #6497 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.32
Bump sqlalchemy from 1.4.31 to 1.4.32
2022-03-07 12:52:15 +01:00
Matthias
2748b113ee Merge pull request #6495 from freqtrade/short_fixliq
Simplify and align liquidation price handling
2022-03-07 07:39:16 +01:00
Matthias
98acff8169 Merge pull request #6500 from freqtrade/dependabot/pip/develop/types-cachetools-4.2.10
Bump types-cachetools from 4.2.9 to 4.2.10
2022-03-07 07:04:31 +01:00
Matthias
26f6d8076d Merge pull request #6498 from freqtrade/dependabot/pip/develop/pytest-asyncio-0.18.2
Bump pytest-asyncio from 0.18.1 to 0.18.2
2022-03-07 06:25:20 +01:00
Matthias
82595f3a5d Merge pull request #6501 from freqtrade/dependabot/pip/develop/ccxt-1.75.12
Bump ccxt from 1.74.63 to 1.75.12
2022-03-07 06:25:07 +01:00
Matthias
805a04a6cb Merge pull request #6496 from freqtrade/dependabot/pip/develop/fastapi-0.75.0
Bump fastapi from 0.74.1 to 0.75.0
2022-03-07 06:24:56 +01:00
Matthias
07524e9f37 Merge pull request #6499 from freqtrade/dependabot/pip/develop/mkdocs-material-8.2.5
Bump mkdocs-material from 8.2.3 to 8.2.5
2022-03-07 06:24:40 +01:00
Matthias
749e0dd5a0 Merge pull request #6502 from freqtrade/dependabot/github_actions/develop/actions/setup-python-3
Bump actions/setup-python from 2 to 3
2022-03-07 06:24:14 +01:00
dependabot[bot]
3c83d8c74a Bump actions/setup-python from 2 to 3
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 3.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 05:24:08 +00:00
Matthias
46c3f56bf5 Merge pull request #6503 from freqtrade/dependabot/github_actions/develop/actions/checkout-3
Bump actions/checkout from 2 to 3
2022-03-07 06:23:41 +01:00
dependabot[bot]
25964f70d8 Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 03:12:15 +00:00
dependabot[bot]
0c8dd7e502 Bump ccxt from 1.74.63 to 1.75.12
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.74.63 to 1.75.12.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.74.63...1.75.12)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 03:01:33 +00:00
dependabot[bot]
f1d2cb9ce4 Bump types-cachetools from 4.2.9 to 4.2.10
Bumps [types-cachetools](https://github.com/python/typeshed) from 4.2.9 to 4.2.10.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 03:01:25 +00:00
dependabot[bot]
1d63bb66a9 Bump mkdocs-material from 8.2.3 to 8.2.5
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.2.3 to 8.2.5.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.2.3...8.2.5)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 03:01:23 +00:00
dependabot[bot]
67a8b8b631 Bump pytest-asyncio from 0.18.1 to 0.18.2
Bumps [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) from 0.18.1 to 0.18.2.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.18.1...v0.18.2)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 03:01:19 +00:00
dependabot[bot]
708def3d96 Bump sqlalchemy from 1.4.31 to 1.4.32
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.31 to 1.4.32.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 03:01:15 +00:00
dependabot[bot]
d74e3091de Bump fastapi from 0.74.1 to 0.75.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.74.1 to 0.75.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.74.1...0.75.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 03:01:09 +00:00
Matthias
4988e56bfe Full config should still default to spot markets 2022-03-06 16:35:31 +01:00
Matthias
6360ef029c Simplify and align liquidation price handling 2022-03-06 16:27:55 +01:00
Matthias
612ede5e48 Merge pull request #6468 from samgermain/todos
todos
2022-03-06 16:03:05 +01:00
Matthias
667054e1ad Reorder methods in trade object 2022-03-06 15:07:07 +01:00
Matthias
46e17c9762 Fix stoploss_pct set wrongly for short trades 2022-03-06 15:07:04 +01:00
Matthias
cc38f0656d Explicitly check for None to determine if initial stoploss was set
closes #6460
2022-03-06 15:06:57 +01:00
Matthias
08d8dfaee6 Remove wrong import 2022-03-06 14:47:26 +01:00
Matthias
81d4a61353 Update more trades 2022-03-06 14:33:04 +01:00
Matthias
bc37f67e76 Add one more test 2022-03-06 14:18:25 +01:00
Matthias
76e5d5b232 Fix stake-amount handling for dry-run 2022-03-05 15:53:40 +01:00
Matthias
f571fee899 Merge pull request #6494 from freqtrade/stoploss_special_ccase
Explicitly check for None to determine if initial stoploss was set
2022-03-05 15:15:45 +01:00
Matthias
0bac7f824e Merge pull request #6492 from samgermain/feat/short
Merge develop into feat/short
2022-03-05 14:47:34 +01:00
Matthias
7a545f49af Improve test stability by making keys optional in the ccxt test-matrix 2022-03-05 14:15:58 +01:00
Matthias
be4bc4955c Explicitly check for None to determine if initial stoploss was set
closes #6460
2022-03-05 14:12:14 +01:00
Matthias
2b1a8f2fbb Update binance stoploss to use correct stop order for futures 2022-03-05 13:57:54 +01:00
Matthias
685820cc12 Fix failures due to non-happening rounding 2022-03-04 19:48:34 +01:00
Matthias
8943d42509 Update telegram notifications to properly detect shorts 2022-03-04 19:42:33 +01:00
Matthias
9576fab621 Re-remove amount to precision from trade entry 2022-03-04 07:16:06 +01:00
Matthias
cee126a2cf extract stop_limit-rate calculation 2022-03-04 07:10:14 +01:00
Matthias
62dcebee46 Update stoploss method to new functionality 2022-03-04 07:07:34 +01:00
Matthias
011cd58377 Adjust new stoploss tests to futures world 2022-03-04 06:58:34 +01:00
Matthias
7435b5ec96 Fix small merge errors 2022-03-04 06:58:21 +01:00
Matthias
0622654bcf Give tests a chance to pass 2022-03-04 06:50:42 +01:00
Sam Germain
488da9b875 Merge branch 'develop' into feat/short 2022-03-03 13:51:52 -06:00
Matthias
819b35747d Minor documentation updates 2022-03-03 20:24:06 +01:00
Matthias
c0e12d632f Add FTX ref links 2022-03-03 19:19:10 +01:00
Matthias
1d3ce5bef4 Remove duplicate call to init_db 2022-03-03 07:23:10 +01:00
Matthias
5ab72ac082 chore: realign enums imports 2022-03-03 07:07:33 +01:00
Matthias
9bcc79e118 Use parsed TradingMode from config 2022-03-03 07:06:13 +01:00
Matthias
5332c441b9 Fix fail test - add more TODO's 2022-03-03 07:00:10 +01:00
Matthias
f558d4b132 Merge pull request #6467 from samgermain/backtest-liq
Liquidation price in backtesting
2022-03-03 06:50:32 +01:00
Matthias
761ac6685a Merge pull request #6489 from samgermain/gateio-market
gateio market orders futures
2022-03-03 06:34:06 +01:00
Sam Germain
dfb72d8a2f gateio market orders futures 2022-03-02 21:37:53 -06:00
Italo
0804ef411b Merge branch 'freqtrade:develop' into plot_hyperopt_stats 2022-03-03 01:44:41 +00:00
Matthias
e9456cdf15 Update trade response to use a single Order object 2022-03-02 19:58:08 +01:00
Matthias
17c9c3caf3 Enable orders via API 2022-03-02 19:58:08 +01:00
Sam Germain
8a9c6e27a5 docs/leverage.md: Added freqtrade_liquidation_price formula to docs 2022-03-02 12:53:24 -06:00
Matthias
eb30c40e0c Fix hyperopt for futures 2022-03-02 19:50:16 +01:00
Sam Germain
c9988e0aa2 test_backtest__enter_trade_futures comment calculations include liquidation buffer 2022-03-02 12:46:31 -06:00
Matthias
c5cf73e67b hdf5 datahandler should also create directory 2022-03-02 19:41:14 +01:00
Sam Germain
c0e11beced linting 2022-03-02 01:30:52 -06:00
Sam Germain
c0fb6f7e85 test_backtest__enter_trade_futures - fixed formula in comments 2022-03-02 01:26:47 -06:00
Matthias
d4fbb785b5 Merge pull request #6458 from stash86/pos_adjust
Hide sell_reason if a trade is still open
2022-03-02 07:23:49 +01:00
Matthias
1c4a7c25d7 Fix failing test 2022-03-02 07:14:36 +01:00
Matthias
478d440e80 Test backtesting with USDT pairs 2022-03-02 07:00:07 +01:00
Matthias
b18256c231 Merge pull request #6487 from samgermain/setup-gettext
setup.sh install gettext for mac
2022-03-02 06:39:27 +01:00
Matthias
71be547d82 Bump ccxt to 1.74.63
closes #6484
2022-03-02 06:26:00 +01:00
Sam Germain
abc8854b5a setup.sh install gettext for mac 2022-03-01 17:38:38 -06:00
Matthias
f74de1cca3 Improve Backtesting "wrong setup" message to include tradable_balance 2022-03-01 19:46:13 +01:00
Matthias
54165662ce Don't require unfilledtimeout, it's optional. 2022-03-01 19:41:26 +01:00
Matthias
69cfb0b278 Revert change to telegram - this should be handled at the source 2022-03-01 19:32:25 +01:00
Matthias
c2b90afa61 Merge branch 'develop' into pr/stash86/6458 2022-03-01 19:31:36 +01:00
Matthias
a2c9879375 Reset sell-reason if order is cancelled 2022-03-01 19:30:16 +01:00
Matthias
736a930152 Update small things 2022-03-01 19:23:14 +01:00
Matthias
f26247e8e0 Revert wrong version string 2022-03-01 19:08:04 +01:00
Matthias
e8206bc751 Simplify backtesting enter_Trade 2022-02-28 20:10:23 +01:00
Matthias
1b07ad92cf Merge branch 'feat/short' into pr/samgermain/6467 2022-02-28 20:07:19 +01:00
Matthias
c745f5828c Update comments to clarify it's supposed to be a "offline" call 2022-02-28 20:05:14 +01:00
Matthias
c39e7368ee Split backtesting test to properly initialize it 2022-02-28 19:58:44 +01:00
Matthias
e005439720 Merge pull request #6400 from freqtrade/short_dca
trade-adjustment for short trades
2022-02-28 19:47:50 +01:00
Matthias
79538368db Simplify liquidation price calculation 2022-02-28 19:47:21 +01:00
Matthias
ab46476e63 Rename get_liquidation method 2022-02-28 19:42:26 +01:00
Matthias
1d27cbd01f Simplify leverage_prep interface 2022-02-28 19:34:10 +01:00
Matthias
8e2d3445a7 Move leverage_prep calculations to exchange class 2022-02-28 19:29:42 +01:00
Matthias
bc92225441 Add todo about leverage_prep 2022-02-28 19:23:14 +01:00
Matthias
dca83b070d Merge pull request #6478 from freqtrade/dependabot/pip/develop/fastapi-0.74.1
Bump fastapi from 0.74.0 to 0.74.1
2022-02-28 07:08:02 +01:00
Matthias
68bc2a6107 Add huobi to ccxt compat tests 2022-02-28 07:00:52 +01:00
Matthias
a922c4df70 Merge pull request #6477 from freqtrade/dependabot/pip/develop/ccxt-1.74.43
Bump ccxt from 1.74.17 to 1.74.43
2022-02-28 06:52:18 +01:00
Matthias
cf22926cee Merge pull request #6475 from freqtrade/dependabot/pip/develop/mkdocs-material-8.2.3
Bump mkdocs-material from 8.2.1 to 8.2.3
2022-02-28 06:50:48 +01:00
Matthias
151841965a Merge pull request #6476 from freqtrade/dependabot/pip/develop/types-requests-2.27.11
Bump types-requests from 2.27.10 to 2.27.11
2022-02-28 06:34:34 +01:00
dependabot[bot]
207b211e5e Bump fastapi from 0.74.0 to 0.74.1
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.74.0 to 0.74.1.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.74.0...0.74.1)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-28 03:01:38 +00:00
dependabot[bot]
42fbec4172 Bump ccxt from 1.74.17 to 1.74.43
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.74.17 to 1.74.43.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.74.17...1.74.43)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-28 03:01:29 +00:00
dependabot[bot]
faf6a35ad7 Bump types-requests from 2.27.10 to 2.27.11
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.10 to 2.27.11.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-28 03:01:20 +00:00
dependabot[bot]
590944a600 Bump mkdocs-material from 8.2.1 to 8.2.3
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.2.1 to 8.2.3.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.2.1...8.2.3)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-28 03:01:17 +00:00
Sam Germain
1121965c6e liq backtesting tests 2022-02-27 14:28:28 -06:00
Matthias
7948224892 leverage_prep should also becalled after filling a entry ordre 2022-02-27 21:14:28 +01:00
Sam Germain
b103045a05 backtesting._enter_trade update liquidation price on increased position 2022-02-27 12:09:45 -06:00
Sam Germain
6fdcc714bf backtesting margin_mode key fix 2022-02-27 11:59:27 -06:00
Matthias
1ac360674c Update Readme quickstart
#6472
2022-02-27 17:37:46 +01:00
Matthias
437b12fab7 Use trade.* props where possible 2022-02-27 17:16:38 +01:00
Matthias
33be14e7e2 Update stake_amount calculation with multiple entries when using leverage 2022-02-27 17:09:29 +01:00
Matthias
0ebf40f390 Don't call amount_to_precision twice on entry 2022-02-27 15:57:44 +01:00
Matthias
5c2cca50e5 Minor updates, document no leverage changes 2022-02-27 15:44:23 +01:00
Matthias
1b6548c8d8 Don't modify leverage through DCA 2022-02-27 15:44:23 +01:00
Matthias
536f54cfc6 is_short for forceentries 2022-02-27 15:44:23 +01:00
Matthias
f0f5a50975 Update tests to test DCA for shorts 2022-02-27 15:44:23 +01:00
Matthias
eed516a5c6 Update DCA logic to some extend 2022-02-27 15:44:23 +01:00
Matthias
bcfa73d492 Add "nr_of_successfull_entries" 2022-02-27 15:44:23 +01:00
Matthias
5c9dddb7f3 Merge pull request #6466 from samgermain/stoploss
Leverage stoploss
2022-02-27 15:30:58 +01:00
Matthias
7b9880035b Remove wrong TODO-lev comment 2022-02-27 15:11:09 +01:00
Sam Germain
8af2ea754f add margin mode to backtesting 2022-02-26 14:11:21 -06:00
Sam Germain
7508f79b6c test_freqtradebot, is_short tests 2022-02-26 13:55:52 -06:00
Sam Germain
b363940baf Add TODO-lev comment in test_handle_stoploss_on_exchange 2022-02-26 13:55:37 -06:00
Sam Germain
499e21517b test_persistence tests for stoploss with leverage adjustements 2022-02-26 13:55:37 -06:00
Sam Germain
78194559f4 persistence.adjust_stop_loss accounts for leverage 2022-02-26 13:55:37 -06:00
Sam Germain
ac433eebfe stoploss in freqtradebot leverage adjustment 2022-02-26 13:55:37 -06:00
Sam Germain
6dbd249570 backtesting._enter_trade get liquidation_price and backtesting._leverage_prep 2022-02-26 13:55:01 -06:00
Matthias
92ad353169 Fix OKX exception 2022-02-26 20:13:24 +01:00
Matthias
12a1e27708 Merge pull request #6456 from samgermain/lev-tier-update
Lev tier update
2022-02-26 19:55:30 +01:00
Matthias
e9f3f3d859 Fix random test failure (2nd try) 2022-02-26 17:08:35 +01:00
Sam Germain
7dab70f1a5 test_ccxt_compat - ftx["futures"] = false 2022-02-26 09:45:15 -06:00
Sam Germain
64172bc98d removed TODOs in test_CCXT_compat 2022-02-26 09:27:38 -06:00
Sam Germain
fbcd260bf6 flake8 import issues 2022-02-26 09:05:51 -06:00
Sam Germain
af77358d6a updated test_load_leverage_tiers_okx 2022-02-26 09:05:51 -06:00
Sam Germain
b71fb1fdec upgrade CCXT to 1.74.22 2022-02-26 09:05:51 -06:00
Sam Germain
f5ea7827e0 removed gateio.get_max_leverage and gateio.get_maint_ratio_and_amt 2022-02-26 09:05:51 -06:00
Sam Germain
6cd01c45d5 exchange.get_leverage_tiers and exchange.get_market_leverage_tiers 2022-02-26 09:05:51 -06:00
Sam Germain
c7e87e86e2 added exception handlers to fetch_market_leverage_tiers 2022-02-26 09:05:51 -06:00
Sam Germain
421aa31c92 upgrade CCXT to 1.74.9 2022-02-26 09:05:51 -06:00
Sam Germain
b61cfada6d moved okex.load_leverage_tiers to new method 2022-02-26 09:05:51 -06:00
Matthias
79ddc9abaa Merge pull request #6423 from samgermain/wallet-amt
Futures wallet amount
2022-02-26 15:55:28 +01:00
Matthias
e25929f50a Update test to not fail randomly 2022-02-26 15:53:01 +01:00
Matthias
fdbd75501f Merge pull request #6465 from freqtrade/huobi
Huobi
2022-02-26 15:24:42 +01:00
Matthias
75868a851b Attempt Fix random test failure 2022-02-26 15:20:56 +01:00
Matthias
41316abb55 Sort supported exchanges alphabetically 2022-02-26 14:57:17 +01:00
Matthias
14d49e85af Update Huobi stoploss to shared method 2022-02-26 14:57:13 +01:00
Matthias
a1f2f6ddeb Updates required for huobi datadownload 2022-02-26 10:33:37 +01:00
Matthias
f3421dfa9f Use unified stopPrice argument 2022-02-26 10:33:37 +01:00
Matthias
1b91be08fe Add huobi to list of supported exchanges 2022-02-26 10:33:37 +01:00
Matthias
292c350885 Add stoploss support for huobi 2022-02-26 10:33:36 +01:00
Matthias
9504b3eb05 Improve huobi config generation 2022-02-26 10:33:11 +01:00
Matthias
ee7bc55727 Add huobi to Exchange setup 2022-02-26 10:33:11 +01:00
Matthias
2ec1a7b370 Add huobi exchange class 2022-02-26 10:33:11 +01:00
Matthias
f181cdeecd Merge pull request #6463 from freqtrade/stoploss_simplify
Stoploss simplify - kucoin stoploss on exchange
2022-02-26 10:31:50 +01:00
Matthias
3942b30ebf Add kraken TODO 2022-02-26 08:34:23 +01:00
Matthias
6caa5f7131 Update dry-run behaviour 2022-02-26 08:25:42 +01:00
Matthias
0749199097 Add stoploss tests for kucoin 2022-02-26 08:25:42 +01:00
Matthias
020729cf50 update docs about kucoin stoploss 2022-02-26 08:25:42 +01:00
Matthias
768b526c38 Add kucoin stoploss on exchange 2022-02-26 08:25:42 +01:00
Matthias
7ba92086c9 Make stoploss method more flexible 2022-02-26 08:25:42 +01:00
Matthias
ea197b79ca Add some more logic to stoploss 2022-02-26 08:25:42 +01:00
Matthias
1d57ce19eb Move stoploss -limit implemenentation to exchange class, as this seems to be used by multiple exchanges. 2022-02-26 08:25:42 +01:00
Matthias
7883160ce0 Update to fstrings 2022-02-26 08:23:13 +01:00
Matthias
018c620057 Fix 0 Division error on exchanges without average
closes #6461
2022-02-26 08:19:45 +01:00
Matthias
a0b42c7aa2 gitignore sqlite temporary files 2022-02-25 20:47:15 +01:00
Italo
8d9d003671 Merge branch 'freqtrade:develop' into plot_hyperopt_stats 2022-02-25 17:58:57 +00:00
Matthias
551fe7d820 Merge pull request #6440 from clover-es/feat/short
Add leverage strategy to new-strategy command
2022-02-25 15:18:46 +01:00
Matthias
5826698c04 Don't emergencysell partial sold exit
closes #6457
2022-02-25 15:07:35 +01:00
Matthias
3c88b4cf0c Merge pull request #6416 from froggleston/patch-2 2022-02-25 11:58:43 +01:00
Matthias
4b7271df46 Improve wording, add Picture detailing what must be installed. 2022-02-25 11:03:03 +01:00
Matthias
3b1b66bee8 Prevent backtest starting when not in webserver mode
#6455
2022-02-25 07:40:49 +01:00
Stefano Ariestasia
df726a54f8 cater for case where sell limit order expired 2022-02-25 00:20:53 +00:00
Matthias
1c26ff4c4c Add dry run test 2022-02-24 20:05:56 +01:00
Matthias
9d55621f42 Test fetch_position exchange method 2022-02-24 20:05:56 +01:00
Matthias
9901decf0d Rename get_positions to fetch_positions to align with ccxt naming 2022-02-24 20:05:56 +01:00
Matthias
62c42a73e2 Add initial rpc test 2022-02-24 20:05:56 +01:00
Matthias
d07a24a54f Update tests for new wallet RPC structure 2022-02-24 20:05:56 +01:00
Matthias
13e74c5693 Add dry-run position wallet calculation 2022-02-24 20:05:56 +01:00
Matthias
6562511137 add trade_direction to trade object 2022-02-24 20:05:56 +01:00
Matthias
a2b17882e6 Don't use separate position field in /currency endpoint 2022-02-24 20:05:56 +01:00
Matthias
4b27bd9838 don't fetch free balance if we don't use it 2022-02-24 20:05:56 +01:00
Matthias
e54e6a7295 Update wallets to also keep Positions 2022-02-24 20:05:56 +01:00
Matthias
ed65692257 add get_position exchange wrapper 2022-02-24 20:05:56 +01:00
Sam Germain
9f4f65e457 exchange.get_balances minor fix 2022-02-24 20:05:56 +01:00
Sam Germain
f336e7fc5b exchange.get_balances futures shorts taken out 2022-02-24 20:05:56 +01:00
Sam Germain
f67e0bd6dd wallet amount for futures 2022-02-24 20:05:56 +01:00
Matthias
fd936e26ae Merge branch 'develop' into feat/short 2022-02-24 19:56:42 +01:00
Matthias
42df65d4ec Make sure backtesting is cleaned up in tests 2022-02-24 14:22:49 +00:00
Matthias
d973ba1f5d Add leverage callback to advanced template 2022-02-23 20:19:52 +01:00
Matthias
c51603b110 Slightly improve formatting, Point to documentation 2022-02-23 20:16:52 +01:00
Matthias
53452c8d64 Merge pull request #6437 from freqtrade/update_trade
Migrate trade updating to use order model
2022-02-23 19:56:02 +01:00
Matthias
731eb99713 Update mock-trade creation to rollback first 2022-02-23 19:18:04 +01:00
Matthias
14b69405a2 Init persistence should be the innermost fixture 2022-02-23 10:43:04 +01:00
Matthias
ec34189f1b Attempt to fix random ci error 2022-02-23 08:47:20 +01:00
Matthias
afd2be06d8 Merge pull request #6447 from freqtrade/dependabot/pip/develop/uvicorn-0.17.5
Bump uvicorn from 0.17.4 to 0.17.5
2022-02-23 07:51:33 +01:00
Matthias
8952829adc Merge branch 'develop' into feat/short 2022-02-23 06:28:15 +01:00
Matthias
5a4f30d1bd Don't specially handle empty results. 2022-02-22 20:07:41 +01:00
Matthias
1f9ed0beff Add test for wal mode 2022-02-22 19:39:55 +01:00
Guillermo Rodríguez
8e3839c74c Merge branch 'freqtrade:feat/short' into feat/short 2022-02-22 19:34:59 +01:00
Guillermo Rodríguez
95b63ea496 Add short signal to base strategy template 2022-02-22 19:33:52 +01:00
Matthias
02ce0dc02e Set journal mode to wal for sqlite databases
closes #6353
2022-02-22 19:31:58 +01:00
Matthias
70f4305dfa don't allow short trades in spot mode 2022-02-21 19:19:12 +01:00
Matthias
a2960d8505 Merge pull request #6448 from freqtrade/dependabot/pip/develop/mkdocs-material-8.2.1
Bump mkdocs-material from 8.1.11 to 8.2.1
2022-02-21 08:10:25 +01:00
Matthias
2b16606dbc Merge pull request #6443 from freqtrade/dependabot/pip/develop/python-rapidjson-1.6
Bump python-rapidjson from 1.5 to 1.6
2022-02-21 07:26:28 +01:00
Matthias
c6a9c0805c Merge pull request #6442 from freqtrade/dependabot/pip/develop/types-requests-2.27.10
Bump types-requests from 2.27.9 to 2.27.10
2022-02-21 06:53:41 +01:00
Matthias
fdad14d852 Merge pull request #6446 from freqtrade/dependabot/pip/develop/ccxt-1.73.70
Bump ccxt from 1.72.98 to 1.73.70
2022-02-21 06:53:27 +01:00
dependabot[bot]
b9a99bd0b7 Bump python-rapidjson from 1.5 to 1.6
Bumps [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) from 1.5 to 1.6.
- [Release notes](https://github.com/python-rapidjson/python-rapidjson/releases)
- [Changelog](https://github.com/python-rapidjson/python-rapidjson/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-rapidjson/python-rapidjson/compare/v1.5...v1.6)

---
updated-dependencies:
- dependency-name: python-rapidjson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 05:28:53 +00:00
dependabot[bot]
7b6a0f7a19 Bump uvicorn from 0.17.4 to 0.17.5
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.17.4 to 0.17.5.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.17.4...0.17.5)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 05:28:52 +00:00
Matthias
0bd621ece8 Merge pull request #6445 from freqtrade/dependabot/pip/develop/fastapi-0.74.0
Bump fastapi from 0.73.0 to 0.74.0
2022-02-21 06:28:03 +01:00
Matthias
df04612549 Merge pull request #6444 from freqtrade/dependabot/pip/develop/filelock-3.6.0
Bump filelock from 3.4.2 to 3.6.0
2022-02-21 06:27:08 +01:00
dependabot[bot]
d354f1f84c Bump mkdocs-material from 8.1.11 to 8.2.1
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.1.11 to 8.2.1.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.1.11...8.2.1)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 03:02:06 +00:00
dependabot[bot]
317487fefc Bump ccxt from 1.72.98 to 1.73.70
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.72.98 to 1.73.70.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.72.98...1.73.70)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 03:01:58 +00:00
dependabot[bot]
dc8e9bab44 Bump fastapi from 0.73.0 to 0.74.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.73.0 to 0.74.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.73.0...0.74.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 03:01:51 +00:00
dependabot[bot]
d1cded3532 Bump filelock from 3.4.2 to 3.6.0
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.4.2 to 3.6.0.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/py-filelock/compare/3.4.2...3.6.0)

---
updated-dependencies:
- dependency-name: filelock
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 03:01:45 +00:00
dependabot[bot]
21b5f56f7d Bump types-requests from 2.27.9 to 2.27.10
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.9 to 2.27.10.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 03:01:39 +00:00
Matthias
fddacfedaa Remove returntype 2022-02-20 16:47:02 +01:00
Matthias
a24586cd41 Update migrations for new column 2022-02-20 16:32:04 +01:00
Matthias
6fb5b22a8e Some cleanup 2022-02-20 16:31:44 +01:00
Matthias
dc7bcf5dda Update failing test 2022-02-20 14:29:26 +01:00
Matthias
db540dc990 Orders should also store fee if in receiving currency 2022-02-20 14:24:27 +01:00
Matthias
c3c815e794 Merge pull request #6425 from samgermain/stake-amount
leverage in trade.stake_amount calculation
2022-02-19 20:11:23 +01:00
Matthias
e9f451406c Use correct order id 2022-02-19 16:43:38 +01:00
Matthias
874c161f78 Update more tests to use order_obj to update trade 2022-02-19 16:43:38 +01:00
Matthias
508e677d70 Fix some tests to call update_trade with order object 2022-02-19 16:43:38 +01:00
Matthias
1b1216fc87 Rename update_trade method 2022-02-19 16:43:38 +01:00
Matthias
c13eed2178 use Order object to update trade 2022-02-19 16:43:38 +01:00
Matthias
d610b6305d Improve /balance output by removing trailing zeros 2022-02-19 16:40:30 +01:00
Matthias
a7a25bb285 Update "round coin value" to trim trailing zeros 2022-02-19 16:40:26 +01:00
Matthias
42bb33811c Merge pull request #6434 from freqtrade/fix/ftx_stoploss
Update FTX stoploss code to avoid exception for stoploss-market orders
2022-02-19 10:50:53 +01:00
Matthias
a32aed2225 Update FTX stoploss code to avoid exception for stoploss-market orders
closes #6430, closes #6392
2022-02-19 10:07:32 +01:00
Matthias
3785f04be7 Handle empty min stake amount as observed on FTX
(closes #6429)
2022-02-19 06:39:43 +01:00
Matthias
0bbbe2e96c Add test for #6429 2022-02-19 06:39:43 +01:00
Matthias
5705ff7f82 Merge pull request #6432 from mkavinkumar1/patch-1
fixed stake amount
2022-02-19 06:39:19 +01:00
Kavinkumar
60d1e7fc65 fix stake amt 2022-02-18 19:47:45 +05:30
Kavinkumar
95d4a11bb1 add precision 2022-02-18 19:32:37 +05:30
Kavinkumar
eb88c0f71b fixed stake amount 2022-02-18 19:25:56 +05:30
Matthias
989edca622 Add test-case for cancel stake update with leverage 2022-02-18 06:41:15 +01:00
Matthias
8bdc77eb4d Add TODO-lev for tests which define is_short but don't use it 2022-02-18 06:38:51 +01:00
Matthias
f0cbc47bb1 Merge pull request #6373 from samgermain/leverage-tiers
Leverage tiers
2022-02-17 20:23:33 +01:00
Matthias
de8d789962 Fix test missing assert statement 2022-02-17 19:37:24 +01:00
Sam Germain
d9d9867a54 updated ccxt 2022-02-16 21:09:02 -06:00
Matthias
e981d644e1 Add toto-lev for order-leverage 2022-02-16 19:24:59 +01:00
Matthias
e60553b8f7 Add max_entry_position hyperopt to docs
closes #6356
2022-02-16 19:21:04 +01:00
Sam Germain
f452fce4cc Merge branch 'ccxt-compat' into leverage-tiers 2022-02-16 10:07:49 -06:00
Sam Germain
a37287d9ba test__get_params 2022-02-16 10:06:27 -06:00
Sam Germain
2015e9345d test_ccxt_compat maintenanceMarginRatio -> maintenanceMarginRate 2022-02-16 09:25:27 -06:00
Sam Germain
df86300729 test_ccxt_dry_run_liquidation_price 2022-02-16 09:22:22 -06:00
Sam Germain
124532a4b7 maintenanceMarginRatio -> maintenanceMarginRate 2022-02-16 09:04:43 -06:00
Sam Germain
dc73fccd3c removed test_ccxt_get_maintenance_ratio_and_amt 2022-02-16 09:03:50 -06:00
Sam Germain
a1e9e940dd test_ccxt_load_leverage_tiers 2022-02-16 08:51:39 -06:00
Matthias
877a0750ce Merge pull request #6417 from freqtrade/fix/6261
Attempt fix for #6261
2022-02-16 15:48:57 +01:00
Sam Germain
a65dcc709e leverage in trade.stake_amount calculation 2022-02-16 08:09:43 -06:00
Sam Germain
ef5dae2770 ccxt_compat_tests for leverage tiers 2022-02-16 08:08:10 -06:00
Sam Germain
88a8ff2f4e Merge branch 'feat/short' into leverage-tiers 2022-02-16 08:05:51 -06:00
Matthias
e7bfb4fd5c Add test case for "sell below close" case 2022-02-16 13:42:39 +01:00
Matthias
de26844578 Merge pull request #6397 from samgermain/todos
edited todo-lev comments
2022-02-16 13:36:17 +01:00
Sam Germain
6697333118 Merge branch 'todos' of https://github.com/samgermain/freqtrade into todos 2022-02-16 05:47:49 -06:00
Sam Germain
a9eb8ce1bf added todos back in 2022-02-16 05:47:41 -06:00
Sam Germain
6f410d3096 fixed test_load_leverage_tiers 2022-02-16 05:44:11 -06:00
Sam Germain
c70050e750 fixed test_load_leverage_tiers 2022-02-16 05:26:52 -06:00
Sam Germain
183f85efe3 test_execute_entry fixed 2022-02-16 05:08:11 -06:00
Sam Germain
1f3d3d87f6 fixed tests 2022-02-16 04:52:26 -06:00
Sam Germain
3fe0e13bb1 expanded test_load_leverage_tiers 2022-02-16 04:37:11 -06:00
Sam Germain
3bfd9186f7 gateio.get_max_leverage small fix 2022-02-16 04:05:27 -06:00
Sam Germain
dbd2df6406 Merge branch 'leverage-tiers' of https://github.com/samgermain/freqtrade into leverage-tiers 2022-02-16 03:50:24 -06:00
Sam Germain
c9da6f480f gateio get_max_leverage and get_maintenance_ratio_and_amt temporary solution 2022-02-16 03:36:08 -06:00
Matthias
ff5b3c323a Fix okx trading mode 2022-02-16 09:13:49 +01:00
Matthias
a77c11c7e0 Merge pull request #6420 from stash86/pos_adjust
add "dry_run_wallet" to config_full.example.json
2022-02-16 06:48:07 +01:00
Stefano Ariestasia
b043697d70 Update config_full.example.json 2022-02-16 12:19:48 +09:00
Matthias
78a93b6052 noqa 2022-02-15 20:15:03 +01:00
Italo
88459acbeb Merge branch 'freqtrade:develop' into plot_hyperopt_stats 2022-02-15 19:10:49 +00:00
Matthias
3787b747ae Simplify api schema by not using union types 2022-02-15 20:07:02 +01:00
Matthias
7f7c395b10 Add exception handling for lev_prep in okx 2022-02-15 19:30:02 +01:00
Matthias
64b98989d2 Update open candle ROI condition 2022-02-15 19:25:32 +01:00
Matthias
33cc5e0ac7 Use kwargs for set_leverage 2022-02-15 18:56:58 +01:00
Matthias
c37f03a638 Update static-markets to include futures pair 2022-02-15 08:04:16 +01:00
Matthias
1bae18c60a Update decorator locations 2022-02-15 07:11:07 +01:00
Matthias
324fdcedb1 Attempt test fix 2022-02-15 06:59:10 +01:00
Sam Germain
5f42ebfa4c Update candletype.py 2022-02-14 23:53:10 -06:00
Matthias
dfd5d3b8b2 Merge pull request #6418 from m3h7/patch-1
corrects typo
2022-02-15 06:40:30 +01:00
Matthias
5ee5e0256b Clarify todo 2022-02-15 06:39:55 +01:00
Sam Germain
ae249a0f97 Merge branch 'leverage-tiers' of https://github.com/samgermain/freqtrade into leverage-tiers 2022-02-14 17:36:47 -06:00
Sam Germain
3753df26fc fixed tests 2022-02-14 17:34:59 -06:00
Sam Germain
f4a57b71e7 Filled in test_load_leverage_tiers_okx 2022-02-14 16:53:29 -06:00
Maik H
7b2e33b0bc corrects typo 2022-02-14 20:21:42 +01:00
Matthias
30f6dbfc40 Attempt fix for #6261 2022-02-14 20:02:38 +01:00
Matthias
acd7f26a9d update tc36 to properly cover #6261 2022-02-14 20:00:31 +01:00
Matthias
513669f834 Be verbose on okex startup to point out delay. 2022-02-14 19:44:05 +01:00
Matthias
515b3fdfd2 Version bump ccxt 2022-02-14 19:42:15 +01:00
Matthias
99e3e26542 Adjust ccxt test naming to align with the other tests 2022-02-14 19:14:44 +01:00
Robert Davey
cd54f1536e Update windows_installation.md
Update links to include just the cpp build tools instead of the 4GB full Visual Studio link.
2022-02-14 16:41:58 +00:00
Sam Germain
a2b84561fe removed a todo 2022-02-14 10:00:03 -06:00
Sam Germain
5cd2501397 Merge branch 'leverage-tiers' of https://github.com/samgermain/freqtrade into leverage-tiers 2022-02-14 09:40:53 -06:00
Sam Germain
cfd438b966 fixed test_get_markets 2022-02-14 09:40:01 -06:00
Sam Germain
c1d08dd03a linting 2022-02-14 09:34:09 -06:00
Sam Germain
16e38592a9 test_get_markets created debugging param test_comment 2022-02-14 09:33:56 -06:00
Sam Germain
19783e0d39 edited todos 2022-02-14 09:02:55 -06:00
Matthias
35e800a84b Merge pull request #6411 from freqtrade/dependabot/pip/develop/pytest-asyncio-0.18.1
Bump pytest-asyncio from 0.17.2 to 0.18.1
2022-02-14 07:09:45 +01:00
Matthias
7e2e9272cc Merge pull request #6403 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.28
Bump prompt-toolkit from 3.0.26 to 3.0.28
2022-02-14 07:09:18 +01:00
Matthias
8ba149a2af Merge pull request #6409 from freqtrade/dependabot/pip/develop/types-requests-2.27.9
Bump types-requests from 2.27.8 to 2.27.9
2022-02-14 06:28:42 +01:00
Matthias
1ad41f0efc Merge pull request #6410 from freqtrade/dependabot/pip/develop/nbconvert-6.4.2
Bump nbconvert from 6.4.1 to 6.4.2
2022-02-14 06:28:29 +01:00
Matthias
9c62ffe4f6 Merge pull request #6404 from freqtrade/dependabot/pip/develop/plotly-5.6.0
Bump plotly from 5.5.0 to 5.6.0
2022-02-14 06:28:16 +01:00
dependabot[bot]
5cc6c2afe1 Bump pytest-asyncio from 0.17.2 to 0.18.1
Bumps [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) from 0.17.2 to 0.18.1.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.17.2...v0.18.1)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 05:28:10 +00:00
Matthias
6290fb6d10 Merge pull request #6408 from freqtrade/dependabot/pip/develop/mkdocs-material-8.1.11
Bump mkdocs-material from 8.1.10 to 8.1.11
2022-02-14 06:27:59 +01:00
Matthias
067378d7fc Merge pull request #6405 from freqtrade/dependabot/pip/develop/pymdown-extensions-9.2
Bump pymdown-extensions from 9.1 to 9.2
2022-02-14 06:27:42 +01:00
Matthias
0c632555d6 Merge pull request #6406 from freqtrade/dependabot/pip/develop/ccxt-1.72.98
Bump ccxt from 1.72.36 to 1.72.98
2022-02-14 06:27:22 +01:00
Matthias
e63ef86e9e Merge pull request #6407 from freqtrade/dependabot/pip/develop/pytest-7.0.1
Bump pytest from 7.0.0 to 7.0.1
2022-02-14 06:27:09 +01:00
Matthias
ecb93f14b1 Merge pull request #6412 from freqtrade/dependabot/pip/develop/pandas-1.4.1
Bump pandas from 1.4.0 to 1.4.1
2022-02-14 06:26:33 +01:00
dependabot[bot]
5062c17ac0 Bump pandas from 1.4.0 to 1.4.1
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/main/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.4.0...v1.4.1)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 03:02:07 +00:00
dependabot[bot]
04c20afece Bump nbconvert from 6.4.1 to 6.4.2
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 6.4.1 to 6.4.2.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Commits](https://github.com/jupyter/nbconvert/compare/6.4.1...6.4.2)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 03:01:56 +00:00
dependabot[bot]
7f8e956b44 Bump types-requests from 2.27.8 to 2.27.9
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.8 to 2.27.9.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 03:01:52 +00:00
dependabot[bot]
22036d69d8 Bump mkdocs-material from 8.1.10 to 8.1.11
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.1.10 to 8.1.11.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.1.10...8.1.11)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 03:01:50 +00:00
dependabot[bot]
b18e44bc43 Bump pytest from 7.0.0 to 7.0.1
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.0.0...7.0.1)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 03:01:46 +00:00
dependabot[bot]
1674beed91 Bump ccxt from 1.72.36 to 1.72.98
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.72.36 to 1.72.98.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.72.36...1.72.98)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 03:01:43 +00:00
dependabot[bot]
03d4002be8 Bump pymdown-extensions from 9.1 to 9.2
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 9.1 to 9.2.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/9.1...9.2)

---
updated-dependencies:
- dependency-name: pymdown-extensions
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 03:01:35 +00:00
dependabot[bot]
be8accebd8 Bump plotly from 5.5.0 to 5.6.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.5.0 to 5.6.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.5.0...v5.6.0)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 03:01:31 +00:00
dependabot[bot]
ca62914794 Bump prompt-toolkit from 3.0.26 to 3.0.28
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.26 to 3.0.28.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.26...3.0.28)

---
updated-dependencies:
- dependency-name: prompt-toolkit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 03:01:28 +00:00
Matthias
b1b8167b5e Update stop documentation
closes #6393
2022-02-13 19:14:57 +01:00
Matthias
09cc43b533 Test short trade exiting 2022-02-13 16:33:06 +01:00
Matthias
5b65448e56 Fix some todo-lev's in tests 2022-02-13 16:17:41 +01:00
Matthias
2523c12c71 Small enhancements and notes 2022-02-13 14:33:37 +01:00
Matthias
ad801e05f7 Filter loadable leverage tiers to stake-currency pairs 2022-02-13 13:05:57 +01:00
Matthias
96df311244 Rename test_okex to test_okx 2022-02-13 13:01:23 +01:00
Matthias
bc855b2a32 Update some missing mocks 2022-02-13 13:00:38 +01:00
Matthias
b98297786c Update failing mock 2022-02-13 12:56:32 +01:00
Matthias
7f0cedc769 Use "is_future" to check for futures markets 2022-02-13 12:54:49 +01:00
Matthias
eaf13f96f7 Use exchange_has to check for ccxt properties 2022-02-13 12:48:28 +01:00
Matthias
109440a6bf Merge pull request #6396 from freqtrade/order_refind_update
Improve "order refind" to also work for stoploss orders
2022-02-13 12:31:37 +01:00
Sam Germain
8fe3f0c933 fix breaking tests 2022-02-12 23:08:42 -06:00
Sam Germain
531b4d238c removed test_get_maintenance_margin_and_amt_gatio as its no longer relevant 2022-02-12 23:02:16 -06:00
Sam Germain
765c95f875 test_okex.test_get_maintenance_ratio_and_amt_okex change pair names 2022-02-12 23:02:16 -06:00
Sam Germain
e3bd40c3c7 added swap and linear to conftest markets 2022-02-12 23:02:16 -06:00
Sam Germain
7a0f7da128 okex loads all leverage tiers at beginning, removed get tiers for pair 2022-02-12 23:02:16 -06:00
Sam Germain
8657e99c26 trimmed down get_maintenance_ratio_and_amt, now requires fetchLeverageTiers 2022-02-12 23:02:16 -06:00
Sam Germain
e7430da5d7 test_ccxt_compat commented out unfinished tests 2022-02-12 23:02:16 -06:00
Sam Germain
03b3756e4b strengthened and fixed leverage_tier tests 2022-02-12 23:02:16 -06:00
Sam Germain
a6043e6a85 get_max_leverage test clean up 2022-02-12 23:02:16 -06:00
Sam Germain
4a1ed01708 get_maintenance_ratio_and_amt tests 2022-02-12 23:02:16 -06:00
Sam Germain
60a45ff394 exchange.get_max_leverage de-complex 2022-02-12 23:02:16 -06:00
Sam Germain
9e599455e7 test_execute_entry mocks get_max_leverage 2022-02-12 23:02:16 -06:00
Sam Germain
41ab20d949 get_max_leverage checks if the number of tiers is < 1 2022-02-12 23:02:15 -06:00
Sam Germain
3b43d42eaa Updated exchange tests 2022-02-12 23:02:15 -06:00
Sam Germain
fa2c9fc51f replaced mmr_key with unified maintenanceMarginRate 2022-02-12 23:02:15 -06:00
Sam Germain
e987e0e2a9 exchange minor fixes 2022-02-12 23:02:15 -06:00
Sam Germain
f3cb7e90e0 moved get_leverage_tiers_for_pair to be with other leverage_tier methods 2022-02-12 23:02:15 -06:00
Sam Germain
5f07546b86 moved leverage_tier caching to get_leverage_tiers_for_pair 2022-02-12 23:02:15 -06:00
Sam Germain
eb72e5cc42 Added some exchange leverage tier tests 2022-02-12 23:02:15 -06:00
Sam Germain
98f32e8964 fixed failing test_get_max_leverage 2022-02-12 23:02:15 -06:00
Sam Germain
3ebda1d29d Added test templated 2022-02-12 23:02:15 -06:00
Sam Germain
a0264f0651 test_get_max_pair_stake_amount with leverage 2022-02-12 23:02:15 -06:00
Sam Germain
fe56c8c91e mock get_max_pair_stake_amount in test_execute_entry 2022-02-12 23:02:15 -06:00
Sam Germain
18b4d0be95 fixed error with exchange.fill_leverage_tiers 2022-02-12 23:02:14 -06:00
Sam Germain
41d8330fbc freqtrade.exchange edited load_leverage_tiers 2022-02-12 23:02:14 -06:00
Sam Germain
0b717fbace okex.load_leverage_tiers 2022-02-12 23:02:14 -06:00
Sam Germain
68a778a983 moved leverage_tiers to a fixture 2022-02-12 23:02:14 -06:00
Sam Germain
42e36f44f8 replaced "leverage" with "tiers" 2022-02-12 23:02:14 -06:00
Sam Germain
6b9915bc73 moved fill_leverage_brackets and get_max_leverage to base exchange class, wrote parse_leverage_tier and load_leverage_brackets 2022-02-12 23:02:14 -06:00
Sam Germain
a99cf2eeed redid get_max_leverage 2022-02-12 23:02:07 -06:00
Sam Germain
720a86778e okex.get_max_pair_stake_amount 2022-02-12 23:01:39 -06:00
Sam Germain
ff915b241c test_okex test_get_maintenance_ratio_and_amt_okex 2022-02-12 23:01:39 -06:00
Sam Germain
a5aba4813d moved get_maintenance_ratio_and_amt to base.exchange. Wrote get_leverage_tiers. Added mmr_key to exchange._ft_has 2022-02-12 23:01:30 -06:00
Sam Germain
fc2d3649a1 edited todos 2022-02-12 16:23:14 -06:00
Matthias
c769e9757d Improve "order refind" to also work for stoploss orders 2022-02-12 20:13:12 +01:00
Matthias
119d4d5204 select_order should use ft_order_side, not the exchange specific one 2022-02-12 17:06:03 +01:00
Matthias
ee5f05208e Merge pull request #6394 from samgermain/todos
todo removal
2022-02-12 15:44:42 +01:00
Matthias
fad243e28d Keep short edge support as regular TODO 2022-02-12 15:43:52 +01:00
Matthias
08803524bd align variable naming to use current_time 2022-02-12 15:21:46 +01:00
Sam Germain
ca993c83ea todo removal 2022-02-11 23:37:31 -06:00
Matthias
50e474ded2 Merge pull request #6386 from samgermain/liq-buffer
Added liquidation_buffer to freqtradebot
2022-02-11 20:26:05 +01:00
Sam Germain
19a282ddb4 fixed broken test_get_liquidation_price 2022-02-11 19:38:59 +01:00
Sam Germain
7a79403d2c Update docs/leverage.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2022-02-11 19:38:59 +01:00
Sam Germain
6ae85f9be1 fixed liq-buffer tests 2022-02-11 19:38:59 +01:00
Sam Germain
fb3a6e2ce8 added liquidation_buffer to constants.py 2022-02-11 19:38:59 +01:00
Sam Germain
3c3675ea1a moved liquidation_buffer to exchange class, add check for valid liquidation_buffer values 2022-02-11 19:38:59 +01:00
Sam Germain
305d3738d9 Documentation for liquidation_buffer 2022-02-11 19:38:59 +01:00
Sam Germain
e5d68f12d2 Added liquidation_buffer to freqtradebot 2022-02-11 19:38:58 +01:00
Matthias
d0adc4ee62 Merge pull request #6391 from lukasgor/lg/feat/add-buy-tag-to-forcebuy
feature: add buy tag to forcebuy
2022-02-11 19:37:46 +01:00
Matthias
c9cfc246f1 Sort /forcebuy pairs alphabetically, add cancel button
closes #6389
2022-02-11 19:37:35 +01:00
Matthias
f79873307d Run CI on feat/short branch 2022-02-11 19:16:57 +01:00
Matthias
0c6d92a7a6 Merge branch 'develop' into feat/short 2022-02-11 17:02:04 +01:00
lukasgor
6511b3bec2 fix: rename buy_tag to entry_tag 2022-02-11 15:31:15 +01:00
lukasgor
d563bfc3d0 feature: add buy tag to forcebuy 2022-02-11 13:38:33 +01:00
Matthias
7237aa7edb Merge pull request #6385 from samgermain/bin-stop 2022-02-10 19:51:59 +01:00
Matthias
6a59103869 update wallets in backtesting to ensure a fresh wallet is used
closes #6388
2022-02-10 19:40:36 +01:00
Matthias
7c66f2776d Merge pull request #6384 from samgermain/compat-contract
test_ccxt__get_contract_size
2022-02-10 19:07:04 +01:00
Sam Germain
553da850ce binance futures stoploss 2022-02-10 09:43:32 -06:00
Sam Germain
52fed6e779 test_ccxt__get_contract_size 2022-02-10 06:59:43 -06:00
Matthias
be84a028c1 Avoid mixed types in the api for /stats 2022-02-10 07:03:19 +01:00
Matthias
af984bdc0d Update comment regarting NaT replacement 2022-02-09 09:32:53 +01:00
Matthias
2e41d80a2c Merge pull request #6340 from TheJoeSchr/frequi-datetime
freqUI: fix can't import backtest with missing datetime data
2022-02-09 07:21:30 +01:00
Matthias
7252cf47fb Update url to include campaign tracking 2022-02-09 07:20:27 +01:00
Matthias
9f47853661 Merge pull request #6235 from freqtrade/backtest_order_timeout
Backtest order timeout
2022-02-09 07:12:35 +01:00
Matthias
45c03f1440 Docstrings are evaluated, while comments are not 2022-02-09 07:02:44 +01:00
Matthias
a6a041526a Update intro message 2022-02-09 06:57:46 +01:00
Matthias
1ba9b70afc Improve index/readme wording 2022-02-09 06:57:46 +01:00
Matthias
6d3803fa22 Add TokenBot promo 2022-02-09 06:57:46 +01:00
Matthias
4e2f06fe9c Simplify band-aid code 2022-02-09 06:48:26 +01:00
Matthias
6191288ff9 Add test for NaT problematic 2022-02-09 06:36:17 +01:00
Matthias
1d10d2c87c Okex -> okx 2022-02-08 19:45:39 +01:00
Matthias
172e018d2d Add probit to list of non-working exchanges
closes #6379
2022-02-08 19:21:27 +01:00
Matthias
dcf8ad36f9 Backtesting should not allow unrealistic (automatic-filling) orders. 2022-02-08 19:12:01 +01:00
Joe Schr
926b017981 Fix freqUI charts not displaying when dtype(datetime) column has NaT values
fix dataframe_to_dict() issues by replacing NaT empty string and
prepare for proper `.replace({NaT})` fix
2022-02-08 17:09:37 +01:00
Joe Schr
118ae8a3d0 Fix api_schemas/json_encoders by manually converting NaT values to empty Strings
makes import of datetime columns more robust by first checking
if value is null because strftime can't handle NaT values

use `isnull()` because it handles all NaN/None/NaT cases
2022-02-08 17:09:29 +01:00
Matthias
b192c82731 Only call "custom_exit_price" for limit orders 2022-02-08 07:10:54 +01:00
Matthias
d2dbe8f8d0 Improve doc wording 2022-02-08 06:47:55 +01:00
Matthias
535bbd681f Merge pull request #6362 from ediziks/add-profit-drawdown-hypeloss
Add ProfitDrawdownHyperoptLoss method
2022-02-07 19:37:35 +01:00
Matthias
85767d0d70 Add timedout_*_orders to tests 2022-02-07 19:33:22 +01:00
Matthias
036c2888b4 Track timedout entry/exit orders 2022-02-07 18:49:30 +01:00
Matthias
380e383eee Add log_Responses to full config example
#6374
2022-02-07 18:38:28 +01:00
Matthias
3a60709f16 Merge pull request #6368 from freqtrade/dependabot/pip/develop/uvicorn-0.17.4
Bump uvicorn from 0.17.1 to 0.17.4
2022-02-07 18:28:33 +01:00
Matthias
ce9de243b7 Merge pull request #6375 from samgermain/todos
deleted outdated todos
2022-02-07 15:24:20 +01:00
zx
4bce64b427 commented method deletition 2022-02-07 14:12:07 +01:00
Sam Germain
33b04b1992 deleted outdated todos 2022-02-07 02:47:18 -06:00
Matthias
5f886e7ffe Merge pull request #6363 from stash86/pos_adjust
Change "buy" and "sell" to "entry" and "exit"
2022-02-07 09:22:36 +01:00
Stefano Ariestasia
92d1f2b945 fix tests 2022-02-07 07:31:35 +00:00
zx
7811a36ae9 max_drawdown_abs calc fix & .DS_Store deletition 2022-02-07 07:44:13 +01:00
Matthias
5047492f5a gitignore .ds_store files 2022-02-07 07:20:55 +01:00
Matthias
36dad186fd Merge pull request #6367 from freqtrade/dependabot/pip/develop/types-requests-2.27.8
Bump types-requests from 2.27.7 to 2.27.8
2022-02-07 07:03:19 +01:00
Matthias
2d979b84bf Merge pull request #6369 from freqtrade/dependabot/pip/develop/numpy-1.22.2
Bump numpy from 1.22.1 to 1.22.2
2022-02-07 07:03:08 +01:00
Matthias
48ff2b3baa Merge pull request #6365 from freqtrade/dependabot/pip/develop/pytest-7.0.0
Bump pytest from 6.2.5 to 7.0.0
2022-02-07 06:32:46 +01:00
zx
8cdb6e0774 DRAWDOWN_MULT back to a higher value as built-in for safer HOs first 2022-02-07 06:31:16 +01:00
Matthias
39a0cef922 Merge pull request #6371 from freqtrade/dependabot/pip/develop/python-telegram-bot-13.11
Bump python-telegram-bot from 13.10 to 13.11
2022-02-07 06:28:46 +01:00
dependabot[bot]
f31fa07b3f Bump numpy from 1.22.1 to 1.22.2
Bumps [numpy](https://github.com/numpy/numpy) from 1.22.1 to 1.22.2.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.22.1...v1.22.2)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-07 05:28:26 +00:00
Matthias
548b9e75f3 Merge pull request #6364 from freqtrade/dependabot/pip/develop/scipy-1.8.0
Bump scipy from 1.7.3 to 1.8.0
2022-02-07 06:28:25 +01:00
Matthias
37ea07a45d Merge pull request #6366 from freqtrade/dependabot/pip/develop/ccxt-1.72.36
Bump ccxt from 1.71.73 to 1.72.36
2022-02-07 06:27:28 +01:00
Matthias
5221194318 Merge pull request #6370 from freqtrade/dependabot/pip/develop/mkdocs-material-8.1.10
Bump mkdocs-material from 8.1.9 to 8.1.10
2022-02-07 06:27:10 +01:00
zx
2893d0b50d proper var name 2022-02-07 06:22:27 +01:00
dependabot[bot]
94b546228b Bump python-telegram-bot from 13.10 to 13.11
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 13.10 to 13.11.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v13.10...v13.11)

---
updated-dependencies:
- dependency-name: python-telegram-bot
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-07 03:01:48 +00:00
dependabot[bot]
b8af4bf8fe Bump mkdocs-material from 8.1.9 to 8.1.10
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.1.9 to 8.1.10.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.1.9...8.1.10)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-07 03:01:43 +00:00
dependabot[bot]
110a270a0b Bump uvicorn from 0.17.1 to 0.17.4
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.17.1 to 0.17.4.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.17.1...0.17.4)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-07 03:01:31 +00:00
dependabot[bot]
576d5a5b48 Bump types-requests from 2.27.7 to 2.27.8
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.7 to 2.27.8.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-07 03:01:29 +00:00
dependabot[bot]
1e43683283 Bump ccxt from 1.71.73 to 1.72.36
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.71.73 to 1.72.36.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.71.73...1.72.36)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-07 03:01:27 +00:00
dependabot[bot]
22e395af87 Bump pytest from 6.2.5 to 7.0.0
Bumps [pytest](https://github.com/pytest-dev/pytest) from 6.2.5 to 7.0.0.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/6.2.5...7.0.0)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-07 03:01:18 +00:00
dependabot[bot]
e24c837e1f Bump scipy from 1.7.3 to 1.8.0
Bumps [scipy](https://github.com/scipy/scipy) from 1.7.3 to 1.8.0.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.7.3...v1.8.0)

---
updated-dependencies:
- dependency-name: scipy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-07 03:01:13 +00:00
Stefano Ariestasia
099a03f190 flake8 2022-02-07 01:52:59 +00:00
Stefano Ariestasia
6d91a5ecbd Change "buy" and "sell" to "entry" and "exit" 2022-02-07 01:40:05 +00:00
zx
7d3b80fbde isort fix and leftover cleaning 2022-02-06 21:09:40 +01:00
Matthias
fe33b86308 Merge pull request #6360 from stash86/pos_adjust
Hide some lines for /status when a trade is closed
2022-02-06 17:08:37 +01:00
Italo
d03378b1df Update hyperopt.py 2022-02-06 15:32:59 +00:00
zx
6b5f63d4d6 change profit_ratio by profit_abs 2022-02-06 16:28:01 +01:00
Matthias
ee2a7a968b Add tests for /status on closed trades 2022-02-06 16:26:00 +01:00
Matthias
5eb5029856 Performancefilter - improve sorting
Ordering of Pairs without history should remain identical, so pairs with
positive performance move to the front, and negative pairs move to the back.

closes #4893
2022-02-06 16:19:11 +01:00
Matthias
ef086d438c Update PerformanceFilter test to run with USDT pairs 2022-02-06 16:03:14 +01:00
Matthias
c19f3950da Add losing trade to usdt_mock_trades 2022-02-06 16:02:18 +01:00
zx
0b01fcf047 Add ProfitDrawdownHyperoptLoss method 2022-02-06 15:40:54 +01:00
Matthias
303b12efd8 Merge pull request #6273 from freqtrade/pg_migrations
Update database migrations for PG and mariadb
2022-02-06 14:39:02 +01:00
Matthias
b657d2d8de Add Github funding 2022-02-06 14:38:20 +01:00
Matthias
7232324eb7 Update missing doc segment 2022-02-06 14:33:31 +01:00
Matthias
da73e754b4 Explicit map coingecko symbol to ID for bnb and sol
closes #6361
2022-02-06 14:20:09 +01:00
Matthias
8f2425e49f Add rudimentary tests for pg-specific stuff 2022-02-06 14:06:46 +01:00
Matthias
644442e2f9 Track timedout orders 2022-02-06 13:37:31 +01:00
Matthias
17d748dd4c Improve handling of left_open_trades 2022-02-06 13:19:00 +01:00
Matthias
c5e0daf2d3 Merge pull request #6358 from Bloodhunter4rc/patch-1
Update setup.sh / correct minimum required python version
2022-02-06 13:15:03 +01:00
Italo
adf8f6b2d5 Update hyperopt.py 2022-02-06 10:33:49 +00:00
Stefano Ariestasia
2a3ab1ef61 1 more line to be hidden 2022-02-06 07:08:27 +00:00
Matthias
6b9696057d Update documentation to require python3.8 everywhere 2022-02-06 07:47:10 +01:00
Matthias
412fe65344 Merge pull request #6316 from samgermain/max-amount
exchange.get_max_pair_stake_amount
2022-02-06 07:44:29 +01:00
Stefano Ariestasia
4cf514e293 fix flake8 2022-02-06 03:16:56 +00:00
Stefano Ariestasia
131b2d68d8 reduce complexity (flake8) 2022-02-06 03:04:23 +00:00
Stefano Ariestasia
0477070faa hide some lines if trade is closed 2022-02-06 02:49:02 +00:00
Stefano Ariestasia
c4a54cc9cd refinement of status 2022-02-06 02:31:14 +00:00
Stefano Ariestasia
cfaf13c90f update 2022-02-06 02:21:16 +00:00
Italo
6c1729e20b ignore warnings 2022-02-06 01:07:30 +00:00
Sam Germain
e0d42ad9a7 Update backtesting.py 2022-02-05 18:29:48 -06:00
Italo
6a4cae1f8c Update hyperopt.py 2022-02-06 00:17:48 +00:00
Bloodhunter4rc
82006ff1db Update setup.sh 2022-02-05 22:19:42 +01:00
Italo
992eac9efa Update hyperopt.py 2022-02-05 17:36:19 +00:00
Matthias
2c5f7adf28 Merge pull request #6354 from samgermain/ccxt-compat-max-lev
wrote ccxt_compat.test_get_max_leverage_spot test_get_max_leverage_fu…
2022-02-05 17:14:33 +01:00
Matthias
870708a72a Version bump ccxt 2022-02-05 16:35:05 +01:00
Matthias
22173851d6 Detail tests for custom exit pricing 2022-02-05 16:28:47 +01:00
Matthias
2a59ef7311 Add detail tests for timeout behaviour 2022-02-05 16:28:47 +01:00
Matthias
808cefe526 Update order_selection logic 2022-02-05 16:28:47 +01:00
Matthias
9bf86bbe27 Extract backtesting row validation to separate function 2022-02-05 16:28:47 +01:00
Matthias
58fad72778 Update wallets when necessary
closes #6321
2022-02-05 16:28:47 +01:00
Matthias
e08006ea25 Adjust tests to use order Object 2022-02-05 16:28:47 +01:00
Matthias
4ea79a32e4 Use Order object for ft_timeout check 2022-02-05 16:28:47 +01:00
Matthias
1e603985c5 Extract backtesting order cancelling 2022-02-05 16:28:47 +01:00
Matthias
6637dacd7f Extract protections in backtesting 2022-02-05 16:28:47 +01:00
Matthias
7ac44380f7 Extract backtest order closing to models class 2022-02-05 16:28:46 +01:00
Matthias
090554f197 Try fill backtest order imediately for adjusted order 2022-02-05 16:28:21 +01:00
Matthias
f4149ee462 Force ROI to be within candle 2022-02-05 16:28:21 +01:00
Matthias
44e616c264 Add unfilledtimeout to required props for backtesting 2022-02-05 16:28:21 +01:00
Matthias
49cecf1cb2 Small cosmetic fix 2022-02-05 16:28:21 +01:00
Rokas Kupstys
9140679bf4 Backtest order timeout continued. 2022-02-05 16:28:21 +01:00
Rokas Kupstys
15698dd1ca Fix errors so it runs, implement timeout handling. 2022-02-05 16:28:21 +01:00
Matthias
f7a1cabe23 Add first version to fill orders "later" in backtesting 2022-02-05 16:28:21 +01:00
Matthias
c12e5a3b6c Initial idea backtesting order timeout 2022-02-05 16:28:21 +01:00
Matthias
6ed237a72a Merge pull request #6272 from stash86/fix-docs
Add more info on Telegram's status message
2022-02-05 16:22:45 +01:00
Sam Germain
b5d10d1b2e updated ccxt 2022-02-05 08:18:05 -06:00
Sam Germain
ce676a9dd7 wrote ccxt_compat.test_get_max_leverage_spot test_get_max_leverage_futures 2022-02-04 17:55:49 -06:00
Sam Germain
8b57827676 exchange.get_max_pair_stake_amount hard set leverage to 0 2022-02-04 14:26:15 -06:00
Matthias
06387478b5 Merge pull request #6341 from TheJoeSchr/backtest-filename
Plotting: add alias `--backtest-filename` for `--export-filename`
2022-02-04 16:31:03 +01:00
Joe Schr
761f7fdefb fix: linter 2022-02-04 13:14:55 +01:00
Joe Schr
e84a58de28 fix: don't use different configuration keys, just add as 2nd argument 2022-02-04 12:47:13 +01:00
Joe Schr
a3e045f69d Plotting: add alias --backtest-filename for --export-filename
makes it easier to discover how to use this argument
2022-02-04 12:47:13 +01:00
Sam Germain
c0a593280e test_exchange.test_cancel_order_dry_run pass leverage to create_order 2022-02-04 04:54:16 -06:00
Sam Germain
dc6cb445fd Merge branch 'feat/short' into max-amount 2022-02-04 04:42:38 -06:00
Sam Germain
cc3cb645f3 Merge branch 'max-amount' of https://github.com/samgermain/freqtrade into max-amount 2022-02-04 04:41:54 -06:00
Sam Germain
1824ee6b73 removed TODO 2022-02-04 04:41:41 -06:00
Matthias
6afad6c99f Small change to todo comment 2022-02-04 07:20:27 +01:00
Matthias
5cc2a15b02 Merge pull request #6349 from samgermain/todos
Todos
2022-02-04 07:20:18 +01:00
Sam Germain
e7d71d01c0 removed plotting todo 2022-02-03 20:39:47 -06:00
Sam Germain
3ee2b7978c wallets.validate_stake_amount added param max_stake_available 2022-02-03 20:33:16 -06:00
Sam Germain
30c476e3c1 freqtradebot.get_valid_enter_price_and_stake gets min of stake_amount and max_stake_amount before calling wallets.validate_stake_amount 2022-02-03 20:33:16 -06:00
Sam Germain
a50f4d2c57 Exchange.createOrder added * as second param 2022-02-03 20:33:16 -06:00
Sam Germain
16c2d54482 updated margin_modes 2022-02-03 20:33:16 -06:00
Sam Germain
7465037906 freqtradebot.execute_entry test for too high stake amount 2022-02-03 20:33:16 -06:00
Sam Germain
c5cfd971f5 get_max_pair_stake_amount_tests 2022-02-03 20:33:16 -06:00
Sam Germain
8c680d75b9 moved max_stake_amount check for None to exchange.get_max_pair_stake_amount 2022-02-03 20:33:16 -06:00
Sam Germain
6b6b35ac1c check for max stake limit in freqtradebot and backtesting 2022-02-03 20:33:04 -06:00
Sam Germain
55d91f018f exchange._get_stake_amount_limit (merged min_pair_stake_amount and get_max_tradeable amount) 2022-02-03 20:33:04 -06:00
Sam Germain
ff5fffefb4 exchange.get_max_amount_tradable looks at cost also 2022-02-03 20:33:03 -06:00
Sam Germain
6e8420914e removed unnecessary CCXT checks in exchange.get_min_pair_stake_amount 2022-02-03 20:33:03 -06:00
Sam Germain
64ad810445 Revert "moved get_max_leverage to get_min_pair_stake_amount"
This reverts commit 90e48d5b98bcfb1452aa818a3274745eac395712.
2022-02-03 20:33:03 -06:00
Sam Germain
73319a74d3 moved get_max_leverage to get_min_pair_stake_amount 2022-02-03 20:33:03 -06:00
Sam Germain
f3b42b0ef3 wrote exchange.get_max_amount_tradable 2022-02-03 20:33:03 -06:00
Sam Germain
de557f1386 models.update removed TODO-lev 2022-02-03 17:48:34 -06:00
Sam Germain
99b8a8ca79 Revert "plot.generate_candlestick_graph Added short equivelent, separating plotting scatter creation to a function"
This reverts commit 0abba7f9b7299ba3c45df6a2ba6e35ad6a19c5a0.
2022-02-03 17:48:34 -06:00
Sam Germain
84dea0339b Added todo to freqtradebot._safe_exit_amount 2022-02-03 17:48:34 -06:00
Sam Germain
edc0e9c75f backtesting._get_ohlcv_as_lists changed candle_type to candle_type_def 2022-02-03 17:48:34 -06:00
Sam Germain
1f74cfe841 plot.generate_candlestick_graph Added short equivelent, separating plotting scatter creation to a function 2022-02-03 17:48:34 -06:00
Sam Germain
a31cf236e4 freqtradebot._safe_exit_amount, no _safe_exit_amount is needed for futures 2022-02-03 17:48:34 -06:00
Sam Germain
d5376c2c89 wrote freqtradebot.test_leverage_prep 2022-02-03 17:48:33 -06:00
Sam Germain
977f87659c edited backtesting._get_sell_trade_entry TODO: removed "Other fees" 2022-02-03 17:48:33 -06:00
Sam Germain
c47c54c16c removed strategy_test_v3.populate_sell_trend # TODO-lev: Add short logic, because it looked like the short logic was already there 2022-02-03 17:48:33 -06:00
Sam Germain
73d10b5c02 backtesting._get_ohlcv_as_lists removed # TODO-lev: Candle-type should be conditional, either "spot" or futures 2022-02-03 17:48:33 -06:00
Sam Germain
64bfa118e0 freqtradebot.handle_cancel_enter todo - Check edge cases, we dont want to make leverage > 1.0 if we dont have to 2022-02-03 17:48:33 -06:00
Sam Germain
bc6614df2d fixed failing tests in tests/commands/test_commands.py by adding NONE='' option to MarginMode 2022-02-03 17:48:33 -06:00
Sam Germain
f58b92bb86 exchange.create_order removed default for leverage 2022-02-03 17:48:08 -06:00
Matthias
f8faf748df Simplify prepare_buy_details 2022-02-03 19:47:03 +01:00
Matthias
1e6362debf Add test for new /status telegram message 2022-02-03 19:41:45 +01:00
Matthias
29879bb415 Update wording to entry/exit 2022-02-03 19:11:35 +01:00
Matthias
d6482066ef Merge pull request #6348 from freqtrade/new_release
New release 2022.1
2022-02-03 12:29:04 +01:00
Matthias
a733a74dd9 Merge pull request #6294 from xataxxx/health
/health api and telegram commands to return last processing time
2022-02-02 19:53:45 +01:00
Matthias
a4e1aaa9bd Merge pull request #6307 from freqtrade/bt_shift
Remove shift in analyzed dataframe columns
2022-02-02 19:52:10 +01:00
Matthias
2d45163f8f Bump version to 2022.1 2022-02-02 19:46:48 +01:00
Matthias
e95fb7ef3e Merge branch 'stable' into new_release 2022-02-02 19:46:33 +01:00
Sam Germain
09f0e7149f test__fetch_and_calculate_funding_fees_datetime_called # TODO-lev: test for longs 2022-02-02 12:42:13 -06:00
Sam Germain
179947fa72 New config (#6333)
* updated new-config to add trading_mode and margin_mode

* added trading_mode and margin_mode to config examples

* added okex config example

* new file:   config_examples/config_binance_futures.example.json

* removed trading_mode and margin_mode from base_config and binance and okex example

* deleted okex and futures config files

* updated full config file

* updated new-config command to add trading_mode and margin_mode to config

* new file:   config_examples/config_okex_futures.example.json

* removed config_okex_futures.example.json

* added trading_mode to test_start_new_config

* new-config asks exchange before asking futures

* Simplify trading_mode selection

* margin_mode is empty string for spot new configs

* build_config_commands sorted exchanges

* isort

Co-authored-by: Matthias <xmatthias@outlook.com>
2022-02-02 14:46:44 +01:00
Matthias
0058abcc2d Fix crash when no min-stake-amount could be determined 2022-02-02 12:20:05 +01:00
Matthias
c3684e8a1a Merge pull request #6346 from samgermain/minor-fixes
Minor fixes for feat/short
2022-02-02 07:46:17 +01:00
Sam Germain
a741356d65 okex._lev_prep, removing rounding from default set_leverage 2022-02-02 00:28:57 -06:00
Sam Germain
8e51360f75 exchange._set_leverage rounds leverage 2022-02-02 00:09:58 -06:00
Sam Germain
8a64f6a27f exchange.set_margin_mode param swap 2022-02-02 00:09:53 -06:00
Sam Germain
386be2d889 set reduceOnly for futures exit orders 2022-02-02 00:08:50 -06:00
Sam Germain
b3477c4802 _api.fetch_funding_history argument pair->symbol 2022-02-02 00:08:50 -06:00
Matthias
fb4f8d94fb Merge pull request #6342 from samgermain/name-changes
Changed name Collateral to MarginMode, and collateral to margin_mode
2022-02-02 07:04:29 +01:00
Matthias
170152d620 Add note about plot-dataframe not supproting futures mode
part of #6224
2022-02-02 06:50:54 +01:00
Matthias
ac04d5852a change to margin_mode also in documentation 2022-02-02 06:41:42 +01:00
Matthias
5aa683006c Merge pull request #6337 from TheJoeSchr/patch-8
docs: fix typo and fix markdown list rendering
2022-02-01 20:45:06 +01:00
Sam Germain
30519aa3be Changed name Collateral -> MarginMode, collateral -> margin_mode, and _supported_trading_mode_margin_pairs -> _supported_trading_margin_pairs 2022-02-01 13:05:40 -06:00
Matthias
64d0c75bbb Fix deprecation warnings 2022-02-01 19:11:51 +01:00
Matthias
d96a354a3e Version bump ccxt to 1.71.73
closes #6339
2022-02-01 18:50:22 +01:00
Matthias
45e533fc3e Add leverage/short properties to api responses 2022-02-01 07:08:43 +01:00
Matthias
7dd50f78cf Small finetuning improving a comment 2022-02-01 06:37:13 +01:00
Matthias
2141e04a19 Merge pull request #5849 from freqtrade/isolated-liq
Isolated liq
2022-02-01 06:36:46 +01:00
Matthias
479b560549 Add missing entry_tag argument to custom_entry_tag documentation 2022-02-01 06:15:57 +01:00
Italo
ef03f2f3d2 Merge branch 'freqtrade-develop' into plot_hyperopt_stats 2022-02-01 01:07:15 +00:00
Italo
328b969801 Merge branch 'develop' of https://github.com/freqtrade/freqtrade into freqtrade-develop 2022-02-01 01:06:57 +00:00
Sam Germain
fc15e14707 Merge branch 'feat/short' into isolated-liq 2022-01-31 14:22:01 -06:00
Sam Germain
ed320bb2ac exchange.get_liquidation_price check length of positions 2022-01-31 14:01:06 -06:00
Sam Germain
9de63412c1 exchange.get_liquidation_price arguments are not optional 2022-01-31 14:00:52 -06:00
Sam Germain
6c4325b7a2 confest markets removed futures values from ETH/USDT 2022-01-31 13:44:57 -06:00
Matthias
d653d6bfc0 Merge pull request #6332 from samgermain/binance-max-lev
Binance max lev
2022-01-31 20:26:57 +01:00
TheJoeSchr
1a838680e7 docs: fix typo and fix markdown list rendering 2022-01-31 20:23:02 +01:00
Matthias
2c492abc1e Merge pull request #6336 from TheJoeSchr/patch-7
Docs: fix typo in strategy-callbacks.md
2022-01-31 20:22:12 +01:00
Sam Germain
430051275a freqtradebot.leverage_prep moved wallet_balance to a variable 2022-01-31 13:21:27 -06:00
Sam Germain
8b9abd0051 test_get_maintenance_ratio_and_amt_gateio removed commented test that returns None 2022-01-31 13:18:31 -06:00
Matthias
de17993705 Fix random test failure when local config is found 2022-01-31 20:09:25 +01:00
TheJoeSchr
f35c6545c1 Update strategy-callbacks.md
fix typo
2022-01-31 20:04:19 +01:00
Sam Germain
8190b0d83b binance.get_max_leverage adjustment 2022-01-31 12:49:18 -06:00
Sam Germain
a368f8b322 exchange.get_max_leverage changed variable names, made more effecient 2022-01-31 12:21:12 -06:00
Sam Germain
08e4a4a6dd binance.get_max_leverage_fix 2022-01-31 12:21:12 -06:00
Sam Germain
43db4c34d1 added okex back to unsupported exchanges 2022-01-31 12:18:30 -06:00
Sam Germain
2c1497b348 contracts_to_amount no longer in amount_to_precision 2022-01-31 12:18:30 -06:00
Sam Germain
b8f4cebce7 exchange.liquidation_price methods combined, dry_run check on exchange for liquidation price 2022-01-31 12:18:25 -06:00
Sam Germain
143c37d36f cleaned up liquidation price methods 2022-01-31 12:17:07 -06:00
Sam Germain
ede9012fcc removed TODO-levs about okex liquidation price 2022-01-31 12:17:07 -06:00
Sam Germain
d133a7c789 added isolated, futures to okex trading_mode_collateral_pairs 2022-01-31 12:17:07 -06:00
Sam Germain
88ce66650c Okex and Gateio liquidation_price formula are the same, moved liquidation_price to exchange.exchange class 2022-01-31 12:17:07 -06:00
Sam Germain
7f4894d68e okex.liquidation_price formula update 2022-01-31 12:17:07 -06:00
Sam Germain
fe037aa971 exchange.liquidation_price combined position and position_assets 2022-01-31 12:17:07 -06:00
Sam Germain
0b5c2e97b3 exchange._get_maintenance_ratio_and_amount 2022-01-31 12:17:07 -06:00
Sam Germain
e91aaa7d64 removed isolated_liq= 2022-01-31 12:16:43 -06:00
Sam Germain
5cf54bee4d removed excess decimals in test_binance 2022-01-31 12:16:43 -06:00
Sam Germain
0c13e387fe moved liquidation_price method to exchange classes 2022-01-31 12:16:43 -06:00
Sam Germain
5a97760bd1 binance.get_max_leverage divide by 0 warning 2022-01-31 12:16:43 -06:00
Sam Germain
1f8111d1c6 exchange.get_max_leverage pair is required 2022-01-31 12:16:43 -06:00
Sam Germain
caff7e227f binance.fill_leverage_brackets remove excess bracket 2022-01-31 12:16:43 -06:00
Sam Germain
e4b37c6462 freqtradebot.leverage_prep minor fixes 2022-01-31 12:16:43 -06:00
Sam Germain
1f1ac8ce9d test_get_liquidation_price/test_get_maintenance_ratio_and_amt_binance/fill_leverage_brackets/test_validate_trading_mode_and_collateral TODO comments 2022-01-31 12:16:43 -06:00
Sam Germain
c2f9201512 Added get_liquidation_price check 2022-01-31 12:16:43 -06:00
Sam Germain
bb2b2211d0 exchange.fill_leverage_brackets/get_maintenance_ratio_and_amt docstring and type specification 2022-01-31 12:16:43 -06:00
Sam Germain
b4a0611afc exchange.get_liquidation_price removed irrelevant comment 2022-01-31 12:16:43 -06:00
Sam Germain
0c8205ab3b replace single quote docstrings with double quote docstrings 2022-01-31 12:16:43 -06:00
Sam Germain
7abffee755 liquidation_price formula organize and comment clean up 2022-01-31 12:16:43 -06:00
Sam Germain
387a9fbf36 test_execute_entry liquidation_price test test_get_maintenance_ratio_and_amt_gateio 2022-01-31 12:16:38 -06:00
Sam Germain
2d545a2def fixed breaking tests for liquidation price 2022-01-31 12:15:54 -06:00
Sam Germain
1eee5373b9 gateio.get_maintenance_ratio_and_amt 2022-01-31 12:15:54 -06:00
Sam Germain
8889512887 freqtradebot.leverage_prep gets taker_fee_rate 2022-01-31 12:15:54 -06:00
Sam Germain
bff53c52af rewrite fill_leverage_brackets 2022-01-31 12:15:54 -06:00
Sam Germain
69a6223ca0 implemented binance.get_maintenance_ratio_and_amt 2022-01-31 12:15:54 -06:00
Sam Germain
ba5fc21d84 added isolated futures to supported modes for binance,gateio 2022-01-31 12:15:54 -06:00
Sam Germain
e0df7ee72a Changed variable names in binance.get_max_leverage 2022-01-31 12:15:54 -06:00
Sam Germain
42360592ba trimmed down liquidation_price variable and edited comments 2022-01-31 12:15:54 -06:00
Sam Germain
5796d95a95 Added gateio and okex isolated liquidation formulas 2022-01-31 12:15:54 -06:00
Sam Germain
ba02605d77 Isolated liq branch passes all tests and has the general structure that it is supposed to, but is patchy, and doesnt get the correct maintenance amt and maintenance margin rate yet 2022-01-31 12:15:54 -06:00
Sam Germain
eee7271ab8 Added live isolated-liq get 2022-01-31 12:15:54 -06:00
Arunavo Ray
778e3bcba6 Suppress incompatible type "Optional[float]"; expected "float" as the check exists. 2022-01-31 12:15:54 -06:00
Sam Germain
92c94bb62a added position and wallet_balance to LocalTrade.set_isolated_liq 2022-01-31 12:15:54 -06:00
Arunavo Ray
447312d4c8 Fixed parameter check which failed when 0.0 was passed 2022-01-31 12:15:54 -06:00
Sam Germain
d26a068adf rearanged isolated_liq in models a bit 2022-01-31 12:15:54 -06:00
Arunavo Ray
3709130eb7 Added Tests for Binance Liquidation price, shortened liquidation param names 2022-01-31 12:15:54 -06:00
Arunavo Ray
f9a2d1a71d Binance Liquidation Price Hedge-Mode Removed 2022-01-31 12:15:54 -06:00
Arunavo Ray
7119dc6e41 Converted kwargs to params 2022-01-31 12:15:54 -06:00
Sam Germain
80f4bae3fe Revert "Added Formulas to Calculate Liquidation Price of Binance USDⓈ-M Futures Contracts"
This reverts commit d343e84507.
2022-01-31 12:15:54 -06:00
Sam Germain
b30458f871 Revert "Added Margin Mode Check for Binance."
This reverts commit abcb9729e5.
2022-01-31 12:15:54 -06:00
Arunavo Ray
1299cff894 Added Margin Mode Check for Binance. 2022-01-31 12:15:54 -06:00
Arunavo Ray
60454334d9 Added Formulas to Calculate Liquidation Price of Binance USDⓈ-M Futures Contracts 2022-01-31 12:15:54 -06:00
Sam Germain
fe5e00361e separated test_leverage into test_interest and test_liquidation_price, and paramaterized tests 2022-01-31 12:15:54 -06:00
Sam Germain
a087d03db9 Added liquidation_price function 2022-01-31 12:15:54 -06:00
Matthias
f10ef7f2da Merge pull request #6334 from samgermain/todo
Removed PrecisionFilter liquidation price TODO-lev
2022-01-31 19:09:07 +01:00
Sam Germain
da0d2590b9 Removed PrecisionFilter liquidation price TODO-lev 2022-01-31 12:06:04 -06:00
Matthias
be866f04fa Merge pull request #6330 from samgermain/market-checks
Removed unnecessary CCXT market checks
2022-01-31 19:01:59 +01:00
Matthias
1b063739c0 Merge pull request #6331 from samgermain/todo
Todo-levs
2022-01-31 15:42:45 +01:00
Sam Germain
689174ea0d removed TODO-lev comments 2022-01-31 04:12:37 -06:00
Sam Germain
779b82b5b4 fixed test_get_min_pair_stake_amount by adding amount.min/max and cost.min/max to all markets 2022-01-31 03:02:17 -06:00
Sam Germain
5af3e1600d updated conftest to have limit keys and contractSize on every market 2022-01-31 03:01:44 -06:00
Sam Germain
29c5dfd4ca Removed unnecessary CCXT market checks 2022-01-31 02:40:10 -06:00
Matthias
b3e36def34 Merge pull request #6329 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.26
Bump prompt-toolkit from 3.0.24 to 3.0.26
2022-01-31 07:00:42 +01:00
Matthias
c53122ed02 Merge pull request #6323 from freqtrade/dependabot/pip/develop/mkdocs-material-8.1.9
Bump mkdocs-material from 8.1.8 to 8.1.9
2022-01-31 07:00:28 +01:00
Matthias
d10d84adf3 Merge pull request #6326 from freqtrade/dependabot/pip/develop/uvicorn-0.17.1
Bump uvicorn from 0.17.0 to 0.17.1
2022-01-31 07:00:12 +01:00
Matthias
aac6d15a1d Merge pull request #6327 from freqtrade/dependabot/pip/develop/pytest-mock-3.7.0
Bump pytest-mock from 3.6.1 to 3.7.0
2022-01-31 06:58:58 +01:00
Matthias
faa23949b5 Merge pull request #6324 from freqtrade/dependabot/pip/develop/nbconvert-6.4.1
Bump nbconvert from 6.4.0 to 6.4.1
2022-01-31 06:56:08 +01:00
Matthias
677a14ddde Merge pull request #6322 from freqtrade/dependabot/pip/develop/ccxt-1.71.46
Bump ccxt from 1.70.45 to 1.71.46
2022-01-31 06:55:43 +01:00
Matthias
d4ca2e5767 Merge pull request #6325 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.9
Bump types-python-dateutil from 2.8.8 to 2.8.9
2022-01-31 06:55:13 +01:00
Matthias
ab3c6a7ee4 Merge pull request #6328 from freqtrade/dependabot/pip/develop/arrow-1.2.2
Bump arrow from 1.2.1 to 1.2.2
2022-01-31 06:54:52 +01:00
dependabot[bot]
bc5adc0188 Bump prompt-toolkit from 3.0.24 to 3.0.26
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.24 to 3.0.26.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.24...3.0.26)

---
updated-dependencies:
- dependency-name: prompt-toolkit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 03:01:46 +00:00
dependabot[bot]
65526e9803 Bump arrow from 1.2.1 to 1.2.2
Bumps [arrow](https://github.com/arrow-py/arrow) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/arrow-py/arrow/releases)
- [Changelog](https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/arrow-py/arrow/compare/1.2.1...1.2.2)

---
updated-dependencies:
- dependency-name: arrow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 03:01:42 +00:00
dependabot[bot]
8a9b70cc49 Bump pytest-mock from 3.6.1 to 3.7.0
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.6.1 to 3.7.0.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.6.1...v3.7.0)

---
updated-dependencies:
- dependency-name: pytest-mock
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 03:01:34 +00:00
dependabot[bot]
ab5c1e6c1e Bump uvicorn from 0.17.0 to 0.17.1
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.17.0 to 0.17.1.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.17.0...0.17.1)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 03:01:31 +00:00
dependabot[bot]
15dbdfe130 Bump types-python-dateutil from 2.8.8 to 2.8.9
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.8 to 2.8.9.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 03:01:27 +00:00
dependabot[bot]
dbf2226841 Bump nbconvert from 6.4.0 to 6.4.1
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 6.4.0 to 6.4.1.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Commits](https://github.com/jupyter/nbconvert/compare/6.4.0...6.4.1)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 03:01:25 +00:00
dependabot[bot]
7d066d81c1 Bump mkdocs-material from 8.1.8 to 8.1.9
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.1.8 to 8.1.9.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.1.8...8.1.9)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 03:01:22 +00:00
dependabot[bot]
287e90af8e Bump ccxt from 1.70.45 to 1.71.46
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.70.45 to 1.71.46.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.70.45...1.71.46)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 03:01:18 +00:00
Matthias
cf7edace2b Merge pull request #6312 from freqtrade/short_informative_decorator
Short informative decorator
2022-01-30 15:33:52 +01:00
Matthias
cafda31869 Merge pull request #6320 from stash86/pos_adjust
Change new-config message for max_open_trades input
2022-01-30 14:11:20 +01:00
Matthias
7aae9565c7 Only look at buy orders when looking to recalculate trade value 2022-01-30 14:08:42 +01:00
Stefano Ariestasia
da39ca6650 fix new-config 2022-01-30 21:19:05 +09:00
Matthias
000b8ff281 Merge pull request #6306 from freqtrade/short_forceentry
add `/forcelong` and `/forceshort` commands
2022-01-30 07:36:14 +01:00
Matthias
aea84dc117 Limit should default to None when calling pair_candles 2022-01-29 20:16:58 +01:00
Matthias
8a6823deb1 Convert InformativeData to dataclass 2022-01-29 19:59:54 +01:00
Stefano Ariestasia
326ba46bf8 Merge branch 'freqtrade:develop' into fix-docs 2022-01-29 23:20:41 +09:00
Matthias
ab932d8398 Properly detect default candle type 2022-01-29 14:31:58 +01:00
Matthias
d1d520769e Improve status table for position adjust
don't show "/max" if no maximum is set

closes #6317
2022-01-29 14:29:09 +01:00
Matthias
463714832d Merge branch 'develop' into feat/short 2022-01-29 14:19:30 +01:00
Matthias
e7409e74c2 Remove default from position_adjustment (otherwise strategy parameters won't work anymore) 2022-01-28 19:21:42 +01:00
Matthias
c620e38c7d Informative decorator updates for futures 2022-01-28 19:17:46 +01:00
Matthias
fb3c67d86b Accept that keys sometimes are not provided 2022-01-28 17:07:34 +01:00
Matthias
fdea4fcb1b Remove some todo's 2022-01-28 15:52:12 +01:00
Matthias
571ddceaf6 Merge pull request #6310 from Verbalinsurection/perso
Fix ETH duplicate in CoinGecko
2022-01-28 12:35:44 +01:00
Verbalinsurection
9ae14f0b56 Merge remote-tracking branch 'Verbalinsurection/perso' into perso 2022-01-28 11:17:27 +01:00
Verbalinsurection
2ba2144df1 Add tests for ETH fiat_convert 2022-01-28 11:17:16 +01:00
Matthias
15d5389564 Update /health endpoint to be in local timezone 2022-01-28 10:33:35 +01:00
Verbalinsurection
660f474ab8 Fix ETH duplicate in CoinGecko 2022-01-28 10:26:31 +01:00
Matthias
e062188a18 Merge pull request #6309 from freqtrade/fix_krakenci
Filter tickers on stake-currency for kraken
2022-01-28 08:08:00 +01:00
Matthias
5d0c2bcb44 Shift candles after pushing them to dataprovider
this will ensure that the signals are not shifted in callbacks
closes #6234
2022-01-28 07:25:10 +01:00
Matthias
138e867a68 Filter tickers on stake-currency for kraken 2022-01-28 07:20:47 +01:00
Matthias
9df7014de3 Skip kraken tests temporarily 2022-01-28 06:59:37 +01:00
Matthias
bf8ef58439 Merge pull request #6308 from stash86/pos_adjust
Fix wordings
2022-01-28 06:59:08 +01:00
Stefano Ariestasia
b8f29802e5 another typo 2022-01-28 09:31:36 +09:00
Stefano Ariestasia
cbd213bc0a fix typo 2022-01-28 09:16:56 +09:00
Stefano Ariestasia
bd1b991448 Merge branch 'freqtrade:develop' into fix-docs 2022-01-28 06:57:13 +09:00
Verbalinsurection
31211a33fd Fix ETH duplicate in CoinGecko 2022-01-27 22:21:16 +01:00
Matthias
82e193d9f0 Merge pull request #6260 from stash86/pos_adjust
Add max_buy_position_adjustment as attribute
2022-01-27 20:13:51 +01:00
Matthias
4b9d55dbe2 Add test for backtest dataprovider
(should cache the correct candle)
2022-01-27 18:59:23 +01:00
Matthias
108018b30b Merge pull request #6231 from freqtrade/funding_rate_backtest
Funding rate backtest
2022-01-27 17:01:28 +01:00
Matthias
002226f5fd Update setting to max_entry_position_adjustment 2022-01-27 16:57:50 +01:00
Matthias
c4f71cc103 More forceenter updates 2022-01-27 07:38:11 +01:00
Matthias
18168cba7a Merge pull request #6303 from Wings22Actual/develop
Added note to docker_quickstart.md
2022-01-27 07:36:38 +01:00
Wings22Actual
4a2914d72e Update docs/docker_quickstart.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2022-01-27 07:04:06 +01:00
Matthias
6e72effbf0 Update forcebuy telegram tests 2022-01-27 06:31:45 +01:00
Matthias
0a52d79208 Update forcesell to work as forceexit 2022-01-26 20:17:00 +01:00
Matthias
066fb3ce00 Update rest-client with forceenter 2022-01-26 20:07:58 +01:00
Matthias
7afaf4b5d4 Add /forceshort command 2022-01-26 19:53:46 +01:00
Matthias
e2ddea79ee Add "market" to /show_config 2022-01-26 19:49:15 +01:00
Matthias
be7ce208dc Update tests to test forceenter endpoint 2022-01-26 19:24:01 +01:00
Matthias
48d8cd82af _rpc_forcebuy 2022-01-26 19:11:01 +01:00
Matthias
4998f3bdd7 Add order_side to forcebuy endpoint 2022-01-26 19:07:44 +01:00
Stefano Ariestasia
396ebebdc1 Merge branch 'freqtrade:develop' into fix-docs 2022-01-26 16:09:11 +09:00
Stefano Ariestasia
ed71f777a3 Merge branch 'fix-docs' of https://github.com/stash86/freqtrade into fix-docs 2022-01-26 07:07:00 +00:00
Stefano Ariestasia
1f26709aca changes 2022-01-26 07:06:52 +00:00
Wings22Actual
4408f97a00 Added note to docker_quickstart.md
Added note that 'docker run --rm' can be used instead of 'docker-compose run --rm' for some commands (line 129-132)
2022-01-26 06:56:39 +00:00
Matthias
67651e013e Add /forceenter endpoint 2022-01-26 07:10:38 +01:00
Matthias
88ccfedd32 Improve wording of "no history found" error 2022-01-26 06:53:00 +01:00
Matthias
b6943f3bca Merge pull request #6296 from freqtrade/python_37_remove
Update references to remove python 3.7 support
2022-01-25 20:01:14 +01:00
Matthias
12c79967f5 Merge pull request #6258 from italodamato/pass_dimensions_to_generate_estimator
Pass dimensions to generate_estimator
2022-01-25 19:37:22 +01:00
Matthias
13978e9893 Merge pull request #6276 from clover-es/feat/short
Add support for shorts in strategy.stoploss_from_absolute()
2022-01-25 19:11:05 +01:00
Italo
30b27ae736 explicit dtype 2022-01-25 12:29:55 +00:00
Matthias
2e2b1e2470 Merge pull request #6299 from freqtrade/dependabot/pip/develop/ccxt-1.70.45
Bump ccxt from 1.68.20 to 1.70.45
2022-01-25 13:18:54 +01:00
Italo
f7a5b2cb71 explicit dimensions, added **kwargs, updated docs 2022-01-25 11:43:40 +00:00
Matthias
325fd8a780 Add test with absolute values 2022-01-25 06:44:20 +01:00
dependabot[bot]
6e47d06733 Bump ccxt from 1.68.20 to 1.70.45
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.68.20 to 1.70.45.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.68.20...1.70.45)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-25 05:44:03 +00:00
Matthias
d9347e9900 Update references to remove python 3.7 support 2022-01-25 06:43:36 +01:00
Matthias
eb677ad9b6 Merge pull request #6291 from freqtrade/dependabot/pip/develop/pandas-1.4.0
Bump pandas from 1.3.5 to 1.4.0
2022-01-25 06:43:03 +01:00
Matthias
f7be93aaa6 leverage limits can be None, so we need to check for that 2022-01-25 06:30:03 +01:00
Stefano Ariestasia
0fa7986369 Merge branch 'freqtrade:develop' into pos_adjust 2022-01-25 10:30:18 +09:00
Stefano Ariestasia
7c975df42a Merge branch 'freqtrade:develop' into fix-docs 2022-01-25 10:30:03 +09:00
Italo
a7ea06791a Merge branch 'freqtrade:develop' into plot_hyperopt_stats 2022-01-24 21:46:33 +00:00
Matthias
4389ce1a8f Update helpers documentation for is_short 2022-01-24 19:12:28 +01:00
Matthias
aacddf64cf Add pandas 3.7 requirements workaround 2022-01-24 19:07:37 +01:00
Reigo Reinmets
e72c3ec19f Commit just to force tests to run again. 2022-01-24 15:27:03 +02:00
Reigo Reinmets
78986a0def I sort managed to fit it on another row. Impressive. 2022-01-24 14:09:23 +02:00
Reigo Reinmets
acf6e94591 Fix unittest. 2022-01-24 13:56:52 +02:00
Reigo Reinmets
1d59a6b7e3 Merge branch 'freqtrade:develop' into health 2022-01-24 13:52:53 +02:00
Matthias
ac71d79364 Merge pull request #6281 from freqtrade/stake_amount_tag
Entry callbacks - provide buy_tag
2022-01-24 09:28:40 +01:00
Matthias
b8377b9e30 Merge pull request #6288 from freqtrade/dependabot/pip/develop/pytest-asyncio-0.17.2
Bump pytest-asyncio from 0.17.1 to 0.17.2
2022-01-24 08:02:01 +01:00
Matthias
2823da977d Merge pull request #6289 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.31
Bump sqlalchemy from 1.4.29 to 1.4.31
2022-01-24 08:00:46 +01:00
Matthias
45a2298929 Re-add getting buy orders in docs 2022-01-24 07:11:22 +01:00
Matthias
381bda1e4a Update test to add new argument 2022-01-24 07:02:02 +01:00
Matthias
194a5ce3cc Update advanced strategy template with missing methods 2022-01-24 07:02:02 +01:00
Matthias
e252830229 Add entry_tag to "entry" callbacks 2022-01-24 07:02:01 +01:00
Reigo Reinmets
d3d4894ec5 Merge branch 'freqtrade:develop' into health 2022-01-24 08:01:00 +02:00
Matthias
6d91ceb28c Merge pull request #6282 from xataxxx/develop
Fix missing order time data in backtesting.
2022-01-24 06:59:21 +01:00
Matthias
ce7dff405f Merge pull request #6292 from freqtrade/dependabot/pip/develop/fastapi-0.73.0
Bump fastapi from 0.72.0 to 0.73.0
2022-01-24 06:53:39 +01:00
Matthias
1aa7c193ba Merge pull request #6287 from freqtrade/dependabot/pip/develop/mkdocs-material-8.1.8
Bump mkdocs-material from 8.1.7 to 8.1.8
2022-01-24 06:52:57 +01:00
Matthias
0990e5d472 Merge pull request #6286 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.8
Bump types-python-dateutil from 2.8.7 to 2.8.8
2022-01-24 06:22:58 +01:00
Matthias
9ae6bbb8d2 Merge pull request #6290 from freqtrade/dependabot/pip/develop/types-filelock-3.2.5
Bump types-filelock from 3.2.4 to 3.2.5
2022-01-24 06:22:24 +01:00
dependabot[bot]
b8413410d1 Bump fastapi from 0.72.0 to 0.73.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.72.0 to 0.73.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.72.0...0.73.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:01:33 +00:00
dependabot[bot]
fd1828c283 Bump pandas from 1.3.5 to 1.4.0
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.3.5 to 1.4.0.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/main/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.3.5...v1.4.0)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:01:30 +00:00
dependabot[bot]
cf79cef7ba Bump types-filelock from 3.2.4 to 3.2.5
Bumps [types-filelock](https://github.com/python/typeshed) from 3.2.4 to 3.2.5.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-filelock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:01:24 +00:00
dependabot[bot]
95c7d48684 Bump sqlalchemy from 1.4.29 to 1.4.31
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.29 to 1.4.31.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:01:22 +00:00
dependabot[bot]
12fabba784 Bump pytest-asyncio from 0.17.1 to 0.17.2
Bumps [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) from 0.17.1 to 0.17.2.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.17.1...v0.17.2)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:01:12 +00:00
dependabot[bot]
013262f7e2 Bump mkdocs-material from 8.1.7 to 8.1.8
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.1.7 to 8.1.8.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.1.7...8.1.8)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:01:07 +00:00
dependabot[bot]
138fd9440a Bump types-python-dateutil from 2.8.7 to 2.8.8
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.7 to 2.8.8.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:01:03 +00:00
Italo
a2fb241a3b increase initial points to 64 2022-01-24 01:35:42 +00:00
Reigo Reinmets
bf62fc9b25 Add /health endpoint that returns last_process timestamp, fix issue #6009 2022-01-23 21:58:46 +02:00
Reigo Reinmets
451eca51c8 Optimise the multiple usages of the same timestamp. 2022-01-23 20:58:25 +02:00
Reigo Reinmets
e67a54f7a9 Fix missing order time info in backtesting. 2022-01-23 20:52:35 +02:00
Matthias
daee59f4f1 Reorder interface methods 2022-01-23 19:20:31 +01:00
Matthias
57067ce88d Add tests for max_adjustment_buy handling 2022-01-23 19:07:37 +01:00
Matthias
7429f535c1 Imrpove code by reusing available properties 2022-01-23 18:59:09 +01:00
Matthias
62df044618 Merge pull request #6279 from xataxxx/develop
Fix position adjustment not counting older orders because of missing average field value
2022-01-23 17:42:51 +01:00
Matthias
6492e1cd76 Investigate random test failure 2022-01-23 17:42:18 +01:00
Matthias
4b6f9121ca Merge pull request #6275 from freqtrade/extract_timedout_from_ftbot
Extract timedout from ftbot
2022-01-23 17:28:10 +01:00
Reigo Reinmets
6613e3757a Additional fix 2022-01-23 18:09:57 +02:00
Matthias
09db4bcadd Don't use strings, use methods directly 2022-01-23 17:00:00 +01:00
Reigo Reinmets
51b94889b2 Just in case also check for closed to avoid counting in canceled orders. 2022-01-23 17:56:41 +02:00
Reigo Reinmets
8c79d55739 Fix issue #6268 2022-01-23 17:44:16 +02:00
Stefano Ariestasia
480ed90a02 create to_json function for Order 2022-01-23 11:33:06 +00:00
Matthias
821a9d9cdc Add current_time to check_timeout functions for convenience 2022-01-23 08:10:35 +01:00
Stefano Ariestasia
cc3852daf3 Add defaults to constants.py and update docs 2022-01-23 03:54:58 +00:00
Matthias
bf0b95b3d8 Improve backtest tests 2022-01-22 19:46:11 +01:00
Matthias
ad28543d4d Update kraken calculation 2022-01-22 19:46:11 +01:00
Matthias
d3713cf245 Fix fee test 2022-01-22 19:46:11 +01:00
Matthias
a0c0c4dcbe Update funding_fee formula to correctly calculate fees for long trades 2022-01-22 19:46:10 +01:00
Matthias
f26cd19146 Merge index and mark rates as part of dataload 2022-01-22 19:45:46 +01:00
Matthias
82c90c0049 Extract funding and mark mergin to separate method 2022-01-22 19:45:46 +01:00
Matthias
84c6d92d4c calculate_funding_fees is actually a public exchange interface (used in backtesting). 2022-01-22 19:45:46 +01:00
Matthias
e9e7fd749b Support funding-fees while running backtest 2022-01-22 19:45:43 +01:00
Matthias
a340d73edc Update funding_fee calculation test 2022-01-22 19:44:20 +01:00
Matthias
c6c97efed3 Remove unused method _get_funding_fee 2022-01-22 19:44:20 +01:00
Matthias
ef3a1ea8f2 Split funding fee calculation from Download 2022-01-22 19:44:20 +01:00
Guillermo Rodríguez
17ae6a0c78 Harmonize short parameter name in stoploss_from_open() 2022-01-22 18:01:56 +01:00
Guillermo Rodríguez
40cd478c6d Calculate stoploss_from_absolute for shorts 2022-01-22 18:01:02 +01:00
Matthias
f090dcc597 Merge branch 'develop' into feat/short 2022-01-22 17:56:01 +01:00
Italo
402747525f Merge pull request #1 from italodamato/develop 2022-01-22 15:40:57 +00:00
Italo
eacd1b0752 Merge branch 'plot_hyperopt_stats' into develop 2022-01-22 15:39:39 +00:00
Matthias
56daafd6b7 Use realistic date for dry-run orders 2022-01-22 16:31:59 +01:00
Matthias
01b331ee42 Merge pull request #6274 from italodamato/set-stoploss-at-trade-creation
set stoploss at trade creation
2022-01-22 16:17:47 +01:00
Matthias
7bef9a9b3e Extract timeout handling from freqtradebot class 2022-01-22 15:59:10 +01:00
Italo
0ce6c150ff set stoploss at trade creation 2022-01-22 14:06:45 +00:00
Italo
82f0d4d056 set stoploss at trade creation 2022-01-22 14:03:12 +00:00
Matthias
bd4014e1e6 Small cleanup 2022-01-22 15:01:27 +01:00
Matthias
a35b0b519a Update forcebuy endpoint to support stake-amount
closes #6223
2022-01-22 13:26:02 +01:00
Stefano Ariestasia
fe5f61694b Merge branch 'freqtrade:develop' into pos_adjust 2022-01-22 21:25:16 +09:00
Matthias
1505ad451c Merge pull request #6271 from freqtrade/fix/6267
Allow @informative in webserver mode
2022-01-22 10:33:52 +01:00
Matthias
9ecd7400c8 Allow NaN when calculating digests 2022-01-22 08:10:09 +01:00
Matthias
314a544881 Add Failing test for get_strategy_run_id
Fails because max_open_trades is "inf"
emulates behaviour of `max_open_trades=-1` when loading the
configuration)
2022-01-22 08:09:08 +01:00
Stefano Ariestasia
f79decdb9c Merge branch 'fix-docs' of https://github.com/stash86/freqtrade into fix-docs 2022-01-22 06:54:57 +00:00
Stefano Ariestasia
05046b9eef Add more info on status message 2022-01-22 06:54:49 +00:00
Matthias
a43c088448 Allow @informative in webserver mode 2022-01-22 07:11:59 +01:00
Matthias
3d94d7df5c Update migrations for mariadb 2022-01-21 19:31:11 +01:00
Matthias
c265f39323 Update sequences for postgres 2022-01-21 17:19:39 +01:00
Matthias
19948a6f89 Try fix sequence migrations 2022-01-21 16:49:08 +01:00
Matthias
5dca183b7b Combine order and Trade migrations to better facilitate migrations in advanced DB systems 2022-01-21 16:49:08 +01:00
Matthias
bb1d8fb54f Improve message when no hyperopt fie is found
closes #6266
2022-01-21 15:24:26 +01:00
Stefano Ariestasia
3249f9fb98 Add max buys on status table 2022-01-21 08:27:54 +00:00
Stefano Ariestasia
f3a152a5a2 Merge branch 'freqtrade:develop' into pos_adjust 2022-01-21 17:11:36 +09:00
Matthias
730d2e3574 Merge pull request #6259 from stash86/fix-docs
add "# Buys" column to status table
2022-01-21 07:49:21 +01:00
Matthias
d02acb21c2 Add simple test for #buy header 2022-01-21 07:04:25 +01:00
Matthias
f4487c7711 Merge pull request #6264 from italodamato/plot-trade-buytag
add buy_tag to trade tooltip in plots
2022-01-21 06:51:44 +01:00
Stefano Ariestasia
748381c5cd Update based on flake8 2022-01-21 00:35:22 +00:00
Italo
e35a1e4a01 fix flake8 2022-01-20 21:00:33 +00:00
Italo
a9f14ac119 show buy_tag only if not None 2022-01-20 18:44:09 +00:00
Italo
8ce5536dd8 fix tests
added buy_tag to first ADA/USDT trade
2022-01-20 18:37:17 +00:00
Italo
4e9f0d89af add buy_tag to trade tooltip in plots 2022-01-20 17:17:58 +00:00
Italo
52206e6f41 add buy tag to plot 2022-01-20 17:15:05 +00:00
Italo
34d19dc108 Merge branch 'freqtrade:develop' into plot_hyperopt_stats 2022-01-20 11:37:54 +00:00
Matthias
d549905856 Api-backtest to test new functionality 2022-01-20 07:11:48 +01:00
Matthias
a6c7f45545 Update webserver backtseting to reuse prior results 2022-01-20 06:51:48 +01:00
Matthias
e9baabce6f Store results when backtesting via API 2022-01-20 06:35:18 +01:00
Stefano Ariestasia
f30580e5f2 Update freqtradebot.py 2022-01-20 11:40:29 +09:00
Stefano Ariestasia
5fb9511556 fix typo 2022-01-20 10:34:35 +09:00
Stefano Ariestasia
62ea1a445e add lines to show_config message 2022-01-20 10:03:26 +09:00
Stefano Ariestasia
2e537df358 Update strategy_resolver.py 2022-01-20 09:07:59 +09:00
Matthias
847e8977ca Merge pull request #6255 from rokups/rk/backtest-result-caching-2
Rework backtesting --no-cahche to --cache=[none, day, week, month].
2022-01-19 21:01:24 +01:00
Matthias
afe46a55f7 Add documentation for --cache backtest option 2022-01-19 20:19:17 +01:00
Matthias
d319204dea Add note about legacy metadata format 2022-01-19 20:08:09 +01:00
Stefano Ariestasia
7c010b3058 Update strategy-callbacks.md 2022-01-19 22:16:42 +09:00
Stefano Ariestasia
ac93eea585 update 2022-01-19 21:58:24 +09:00
Rokas Kupstys
5fffc5033a Rework backtesting --no-cahche to --cache=[none, day, week, month].
Fix an issue where config modification during runtime would prevent use of cached results.
2022-01-19 11:44:35 +02:00
Stefano Ariestasia
5525fdae1a add max_buy_position_adjustment as attribute 2022-01-19 16:50:13 +09:00
Stefano Ariestasia
3925e8a7e3 add "# Buys" column to status table 2022-01-19 16:14:21 +09:00
Matthias
e04956be0e Merge pull request #6185 from freqtrade/fix_funding_fee_calc
cleanup funding fee tests
2022-01-19 06:57:44 +01:00
Italo
2eec51bfcb Update requirements-hyperopt.txt 2022-01-19 02:00:14 +00:00
Italo
16a516a882 added plot functionality 2022-01-19 01:50:15 +00:00
Italo
a4dbdb549d added type spec 2022-01-19 01:37:47 +00:00
Italo
a6a127f596 Update .gitignore 2022-01-19 01:31:14 +00:00
Italo
407c20412d Pass dimensions to generate_estimator
It's needed in order to create isotropic kernels for the GaussianProcessRegressor
2022-01-19 01:07:41 +00:00
Matthias
1fb48a1f53 Add TODO-lev for "stoploss_from_absolute". 2022-01-18 16:52:34 +01:00
Matthias
120639e84b Merge pull request #6228 from clover-es/feat/short
Stoploss from open for shorts
2022-01-18 16:49:58 +01:00
Matthias
301b2e8a0f Merge pull request #6254 from SmartManoj/patch-2
Spreadfilter log % fix
2022-01-18 09:55:02 +01:00
மனோஜ்குமார் பழனிச்சாமி
d918d24f08 Spreadfilter log % fix
Both the following same
print(f'{3:.3%}') 
print(f'{3 *100 :.3}%')
# 300.000%
2022-01-18 14:05:03 +05:30
Matthias
3c06d31bbf Merge pull request #6238 from stash86/fix-docs
Add position adjustment On or Off on startup message
2022-01-17 20:32:27 +01:00
Matthias
d813fef95b Add asyncio_mode setting for pytest 2022-01-17 20:02:59 +01:00
Matthias
9c9c9f0171 Readd trailing white line 2022-01-17 20:00:35 +01:00
Matthias
6c7a4230ad Update comment about funding_fees calculation 2022-01-17 19:20:47 +01:00
Matthias
ff646441ce Reduce decimals in test 2022-01-17 19:20:42 +01:00
Matthias
bb738b518c FIx funding_fee calculation 2022-01-17 19:06:26 +01:00
Matthias
91236c1876 Merge pull request #6244 from freqtrade/dependabot/pip/develop/uvicorn-0.17.0
Bump uvicorn from 0.16.0 to 0.17.0
2022-01-17 19:01:49 +01:00
Matthias
a156101d5c Merge pull request #6252 from xataxxx/dca
Fix eager-loading trade.orders
2022-01-17 13:17:01 +01:00
Reigo Reinmets
3de843ab2c Add eager-loading for orders. This allows access to trade.orders in all callbacks. 2022-01-17 13:23:37 +02:00
Matthias
8d67caafb3 Merge pull request #6240 from freqtrade/dependabot/pip/develop/time-machine-2.6.0
Bump time-machine from 2.5.0 to 2.6.0
2022-01-17 08:41:35 +01:00
Stefano Ariestasia
f9a935b9a3 Update rpc_manager.py 2022-01-17 16:37:06 +09:00
dependabot[bot]
d0dc9e26b0 Bump uvicorn from 0.16.0 to 0.17.0
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.16.0 to 0.17.0.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.16.0...0.17.0)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 07:10:59 +00:00
Matthias
3a5841bc03 Merge pull request #6246 from freqtrade/dependabot/pip/develop/fastapi-0.72.0
Bump fastapi from 0.71.0 to 0.72.0
2022-01-17 08:10:05 +01:00
Matthias
cf41f71f39 Merge pull request #6245 from freqtrade/dependabot/pip/develop/pytest-asyncio-0.17.1
Bump pytest-asyncio from 0.16.0 to 0.17.1
2022-01-17 08:08:52 +01:00
dependabot[bot]
f2984e9d0e Bump time-machine from 2.5.0 to 2.6.0
Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.5.0 to 2.6.0.
- [Release notes](https://github.com/adamchainz/time-machine/releases)
- [Changelog](https://github.com/adamchainz/time-machine/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/time-machine/compare/2.5.0...2.6.0)

---
updated-dependencies:
- dependency-name: time-machine
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 07:06:07 +00:00
Matthias
fa605e6a50 Merge pull request #6251 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.7
Bump types-python-dateutil from 2.8.6 to 2.8.7
2022-01-17 08:05:20 +01:00
Matthias
0f51192575 Merge pull request #6250 from freqtrade/dependabot/pip/develop/types-cachetools-4.2.9
Bump types-cachetools from 4.2.8 to 4.2.9
2022-01-17 08:04:59 +01:00
Matthias
0629dc866d Merge pull request #6243 from freqtrade/dependabot/pip/develop/jsonschema-4.4.0
Bump jsonschema from 4.3.3 to 4.4.0
2022-01-17 06:40:26 +01:00
dependabot[bot]
da134d3ad1 Bump types-cachetools from 4.2.8 to 4.2.9
Bumps [types-cachetools](https://github.com/python/typeshed) from 4.2.8 to 4.2.9.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 05:32:38 +00:00
Matthias
4f9af81b50 Merge pull request #6248 from freqtrade/dependabot/pip/develop/types-requests-2.27.7
Bump types-requests from 2.27.5 to 2.27.7
2022-01-17 06:31:46 +01:00
Matthias
543a561019 Merge pull request #6249 from freqtrade/dependabot/pip/develop/ccxt-1.68.20
Bump ccxt from 1.66.66 to 1.68.20
2022-01-17 06:30:27 +01:00
dependabot[bot]
9092596a1f Bump pytest-asyncio from 0.16.0 to 0.17.1
Bumps [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) from 0.16.0 to 0.17.1.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.16.0...v0.17.1)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 05:28:33 +00:00
Matthias
096d2d7313 Merge pull request #6241 from freqtrade/dependabot/pip/develop/numpy-1.22.1
Bump numpy from 1.22.0 to 1.22.1
2022-01-17 06:28:15 +01:00
dependabot[bot]
81b8008047 Bump types-python-dateutil from 2.8.6 to 2.8.7
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.6 to 2.8.7.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 05:27:54 +00:00
Matthias
7073b36421 Merge pull request #6247 from freqtrade/dependabot/pip/develop/flake8-tidy-imports-4.6.0
Bump flake8-tidy-imports from 4.5.0 to 4.6.0
2022-01-17 06:27:39 +01:00
Matthias
108f79ad39 Merge pull request #6242 from freqtrade/dependabot/pip/develop/mkdocs-material-8.1.7
Bump mkdocs-material from 8.1.5 to 8.1.7
2022-01-17 06:27:21 +01:00
dependabot[bot]
d384184784 Bump ccxt from 1.66.66 to 1.68.20
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.66.66 to 1.68.20.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.66.66...1.68.20)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:02:28 +00:00
dependabot[bot]
9fbb9332f9 Bump types-requests from 2.27.5 to 2.27.7
Bumps [types-requests](https://github.com/python/typeshed) from 2.27.5 to 2.27.7.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:02:21 +00:00
dependabot[bot]
c403464bb4 Bump flake8-tidy-imports from 4.5.0 to 4.6.0
Bumps [flake8-tidy-imports](https://github.com/adamchainz/flake8-tidy-imports) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/adamchainz/flake8-tidy-imports/releases)
- [Changelog](https://github.com/adamchainz/flake8-tidy-imports/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/flake8-tidy-imports/compare/4.5.0...4.6.0)

---
updated-dependencies:
- dependency-name: flake8-tidy-imports
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:02:17 +00:00
dependabot[bot]
3d9f34b064 Bump fastapi from 0.71.0 to 0.72.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.71.0 to 0.72.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.71.0...0.72.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:02:14 +00:00
dependabot[bot]
e4af162f38 Bump jsonschema from 4.3.3 to 4.4.0
Bumps [jsonschema](https://github.com/Julian/jsonschema) from 4.3.3 to 4.4.0.
- [Release notes](https://github.com/Julian/jsonschema/releases)
- [Changelog](https://github.com/Julian/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/Julian/jsonschema/compare/v4.3.3...v4.4.0)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:02:02 +00:00
dependabot[bot]
5afa975839 Bump mkdocs-material from 8.1.5 to 8.1.7
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.1.5 to 8.1.7.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.1.5...8.1.7)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:01:57 +00:00
dependabot[bot]
6be6515ecc Bump numpy from 1.22.0 to 1.22.1
Bumps [numpy](https://github.com/numpy/numpy) from 1.22.0 to 1.22.1.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.22.0...v1.22.1)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:01:53 +00:00
Stefano Ariestasia
b6ad0f52e9 Merge branch 'freqtrade:develop' into fix-docs 2022-01-17 10:59:16 +09:00
Stefano Ariestasia
edd2ea3699 Update rpc_manager.py 2022-01-17 10:57:10 +09:00
Matthias
3cdb672ac3 Improve test coverage 2022-01-16 19:11:20 +01:00
Matthias
c02497e4b8 Merge pull request #6172 from rokups/rk/backtest-results-caching
Backtest result reuse
2022-01-16 19:09:37 +01:00
Matthias
2bcfc0c90c Add warning about cache problems 2022-01-16 18:01:05 +01:00
Matthias
d08885ed92 Fix empty "/log" endpoint in certain moments 2022-01-16 15:37:00 +01:00
Matthias
5bb48eaed0 Replace Nan with 0 or None in backtesting
part of #6224
2022-01-16 14:49:29 +01:00
Matthias
69c00db7cd Only show /balance % improvement if trades have been made 2022-01-16 13:39:50 +01:00
Matthias
b96b0f89bd improved unfilledtimeout defaults 2022-01-16 13:17:12 +01:00
Stefano Ariestasia
acda9571d1 Revert "add position_adjustment_enable to config_full.example"
This reverts commit eabeb87ceb.
2022-01-16 19:10:32 +09:00
Matthias
6c4b261469 Convert nan to None in get_signal. 2022-01-16 08:04:39 +01:00
Stefano Ariestasia
eabeb87ceb add position_adjustment_enable to config_full.example 2022-01-16 10:00:13 +09:00
Matthias
39184e1f95 Fix random test-fail around midnight 2022-01-16 00:19:21 +01:00
Matthias
270d7ebbf5 Simplify test strategy 2022-01-15 17:36:42 +01:00
Rokas Kupstys
062d00e8f2 Fix @informative decorator failing with edge. 2022-01-15 17:31:16 +02:00
Rokas Kupstys
2b7405470a Fix timerange check. 2022-01-15 17:30:40 +02:00
Matthias
9becce9897 Update failing test 2022-01-15 17:30:40 +02:00
Rokas Kupstys
526ed7fa9a Add test_backtest_start_multi_strat_caching test flexing backtest result caching. 2022-01-15 17:30:40 +02:00
Rokas Kupstys
16861db653 Implement previous backtest result reuse when config and strategy did not change. 2022-01-15 17:30:40 +02:00
Matthias
6684bff963 Dry-run orders should have filled set correctly 2022-01-15 15:25:16 +01:00
Matthias
caea8967d5 Merge pull request #6079 from xataxxx/dca
Initial position adjustment support (DCA)
2022-01-15 15:24:42 +01:00
Matthias
66a479c26a Small doc improvements 2022-01-15 15:11:13 +01:00
Guillermo Rodríguez
d28287880c Add support for shorts in strategy.stoploss_from_open
Signed-off-by: Guillermo Rodríguez <guillebep@gmail.com>
2022-01-15 04:30:30 +01:00
Reigo Reinmets
6c0eef94bb Fix typo. 2022-01-14 21:05:05 +02:00
Reigo Reinmets
9f9e2a8722 Remove references to wallets.get_trade_stake_amount 2022-01-14 20:46:16 +02:00
Reigo Reinmets
93adb436f8 Fix flake8 intention issue. 2022-01-14 20:25:29 +02:00
Reigo Reinmets
766c69734d Merge branch 'dca' of github.com:xataxxx/freqtrade into dca 2022-01-14 20:02:47 +02:00
Reigo Reinmets
320c9ccf90 Unify functions and make it easy to get a list of filled buy orders 2022-01-14 20:02:35 +02:00
Reigo Reinmets
1e324d208e Merge branch 'freqtrade:develop' into dca 2022-01-14 17:09:10 +02:00
Reigo Reinmets
08cae6f067 Fix horrible whitespace mistake. 2022-01-13 20:44:03 +02:00
Reigo Reinmets
7699fde380 Update documentation about trade.nr_of_successful_buys 2022-01-13 20:33:40 +02:00
Reigo Reinmets
ffe69535d8 These could be properties. 2022-01-13 20:31:03 +02:00
Reigo Reinmets
13bc5c5d8f Fine, this does look better. 2022-01-13 20:24:21 +02:00
Reigo Reinmets
678be0b773 Slightly move code. 2022-01-13 20:16:45 +02:00
Matthias
faa35cb167 Small minor fixes 2022-01-13 17:18:07 +01:00
Matthias
13651fd3be Downgrade docker-image to 3.9.9 2022-01-13 09:24:13 +01:00
Reigo Reinmets
c826c9c2b9 Merge branch 'freqtrade:develop' into dca 2022-01-13 10:04:39 +02:00
Matthias
814a343ed3 Merge pull request #6217 from Wings22Actual/patch-1
minor spelling correction to build_config_commands.py
2022-01-13 06:51:52 +01:00
Wings22Actual
a22e1b6500 minor spelling correction
line 89 "Tim"->"Time"
2022-01-13 01:48:38 +00:00
Matthias
33cb9e9002 Fix erroneous import in docs 2022-01-12 09:11:42 +01:00
Reigo Reinmets
ffab70d869 Merge branch 'freqtrade:develop' into dca 2022-01-12 09:22:06 +02:00
Reigo Reinmets
7344f88ad5 Add a note about not being called when there's an open order. 2022-01-12 09:21:52 +02:00
Reigo Reinmets
7cd8448656 Fix documentation example. 2022-01-12 06:09:06 +02:00
Reigo Reinmets
8643b20a0e Improve documentation about /stopbuy command 2022-01-12 06:06:23 +02:00
Reigo Reinmets
af3d220ffc Update example method signature. 2022-01-12 05:09:52 +02:00
Reigo Reinmets
db3483c827 Our example should also set position_adjustment_enable 2022-01-12 05:02:42 +02:00
Matthias
775b1201d2 psutil is always required now.
closes #6208
2022-01-11 15:02:21 +01:00
Reigo Reinmets
e50b07ecb4 Make code compatible. 2022-01-11 12:05:57 +02:00
Reigo Reinmets
fec95277bb Merge branch 'dca' of github.com:xataxxx/freqtrade into dca 2022-01-11 11:48:51 +02:00
Reigo Reinmets
94f2c99989 Temporary fix for lazy loading. Probably we can do it better. 2022-01-11 11:43:32 +02:00
Reigo Reinmets
73840e1d91 Merge branch 'freqtrade:develop' into dca 2022-01-11 10:49:32 +02:00
Matthias
58b77bd15f Merge pull request #6205 from freqtrade/dependabot/pip/develop/ta-lib-0.4.24
Bump ta-lib from 0.4.23 to 0.4.24
2022-01-11 08:05:34 +01:00
Matthias
438a083602 Update TA-lib binary files 2022-01-11 07:16:49 +01:00
Reigo Reinmets
fbf026ac43 Fix sorting of imports. 2022-01-10 20:43:57 +02:00
Reigo Reinmets
3b7167ab07 Fix backtesting missing filled amounts in orders. 2022-01-10 20:30:40 +02:00
Reigo Reinmets
26f2db4777 Fix notify_enter attempting to fetch rate during testing. 2022-01-10 20:30:32 +02:00
Reigo Reinmets
30d293bfec Fix bug with None in backtesting. 2022-01-10 20:16:11 +02:00
Reigo Reinmets
0dc7c389a0 Merge branch 'freqtrade:develop' into dca 2022-01-10 20:15:27 +02:00
Matthias
78921824c6 Merge pull request #6197 from freqtrade/dependabot/pip/develop/progressbar2-4.0.0
Bump progressbar2 from 3.55.0 to 4.0.0
2022-01-10 13:22:40 +01:00
dependabot[bot]
0d00da8dab Bump ta-lib from 0.4.23 to 0.4.24
Bumps [ta-lib](https://github.com/mrjbq7/ta-lib) from 0.4.23 to 0.4.24.
- [Release notes](https://github.com/mrjbq7/ta-lib/releases)
- [Changelog](https://github.com/mrjbq7/ta-lib/blob/TA_Lib-0.4.24/CHANGELOG)
- [Commits](https://github.com/mrjbq7/ta-lib/compare/TA_Lib-0.4.23...TA_Lib-0.4.24)

---
updated-dependencies:
- dependency-name: ta-lib
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 10:19:41 +00:00
dependabot[bot]
e0b05c4df2 Bump progressbar2 from 3.55.0 to 4.0.0
Bumps [progressbar2](https://github.com/WoLpH/python-progressbar) from 3.55.0 to 4.0.0.
- [Release notes](https://github.com/WoLpH/python-progressbar/releases)
- [Changelog](https://github.com/WoLpH/python-progressbar/blob/develop/CHANGES.rst)
- [Commits](https://github.com/WoLpH/python-progressbar/compare/v3.55.0...v4.0.0)

---
updated-dependencies:
- dependency-name: progressbar2
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 10:18:55 +00:00
Matthias
ef06ede3bd Merge pull request #6204 from freqtrade/dependabot/pip/develop/urllib3-1.26.8
Bump urllib3 from 1.26.7 to 1.26.8
2022-01-10 11:17:19 +01:00
Matthias
42b5e8dac6 Merge pull request #6190 from freqtrade/dependabot/pip/develop/mkdocs-material-8.1.5
Bump mkdocs-material from 8.1.4 to 8.1.5
2022-01-10 11:16:56 +01:00
Matthias
11d74da1e0 Merge pull request #6201 from freqtrade/dependabot/pip/develop/types-tabulate-0.8.5
Bump types-tabulate from 0.8.4 to 0.8.5
2022-01-10 11:16:46 +01:00
dependabot[bot]
fc1069cfe0 Bump urllib3 from 1.26.7 to 1.26.8
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.7 to 1.26.8.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/1.26.8/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.7...1.26.8)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 09:27:39 +00:00
dependabot[bot]
1e35f54709 Bump types-tabulate from 0.8.4 to 0.8.5
Bumps [types-tabulate](https://github.com/python/typeshed) from 0.8.4 to 0.8.5.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-tabulate
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 09:27:22 +00:00
Matthias
d80216ca05 Merge pull request #6192 from freqtrade/dependabot/pip/develop/requests-2.27.1
Bump requests from 2.26.0 to 2.27.1
2022-01-10 10:26:22 +01:00
Matthias
d2c7ff3f0f Merge pull request #6206 from freqtrade/dependabot/pip/develop/mypy-0.931
Bump mypy from 0.930 to 0.931
2022-01-10 10:26:07 +01:00
Matthias
d90745651a Merge pull request #6202 from freqtrade/dependabot/pip/develop/types-filelock-3.2.4
Bump types-filelock from 3.2.1 to 3.2.4
2022-01-10 10:25:46 +01:00
dependabot[bot]
130275faff Bump mypy from 0.930 to 0.931
Bumps [mypy](https://github.com/python/mypy) from 0.930 to 0.931.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v0.930...v0.931)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 07:28:13 +00:00
dependabot[bot]
29457078e7 Bump requests from 2.26.0 to 2.27.1
Bumps [requests](https://github.com/psf/requests) from 2.26.0 to 2.27.1.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.26.0...v2.27.1)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 07:27:43 +00:00
dependabot[bot]
8d554585f1 Bump types-filelock from 3.2.1 to 3.2.4
Bumps [types-filelock](https://github.com/python/typeshed) from 3.2.1 to 3.2.4.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-filelock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 07:27:35 +00:00
Matthias
000e29113f Merge pull request #6203 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.6
Bump types-python-dateutil from 2.8.4 to 2.8.6
2022-01-10 08:27:02 +01:00
Matthias
8057929817 Merge pull request #6200 from freqtrade/dependabot/pip/develop/types-requests-2.27.5
Bump types-requests from 2.26.3 to 2.27.5
2022-01-10 08:26:22 +01:00
Matthias
858a65e308 Merge pull request #6196 from freqtrade/dependabot/pip/develop/fastapi-0.71.0
Bump fastapi from 0.70.1 to 0.71.0
2022-01-10 06:40:15 +01:00
dependabot[bot]
fe067994e3 Bump types-requests from 2.26.3 to 2.27.5
Bumps [types-requests](https://github.com/python/typeshed) from 2.26.3 to 2.27.5.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 05:39:59 +00:00
Matthias
d349d2743a Merge pull request #6191 from freqtrade/dependabot/pip/develop/python-telegram-bot-13.10
Bump python-telegram-bot from 13.9 to 13.10
2022-01-10 06:39:37 +01:00
dependabot[bot]
2d930d081c Bump types-python-dateutil from 2.8.4 to 2.8.6
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.4 to 2.8.6.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 05:38:50 +00:00
Matthias
96f8338496 Merge pull request #6195 from freqtrade/dependabot/pip/develop/types-cachetools-4.2.8
Bump types-cachetools from 4.2.7 to 4.2.8
2022-01-10 06:38:35 +01:00
Matthias
7bc50dff7a Merge pull request #6199 from freqtrade/dependabot/pip/develop/ccxt-1.66.66
Bump ccxt from 1.66.32 to 1.66.66
2022-01-10 06:38:13 +01:00
Matthias
a4d2cf2f06 Merge pull request #6194 from freqtrade/dependabot/pip/develop/nbconvert-6.4.0
Bump nbconvert from 6.3.0 to 6.4.0
2022-01-10 06:37:57 +01:00
dependabot[bot]
af60b9db59 Bump ccxt from 1.66.32 to 1.66.66
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.66.32 to 1.66.66.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.66.32...1.66.66)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 03:02:11 +00:00
dependabot[bot]
bc95e1e151 Bump fastapi from 0.70.1 to 0.71.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.70.1 to 0.71.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.70.1...0.71.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 03:01:59 +00:00
dependabot[bot]
626970b32e Bump types-cachetools from 4.2.7 to 4.2.8
Bumps [types-cachetools](https://github.com/python/typeshed) from 4.2.7 to 4.2.8.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 03:01:56 +00:00
dependabot[bot]
a0d378fb7e Bump nbconvert from 6.3.0 to 6.4.0
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 6.3.0 to 6.4.0.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Commits](https://github.com/jupyter/nbconvert/compare/6.3.0...6.4.0)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 03:01:52 +00:00
dependabot[bot]
b8e8a31f84 Bump python-telegram-bot from 13.9 to 13.10
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 13.9 to 13.10.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v13.9...v13.10)

---
updated-dependencies:
- dependency-name: python-telegram-bot
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 03:01:43 +00:00
dependabot[bot]
3fc44aa1bd Bump mkdocs-material from 8.1.4 to 8.1.5
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.1.4 to 8.1.5.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.1.4...8.1.5)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 03:01:38 +00:00
Matthias
59ffb98779 Merge pull request #6189 from jay-tau/patch-1
Remove non-decimal numerical separators
2022-01-09 17:06:19 +01:00
Joel Tony
cbd449f710 Remove non-decimal numerical separators 2022-01-09 14:21:57 +05:30
Reigo Reinmets
91b89c8c42 Improve docs, fix telegram message to show current rate. 2022-01-08 21:30:42 +02:00
Reigo Reinmets
0424b44667 Merge branch 'freqtrade:develop' into dca 2022-01-08 17:42:17 +02:00
Reigo Reinmets
195d601b8e Fix notification message showing "Current rate" as the initial buy order desired rate. 2022-01-08 17:41:59 +02:00
Reigo Reinmets
c929d428b2 Remove blank line. 2022-01-08 17:21:32 +02:00
Reigo Reinmets
0bca07a32a Added min_stake, max_stake. Removed pair as its included in trade. 2022-01-08 17:20:02 +02:00
Reigo Reinmets
813a2cd23b Add useful helper methods for adjust_trade_position implementation 2022-01-08 17:18:37 +02:00
Matthias
cf077b15c2 Fix random test failure 2022-01-08 14:54:39 +01:00
Matthias
dd37e5cfb8 Fix compat-test failures due to wrong currency 2022-01-08 14:46:07 +01:00
Matthias
2fb9e7940a Improve "missing data" message 2022-01-08 14:39:09 +01:00
Reigo Reinmets
94631c7d64 Add performance warnings for backtesting and implementation. 2022-01-08 15:06:05 +02:00
Reigo Reinmets
8e424f7c73 Merge branch 'freqtrade:develop' into dca 2022-01-08 14:57:15 +02:00
Matthias
dad080f56f Merge branch 'develop' into feat/short 2022-01-08 10:45:15 +01:00
Matthias
43f8087f32 Bitvavo does not support USDT stake 2022-01-08 10:44:07 +01:00
Matthias
9fc7392817 Merge pull request #6184 from samgermain/todos
Removed rename Todos
2022-01-08 10:34:23 +01:00
Sam Germain
c61acb9f19 removed rename todos 2022-01-08 03:09:47 -06:00
Matthias
827b8d3e4c Don't use test_datadir as userdata dir
use tmpdir
2022-01-07 20:00:20 +01:00
Matthias
04976658da Fix crash when using backtesting-show on a old backtestresult 2022-01-07 17:34:47 +01:00
Matthias
b82e63cb62 Merge pull request #6182 from rokups/rk/fix-6179
Fix #6179
2022-01-07 17:25:09 +01:00
Matthias
522496d9e2 Add Compatibility code for BT_DATA_COLUMNS 2022-01-07 17:17:35 +01:00
Rokas Kupstys
11ace0f867 Instead of clearing processed dict, store df_analyzed (one with buy/sell signals) dataframe in it.
It still saves memory because this dataframe is kept by DataProvider.
Fixes #6179.
Amends #6133 (a715083fc0).
2022-01-07 12:07:49 +02:00
Matthias
46809f08fe Merge branch 'develop' into feat/short 2022-01-07 10:13:16 +01:00
Matthias
7f20f6834b Merge pull request #6181 from freqtrade/simplify_optimizereports
Simplify optimizereports
2022-01-07 09:43:57 +01:00
Matthias
cd144cdfc9 Add bitvavo to compatibility tests
#6166
2022-01-07 09:30:50 +01:00
Matthias
e540959c27 Remove btdata from generate_strategy_stats 2022-01-07 09:27:07 +01:00
Matthias
1203d08d1e generate_pair_metrics does not need processed dict 2022-01-07 09:27:07 +01:00
Matthias
b77943af0d Merge pull request #6173 from freqtrade/volume_quote_workaround
Selectively convert quote to base volume in volumepairlist
2022-01-07 09:07:16 +01:00
Matthias
560b3d5dbe Merge pull request #6177 from freqtrade/remove_old_bt_format
Remove old bt format
2022-01-07 08:36:26 +01:00
Matthias
d64f9030c1 Remove now unused codesegment 2022-01-07 08:04:01 +01:00
Matthias
9a3d0528a3 Versionbump ccxt to 1.66.32
closes #6166
2022-01-07 07:55:11 +01:00
Matthias
b3a4ecaf77 Remove old backtest format support 2022-01-06 19:49:25 +01:00
Matthias
28011a3907 Update bt_results filename to new.json 2022-01-06 19:28:04 +01:00
Matthias
72f486289a Update Volumepairlist test 2022-01-06 19:07:47 +01:00
Matthias
24ec78b11c Quote-volumelist fix for gateio 2022-01-06 19:07:47 +01:00
Matthias
326e3d1f8e Selectively convert quote to base volume in volumepairlist 2022-01-06 19:07:43 +01:00
Matthias
173524ea5b Merge pull request #6170 from freqtrade/contract_workaround
contractSize is a string coming from ccxt
2022-01-06 16:25:19 +01:00
Matthias
bb29c44462 Merge pull request #6174 from frosty00/okex-candle-limit
increase okex candle limit
2022-01-06 15:59:59 +01:00
Carlo Revelli
7451b60501 increase okex candle limit 2022-01-06 05:31:23 -08:00
Matthias
431fcdd76f contractSize is a string comming from ccxt 2022-01-06 13:53:27 +01:00
Matthias
a0f9c1bf7b Avoid failure when calculating max-drawdown
occurs if if no winning trade is recorded.
2022-01-06 13:51:15 +01:00
Matthias
e88a1ab209 Improve VolumePairlist behaviour
Filter pairs before downloading ohlcv candles - this will greatly speed up some instances.
2022-01-06 13:49:27 +01:00
Matthias
7c3babc86c Fix failing ftx test 2022-01-06 13:40:12 +01:00
Matthias
72b2d4ab5f Update FTX to support new standardized futures format 2022-01-06 11:16:26 +01:00
Matthias
04f2097002 Merge pull request #6168 from samgermain/todos
Futures dust warning
2022-01-06 10:44:25 +01:00
Matthias
6ad521a0f7 Update apply_fee_conditional with note about futures 2022-01-06 10:22:28 +01:00
Matthias
c1d981749e Fix flake8 error 2022-01-06 10:09:41 +01:00
Matthias
addba6597a Merge pull request #6165 from freqtrade/drawdown_fixes
Improved drawdown calculation
2022-01-06 09:56:05 +01:00
Matthias
5451972456 Success-messages should use success coloring 2022-01-06 09:29:08 +01:00
Matthias
2a2392fd73 Update parameter name in docstring 2022-01-06 09:15:30 +01:00
Matthias
33d95d245e Fix unbounderror
closes #6169
2022-01-06 08:48:30 +01:00
Matthias
a9a6cf13f8 Add exit_tag to detail-sells
closes #6159
2022-01-06 08:22:15 +01:00
Matthias
4e2b9203d7 Remove no longer used BT_DATA_COLUMNS_MID 2022-01-05 20:40:59 +01:00
Matthias
8958f569aa Fix random funding_rate test failure 2022-01-05 20:37:26 +01:00
Matthias
2ca90577a6 Update strategy-comparison test 2022-01-05 20:29:40 +01:00
Matthias
2ecaf9f8b4 Update backtest-result test-files to latest format 2022-01-05 20:26:24 +01:00
Matthias
6abd6bceb9 Avoid recalculating statistics for comparison line 2022-01-05 20:16:48 +01:00
Sam Germain
3d22497177 add warning for futures dust to freqtradebot.apply_fee_conditional 2022-01-05 00:57:36 -06:00
Sam Germain
501f473164 Merge branch 'develop' into feat/short 2022-01-04 22:47:33 -06:00
Matthias
67e4dda5b3 Fix missing DataFrame in advanced docs 2022-01-04 19:54:50 +01:00
Matthias
8373a4e713 Small Adjustments to improve compatibility 2022-01-04 19:17:08 +01:00
Matthias
4d9b4ddc28 Update hyperopt-tools to use account drawdown 2022-01-04 17:43:39 +01:00
Matthias
09fae25c94 Fix some tests after drawdown calculation change 2022-01-04 17:07:31 +01:00
Matthias
7a2b50ce8b Update drawdown calculation to account drawdown 2022-01-04 17:07:31 +01:00
Matthias
42579c0268 Drop hyperopt results legacy mode 2022-01-04 17:06:40 +01:00
Matthias
7bf735dbfc Update deprecated dynamic-whitelist docs with reference to new method 2022-01-04 17:06:40 +01:00
Matthias
937f5e3d0f No longer use legacy mode for tests 2022-01-04 17:06:40 +01:00
Matthias
7ea5b0e359 Simplify hyperopt test setup 2022-01-04 17:06:40 +01:00
Matthias
15cb3792cf Merge pull request #6161 from stash86/fix-docs
Add ignore_buying_expired_candle to config_full example
2022-01-04 15:37:15 +01:00
Sam Germain
b2a1124a26 Merge branch 'feat/short' of https://github.com/freqtrade/freqtrade into feat/short 2022-01-04 00:17:42 -06:00
Stefano Ariestasia
fa620d3f7b Merge branch 'freqtrade:develop' into fix-docs 2022-01-04 13:44:03 +08:00
Matthias
e57c2d64a5 Merge pull request #5888 from samgermain/contract-sizes
Convert contract size to underlying asset size
2022-01-03 21:55:19 +01:00
Matthias
293ffeae67 Fix random test failure in funding test 2022-01-03 20:18:43 +01:00
Matthias
7adb7f90a6 Merge pull request #6154 from freqtrade/dependabot/pip/develop/ta-lib-0.4.23
Bump ta-lib from 0.4.22 to 0.4.23
2022-01-03 19:08:59 +01:00
Matthias
d8cb61278f Simplify contract conversion code
by reusing "get_contract_size"
2022-01-03 18:12:45 +01:00
Matthias
5536410ed0 Update ta-lib wheels 2022-01-03 17:58:53 +01:00
Matthias
de2a7c1956 Merge pull request #6153 from freqtrade/dependabot/pip/develop/psutil-5.9.0
Bump psutil from 5.8.0 to 5.9.0
2022-01-03 17:55:05 +01:00
Matthias
079dbc7997 Remove duplicate psutil dependency 2022-01-03 17:41:55 +01:00
Reigo Reinmets
05ac09b38e Merge branch 'freqtrade:develop' into dca 2022-01-03 11:41:33 +02:00
Matthias
028636b4a9 Merge pull request #6150 from freqtrade/dependabot/pip/develop/types-tabulate-0.8.4
Bump types-tabulate from 0.8.3 to 0.8.4
2022-01-03 09:20:56 +01:00
dependabot[bot]
8ed30fc9c1 Bump psutil from 5.8.0 to 5.9.0
Bumps [psutil](https://github.com/giampaolo/psutil) from 5.8.0 to 5.9.0.
- [Release notes](https://github.com/giampaolo/psutil/releases)
- [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst)
- [Commits](https://github.com/giampaolo/psutil/compare/release-5.8.0...release-5.9.0)

---
updated-dependencies:
- dependency-name: psutil
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-03 06:32:27 +00:00
dependabot[bot]
2469dc0424 Bump types-tabulate from 0.8.3 to 0.8.4
Bumps [types-tabulate](https://github.com/python/typeshed) from 0.8.3 to 0.8.4.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-tabulate
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-03 06:30:53 +00:00
Matthias
33991e8de9 Merge pull request #6157 from freqtrade/dependabot/pip/develop/types-cachetools-4.2.7
Bump types-cachetools from 4.2.6 to 4.2.7
2022-01-03 07:30:04 +01:00
dependabot[bot]
5407a06254 Bump ta-lib from 0.4.22 to 0.4.23
Bumps [ta-lib](https://github.com/mrjbq7/ta-lib) from 0.4.22 to 0.4.23.
- [Release notes](https://github.com/mrjbq7/ta-lib/releases)
- [Changelog](https://github.com/mrjbq7/ta-lib/blob/master/CHANGELOG)
- [Commits](https://github.com/mrjbq7/ta-lib/commits)

---
updated-dependencies:
- dependency-name: ta-lib
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-03 06:07:58 +00:00
Matthias
616d5bbaed Merge pull request #6151 from freqtrade/dependabot/pip/develop/jsonschema-4.3.3
Bump jsonschema from 4.3.2 to 4.3.3
2022-01-03 07:07:05 +01:00
dependabot[bot]
3f4c5a7902 Bump types-cachetools from 4.2.6 to 4.2.7
Bumps [types-cachetools](https://github.com/python/typeshed) from 4.2.6 to 4.2.7.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-03 06:06:26 +00:00
Matthias
a253ad5ec1 Merge pull request #6156 from freqtrade/dependabot/pip/develop/mkdocs-material-8.1.4
Bump mkdocs-material from 8.1.3 to 8.1.4
2022-01-03 07:06:09 +01:00
Matthias
ce1780ca3f Merge pull request #6155 from freqtrade/dependabot/pip/develop/types-requests-2.26.3
Bump types-requests from 2.26.2 to 2.26.3
2022-01-03 07:05:46 +01:00
Matthias
6d3747d9e6 Merge pull request #6152 from freqtrade/dependabot/pip/develop/ccxt-1.66.20
Bump ccxt from 1.65.25 to 1.66.20
2022-01-03 07:05:19 +01:00
Sam Germain
707a6507b5 removed redundant todos 2022-01-02 21:46:06 -06:00
dependabot[bot]
0da31cff72 Bump mkdocs-material from 8.1.3 to 8.1.4
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.1.3 to 8.1.4.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.1.3...8.1.4)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-03 03:01:51 +00:00
dependabot[bot]
f7d3c50213 Bump types-requests from 2.26.2 to 2.26.3
Bumps [types-requests](https://github.com/python/typeshed) from 2.26.2 to 2.26.3.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-03 03:01:47 +00:00
dependabot[bot]
6b0a7a81a9 Bump ccxt from 1.65.25 to 1.66.20
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.65.25 to 1.66.20.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.65.25...1.66.20)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-03 03:01:37 +00:00
dependabot[bot]
8c0f7321c3 Bump jsonschema from 4.3.2 to 4.3.3
Bumps [jsonschema](https://github.com/Julian/jsonschema) from 4.3.2 to 4.3.3.
- [Release notes](https://github.com/Julian/jsonschema/releases)
- [Changelog](https://github.com/Julian/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/Julian/jsonschema/compare/v4.3.2...v4.3.3)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-03 03:01:28 +00:00
Matthias
fac6956eeb Fix test failure after merge 2022-01-02 22:25:40 +01:00
Matthias
711a6a6dbc Merge branch 'develop' into pr/xataxxx/6079 2022-01-02 22:21:41 +01:00
Matthias
2116b0729f Integration-test for DCA order 2022-01-02 20:20:56 +01:00
Matthias
209ecc8732 Fix typo in bt_progress 2022-01-02 19:38:03 +01:00
Matthias
c7b1352184 Merge pull request #6148 from samgermain/todos
Removed some todo-lev comments
2022-01-02 14:43:07 +01:00
Matthias
35fe7239ed Also test mixed version (both long and short trades) 2022-01-02 13:17:49 +01:00
Matthias
7f88f9bf27 Revert unintended double-call of amount conversion 2022-01-02 13:11:29 +01:00
Sam Germain
67a5739501 fixed test_get_trades_for_order for contracts 2022-01-01 15:39:16 -06:00
Sam Germain
33ab3c1bea Removed some todo-lev comments 2022-01-01 14:10:24 -06:00
Sam Germain
14ae327459 grouped contract methods 2022-01-01 14:08:10 -06:00
Sam Germain
3e4912979a exchange.py: removed get funding rate history 2022-01-01 14:03:26 -06:00
Sam Germain
fcded264e6 removed exchange._get_mark_price_history 2022-01-01 13:53:26 -06:00
Sam Germain
3d4a5eab81 fixed flake8 error 2022-01-01 13:52:06 -06:00
Sam Germain
48567a1301 fixe broken test_get_min_pair_stake_amount 2022-01-01 13:52:06 -06:00
Sam Germain
230dd15ee7 fixed test_amount_to_precision 2022-01-01 13:52:06 -06:00
Sam Germain
f92d47a16b exchange._contracts_to_amount and exchange._amount_to_contracts safe checks 2022-01-01 13:52:06 -06:00
Sam Germain
6ab0e870c2 fixed breaking test test_amount_to_precision 2022-01-01 13:52:06 -06:00
Sam Germain
d105bb764a test__get_contract_size creates its own markets instead of using the markets from conftest 2022-01-01 13:52:06 -06:00
Sam Germain
a85566d6c3 test_exchange.test_create_order removed # assert api_mock.create_order.call_args[0][3] == 100 2022-01-01 13:52:06 -06:00
Matthias
8da596f66d Implement PR feedback 2022-01-01 13:52:01 -06:00
Sam Germain
49a6ebb454 exchange class contract methods safe check for symbol 2022-01-01 13:50:50 -06:00
Sam Germain
78d1a267f0 contract-sizes tests 2022-01-01 13:50:50 -06:00
Sam Germain
d0a300a2e1 Added TODOs 2022-01-01 13:50:49 -06:00
Sam Germain
4f6203e45f Added conversions from contract size to amount for objects returned from api 2022-01-01 13:50:43 -06:00
Sam Germain
e10ceb2362 Amount to precision has _amount_to_contract_size in it 2022-01-01 13:49:09 -06:00
Sam Germain
ee63f12236 Revert "Removed leverage param from get_min_pair_stake_amount"
This reverts commit 096588550ca1de5e5edf63cf7214af037d7bc93b.
2022-01-01 13:49:09 -06:00
Sam Germain
2df5993812 _contract_size_to_amount only impacts limits.amount and not limits.cost, put _get_stake_amount_considering_leverage back in 2022-01-01 13:49:09 -06:00
Sam Germain
ef6ad0e6d7 Removed leverage param from get_min_pair_stake_amount 2022-01-01 13:49:09 -06:00
Sam Germain
3f75531105 added methods _contract_size_to_amount and _amount_to_contract_size, added _amount_to_contract_size to create_order, added contract_size_to_amount to get_min_leverage 2022-01-01 13:49:09 -06:00
Matthias
f3784f2149 Merge pull request #6147 from freqtrade/plot_parallel
Plot parallel and underwater
2022-01-01 19:27:42 +01:00
Matthias
ddfbe55e7c Merge branch 'develop' into feat/short 2022-01-01 19:16:49 +01:00
Matthias
08ba5b0451 Update docs to include underwaterplot 2022-01-01 16:55:08 +01:00
Matthias
fb06a673e0 Add Underwater plot 2022-01-01 14:40:20 +01:00
Matthias
78ba2d3fc7 Add underwaterplot calculation to btanalysis 2022-01-01 14:39:58 +01:00
Matthias
a2d97eecfe Add trade parallelism plot
closes #6142
2022-01-01 14:11:51 +01:00
Matthias
45a02beea8 Merge pull request #6145 from freqtrade/test_evict_cache
Fix CI failures
2022-01-01 14:07:21 +01:00
Matthias
8b49bec649 Use Version-dependent requirements
Bump numpy to 1.22.0
2022-01-01 13:51:13 +01:00
Matthias
c29469decf Version bump numpy to 1.22.0 2022-01-01 10:43:45 +01:00
Matthias
9becd20f20 Improve "Missing data" messages 2022-01-01 10:37:58 +01:00
Matthias
713b884d9b Fix failing monthly test 2022-01-01 10:37:43 +01:00
Matthias
515e1040c2 Merge pull request #6144 from freqtrade/asyncio_warns
Remove asyncio warnings due to deprecation on 3.10
2022-01-01 10:04:27 +01:00
Matthias
670aed06bf Remove loop for hyperopt. 2021-12-31 17:35:08 +01:00
Matthias
0277d93a64 don't use deprecated asyncio.get_event_loop() 2021-12-31 17:27:42 +01:00
Matthias
c9296dc9a0 Uvloop_helper should use "get_running_loop" 2021-12-31 17:27:42 +01:00
Matthias
64917275a9 Merge pull request #6143 from samgermain/todos
Todos
2021-12-31 17:02:14 +01:00
Matthias
c06496e66f Update some more TODO-lev's 2021-12-31 16:49:47 +01:00
Sam Germain
9a220f6cfe removed a few todos 2021-12-31 07:30:01 -06:00
Sam Germain
08b738a5d9 removed outdated todo in kraken 2021-12-31 06:26:13 -06:00
Sam Germain
46072be011 models.__init__ exception for no interest_rates on Margin trading 2021-12-31 06:20:00 -06:00
Sam Germain
867483170a binance.funding_fee_cutoff removed TODO-lev 2021-12-31 06:11:43 -06:00
Sam Germain
250edae193 test__async_get_historic_ohlcv parametrized candle_type 2021-12-31 06:00:56 -06:00
Matthias
550a1eef91 Reduce "cleanup" slowdown in telegram 2021-12-31 12:54:15 +01:00
Matthias
880ee016a4 Merge pull request #6133 from rokups/rk/reduce-memory-usage
Reduce memory usage by not holding on to no longer needed data
2021-12-31 11:36:52 +01:00
Matthias
39f8c5719b Fix exception on exchange shutdown 2021-12-31 11:24:56 +01:00
Rokas Kupstys
a715083fc0 Reduce memory usage by not holding on to no longer needed data. 2021-12-31 12:10:01 +02:00
Matthias
78ccaae318 Merge pull request #6140 from freqtrade/sell_before_roi
Change sequence of ROI/sell signal to favor sell-signal
2021-12-31 10:32:19 +01:00
Matthias
ee774f12bd Merge pull request #5677 from freqtrade/python_10
Update CI to run on python 3.10
2021-12-31 10:23:52 +01:00
Matthias
b1b2eebd11 Change sequence of ROI/sell signal to favor sell-signal 2021-12-30 20:00:58 +01:00
Matthias
b63491fb9c Update ROI_if_buy_signal tests to not use sell signal 2021-12-30 19:51:49 +01:00
Matthias
4b79d435ad Merge pull request #6084 from aezomz/lev-telegram
Telegram and Webhook updates
2021-12-30 19:17:58 +01:00
Matthias
3c4eda14b1 Remove unused test parameter 2021-12-30 17:34:45 +01:00
Matthias
2395988bf8 Leverage defaults to 1.0, which should not be shown. 2021-12-30 17:32:36 +01:00
Matthias
45ac3b3562 Change formatting slightly 2021-12-30 17:18:46 +01:00
Matthias
1bc2c71757 Update documentation with support for python 3.10 2021-12-30 16:33:01 +01:00
Matthias
6b22f84d30 Add windows ta wheel 2021-12-30 16:25:57 +01:00
Aezo Teo
fa12098bff changed to suggestion 2021-12-30 20:05:17 +08:00
Matthias
505d4bacd5 Update dockerfile to 3.10 2021-12-30 11:10:51 +01:00
Matthias
5b2a1b9e7a Update CI to run on python 3.10 2021-12-30 11:10:38 +01:00
Matthias
8edc84bf25 Exclude virtual environment from isort fixing 2021-12-30 10:19:06 +01:00
Matthias
bd98637ae9 Fail gracefully from plot-profit when no data is provided
closes #6132
2021-12-30 10:14:45 +01:00
Matthias
1871165d21 Merge pull request #6127 from wadedyck/download_data_futures_fix
Download data futures fix
2021-12-29 19:08:38 +01:00
Matthias
73276f1351 Remove default argument from "download trades" test 2021-12-29 17:36:47 +01:00
Matthias
77afb7b5e2 Merge pull request #6114 from cdimauro/reduce_kucoin_logs
Reduce kucoin logs
2021-12-29 17:33:21 +01:00
Matthias
2b94fbfa74 Avoid using singleton where not necessary 2021-12-29 17:05:53 +01:00
Matthias
b530600718 Merge pull request #6134 from freqtrade/new_release
New release 2021.12
2021-12-29 17:00:19 +01:00
Matthias
043218cc7e Version bump to 2021.12 2021-12-29 16:18:14 +01:00
Matthias
c3e9ef27f6 Merge branch 'stable' into new_release 2021-12-29 16:17:56 +01:00
Aezo Teo
642a6a8030 missed the edit for documentation 2021-12-29 21:51:56 +08:00
Aezo Teo
ee7cbcd69f fixed flake8 and mypy errors 2021-12-29 21:48:50 +08:00
Aezo Teo
b6092e2e3c amended L/S for status table 2021-12-29 21:30:31 +08:00
Aezo Teo
1f773671ed updated tests and telegram 2021-12-29 21:24:12 +08:00
Reigo Reinmets
3d336a736e Improve documentation. 2021-12-29 14:51:57 +02:00
Wade Dyck
ac06da40e4 Explicitly set the trading-mode to spot for the --dl-trades download test. 2021-12-28 11:43:42 -07:00
Matthias
b9237d2241 Merge pull request #6128 from wadedyck/futures_fixes
Futures fixes
2021-12-28 19:37:13 +01:00
Wade Dyck
5bb2d3baea Revert "Remove the guards against downloading data in futures mode."
This reverts commit 82cdfba494.
2021-12-28 11:35:17 -07:00
Matthias
24807515c1 Fix random test failure 2021-12-28 09:04:14 +01:00
Wade Dyck
60dfadf446 Don't attempt to calculate funding fees when the initial timeframe hasn't been exceeded. 2021-12-27 16:51:47 -07:00
Wade Dyck
a26c82b7cc Also check candle_type_def when creating the pairlist and getting the ohlcv. 2021-12-27 16:51:02 -07:00
Wade Dyck
5743b3a0b7 When getting analyzed dataframes, use candle_type_def in the pair_key as that's how they're cached. 2021-12-27 13:29:25 -07:00
Wade Dyck
82cdfba494 Remove the guards against downloading data in futures mode. 2021-12-27 12:48:42 -07:00
Wade Dyck
3d9360bb8c When backtesting, pass the candle_type to load_data. 2021-12-27 11:46:05 -07:00
Matthias
5a546855e6 Import TTLCache from cachetools
Importing from cachetools.ttl is deprecated, and will be removed in 5.0
2021-12-27 19:30:17 +01:00
Wade Dyck
a5742b3bbc Fixes a failing test_history due to changed log message. 2021-12-27 11:26:49 -07:00
Wade Dyck
5b3f907b0c Fixes a download_data bug when in futures mode.
When specifying multiple pairs to download, the json filenames were
inconsistent due to the reassignment of candle_type. Also adds the
candle_type being downloaded to a log message.
2021-12-27 11:16:38 -07:00
Reigo Reinmets
f965e9177c Fix title 2021-12-27 19:56:45 +02:00
Reigo Reinmets
4b654b2713 Reduce logging. 2021-12-27 19:48:18 +02:00
Reigo Reinmets
093f98d368 Merge branch 'freqtrade:develop' into dca 2021-12-27 19:41:47 +02:00
Reigo Reinmets
2a728c676e Improve documentation. Fix bug. 2021-12-27 19:41:33 +02:00
Matthias
05a488a7a0 Further reduce log verbosity for kucoin 429000 exception 2021-12-27 17:15:30 +01:00
Matthias
bb65621134 Simplify test, simplify "log_*" selection 2021-12-27 17:14:59 +01:00
Matthias
df53873dab Merge pull request #6119 from freqtrade/dependabot/pip/develop/scikit-learn-1.0.2
Bump scikit-learn from 1.0.1 to 1.0.2
2021-12-27 16:48:48 +01:00
Matthias
ef2b326262 Reduce retrier message repetition
by combining messages, we can provide the same information in fewer log messages
2021-12-27 16:47:34 +01:00
Matthias
54858a0bbb Simplify test to only initialize and mock once. 2021-12-27 16:39:47 +01:00
Matthias
314e10596b Remove checking against logger_name in num_log_has 2021-12-27 16:39:31 +01:00
Reigo Reinmets
53ef37d5fc Merge branch 'freqtrade:develop' into dca 2021-12-27 17:12:26 +02:00
Matthias
17f037cec6 Extract order_fee handling from update_trade_state 2021-12-27 16:07:43 +01:00
Matthias
1b739acc08 Merge pull request #6118 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.29
Bump sqlalchemy from 1.4.28 to 1.4.29
2021-12-27 10:03:06 +01:00
dependabot[bot]
3804a17775 Bump scikit-learn from 1.0.1 to 1.0.2
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.0.1...1.0.2)

---
updated-dependencies:
- dependency-name: scikit-learn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 08:45:22 +00:00
Matthias
c8253790b6 Merge pull request #6125 from freqtrade/dependabot/pip/develop/filelock-3.4.2
Bump filelock from 3.4.0 to 3.4.2
2021-12-27 09:44:48 +01:00
Matthias
a215e29d2a Merge pull request #6117 from freqtrade/dependabot/pip/develop/ccxt-1.65.25
Bump ccxt from 1.64.44 to 1.65.25
2021-12-27 09:42:40 +01:00
Matthias
d58ed0e242 Merge pull request #6122 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.4
Bump types-python-dateutil from 2.8.3 to 2.8.4
2021-12-27 08:45:01 +01:00
Matthias
2ab8f467dd Merge pull request #6121 from freqtrade/dependabot/pip/develop/jsonschema-4.3.2
Bump jsonschema from 4.3.1 to 4.3.2
2021-12-27 08:44:11 +01:00
Matthias
c1ec368c0c Merge pull request #6123 from freqtrade/dependabot/pip/develop/mypy-0.930
Bump mypy from 0.920 to 0.930
2021-12-27 08:43:54 +01:00
Matthias
29fff65598 Merge pull request #6120 from freqtrade/dependabot/pip/develop/plotly-5.5.0
Bump plotly from 5.4.0 to 5.5.0
2021-12-27 08:43:36 +01:00
dependabot[bot]
3cba405b2e Bump filelock from 3.4.0 to 3.4.2
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.4.0 to 3.4.2.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/py-filelock/compare/3.4.0...3.4.2)

---
updated-dependencies:
- dependency-name: filelock
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 03:54:13 +00:00
dependabot[bot]
24d16d7dab Bump mypy from 0.920 to 0.930
Bumps [mypy](https://github.com/python/mypy) from 0.920 to 0.930.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v0.920...v0.930)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 03:54:06 +00:00
dependabot[bot]
2e84b8f0d5 Bump types-python-dateutil from 2.8.3 to 2.8.4
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.3 to 2.8.4.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 03:54:03 +00:00
dependabot[bot]
470ef7c160 Bump jsonschema from 4.3.1 to 4.3.2
Bumps [jsonschema](https://github.com/Julian/jsonschema) from 4.3.1 to 4.3.2.
- [Release notes](https://github.com/Julian/jsonschema/releases)
- [Changelog](https://github.com/Julian/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/Julian/jsonschema/compare/v4.3.1...v4.3.2)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 03:53:58 +00:00
dependabot[bot]
1093f22b80 Bump plotly from 5.4.0 to 5.5.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.4.0 to 5.5.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.4.0...v5.5.0)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 03:53:54 +00:00
dependabot[bot]
e085058621 Bump sqlalchemy from 1.4.28 to 1.4.29
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.28 to 1.4.29.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 03:53:47 +00:00
dependabot[bot]
81b383fe5c Bump ccxt from 1.64.44 to 1.65.25
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.64.44 to 1.65.25.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.64.44...1.65.25)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 03:53:41 +00:00
cdimauro
f77b8cbb7a Reduce KuCoin logs only for 429000 error
Only KuCoin messages for 429000 error code are logged once.

Logs functions are also simplified and optimized.

test_remove_logs_for_pairs_already_in_blacklist is simplified as well.
2021-12-26 21:09:25 +01:00
Reigo Reinmets
bc8fc3ab09 We can actually call recalc_open_trade_value less since it's being called eventually anyway. 2021-12-26 20:09:18 +02:00
Reigo Reinmets
bd5520bee2 Adjust comments, fix stoploss_on_exchange for slower closed orders. 2021-12-26 20:03:10 +02:00
Reigo Reinmets
099dc07baf No longer needed since recalc_trade_from_orders always calls it. 2021-12-26 20:02:20 +02:00
Reigo Reinmets
817a65b656 This is not needed since backtesting does not have open orders. 2021-12-26 20:01:48 +02:00
Matthias
045225beef Slightly improve doc formatting 2021-12-26 15:34:37 +01:00
Matthias
d3f3c49b13 Fix minor "gotchas" 2021-12-26 15:29:10 +01:00
cdimauro
6509c38717 Introduce new test functions to check logs
New functions log_contains, num_log_contains, num_log_has and num_log_has_re
are introduced in the conftest module to help and simplify checking:
- if logs contain a string;
- count how many messages contain a string;
- count how many messages are the given string;
- count how many messages matchs a regex.

A couple of existing tests are changed using the new functions.
2021-12-26 09:49:14 +01:00
cdimauro
fbaf46901e Reduce more KuCoin logs on retrier decorator
More logs are reduced, for KuCoin, on the retrier_async decorator:

_async_get_candle_history() returned exception
retrying _async_get_candle_history() still for
Giving up retrying: _async_get_candle_history()
Applying DDosProtection backoff delay
2021-12-26 09:06:26 +01:00
cdimauro
96fbf63d0b Reduce KuCoin logs on DDosProtection error messages
KuCoin APIs generate A LOT of error messages.
Consequently, logs are flooded with lines like:
2021-12-25 22:30:23 freqtrade.exchange.common: WARNING -
_async_get_candle_history() returned exception:
"kucoin GET https://openapi-v2.kucoin.com/api/v1/market/candles?
symbol=PDEX-USDT&type=5min&startAt=1640317818&endAt=1640467818
429 Too Many Requests {"code":"429000","msg":"Too Many Requests"}"
2021-12-25 22:30:23 freqtrade.exchange.common: WARNING -
retrying _async_get_candle_history() still for 3 times
2021-12-25 22:30:23 freqtrade.exchange.common: WARNING -
Kucoin 429 error, avoid triggering DDosProtection backoff delay.
2 tries left before giving up
2021-12-25 22:30:24 freqtrade.exchange.common: WARNING -
_async_get_candle_history() returned exception:
"kucoin GET https://openapi-v2.kucoin.com/api/v1/market/candles?
symbol=UBX-USDT&type=5min&startAt=1640317821&endAt=1640467821
429 Too Many Requests {"code":"429000","msg":"Too Many Requests"}"

Messages like:
Kucoin 429 error, avoid triggering DDosProtection backoff delay.
are logged only once for a certain period of time (default is 3600 seconds).
2021-12-25 22:32:22 +01:00
Reigo Reinmets
aa54592ec7 Merge branch 'freqtrade:develop' into dca 2021-12-25 21:06:26 +02:00
Matthias
2917cc1f2e Bitpanda's "fetch_my_trades" requires "to" argument
closes #4938
2021-12-25 14:28:22 +01:00
Matthias
6fdad8c6bd Prevent exception, ensure deletion occurs 2021-12-25 14:03:44 +01:00
Matthias
356b2d3d91 Reestablish backward compatibility 2021-12-25 13:47:28 +01:00
Matthias
b1feb69ca9 Use Pathlib to delete testfile 2021-12-25 10:30:59 +01:00
Matthias
49aa34c6f3 Merge pull request #6112 from xataxxx/develop
Fix test not running when user_data contains historical data.
2021-12-25 10:11:15 +01:00
Reigo Reinmets
ea79eb55e9 Remove this test change from DCA branch. 2021-12-25 10:43:25 +02:00
Reigo Reinmets
d11a8928d4 Fix test not running when user_data contains historical data. 2021-12-25 10:39:27 +02:00
Reigo Reinmets
3cbb2ff31f Fix up documentation. 2021-12-25 10:35:08 +02:00
Stefano Ariestasia
e3181748dc Add ignore_buying_expired_candle to config_full example 2021-12-25 12:24:12 +09:00
Reigo Reinmets
f61aaa8c0d Improve documentation example 2021-12-24 19:02:39 +02:00
Reigo Reinmets
ad247b2f07 Merge branch 'freqtrade:develop' into dca 2021-12-24 12:39:09 +02:00
Reigo Reinmets
de79d25caf Refactoring to use strategy based configuration 2021-12-24 12:38:43 +02:00
Matthias
58663180e0 Merge pull request #6107 from freqtrade/remove_slack
Update CI to notify on discord only
2021-12-23 21:50:49 +01:00
Matthias
98f6d2d722 Update CI to notify on discord only 2021-12-23 21:27:30 +01:00
Matthias
110e48c541 Remove travis config file
Travisci seems to no longer offer a free plan for open source
repositories, and other repositories report the need to get in touch
with support again and again.

This complication is not necessary with github actions, which covers our
CI needs well.
2021-12-23 20:38:07 +01:00
Matthias
61dbb6206f Slightly reduce verbosity when reload_conf is issued
part of #6095
2021-12-23 20:33:13 +01:00
Reigo Reinmets
ac690e9215 Remove unnecessary returns. 2021-12-23 18:49:11 +02:00
Matthias
9a9cc31d83 Update docs regarding multiarch builds 2021-12-23 17:01:44 +01:00
Reigo Reinmets
0c4664e8f4 Lock file is not always left behind so handle it. 2021-12-23 17:39:43 +02:00
Reigo Reinmets
bc60139ae3 I really should make this flake8 / isort check automatic before commit. 2021-12-23 16:40:47 +02:00
Reigo Reinmets
8393c99b62 Whoops, missing a line. 2021-12-23 16:25:27 +02:00
Reigo Reinmets
8bf1001b33 Fix test failing when user_data already contains data... 2021-12-23 12:41:37 +02:00
Reigo Reinmets
ace0a83c0c Allow forcebuy to also buy more when trade is already open. 2021-12-23 11:57:53 +02:00
Reigo Reinmets
2e23e88fc1 Re-add back the log i accidentally removed. 2021-12-22 11:49:43 +02:00
Reigo Reinmets
d70ddeef9a Remove whitespace. Darn IntelliJ. 2021-12-22 11:43:48 +02:00
Reigo Reinmets
e439ae1fea Update wallet balance on every order close, not only trade close 2021-12-22 11:20:03 +02:00
Reigo Reinmets
da2e07b7fe Unittest base_stake_amount_ratio 2021-12-22 02:42:44 +02:00
Reigo Reinmets
76e7bf6cd2 Merge branch 'freqtrade:develop' into dca 2021-12-22 02:24:21 +02:00
Reigo Reinmets
7df3e7ada4 Add base_stake_amount_ratio config param to support unlimited stakes. 2021-12-22 02:19:11 +02:00
Reigo Reinmets
fa01cbf546 iSort 2021-12-21 22:23:01 +02:00
Matthias
f88b6af26f Merge pull request #6070 from cdimauro/suppress_logs
Suppress additional logs for pairs in blacklist
2021-12-21 21:07:15 +01:00
Matthias
e5aaef6440 Fix CI failure 2021-12-21 19:20:09 +01:00
cdimauro
6ba8b17fdd Use LoggingMixin.log_once to remove/reduce logs on pairlists 2021-12-21 09:11:57 +01:00
Reigo Reinmets
4862cdb296 Improve documentation. 2021-12-21 00:11:01 +02:00
Reigo Reinmets
c9243fb4f6 Use buy side for price since mostly used for DCA. 2021-12-20 22:45:46 +02:00
Reigo Reinmets
f6d36ce56b Fix the dca order not being counted bug. 2021-12-20 22:07:42 +02:00
Reigo Reinmets
d9f5694965 Merge branch 'freqtrade:develop' into dca 2021-12-20 22:05:58 +02:00
Matthias
40036bc710 Force dry-run for webserver backtest mode
closes #6094
2021-12-20 19:41:33 +01:00
Matthias
afad9be53f Merge pull request #6093 from freqtrade/dependabot/pip/develop/cryptography-36.0.1
Bump cryptography from 36.0.0 to 36.0.1
2021-12-20 09:01:25 +01:00
Matthias
6fe09b6dee Merge pull request #6090 from freqtrade/dependabot/pip/develop/mypy-0.920
Bump mypy from 0.910 to 0.920
2021-12-20 07:16:21 +01:00
Matthias
90c565006b Merge pull request #6043 from freqtrade/funding_fees
Funding fees
2021-12-20 07:15:30 +01:00
dependabot[bot]
21da01f777 Bump cryptography from 36.0.0 to 36.0.1
Bumps [cryptography](https://github.com/pyca/cryptography) from 36.0.0 to 36.0.1.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/36.0.0...36.0.1)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-20 05:39:04 +00:00
Matthias
260c627e99 Merge pull request #6091 from freqtrade/dependabot/pip/develop/time-machine-2.5.0
Bump time-machine from 2.4.1 to 2.5.0
2021-12-20 06:38:46 +01:00
Matthias
d47167c9c4 Merge pull request #6087 from freqtrade/dependabot/pip/develop/numpy-1.21.5
Bump numpy from 1.21.4 to 1.21.5
2021-12-20 06:38:25 +01:00
dependabot[bot]
b6f8765d3b Bump mypy from 0.910 to 0.920
Bumps [mypy](https://github.com/python/mypy) from 0.910 to 0.920.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v0.910...v0.920)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-20 05:38:03 +00:00
Matthias
5b608c9005 Merge pull request #6088 from freqtrade/dependabot/pip/develop/ccxt-1.64.44
Bump ccxt from 1.63.65 to 1.64.44
2021-12-20 06:37:59 +01:00
Matthias
cfad873ea7 Merge pull request #6092 from freqtrade/dependabot/pip/develop/jsonschema-4.3.1
Bump jsonschema from 4.2.1 to 4.3.1
2021-12-20 06:37:41 +01:00
Matthias
480eb55721 Merge pull request #6086 from freqtrade/dependabot/pip/develop/mkdocs-material-8.1.3
Bump mkdocs-material from 8.1.0 to 8.1.3
2021-12-20 06:37:23 +01:00
Matthias
e754cc09fc Merge pull request #6089 from freqtrade/dependabot/pip/develop/types-requests-2.26.2
Bump types-requests from 2.26.1 to 2.26.2
2021-12-20 06:36:46 +01:00
dependabot[bot]
cde35509db Bump jsonschema from 4.2.1 to 4.3.1
Bumps [jsonschema](https://github.com/Julian/jsonschema) from 4.2.1 to 4.3.1.
- [Release notes](https://github.com/Julian/jsonschema/releases)
- [Changelog](https://github.com/Julian/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/Julian/jsonschema/compare/v4.2.1...v4.3.1)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-20 03:01:52 +00:00
dependabot[bot]
5a3a5e98d6 Bump time-machine from 2.4.1 to 2.5.0
Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.4.1 to 2.5.0.
- [Release notes](https://github.com/adamchainz/time-machine/releases)
- [Changelog](https://github.com/adamchainz/time-machine/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/time-machine/compare/2.4.1...2.5.0)

---
updated-dependencies:
- dependency-name: time-machine
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-20 03:01:47 +00:00
dependabot[bot]
44ac002cf0 Bump types-requests from 2.26.1 to 2.26.2
Bumps [types-requests](https://github.com/python/typeshed) from 2.26.1 to 2.26.2.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-20 03:01:41 +00:00
dependabot[bot]
56d96d6cff Bump ccxt from 1.63.65 to 1.64.44
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.63.65 to 1.64.44.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.63.65...1.64.44)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-20 03:01:40 +00:00
dependabot[bot]
36632b48c7 Bump numpy from 1.21.4 to 1.21.5
Bumps [numpy](https://github.com/numpy/numpy) from 1.21.4 to 1.21.5.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.21.4...v1.21.5)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-20 03:01:34 +00:00
dependabot[bot]
1b3aaffef4 Bump mkdocs-material from 8.1.0 to 8.1.3
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.1.0 to 8.1.3.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.1.0...8.1.3)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-20 03:01:26 +00:00
Reigo Reinmets
b8b5e93000 Merge branch 'freqtrade:develop' into dca 2021-12-19 18:25:53 +02:00
Aezo Teo
6e24274dca updated documentation for webhook 2021-12-19 23:58:58 +08:00
Matthias
a557451eee Okex uses 4h mark candle timeframe 2021-12-19 16:47:44 +01:00
Aezo Teo
ea418bc9ac added stats for long short 2021-12-19 23:24:46 +08:00
Reigo Reinmets
f28d95ffb5 Add test for position adjust 2021-12-19 12:27:17 +02:00
Reigo Reinmets
5da38f3613 Fix typo. Make sure trade is market open. 2021-12-19 10:36:47 +02:00
Matthias
1cbc4da72b Merge pull request #6082 from Rikj000/docs/hyperopt-import-any
📝 Docs - Added `Any` import
2021-12-19 07:54:49 +01:00
Rik Helsen
58c3d69d14 📝 Docs - Added Any import 2021-12-18 23:29:55 +01:00
Reigo Reinmets
3aca3a7133 Use parentheses instead of backslash 2021-12-18 18:55:47 +02:00
Reigo Reinmets
1eb83f9a62 Fix documentation formatting. 2021-12-18 18:55:12 +02:00
Matthias
ddce28c12d Update data downloading to include funding_fee downloads 2021-12-18 15:32:02 +01:00
Reigo Reinmets
db2f0660fa Some more compatibility fixes. 2021-12-18 11:15:59 +02:00
Reigo Reinmets
b094430c26 Restructure for less complexity. Flake8 2021-12-18 11:01:06 +02:00
Reigo Reinmets
30673f84f9 Flake8 compatibility 2021-12-18 11:00:25 +02:00
Reigo Reinmets
cc28f73d7f Hopefully fix orders being left lingering and trade not updating once they are complete 2021-12-17 22:29:41 +02:00
Reigo Reinmets
d10fb95fce Fix typo 2021-12-17 22:27:10 +02:00
Reigo Reinmets
cea023399e Merge branch 'freqtrade:develop' into dca 2021-12-17 21:59:58 +02:00
Reigo Reinmets
462270bc5a Fix a case where the amount was not recalculated. Added additional temporary logging. 2021-12-16 22:57:56 +02:00
Matthias
ea38b58081 Add base_currency to allowed webhook fields
closes #6075
2021-12-16 20:18:01 +01:00
Reigo Reinmets
337af44901 Merge branch 'freqtrade:develop' into dca 2021-12-16 20:02:14 +02:00
Matthias
b2fc3e814e Merge pull request #6055 from freqtrade/blacklist_delete
Add Blacklist delete
2021-12-16 13:41:18 +01:00
Matthias
39f0a17e62 Fix formatting 2021-12-16 07:11:35 +01:00
Reigo Reinmets
7200659b35 Merge branch 'freqtrade:develop' into dca 2021-12-15 23:17:44 +02:00
Matthias
f9aa36f291 Don't hard-fail when executing emergency sell fails
closes #6068
2021-12-15 19:37:35 +01:00
Matthias
b80b5ed1ad Improve uri_logging test
part of #6069
2021-12-15 19:25:30 +01:00
Reigo Reinmets
a7c67e8c7c Merge branch 'freqtrade:develop' into dca 2021-12-15 08:32:12 +02:00
cdimauro
9d8646072c Add test case for checking removal of logs for pains in blacklist 2021-12-14 06:23:40 +01:00
Matthias
dda302eea2 Merge pull request #6026 from freqtrade/dependabot/pip/develop/ta-lib-0.4.22
Bump ta-lib from 0.4.21 to 0.4.22
2021-12-13 19:44:46 +01:00
Reigo Reinmets
9be29c6e92 Theoretically fix second order timeout/canceling deleting the whole order. 2021-12-13 20:44:18 +02:00
Reigo Reinmets
468076cf54 This has to be reset since otherwise it will not handle live limit orders after first buy. 2021-12-13 20:32:13 +02:00
Matthias
793d090561 Improve log message wording for rejected stake amounts
closes #6064
2021-12-13 19:29:07 +01:00
Matthias
95949bd466 Update windows wheels to ta-lib 0.4.22 2021-12-13 19:05:35 +01:00
Reigo Reinmets
d4b31263ca Fix open rate being None formatting error. 2021-12-13 13:54:01 +02:00
Reigo Reinmets
6f6e7467f5 Fix potential problem. 2021-12-13 11:17:24 +02:00
Matthias
1d0af074ac Merge pull request #6061 from freqtrade/dependabot/pip/develop/ccxt-1.63.65
Bump ccxt from 1.63.55 to 1.63.65
2021-12-13 06:51:17 +01:00
Matthias
f2d55a91cd Merge pull request #6063 from freqtrade/dependabot/pip/develop/fastapi-0.70.1
Bump fastapi from 0.70.0 to 0.70.1
2021-12-13 06:51:05 +01:00
Matthias
5371458c99 Merge pull request #6062 from freqtrade/dependabot/pip/develop/pandas-1.3.5
Bump pandas from 1.3.4 to 1.3.5
2021-12-13 06:50:32 +01:00
dependabot[bot]
884a04c7fe Bump fastapi from 0.70.0 to 0.70.1
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.70.0 to 0.70.1.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.70.0...0.70.1)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 03:01:49 +00:00
dependabot[bot]
172b9383c0 Bump pandas from 1.3.4 to 1.3.5
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.3.4 to 1.3.5.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/master/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.3.4...v1.3.5)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 03:01:44 +00:00
dependabot[bot]
ec4a24649c Bump ccxt from 1.63.55 to 1.63.65
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.63.55 to 1.63.65.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.63.55...1.63.65)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 03:01:38 +00:00
Reigo Reinmets
1362bd9626 Fix potential problem. 2021-12-13 02:46:37 +02:00
Reigo Reinmets
2c3e5fa080 Remove extra logging. 2021-12-13 02:30:29 +02:00
Reigo Reinmets
1017b68af9 Fix some unit-tests. Use common trade entry code. 2021-12-13 02:27:09 +02:00
Reigo Reinmets
98255c18cf Merge branch 'freqtrade:develop' into dca 2021-12-13 02:10:13 +02:00
Matthias
3398469e55 Update PerformanceFilter to have min_profit as ratio again.
closes #6056
2021-12-12 13:21:36 +01:00
cdimauro
8dd3128ed4 Add type annotation to new logs suppression code 2021-12-12 12:32:09 +01:00
cdimauro
5b998aeca7 Remove unused import
Remove the import from copy, since deepcopy() isn't used anymore
(list.copy() is used instead).
2021-12-12 10:21:54 +01:00
cdimauro
878e16545d Suppress additional logs for pairs in blacklist
Every time that there's freqtrade "ticks", pairs in the blacklist are
checked and a warning message is displayed.
So, the logs are continuously flooded with the same warnings.

For example:
2021-07-26 06:24:45 freqtrade.plugins.pairlistmanager: WARNING -
Pair XTZUP/USDT in your blacklist. Removing it from whitelist...
2021-07-26 06:24:45 freqtrade.plugins.pairlistmanager: WARNING -
Pair SUSHIUP/USDT in your blacklist. Removing it from whitelist...
2021-07-26 06:24:45 freqtrade.plugins.pairlistmanager: WARNING -
Pair XTZDOWN/USDT in your blacklist. Removing it from whitelist...
2021-07-26 06:24:50 freqtrade.plugins.pairlistmanager: WARNING -
Pair XTZUP/USDT in your blacklist. Removing it from whitelist...
2021-07-26 06:24:50 freqtrade.plugins.pairlistmanager: WARNING -
Pair SUSHIUP/USDT in your blacklist. Removing it from whitelist...
2021-07-26 06:24:50 freqtrade.plugins.pairlistmanager: WARNING -
Pair XTZDOWN/USDT in your blacklist. Removing it from whitelist...

This patch shows the warning only the first time, by keeping track
of which pairs in the blacklist were already logged.
2021-12-12 10:20:08 +01:00
Reigo Reinmets
c6256aba35 Improve documentation. 2021-12-12 08:37:03 +02:00
Reigo Reinmets
8dacd987b9 Merge branch 'freqtrade:develop' into dca 2021-12-12 08:31:38 +02:00
Matthias
c12f2378db Merge pull request #6045 from freqtrade/trade_fee_fallback_value
Add unknown_fee_rate parameter
2021-12-11 20:00:01 +01:00
Matthias
1a4b403792 Merge pull request #6047 from freqtrade/dependabot/pip/develop/uvicorn-0.16.0
Bump uvicorn from 0.15.0 to 0.16.0
2021-12-11 19:50:18 +01:00
Matthias
b90c5e56fb Fix webserver schema bug when running in webserver mode 2021-12-11 19:46:35 +01:00
Matthias
8fdef2900e Increment API version to let clients know this is now available 2021-12-11 19:41:30 +01:00
Matthias
2918032dac Merge pull request #6046 from freqtrade/dependabot/pip/develop/python-telegram-bot-13.9
Bump python-telegram-bot from 13.8.1 to 13.9
2021-12-11 19:41:14 +01:00
Reigo Reinmets
64558e60d3 Fix bug in example. 2021-12-11 19:45:30 +02:00
Reigo Reinmets
2e13893341 Merge branch 'freqtrade:develop' into dca 2021-12-11 18:28:05 +02:00
Matthias
06bd8a1540 Merge pull request #6052 from freqtrade/dependabot/github_actions/develop/peter-evans/dockerhub-description-2.4.3
Bump peter-evans/dockerhub-description from 2.1.0 to 2.4.3
2021-12-11 17:26:43 +01:00
Reigo Reinmets
9176e2f1f6 Merge branch 'freqtrade:develop' into dca 2021-12-11 18:26:11 +02:00
Reigo Reinmets
71147d2899 Attempt to support limit orders for position adjustment. 2021-12-11 18:25:05 +02:00
dependabot[bot]
58cd91bd80 Bump python-telegram-bot from 13.8.1 to 13.9
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 13.8.1 to 13.9.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v13.8.1...v13.9)

---
updated-dependencies:
- dependency-name: python-telegram-bot
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 16:00:35 +00:00
Matthias
dbe97bcdb1 Merge pull request #6053 from freqtrade/dependabot/github_actions/develop/crazy-max/ghaction-docker-buildx-3.3.1
Bump crazy-max/ghaction-docker-buildx from 1 to 3.3.1
2021-12-11 16:59:56 +01:00
Matthias
843eec63f0 Merge pull request #6051 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.28
Bump sqlalchemy from 1.4.27 to 1.4.28
2021-12-11 16:59:42 +01:00
Matthias
0df8786af6 Merge pull request #6048 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.24
Bump prompt-toolkit from 3.0.23 to 3.0.24
2021-12-11 16:35:07 +01:00
Matthias
b4ed90788b Merge pull request #6050 from freqtrade/dependabot/pip/develop/ccxt-1.63.55
Bump ccxt from 1.63.1 to 1.63.55
2021-12-11 16:34:36 +01:00
Matthias
c871e51dcc Merge pull request #6049 from freqtrade/dependabot/pip/develop/mkdocs-material-8.1.0
Bump mkdocs-material from 8.0.4 to 8.1.0
2021-12-11 16:34:28 +01:00
Matthias
857f4ec125 Remove exception-handlers which catch exceptions that are never raised 2021-12-11 16:20:09 +01:00
Reigo Reinmets
7d42f42405 Merge branch 'freqtrade:develop' into dca 2021-12-11 17:14:50 +02:00
Reigo Reinmets
f11a40f144 Improve documentation on adjust_trade_position and position_adjustment_enable 2021-12-11 17:14:04 +02:00
dependabot[bot]
783ee633aa Bump crazy-max/ghaction-docker-buildx from 1 to 3.3.1
Bumps [crazy-max/ghaction-docker-buildx](https://github.com/crazy-max/ghaction-docker-buildx) from 1 to 3.3.1.
- [Release notes](https://github.com/crazy-max/ghaction-docker-buildx/releases)
- [Changelog](https://github.com/crazy-max/ghaction-docker-buildx/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crazy-max/ghaction-docker-buildx/compare/v1...v3.3.1)

---
updated-dependencies:
- dependency-name: crazy-max/ghaction-docker-buildx
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 15:13:10 +00:00
dependabot[bot]
fb134c67a9 Bump peter-evans/dockerhub-description from 2.1.0 to 2.4.3
Bumps [peter-evans/dockerhub-description](https://github.com/peter-evans/dockerhub-description) from 2.1.0 to 2.4.3.
- [Release notes](https://github.com/peter-evans/dockerhub-description/releases)
- [Commits](https://github.com/peter-evans/dockerhub-description/compare/v2.1.0...v2.4.3)

---
updated-dependencies:
- dependency-name: peter-evans/dockerhub-description
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 15:13:08 +00:00
Matthias
849ca1ec06 Dependabot - use correct branch 2021-12-11 16:12:36 +01:00
Matthias
8da79d0ab2 Add blacklist-control to telegram 2021-12-11 16:12:24 +01:00
dependabot[bot]
aaf5f4ce39 Bump sqlalchemy from 1.4.27 to 1.4.28
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.27 to 1.4.28.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 14:55:27 +00:00
dependabot[bot]
ae92bf56bf Bump ccxt from 1.63.1 to 1.63.55
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.63.1 to 1.63.55.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.63.1...1.63.55)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 14:55:21 +00:00
dependabot[bot]
f47cfbd2a9 Bump mkdocs-material from 8.0.4 to 8.1.0
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.0.4 to 8.1.0.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.0.4...8.1.0)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 14:55:13 +00:00
dependabot[bot]
c9c683f2b0 Bump prompt-toolkit from 3.0.23 to 3.0.24
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.23 to 3.0.24.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.23...3.0.24)

---
updated-dependencies:
- dependency-name: prompt-toolkit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 14:55:09 +00:00
dependabot[bot]
81cafd090d Bump uvicorn from 0.15.0 to 0.16.0
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.15.0 to 0.16.0.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.15.0...0.16.0)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 14:55:05 +00:00
Matthias
671b9903d7 Add github-actions dependabot 2021-12-11 15:54:09 +01:00
Matthias
cc96db76f0 Add possibility to delete pairs from the pairlist via api 2021-12-11 15:53:44 +01:00
Matthias
e729fad99c Add unknown_fee_rate parameter 2021-12-11 15:26:08 +01:00
Matthias
e9c3f0cbbd Add note about python3.10 not being supported
closes #6041
2021-12-11 10:01:55 +01:00
Matthias
17bd990053 Update funding_fee freqtradebot test 2021-12-11 09:49:48 +01:00
Reigo Reinmets
f97662e816 Add position_adjustment_enable config keyword to enable it. 2021-12-11 00:28:12 +02:00
Reigo Reinmets
b7bf3247b8 Only adjust stoploss if it's set. 2021-12-10 23:17:12 +02:00
Reigo Reinmets
1e3fc5e984 Slight code touchup 2021-12-10 22:48:00 +02:00
Matthias
6948414e47 Remove no longer necessary method _get_mark_price_history 2021-12-10 19:54:49 +01:00
Matthias
a87d2d62bb Remove no longer needed method get_funding_rate_history 2021-12-10 19:52:02 +01:00
Matthias
aabca85a5f Update _calculate_funding_fees to reuse existing async infrastructure 2021-12-10 19:50:58 +01:00
Reigo Reinmets
c179951cca Expect stake_amount, not actual amount of pair from strategy for DCA. 2021-12-10 20:42:24 +02:00
Matthias
35f9549e98 Expose drop_incomplete from refresh_latest_ohlcv 2021-12-10 07:36:25 +01:00
Matthias
3f266e8c8c Improve ccxt_mark_price_test 2021-12-10 06:46:35 +01:00
Reigo Reinmets
b2c2852f86 Initial backtesting support. This does make it rather slow. 2021-12-09 23:21:35 +02:00
Reigo Reinmets
00366c5c88 Additional unit-tests 2021-12-09 20:03:41 +02:00
Reigo Reinmets
28d0b5165a Add unit-test 2021-12-09 19:47:24 +02:00
Reigo Reinmets
fde6779873 Some code improvements. Still some bugs. 2021-12-09 14:47:44 +02:00
Reigo Reinmets
88792852e4 Merge branch 'develop' of github.com:freqtrade/freqtrade into dca 2021-12-09 14:33:14 +02:00
Matthias
edd80c3006 Merge branch 'develop' into feat/short 2021-12-09 06:34:07 +01:00
Matthias
0c28d15dc1 Merge pull request #5780 from samgermain/mark-price-candles
Mark price candles
2021-12-09 06:24:54 +01:00
Matthias
be6b1f6f83 Import from enums, not submodules 2021-12-09 06:18:21 +01:00
Matthias
b79f2f2981 Merge pull request #6035 from freqtrade/revert-6034-dependabot/docker/python-3.10.1-slim-bullseye
Revert "Bump python from 3.9.9-slim-bullseye to 3.10.1-slim-bullseye"
2021-12-09 06:18:11 +01:00
Matthias
facb5b3991 Revert "Bump python from 3.9.9-slim-bullseye to 3.10.1-slim-bullseye" 2021-12-09 06:17:56 +01:00
Matthias
79a87649b9 Merge pull request #6034 from freqtrade/dependabot/docker/python-3.10.1-slim-bullseye
Bump python from 3.9.9-slim-bullseye to 3.10.1-slim-bullseye
2021-12-09 06:15:16 +01:00
dependabot[bot]
7848e17a49 Bump python from 3.9.9-slim-bullseye to 3.10.1-slim-bullseye
Bumps python from 3.9.9-slim-bullseye to 3.10.1-slim-bullseye.

---
updated-dependencies:
- dependency-name: python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-09 03:01:59 +00:00
Matthias
2679744228 Explicit test for candletype get_default 2021-12-08 16:20:26 +01:00
Matthias
35afc7b478 Fix wrong tradingMOde comparison 2021-12-08 16:07:27 +01:00
Matthias
25e1142f89 Update Enum imports 2021-12-08 15:59:20 +01:00
Matthias
d079b444a6 Add optional "has" (as comment for now) 2021-12-08 14:48:56 +01:00
Matthias
9b9d61c6d6 Remove SPOT_ candletype 2021-12-08 14:38:09 +01:00
Matthias
d89cbda7b8 Use candle_type_def where possible 2021-12-08 14:15:54 +01:00
Matthias
222c293602 Add "defaultCandletype" 2021-12-08 13:17:20 +01:00
Matthias
dda7283f3e Remove unnecessary default parameters 2021-12-08 11:32:58 +01:00
Matthias
ac2fb08aea Small updates while reviewing 2021-12-07 20:21:49 +01:00
Matthias
f1c5a4d065 Use pair-reconstruction method wherever possible 2021-12-07 20:12:44 +01:00
Matthias
5b67be06c2 Update description of --candletypes 2021-12-07 20:00:12 +01:00
Matthias
b4d27973b1 Update ohlcv_get_pairs test 2021-12-07 19:57:18 +01:00
Matthias
37b013c157 Update hdf5 test 2021-12-07 19:50:16 +01:00
Reigo Reinmets
fd875786fd Initial very crude DCA implementation attempt. Very alpha.
No backtesting support.
2021-12-07 11:16:11 +02:00
Matthias
a870e0962a Fix some obtruse (test)bugs 2021-12-07 07:25:00 +01:00
Matthias
ba1091b9e4 Improve dataprovider test 2021-12-07 07:11:36 +01:00
Matthias
cff950d783 Update test_convert_ohlcv_format to test as before
it did test conversion of multiple files, and that should be kept this
way.
2021-12-07 07:06:28 +01:00
Matthias
5a3b907132 Update converter tests 2021-12-07 06:59:27 +01:00
Matthias
a58c2c4f6c Update ccxt_compat tests to also test funding_rate 2021-12-07 06:31:39 +01:00
Matthias
ce0df08ac7 Update documentation of changed commands 2021-12-06 07:11:15 +01:00
Matthias
decaa24f81 Merge pull request #6028 from freqtrade/dependabot/pip/develop/mkdocs-material-8.0.4
Bump mkdocs-material from 8.0.1 to 8.0.4
2021-12-06 07:03:50 +01:00
Matthias
f9529c1fb6 Merge pull request #6027 from freqtrade/dependabot/pip/develop/ccxt-1.63.1
Bump ccxt from 1.62.42 to 1.63.1
2021-12-06 06:22:58 +01:00
dependabot[bot]
3dda0ef2ef Bump mkdocs-material from 8.0.1 to 8.0.4
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.0.1 to 8.0.4.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.0.1...8.0.4)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 03:01:35 +00:00
dependabot[bot]
50a6eaea22 Bump ccxt from 1.62.42 to 1.63.1
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.62.42 to 1.63.1.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.62.42...1.63.1)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 03:01:30 +00:00
dependabot[bot]
61211a1194 Bump ta-lib from 0.4.21 to 0.4.22
Bumps [ta-lib](https://github.com/mrjbq7/ta-lib) from 0.4.21 to 0.4.22.
- [Release notes](https://github.com/mrjbq7/ta-lib/releases)
- [Changelog](https://github.com/mrjbq7/ta-lib/blob/master/CHANGELOG)
- [Commits](https://github.com/mrjbq7/ta-lib/compare/TA_Lib-0.4.21...TA_Lib-0.4.22)

---
updated-dependencies:
- dependency-name: ta-lib
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 03:01:18 +00:00
Matthias
9d79501c13 Add candletypes argument for convert-data 2021-12-05 10:26:00 +01:00
Matthias
a80c3f6a1b Use exchange-dependant timeframe/candletype to get mark/index candles 2021-12-05 10:01:44 +01:00
Matthias
a7eb9f8a58 Fix random test failure 2021-12-05 09:41:24 +01:00
Matthias
fbd64d757d Improve doc wording 2021-12-05 09:26:44 +01:00
Matthias
4278c5a24a add note about arm64 installation
closes #6025
2021-12-05 09:24:40 +01:00
Matthias
243e59cabb Merge pull request #5929 from dvdmchl/develop
Telegram and log prints strategy version.
2021-12-04 15:16:42 +01:00
Matthias
210202a797 Merge pull request #5756 from GluTbl/patch-1
add custom entry/exit price support to backtesting
2021-12-04 15:16:15 +01:00
Matthias
1a08613498 Fix parameter sequence in mock 2021-12-04 15:13:06 +01:00
Matthias
c981cc335d Remove wrong comment 2021-12-04 14:51:55 +01:00
Matthias
d0467b30ba Add strategy_version to API response 2021-12-04 14:49:45 +01:00
Matthias
e3190cf8a8 Update documentation 2021-12-04 14:44:03 +01:00
Matthias
848a2d5383 Merge branch 'develop' into pr/dvdmchl/5929 2021-12-04 14:40:15 +01:00
Matthias
2080bf0952 Fix some formatting errors, add test for strategy version 2021-12-04 14:40:05 +01:00
Matthias
68ac8008ec Call custom_exit_price only for sell_signal and custom_sell 2021-12-04 14:14:22 +01:00
Matthias
84ad176287 Improve documentation wording 2021-12-04 13:33:38 +01:00
Matthias
86910b58dc Bracket entry/exit prices to low/high of the candle 2021-12-03 17:44:53 +01:00
Matthias
d1209fe415 Merge branch 'develop' into pr/GluTbl/5756 2021-12-03 17:37:44 +01:00
Matthias
5b779fd68b Update missing candle_type params 2021-12-03 16:44:05 +01:00
Matthias
d09a30cc67 OrderTypeValues should be in enums 2021-12-03 15:34:28 +01:00
Matthias
e75f31ee86 Create correct Type for PairWithTimeFrame 2021-12-03 15:20:18 +01:00
Matthias
bead867940 Improve some typehints 2021-12-03 15:08:00 +01:00
Matthias
9421e6e61c Improve some tests 2021-12-03 14:57:09 +01:00
Matthias
69f371bf63 Update download-data to download necessary data for futures 2021-12-03 14:43:49 +01:00
Matthias
d30aaaeaaa Tests should also use CandleType 2021-12-03 14:27:04 +01:00
Matthias
2f17fa2765 Update more to use candleType 2021-12-03 14:15:35 +01:00
Matthias
5493212672 More candletype changes 2021-12-03 13:04:31 +01:00
Matthias
f33643cacf Add candletype from string 2021-12-03 12:46:18 +01:00
Matthias
f9cf59bb4d Candle_type to enum 2021-12-03 12:32:12 +01:00
Matthias
a87e256737 Add candleType enum 2021-12-03 12:12:33 +01:00
Matthias
e0e4369c8e list-available-pairs should be tradingmode dependent 2021-12-03 08:09:32 +01:00
Matthias
b578e31255 Align tests to have futures data in futures/ directory 2021-12-03 07:20:43 +01:00
Matthias
7baf11a497 Futures candles should go into a subdirectory 2021-12-03 07:04:53 +01:00
Matthias
fae7167bf3 Merge branch 'feat/short' into pr/samgermain/5780 2021-12-02 20:25:30 +01:00
Matthias
fb1599d21b Merge branch 'develop' into feat/short 2021-12-02 20:20:35 +01:00
Matthias
ad5c8f601c Simplify datahandler classes by exploiting commonalities 2021-12-02 20:19:22 +01:00
Matthias
d3ad4fb52e Don't crash dry-run if orderbook side is empty
closes #6018
2021-12-02 19:17:47 +01:00
Matthias
22cda87211 Update some tests after merge 2021-12-02 19:05:06 +01:00
Matthias
f4d0abc51a Merge branch 'feat/short' into pr/samgermain/5780 2021-12-02 07:09:37 +01:00
Matthias
294c98ed5e Document exchange.uid
part of #6016
2021-12-02 06:55:08 +01:00
Matthias
f71b7a4e76 Merge branch 'develop' into feat/short 2021-12-02 06:53:15 +01:00
Matthias
c1fed8a077 Merge pull request #6014 from freqtrade/double_notifications
Double notifications
2021-12-02 06:39:18 +01:00
Matthias
0375a08302 use to_hdf instead of HDFStore 2021-12-01 20:32:23 +01:00
Matthias
5ce1eeecf5 Reorder messages to be sent in correct order
buy first, then buy fill,
sell first, then sell fill.
2021-12-01 19:57:24 +01:00
Matthias
77443d5abc Merge pull request #6011 from freqtrade/lev/backtesting
correctly apply leverage to backtesting
2021-12-01 19:49:40 +01:00
Matthias
67f3570bf3 Merge branch 'develop' into feat/short 2021-12-01 07:21:36 +01:00
Matthias
c22f381dfe Fix Schema issue
closes #6010
2021-11-30 20:46:47 +01:00
Matthias
8b2fbb6432 Add leveraged backtest detail test 2021-11-30 20:42:18 +01:00
Matthias
a2a974fc6d correctly apply leverage to backtesting 2021-11-30 20:32:34 +01:00
Matthias
542963c7a6 Reduce code complexity by combining buy and buy_fill methods 2021-11-30 19:45:20 +01:00
Matthias
f0abe218a2 Batch ohlcv requests to not overwelm ccxt's async throttler
closes #6003
2021-11-30 07:10:12 +01:00
Matthias
231b1e2f57 Improve Async error message content 2021-11-30 07:10:12 +01:00
Matthias
de7e1e6bf7 Merge pull request #5980 from incrementby1/ShuffleFilterDetectLiveMode
Shuffle filter use seed only in backtesting mode
2021-11-30 06:37:35 +01:00
incrementby1
85b1f6f6b3 Update pairlists.md 2021-11-29 20:44:51 +01:00
incrementby1
60eca8b1f1 revert to random object 2021-11-29 20:35:43 +01:00
Matthias
06d8217e62 Merge pull request #5983 from PostmanSpat/webhook-raw-retry
Added raw config and retry config to webhook
2021-11-29 20:30:06 +01:00
Matthias
dfb148f8d7 Fix formatting 2021-11-29 19:54:54 +01:00
Matthias
f8cb3d2901 Restore openAPI functioning 2021-11-29 19:52:40 +01:00
Matthias
bd8348451e Merge pull request #5999 from freqtrade/dependabot/pip/develop/mkdocs-material-8.0.1
Bump mkdocs-material from 7.3.6 to 8.0.1
2021-11-29 19:50:59 +01:00
Matthias
0f15340269 Merge pull request #5995 from freqtrade/dependabot/pip/develop/aiofiles-0.8.0
Bump aiofiles from 0.7.0 to 0.8.0
2021-11-29 19:32:45 +01:00
Matthias
2e51477455 Update mkdocs file to 8.0 2021-11-29 19:32:16 +01:00
Spat
018407852a Added missing webhook config params to constants 2021-11-29 18:17:59 +11:00
Matthias
56b4457a9c Merge pull request #5996 from freqtrade/dependabot/pip/develop/time-machine-2.4.1
Bump time-machine from 2.4.0 to 2.4.1
2021-11-29 08:07:30 +01:00
Matthias
2db064d8f7 Merge pull request #6000 from stash86/fix-docs
Add few sentences to make clear about backtest + pairlist handlers
2021-11-29 07:09:36 +01:00
Matthias
f0bf9b51dc Merge pull request #5992 from freqtrade/dependabot/pip/develop/ccxt-1.62.42
Bump ccxt from 1.61.92 to 1.62.42
2021-11-29 07:08:46 +01:00
dependabot[bot]
57e55eb938 Bump time-machine from 2.4.0 to 2.4.1
Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/adamchainz/time-machine/releases)
- [Changelog](https://github.com/adamchainz/time-machine/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/time-machine/compare/2.4.0...2.4.1)

---
updated-dependencies:
- dependency-name: time-machine
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 06:00:32 +00:00
Matthias
5ee5600cb9 Merge pull request #5993 from freqtrade/dependabot/pip/develop/scipy-1.7.3
Bump scipy from 1.7.2 to 1.7.3
2021-11-29 06:59:51 +01:00
Matthias
828ab874c1 Merge pull request #5991 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.23
Bump prompt-toolkit from 3.0.22 to 3.0.23
2021-11-29 06:59:30 +01:00
Matthias
90892e5a89 Merge pull request #5997 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.3
Bump types-python-dateutil from 2.8.2 to 2.8.3
2021-11-29 06:59:14 +01:00
Matthias
180df0514f Merge pull request #5998 from freqtrade/dependabot/pip/develop/types-requests-2.26.1
Bump types-requests from 2.26.0 to 2.26.1
2021-11-29 06:58:55 +01:00
Matthias
731208936f Merge pull request #5994 from freqtrade/dependabot/pip/develop/types-cachetools-4.2.6
Bump types-cachetools from 4.2.5 to 4.2.6
2021-11-29 06:58:41 +01:00
Stefano Ariestasia
3b4051488f Merge branch 'fix-docs' of https://github.com/stash86/freqtrade into fix-docs 2021-11-29 14:32:37 +09:00
Stefano Ariestasia
c126d2530a Add few sentences on docs
- Add warning that PrecisionFilter can't be used on backtest that use multiple strategies
- Add note that not all pairlist handlers can be used on backtest
2021-11-29 14:32:33 +09:00
dependabot[bot]
24997fb36f Bump mkdocs-material from 7.3.6 to 8.0.1
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.3.6 to 8.0.1.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Upgrade guide](https://github.com/squidfunk/mkdocs-material/blob/master/docs/upgrade.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.3.6...8.0.1)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 03:01:50 +00:00
dependabot[bot]
b81d768eb3 Bump types-requests from 2.26.0 to 2.26.1
Bumps [types-requests](https://github.com/python/typeshed) from 2.26.0 to 2.26.1.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 03:01:45 +00:00
dependabot[bot]
39c3175b69 Bump types-python-dateutil from 2.8.2 to 2.8.3
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.2 to 2.8.3.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 03:01:43 +00:00
dependabot[bot]
b0b2fdba70 Bump aiofiles from 0.7.0 to 0.8.0
Bumps [aiofiles](https://github.com/Tinche/aiofiles) from 0.7.0 to 0.8.0.
- [Release notes](https://github.com/Tinche/aiofiles/releases)
- [Commits](https://github.com/Tinche/aiofiles/compare/v0.7.0...v0.8.0)

---
updated-dependencies:
- dependency-name: aiofiles
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 03:01:38 +00:00
dependabot[bot]
c2a7b1930b Bump types-cachetools from 4.2.5 to 4.2.6
Bumps [types-cachetools](https://github.com/python/typeshed) from 4.2.5 to 4.2.6.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 03:01:36 +00:00
dependabot[bot]
589c9f55e0 Bump scipy from 1.7.2 to 1.7.3
Bumps [scipy](https://github.com/scipy/scipy) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.7.2...v1.7.3)

---
updated-dependencies:
- dependency-name: scipy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 03:01:33 +00:00
dependabot[bot]
e9e8023d73 Bump ccxt from 1.61.92 to 1.62.42
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.61.92 to 1.62.42.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.61.92...1.62.42)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 03:01:27 +00:00
dependabot[bot]
df09fe5df6 Bump prompt-toolkit from 3.0.22 to 3.0.23
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.22 to 3.0.23.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.22...3.0.23)

---
updated-dependencies:
- dependency-name: prompt-toolkit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 03:01:20 +00:00
Spat
29180a1d2b Moved retry config to constants 2021-11-29 10:48:35 +11:00
Spat
0fa5bf54cd Changed comment 2021-11-29 10:30:41 +11:00
Matthias
cf5ff9257d Add plotconfig as property documentation and sample 2021-11-28 19:39:43 +01:00
Matthias
134b129d9d get_analyzed_df does not need a "candle_type" argument 2021-11-28 19:14:58 +01:00
incrementby1
c7d10e2c7e delete unneeded comment 2021-11-28 19:05:02 +01:00
Matthias
cb4efa6d56 Revert unnecessary formatting changes 2021-11-28 15:53:13 +01:00
Matthias
c20157e64f Add compatibility code for existing informative_pairs implementation 2021-11-28 15:43:04 +01:00
Matthias
0d6c933935 Improve and fix pair detection from available data 2021-11-28 15:25:57 +01:00
Matthias
0d1324718c Don't replace "-" when writing pair files 2021-11-28 15:08:02 +01:00
Matthias
7faa7539b4 Further enhance pair retrieval 2021-11-28 15:03:55 +01:00
Matthias
8d70672bee Enhance Regex to work for mark candles 2021-11-28 14:37:54 +01:00
Matthias
c096c7f5cb Add explicit tests for ohlcv regex 2021-11-28 14:34:46 +01:00
Matthias
2414c0bd9f Merge pull request #5982 from stash86/fix-docs
add weekly and monthly to valid keys
2021-11-28 08:28:13 +01:00
Spat
fb6ae174b9 Added raw config and retry config to webhook 2021-11-28 11:42:57 +11:00
Stefano Ariestasia
fd9bf2adb0 add weekly and monthly to valid keys 2021-11-28 08:23:02 +09:00
Matthias
6429205d39 Improve Notebook documentation to include Dataprovider
fix #5975
2021-11-27 19:53:37 +01:00
Matthias
2b3e7eeb21 Use Enum values within bot code 2021-11-27 19:41:36 +01:00
Matthias
409a801763 Fix caching problem in refresh_ohlcv
closes #5978
2021-11-27 19:31:39 +01:00
incrementby1
b90303c9a3 Update ShuffleFilter.py
random.Random() is deprecated since 3.9
2021-11-27 18:26:30 +01:00
Matthias
4179a1a797 Merge pull request #5977 from freqtrade/new_release
New release 2021.11
2021-11-27 17:01:56 +01:00
Matthias
cb95b362ec Merge pull request #5976 from freqtrade/forcebuy
allow force options with ordertype
2021-11-27 17:01:18 +01:00
Matthias
107e124f60 Fix bug in exchange causing candles not to download 2021-11-27 17:00:06 +01:00
Matthias
bf8f1045ca Map binanceusdm to ft binance class 2021-11-27 16:46:17 +01:00
Matthias
504efbd6d4 Add futures argument to download-data command 2021-11-27 16:36:59 +01:00
incrementby1
62d248d182 Merge pull request #2 from incrementby1/ShuffleFilterDetectLiveModes
Update pairlists.md
2021-11-27 16:30:46 +01:00
incrementby1
2f0f576fce Update pairlists.md
ShuffleFilter will automatically detect runmodes and apply the `seed` only for backtesting modes - if ad `seed` value is set.
2021-11-27 16:28:41 +01:00
incrementby1
8c52ba3360 ShuffleFilterDetectLiveMode
# Apply seed in backtesting mode to get comparable results,
        # but not in live modes to get a non-repeating order of pairs during live modes.
2021-11-27 16:21:23 +01:00
Sam Germain
392128013f Updated ohlcv_get_available_data to recognize swap and futures pairs 2021-11-27 03:11:44 -06:00
Sam Germain
8761649fd7 Added candle_type in doc strings 2021-11-27 02:55:42 -06:00
Matthias
7e1eedd7df Version bump to 2021.11 2021-11-27 09:55:00 +01:00
Matthias
eab4bdd274 Merge branch 'stable' into new_release 2021-11-27 09:54:51 +01:00
Matthias
a9cdb428d0 Version bump to 2021.10 2021-11-27 09:53:34 +01:00
Matthias
3f10430eb5 Version bump to 2021.9 2021-11-27 09:53:34 +01:00
Matthias
a629777890 Improve test coverage in telegram module 2021-11-27 09:53:05 +01:00
Sam Germain
0183e313ac Merge branch 'mark-price-candles' of https://github.com/samgermain/freqtrade into mark-price-candles 2021-11-27 02:44:14 -06:00
Sam Germain
0d30b32fdd Formatting changes 2021-11-27 02:44:06 -06:00
Matthias
6ca6f62509 Remove duplicate code in optimize_reports 2021-11-27 09:39:10 +01:00
Matthias
bc52b3db56 Properly handle None values via API 2021-11-27 09:26:14 +01:00
Matthias
80ed5283b2 Add forcesell market/limit distinction 2021-11-27 09:10:18 +01:00
Matthias
450293878f Merge pull request #5964 from stash86/fix-docs
Add more words on VolumePairlist backtest error message
2021-11-26 07:48:24 +01:00
Matthias
897788de17 Reformulate exception to be "nicer" 2021-11-26 07:02:50 +01:00
Matthias
cc9ea1d466 Merge pull request #5935 from freqtrade/short_buy_tag_compat
Short buy tag compat
2021-11-26 06:29:56 +01:00
Matthias
f4bc30c927 Update docs to include "vpn/ssh" section 2021-11-26 06:23:29 +01:00
Stefano Ariestasia
5307d2bf3b Trimming the sentence 2021-11-25 17:04:04 +09:00
Stefano Ariestasia
c23d90e2b8 Update test_backtesting.py 2021-11-25 16:56:56 +09:00
Stefano Ariestasia
0c629fc951 Update test_backtesting.py 2021-11-25 16:03:29 +09:00
Stefano Ariestasia
0d1e84cf55 Add more words
Because apparently, we get at least 1 question about this everyday in Discord
2021-11-25 16:00:10 +09:00
Matthias
338fe333a9 Allow forcebuy to specify order_type 2021-11-24 20:20:58 +01:00
Matthias
65906d330f Improve tests for pair_to_filename 2021-11-23 20:07:54 +01:00
Matthias
e8feac3674 Improve tests for pair_to_filename 2021-11-23 20:02:07 +01:00
Matthias
51e54a666c Merge branch 'feat/short' into pr/samgermain/5780 2021-11-23 19:01:07 +01:00
Matthias
db16098981 Fix Tests 2021-11-23 17:43:37 +01:00
Matthias
342862a5f3 Merge pull request #5952 from freqtrade/armhf_39
Update ARMHF image to 3.9
2021-11-23 15:37:40 +01:00
Matthias
c23ca35d23 Update ARMHF image to 3.9 2021-11-23 14:04:39 +01:00
Matthias
047707f840 Merge pull request #5953 from samgermain/is-future-method-fix
Is future method fix
2021-11-23 11:33:53 +01:00
Sam Germain
586ca3b2fa removed is_market_future from binance and ftx 2021-11-23 11:09:31 +01:00
Sam Germain
70751b942c market_is_future fix 2021-11-23 01:50:23 -06:00
Matthias
ce0593c0e1 Merge branch 'develop' into feat/short 2021-11-23 07:35:26 +01:00
Matthias
b8cefd687e Add api_version to botresponse 2021-11-23 07:08:55 +01:00
Matthias
0d082f7b17 Merge pull request #5950 from flozzone/patch-1
fix typo in Volatility filter description.
2021-11-22 20:17:54 +01:00
flozzone
c245a2a897 fix typo in Volatility filter description. 2021-11-22 20:10:26 +01:00
Matthias
2c805e53ee Merge pull request #5945 from ACMCMC/patch-1
Changed the wording of the documentation to be clearer
2021-11-22 19:28:45 +01:00
Matthias
259b95074f Merge pull request #5936 from rokups/rk/decorator-fix
Use market data to get base and quote currencies in @informative() decorator
2021-11-22 19:14:35 +01:00
Aldán Creo
43dab3ee60 Changed the wording of the documentation to be clearer
The sentence I've changed was continued on a different paragraph before, even though they were connected ideas. I have changed it so that they are part of the same paragraph now.
2021-11-22 19:08:06 +01:00
Rokas Kupstys
78a00f2518 Use market data to get base and quote currencies in @informative() decorator. 2021-11-22 09:27:45 +02:00
Matthias
280a0ec17e Merge pull request #5944 from freqtrade/dependabot/pip/develop/ccxt-1.61.92
Bump ccxt from 1.61.24 to 1.61.92
2021-11-22 07:15:53 +01:00
Matthias
64e34f382e Sell-fill should include open-rate 2021-11-22 07:13:22 +01:00
Matthias
ecf2ac3c21 Bump aiohttp to 3.8.1 2021-11-22 06:51:06 +01:00
dependabot[bot]
80946cd9d6 Bump ccxt from 1.61.24 to 1.61.92
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.61.24 to 1.61.92.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.61.24...1.61.92)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 05:47:48 +00:00
Matthias
965ab3848c Merge pull request #5943 from freqtrade/dependabot/pip/develop/plotly-5.4.0
Bump plotly from 5.3.1 to 5.4.0
2021-11-22 06:46:52 +01:00
Matthias
6f93f96f18 Merge pull request #5941 from freqtrade/dependabot/pip/develop/cryptography-36.0.0
Bump cryptography from 35.0.0 to 36.0.0
2021-11-22 06:46:29 +01:00
Matthias
9f1fdc9931 Merge pull request #5942 from freqtrade/dependabot/pip/develop/types-cachetools-4.2.5
Bump types-cachetools from 4.2.4 to 4.2.5
2021-11-22 06:45:09 +01:00
Matthias
e0f21a5e35 Merge pull request #5939 from freqtrade/dependabot/pip/develop/filelock-3.4.0
Bump filelock from 3.3.2 to 3.4.0
2021-11-22 06:44:03 +01:00
dependabot[bot]
0ef99206b0 Bump plotly from 5.3.1 to 5.4.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.3.1 to 5.4.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.3.1...v5.4.0)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 03:01:56 +00:00
dependabot[bot]
247f855ba9 Bump types-cachetools from 4.2.4 to 4.2.5
Bumps [types-cachetools](https://github.com/python/typeshed) from 4.2.4 to 4.2.5.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 03:01:52 +00:00
dependabot[bot]
fdc6ca1bd8 Bump cryptography from 35.0.0 to 36.0.0
Bumps [cryptography](https://github.com/pyca/cryptography) from 35.0.0 to 36.0.0.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/35.0.0...36.0.0)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 03:01:48 +00:00
dependabot[bot]
ab93e13682 Bump filelock from 3.3.2 to 3.4.0
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.3.2 to 3.4.0.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/py-filelock/compare/3.3.2...3.4.0)

---
updated-dependencies:
- dependency-name: filelock
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 03:01:36 +00:00
Sam Germain
920151934a Added candle_type to a lot of methods, wrote some tests 2021-11-21 17:48:14 -06:00
Sam Germain
e2f98a8dab replaced candle_type: Optional[str] = '' with candle_type: str = '' 2021-11-21 17:48:14 -06:00
Sam Germain
64a6abc541 Added candle type to ohlcv_get_available_data 2021-11-21 17:48:14 -06:00
Sam Germain
b4029533ec removed candle type from idatahandler.py 2021-11-21 17:48:14 -06:00
Sam Germain
c3b2929e75 Added template for test test_hdf5datahandler_ohlcv_load_and_resave 2021-11-21 17:48:14 -06:00
Sam Germain
843ca22a56 mark price test ohlcv_get_pairs 2021-11-21 17:48:14 -06:00
Sam Germain
91a11d01e9 Added XRP_USDT-1h-mark json testdat file, and test for ohlcv_load with candle_type=mark 2021-11-21 17:48:14 -06:00
Sam Germain
043ed3e330 Added candle_type tests for test_json_pair_data_filename 2021-11-21 17:48:14 -06:00
Sam Germain
12060a2d2c fixed error with fetch_ohlcv candndle_type 2021-11-21 17:48:14 -06:00
Sam Germain
a657707ca3 Added timedelta to exchange 2021-11-21 17:48:14 -06:00
Sam Germain
3d95533bf9 Removed candletype from converter methods 2021-11-21 17:48:14 -06:00
Sam Germain
ee2ad8ca97 updated historic data filenames to include the candle type 2021-11-21 17:48:14 -06:00
Sam Germain
c8162479d6 Added price as param to fetch_ohlcv 2021-11-21 17:48:14 -06:00
Matthias
c26c0b6822 Merge branch 'feat/short' into short_buy_tag_compat 2021-11-21 19:31:59 +01:00
Matthias
aad37bb8f3 Merge pull request #5924 from freqtrade/feat/leverage
call leverage methods
2021-11-21 19:30:27 +01:00
Matthias
63d94aa585 short should be allowed for all non-spot modes 2021-11-21 19:29:08 +01:00
Matthias
983484accd Remove fluky test (seconds still tick with time_machine) 2021-11-21 10:36:39 +01:00
Matthias
fb519a5b39 Add comment with reasoning to ignore leverage in min_amount calculation 2021-11-21 10:28:40 +01:00
Matthias
192ac88314 Update optimize-reports to enter_tag wording 2021-11-21 10:20:09 +01:00
Matthias
2a84526f04 Remove more buy_tag references 2021-11-21 10:05:56 +01:00
Matthias
36deced00b Remove more buy_tag references 2021-11-21 09:55:10 +01:00
Matthias
7d77aff289 Add some compatibility around buy_tag 2021-11-21 09:24:20 +01:00
Matthias
97ff7d1223 Merge branch 'develop' into feat/short 2021-11-21 09:13:53 +01:00
Matthias
7a8978abbb Make ohlcv data endpoint work correctly with new interface 2021-11-20 20:09:37 +01:00
Dardon
d4fd13bf50 Telegram and log prints strategy version. 2021-11-20 16:26:07 +00:00
Matthias
c0cc3f5f97 Small doc improvements to callback documentation 2021-11-20 16:15:03 +01:00
Matthias
b36fe8fe0f Simplify strategy documentation 2021-11-20 11:48:11 +01:00
Matthias
0bae1471bd Extract callbacks into a separate site 2021-11-20 11:44:56 +01:00
Matthias
ef67a2adfc Improve callback documentation 2021-11-20 11:39:24 +01:00
Matthias
d8ee72554f Improve callback documentation 2021-11-20 11:39:24 +01:00
Matthias
f8f7d81fc2 Update strategy template to use parameters 2021-11-20 11:39:21 +01:00
Matthias
a239e5f725 Add segment on colliding signals 2021-11-20 11:35:48 +01:00
Matthias
32a56bbd4a Merge pull request #5926 from samgermain/has-no-leverage
Trade.has_no_leverage makes more sense
2021-11-20 11:31:36 +01:00
Sam Germain
54ef52692f Trade.has_no_leverage makes more sense 2021-11-20 01:06:10 -06:00
Matthias
988f4d5190 Test leverage call in freqtradebot 2021-11-19 19:34:59 +01:00
Matthias
9aed76ba17 Integrate leverage() to freqtradebot 2021-11-19 19:23:48 +01:00
Matthias
6247608cc6 top/bottom cap leverage 2021-11-19 07:11:19 +01:00
Matthias
021d1b518c Call "leverage" to determine leverage to be used. 2021-11-18 20:55:45 +01:00
Matthias
5a8824171c Add short/long metrics to backtest result 2021-11-18 20:42:43 +01:00
Matthias
0a50017c84 Add long/short support to backtesting 2021-11-18 20:34:59 +01:00
Matthias
f40221dd9f Merge branch 'develop' into feat/short 2021-11-18 20:20:01 +01:00
Matthias
8638e6fe47 Simplify tradingmode parsing 2021-11-18 19:58:44 +01:00
Matthias
06c81b5234 Merge pull request #5919 from mablue/patch-6
indentation problem :)
2021-11-18 11:58:36 +01:00
Masoud Azizi
0b6060dd11 indentation problem :) 2021-11-18 13:28:17 +03:30
Matthias
5fb0f53539 Add curl to install description 2021-11-17 19:36:38 +01:00
Matthias
4f0a73010a Merge pull request #5890 from aezomz/todo-rpc
Todo-lev RPC tests and model
2021-11-17 06:58:07 +01:00
Matthias
cbb5025711 Merge pull request #5825 from freqtrade/futures_pairlist
Futures pairlist
2021-11-16 19:46:27 +01:00
aezo.teo
1ba2e275b8 updated test param format 2021-11-16 14:29:40 +08:00
Matthias
ce3c5b32f9 Fix test leakage in ccxt_compat 2021-11-16 07:04:56 +01:00
aezo.teo
c17c1611bd removed short_trades, updated schema, tests 2021-11-16 14:03:33 +08:00
Matthias
5cfc385d44 Versionbump ccxt 2021-11-16 06:40:29 +01:00
Matthias
75eccea88d Improve futures detection, add ccxt-compat test 2021-11-15 19:57:36 +01:00
Matthias
4e9b83e170 Merge branch 'feat/short' into futures_pairlist 2021-11-15 19:12:36 +01:00
aezo.teo
9c34208b15 Merge branch 'upstream-5890' into todo-rpc 2021-11-15 23:30:54 +08:00
Matthias
60cf52aa34 Remove unused test code 2021-11-15 07:10:58 +01:00
Matthias
4d45eb0644 Merge pull request #5896 from freqtrade/dependabot/pip/develop/python-telegram-bot-13.8.1
Bump python-telegram-bot from 13.7 to 13.8.1
2021-11-15 07:01:36 +01:00
Matthias
056f8c72a1 Merge pull request #5895 from freqtrade/dependabot/pip/develop/ccxt-1.61.24
Bump ccxt from 1.60.68 to 1.61.24
2021-11-15 07:01:15 +01:00
Matthias
6a79a04350 Merge pull request #5901 from freqtrade/dependabot/pip/develop/jinja2-3.0.3
Bump jinja2 from 3.0.2 to 3.0.3
2021-11-15 06:28:00 +01:00
dependabot[bot]
d477ccab19 Bump ccxt from 1.60.68 to 1.61.24
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.60.68 to 1.61.24.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.60.68...1.61.24)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 05:27:50 +00:00
dependabot[bot]
e3bb102dc0 Bump python-telegram-bot from 13.7 to 13.8.1
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 13.7 to 13.8.1.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v13.7...v13.8.1)

---
updated-dependencies:
- dependency-name: python-telegram-bot
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 05:27:49 +00:00
Matthias
5df5a6f13b Merge pull request #5898 from freqtrade/dependabot/pip/develop/coveralls-3.3.1
Bump coveralls from 3.3.0 to 3.3.1
2021-11-15 06:27:39 +01:00
Matthias
f4fd4ecdb9 Merge pull request #5899 from freqtrade/dependabot/pip/develop/isort-5.10.1
Bump isort from 5.10.0 to 5.10.1
2021-11-15 06:27:20 +01:00
Matthias
c8191c4412 Merge pull request #5893 from freqtrade/dependabot/pip/develop/types-requests-2.26.0
Bump types-requests from 2.25.11 to 2.26.0
2021-11-15 06:26:50 +01:00
Matthias
46de615b50 Merge pull request #5894 from freqtrade/dependabot/pip/develop/pymdown-extensions-9.1
Bump pymdown-extensions from 9.0 to 9.1
2021-11-15 06:26:31 +01:00
Matthias
003e17bbb2 Merge pull request #5902 from freqtrade/dependabot/pip/develop/nbconvert-6.3.0
Bump nbconvert from 6.2.0 to 6.3.0
2021-11-15 06:26:13 +01:00
Matthias
b1618afef3 Merge pull request #5897 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.27
Bump sqlalchemy from 1.4.26 to 1.4.27
2021-11-15 06:25:55 +01:00
dependabot[bot]
7bd384c7fb Bump nbconvert from 6.2.0 to 6.3.0
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Commits](https://github.com/jupyter/nbconvert/compare/6.2.0...6.3.0)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 03:01:45 +00:00
dependabot[bot]
876b59f477 Bump jinja2 from 3.0.2 to 3.0.3
Bumps [jinja2](https://github.com/pallets/jinja) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 03:01:42 +00:00
dependabot[bot]
8ec5f72be4 Bump isort from 5.10.0 to 5.10.1
Bumps [isort](https://github.com/pycqa/isort) from 5.10.0 to 5.10.1.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.10.0...5.10.1)

---
updated-dependencies:
- dependency-name: isort
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 03:01:30 +00:00
dependabot[bot]
178e3ac6af Bump coveralls from 3.3.0 to 3.3.1
Bumps [coveralls](https://github.com/TheKevJames/coveralls-python) from 3.3.0 to 3.3.1.
- [Release notes](https://github.com/TheKevJames/coveralls-python/releases)
- [Changelog](https://github.com/TheKevJames/coveralls-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TheKevJames/coveralls-python/compare/3.3.0...3.3.1)

---
updated-dependencies:
- dependency-name: coveralls
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 03:01:27 +00:00
dependabot[bot]
2a1c61fb30 Bump sqlalchemy from 1.4.26 to 1.4.27
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.26 to 1.4.27.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 03:01:22 +00:00
Sam Germain
ff6b1f4421 Small changes 2021-11-14 21:01:08 -06:00
dependabot[bot]
c046790727 Bump pymdown-extensions from 9.0 to 9.1
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 9.0 to 9.1.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/9.0...9.1)

---
updated-dependencies:
- dependency-name: pymdown-extensions
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 03:01:04 +00:00
dependabot[bot]
43120e03f9 Bump types-requests from 2.25.11 to 2.26.0
Bumps [types-requests](https://github.com/python/typeshed) from 2.25.11 to 2.26.0.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 03:01:00 +00:00
Sam Germain
f101419a47 Merge branch 'feat/short' into todo-rpc 2021-11-14 20:48:55 -06:00
Matthias
1b058d882d Simplify date rounding logic 2021-11-14 19:55:56 +01:00
Matthias
e7499b7c44 Improve leggibility of test 2021-11-14 19:53:08 +01:00
Matthias
da3ceb0904 Merge pull request #5779 from samgermain/funding-fee-dry-run
Funding fee dry run
2021-11-14 19:49:05 +01:00
Matthias
9102590365 Improve tests by also having a "Mixed" case 2021-11-14 19:22:12 +01:00
aezo.teo
a08572e907 Merge remote-tracking branch 'upstream/feat/short' into todo-rpc 2021-11-14 21:21:59 +08:00
aezo.teo
22f7c0fdc6 updated test cases 2021-11-14 21:04:24 +08:00
Matthias
b3afca2a9d Improve ccxt_compat test for funding rate 2021-11-14 13:37:09 +01:00
aezo.teo
92997c85f9 adding sides for rate and 1 more test case 2021-11-14 17:37:31 +08:00
Matthias
4d1d8de9b7 Split /stats messages
closes #5869
2021-11-14 10:20:04 +01:00
Sam Germain
e7fad04eb9 Merge branch 'feat/short' into funding-fee-dry-run 2021-11-14 03:15:22 -06:00
Matthias
1dc98cc4d5 Break line 2021-11-14 10:12:19 +01:00
Matthias
c70fdea886 Merge pull request #5847 from stash86/kucoin-api
Hardcoded temp fix for Kucoin API issue
2021-11-14 10:11:02 +01:00
aezo.teo
8df334515f added logic for is_short and tests 2021-11-14 16:52:38 +08:00
Matthias
8cfc531b32 Merge pull request #5887 from samgermain/common-ccxt-config
Common ccxt config
2021-11-14 09:52:06 +01:00
aezo.teo
30fbe0c79c added is_short and short_trades to schema 2021-11-14 16:51:03 +08:00
Matthias
5b9cbaf277 Use Close value for trade signal calculation 2021-11-14 09:50:04 +01:00
Matthias
33f00d23b9 Merge pull request #5885 from ethanopp/develop
Include more details in _FILL telegram notifications
2021-11-14 09:37:58 +01:00
Stefano Ariestasia
632c1bc0aa Add static workaround for kucoin 429000 issue
closes #5700
2021-11-14 09:31:38 +01:00
Matthias
984d3216c8 Merge pull request #5889 from samgermain/test-todos
TODO-lev trim
2021-11-14 09:27:33 +01:00
Matthias
7c11619924 avoid using replace in messages 2021-11-14 09:19:21 +01:00
Matthias
38362e0ec5 Update test names 2021-11-14 09:02:25 +01:00
aezo.teo
8f66d8f942 Merge branch 'sam_5889' into todo-rpc 2021-11-14 13:26:32 +08:00
Sam Germain
86e5b480a8 test_strategy_test_v2 for shorts 2021-11-13 19:56:29 -06:00
Sam Germain
430aa0903f Removed redundent TODO-levs 2021-11-13 19:45:41 -06:00
Sam Germain
77f8f8658c test_rpc_telegram short test 2021-11-13 19:36:49 -06:00
Sam Germain
ca9805112d test_get_trades_proxy and test_select_order for shorts passes 2021-11-13 19:28:58 -06:00
Sam Germain
01ad65de68 test_rpc_apiserver.py 2021-11-13 19:22:43 -06:00
Sam Germain
3ce64dd4e9 Added test__ccxt_config for all exchanges with subclass files on freqtrade 2021-11-13 16:32:43 -06:00
Sam Germain
099bf7691e Updated bibox to combine parent _ccxt_config and minimized _ccxt_config tests 2021-11-13 16:23:59 -06:00
Sam Germain
3d86b18492 Added property _ft_has_default.ccxt_futures_name and removed subclass ccxt_config properties 2021-11-13 16:23:58 -06:00
ethan
c4c1b301cd buy notification code consolidation 2021-11-13 15:46:00 -05:00
ethan
0bc9384451 more notification code consolidation 2021-11-13 14:52:59 -05:00
ethan
7412b7ba51 buy/sell fill notification code consolidation 2021-11-13 10:23:47 -05:00
ethan
a177e58dc4 Remove "currency" generating from splitting pair str 2021-11-13 08:49:02 -05:00
Sam Germain
867ac3f82a Removed typing.List from bibox, hitbtc and kucoin 2021-11-13 06:21:17 -06:00
Matthias
37d461c6c2 Improve strategy dataframe documentation 2021-11-13 11:48:31 +01:00
Sam Germain
3c509a1f9b New method for combining all funding fees within a time period 2021-11-13 04:45:23 -06:00
Matthias
0e70d23bef Add documentation for exit_tags 2021-11-13 09:13:32 +01:00
Matthias
0e2b5ef6d4 Simplify custom strategy file wording 2021-11-13 09:03:58 +01:00
Matthias
df27499e19 Improve /help output from telegram 2021-11-13 08:46:06 +01:00
ethan
32e3376296 Update buy/sell fill telegram notifications 2021-11-12 21:49:07 -05:00
ethan
a237667bc9 Update buy/sell fill telegram notifications 2021-11-12 16:18:04 -05:00
Matthias
6b40792f80 Merge branch 'feat/short' into funding-fee-dry-run 2021-11-12 08:06:29 +01:00
Matthias
8d4163d003 Add compat tests 2021-11-12 07:26:59 +01:00
Sam Germain
c8c2d89893 exchange.get_funding_fees returns 0 by default 2021-11-11 19:10:56 -06:00
Sam Germain
9a65f486ed updated exchangeError messages regarding fetch_funding_rate_history 2021-11-11 18:33:46 -06:00
Sam Germain
592b7e0ce3 All test_update_funding_fees tests pass 2021-11-11 17:49:32 -06:00
Matthias
76ced8acf6 Add some documentation to class 2021-11-11 20:34:52 +01:00
Matthias
68083b7fdd Fix sqlinsert failure in test 2021-11-11 20:07:56 +01:00
Matthias
4d1ce51207 Merge pull request #5879 from freqtrade/improve_pct_formatting
Improve pct formatting
2021-11-11 19:30:55 +01:00
Matthias
39bb34cdb3 Fix test loading bug 2021-11-11 16:34:40 +01:00
Matthias
e0fd880c11 Improve some more pct formattings 2021-11-11 16:12:23 +01:00
Matthias
4eb9038358 Some more fixes to % formatting 2021-11-11 15:06:16 +01:00
Matthias
1b271d0840 Improve % outputs to not use explicit "pct" entries 2021-11-11 12:58:38 +01:00
Matthias
ce2aa1dc69 Small formatting upgrades 2021-11-11 12:06:18 +01:00
Matthias
f8d30abd79 Handle order returns that contain trades directly
binance market orders - and potentially other exchanges
2021-11-10 19:43:36 +01:00
Matthias
f7b2c0c5d7 Remove unneeded assignment from tests 2021-11-10 19:16:37 +01:00
Matthias
e7d1630c92 Add space 2021-11-10 16:51:31 +01:00
Matthias
2e451da08f Merge pull request #5874 from samgermain/update-todos
Removed unnecessary todo comments
2021-11-10 15:22:50 +01:00
Sam Germain
43174760ef Added exit trade funding_fees check but test fails because of sql integrity error test_update_funding_fees 2021-11-10 01:19:51 -06:00
Sam Germain
b87f8e7034 Removed unnecessary todo comments 2021-11-10 00:59:53 -06:00
Matthias
d3d17f9f8b Only allow min-stake adjustments of up to 30%
fix #5856
2021-11-10 06:57:22 +01:00
Matthias
23a566b478 validate_stake_amount should not be a private method 2021-11-10 06:38:24 +01:00
Sam Germain
e713f5188f Merge branch 'funding-fee-dry-run' of https://github.com/samgermain/freqtrade into funding-fee-dry-run 2021-11-09 14:45:50 -06:00
Sam Germain
45e4354906 Merge branch 'feat/short' into funding-fee-dry-run 2021-11-09 14:45:10 -06:00
Matthias
c9d974d210 Clarify performancefilter docs
closes #5870
2021-11-09 19:52:05 +01:00
Matthias
4a67b33cb3 Fix some formatting 2021-11-09 19:40:42 +01:00
Matthias
e69a100c64 Merge branch 'feat/short' into pr/samgermain/5779 2021-11-09 19:34:57 +01:00
Matthias
d5438ed0a8 Fix docstring indents 2021-11-09 19:22:29 +01:00
Matthias
e8b4d44881 Add warning about telegram group usage 2021-11-09 15:16:51 +01:00
Matthias
b676868ce6 Merge pull request #5868 from mapreal19/patch-1
docs: removes duplicated "without" in pairlists.md
2021-11-09 14:18:16 +01:00
Mario Pérez Alarcón
6f0a98229f docs: removes duplicated "without" in pairlists.md 2021-11-09 12:27:38 +00:00
Matthias
6267678ca9 Use doublequotes for docstrings 2021-11-09 10:40:01 +00:00
Matthias
f9e5a25b36 Add docstring style to Contributing 2021-11-09 07:48:25 +00:00
Sam Germain
fbe9e73c5d better param for funding_fee_cutoff 2021-11-09 01:17:29 -06:00
Sam Germain
6c8501dadc Removed docstring indents 2021-11-09 01:00:57 -06:00
Matthias
2bfec7d549 Add small test-case confirming trade object copy 2021-11-08 20:14:32 +01:00
Matthias
ae0e72a945 Provide strategy with copied objects
avoids accidental modification of crucial elements in a trade object
part of #5828
2021-11-08 19:59:29 +01:00
Matthias
e4cca63163 Align sell_reason assignment location
trade mode sets it after "exit confirmation" - so should backtesting
detected in #5828
2021-11-08 19:32:13 +01:00
Matthias
f2be820f73 Merge pull request #5855 from freqtrade/multi_ohlcv_calls
Provide more historic data in trade mode
2021-11-08 19:30:40 +01:00
Sam Germain
d0b91b334e Merge branch 'feat/short' into funding-fee-dry-run 2021-11-08 04:44:57 -06:00
Matthias
63f4221f70 Fix broken documentation link 2021-11-08 11:29:10 +01:00
Sam Germain
090b3d29b7 Updated kraken._get_funding_fee docstring with notification that it won't work in the bot yet 2021-11-08 01:58:23 -06:00
Sam Germain
01229ad631 updated exchange.get_funding_fee_dates with better names 2021-11-08 01:58:23 -06:00
Sam Germain
7122cb2fe9 updated test_get_funding_fees to test for funding fees at beginning of trade also 2021-11-08 01:58:23 -06:00
Sam Germain
bea37e5ea3 moved dry run check for funding fees to exchange 2021-11-08 01:58:09 -06:00
Matthias
84261237a0 Improve doc wording 2021-11-08 08:09:33 +01:00
Matthias
bb2b8efef1 Merge pull request #5859 from freqtrade/dependabot/pip/develop/isort-5.10.0
Bump isort from 5.9.3 to 5.10.0
2021-11-08 08:07:40 +01:00
dependabot[bot]
3ce898e4a9 Bump isort from 5.9.3 to 5.10.0
Bumps [isort](https://github.com/pycqa/isort) from 5.9.3 to 5.10.0.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.9.3...5.10.0)

---
updated-dependencies:
- dependency-name: isort
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 05:29:09 +00:00
Matthias
bbd7c6e4fc Merge pull request #5862 from freqtrade/dependabot/pip/develop/ccxt-1.60.68
Bump ccxt from 1.60.11 to 1.60.68
2021-11-08 06:24:50 +01:00
Matthias
d003a2b7a3 Merge pull request #5863 from freqtrade/dependabot/pip/develop/numpy-1.21.4
Bump numpy from 1.21.3 to 1.21.4
2021-11-08 06:24:23 +01:00
Matthias
2b88b3b749 Merge pull request #5864 from freqtrade/dependabot/pip/develop/scipy-1.7.2
Bump scipy from 1.7.1 to 1.7.2
2021-11-08 06:23:51 +01:00
Matthias
d80dda9caa Merge pull request #5858 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.22
Bump prompt-toolkit from 3.0.21 to 3.0.22
2021-11-08 06:23:35 +01:00
Matthias
3cfce605de Merge pull request #5860 from freqtrade/dependabot/pip/develop/jsonschema-4.2.1
Bump jsonschema from 4.1.2 to 4.2.1
2021-11-08 06:23:18 +01:00
Matthias
fdc6053633 Merge pull request #5861 from freqtrade/dependabot/pip/develop/coveralls-3.3.0
Bump coveralls from 3.2.0 to 3.3.0
2021-11-08 06:22:51 +01:00
dependabot[bot]
b39794f8d2 Bump scipy from 1.7.1 to 1.7.2
Bumps [scipy](https://github.com/scipy/scipy) from 1.7.1 to 1.7.2.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.7.1...v1.7.2)

---
updated-dependencies:
- dependency-name: scipy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:01:38 +00:00
dependabot[bot]
ab06584a3e Bump numpy from 1.21.3 to 1.21.4
Bumps [numpy](https://github.com/numpy/numpy) from 1.21.3 to 1.21.4.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.21.3...v1.21.4)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:01:32 +00:00
dependabot[bot]
a2c12f15f1 Bump ccxt from 1.60.11 to 1.60.68
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.60.11 to 1.60.68.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.60.11...1.60.68)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:01:25 +00:00
dependabot[bot]
d0199b6014 Bump coveralls from 3.2.0 to 3.3.0
Bumps [coveralls](https://github.com/TheKevJames/coveralls-python) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/TheKevJames/coveralls-python/releases)
- [Changelog](https://github.com/TheKevJames/coveralls-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TheKevJames/coveralls-python/compare/3.2.0...3.3.0)

---
updated-dependencies:
- dependency-name: coveralls
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:01:19 +00:00
dependabot[bot]
dbc863bcdf Bump jsonschema from 4.1.2 to 4.2.1
Bumps [jsonschema](https://github.com/Julian/jsonschema) from 4.1.2 to 4.2.1.
- [Release notes](https://github.com/Julian/jsonschema/releases)
- [Changelog](https://github.com/Julian/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/Julian/jsonschema/compare/v4.1.2...v4.2.1)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:01:14 +00:00
dependabot[bot]
c54cf63bae Bump prompt-toolkit from 3.0.21 to 3.0.22
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.21 to 3.0.22.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.21...3.0.22)

---
updated-dependencies:
- dependency-name: prompt-toolkit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:01:06 +00:00
Matthias
c11e1a84e4 Fix wrong logging
detected in #5856
2021-11-07 15:41:04 +01:00
Matthias
de4bc7204d Update documentation to clarify new behaviour 2021-11-07 15:36:43 +01:00
Matthias
a08dd17bc1 Use startup_candle-count to determine call count 2021-11-07 13:10:40 +01:00
Matthias
9fa64c2647 Allow multiple calls to get more candles in live-run 2021-11-07 11:31:59 +01:00
Matthias
fb6ba62158 Add default to "is_new_pair" 2021-11-07 11:08:30 +01:00
Matthias
1dd6872b80 Merge pull request #5843 from Theagainmen/patch-2
Update warning message open trades
2021-11-07 11:07:16 +01:00
Matthias
4595c1e73c Slightly reformat to simplify new change 2021-11-07 10:55:11 +01:00
Matthias
6cc3f65a83 Add --trading-mode parameter 2021-11-07 10:52:20 +01:00
Matthias
11b77cf94c Update test to new list-pairs format 2021-11-07 10:43:00 +01:00
Matthias
bfe3760f68 Add tests for margin mode 2021-11-07 10:43:00 +01:00
Matthias
0dd9a277d3 improve market_is_tradable tests 2021-11-07 10:43:00 +01:00
Matthias
534b0a5911 Some tests for new market checking 2021-11-07 10:43:00 +01:00
Matthias
3fac5c5bcd Update list-markets to work for futures/margin as well 2021-11-07 10:43:00 +01:00
Matthias
8990097d6f Enrich markets mock with "type" and "spot" info 2021-11-07 10:43:00 +01:00
Matthias
bfca9e7c09 Merge pull request #5853 from samgermain/okex
Added okex exchange class futures properties
2021-11-07 08:30:47 +01:00
Sam Germain
252e45ebf2 Merge branch 'feat/short' into funding-fee-dry-run 2021-11-06 22:46:00 -06:00
Sam Germain
04dc14a74c Added okex exchange class futures properties 2021-11-06 22:43:02 -06:00
Sam Germain
0c2501e11b Safer keys for funding_rate and mark_price dictionaries, based on rounding down the hour 2021-11-06 22:31:38 -06:00
Sam Germain
8bfcf4ee09 Fixed breaking exchange tests from _get_funding_fee_dates, and commented out kraken get_funding_fees tests 2021-11-06 22:05:38 -06:00
Sam Germain
b88482b2e9 Fixed millisecond timestamp issue errors with funding fees 2021-11-06 21:45:35 -06:00
Sam Germain
48b34c8fd0 Fixed issues with funding-fee being miscalculated on trade objects in freqtradebot 2021-11-06 21:03:18 -06:00
Sam Germain
f795288d90 Fixed timestamp/datetime issues for mark price, funding rate and _get_funding_fee_dates 2021-11-06 20:48:03 -06:00
Sam Germain
6e912c1053 Updated _get_funding_fee method names, added kraken._get_funding_fee 2021-11-06 17:39:21 -06:00
Matthias
25fcab0794 Enhance /show_config endpoint 2021-11-06 16:20:18 +01:00
Matthias
fef7da03b2 Merge pull request #5850 from freqtrade/timeout_forcesell
multiple exit-timeouts can trigger emergencysell
2021-11-06 16:20:06 +01:00
Matthias
66220d6f9f Merge pull request #5846 from Merinorus/5527-show_average_profit_in_overwiew
Add /weekly and /monthly to Telegram (#5527)
2021-11-06 15:43:34 +01:00
Matthias
e3a368a74e Merge pull request #5668 from samgermain/docs
Docs for leverage
2021-11-06 15:42:32 +01:00
Matthias
4f5c5b6982 Clarify timeout documentation 2021-11-06 15:29:05 +01:00
Matthias
ebc38159b8 Merge branch 'develop' into feat/short 2021-11-06 15:24:52 +01:00
Antoine Merino
d0e192e20f Fix naive timezone for /daily command 2021-11-06 13:14:15 +01:00
Matthias
f7dc47b1c8 Add test for exit_timeout_count 2021-11-06 13:10:41 +01:00
Antoine Merino
d5acd979dc Move dev-only requirement 2021-11-06 13:10:22 +01:00
Antoine Merino
3c33b48fd5 Fix naive timezones 2021-11-06 13:09:15 +01:00
Sam Germain
cb97c6f388 Updated time to utc in test_update_funding_fees, some funding rate key errors because a timestamp is likely not in utc 2021-11-06 05:56:58 -06:00
Sam Germain
fd63fa7dda Updated test_update_funding_fees to compile fine but the assertion is incorrect 2021-11-06 05:42:41 -06:00
Matthias
7a907a7636 Add Emergencyselling after X timeouts have been reached 2021-11-06 11:48:49 +01:00
Rokas Kupstys
98b475a00b Use lambdas instead of a static number of side-effects. 2021-11-06 10:23:46 +02:00
Antoine Merino
da4344d216 Remove line breaks
Signed-off-by: Antoine Merino <antoine.merino.dev@gmail.com>
2021-11-05 22:52:04 +01:00
Antoine Merino
8eabdd659f Fix missing CallbackQueryHandler
Signed-off-by: Antoine Merino <antoine.merino.dev@gmail.com>
2021-11-05 22:51:35 +01:00
Antoine Merino
77f3dabd15 Merge remote-tracking branch 'origin/5527-show_average_profit_in_overwiew' into 5527-show_average_profit_in_overwiew
# Conflicts:
#	freqtrade/rpc/rpc.py
#	requirements.txt
#	tests/rpc/test_rpc_telegram.py
2021-11-05 22:37:42 +01:00
Antoine Merino
70253258f0 Test /monthly & clean
Signed-off-by: Antoine Merino <antoine.merino.dev@gmail.com>
2021-11-05 22:33:06 +01:00
Antoine Merino
87634f0409 /weekly and /monthly documentation
Signed-off-by: Antoine Merino <antoine.merino.dev@gmail.com>
2021-11-05 21:07:29 +01:00
Antoine Merino
459ff9692d Add /weekly and /monthly to Telegram RPC
/weekly now list weeks starting from monday instead of rolling weeks.
/monthly now list months starting from the 1st.

Signed-off-by: Antoine Merino <antoine.merino.dev@gmail.com>
2021-11-05 21:07:28 +01:00
Antoine Merino
5f40158c0b WIP Add /weekly and /monthly to Telegram RPC
Related to "Show average profit in overview" (#5527)

Signed-off-by: Antoine Merino <antoine.merino.dev@gmail.com>
2021-11-05 21:07:19 +01:00
Antoine Merino
a8651b0dcd /weekly and /monthly documentation
Signed-off-by: Antoine Merino <antoine.merino.dev@gmail.com>
2021-11-05 20:44:01 +01:00
Antoine Merino
15616d75ad Add /weekly and /monthly to Telegram RPC
/weekly now list weeks starting from monday instead of rolling weeks.
/monthly now list months starting from the 1st.

Signed-off-by: Antoine Merino <antoine.merino.dev@gmail.com>
2021-11-05 20:24:40 +01:00
Matthias
d99eaccb5a Fix exception when using okex
closes #5842
2021-11-05 19:47:13 +01:00
Matthias
ae3b53014d Add failing test for OKEX failure
part of #5842
2021-11-05 19:44:02 +01:00
Matthias
60a5ded532 Don't convert telegram chat_id
closes #5840
2021-11-05 19:27:54 +01:00
Theagainmen
2115a3ed12 Update warning message open trades
This shouldn't confuse user when just reloading their bot.
2021-11-05 18:49:10 +01:00
Sam Germain
7171975a4f Removed interest formulas from docs 2021-11-05 01:59:54 -06:00
Matthias
ca2e888801 improve documentation formatting 2021-11-05 01:59:36 -06:00
Sam Germain
b620d46958 Updated formatting leverage.md 2021-11-05 01:56:35 -06:00
Sam Germain
b4de68e1bc Updated docs to include liquidation, own definitions 2021-11-05 01:56:16 -06:00
Sam Germain
68810eb4f3 Fixed warning 2021-11-05 01:56:16 -06:00
Sam Germain
4a0a215c45 moved lev docs to own file, updated config 2021-11-05 01:56:16 -06:00
Sam Germain
449710d662 Added collateral example 2021-11-05 01:56:16 -06:00
Sam Germain
2714c02842 Added docs for leverage and trading mode 2021-11-05 01:56:16 -06:00
Antoine Merino
ffc2de8d33 WIP Add /weekly and /monthly to Telegram RPC
Related to "Show average profit in overview" (#5527)

Signed-off-by: Antoine Merino <antoine.merino.dev@gmail.com>
2021-11-04 23:02:13 +01:00
Matthias
781f8a059c Merge pull request #5835 from freqtrade/okex_support
Add official Okex support
2021-11-04 20:03:19 +01:00
Matthias
26e5418519 Merge pull request #5834 from raph92/patch-4
Update optimize_reports
2021-11-04 16:56:21 +01:00
raphael
ae2343db93 Update optimize_reports
Update show_backtest_reults() to preserve backwards compatibility by fixing KeyError: 'results_per_buy_tag' for older hyperopt result files.
2021-11-04 10:25:13 -04:00
Matthias
eb280798d8 Merge pull request #5832 from samgermain/setup
setup.sh - Redhat
2021-11-04 15:23:48 +01:00
Sam Germain
10e839c17e Update setup.sh
python versions 3.7 to 3.9
2021-11-04 07:26:17 -06:00
Sam Germain
5b9a168ca9 removed build-essential from redhat install 2021-11-04 00:44:58 -06:00
Matthias
17ecfda2e8 Merge pull request #5710 from theluxaz/freqtrade-development
Added SELL_TAG for trading, backtesting and telegram
2021-11-04 07:13:06 +01:00
Matthias
c061b576a9 OKEX Notes 2021-11-04 06:22:31 +01:00
Sam Germain
8a4236198f Added test_update_funding_fees in freqtradebot, test currently fails 2021-11-03 22:52:37 -06:00
Matthias
431b96de98 Merge branch 'develop' into pr/theluxaz/5710 2021-11-03 19:43:36 +01:00
Matthias
048db4f509 Enhance "new exchange" documentation 2021-11-03 19:27:17 +01:00
Matthias
437e5f0645 Fix officially supported exchange list 2021-11-03 19:20:39 +01:00
Matthias
6fb0866350 Add OKEX to list of officially supported exchanges 2021-11-03 19:19:27 +01:00
Matthias
a1e8878030 Merge pull request #5826 from Theagainmen/patch-1
[docs] Update RateLimit value [small]
2021-11-03 17:06:01 +01:00
Theagainmen
ce597d12d9 Update exchanges.md
Fix 3100ms to 3.1s in docs, instead of the 0.2s
2021-11-03 15:04:45 +01:00
Matthias
f60d101076 Some finetuning for OKEX 2021-11-03 07:12:42 +01:00
Matthias
1fefb132e0 Improve wording in documentation 2021-11-02 20:26:38 +01:00
Matthias
161a3fac15 Run exchange-enabled tests against okex 2021-11-02 20:08:56 +01:00
Matthias
e78df59e30 Configure candle length for OKEX 2021-11-02 19:49:53 +01:00
Theagainmen
f365e68706 [docs] Update RateLimit value [small]
## Summary
Fix very small mistake in docs, that might confuse people. Let me know if this is the correct value now, there is still another 3100 in there, which I think makes sense there and is correct.

## Quick changelog
Changed the `rateLimit` 3100 value to 200, to match the 200ms and thus 0.2s delay.
2021-11-01 23:07:16 +01:00
Matthias
7ae9b90174 Further clarify backtesting trailing stop logic
part of #5816
2021-11-01 20:12:34 +01:00
Matthias
3056be3a1d document prerequisites for exchange listing 2021-11-01 20:04:52 +01:00
Sam Germain
3de42da29a All funding fee test_exchange tests pass 2021-11-01 07:52:40 -06:00
Matthias
74e8b28991 Improve FAQ with outdated history message
closes #5819
2021-11-01 13:54:12 +01:00
Matthias
a16328f372 Don't force timeframe in config in config generator 2021-11-01 13:44:26 +01:00
Sam Germain
863e0bf837 Adding 1am tests to funding_fee_dates 2021-11-01 06:40:20 -06:00
Sam Germain
74b6335acf Adding timezone utc to test__get_funding_fee_dates 2021-11-01 06:34:22 -06:00
Sam Germain
ba95172d07 Finished test_calculate_funding_fees 2021-11-01 06:28:03 -06:00
Matthias
6623dfe7da Improve CORS documentation 2021-11-01 11:07:06 +01:00
Sam Germain
765ee5af50 Updated conftest funding_rate and mark_price 2021-11-01 02:51:59 -06:00
Matthias
4249fcefba Merge pull request #5150 from cryptomeisternox/backtesting-filter
Adding command for Filtering and print trades
2021-11-01 09:43:49 +01:00
Matthias
6934f37d16 Merge pull request #5822 from freqtrade/dependabot/pip/develop/mkdocs-material-7.3.6
Bump mkdocs-material from 7.3.4 to 7.3.6
2021-11-01 08:26:10 +01:00
Sam Germain
33b0778c0a updated exchange.calculate_funding_fees to have default close_date 2021-11-01 01:13:37 -06:00
Sam Germain
8b9dfafdf4 Tests for _get_funding_fee_dates 2021-11-01 01:09:57 -06:00
Sam Germain
edfc3377c5 Updated exchange._get_funding_fee_dates to use new method funding_fee_cutoff 2021-11-01 01:09:11 -06:00
Sam Germain
77d247e179 Created fixtures mark_ohlcv and funding_rate_history 2021-11-01 01:04:42 -06:00
Matthias
27dce9eeea Merge pull request #5820 from freqtrade/dependabot/pip/develop/filelock-3.3.2
Bump filelock from 3.3.1 to 3.3.2
2021-11-01 07:55:09 +01:00
Matthias
e34c62074b Merge pull request #5824 from freqtrade/dependabot/pip/develop/scikit-learn-1.0.1
Bump scikit-learn from 1.0 to 1.0.1
2021-11-01 07:54:53 +01:00
Matthias
2b1373966f Merge pull request #5821 from freqtrade/dependabot/pip/develop/ccxt-1.59.77
Bump ccxt from 1.59.2 to 1.59.77
2021-11-01 07:53:39 +01:00
Sam Germain
5c52b21346 Added tests for funding_fee_dry_run 2021-10-31 22:24:27 -06:00
dependabot[bot]
46d4418e85 Bump scikit-learn from 1.0 to 1.0.1
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 1.0 to 1.0.1.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.0...1.0.1)

---
updated-dependencies:
- dependency-name: scikit-learn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-01 03:01:23 +00:00
dependabot[bot]
45f7093e52 Bump mkdocs-material from 7.3.4 to 7.3.6
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.3.4 to 7.3.6.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.3.4...7.3.6)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-01 03:01:14 +00:00
dependabot[bot]
e2041ddb70 Bump ccxt from 1.59.2 to 1.59.77
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.59.2 to 1.59.77.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.59.2...1.59.77)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-01 03:01:10 +00:00
dependabot[bot]
3d59289b09 Bump filelock from 3.3.1 to 3.3.2
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/py-filelock/compare/3.3.1...3.3.2)

---
updated-dependencies:
- dependency-name: filelock
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-01 03:01:03 +00:00
Matthias
6b90b4a144 Test "get-signal" 2021-10-31 10:53:30 +01:00
Matthias
dffe76f109 Don't double-loop to generate profits 2021-10-31 10:49:56 +01:00
Matthias
c15f73aa1f Rename command to backtesting-show 2021-10-31 10:13:11 +01:00
Sam Germain
f6924aca40 removed get_funding_rate_history from gateio 2021-10-31 01:24:02 -06:00
Sam Germain
2bfc812618 moved mark_ohlcv_price in _ft_has 2021-10-31 00:53:36 -06:00
Matthias
c094ac5762 Merge branch 'develop' into feat/short 2021-10-30 19:45:19 +02:00
Matthias
20904f1ca4 Add tests for new command 2021-10-30 19:43:42 +02:00
Matthias
72ecb45d86 Add test for backtest_show logic 2021-10-30 16:53:48 +02:00
Matthias
650d6c276a Add documentation 2021-10-30 16:40:03 +02:00
Matthias
e8f85aed6b Merge pull request #5818 from freqtrade/fix/5816
Fix/5816
2021-10-30 16:36:46 +02:00
Matthias
d60001e886 Stoploss cannot be below candle low
fix #5816
2021-10-30 16:14:13 +02:00
Matthias
459a2239ce Fix candle ranges in backtesting test 2021-10-30 16:13:04 +02:00
Matthias
6cf140f8fb FIx testcases 2021-10-30 16:07:10 +02:00
Matthias
851062ca46 Rename backtest-filter to backtest_show 2021-10-30 10:53:18 +02:00
Matthias
f472709438 Add option to show sorted pairlist
Allows easy copy/pasting of the pairlist to a configuration
2021-10-30 10:50:40 +02:00
Matthias
0f3809345a Remove backtest-path parameter 2021-10-30 10:28:12 +02:00
Matthias
6f1e719216 Merge branch 'develop' into pr/cryptomeisternox/5150 2021-10-30 10:26:05 +02:00
Matthias
c34b8a95d7 Merge pull request #5798 from incrementby1/personal-branch
Add function to unlock PairLocks by reason
2021-10-30 10:15:21 +02:00
Matthias
c579fcfc19 Add tests and documentation for unlock_reason 2021-10-30 09:51:09 +02:00
Sam Germain
0ea8957ccc removed ftx get_mark_price_history, added variable mark_ohlcv_price, used fetch_ohlcv instead of fetch_mark_ohlcv inside get_mark_price_history 2021-10-29 20:07:24 -06:00
Sam Germain
a4892654da Removed params from _get_mark_price_history 2021-10-29 19:37:02 -06:00
Matthias
201fe108bc Merge pull request #5607 from TreborNamor/develop
a new hyperopt loss created that uses calmar ratio
2021-10-29 09:20:44 +02:00
Matthias
240923341b Reformat telegram test 2021-10-29 07:05:02 +02:00
Matthias
5cdae2ce3f Remove CalmarDaily hyperopt loss 2021-10-29 06:53:40 +02:00
incrementby1
e9d71f26b3 small changes 2021-10-29 00:03:20 +02:00
incrementby1
658006e7ee removed wrong use of map and filter function 2021-10-28 23:29:26 +02:00
Matthias
dadf015c23 Merge pull request #5805 from freqtrade/new_release
New release 2021.10
2021-10-28 20:49:51 +02:00
theluxaz
560802c326 Added tests for the new rpc/telegram functions 2021-10-28 21:39:42 +03:00
Sam Germain
02ab3b1697 Switched mark_price endTime to until 2021-10-28 07:26:36 -06:00
Sam Germain
0b12107ef8 Updated error message in fetchFundingRateHistory 2021-10-28 07:22:47 -06:00
Sam Germain
44d9a07acd Fixed _get_funding_fee_dates method 2021-10-28 07:20:45 -06:00
Sam Germain
956352f041 Removed name_for_futures_market 2021-10-28 07:19:46 -06:00
incrementby1
02e69e1667 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

Changes to models.py:
	- changed string representation of Pairlock to also contain reason and active-state
2021-10-28 15:16:07 +02:00
Matthias
335412a3a8 Improve wording of FAQ entry 2021-10-28 07:59:28 +02:00
Matthias
f280397fd7 Add FAQ section about Fees
closes #5807
2021-10-28 07:51:32 +02:00
Matthias
98ed7edb11 Version bump to 2021.10 2021-10-28 06:21:40 +02:00
Matthias
8dd7d134f2 Merge branch 'stable' into new_release 2021-10-28 06:20:33 +02:00
incrementby1
dc605e29aa removed empty lines for flake8 2021-10-27 21:04:08 +02:00
Matthias
92130837a9 Improve and clarify informative pairs documentation 2021-10-27 19:58:29 +02:00
Matthias
892a1ca60c Merge pull request #5804 from JackBananas/patch-1
Update data-download.md
2021-10-27 19:32:37 +02:00
JackBananas
e2b64a750f Update data-download.md
Minor change due to a misleading sentence
2021-10-27 17:14:26 +02:00
incrementby1
2e7d08612e Merge branch 'personal-branch' of https://github.com/incrementby1/freqtrade into personal-branch 2021-10-27 16:03:05 +02:00
incrementby1
2eb33707c9 Undo changes 2021-10-27 15:58:41 +02:00
incrementby1
a50bde10de Merge https://github.com/freqtrade/freqtrade into personal-branch 2021-10-27 15:52:10 +02:00
incrementby1
91b9e5ce68 Delete StackingDemo.py 2021-10-27 12:43:00 +02:00
incrementby1
c1b5dcd756 Delete freqtradebot.py 2021-10-27 12:42:18 +02:00
incrementby1
6b17094c6f Delete configuration.py 2021-10-27 12:41:49 +02:00
incrementby1
51c925f9f3 Delete StackingConfig.json 2021-10-27 12:40:26 +02:00
Matthias
f80d3d48e4 Add default to minimal_roi to avoid failures
closes #5796
2021-10-27 06:33:49 +02:00
theluxaz
21ab83163d Quick import/clarity fix 2021-10-27 01:35:47 +03:00
theluxaz
e4e75d4861 Added test data for buy_tag/sell_reason testing 2021-10-27 01:29:19 +03:00
Sam Germain
a2b1838c60 Merge branch 'feat/short' into funding-fee-dry-run 2021-10-25 22:00:09 -06:00
incrementby1
9c6cbc025a Update StackingDemo.py 2021-10-26 00:34:01 +02:00
incrementby1
9f6e4c6c0e uncomment 2021-10-26 00:31:17 +02:00
incrementby1
ae06899694 removed commenting 2021-10-26 00:29:11 +02:00
incrementby1
c3f3bdaa2a 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
2021-10-26 00:04:40 +02:00
theluxaz
b51f946ee0 Fixed models and rpc performance functions, added skeletons for tests. 2021-10-25 23:43:22 +03:00
Matthias
20a61e03da Merge pull request #5786 from SimonEbner/clean_up_file_handles
Clean up file handles
2021-10-25 19:49:07 +02:00
Sam Germain
d1e2a53267 Added centOS support to setup.sh script 2021-10-25 03:20:41 -06:00
Sam Germain
7ff16997e9 Wrote echo block method for setup script 2021-10-25 03:19:49 -06:00
Robert Roman
88b96d5d1b Update hyperopt_loss_calmar.py 2021-10-25 00:45:10 -05:00
Matthias
029ddd23c1 Merge pull request #5791 from freqtrade/dependabot/pip/develop/numpy-1.21.3
Bump numpy from 1.21.2 to 1.21.3
2021-10-25 07:20:06 +02:00
Matthias
262f186a37 . 2021-10-25 07:19:55 +02:00
Matthias
33d75e9963 Merge pull request #5790 from freqtrade/dependabot/pip/develop/arrow-1.2.1
Bump arrow from 1.2.0 to 1.2.1
2021-10-25 07:07:50 +02:00
Matthias
cea251c83c Clarify documentation for /forcebuy
closes #5783
2021-10-25 06:46:02 +02:00
dependabot[bot]
4e88bd07fa Bump numpy from 1.21.2 to 1.21.3
Bumps [numpy](https://github.com/numpy/numpy) from 1.21.2 to 1.21.3.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.21.2...v1.21.3)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 04:40:30 +00:00
dependabot[bot]
538d9e8b37 Bump arrow from 1.2.0 to 1.2.1
Bumps [arrow](https://github.com/arrow-py/arrow) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/arrow-py/arrow/releases)
- [Changelog](https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/arrow-py/arrow/compare/1.2.0...1.2.1)

---
updated-dependencies:
- dependency-name: arrow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 04:40:24 +00:00
Matthias
478013a306 Merge pull request #5792 from freqtrade/dependabot/pip/develop/ccxt-1.59.2
Bump ccxt from 1.58.47 to 1.59.2
2021-10-25 06:39:25 +02:00
Matthias
0e72a901cc Merge pull request #5789 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.26
Bump sqlalchemy from 1.4.25 to 1.4.26
2021-10-25 06:39:01 +02:00
Matthias
2979679db4 Merge pull request #5793 from freqtrade/dependabot/pip/develop/jsonschema-4.1.2
Bump jsonschema from 4.1.0 to 4.1.2
2021-10-25 06:38:33 +02:00
Matthias
1a40e02ace Merge pull request #5788 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.21
Bump prompt-toolkit from 3.0.20 to 3.0.21
2021-10-25 06:38:15 +02:00
dependabot[bot]
826d4eb2f4 Bump jsonschema from 4.1.0 to 4.1.2
Bumps [jsonschema](https://github.com/Julian/jsonschema) from 4.1.0 to 4.1.2.
- [Release notes](https://github.com/Julian/jsonschema/releases)
- [Changelog](https://github.com/Julian/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/Julian/jsonschema/compare/v4.1.0...v4.1.2)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 03:01:33 +00:00
dependabot[bot]
3d90305f8e Bump ccxt from 1.58.47 to 1.59.2
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.58.47 to 1.59.2.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.58.47...1.59.2)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 03:01:29 +00:00
dependabot[bot]
b50b38f049 Bump sqlalchemy from 1.4.25 to 1.4.26
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.25 to 1.4.26.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 03:01:10 +00:00
dependabot[bot]
520c5687aa Bump prompt-toolkit from 3.0.20 to 3.0.21
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.20 to 3.0.21.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/commits)

---
updated-dependencies:
- dependency-name: prompt-toolkit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 03:01:05 +00:00
Simon Ebner
f7926083ca Clean up unclosed file handles
Close all file handles that are left dangling to avoid warnings such as

```
ResourceWarning: unclosed file <_io.TextIOWrapper
name='...' mode='r' encoding='UTF-8'> params = json_load(filename.open('r'))
```
2021-10-24 23:15:05 +02:00
Matthias
4539170424 Merge pull request #5776 from SimonEbner/performance_decimalspace
Improve performance of decimalspace.py
2021-10-24 19:27:24 +02:00
Simon Ebner
df033d92ef Improve performance of decimalspace.py
decimalspace.py is heavily used in the hyperoptimization. The following
benchmark code runs an optimization which is taken from optimizing a
real strategy (wtc).
The optimized version takes on my machine approx. 11/12s compared to the
original 32s. Results are equivalent in both cases.

```
import freqtrade.optimize.space
import numpy as np
import skopt
import timeit

def init():
    Decimal = freqtrade.optimize.space.decimalspace.SKDecimal
    Integer = skopt.space.space.Integer
    dimensions = [Decimal(low=-1.0,
        high=1.0,
        decimals=4,
        prior='uniform',
        transform='identity')] * 20

    return skopt.Optimizer(
        dimensions,
        base_estimator="ET",
        acq_optimizer="auto",
        n_initial_points=5,
        acq_optimizer_kwargs={'n_jobs': 96},
        random_state=0,
        model_queue_size=10,
    )

def test():
    opt = init()
    actual = opt.ask(n_points=2)
    expected = [[
        0.7515, -0.4723, -0.6941, -0.7988, 0.0448, 0.8605, -0.108, 0.5399,
        0.763, -0.2948, 0.8345, -0.7683, 0.7077, -0.2478, -0.333, 0.8575,
        0.6108, 0.4514, 0.5982, 0.3506
    ], [
        0.5563, 0.7386, -0.6407, 0.9073, -0.5211, -0.8167, -0.3771,
        -0.0318, 0.2861, 0.1176, 0.0943, -0.6077, -0.9317, -0.5372,
        -0.4934, -0.3637, -0.8035, -0.8627, -0.5399, 0.6036
    ]]

    absdiff = np.max(np.abs(np.asarray(expected) - np.asarray(actual)))
    assert absdiff < 1e-5

def time():
    opt = init()
    print('dt', timeit.timeit("opt.ask(n_points=20)", globals=locals()))

if __name__ == "__main__":
    test()
    time()
```
2021-10-24 18:14:24 +02:00
Matthias
22dd2ca003 Fix mypy type errors 2021-10-24 15:18:29 +02:00
Matthias
17432b2823 Improve some stylings 2021-10-24 09:15:05 +02:00
Matthias
5f309627ea Update tests for Calmar ratio 2021-10-24 09:01:13 +02:00
Matthias
dffb4c5d53 Merge branch 'develop' into pr/TreborNamor/5607 2021-10-24 08:55:10 +02:00
Matthias
4966619f1d Merge pull request #5773 from samgermain/gateio-futures
Gateio futures
2021-10-24 08:45:24 +02:00
Sam Germain
60478cb213 Add fill_leverage_brackets and get_max_leverage back in 2021-10-23 22:16:51 -06:00
Sam Germain
d99e0dac7b Added name for futures market property 2021-10-23 21:59:47 -06:00
Sam Germain
3eda9455b9 Added dry run capability to funding-fee 2021-10-23 21:59:47 -06:00
Sam Germain
2533d3b420 Added get_funding_rate_history method to exchange 2021-10-23 21:59:41 -06:00
Sam Germain
ef8b617eb2 gateio, ftx and binance all use same funding fee formula 2021-10-23 21:59:03 -06:00
Sam Germain
badc0fa445 Adjusted _get_funding_fee_method 2021-10-23 21:58:57 -06:00
Sam Germain
cba0a8cee6 adjusted funding fee formula binance 2021-10-23 21:58:17 -06:00
Sam Germain
2a26c6fbed Added backtesting methods back in 2021-10-23 21:33:37 -06:00
Sam Germain
ed91516f90 Changed future to swap 2021-10-23 14:10:09 -06:00
Matthias
b4bedc22d7 Merge pull request #5777 from SimonEbner/pathlib_stem
Use pathlib.stem instead of str(x).ends_with
2021-10-23 19:29:18 +02:00
Simon Ebner
fde10f5395 Use pathlib.stem instead of str(x).ends_with 2021-10-23 12:26:07 +02:00
Sam Germain
1fa2600ee2 Added gateio to test__ccxt_config 2021-10-22 11:52:05 -06:00
Sam Germain
167f9aa8d9 Added gateio futures support, and added gatio to test_exchange exchanges variable 2021-10-22 11:52:05 -06:00
Sam Germain
aed22f7dad Merge branch 'develop' into feat/short 2021-10-22 11:45:27 -06:00
Matthias
21141bdcb3 Merge pull request #5732 from samgermain/new-max-lev
New max lev
2021-10-22 19:30:58 +02:00
Sam Germain
f07555fc84 removed binance constructor, added fill_leverage_brackets call to exchange constructor 2021-10-22 06:37:56 -06:00
Matthias
78724e304e Merge branch 'develop' into pr/theluxaz/5710 2021-10-21 17:46:39 +02:00
theluxaz
0e085298e9 Fixed test failures. 2021-10-21 17:25:38 +03:00
Matthias
96f99699e0 Merge pull request #4606 from rextea/add_days_breakdown_to_backtesting_summary
Add days breakdown table to backtesting
2021-10-21 13:56:30 +02:00
Matthias
053fb076e4 Add documentation for breakdown command 2021-10-21 10:57:23 +02:00
Matthias
e458c9867a Styling fixes 2021-10-21 07:45:15 +02:00
Matthias
7b5346b984 Add test for breakdown-stats 2021-10-21 07:11:39 +02:00
Matthias
fa028c2134 Support day/week/month breakdowns 2021-10-21 06:58:40 +02:00
Matthias
7197f4ce77 Don't show daily % profit (it's wrong) 2021-10-20 20:01:31 +02:00
Matthias
de5497c766 backtest_days cannot be below 1 2021-10-20 19:39:37 +02:00
Matthias
1267374c8a Small fixes to tests 2021-10-20 19:21:38 +02:00
theluxaz
905f3a1a50 Removed exit_tag from Trade objects. 2021-10-20 17:58:50 +03:00
Matthias
028e5de935 Remove space after @ decorator in tests 2021-10-20 16:53:24 +02:00
Sam Germain
0329da1a57 updated get_max_leverage to use new ccxt unified property 2021-10-20 08:36:48 -06:00
Sam Germain
3fffc315ac Merge branch 'develop' into feat/short 2021-10-20 08:11:53 -06:00
Matthias
79a91dc31b Merge pull request #5567 from samgermain/lev-freqtradebot
Lev freqtradebot
2021-10-20 15:48:07 +02:00
Matthias
dd59b23b49 Merge pull request #5763 from samgermain/test-ccxt-config
Test ccxt config
2021-10-20 15:41:26 +02:00
Sam Germain
8c80fb46c8 test__ccxt_config 2021-10-20 05:33:09 -06:00
Matthias
5454460227 Revert initial_points to 30
closes #5760
2021-10-20 07:46:15 +02:00
theluxaz
1fdc4425dd Changed exit_tag to be represented as sell_reason 2021-10-20 01:26:15 +03:00
Matthias
55b0216180 Allow StaticPairlist in non-first position
closes #5754
2021-10-19 19:48:56 +02:00
Matthias
42a4dfed28 Reallow bitstamp
revert #1984, related to #1983
2021-10-19 19:12:35 +02:00
GluTbl
00406ea7d5 Update backtesting.py
Support for custom entry-prices and exit-prices during backtesting.
2021-10-19 17:15:45 +05:30
Matthias
2995f9a347 Merge pull request #5726 from daniila/patch-1
How to run multiple instances with docker
2021-10-19 11:43:12 +02:00
theluxaz
5ecdd1d112 Merge branch 'develop' into freqtrade-development 2021-10-19 00:00:15 +03:00
theluxaz
69a59cdf37 Fixed flake 8, changed sell_tag to exit_tag and fixed telegram functions 2021-10-18 23:56:41 +03:00
daniila
f863f4fdfc Update advanced-setup.md
A note on having to use different database files, ports and telegram configs for each bot.
2021-10-18 23:49:59 +03:00
daniila
5d2e374099 Update docs/advanced-setup.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-10-18 23:38:45 +03:00
daniila
f9b1667478 Update docs/advanced-setup.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-10-18 23:36:47 +03:00
Matthias
0da5ef16e6 Remove unnecessary dependency 2021-10-18 19:16:56 +02:00
Matthias
ddba4e32d7 Fully remove flake8-type-annotations 2021-10-18 16:04:24 +02:00
Matthias
52bd761111 Merge pull request #5749 from freqtrade/dependabot/pip/develop/types-filelock-3.2.1
Bump types-filelock from 3.2.0 to 3.2.1
2021-10-18 09:51:45 +02:00
Matthias
711897cffa Merge pull request #5737 from freqtrade/dependabot/pip/develop/pytest-asyncio-0.16.0
Bump pytest-asyncio from 0.15.1 to 0.16.0
2021-10-18 09:51:15 +02:00
Matthias
1c6fc068c6 Merge pull request #5741 from freqtrade/dependabot/pip/develop/pandas-1.3.4
Bump pandas from 1.3.3 to 1.3.4
2021-10-18 09:30:25 +02:00
Matthias
925df4dfec Merge pull request #5743 from freqtrade/dependabot/pip/develop/mkdocs-material-7.3.4
Bump mkdocs-material from 7.3.2 to 7.3.4
2021-10-18 09:29:59 +02:00
Sam Germain
57d7009fd9 Added trading mode and collateral to constants.py 2021-10-18 01:21:41 -06:00
Sam Germain
faaa3ae9b1 Removed exit_short rpcmessagetype 2021-10-18 01:08:12 -06:00
dependabot[bot]
8a7ea65531 Bump types-filelock from 3.2.0 to 3.2.1
Bumps [types-filelock](https://github.com/python/typeshed) from 3.2.0 to 3.2.1.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-filelock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 07:06:05 +00:00
Matthias
0ef20a5b04 Merge pull request #5744 from freqtrade/dependabot/pip/develop/types-tabulate-0.8.3
Bump types-tabulate from 0.8.2 to 0.8.3
2021-10-18 09:05:06 +02:00
Sam Germain
053aecf111 reformatted check_handle_timedout 2021-10-18 01:01:29 -06:00
dependabot[bot]
3af55cc8c7 Bump pandas from 1.3.3 to 1.3.4
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.3.3 to 1.3.4.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/master/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.3.3...v1.3.4)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 06:58:47 +00:00
Matthias
0d7be62e62 Merge pull request #5752 from freqtrade/dependabot/pip/develop/ccxt-1.58.47
Bump ccxt from 1.57.94 to 1.58.47
2021-10-18 08:57:52 +02:00
dependabot[bot]
75e6a2d276 Bump mkdocs-material from 7.3.2 to 7.3.4
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.3.2 to 7.3.4.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.3.2...7.3.4)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 06:47:32 +00:00
Matthias
e00a71a3db Merge pull request #5751 from freqtrade/dependabot/pip/develop/mkdocs-1.2.3
Bump mkdocs from 1.2.2 to 1.2.3
2021-10-18 08:46:39 +02:00
Matthias
ef70ea3997 Merge pull request #5748 from freqtrade/dependabot/pip/develop/progressbar2-3.55.0
Bump progressbar2 from 3.53.3 to 3.55.0
2021-10-18 08:40:55 +02:00
dependabot[bot]
618f0ffe68 Bump types-tabulate from 0.8.2 to 0.8.3
Bumps [types-tabulate](https://github.com/python/typeshed) from 0.8.2 to 0.8.3.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-tabulate
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 06:38:42 +00:00
Matthias
5320ddc382 Merge pull request #5746 from freqtrade/dependabot/pip/develop/types-cachetools-4.2.4
Bump types-cachetools from 4.2.2 to 4.2.4
2021-10-18 08:37:56 +02:00
Sam Germain
e4682b78c5 updates suggested on github 2021-10-18 00:28:32 -06:00
dependabot[bot]
44e6e13429 Bump ccxt from 1.57.94 to 1.58.47
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.57.94 to 1.58.47.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.57.94...1.58.47)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 06:16:09 +00:00
dependabot[bot]
4b02749019 Bump mkdocs from 1.2.2 to 1.2.3
Bumps [mkdocs](https://github.com/mkdocs/mkdocs) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/mkdocs/mkdocs/releases)
- [Commits](https://github.com/mkdocs/mkdocs/compare/1.2.2...1.2.3)

---
updated-dependencies:
- dependency-name: mkdocs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 06:15:52 +00:00
Matthias
ff3bfa3d52 Merge pull request #5747 from freqtrade/dependabot/pip/develop/python-rapidjson-1.5
Bump python-rapidjson from 1.4 to 1.5
2021-10-18 08:15:01 +02:00
Matthias
dccce4855e Merge pull request #5740 from freqtrade/dependabot/pip/develop/pyjwt-2.3.0
Bump pyjwt from 2.2.0 to 2.3.0
2021-10-18 07:40:20 +02:00
Matthias
733d254644 Merge pull request #5742 from freqtrade/dependabot/pip/develop/wrapt-1.13.2
Bump wrapt from 1.13.1 to 1.13.2
2021-10-18 07:39:54 +02:00
dependabot[bot]
82684f5de9 Bump progressbar2 from 3.53.3 to 3.55.0
Bumps [progressbar2](https://github.com/WoLpH/python-progressbar) from 3.53.3 to 3.55.0.
- [Release notes](https://github.com/WoLpH/python-progressbar/releases)
- [Changelog](https://github.com/WoLpH/python-progressbar/blob/develop/CHANGES.rst)
- [Commits](https://github.com/WoLpH/python-progressbar/compare/v3.53.3...v3.55.0)

---
updated-dependencies:
- dependency-name: progressbar2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 05:19:03 +00:00
Matthias
bddbb474aa Merge pull request #5739 from freqtrade/dependabot/pip/develop/filelock-3.3.1
Bump filelock from 3.3.0 to 3.3.1
2021-10-18 07:18:58 +02:00
dependabot[bot]
69c98c4141 Bump python-rapidjson from 1.4 to 1.5
Bumps [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) from 1.4 to 1.5.
- [Release notes](https://github.com/python-rapidjson/python-rapidjson/releases)
- [Changelog](https://github.com/python-rapidjson/python-rapidjson/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-rapidjson/python-rapidjson/compare/v1.4...v1.5)

---
updated-dependencies:
- dependency-name: python-rapidjson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 05:18:47 +00:00
dependabot[bot]
035380d8a4 Bump types-cachetools from 4.2.2 to 4.2.4
Bumps [types-cachetools](https://github.com/python/typeshed) from 4.2.2 to 4.2.4.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 05:18:42 +00:00
Matthias
e6bbfaefe5 Merge pull request #5736 from freqtrade/dependabot/pip/develop/types-requests-2.25.11
Bump types-requests from 2.25.9 to 2.25.11
2021-10-18 07:18:30 +02:00
Matthias
c58126e9c5 Merge pull request #5738 from freqtrade/dependabot/pip/develop/flake8-4.0.1
Bump flake8 from 4.0.0 to 4.0.1
2021-10-18 07:18:06 +02:00
dependabot[bot]
d7756efe8b Bump wrapt from 1.13.1 to 1.13.2
Bumps [wrapt](https://github.com/GrahamDumpleton/wrapt) from 1.13.1 to 1.13.2.
- [Release notes](https://github.com/GrahamDumpleton/wrapt/releases)
- [Changelog](https://github.com/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst)
- [Commits](https://github.com/GrahamDumpleton/wrapt/compare/1.13.1...1.13.2)

---
updated-dependencies:
- dependency-name: wrapt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 03:01:28 +00:00
dependabot[bot]
b60371822f Bump pyjwt from 2.2.0 to 2.3.0
Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/commits)

---
updated-dependencies:
- dependency-name: pyjwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 03:01:19 +00:00
dependabot[bot]
e7a2672f07 Bump filelock from 3.3.0 to 3.3.1
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.3.0 to 3.3.1.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/py-filelock/compare/3.3.0...3.3.1)

---
updated-dependencies:
- dependency-name: filelock
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 03:01:17 +00:00
dependabot[bot]
9b0171ef37 Bump flake8 from 4.0.0 to 4.0.1
Bumps [flake8](https://github.com/pycqa/flake8) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/pycqa/flake8/releases)
- [Commits](https://github.com/pycqa/flake8/compare/4.0.0...4.0.1)

---
updated-dependencies:
- dependency-name: flake8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 03:01:14 +00:00
dependabot[bot]
12a041b466 Bump pytest-asyncio from 0.15.1 to 0.16.0
Bumps [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) from 0.15.1 to 0.16.0.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.15.1...v0.16.0)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 03:01:10 +00:00
dependabot[bot]
6be40cb7c3 Bump types-requests from 2.25.9 to 2.25.11
Bumps [types-requests](https://github.com/python/typeshed) from 2.25.9 to 2.25.11.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 03:01:07 +00:00
Matthias
00fc38a5dc Update setup.sh to correctly exit if ta-lib fails
part of #5734
2021-10-17 19:24:09 +02:00
Matthias
ad2c88b991 Reduce test-code duplication by importing functions 2021-10-17 17:00:25 +02:00
Matthias
e09ec6e6b3 Merge pull request #5733 from freqtrade/download_all
Download all
2021-10-17 16:50:41 +02:00
Matthias
7d8cd736b8 Support days-breakdown also for hyperopt results 2021-10-17 16:49:39 +02:00
Matthias
47bba331c1 Merge branch 'develop' into pr/rextea/4606 2021-10-17 16:29:31 +02:00
Matthias
28483a7952 Fix doc-link in developer docs 2021-10-17 16:10:15 +02:00
Matthias
d4d57f0002 Document expansion of --pairs, add download-inactive 2021-10-17 16:09:56 +02:00
Matthias
9bb2dd1851 Merge pull request #5694 from freqtrade/dependabot/pip/develop/fastapi-0.70.0
Bump fastapi from 0.68.1 to 0.70.0
2021-10-17 15:01:28 +02:00
Matthias
e23eb99abf Disable ability to use lookahead-biased vwap
closes #5782
2021-10-17 11:23:58 +02:00
Matthias
e8f98e473d Fix a few more tests 2021-10-17 11:08:54 +02:00
Matthias
198f3c5238 Merge branch 'feat/short' into pr/samgermain/5567 2021-10-17 10:41:03 +02:00
Matthias
69fdb8edfa Merge branch 'develop' into feat/short 2021-10-17 10:40:08 +02:00
Matthias
abd5c4f278 Convert additional test to USDT 2021-10-17 10:39:53 +02:00
Matthias
fb2c8f7621 Rollback after each request
This closes the transaction and avoids "sticking" transactions.
2021-10-17 10:30:06 +02:00
Matthias
41b5e5627b Update stoploss test 2021-10-17 09:54:38 +02:00
Matthias
bc10b451fe Revert wrong condition 2021-10-17 09:46:39 +02:00
Matthias
e19d95b63e Fix stoploss test 2021-10-17 09:00:10 +02:00
Matthias
29ad90f1e3 Merge pull request #5727 from Rikj000/docs/fix-mkdocs-darktheme-toggle
📝 `mkdocs.yml` - Fixed darktheme toggle
2021-10-17 08:37:34 +02:00
Rik Helsen
f61dc6d95a 📝 mkdocs.yml - Fixed darktheme toggle 2021-10-17 00:14:09 +02:00
daniila
5a9983086a How to run multiple instances with docker
Basic guide on how to run multiple instances using docker.
2021-10-17 00:24:00 +03:00
dependabot[bot]
89ca8abea9 Bump fastapi from 0.68.1 to 0.70.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.68.1 to 0.70.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.68.1...0.70.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-16 19:31:12 +02:00
Matthias
b1ee56a5ce Merge pull request #5724 from freqtrade/fix/5719
Make sure transactions are reset
2021-10-16 19:30:40 +02:00
Matthias
5ba1d66be7 Make sure transactions are reset
closes #5719
2021-10-16 17:57:51 +02:00
Matthias
dcefb3eb9c Fix delete_Trade api test 2021-10-16 16:48:35 +02:00
Matthias
7f1080368b Commit mock-trades to avoid errors in tests 2021-10-16 16:48:19 +02:00
Matthias
de5657a91b Fix test failing when UI is installed 2021-10-16 16:47:28 +02:00
Matthias
f120e0d256 Merge pull request #5716 from freqtrade/setupsh_fix
Don't build ta-lib in parallel, this causes failures
2021-10-15 10:31:32 +02:00
Matthias
fe9f597eab Don't build ta-lib in parallel, this causes failures 2021-10-15 10:11:25 +02:00
Matthias
794862a35a Merge pull request #5670 from sergeykhliustin/develop
Added min_profit param to PerformanceFilter
2021-10-14 19:57:36 +02:00
Matthias
c02a538187 Add documentation and log to PerformanceFilter 2021-10-14 19:36:34 +02:00
Sam Germain
962f63a19a fixed failing test_execute_trade_exit_custom_exit_price 2021-10-14 05:28:08 -06:00
Sam Germain
5fbe76cd7e isolated conditionals in interface stoploss method 2021-10-14 05:10:28 -06:00
Sam Germain
0afd76c183 Fixed failing test_execute_trade_exit_market_order 2021-10-14 04:45:48 -06:00
Sam Germain
2dc402fbf7 Fixed failing test_handle_trade 2021-10-14 04:05:50 -06:00
Sam Germain
b0ce9612f8 Fixed sell_profit_only failing 2021-10-14 03:52:29 -06:00
Matthias
0e7d903a6f Merge pull request #5644 from slyons/develop
Add ability to ignore unparameterized spaces
2021-10-14 08:07:07 +02:00
Matthias
fe8374f2a4 Test for non-failing missing hyperopt space 2021-10-14 07:06:51 +02:00
Sam Germain
bcbe8f229c Merge branch 'feat/short' into lev-freqtradebot 2021-10-13 19:02:57 -06:00
Sam Germain
bd488cc086 Merge branch 'develop' into feat/short 2021-10-13 17:56:40 -06:00
theluxaz
0bb7ea10ab Fixed minor header for backtesting 2021-10-14 01:34:30 +03:00
theluxaz
ed39b8dab0 fixed profit total calculation 2021-10-14 01:18:16 +03:00
theluxaz
8b2c14a6fa Readme fix 2021-10-14 01:15:43 +03:00
theluxaz
d341d85079 Refixed some files for the pull request 2021-10-14 01:13:28 +03:00
theluxaz
96cab22a8c Fixed some bugs for live sell_tags. 2021-10-14 01:03:15 +03:00
Matthias
3279ea568c Add new parameter to hyperopt docs 2021-10-13 19:57:42 +02:00
Matthias
aed919a05f Simplify "no-space-configured" error handling by moving it to hyperopt_auto 2021-10-13 19:54:35 +02:00
Matthias
aed138ba03 Merge pull request #5377 from samgermain/funding-fee
Funding Fee (Futures)
2021-10-13 19:04:14 +02:00
Matthias
2c6290a100 Small updates to prevent random test failures 2021-10-13 07:04:21 +02:00
Sam Germain
0dbad19b40 trading_mode default null in models.Trade 2021-10-12 20:34:19 -06:00
Sam Germain
82742cd659 Merge branch 'funding-fee' of https://github.com/samgermain/freqtrade into funding-fee 2021-10-12 20:29:10 -06:00
Sam Germain
0fcc7eca62 Added more tests to test_update_funding_fees 2021-10-12 20:28:46 -06:00
theluxaz
7067c43ff4 Merge branch 'main' of https://github.com/theluxaz/freqtrade into main 2021-10-13 02:20:30 +03:00
theluxaz
0f670189eb quick typo fix 2021-10-13 02:14:07 +03:00
theluxaz
3ee9674bb7 Update README.md 2021-10-13 02:07:45 +03:00
theluxaz
af74850e79 Update README.md 2021-10-13 02:07:23 +03:00
theluxaz
b151cf032b Merge branch 'develop' of https://github.com/theluxaz/freqtrade into main
# Conflicts:
#	freqtrade/freqtradebot.py
#	freqtrade/optimize/backtesting.py
2021-10-13 02:01:26 +03:00
theluxaz
02243b1a2b minifix 2021-10-13 01:34:29 +03:00
theluxaz
80b71790bc Added some bigfixes for sell_tag 2021-10-13 01:22:53 +03:00
theluxaz
c9edf3bf4a Updated the gitignore 2021-10-13 00:09:30 +03:00
theluxaz
b898f86364 Added sell_tag and buy/sell telegram performance functions 2021-10-13 00:02:28 +03:00
Matthias
532a9341d2 Fix migration issue 2021-10-12 20:41:48 +02:00
Matthias
0926beaf73 Merge pull request #5632 from freqtrade/dependabot/pip/develop/scikit-learn-1.0
Bump scikit-learn from 0.24.2 to 1.0
2021-10-12 20:04:29 +02:00
Matthias
f290ff5c9a Re-add schedule.run_pending 2021-10-12 19:10:38 +02:00
Matthias
8798ae5677 Version bump also scikit-optimize 2021-10-12 19:06:23 +02:00
Sam Germain
86cbd0039f Fixed bugs 2021-10-12 02:24:35 -06:00
Rokas Kupstys
437fadc258 Fix profitable trade registering as a loss due to fees. 2021-10-12 10:49:07 +03:00
Matthias
59ed11358f Merge pull request #5708 from freqtrade/ui_version_specify
Add version argument to freqUI installer
2021-10-12 07:16:34 +02:00
Matthias
ce9debe9fd Add version argument to freqUI installer 2021-10-12 06:44:07 +02:00
Matthias
952d83ad24 Reenable additional test 2021-10-11 20:36:08 +02:00
Matthias
7e958589b3 Merge pull request #5701 from freqtrade/dependabot/pip/develop/flake8-4.0.0
Bump flake8 from 3.9.2 to 4.0.0
2021-10-11 20:34:40 +02:00
Matthias
70000b5843 Use scheduler as Object, not the automatic Singleton 2021-10-11 20:28:23 +02:00
Matthias
396bc9b2e3 Version bump flake8-tidy-imports to 4.5.0 2021-10-11 20:00:53 +02:00
Sam Germain
2e7adb99da Fixed some breaking tests 2021-10-11 08:52:11 -06:00
Sam Germain
bdad604fab Added persistence futures tests 2021-10-11 07:48:31 -06:00
Sam Germain
01a9e90057 Added futures tests to test_persistence.test_calc_profit 2021-10-11 07:03:14 -06:00
Sam Germain
ae3688a18a Updated LocalTrade.calc_close_trade_value formula for shorting futures 2021-10-11 05:56:27 -06:00
Sam Germain
d5a1385fdc Changes described on github 2021-10-11 04:14:59 -06:00
Matthias
7b1e81689a Merge pull request #5704 from freqtrade/dependabot/pip/develop/mkdocs-material-7.3.2
Bump mkdocs-material from 7.3.1 to 7.3.2
2021-10-11 10:06:18 +02:00
Matthias
1649c00cb7 Merge pull request #5706 from freqtrade/dependabot/pip/develop/ccxt-1.57.94
Bump ccxt from 1.57.38 to 1.57.94
2021-10-11 10:05:53 +02:00
dependabot[bot]
fa00b52c47 Bump scikit-learn from 0.24.2 to 1.0
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 0.24.2 to 1.0.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/0.24.2...1.0)

---
updated-dependencies:
- dependency-name: scikit-learn
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 07:41:16 +00:00
Matthias
7d629d45c3 Merge pull request #5705 from freqtrade/dependabot/pip/develop/joblib-1.1.0
Bump joblib from 1.0.1 to 1.1.0
2021-10-11 09:40:27 +02:00
Matthias
f5a0e78c1b Merge pull request #5692 from freqtrade/dependabot/pip/develop/jsonschema-4.1.0
Bump jsonschema from 4.0.1 to 4.1.0
2021-10-11 09:39:24 +02:00
Sam Germain
855b26f846 Parametrized more time machine tests in test_update_funding_fees 2021-10-11 01:31:21 -06:00
dependabot[bot]
802599bdc9 Bump ccxt from 1.57.38 to 1.57.94
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.57.38 to 1.57.94.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.57.38...1.57.94)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 06:15:32 +00:00
dependabot[bot]
29371b2f28 Bump joblib from 1.0.1 to 1.1.0
Bumps [joblib](https://github.com/joblib/joblib) from 1.0.1 to 1.1.0.
- [Release notes](https://github.com/joblib/joblib/releases)
- [Changelog](https://github.com/joblib/joblib/blob/master/CHANGES.rst)
- [Commits](https://github.com/joblib/joblib/compare/1.0.1...1.1.0)

---
updated-dependencies:
- dependency-name: joblib
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 06:15:03 +00:00
Matthias
c4e967c003 Merge pull request #5696 from freqtrade/dependabot/pip/develop/jinja2-3.0.2
Bump jinja2 from 3.0.1 to 3.0.2
2021-10-11 08:14:59 +02:00
Matthias
8b2bad3366 Merge pull request #5698 from freqtrade/dependabot/pip/develop/arrow-1.2.0
Bump arrow from 1.1.1 to 1.2.0
2021-10-11 08:14:24 +02:00
Matthias
acc2760512 Merge pull request #5703 from freqtrade/dependabot/pip/develop/pyjwt-2.2.0
Bump pyjwt from 2.1.0 to 2.2.0
2021-10-11 08:13:32 +02:00
dependabot[bot]
90ea3d4440 Bump mkdocs-material from 7.3.1 to 7.3.2
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.3.1 to 7.3.2.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.3.1...7.3.2)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 05:18:24 +00:00
Matthias
9cb20241d9 Merge pull request #5697 from freqtrade/dependabot/pip/develop/cryptography-35.0.0
Bump cryptography from 3.4.8 to 35.0.0
2021-10-11 07:17:20 +02:00
dependabot[bot]
4921a4caec Bump jinja2 from 3.0.1 to 3.0.2
Bumps [jinja2](https://github.com/pallets/jinja) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.0.1...3.0.2)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 05:14:19 +00:00
dependabot[bot]
32174f8f90 Bump pyjwt from 2.1.0 to 2.2.0
Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.1.0...2.2.0)

---
updated-dependencies:
- dependency-name: pyjwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 05:14:08 +00:00
Matthias
01e7b08aa9 Merge pull request #5695 from freqtrade/dependabot/pip/develop/blosc-1.10.6
Bump blosc from 1.10.4 to 1.10.6
2021-10-11 07:13:07 +02:00
dependabot[bot]
afc086f33c Bump arrow from 1.1.1 to 1.2.0
Bumps [arrow](https://github.com/arrow-py/arrow) from 1.1.1 to 1.2.0.
- [Release notes](https://github.com/arrow-py/arrow/releases)
- [Changelog](https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/arrow-py/arrow/commits)

---
updated-dependencies:
- dependency-name: arrow
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 05:05:30 +00:00
dependabot[bot]
e467491dbe Bump jsonschema from 4.0.1 to 4.1.0
Bumps [jsonschema](https://github.com/Julian/jsonschema) from 4.0.1 to 4.1.0.
- [Release notes](https://github.com/Julian/jsonschema/releases)
- [Changelog](https://github.com/Julian/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/Julian/jsonschema/compare/v4.0.1...v4.1.0)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 05:05:23 +00:00
dependabot[bot]
3fdc62d29c Bump flake8 from 3.9.2 to 4.0.0
Bumps [flake8](https://github.com/pycqa/flake8) from 3.9.2 to 4.0.0.
- [Release notes](https://github.com/pycqa/flake8/releases)
- [Commits](https://github.com/pycqa/flake8/compare/3.9.2...4.0.0)

---
updated-dependencies:
- dependency-name: flake8
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 05:05:14 +00:00
Matthias
a51084f7a7 Merge pull request #5693 from freqtrade/dependabot/pip/develop/wrapt-1.13.1
Bump wrapt from 1.12.1 to 1.13.1
2021-10-11 07:04:35 +02:00
dependabot[bot]
5fb0401dca Bump cryptography from 3.4.8 to 35.0.0
Bumps [cryptography](https://github.com/pyca/cryptography) from 3.4.8 to 35.0.0.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/3.4.8...35.0.0)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 03:01:39 +00:00
dependabot[bot]
7323ffa25a Bump blosc from 1.10.4 to 1.10.6
Bumps [blosc](https://github.com/blosc/python-blosc) from 1.10.4 to 1.10.6.
- [Release notes](https://github.com/blosc/python-blosc/releases)
- [Changelog](https://github.com/Blosc/python-blosc/blob/master/RELEASE_NOTES.rst)
- [Commits](https://github.com/blosc/python-blosc/compare/v1.10.4...v1.10.6)

---
updated-dependencies:
- dependency-name: blosc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 03:01:31 +00:00
dependabot[bot]
57095d7167 Bump wrapt from 1.12.1 to 1.13.1
Bumps [wrapt](https://github.com/GrahamDumpleton/wrapt) from 1.12.1 to 1.13.1.
- [Release notes](https://github.com/GrahamDumpleton/wrapt/releases)
- [Changelog](https://github.com/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst)
- [Commits](https://github.com/GrahamDumpleton/wrapt/compare/1.12.1...1.13.1)

---
updated-dependencies:
- dependency-name: wrapt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 03:01:22 +00:00
Sam Germain
3b962433fb Switched shcedule to perform every 15 minutes 2021-10-10 02:55:04 -06:00
Sam Germain
81cf4653a9 Fixed failing test_process_trade_creation, test_order_book_depth_of_market, test_handle_stoploss_on_exchange_trailing 2021-10-09 17:35:57 -06:00
Sam Germain
94f0be1fa9 Added is_short=(signal == SignalDirection.SHORT) inside freqtradebot.create_trade 2021-10-09 16:32:22 -06:00
Sam Germain
9513650ffe Fixed failing test_handle_stoploss_on_exchange_trailing 2021-10-09 16:20:25 -06:00
Sam Germain
9a6ffff5eb Added cost to limit_sell_order_usdt_open, fixing some tests 2021-10-09 15:50:18 -06:00
Sam Germain
85e86ec09d Fixed failing test_check_handle_timedout_buy_usercustom 2021-10-09 15:14:33 -06:00
Sam Germain
4fc4007975 Fixed failing test_check_handle_timedout_buy 2021-10-09 14:57:10 -06:00
Sam Germain
729957572b updated strategy stop_loss_reached to work for shorts 2021-10-09 14:39:11 -06:00
Sam Germain
d7e6b842ba Fixed failing tests test_cancel_all_open_orders, test_order_book_ask_strategy, test_order_book_depth_of_market, test_disable_ignore_roi_if_buy_signal 2021-10-09 14:12:17 -06:00
Sam Germain
95be5121ec Added bibox and hitbtc funding fee times 2021-10-09 13:14:41 -06:00
Sam Germain
b83933a10a Added gateio and kucoin funding fee times 2021-10-09 13:09:11 -06:00
Sam Germain
057b048f31 Started added timezone offset stuff 2021-10-09 12:27:40 -06:00
Sam Germain
795d51b68c Switched scheduler to get funding fees every hour for any exchange 2021-10-09 11:27:26 -06:00
Sam Germain
39be675f1f Adjusted time to utc in schedule 2021-10-09 10:52:07 -06:00
Matthias
50439ac441 Merge pull request #5674 from jonny07/patch-4
Update docker_quickstart.md
2021-10-09 15:49:34 +02:00
Matthias
1a3b41ed97 Rephrase and simplify UI access section in docker quickstart 2021-10-09 15:35:39 +02:00
Matthias
fa9484a06b Merge branch 'develop' into pr/jonny07/5674 2021-10-09 15:29:24 +02:00
Matthias
cae8ff5949 Merge pull request #5623 from froggleston/rest_sysinfo
Add CPU,RAM sysinfo support to the REST API to help with bot system m…
2021-10-09 15:17:21 +02:00
Matthias
4d61e3866c Merge pull request #5684 from SmartManoj/patch-1
pypi installation
2021-10-09 10:49:39 +02:00
Matthias
2c68342140 Move pypi installation to documentation 2021-10-09 10:37:33 +02:00
Matthias
91ceaef02f Merge pull request #5678 from sidml/develop
Hyperopt loss function using max drawdown
2021-10-09 10:26:40 +02:00
Matthias
7b1c888665 Add FAQ entry for incomplete candles
closes #5687
2021-10-09 08:39:32 +02:00
sid
30bc96cf3f simplify expression 2021-10-09 06:36:23 +05:30
Matthias
11ec1d9b06 Revert previous commit 2021-10-08 20:22:07 +02:00
Matthias
482f4418c6 Clarify "required candle" message 2021-10-08 14:36:52 +02:00
மனோஜ்குமார் பழனிச்சாமி
1327c21d01 Update README.md 2021-10-07 19:12:09 +05:30
Robert Davey
f07eeddda0 Update api_schemas.py
Fix api schema for cpu_pct float List.
2021-10-07 12:04:42 +01:00
Sam Germain
7f7f377a90 updated a test, put in TODO-lev 2021-10-07 05:03:38 -06:00
Sam Germain
e367f84b06 Added more update_funding_fee tests, set exchange of default conf 2021-10-07 04:20:53 -06:00
Matthias
a1be6124f2 Don't set bid_last_balance if None in tests
part of #5681
2021-10-07 07:15:09 +02:00
Matthias
45b7a0c837 Add Test and docs for MaxDrawDownHyperOptLoss 2021-10-07 07:12:45 +02:00
Matthias
29863ad2bf Fix error when ask_last_balance is not set
closes #5181
2021-10-07 06:51:29 +02:00
sid
46c320513a use profit_abs 2021-10-07 08:07:07 +05:30
sid
93e4cf4006 Merge remote-tracking branch 'upstream/develop' into develop 2021-10-07 08:04:40 +05:30
Matthias
526bdaa2dc Recommend using 0.0.0.0 as listen address for docker 2021-10-06 20:14:59 +02:00
Matthias
65d4df938d Improve docker port api 2021-10-06 20:09:08 +02:00
Matthias
992cef56e6 Add test for sysinfo endpoint 2021-10-06 19:36:51 +02:00
Matthias
57ef25789e Fix style errors 2021-10-06 19:36:41 +02:00
sid
6ba46b38bd fix formatting 2021-10-06 13:46:05 +05:30
sid
c0d01dbc26 add max_drawdown loss 2021-10-06 13:24:27 +05:30
Matthias
a4a5c1aad0 Fix scheduling test (a little bit) 2021-10-06 07:08:28 +02:00
jonny07
949d616082 Update docker_quickstart.md
Got help in the discord chat to get the UI running, I think most people will need this...
2021-10-05 21:33:15 +02:00
Sam Germain
362c29c315 Added patch_get_signal(freqtrade, enter_long=False, enter_short=True, exit_short=True) a bunch 2021-10-05 03:15:28 -06:00
Sam Germain
d8ba3d8cde Added trade.is_short = is_short a lot 2021-10-05 02:16:17 -06:00
Sam Germain
c72aac4356 Added trade.is_short = is_short a lot 2021-10-05 02:13:29 -06:00
Sam Germain
29e582c6d9 Fixed time format for schedule and update_funding_fees conf is mocked better 2021-10-05 01:42:46 -06:00
froggleston
0db5c07314 Fix issues with sysinfo rpc/API code, add SysInfo api_schema 2021-10-05 00:10:39 +01:00
Matthias
92f8f231af Remove ratelimit from kucoin template 2021-10-04 20:22:41 +02:00
Matthias
7f4baab420 Remove explicit rateLimits, improve docs 2021-10-04 20:14:22 +02:00
Matthias
60e28a30f4 Merge pull request #5664 from freqtrade/dependabot/pip/develop/ccxt-1.57.38
Bump ccxt from 1.57.3 to 1.57.38
2021-10-04 19:29:28 +02:00
Matthias
f15922a168 Fix custom_stoploss in strategy template
closes #5658
2021-10-04 19:11:35 +02:00
Sergey Khliustin
07750518c3 Added min_profit param to PerformanceFilter 2021-10-04 18:49:57 +03:00
Sam Germain
928c4edace removed side from execute_trade_exit 2021-10-03 23:22:51 -06:00
Matthias
26d2b5b81f Merge pull request #5666 from freqtrade/dependabot/pip/develop/pytest-cov-3.0.0
Bump pytest-cov from 2.12.1 to 3.0.0
2021-10-04 07:21:20 +02:00
Matthias
ae46b516e6 Merge pull request #5665 from freqtrade/dependabot/pip/develop/mkdocs-material-7.3.1
Bump mkdocs-material from 7.3.0 to 7.3.1
2021-10-04 07:17:44 +02:00
Sam Germain
9046caa27c fixed test_update_trade_state_sell 2021-10-03 23:13:34 -06:00
Matthias
222a15922e Merge pull request #5667 from freqtrade/dependabot/pip/develop/types-cachetools-4.2.2
Bump types-cachetools from 4.2.0 to 4.2.2
2021-10-04 07:02:20 +02:00
Matthias
6e1e1e00c2 Fix mock going into nirvana 2021-10-04 06:59:08 +02:00
dependabot[bot]
f41fd4e88d Bump mkdocs-material from 7.3.0 to 7.3.1
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.3.0 to 7.3.1.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.3.0...7.3.1)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 04:40:24 +00:00
Matthias
5e195bdc0f Merge pull request #5661 from freqtrade/dependabot/pip/develop/pymdown-extensions-9.0
Bump pymdown-extensions from 8.2 to 9.0
2021-10-04 06:39:43 +02:00
dependabot[bot]
949f4fbbbf Bump types-cachetools from 4.2.0 to 4.2.2
Bumps [types-cachetools](https://github.com/python/typeshed) from 4.2.0 to 4.2.2.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 04:36:11 +00:00
Matthias
8f4b598ee2 Merge pull request #5663 from freqtrade/dependabot/pip/develop/jsonschema-4.0.1
Bump jsonschema from 3.2.0 to 4.0.1
2021-10-04 06:35:34 +02:00
Matthias
9491564148 Merge pull request #5662 from freqtrade/dependabot/pip/develop/types-filelock-3.2.0
Bump types-filelock from 0.1.5 to 3.2.0
2021-10-04 06:34:58 +02:00
Matthias
2a4fb992c3 Merge pull request #5659 from freqtrade/dependabot/pip/develop/filelock-3.3.0
Bump filelock from 3.0.12 to 3.3.0
2021-10-04 06:34:31 +02:00
dependabot[bot]
2b41066ab7 Bump pytest-cov from 2.12.1 to 3.0.0
Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 2.12.1 to 3.0.0.
- [Release notes](https://github.com/pytest-dev/pytest-cov/releases)
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v2.12.1...v3.0.0)

---
updated-dependencies:
- dependency-name: pytest-cov
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 03:01:29 +00:00
dependabot[bot]
0071d002b6 Bump ccxt from 1.57.3 to 1.57.38
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.57.3 to 1.57.38.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.57.3...1.57.38)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 03:01:22 +00:00
dependabot[bot]
35c4a0a188 Bump jsonschema from 3.2.0 to 4.0.1
Bumps [jsonschema](https://github.com/Julian/jsonschema) from 3.2.0 to 4.0.1.
- [Release notes](https://github.com/Julian/jsonschema/releases)
- [Changelog](https://github.com/Julian/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/Julian/jsonschema/compare/v3.2.0...v4.0.1)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 03:01:17 +00:00
dependabot[bot]
ff45d52d49 Bump types-filelock from 0.1.5 to 3.2.0
Bumps [types-filelock](https://github.com/python/typeshed) from 0.1.5 to 3.2.0.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-filelock
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 03:01:14 +00:00
dependabot[bot]
d220c55d40 Bump pymdown-extensions from 8.2 to 9.0
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 8.2 to 9.0.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/8.2...9.0)

---
updated-dependencies:
- dependency-name: pymdown-extensions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 03:01:11 +00:00
dependabot[bot]
0d9beaa3f3 Bump filelock from 3.0.12 to 3.3.0
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.0.12 to 3.3.0.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Commits](https://github.com/tox-dev/py-filelock/compare/v3.0.12...3.3.0)

---
updated-dependencies:
- dependency-name: filelock
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 03:01:04 +00:00
Sam Germain
2a2b759419 patch_get_signal test updates 2021-10-03 17:41:01 -06:00
Matthias
1c63d01cec Prevent using market-orders on gateio
GateIo does not support market orders on spot markets
2021-10-03 14:14:16 +02:00
Sam Germain
d75934ce92 'is_short' -> is_short: test_freqtradebot 2021-10-03 04:44:39 -06:00
Sam Germain
56ff0a95a7 Merge branch 'feat/short' into lev-freqtradebot 2021-10-03 02:26:41 -06:00
Sam Germain
70db228f24 Merge branch 'feat/short' into funding-fee 2021-10-03 02:15:54 -06:00
Sam Germain
dcb9ce9513 isort 2021-10-03 02:14:52 -06:00
Sam Germain
d3f7207fe6 Merge branch 'develop' into feat/short 2021-10-03 02:12:25 -06:00
Sam Germain
09ef0781a1 switching limit_buy_order_usdt and limit_sell_order_usdt to limit_order(enter_side[is_short]) and limit_order(exit_side[is_short]) 2021-10-03 01:52:58 -06:00
Matthias
f5e5203388 Use "round" to 12 digits for TickSize mode
Avoids float rounding problems, fix #5652
2021-10-03 09:49:55 +02:00
Matthias
e73f5ab480 Add test confirming #5652 2021-10-03 09:49:55 +02:00
Matthias
ad6ca3773d Merge pull request #5592 from samgermain/test-freqtradebot-usdt
Test freqtradebot usdt
2021-10-03 09:41:08 +02:00
Matthias
126c291988 Improve docs
closes #5654
2021-10-03 09:32:53 +02:00
Matthias
9e77a739fa Change usdt stake_amount to 60$ 2021-10-03 09:22:50 +02:00
Sam Germain
57d66cc0f7 Merge branch 'test-freqtradebot-usdt' into lev-freqtradebot 2021-10-02 20:51:50 -06:00
Sam Germain
058c7b3e99 Fixed odd test_execute_entry where the filled coins were higher than the amount 2021-10-02 20:43:32 -06:00
Sam Germain
908dee961d Changed test values in test_sell_profit_only to usdt like values 2021-10-02 20:37:05 -06:00
Sam Germain
93679db7c4 Removed ... TODOs 2021-10-02 20:33:46 -06:00
Sam Germain
057a187231 Removed uneccessary TODOs 2021-10-02 20:32:51 -06:00
Sam Germain
3823ca4162 Merge branch 'test-freqtradebot-usdt' into lev-freqtradebot 2021-10-02 20:26:52 -06:00
Matthias
3b5cc5f015 Improve dates used for hyperopt tests 2021-10-02 15:37:01 +02:00
Matthias
77388eb423 Improve generate_test_data to make it easier to use 2021-10-02 15:23:48 +02:00
Matthias
66e19f5775 Merge pull request #5651 from freqtrade/simplify_loss_Tests
Combine most hyperopt-loss tests to one
2021-10-02 14:44:46 +02:00
Matthias
5fdeca812d Combine most hyperopt-loss tests to one 2021-10-02 14:30:24 +02:00
Matthias
022839b728 remove unnecessary test 2021-10-02 13:17:10 +02:00
Matthias
e5e1e49f53 Remove some unused test parameters 2021-10-02 13:01:33 +02:00
Sam Germain
87ff65d31e Fixed failing test_handle_protections 2021-10-02 04:06:22 -06:00
Sam Germain
72388d3376 tried to solve test_update_funding_fees: 2021-10-02 03:52:00 -06:00
Sam Germain
b3656ddfc9 Merge branch 'feat/short' into lev-freqtradebot 2021-10-02 03:36:32 -06:00
Sam Germain
e8b4cf6eaa Merge branch 'develop' into feat/short 2021-10-02 03:15:12 -06:00
Sam Germain
96d09b5615 Fixed breaking rpc tests 2021-10-02 01:44:30 -06:00
Sam Germain
6f8e66117b flake8 isort 2021-10-02 01:44:30 -06:00
Sam Germain
107fa911a5 Fixed test_tsl_on_exchange_compatible_with_edge 2021-10-02 01:44:30 -06:00
Rokas Kupstys
c820db4c60 Fix couple more usdt tests which failed due to ticker prices causing roi being hit, but tests did not expect that to happen. 2021-10-02 01:44:30 -06:00
Rokas Kupstys
8961370269 Fix failing test due to not updated expected values. 2021-10-02 01:44:30 -06:00
Rokas Kupstys
2ee87f8c66 Fix failing USDT tests due to not enough open markets. 2021-10-02 01:44:30 -06:00
Sam Germain
43339f1660 A lot of the usdt freqtradebot tests pass now 2021-10-02 01:44:30 -06:00
Sam Germain
ba5d78f005 swapped default_conf for default_conf_usdt and ticker for ticker_usdt 2021-10-02 01:44:30 -06:00
Sam Germain
7eebb6bb2d updated test_create_trade to use default_conf_usdt 2021-10-02 01:44:30 -06:00
Sam Germain
755cc9cda1 Updated test_check_available_stake_amount to use default_conf_usdt 2021-10-02 01:44:30 -06:00
Sam Germain
26fdad8468 Removed edge_conf_usdt 2021-10-02 01:44:30 -06:00
Sam Germain
d0e0d0ee01 Removed init_persistence_usdt 2021-10-02 01:44:30 -06:00
Sam Germain
5ce09c7519 updated test_reupdate_enter_order_fees to usdt 2021-10-02 01:44:30 -06:00
Sam Germain
ffa9a3ac7d changed default_conf_usdt stake_amount to 10 2021-10-02 01:44:30 -06:00
Sam Germain
6fdcf8cd73 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 2021-10-02 01:44:30 -06:00
Sam Germain
d1e3d48075 changed test_update_trade_state_withorderdict to usdt 2021-10-02 01:44:30 -06:00
Sam Germain
8d7f75c4de Fixed a bunch of freqtradebot tests 2021-10-02 01:44:30 -06:00
Sam Germain
dadd134200 changes some tests to use usdt values 2021-10-02 01:44:30 -06:00
Sam Germain
9ea2dd05d8 Removed space in retrier 2021-10-01 21:21:59 -06:00
Matthias
f69cb39a17 Fix missing comma in kucoin template
closes #5646
2021-10-01 19:26:51 +02:00
Matthias
bd7d9c0d33 Merge pull request #5648 from froggleston/patch-1
Fix pair_candles to point to correct API call
2021-10-01 19:25:22 +02:00
Robert Davey
15df5fd9c5 Fix pair_candles to point to correct API call
pair_candles pointed to available_pairs RPC call instead of pair_candles
2021-10-01 13:49:16 +01:00
Matthias
99e3450d30 Merge pull request #5642 from freqtrade/add_trade_conversion_command
Add trade conversion command
2021-10-01 06:38:42 +02:00
Sam Germain
77d3a8b457 Added bybit funding-fee times 2021-09-30 20:18:56 -06:00
Scott Lyons
df45f467c6 Adding ability to ignore unparameterized spaces 2021-09-30 01:11:02 -07:00
Scott Lyons
95227376b6 Adding IUS to optimize args 2021-09-30 00:53:46 -07:00
Scott Lyons
08fcd1a0d4 Adding ignore space errors to Hyperopt CLI 2021-09-30 00:46:56 -07:00
Scott Lyons
5dd1088d8d Adding ignore unparameterized spaces flag 2021-09-30 00:44:26 -07:00
Matthias
5f23af5802 Rename update_open_trades to clarify it's only called at startup 2021-09-30 07:24:16 +02:00
Sam Germain
6e86bdb820 Added test_update_funding_fees 2021-09-29 23:11:01 -06:00
Sam Germain
ba60aad89d parameterized TradingMode in persistence 2021-09-29 22:59:09 -06:00
Matthias
bd27993e79 Add documentation segment about indicator libraries 2021-09-30 06:42:42 +02:00
Sam Germain
157223f6ab datetime.utc -> datetime.now(timezone.utc) 2021-09-29 22:32:02 -06:00
Sam Germain
af6afd0ac2 Revert "Replace datetime.utcnow with datetime.now(timezone.utc)"
This reverts commit c4ac876183.
2021-09-29 22:27:21 -06:00
Sam Germain
993dc672b4 timestamp * 1000 in get_funding_fees_from_exchange 2021-09-29 22:18:15 -06:00
Sam Germain
c4ac876183 Replace datetime.utcnow with datetime.now(timezone.utc) 2021-09-29 22:16:44 -06:00
Matthias
178db516bf Add documentation for trade-to-ohlcv 2021-09-29 20:00:14 +02:00
Matthias
248c61bb26 Add test for trades-to-ohlcv 2021-09-29 19:39:29 +02:00
Matthias
fc511aac44 don't use %default when no default is defined 2021-09-29 19:21:54 +02:00
Matthias
656526c007 Add trades-to-ohlcv command to simplify adding new timeframes 2021-09-29 16:50:05 +02:00
Matthias
51c6eb2014 Merge pull request #5640 from rokups/rk/tests-static-market
markets_static fixture
2021-09-29 16:20:18 +02:00
Rokas Kupstys
e025576d8c Introduce markets_static fixture serving an immutable list of markets. Adapt pairlist/markets tests to use this new fixture.
This allows freely modifying markets in get_markets() without a need of updating pairlist/markets tests.
2021-09-29 10:15:05 +03:00
Matthias
a0ee490957 Merge pull request #5636 from freqtrade/new_release
New release 2021.9
2021-09-28 19:21:42 +02:00
Robert Roman
ca973c05d1 Merge branch 'freqtrade:develop' into develop 2021-09-28 10:16:36 -05:00
Sam Germain
545b62d746 Merge branch 'feat/short' into funding-fee 2021-09-27 23:34:09 -06:00
Sam Germain
1a132758d0 merged with feat/short 2021-09-27 23:26:20 -06:00
Matthias
5938514e5d Version bump to 2021.9 2021-09-28 07:03:26 +02:00
Matthias
d73f5f75fc Merge branch 'stable' into new_release 2021-09-28 07:02:24 +02:00
Robert Roman
626a40252d resolved mypy error
error: Signature of "hyperopt_loss_function" incompatible with supertype "IHyperOptLoss"
2021-09-27 17:33:29 -05:00
Robert Roman
c3414c3b78 resolved mypy error
error: Signature of "hyperopt_loss_function" incompatible with supertype "IHyperOptLoss"
2021-09-27 17:32:49 -05:00
Matthias
5726886b06 Reduce backtest-noise from "pandas slice" warning 2021-09-27 20:52:19 +02:00
Matthias
d7ce9b9f6d Rename sample short strategy 2021-09-27 19:17:19 +02:00
Robert Roman
67e9626da1 fixed isort issue 2021-09-27 12:16:57 -05:00
Matthias
949f469a7f Merge pull request #5378 from samgermain/lev-strat
Lev-strat
2021-09-27 19:16:00 +02:00
Robert Roman
a1566fe5d7 updated to latest constant.py file 2021-09-27 11:47:03 -05:00
Robert Roman
bc86cb3280 updated to correct hyperopt.md file 2021-09-27 11:41:38 -05:00
Robert Roman
193b22475d Merge branch 'freqtrade:develop' into develop 2021-09-27 11:35:34 -05:00
Matthias
3fbf716f85 Fix "sticking" timerange in webserver mode 2021-09-27 17:52:00 +02:00
Matthias
6a033bd01e Merge pull request #5633 from freqtrade/dependabot/pip/develop/nbconvert-6.2.0
Bump nbconvert from 6.1.0 to 6.2.0
2021-09-27 12:20:02 +02:00
Matthias
5b7a1f8642 Validate config also in webserver mode 2021-09-27 07:12:40 +02:00
Matthias
6fb0d14f80 changed naming for signal variable 2021-09-27 07:07:49 +02:00
Matthias
37a1cd5d38 Merge pull request #5631 from freqtrade/dependabot/pip/develop/ccxt-1.57.3
Bump ccxt from 1.56.86 to 1.57.3
2021-09-27 07:02:18 +02:00
dependabot[bot]
78096c9eff Bump nbconvert from 6.1.0 to 6.2.0
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Commits](https://github.com/jupyter/nbconvert/compare/6.1.0...6.2.0)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-27 04:32:26 +00:00
Matthias
29c6f182f6 Merge pull request #5630 from freqtrade/dependabot/pip/develop/types-requests-2.25.9
Bump types-requests from 2.25.8 to 2.25.9
2021-09-27 06:31:29 +02:00
dependabot[bot]
9059502303 Bump ccxt from 1.56.86 to 1.57.3
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.56.86 to 1.57.3.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.56.86...1.57.3)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-27 03:01:27 +00:00
dependabot[bot]
08b1f04ed5 Bump types-requests from 2.25.8 to 2.25.9
Bumps [types-requests](https://github.com/python/typeshed) from 2.25.8 to 2.25.9.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-27 03:01:18 +00:00
Robert Roman
bdca3e2343 Merge branch 'freqtrade:develop' into develop 2021-09-26 15:37:09 -05:00
Matthias
a926f54a25 Add "side" parameter to custom_stake_amount 2021-09-26 19:35:54 +02:00
Matthias
84e013de2d Update confirm_trade_entry to support "side" parameter 2021-09-26 19:33:22 +02:00
Matthias
ec445776e9 Merge pull request #5601 from ferrants/parameterize-tests
parameterize some tests
2021-09-26 19:07:47 +02:00
Matthias
4d49f1a0c7 Reset columns by dropping instead of resetting 2021-09-26 15:39:34 +02:00
Matthias
4fd00db630 Use "combined" enter_tag column 2021-09-26 15:22:37 +02:00
Matthias
6319c104fe Fix unreliable backtest-result when using webserver mode 2021-09-26 15:07:48 +02:00
Robert Roman
a77ca22026 Merge branch 'freqtrade:develop' into develop 2021-09-26 02:57:02 -05:00
Matthias
2a678bdbb4 Update buy_tag column to long_tag 2021-09-26 08:37:44 +02:00
Robert Roman
e1036d6f58 Added Calmar Ratio Daily to hyperopt.md file 2021-09-25 16:40:02 -05:00
Robert Roman
89b7dfda0e Added Calmar Ratio Daily 2021-09-25 16:34:41 -05:00
Robert Roman
24baad7884 Add Calmar Ratio Daily
This hyper opt loss calculates the daily Calmar ratio.
2021-09-25 16:28:36 -05:00
froggleston
097da448e2 Add CPU,RAM sysinfo support to the REST API to help with bot system monitoring 2021-09-25 15:48:42 +01:00
Matthias
f4f204d849 Update test to use cost dict 2021-09-24 20:17:38 +02:00
Matthias
4c268847d4 Add pandas-ta to setup.py 2021-09-24 19:32:30 +02:00
Matthias
4d72632524 Merge pull request #5618 from freqtrade/dependabot/pip/develop/progressbar2-3.53.3
Bump progressbar2 from 3.53.2 to 3.53.3
2021-09-24 19:26:59 +02:00
Matthias
b59906b117 Update minimum for tradable_balance_ratio to 0.0 2021-09-24 19:24:33 +02:00
Matthias
2431c9f195 Merge pull request #5615 from freqtrade/dependabot/pip/develop/ccxt-1.56.86
Bump ccxt from 1.56.30 to 1.56.86
2021-09-24 13:19:00 +02:00
Matthias
9657028633 Merge pull request #5614 from freqtrade/dependabot/pip/develop/mkdocs-material-7.3.0
Bump mkdocs-material from 7.2.6 to 7.3.0
2021-09-24 10:19:03 +02:00
Matthias
c61b2a83c1 Merge pull request #5617 from freqtrade/dependabot/pip/develop/urllib3-1.26.7
Bump urllib3 from 1.26.6 to 1.26.7
2021-09-24 09:45:30 +02:00
dependabot[bot]
72a1e27fc6 Bump ccxt from 1.56.30 to 1.56.86
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.56.30 to 1.56.86.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.56.30...1.56.86)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-24 07:31:20 +00:00
Matthias
a217d84e0f Merge pull request #5616 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.25
Bump sqlalchemy from 1.4.23 to 1.4.25
2021-09-24 09:30:33 +02:00
Matthias
5da218e383 Merge pull request #5613 from freqtrade/dependabot/pip/develop/types-requests-2.25.8
Bump types-requests from 2.25.6 to 2.25.8
2021-09-24 08:42:26 +02:00
Matthias
954c468191 Add pandas-ta to requirements 2021-09-24 07:12:38 +02:00
dependabot[bot]
0353f070f9 Bump progressbar2 from 3.53.2 to 3.53.3
Bumps [progressbar2](https://github.com/WoLpH/python-progressbar) from 3.53.2 to 3.53.3.
- [Release notes](https://github.com/WoLpH/python-progressbar/releases)
- [Changelog](https://github.com/WoLpH/python-progressbar/blob/develop/CHANGES.rst)
- [Commits](https://github.com/WoLpH/python-progressbar/compare/v3.53.2...v3.53.3)

---
updated-dependencies:
- dependency-name: progressbar2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-24 05:06:24 +00:00
dependabot[bot]
90d5af9a35 Bump urllib3 from 1.26.6 to 1.26.7
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.6 to 1.26.7.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/1.26.7/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.6...1.26.7)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-24 05:06:20 +00:00
dependabot[bot]
766ef90b56 Bump sqlalchemy from 1.4.23 to 1.4.25
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.23 to 1.4.25.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-24 05:06:16 +00:00
dependabot[bot]
e85dc63263 Bump mkdocs-material from 7.2.6 to 7.3.0
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.2.6 to 7.3.0.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.2.6...7.3.0)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-24 05:06:01 +00:00
dependabot[bot]
422d560189 Bump types-requests from 2.25.6 to 2.25.8
Bumps [types-requests](https://github.com/python/typeshed) from 2.25.6 to 2.25.8.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-24 05:05:55 +00:00
Robert Roman
ca20e17d40 added CalmarHyperOpt to hyperopt.md
i added CalmarHyperOpt to hyperopt.md and gave a brief description inside the docs
2021-09-23 21:48:08 -05:00
Robert Roman
b2ac039d5c added CalmarHyperOptLoss to HYPEROPT_LOSS_BUILTIN
I added CalmarHyperOptLoss to HYPEROPT_LOSS_BUILTIN variable inside constants.py file
2021-09-23 21:46:07 -05:00
Robert Roman
0f29cbc882 added CalmarHyperOptLoss
I added CalmarHyperOptLoss to HYPEROPT_LOSS_BUILTIN variable inside constants.py file
2021-09-23 21:37:28 -05:00
Robert Roman
3b99c84b0a resolved the total profit issue
I resolved the total profit issue and locally ran flak8 and isort
2021-09-23 21:31:33 -05:00
Matthias
9a6d8977de Merge pull request #5605 from peterwilli/fix-sell-cancel-webhook-error
fixed webhook "unsupported format string passed to NoneType." error
2021-09-23 20:17:35 +02:00
Matthias
ff9c8fe234 Merge pull request #5496 from LoveIsGrief/docs/performance-warning
Docs: Mention Performance Warning for strategies
2021-09-23 20:16:58 +02:00
Peter Willemsen
692e91a26d changed close date from datetime.utcnow() to datetime.now(timezone.utc) 2021-09-23 10:28:15 +02:00
Matthias
d7903f012f Move PerformanceWarning to advanced section
rewrite to use strategy parameters instead of plain range
2021-09-23 07:25:11 +02:00
Matthias
fcca637107 Merge pull request #5599 from freqtrade/notify_trigger_prot
Notify trigger protections
2021-09-23 07:17:26 +02:00
matt ferrante
2bf49445b7 add parameterized names 2021-09-22 16:11:27 -06:00
Matthias
a0ef89d910 Also support column-transition for V1 strategies 2021-09-22 20:52:55 +02:00
Matthias
0e13d57e57 Update advise_* methods to entry/exit 2021-09-22 20:42:31 +02:00
Matthias
4c6b1cd55b Add very simple short logic to test-strategy 2021-09-22 20:36:03 +02:00
Matthias
5928ba9c88 Test and document leverage strategy callback 2021-09-22 20:14:52 +02:00
matt ferrante
30cc69c880 set all to eth for multi test 2021-09-22 11:28:42 -06:00
matt ferrante
8cfb6ddd51 fix long line 2021-09-22 10:48:13 -06:00
matt ferrante
f768bdea50 cleanup based on feedback 2021-09-22 10:32:30 -06:00
Robert Roman
c6b684603c removed trade_count inside if statement
i removed trade_count inside if statement. Even though it helps overfitting, It is not useful when running hyperopt on small datasets.
2021-09-22 09:21:43 -05:00
Robert Roman
b946f8e7f1 I sorted imports with isort 2021-09-22 09:18:17 -05:00
Robert Roman
3834bb86ff updated line 42
I removed the minus sign on max drawdown.
2021-09-21 20:25:17 -05:00
Robert Roman
3845d55186 a new hyperopt loss created that uses calmar ratio
This is a new hyperopt loss file that uses the Calmar Ratio.

Calmar Ratio = average annual rate of return / maximum drawdown
2021-09-21 20:04:23 -05:00
Sam Germain
553c868d7f combined test_order_book_depth_of_market and test_order_book_depth_of_market_high_delta 2021-09-21 16:40:24 -06:00
Sam Germain
5113ceb6c8 added schedule to setup.py 2021-09-21 15:52:12 -06:00
Peter Willemsen
b0de4d333e fixed webhook error 2021-09-21 23:20:40 +02:00
Matthias
c791b95405 Use new TestStrategy (V3) by default in tests 2021-09-21 20:24:08 +02:00
matt ferrante
707d0ef795 remove trades_for_order3 2021-09-21 12:16:10 -06:00
Matthias
7a5c7e7020 Update some tests to use StrategyV3 2021-09-21 19:33:33 +02:00
matt ferrante
277828bf0e parameterize some tests 2021-09-21 07:56:16 -06:00
Matthias
6fc770d97d Add warning about running with docker on windows 2021-09-21 15:12:35 +02:00
Matthias
4237acf5b6 Merge pull request #5598 from SeriousM/patch-1
Add docker troubleshooting information for win10/wsl
2021-09-21 14:54:31 +02:00
Bernhard Millauer
abddb0db66 Fix header indention
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-09-21 10:13:19 +02:00
Matthias
4b5cd891cd Add V3 test strategy 2021-09-21 07:12:46 +02:00
Sam Germain
d6b36231e7 added schedule to environment.yml 2021-09-20 23:12:17 -06:00
Matthias
cf2da3b45f Merge branch 'feat/short' into pr/samgermain/5378 2021-09-21 06:59:05 +02:00
Matthias
3ce05c0d54 Add "sane" defaults to protection triggers 2021-09-20 20:16:58 +02:00
Matthias
fd23ab3d64 improve formatting, add tests 2021-09-20 19:50:56 +02:00
Matthias
dd0db7ee5d Split protection-notification into global and per-pair 2021-09-20 19:23:40 +02:00
Matthias
a0fb43c6ca Add pairlock-notification 2021-09-20 19:12:59 +02:00
Bernhard Millauer
c91a9a92f2 Add troubleshooting information
The time in wsl docker container shifts over time. Added information how to fix this issue.
2021-09-20 14:22:24 +02:00
Sam Germain
6db2813850 merged with feat/short 2021-09-19 20:33:08 -06:00
Sam Germain
043bfcd5ad Fixed a lot of failing tests" 2021-09-19 20:24:22 -06:00
Sam Germain
d7c7448632 merged lev-freqtradebot with lev-strat 2021-09-19 19:06:43 -06:00
Sam Germain
778f0d9d0a Merged feat/short into lev-strat 2021-09-19 17:44:12 -06:00
Sam Germain
60a678fea7 merged with feat/short 2021-09-19 17:02:09 -06:00
Sam Germain
d8d6f245a7 Fixed breaking tests in test_freqtradebot.py 2021-09-19 16:44:02 -06:00
Sam Germain
ee0ebdf0f2 merged with develop 2021-09-19 15:35:54 -06:00
Matthias
1da091dea3 ProtectionManager should return the lock just created 2021-09-19 19:41:19 +02:00
Matthias
879bf47b32 Refactor telegram.py to simplify send_msg 2021-09-19 19:25:36 +02:00
Matthias
c46ef637c3 Merge pull request #5593 from samgermain/parametrized-test-freqtradebot
Parametrized test freqtradebot
2021-09-19 13:40:13 +02:00
Matthias
ec03531771 Improve naming of variables 2021-09-19 13:29:09 +02:00
Matthias
ab88217186 Improve /balance output to include starting balance and percentual change
closes #5503
2021-09-19 13:17:34 +02:00
Matthias
66c2034c3f Merge pull request #5387 from samgermain/lev-exchange
Lev exchange
2021-09-19 13:00:38 +02:00
Sam Germain
2d679177e5 Added in lev prep before creating api order 2021-09-19 03:05:58 -06:00
Sam Germain
fa74b95a01 reduced amount of code for leverage_brackets test 2021-09-19 02:33:28 -06:00
Sam Germain
ddc203ca69 remove %s in test_exchange unix time 2021-09-19 02:26:59 -06:00
Sam Germain
835e0e69fc removed leverage from create order api call 2021-09-19 02:23:05 -06:00
Sam Germain
2b6d134294 Merge branch 'feat/short' into lev-exchange 2021-09-19 01:57:30 -06:00
Sam Germain
ac4f5adfe2 switched since = int(since.timestamp()) from %s 2021-09-19 01:16:22 -06:00
Matthias
b83689f9ea Merge pull request #5541 from arunavo4/feat/short
[Feat/Short] Added Ftx Interest Calculation
2021-09-19 09:05:17 +02:00
Arunavo Ray
27bd30d266 fixed formatting issues 2021-09-19 11:42:29 +05:30
Arunavo Ray
c54259b4c5 Added ftx interest formula tests 2021-09-19 11:35:29 +05:30
ARUNAVO RAY
91cc8212f6 Merge branch 'freqtrade:feat/short' into feat/short 2021-09-19 11:26:33 +05:30
Sam Germain
cee4ed541b parametrized test_update_trade_state_withorderdict 2021-09-18 19:46:46 -06:00
Sam Germain
ec9dbc550e parametrized test_create_trade_minimal_amount 2021-09-18 19:19:53 -06:00
Matthias
c1895a0fc2 Remove warning related to legacy hyperopt 2021-09-18 15:30:33 +02:00
Matthias
73f044d1e2 Merge pull request #5281 from rokups/rk/helpers
A decorator for easy creation of informative pairs
2021-09-18 15:30:20 +02:00
Rokas Kupstys
eab7f8f694 [SQUASH] Doh. 2021-09-18 15:44:21 +03:00
Rokas Kupstys
713e7819f7 [SQUASH] Remove mypy import. 2021-09-18 15:27:58 +03:00
Sam Germain
979c6f2f26 moved leverage_brackets.json to exchange/binance_leverage_brackets.json 2021-09-18 03:49:15 -06:00
Sam Germain
518a59ad41 parametrized test_edge_overrides_stoploss 2021-09-18 03:20:00 -06:00
Sam Germain
42a2fdc1c5 parametrized test_order_dict 2021-09-18 03:01:08 -06:00
Sam Germain
216f75bbb9 parametrized test_sell_profit_only , test__safe_exit_amount, test_order_book_bid_strategy1 2021-09-18 02:53:34 -06:00
Rokas Kupstys
e4ca42faec [SQUASH] Update stoploss_from_absolute to behave more like stoploss_from_open and add a test for it. 2021-09-18 10:48:53 +03:00
Rokas Kupstys
7e6aa9390a [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. 2021-09-18 10:48:53 +03:00
Rokas Kupstys
e88c4701bb [SQUASH] Address PR comments. 2021-09-18 10:48:53 +03:00
Matthias
bb6ae682fc Small simplifications 2021-09-18 10:48:53 +03:00
Rokas Kupstys
5dc78a0c66 [SQUASH] Get rid of _initialize() and fix informatives for dynamic pairlists. 2021-09-18 10:48:53 +03:00
Rokas Kupstys
f81df19b93 [TMP] Make tests not fail for now. 2021-09-18 10:48:53 +03:00
Rokas Kupstys
dfa61b7ad2 [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.
2021-09-18 10:48:53 +03:00
Rokas Kupstys
f2a1d9d2fc [SQUASH] Address PR comments. 2021-09-18 10:48:18 +03:00
Rokas Kupstys
1fdb656334 Add a decorator which can be used to declare populate_indicators() functions for informative pairs. 2021-09-18 10:48:18 +03:00
Rokas Kupstys
d84ef34740 A helper to calculate stoploss value from absolute price. 2021-09-18 10:48:18 +03:00
Matthias
11f08b0053 Merge pull request #5582 from sergeykhliustin/develop
Added days parameter to PerformanceFilter
2021-09-18 09:24:14 +02:00
Matthias
a89c67787b Replace some more occurances of 'buy' 2021-09-18 09:23:53 +02:00
Matthias
56fb25c5e5 Add test for PerformanceFilter lookback 2021-09-18 09:10:37 +02:00
Matthias
564e0b9a1a Switch performanceFilter to use Minutes lookback resolution
closes #5060
2021-09-18 09:10:25 +02:00
Matthias
12c12d42df Add documentation for days parameter in PerformanceFilter 2021-09-18 08:30:44 +02:00
Matthias
853c3a4433 Merge pull request #5587 from raph92/patch-3
Update prepare_trials_columns() return type
2021-09-18 08:08:18 +02:00
Sam Germain
2c21bbfa0c Fixed create order margin call count tests and made _ccxt_config a computed property 2021-09-17 16:45:02 -06:00
Sergey Khliustin
d7395e873b Removed unused OperationalException 2021-09-17 22:05:57 +03:00
raphael
4b2c1a9b8e Remove trailing whitespace 2021-09-17 14:39:15 -04:00
raphael
e715f2a253 Update formatting
Line 302 was too long
2021-09-17 14:23:26 -04:00
raphael
9525a5b96c Add type to "trials" parameter 2021-09-17 14:10:37 -04:00
Matthias
9c50d0c250 Merge pull request #5589 from Ottavio97/develop
Include Raspberry Pi armv6 (0, 0W,...)
2021-09-17 19:54:35 +02:00
Matthias
4d558879e9 Merge branch 'feat/short' into pr/samgermain/5378 2021-09-17 19:33:35 +02:00
Matthias
6d1604d6fa Merge pull request #5588 from raph92/patch-4
Update HyperoptTools.export_csv_file usage
2021-09-17 19:14:47 +02:00
Ottavio Miele
fb6beb90e8 Include Raspberry Pi armv6 (0, 0W,...) 2021-09-17 18:03:54 +02:00
raphael
124e97f3b9 Remove ununsed variables from export_csv_file 2021-09-17 11:57:36 -04:00
raphael
5fc993231a Update HyperoptTools.export_csv_file usage 2021-09-17 11:51:55 -04:00
raphael
3a98fb72a4 Update prepare_trials_columns() return type
Was returning str, updated to pd.DataFrame
2021-09-17 11:42:33 -04:00
sergeykhliustin
982deeedf0 Update freqtrade/persistence/models.py
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-09-17 18:23:13 +03:00
Sergey Khliustin
54ef36a497 Updates after review to PerformanceFilter days param 2021-09-17 13:45:44 +03:00
Matthias
d680fdf33a Merge branch 'develop' into feat/short 2021-09-17 11:16:37 +02:00
Matthias
4ce1375bf3 Merge pull request #5580 from freqtrade/hyperopt_diff_base_estimators
Hyperopt set diff base estimators
2021-09-17 10:32:47 +02:00
Sam Germain
2e8d00e877 temp commit message 2021-09-17 01:15:21 -06:00
Sam Germain
32e52cd460 Added leverage brackets dry run test 2021-09-17 00:41:00 -06:00
Sam Germain
798a0c9827 Tried to add call count to test_create_order 2021-09-17 00:10:53 -06:00
Sam Germain
0628790da9 merged lev-freqtradebot with feat/short 2021-09-16 23:49:43 -06:00
Sam Germain
8123579442 added trading mode to persistence tests 2021-09-16 23:47:44 -06:00
Sam Germain
e78f38c7b6 Merge branch 'feat/short' into funding-fee 2021-09-16 23:32:44 -06:00
Sam Germain
e7b6f3bfd1 removed changes to test_persistence 2021-09-16 23:32:23 -06:00
Sam Germain
ff5b402f58 Merge branch 'feat/short' into lev-exchange 2021-09-16 23:27:44 -06:00
Sam Germain
dced167ea2 fixed some stuff in the leverage brackets binance test 2021-09-16 23:23:36 -06:00
Sam Germain
57c7926515 leverage updates on exchange classes 2021-09-16 23:05:13 -06:00
Matthias
05e01847a0 Merge pull request #5579 from samgermain/paramatrize-test-persistence
Parametrize test persistence
2021-09-17 07:03:45 +02:00
Sam Germain
0ced05890a removed space between @ and pytest 2021-09-16 16:28:23 -06:00
Sam Germain
dec2f377ff Removed utils, moved get_sides to conftest 2021-09-16 16:25:02 -06:00
Sergey Khliustin
457e738b4a Added days parameter to PerformanceFilter 2021-09-16 14:48:02 +03:00
Sam Germain
a8657bb1ce Removed backtesting funding-fee code 2021-09-16 03:50:01 -06:00
Sam Germain
4c91126c49 some short freqtradebot parametrized tests 2021-09-16 03:23:45 -06:00
Sam Germain
e827ba1388 finished up funding fee formulas 2021-09-15 23:51:21 -06:00
Matthias
994c3c3a4c Add some errorhandling for custom estimator 2021-09-16 07:13:25 +02:00
Sam Germain
98b00e8daf merged with feat/short 2021-09-15 22:28:10 -06:00
Sam Germain
cbaf477bec changed kraken set lev implementation 2021-09-15 21:55:19 -06:00
Sam Germain
5fcb69a0b5 Parametrized test_persistence 2021-09-15 18:29:17 -06:00
Matthias
c0811ae896 Add possibility to override estimator from within hyperopt 2021-09-15 21:36:53 +02:00
Matthias
90ad178932 Remove verbosity of edge 2021-09-15 21:04:25 +02:00
Matthias
57ea0c322f Rename indicator_space to buy_indicator_space 2021-09-15 20:20:31 +02:00
Matthias
f7bae81d96 Dataframe should be copied after populate_indicator
Without that, PerformanceWarnings can appear throughout hyperopt which
are unnecessary and missleading for users

closes #5408
2021-09-15 19:56:12 +02:00
Matthias
e4ec5679a1 Merge pull request #5574 from freqtrade/agefilter_cache
Agefilter cache
2021-09-15 06:33:36 +02:00
Sam Germain
d604757056 Added is_short to conf tests 2021-09-14 21:10:38 -06:00
ARUNAVO RAY
9d21261d25 Merge branch 'freqtrade:feat/short' into feat/short 2021-09-15 06:46:33 +05:30
Sam Germain
d3ab2f887f merged with feat/short 2021-09-14 18:32:08 -06:00
Sam Germain
47677ccd91 Merge branch 'feat/short' into lev-exchange 2021-09-14 18:27:51 -06:00
Sam Germain
d77ab337bf merged with develop 2021-09-14 18:26:46 -06:00
Sam Germain
5f6384a961 Added tests to freqtradebot 2021-09-14 17:18:57 -06:00
Matthias
4e2b1764b8 ccxt_compat_tests must run with dry-run=False 2021-09-14 20:24:44 +02:00
Matthias
315ea1e116 Merge pull request #5566 from freqtrade/remove_hyperopt
Remove legacy hyperopt
2021-09-14 19:20:58 +02:00
Matthias
35eda8c8c7 Improve agefilter test 2021-09-14 07:07:20 +02:00
Matthias
3ce5197e8d Add Tests for AgeFilter caching
closes #5552
2021-09-14 06:45:26 +02:00
Matthias
c9ba52d732 Expire cached pairs in age-filter once per day 2021-09-14 06:30:18 +02:00
Sam Germain
7e0eb0adcf merged with feat/short 2021-09-13 14:14:54 -06:00
Sam Germain
5225bd4a5b Merge branch 'develop' into feat/short 2021-09-13 14:02:23 -06:00
Matthias
e8e8ef4872 Merge pull request #5572 from freqtrade/dependabot/pip/develop/ccxt-1.56.30
Bump ccxt from 1.55.83 to 1.56.30
2021-09-13 20:43:10 +02:00
Matthias
a12c3ecc9b Remove credentials whenever dry-run is set from within the exchange 2021-09-13 20:27:32 +02:00
Matthias
8afb3c4b70 Move AgeFilter cache to instance level 2021-09-13 19:33:28 +02:00
Matthias
3cdd06f562 Add PeriodicCache 2021-09-13 19:32:51 +02:00
Sam Germain
17a5cc96fe Added set_margin_mode to create_order 2021-09-13 00:14:22 -06:00
Sam Germain
49acfc887f merged with lev-exchange 2021-09-13 00:00:22 -06:00
Sam Germain
2aaf60205e Merge branch 'feat/short' into lev-exchange 2021-09-12 23:41:34 -06:00
Sam Germain
83e1067af7 leverage to exchange.create_order 2021-09-12 23:39:08 -06:00
dependabot[bot]
b13bd87625 Bump ccxt from 1.55.83 to 1.56.30
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.55.83 to 1.56.30.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.55.83...1.56.30)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-13 04:31:52 +00:00
Matthias
51643ed56c Merge pull request #5571 from freqtrade/dependabot/pip/develop/progressbar2-3.53.2
Bump progressbar2 from 3.53.1 to 3.53.2
2021-09-13 06:31:00 +02:00
Matthias
22e0728ac2 Merge pull request #5569 from freqtrade/dependabot/pip/develop/pandas-1.3.3
Bump pandas from 1.3.2 to 1.3.3
2021-09-13 06:30:37 +02:00
dependabot[bot]
81039fce28 Bump progressbar2 from 3.53.1 to 3.53.2
Bumps [progressbar2](https://github.com/WoLpH/python-progressbar) from 3.53.1 to 3.53.2.
- [Release notes](https://github.com/WoLpH/python-progressbar/releases)
- [Changelog](https://github.com/WoLpH/python-progressbar/blob/develop/CHANGES.rst)
- [Commits](https://github.com/WoLpH/python-progressbar/compare/v3.53.1...v3.53.2)

---
updated-dependencies:
- dependency-name: progressbar2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-13 03:01:24 +00:00
dependabot[bot]
d8f48cf0e3 Bump pandas from 1.3.2 to 1.3.3
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.3.2 to 1.3.3.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/master/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.3.2...v1.3.3)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-13 03:01:14 +00:00
Sam Germain
1d7a8f667a Merge branch 'lev-exchange' into lev-freqtradebot 2021-09-12 03:15:32 -06:00
Sam Germain
e070bdd161 set leverage more thorough tests 2021-09-12 03:09:51 -06:00
Sam Germain
ad44048e29 customized set_leverage for different exchanges 2021-09-12 02:42:13 -06:00
Sam Germain
bc102d57c9 Updated set leverage to check trading mode 2021-09-12 02:09:31 -06:00
Sam Germain
0c1e5afc91 Added set leverage to create_order 2021-09-12 02:02:10 -06:00
Sam Germain
09418938fe Updated kraken fill leverage brackets and set_leverage 2021-09-12 01:51:09 -06:00
Sam Germain
1344c9f7fc _apply_leverage_to_min_stake_amount 2021-09-12 01:31:15 -06:00
Matthias
236dc48000 Update CI to use new hyperopt interface 2021-09-12 08:18:17 +02:00
Matthias
0017b3438e Remove list-hyperopts 2021-09-12 08:18:17 +02:00
Matthias
3675df8344 Update documentation regarding Legacy Hyperopt 2021-09-12 08:18:17 +02:00
Matthias
fd6bf591f8 Update some tests to remove explicit hyperopt interface 2021-09-12 08:18:13 +02:00
Matthias
dad4a49e81 Remove legacy hyperopt interface from hyperopt.py 2021-09-12 08:18:13 +02:00
Matthias
ebb0b8aa3f Remove new-hyperopt command 2021-09-12 08:18:13 +02:00
Matthias
432c3df17e Add documentation for Bittex/Gemini with VolumePairlist
closes #5565
2021-09-12 08:04:22 +02:00
Sam Germain
5b84298e03 kraken._apply_leverage_to_stake_amount 2021-09-12 00:03:02 -06:00
Matthias
50479d0b44 Merge pull request #5560 from freqtrade/fix/5548_1mdl
Don't blindly create coroutines, but fire them off in batches
2021-09-11 08:33:43 +02:00
Matthias
a5f90a409c Small updates to async_history_fetch 2021-09-11 08:18:32 +02:00
Matthias
a18bca640e Merge pull request #5551 from samgermain/comments-todos-formatting-log-messages
Comments todos formatting log messages
2021-09-11 08:08:23 +02:00
Sam Germain
b1067cee6c minor changes 2021-09-11 00:03:01 -06:00
Sam Germain
02521b4010 Merge branch 'lev-exchange' into lev-freqtradebot 2021-09-10 23:59:45 -06:00
Sam Germain
84c121652a Added more todos 2021-09-10 23:42:16 -06:00
Sam Germain
9de946fdac added collateral and trading mode to freqtradebot and leverage prep 2021-09-10 23:39:31 -06:00
Sam Germain
694460c8e0 merged with feat/short 2021-09-10 23:16:12 -06:00
Sam Germain
8e83cb4d64 temp commit message 2021-09-10 16:28:34 -06:00
Sam Germain
b0e05b92d3 Added minor changes from lev-exchange review 2021-09-10 13:39:42 -06:00
Matthias
4c4604f837 Add explicit test for get_historic_ohlcv 2021-09-10 19:47:56 +02:00
Sam Germain
cb155764eb Short side options in freqtradebot 2021-09-10 11:47:27 -06:00
Matthias
8c9159f596 Improve comments 2021-09-10 19:46:38 +02:00
Matthias
a19c33ba54 Don't blindly create coroutines, but fire them off in batches 2021-09-10 19:37:07 +02:00
Matthias
7251a3ab19 Merge pull request #5544 from freqtrade/new_pair_download
New pair download improvement
2021-09-10 19:36:45 +02:00
Matthias
982534ddc7 Add gate.io to list of supported exchanges 2021-09-10 19:32:20 +02:00
Sam Germain
9f16464b12 Removed unnecessary TODOs 2021-09-10 10:32:46 -06:00
Sam Germain
83bd674ba7 Added side to execute_trade_exit 2021-09-10 03:25:54 -06:00
Sam Germain
d582ccd2e6 merged with lev-exchange 2021-09-10 03:05:13 -06:00
Sam Germain
6486b904b5 merged with feat/short 2021-09-10 02:57:17 -06:00
Sam Germain
1fa318c52a Merge branch 'feat/short' into lev-exchange 2021-09-10 02:51:34 -06:00
Sam Germain
77aa372909 Fixed test_ftx patch 2021-09-10 02:09:27 -06:00
Sam Germain
77fc21a16b Patched test_fill_leverage_brackets_ftx so that exchange._leverage_brackets doesn't retain the values from binance 2021-09-09 23:58:10 -06:00
Sam Germain
063861ada3 Added todos for short stoploss 2021-09-09 15:47:49 -06:00
Sam Germain
2c7cf794f5 Test for short exchange.stoploss exchange.stoploss_adjust 2021-09-09 15:47:49 -06:00
Sam Germain
785b71aec1 formatting 2021-09-09 15:47:49 -06:00
Sam Germain
9f96b977f6 removed interest method from exchange, will create a separate interest PR 2021-09-09 15:47:49 -06:00
Sam Germain
93da13212c test_fill_leverage_brackets_kraken and test_get_max_leverage_binance now pass but test_fill_leverage_brackets_ftx does not if called after test_get_max_leverage_binance 2021-09-09 15:47:49 -06:00
Sam Germain
9e73d02663 Added validating checks for trading_mode and collateral on each exchange 2021-09-09 15:47:49 -06:00
Sam Germain
d1c4030b88 fill_leverage_brackets usinge self.markets.items instead of self._api.markets.items 2021-09-09 15:47:49 -06:00
Sam Germain
619ecc9728 Added exceptions to exchange.interest_rate 2021-09-09 15:47:49 -06:00
Sam Germain
97d1306e34 Added retrier to exchange functions and reduced failing tests down to 2 2021-09-09 15:47:49 -06:00
Sam Germain
cd33f69c7e Wrote failing test_fill_leverage_brackets_binance 2021-09-09 15:47:49 -06:00
Sam Germain
2b7d94a855 Rearranged tests at end of ftx to match other exchanges 2021-09-09 15:47:49 -06:00
Sam Germain
0232f0fa18 Added failing fill_leverage_brackets test to test_kraken 2021-09-09 15:47:49 -06:00
Sam Germain
8d74233aa5 ftx.fill_leverage_brackets test 2021-09-09 15:47:49 -06:00
Sam Germain
8264cc546d Wrote dummy tests for exchange.get_interest_rate 2021-09-09 15:47:49 -06:00
Sam Germain
607e403eb2 split test_get_max_leverage into separate exchange files 2021-09-09 15:47:49 -06:00
Sam Germain
5708fee0e6 Wrote failing tests for exchange.set_leverage and exchange.set_margin_mode 2021-09-09 15:47:49 -06:00
Sam Germain
e6c9b8ffe5 completed set_margin_mode 2021-09-09 15:47:49 -06:00
Sam Germain
39fe381473 set margin mode exchange function 2021-09-09 15:47:49 -06:00
Sam Germain
3a4d247b64 Changed stoploss side on some tests 2021-09-09 15:47:49 -06:00
Sam Germain
f950f039a8 added tests for min stake amount with leverage 2021-09-09 15:47:49 -06:00
Sam Germain
8a5bad7c3e exchange - kraken - minor changes 2021-09-09 15:47:49 -06:00
Sam Germain
5748c9bc13 Added short functionality to exchange stoplss methods 2021-09-09 15:47:49 -06:00
Sam Germain
4ef1f0a977 Changed ftx set_leverage implementation 2021-09-09 15:47:49 -06:00
Sam Germain
16db8d70a5 Added error handlers to api functions and made a logger warning in fill_leverage_brackets 2021-09-09 15:47:49 -06:00
Sam Germain
c256dc3745 Removed some outdated TODOs and whitespace 2021-09-09 15:47:49 -06:00
Sam Germain
134a7ec59b Implemented fill_leverage_brackets get_max_leverage and set_leverage for binance, kraken and ftx. Wrote tests test_apply_leverage_to_stake_amount and test_get_max_leverage 2021-09-09 15:47:49 -06:00
Sam Germain
455bcf5389 Added TODOs to test files 2021-09-09 15:47:49 -06:00
Sam Germain
add7e74632 Added set_leverage function to exchange 2021-09-09 15:47:49 -06:00
Sam Germain
d262af35ca Removed setup leverage and transfer functions from exchange 2021-09-09 15:47:49 -06:00
Sam Germain
f4e26a616f Exchange stoploss function takes side 2021-09-09 15:47:49 -06:00
Sam Germain
ebf5310817 Added get_interest template method in exchange 2021-09-09 15:47:48 -06:00
Sam Germain
54dd9ce7ad Add prep functions to exchange 2021-09-09 15:47:48 -06:00
Matthias
efd6c037d1 Merge pull request #5556 from samgermain/feat/short
Merged feat/short with develop
2021-09-09 22:41:37 +02:00
Sam Germain
1f38088d7b Merged with develop 2021-09-09 13:56:46 -06:00
Sam Germain
e1a749a91e removed unnecessary caplog 2021-09-09 13:19:43 -06:00
Matthias
5844f5a7fa Merge pull request #5546 from samgermain/clear-caplog-freqtradebot
freqtradebot-tests-caplog-clears
2021-09-09 21:18:54 +02:00
Sam Germain
ee874f461c Removed TODO: change to exit-reason, exit_order_status 2021-09-09 13:14:48 -06:00
Sam Germain
366247dff3 removed caplog.clears at end of functions in test_freqtradebot 2021-09-09 02:17:41 -06:00
Sam Germain
f5b01443ad buy/short -> entry order, sell/exit_short -> exit order 2021-09-09 02:10:12 -06:00
Sam Germain
232d10f300 removed leverage/funding_fees 2021-09-09 01:45:57 -06:00
Sam Germain
dfb9937436 Added tests and docstring to exchange funding_fee methods, removed utils 2021-09-09 01:43:55 -06:00
Sam Germain
d54117990b Added funding_fee method headers to exchange, and implemented some of the methods 2021-09-09 01:19:34 -06:00
Matthias
fb376153a2 Merge pull request #5549 from samgermain/name-changes
Name changes
2021-09-09 07:40:39 +02:00
Sam Germain
d559b6d6c6 changed add_funding_fees template 2021-09-08 19:34:54 -06:00
Sam Germain
3eb0e6ac09 removed leverage/funding_fees 2021-09-08 19:31:27 -06:00
Sam Germain
36b8c87fb6 Added funding fee calculation methods to exchange classes 2021-09-08 19:31:04 -06:00
Sam Germain
cdefd15b28 separated hours_to_time to utils folder 2021-09-08 14:54:48 -06:00
Sam Germain
8bcd444775 real-time updates to funding-fee in freqtradebot 2021-09-08 14:15:25 -06:00
Sam Germain
2f4b566d99 reverted back exchange.get_funding_fees method 2021-09-08 13:46:52 -06:00
Sam Germain
af4a6effb7 added pair to fetch_funding_rate 2021-09-08 13:44:59 -06:00
Sam Germain
baaf516aa6 Added funding_times property to exchange 2021-09-08 13:44:42 -06:00
Sam Germain
695a8fc73b comment updates, formatting, TODOs 2021-09-08 03:09:39 -06:00
Sam Germain
1379ec7402 Updated log messages for freqtradebot 2021-09-08 03:04:01 -06:00
Sam Germain
b2f289e404 Fixed freqtradebot failing tests 2021-09-08 02:16:25 -06:00
Sam Germain
a1c9a4d619 freqtradebot local name changes 2021-09-08 02:09:36 -06:00
Sam Germain
362dc20406 notify_buy -> notify_enter, notify_sell -> notify_exit 2021-09-08 02:06:01 -06:00
Sam Germain
e1f846f22f sell_lock -> exit_lock 2021-09-08 02:04:31 -06:00
Sam Germain
e0092a85e9 handle_cancel_buy/sell -> handle_cancel_enter/exit 2021-09-08 02:04:20 -06:00
Sam Germain
be93c75e44 reupdate_buy_order_fees -> reupdate_enter_order_fees 2021-09-08 02:03:40 -06:00
Sam Germain
aac05029e1 safe_sell_amount -> safe_exit_amount 2021-09-08 02:03:24 -06:00
Sam Germain
5dda227342 comment change 2021-09-08 01:53:42 -06:00
Sam Germain
53006db2b7 Updated log messages for freqtradebot 2021-09-08 01:48:22 -06:00
Sam Germain
3057a5b9b8 freqtradebot local name changes 2021-09-08 01:40:22 -06:00
Sam Germain
f1a8b81896 sorted test interfac 2021-09-08 01:27:08 -06:00
Sam Germain
786dcb50eb safe_sell_amount -> safe_exit_amount 2021-09-08 01:20:52 -06:00
Sam Germain
323683d44f some more TODOs 2021-09-08 01:18:53 -06:00
Sam Germain
8ad53e99ce reupdate_buy_order_fees -> reupdate_enter_order_fees 2021-09-08 01:14:16 -06:00
Sam Germain
3656625747 comment updates, formatting, TODOs 2021-09-08 01:12:08 -06:00
Sam Germain
88a5a30a50 handle_cancel_buy/sell -> handle_cancel_enter/exit 2021-09-08 00:53:09 -06:00
Sam Germain
528d1438c9 sell_lock -> exit_lock 2021-09-08 00:49:04 -06:00
Sam Germain
8f38d6276f notify_buy -> notify_enter, notify_sell -> notify_exit 2021-09-08 00:45:55 -06:00
Sam Germain
763a6af224 sample strategy has short 2021-09-08 00:24:32 -06:00
Sam Germain
d811a73ec0 new rpc message types 2021-09-08 00:20:40 -06:00
Sam Germain
f8248f3771 comments, formatting 2021-09-08 00:19:21 -06:00
Sam Germain
e13b0414d8 Merge branch 'lev-strat' into lev-freqtradebot 2021-09-08 00:00:53 -06:00
Sam Germain
dc83e04f9b Merge branch 'feat/short' into lev-exchange 2021-09-07 22:13:20 -06:00
Sam Germain
ff790e8fd3 merged with caplog-clear-freqtradebot 2021-09-07 22:12:49 -06:00
Sam Germain
93fcaac19f Merge branch 'develop' into clear-caplog-freqtradebot 2021-09-07 21:55:00 -06:00
Sam Germain
79ca6135a2 added caplog clears to freqtradebot tests 2021-09-07 21:53:38 -06:00
Matthias
2d66987ac7 Add test for "pair-startdate" detection 2021-09-07 20:27:49 +02:00
Matthias
8c83c258a5 Move "first-pair_getting" to binance subclass 2021-09-07 19:32:32 +02:00
Arunavo Ray
6da26f90aa Merge remote-tracking branch 'origin/feat/short' into feat/short 2021-09-07 12:28:38 +05:30
Arunavo Ray
d07c7f7f27 Added Ftx interest rate calculation 2021-09-07 12:28:23 +05:30
Arunavo Ray
5d3261e92f Added Ftx interest rate calculation 2021-09-07 12:24:39 +05:30
Matthias
71ff214adf Support "initial_call" for download-data of new pairs 2021-09-07 07:14:40 +02:00
Matthias
880474594e have ftuser use /bin/bash in dockerfile 2021-09-07 06:51:31 +02:00
Sam Germain
f5248be043 Changed funding fee tracking method, need to get funding_rate and open prices at multiple candles 2021-09-06 15:47:24 -06:00
Matthias
10d0987f49 Fix docs for custom hyperopt space 2021-09-06 19:55:04 +02:00
Matthias
6bd495a32a Fix 0Exception error
happens when wrong stake-currency is selected and /profit
is called
2021-09-06 19:55:04 +02:00
Matthias
fb78caf801 Merge pull request #5538 from EnzovdWetering/patch-1
Update edge.md
2021-09-06 19:22:38 +02:00
EnzovdWetering
a04875eb55 Update edge.md
Typo fix
2021-09-06 17:53:44 +02:00
Matthias
3f0032498e Merge pull request #5537 from freqtrade/dependabot/pip/develop/mkdocs-material-7.2.6
Bump mkdocs-material from 7.2.5 to 7.2.6
2021-09-06 06:44:16 +02:00
Matthias
76a59bf2b6 Merge pull request #5536 from freqtrade/dependabot/pip/develop/ccxt-1.55.83
Bump ccxt from 1.55.56 to 1.55.83
2021-09-06 06:43:47 +02:00
Matthias
8347219990 Merge pull request #5534 from freqtrade/dependabot/pip/develop/pytest-6.2.5
Bump pytest from 6.2.4 to 6.2.5
2021-09-06 06:43:25 +02:00
Matthias
64ec1b6f8c Merge pull request #5535 from freqtrade/dependabot/pip/develop/plotly-5.3.1
Bump plotly from 5.3.0 to 5.3.1
2021-09-06 06:43:08 +02:00
Sam Germain
8822b73f9c test_fill_leverage_brackets_kraken and test_get_max_leverage_binance now pass but test_fill_leverage_brackets_ftx does not if called after test_get_max_leverage_binance 2021-09-05 22:27:14 -06:00
dependabot[bot]
765e72715b Bump mkdocs-material from 7.2.5 to 7.2.6
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.2.5 to 7.2.6.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.2.5...7.2.6)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-06 03:01:28 +00:00
dependabot[bot]
44f8d7abf2 Bump ccxt from 1.55.56 to 1.55.83
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.55.56 to 1.55.83.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.55.56...1.55.83)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-06 03:01:23 +00:00
dependabot[bot]
771193cbe4 Bump plotly from 5.3.0 to 5.3.1
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.3.0 to 5.3.1.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.3.0...v5.3.1)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-06 03:01:19 +00:00
dependabot[bot]
4daa4b9e63 Bump pytest from 6.2.4 to 6.2.5
Bumps [pytest](https://github.com/pytest-dev/pytest) from 6.2.4 to 6.2.5.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/6.2.4...6.2.5)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-06 03:01:10 +00:00
Matthias
01b5fe9f97 Merge pull request #5532 from lazydroid/patch-2
case insensitive blacklist
2021-09-05 19:53:39 +02:00
lenik terenin
1d24d3d5ee case insensitive blacklist
Allow "btc/usdt" pairs in blacklist to match to "BTC/USDT" pairs that come from the exchange.
2021-09-05 22:41:58 +09:00
Matthias
c519ecf8df Exclude more untestable sections from coverage 2021-09-05 15:40:21 +02:00
Matthias
a8f28ffb11 Increase test coverage 2021-09-05 15:34:57 +02:00
Matthias
b752516f65 Edge should use new columns, too 2021-09-05 15:23:27 +02:00
Matthias
ea5c7e7ed6 Merge pull request #5531 from freqtrade/exclude_coverage
Exclude some parts from coverage that can't really be tested
2021-09-05 10:01:07 +02:00
Matthias
2173ff0133 Update PR template to not link to issues in changelog 2021-09-05 09:16:19 +02:00
Matthias
4e049f65f2 Exclude some parts from coverage that can't really be tested 2021-09-05 09:14:44 +02:00
Matthias
68b75af08e Fix bug with inversed sell signals in backtesting 2021-09-05 08:59:18 +02:00
Matthias
49350f2a8e Fix backtesting test 2021-09-05 08:36:22 +02:00
Sam Germain
23ba49fec2 Added validating checks for trading_mode and collateral on each exchange 2021-09-04 22:02:08 -06:00
Sam Germain
7eab855476 Merge branch 'feat/short' into lev-exchange 2021-09-04 20:15:36 -06:00
Sam Germain
d4389eb07d fill_leverage_brackets usinge self.markets.items instead of self._api.markets.items 2021-09-04 19:58:42 -06:00
Sam Germain
6ec2e40736 Added exceptions to exchange.interest_rate 2021-09-04 19:47:04 -06:00
Sam Germain
61fdf74ad9 Added retrier to exchange functions and reduced failing tests down to 2 2021-09-04 19:16:17 -06:00
Sam Germain
92e630eb69 Added get_funding_fees method to exchange 2021-09-04 16:40:53 -06:00
Sam Germain
d6d5bae2a1 New funding fee methods 2021-09-04 16:33:06 -06:00
Sam Germain
b854350e8d Changed funding fee implementation 2021-09-04 16:31:09 -06:00
Sam Germain
194bb24a55 Miscellaneous funding fee changes. Abandoning for a new method of tracking funding fee 2021-09-04 16:20:25 -06:00
Sam Germain
b7891485b3 Created FundingFee class and added funding_fee to LocalTrade and freqtradebot 2021-09-04 16:20:07 -06:00
Matthias
2e50948699 Fix some tests 2021-09-04 20:23:51 +02:00
Matthias
ca44d2e092 Merge branch 'feat/short' into pr/samgermain/5378 2021-09-04 19:54:34 +02:00
Matthias
63f2494936 Merge pull request #5530 from freqtrade/fix_uvicorn
Fix uvicorn not working properly on windows
2021-09-04 08:22:11 +02:00
Matthias
35267de88a Merge pull request #5529 from Rikj000/setup/use-build-helpers-install-ta-lib-script
 `setup.sh` - Use `build_helpers/install_ta-lib.sh` for TA-Lib insta…
2021-09-04 08:15:19 +02:00
Sam Germain
aac1094078 Wrote failing test_fill_leverage_brackets_binance 2021-09-03 20:30:52 -06:00
Sam Germain
95bd0721ae Rearranged tests at end of ftx to match other exchanges 2021-09-03 20:30:19 -06:00
Sam Germain
c5d97d07a8 Added failing fill_leverage_brackets test to test_kraken 2021-09-03 20:29:46 -06:00
Sam Germain
01263663be ftx.fill_leverage_brackets test 2021-09-03 19:56:53 -06:00
Sam Germain
9d398924c6 Wrote dummy tests for exchange.get_interest_rate 2021-09-03 19:56:13 -06:00
Sam Germain
9b953f6e60 split test_get_max_leverage into separate exchange files 2021-09-03 19:25:16 -06:00
Sam Germain
1b20b4f3c7 Wrote failing tests for exchange.set_leverage and exchange.set_margin_mode 2021-09-03 19:00:04 -06:00
Sam Germain
c7a2e6c2c6 completed set_margin_mode 2021-09-03 18:11:39 -06:00
Rik Helsen
eb0362c29e ️ ️install_ta-lib.sh - Run ldconfig after make install 2021-09-03 23:52:40 +02:00
Matthias
493fb35073 Fix uvicorn not working properly on windows 2021-09-03 22:05:40 +02:00
Matthias
91779ee0cc Merge pull request #5524 from freqtrade/kucoin_tif
Improve generated configuration templates, support kucoin TIF
2021-09-03 19:46:58 +02:00
Rikj000
103a8e827e setup.sh - Use build_helpers/install_ta-lib.sh for TA-Lib installation 2021-09-03 16:37:36 +02:00
Matthias
2f92838c39 Properly close parenteses in exchange doc 2021-09-03 16:19:27 +02:00
Matthias
b4130dfabb Use volumePairlist instead of staticPairlist in generated config 2021-09-03 09:23:26 +02:00
Matthias
c489e6825c Simplify binance blacklist 2021-09-03 09:18:15 +02:00
Matthias
68f13173bc Update new-config templates to use USDT by default 2021-09-03 08:59:43 +02:00
Matthias
e64ccd8fc1 Add new_config section for kucoin 2021-09-03 08:57:53 +02:00
Matthias
19ad165483 Add time_in_force for kucoin 2021-09-03 08:48:53 +02:00
Matthias
93c1dff71b Allow adding new additional headers 2021-09-02 21:02:45 +02:00
Sam Germain
073426f25c set margin mode exchange function 2021-09-01 23:40:32 -06:00
Matthias
5184cc7749 Merge branch 'develop' into feat/short 2021-09-02 07:03:14 +02:00
Matthias
f59ba92920 Merge pull request #5413 from freqtrade/feat/backtest_detail
Add backtest-detail to allow intra-candle backtests
2021-09-01 19:48:12 +02:00
Matthias
ab5e63cbdd Merge pull request #5520 from freqtrade/dependabot/docker/python-3.9.7-slim-buster
Bump python from 3.9.6-slim-buster to 3.9.7-slim-buster
2021-09-01 13:40:54 +02:00
Matthias
b65a15d8b4 Merge pull request #5501 from pan-long/hdf5-path
Export HDF5 and CBLOSC paths.
2021-09-01 07:06:28 +02:00
dependabot[bot]
87fa49d529 Bump python from 3.9.6-slim-buster to 3.9.7-slim-buster
Bumps python from 3.9.6-slim-buster to 3.9.7-slim-buster.

---
updated-dependencies:
- dependency-name: python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-01 03:01:49 +00:00
Matthias
b0c4f079c2 Merge branch 'develop' into feat/backtest_detail 2021-08-31 20:16:42 +02:00
Matthias
1cbe303434 Add documentation for --detail-timeframe 2021-08-31 19:58:08 +02:00
Matthias
525aa234dc Merge pull request #5516 from yehya-dev/patch-1
Update bot-basics.md
2021-08-31 16:58:01 +02:00
Matthias
da5f8c87ae Add stake_currency to strategy interface
allows type-completion in editors
2021-08-31 07:18:57 +02:00
Yehya
4cc1f2b4a4 Update bot-basics.md
Term usage mistake (The first in the pair is the base and second is the quote)
2021-08-31 10:48:09 +05:30
Matthias
ab9a4375cc Merge pull request #5504 from pan-long/unlimited-quote
Surround "unlimited" by double quotes in build config.
2021-08-30 20:33:21 +02:00
Matthias
2a0c95a2e7 Update freqtrade/commands/build_config_commands.py 2021-08-30 20:00:52 +02:00
Matthias
b25a161e22 Merge pull request #5507 from freqtrade/dependabot/pip/develop/plotly-5.3.0
Bump plotly from 5.2.1 to 5.3.0
2021-08-30 06:42:01 +02:00
Matthias
7f13eec5d3 Merge pull request #5510 from freqtrade/dependabot/pip/develop/mkdocs-material-7.2.5
Bump mkdocs-material from 7.2.4 to 7.2.5
2021-08-30 06:34:03 +02:00
Matthias
bf1e78fcc8 Merge pull request #5509 from freqtrade/dependabot/pip/develop/fastapi-0.68.1
Bump fastapi from 0.68.0 to 0.68.1
2021-08-30 06:33:39 +02:00
Matthias
89d7e36d64 Merge pull request #5506 from freqtrade/dependabot/pip/develop/cryptography-3.4.8
Bump cryptography from 3.4.7 to 3.4.8
2021-08-30 06:32:58 +02:00
Matthias
6682d44f05 Merge pull request #5508 from freqtrade/dependabot/pip/develop/ccxt-1.55.56
Bump ccxt from 1.55.28 to 1.55.56
2021-08-30 06:32:33 +02:00
dependabot[bot]
45c6f90691 Bump mkdocs-material from 7.2.4 to 7.2.5
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.2.4 to 7.2.5.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.2.4...7.2.5)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-30 03:01:24 +00:00
dependabot[bot]
9e0ab9c2ca Bump fastapi from 0.68.0 to 0.68.1
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.68.0 to 0.68.1.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.68.0...0.68.1)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-30 03:01:19 +00:00
dependabot[bot]
26451e8c01 Bump ccxt from 1.55.28 to 1.55.56
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.55.28 to 1.55.56.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.55.28...1.55.56)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-30 03:01:14 +00:00
dependabot[bot]
d0504c47ef Bump plotly from 5.2.1 to 5.3.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.2.1 to 5.3.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.2.1...v5.3.0)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-30 03:01:09 +00:00
dependabot[bot]
c64ebeb6e2 Bump cryptography from 3.4.7 to 3.4.8
Bumps [cryptography](https://github.com/pyca/cryptography) from 3.4.7 to 3.4.8.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/3.4.7...3.4.8)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-30 03:01:05 +00:00
LoveIsGrief
c17595b314 Docs: Mention Performance Warning for strategies
Related to #5408
2021-08-29 20:00:59 +02:00
Pan Long
20878290a0 Surround "unlimited" by double quotes in build config. 2021-08-30 01:02:48 +08:00
Pan Long
c14d8ea827 Export HDF5 and CBLOSC paths.
This is needed if homebrew isn't installed in the standard path, say,
/usr/local/.
2021-08-29 16:34:01 +08:00
Matthias
a6b4b8bfd9 Merge pull request #5500 from freqtrade/clarify_exchange_error
Clarify exception on load when markets could not be loaded
2021-08-29 09:42:17 +02:00
Matthias
1895230afe Clarify exception on load when markets could not be loaded
closes #5498
2021-08-29 09:18:46 +02:00
Matthias
89581ad25c Fix typo in protections hyperopt doc
closes #5499
2021-08-29 08:24:31 +02:00
Matthias
0a52d7c24f Merge pull request #5495 from LoveIsGrief/docs/minor-fixes
Docs: Minor grammar fixes
2021-08-28 20:09:24 +02:00
LoveIsGrief
f79b30e886 Docs: Minor fixes 2021-08-28 18:51:43 +02:00
Matthias
19b3e8a8c5 Merge pull request #5493 from pan-long/develop
Remove extra comma after the last element in binance pair_blacklist.
2021-08-28 16:20:26 +02:00
Pan Long
482e65453f Remove extra comma after the last element in binance pair_blacklist. 2021-08-28 21:57:54 +08:00
Matthias
b4d869e8c4 Merge pull request #5491 from freqtrade/new_release
New release 2021.8
2021-08-28 11:45:59 +02:00
Matthias
ac0dada962 Update Version to develop again 2021-08-28 10:43:49 +02:00
Matthias
c6f38bc2f3 Merge pull request #5487 from freqtrade/new_release
New release 2021.8
2021-08-28 10:38:48 +02:00
Matthias
a38b72af91 Merge branch 'develop' into new_release 2021-08-27 20:18:37 +02:00
Matthias
6b2bcd9bdc Merge pull request #5490 from freqtrade/expired_timeout
Add expired to list of canceled statuses
2021-08-27 20:18:03 +02:00
Matthias
ef9c1addcf Add expired to list of canceled statuses 2021-08-27 19:54:53 +02:00
Matthias
b3a4b0fbde Version bump to 2021.8 2021-08-27 07:10:13 +02:00
Matthias
3e10f7e2d8 Merge branch 'stable' into new_release 2021-08-27 07:09:59 +02:00
Matthias
07ce6bf3a6 Merge pull request #5484 from freqtrade/small_refactorings
Small refactorings
2021-08-26 20:14:38 +02:00
Matthias
2ce458810b rename default_hyperopt_loss file 2021-08-26 19:39:57 +02:00
Matthias
07d71f014f Rename defaultStrategy file 2021-08-26 19:38:41 +02:00
Matthias
6d96b11279 Rename DefaultStrategy 2021-08-26 07:25:53 +02:00
Matthias
df1c0540ab Rename Hyperopt Test Class 2021-08-26 07:20:05 +02:00
Matthias
0d8e105a33 Rename legacystrategy file 2021-08-26 07:14:49 +02:00
Matthias
58ecb34a66 Allow DefaultHyperopts as hyperopt name 2021-08-26 07:13:18 +02:00
Matthias
fbf8eb4526 Rename test-legacy strategy 2021-08-26 07:04:33 +02:00
Matthias
1f3ccc2587 DefaultStrategy does not need to be limited 2021-08-26 07:00:15 +02:00
Matthias
c4be52d1c3 rename execute_sell to execute_trade_exit 2021-08-26 06:53:42 +02:00
Matthias
63844d39f6 Rename execute_buy to execute_entry 2021-08-26 06:48:26 +02:00
Matthias
b61735937c Replace Patch_get_signal with proper calls 2021-08-25 21:05:55 +02:00
Matthias
053d6d8ee1 Merge branch 'feat/short' into pr/samgermain/5378 2021-08-25 20:34:52 +02:00
Matthias
e1c3b7fd8c Merge branch 'develop' into feat/short 2021-08-25 20:31:40 +02:00
Matthias
7fb570cc58 hyperopt Fallback methods should not be used. 2021-08-25 20:28:55 +02:00
Matthias
68dd349094 Update hyperopt docs regarding protections 2021-08-25 20:04:10 +02:00
Matthias
3745966c6c Update help-docstring for hyperopt 2021-08-25 20:01:00 +02:00
Matthias
23d21d8ace Fix wrong message if protection-space is missing
closes #5480
2021-08-25 19:57:10 +02:00
Matthias
4b36276e4f Improve has_space test 2021-08-25 19:54:26 +02:00
Matthias
8a9407bac9 Don't hard-fail when fetch_ticker doesn't return a value
closes #5477
2021-08-25 07:13:59 +02:00
Matthias
cb4889398b Fix backtesting bug 2021-08-25 07:03:48 +02:00
Matthias
6b93c71d15 Small refactorings, use only enter_long columns 2021-08-25 06:49:06 +02:00
Matthias
b951f59f89 Fix patch_get_signal 2021-08-24 21:03:13 +02:00
Matthias
c004942588 Merge branch 'feat/short' into pr/samgermain/5378 2021-08-24 20:53:45 +02:00
Matthias
f4242106d9 Merge branch 'develop' into feat/short 2021-08-24 20:53:21 +02:00
Matthias
60b476611c Simplify a number of tests by relying on default arguments 2021-08-24 20:51:59 +02:00
Matthias
6524edbb4e Simplify should_exit interface 2021-08-24 20:47:54 +02:00
Matthias
f3b6a0a797 Fix some type errors 2021-08-24 20:40:35 +02:00
Matthias
f9f32a15bb Update plotting tests for new strategy interface 2021-08-24 20:30:42 +02:00
Matthias
9a03cb96f5 Update get_signal 2021-08-24 20:24:51 +02:00
Matthias
46285cd77e Fix some namings in freqtradebot 2021-08-24 20:07:39 +02:00
Matthias
b40f985b13 Add short-exit logic to backtesting 2021-08-24 20:02:40 +02:00
Matthias
eb71ee847c Rename backtest index constants 2021-08-24 06:56:06 +02:00
Matthias
11bd8e912e Fix some tests 2021-08-24 06:52:28 +02:00
Matthias
7a977a8eaf Merge branch 'feat/short' into pr/samgermain/5378 2021-08-24 06:28:16 +02:00
Matthias
957551ea97 Merge branch 'develop' into feat/short 2021-08-24 06:25:06 +02:00
Matthias
faf5cfa66d Update some tests for updated backtest interface 2021-08-23 21:35:28 +02:00
Matthias
7373b39015 Initial support for backtesting with short 2021-08-23 21:16:26 +02:00
Matthias
3e8164bfca Use proper exchange name in backtesting 2021-08-23 21:13:47 +02:00
Matthias
9add3bf808 Add enter_long compatibility layer 2021-08-23 21:12:46 +02:00
Matthias
9691563066 Merge pull request #5472 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.23
Bump sqlalchemy from 1.4.22 to 1.4.23
2021-08-23 19:26:44 +02:00
Sam Germain
07de5d11ca Removed a bug causing errors from freqtradebot 2021-08-23 00:25:08 -06:00
Sam Germain
317a454c0e Removed shorting from tests/optimize/hyperopts/default_hyperopt.py and created another tests/optimize/hyperopts/short_hyperopt.py with long and shorting 2021-08-23 00:24:49 -06:00
Sam Germain
61ad38500a Reverted freqtrade/templates/*hyperopt* files back to no shorting 2021-08-23 00:18:15 -06:00
Sam Germain
53b51ce8cf Reverted freqtrade/templates/sample_strategy back to no shorting, and created a separate sample short strategy 2021-08-23 00:17:20 -06:00
Sam Germain
0afeb269ad Removed unnecessary TODOs 2021-08-23 00:15:35 -06:00
Sam Germain
9f6b6f04b4 Added False to self.strategy.get_signal 2021-08-22 23:55:34 -06:00
Sam Germain
e5b2b64a3f Changed stoploss side on some tests 2021-08-22 23:36:36 -06:00
Sam Germain
0a624e70ee added tests for min stake amount with leverage 2021-08-22 23:28:03 -06:00
Matthias
aafb868cc4 Merge pull request #5471 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.20
Bump prompt-toolkit from 3.0.19 to 3.0.20
2021-08-23 07:07:50 +02:00
Matthias
c2b7577e94 Merge pull request #5469 from freqtrade/dependabot/pip/develop/ccxt-1.55.28
Bump ccxt from 1.55.20 to 1.55.28
2021-08-23 06:41:47 +02:00
Matthias
3e296dee24 Merge pull request #5470 from freqtrade/dependabot/pip/develop/types-cachetools-4.2.0
Bump types-cachetools from 0.1.10 to 4.2.0
2021-08-23 06:39:43 +02:00
Sam Germain
8644449c33 Removed changes from tests/strategy/strats that hyperopted short parameters, because these are supposed to be legacy tests 2021-08-22 21:47:02 -06:00
Sam Germain
5ca3f49cb5 merged with feat/short after feat/short added styling and comment changes PR 2021-08-22 21:37:20 -06:00
dependabot[bot]
345c7ab64b Bump sqlalchemy from 1.4.22 to 1.4.23
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.22 to 1.4.23.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-23 03:01:42 +00:00
dependabot[bot]
90f1845eaf Bump prompt-toolkit from 3.0.19 to 3.0.20
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.19 to 3.0.20.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.19...3.0.20)

---
updated-dependencies:
- dependency-name: prompt-toolkit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-23 03:01:33 +00:00
dependabot[bot]
0f9bfcf8b0 Bump types-cachetools from 0.1.10 to 4.2.0
Bumps [types-cachetools](https://github.com/python/typeshed) from 0.1.10 to 4.2.0.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-23 03:01:28 +00:00
dependabot[bot]
4ee467f857 Bump ccxt from 1.55.20 to 1.55.28
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.55.20 to 1.55.28.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.55.20...1.55.28)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-23 03:01:26 +00:00
Sam Germain
488d729574 Merge branch 'feat/short' into lev-exchange 2021-08-22 20:59:33 -06:00
Sam Germain
70ebf09871 exchange - kraken - minor changes 2021-08-22 20:58:22 -06:00
Matthias
3026583ed4 Reduce verbosity of "is in blacklist" logging 2021-08-22 19:40:43 +02:00
Matthias
5582737093 Merge pull request #5467 from JoeSchr/patch-6
Update strategy-advanced.md
2021-08-22 19:29:16 +02:00
JoeSchr
04b4deab58 Update strategy-advanced.md
Add `` for consistency
2021-08-22 20:14:36 +03:00
Matthias
56759cea7b Add "high fee rate" blocker to fees from trades
part of #5415 (potentially fixing this)
2021-08-22 14:37:45 +02:00
Matthias
d03444e5f8 Merge pull request #5447 from samgermain/lev-strat-name-changes
Lev strat name changes
2021-08-22 13:56:57 +02:00
Sam Germain
6ac0ab0233 Added short functionality to exchange stoplss methods 2021-08-21 21:10:03 -06:00
Sam Germain
a5be535cc9 strategy interface: removed some changes 2021-08-21 17:06:04 -06:00
Sam Germain
4ac2237937 Changed ftx set_leverage implementation 2021-08-21 16:26:04 -06:00
Sam Germain
f5fd8dcc05 Added error handlers to api functions and made a logger warning in fill_leverage_brackets 2021-08-21 01:13:51 -06:00
Matthias
34456b9798 Merge pull request #5456 from mablue/download_process
Download-data log process added
2021-08-21 07:12:04 +02:00
Sam Germain
84bc4dd740 Removed some outdated TODOs and whitespace 2021-08-20 18:50:02 -06:00
Sam Germain
97bb555d41 Implemented fill_leverage_brackets get_max_leverage and set_leverage for binance, kraken and ftx. Wrote tests test_apply_leverage_to_stake_amount and test_get_max_leverage 2021-08-20 18:23:21 -06:00
Masoud Azizi
127f470bc3 .* ADDED 2021-08-20 19:29:33 +02:00
Masoud Azizi
40ad451019 Download-data log process added
Download-data log process added

pytest assert solved
2021-08-20 14:52:56 +00:00
Matthias
695a1e21bf Set gate.io download limit to 1000 candles 2021-08-20 06:51:04 +02:00
Matthias
ba5abb20bd Run compat ci for gate.io 2021-08-20 06:30:27 +02:00
Matthias
19158ba7da Merge pull request #5450 from topscoder/patch-1
Fix typo
2021-08-19 06:44:41 +02:00
Sam Germain
55c070f1bb Added interface leverage method 2021-08-18 16:52:34 -06:00
Sam Germain
dc4090234d Added interface leverage method 2021-08-18 16:52:34 -06:00
Sam Germain
092780df9d condensed strategy methods down to 2 2021-08-18 16:52:34 -06:00
Sam Germain
d4a7d2d444 Added short and exit_short to strategy 2021-08-18 16:52:20 -06:00
Sam Germain
314359dd6e strategy interface changes to comments to mention shorting 2021-08-18 13:23:04 -06:00
Sam Germain
e2d5299116 Name changes for strategy 2021-08-18 13:22:54 -06:00
Matthias
f7087feeb1 Merge pull request #5347 from Axel-CH/custom_order_price
Custom order price
2021-08-18 20:59:40 +02:00
topscoder
dc0b4d07d4 Fix typo
Reseting -> Resetting
2021-08-18 20:52:11 +02:00
Matthias
9951f51079 Update test to ensure direction of movement is correct 2021-08-18 20:24:19 +02:00
Matthias
d97fc1e484 Update docs/strategy-advanced.md 2021-08-18 19:55:11 +02:00
axel
ffd60f392b add custom price max distance ratio option in configuration.md 2021-08-18 05:22:45 -04:00
axel
9469c6dfa9 small cosmetic changes in doc related to custom entry and exit exemple 2021-08-18 05:10:29 -04:00
axel
2fb9f6e2f4 rename custom price max distance option in config, update formula and test associated 2021-08-18 05:07:37 -04:00
Matthias
acb00cd072 Use realistic threshold for "get_fee" test 2021-08-18 06:25:52 +02:00
Matthias
6e41add40e Version bump ccxt
closes #5437
2021-08-18 06:25:30 +02:00
Matthias
9871268529 Merge pull request #5443 from freqtrade/fiat_convert_duplicate_symbols
Simplify fiat_convert and handle multi-mappings
2021-08-17 21:07:45 +02:00
Matthias
4164f93853 Simplify fiat_convert and handle multi-mappings 2021-08-17 20:50:52 +02:00
Matthias
81715d0b9d Merge pull request #5434 from freqtrade/fix_asyncio_exception
Fix no-event-loop available
2021-08-17 07:10:22 +02:00
Matthias
37e3d20357 Fix no-event-loop available
closes #5433
2021-08-17 06:54:10 +02:00
Matthias
9758bed250 Fix refresh_latest_ohlcv bug 2021-08-17 06:44:36 +02:00
Matthias
f471915828 Add test for refresh_latest_ohlcv caching 2021-08-17 06:44:36 +02:00
axel
6ab99369f2 Merge branch 'develop' of https://github.com/freqtrade/freqtrade into custom_order_price 2021-08-16 23:26:29 -04:00
axel
f08d673a52 add details and exemple of custom_price_max_distance_percent usage in doc 2021-08-16 23:26:08 -04:00
axel
17daba321b add custom_price_max_distance_percent config option in constants 2021-08-16 23:09:30 -04:00
axel
faff40577a fix test_execute_buy In case of custom entry price 2021-08-16 15:33:05 -04:00
axel
3ea4b2ba00 add custom_price_max_distance_percent security to get_valid_price, update tests 2021-08-16 15:18:57 -04:00
Matthias
cf80cabc84 Merge pull request #5430 from slowy07/minor-fixing
fix: typo spelling grammar
2021-08-16 21:15:12 +02:00
Matthias
3cc510f1a8 Merge pull request #5422 from freqtrade/dependabot/pip/develop/uvicorn-0.15.0
Bump uvicorn from 0.14.0 to 0.15.0
2021-08-16 20:17:28 +02:00
Matthias
0264d77d86 Fix test for fixed typo 2021-08-16 20:02:25 +02:00
slowy07
f24a951ec5 fix: typo spelling grammar 2021-08-16 19:16:24 +07:00
Matthias
4115121c24 Fix missing return statement in is_Relative_to 2021-08-16 07:26:58 +02:00
Matthias
4b65206e6b Add compat code for is_relative_to 2021-08-16 07:09:05 +02:00
Matthias
4a75f9bb5b Merge pull request #5425 from freqtrade/dependabot/pip/develop/pandas-1.3.2
Bump pandas from 1.3.1 to 1.3.2
2021-08-16 06:49:53 +02:00
Matthias
6b2ef36a56 Prevent directory traversal in UI Serving
Checking for directory base

closes #5427
2021-08-16 06:47:53 +02:00
Matthias
abddb3ef25 Add test for directory traversal 2021-08-16 06:45:23 +02:00
Matthias
c6af4f6c6b Merge pull request #5424 from freqtrade/dependabot/pip/develop/plotly-5.2.1
Bump plotly from 5.1.0 to 5.2.1
2021-08-16 06:31:01 +02:00
dependabot[bot]
108a6cb897 Bump pandas from 1.3.1 to 1.3.2
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/master/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.3.1...v1.3.2)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-16 04:28:42 +00:00
Matthias
a058737c72 Merge pull request #5421 from freqtrade/dependabot/pip/develop/mkdocs-material-7.2.4
Bump mkdocs-material from 7.2.2 to 7.2.4
2021-08-16 06:22:01 +02:00
Matthias
c08bbcb16d Merge pull request #5426 from freqtrade/dependabot/pip/develop/numpy-1.21.2
Bump numpy from 1.21.1 to 1.21.2
2021-08-16 06:14:07 +02:00
Matthias
d644c12a55 Merge pull request #5420 from freqtrade/dependabot/pip/develop/ccxt-1.55.6
Bump ccxt from 1.54.74 to 1.55.6
2021-08-16 06:13:07 +02:00
Matthias
6da3c07c2d Merge pull request #5423 from freqtrade/dependabot/pip/develop/flake8-tidy-imports-4.4.1
Bump flake8-tidy-imports from 4.3.0 to 4.4.1
2021-08-16 06:11:17 +02:00
dependabot[bot]
3878e5186e Bump numpy from 1.21.1 to 1.21.2
Bumps [numpy](https://github.com/numpy/numpy) from 1.21.1 to 1.21.2.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.21.1...v1.21.2)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-16 03:01:34 +00:00
dependabot[bot]
a10fd66906 Bump plotly from 5.1.0 to 5.2.1
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.1.0 to 5.2.1.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.1.0...v5.2.1)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-16 03:01:21 +00:00
dependabot[bot]
d8607b2ce8 Bump flake8-tidy-imports from 4.3.0 to 4.4.1
Bumps [flake8-tidy-imports](https://github.com/adamchainz/flake8-tidy-imports) from 4.3.0 to 4.4.1.
- [Release notes](https://github.com/adamchainz/flake8-tidy-imports/releases)
- [Changelog](https://github.com/adamchainz/flake8-tidy-imports/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/flake8-tidy-imports/compare/4.3.0...4.4.1)

---
updated-dependencies:
- dependency-name: flake8-tidy-imports
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-16 03:01:18 +00:00
dependabot[bot]
7125793249 Bump uvicorn from 0.14.0 to 0.15.0
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.14.0 to 0.15.0.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.14.0...0.15.0)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-16 03:01:16 +00:00
dependabot[bot]
e7b6a996df Bump mkdocs-material from 7.2.2 to 7.2.4
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.2.2 to 7.2.4.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.2.2...7.2.4)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-16 03:01:10 +00:00
dependabot[bot]
37d4545123 Bump ccxt from 1.54.74 to 1.55.6
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.54.74 to 1.55.6.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.54.74...1.55.6)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-16 03:01:06 +00:00
Matthias
dda8276589 Update documentation for sell_profit_offset
As highlighed in #5393
2021-08-15 20:01:54 +02:00
Matthias
322ea2481e Add log-message for edge-case 2021-08-15 19:28:36 +02:00
Matthias
ed6776c5cd Fix disappearing pairlist bug 2021-08-15 17:06:16 +02:00
Matthias
4f10a88529 Reduce verbosity when incompatible pairs are detected 2021-08-15 15:14:57 +02:00
Matthias
fa4ec9f83e Add explicit test for get_sell_trade_entry 2021-08-15 14:52:24 +02:00
Matthias
3406b889b6 First test 2021-08-14 17:06:28 +02:00
Matthias
8405ccc15e Seperate detail data loading from regular backest-data loading 2021-08-14 16:33:01 +02:00
Matthias
88172fab82 Allow "detailed" backtesting timeframe to look into the candle 2021-08-14 16:04:23 +02:00
Matthias
123971d271 Don't change passed in parameter variable 2021-08-14 16:02:31 +02:00
Matthias
c456cfc312 Merge branch 'develop' into pr/Axel-CH/5347 2021-08-14 09:13:30 +02:00
Matthias
0f7ddabec8 Slightly reword documentation 2021-08-14 09:05:03 +02:00
Matthias
bb472ff98b Improve new-exchange documentation 2021-08-14 08:47:14 +02:00
Matthias
db5a944396 Cleanup GHA node after building images 2021-08-14 08:46:19 +02:00
Matthias
c7147311f8 Fix json syntax error in config template 2021-08-13 17:14:38 +02:00
axel
0a6c0c429a add a note concerning default custom entry or exit price in documentation 2021-08-13 11:12:33 -04:00
axel
20cc60bfde update get_valid_price function and test cases to handle inputs with try catch 2021-08-13 11:06:15 -04:00
axel
dbf7f34ecb add unit test to function get_valid_price 2021-08-12 15:30:49 -04:00
axel
b098ce4e76 add function get_valid_price to validate type of custom entry or exit price and use default proposed price if invalid 2021-08-12 15:13:14 -04:00
axel
ae11be3970 manage None or string value returned by custom_entry_price and add unit test for those cases 2021-08-12 14:47:01 -04:00
Matthias
e03784d98d Fix filled exception
closes #5404
2021-08-12 05:02:56 +00:00
Matthias
bfc3968ab3 Merge pull request #5400 from freqtrade/limit_dry_market_slippage
Add max-slippage limiting for dry-run orders to avoid insane market o…
2021-08-12 06:54:55 +02:00
Matthias
fad253ad51 Version bump ccxt to 1.54.74
closes #5401
2021-08-12 06:53:55 +02:00
Matthias
bdbac37be7 Merge pull request #5399 from rokups/rk/fix-buy-tag-backtest
Fix buy_tag not being saved to trade object.
2021-08-12 06:36:33 +02:00
Rokas Kupstys
f6267c7514 Fix buy_tag not being saved to trade object.
Column is mistakenly excluded because advise_buy() creating this column runs after code detecting presence of buy_tag column.
2021-08-11 15:21:23 +03:00
Matthias
4e83d5c4c6 Merge pull request #5398 from ipqhjjybj/develop
The list is changed during running!
2021-08-11 12:38:44 +02:00
Matthias
61c076563f Add max-slippage limiting for dry-run orders to avoid insane market order fills 2021-08-11 12:11:29 +02:00
Sam Germain
180d92f879 Merge branch 'feat/short' into lev-exchange 2021-08-11 01:46:41 -06:00
ipqhjjybj
65d025923d add code 2021-08-11 14:35:16 +08:00
Matthias
0b6aedbc4c Merge pull request #5395 from freqtrade/fix/hyperopt-show
Stream hyperopt-result in small batches
2021-08-10 19:54:02 +02:00
Matthias
039d6384ed Stream hyperopt-result in small batches
Avoiding memory-exhaustion on huge hyperopt results

closes #5305
closes #5149
2021-08-10 10:12:57 +02:00
Matthias
124e9519e4 Merge pull request #5394 from freqtrade/backtest_provide_first_cancdle
Cache dataframe before cutting the first candle
2021-08-10 10:04:23 +02:00
Matthias
3f160c7144 Cache dataframe before cutting the first candle
This allows providing the "current closed" candle in all cases.
2021-08-10 09:14:29 +02:00
Matthias
cf27968b97 Properly preserve trade's low during backtesting 2021-08-09 19:38:56 +02:00
Matthias
5bfb9edf02 Only query date once from list 2021-08-09 15:42:17 +02:00
Matthias
8bb42a07ce Merge pull request #5391 from freqtrade/fix/get_analyzed_pair
Fix recently introduced lookahead bias in backtesting
2021-08-09 15:25:12 +02:00
Matthias
58e4255ae3 Merge pull request #5389 from pcassimans/patch-1
Update README.md
2021-08-09 15:08:14 +02:00
Matthias
895b912c71 Fix recently introduced lookahead bias in backtesting
closes #5388
2021-08-09 14:54:47 +02:00
Matthias
a5f796bc97 refactor ohlcvdata_to_dataframe to advise_all_indicators 2021-08-09 14:53:18 +02:00
Matthias
519c256b88 Fix kucoin typo in index.md as well 2021-08-09 14:43:35 +02:00
pcassimans
927ac24f82 Update README.md
Fix Typo of Kukoin to Kucoin
2021-08-09 14:21:59 +02:00
Matthias
98fe3e73de Merge pull request #5381 from samgermain/interest-change
Changed interest implementation (Margin)
2021-08-09 11:58:08 +02:00
Matthias
599ae15460 Parametrize tests 2021-08-09 11:35:27 +02:00
Matthias
f17942b68f Fix random test failure 2021-08-09 11:18:18 +02:00
Matthias
f3c603073e Merge pull request #5386 from freqtrade/dependabot/pip/develop/types-requests-2.25.6
Bump types-requests from 2.25.1 to 2.25.6
2021-08-09 10:43:35 +02:00
Sam Germain
de4b0d1f7c Merged with feat/short 2021-08-09 00:24:25 -06:00
Sam Germain
06206335d9 Added tests for interest_function 2021-08-09 00:00:50 -06:00
Sam Germain
0733d69cda Added TODOs to test files 2021-08-08 23:24:38 -06:00
dependabot[bot]
5919992ad2 Bump types-requests from 2.25.1 to 2.25.6
Bumps [types-requests](https://github.com/python/typeshed) from 2.25.1 to 2.25.6.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-09 05:24:31 +00:00
Sam Germain
53a6ce881c Added set_leverage function to exchange 2021-08-08 23:24:03 -06:00
Sam Germain
4ca1d25db1 Removed setup leverage and transfer functions from exchange 2021-08-08 23:24:03 -06:00
Sam Germain
2c0077abc7 Exchange stoploss function takes side 2021-08-08 23:24:03 -06:00
Sam Germain
b48b768757 Added get_interest template method in exchange 2021-08-08 23:24:03 -06:00
Sam Germain
120cad88af Add prep functions to exchange 2021-08-08 23:24:03 -06:00
Matthias
9e6ed5ada0 Merge pull request #5382 from freqtrade/dependabot/pip/develop/types-filelock-0.1.5
Bump types-filelock from 0.1.4 to 0.1.5
2021-08-09 07:10:46 +02:00
Matthias
47f641d12f Remove hyperopt-pickle result support 2021-08-09 07:04:18 +02:00
dependabot[bot]
b89a993890 Bump types-filelock from 0.1.4 to 0.1.5
Bumps [types-filelock](https://github.com/python/typeshed) from 0.1.4 to 0.1.5.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-filelock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-09 04:47:41 +00:00
Matthias
b3ca2d0c57 Merge pull request #5380 from samgermain/mg-to-lev
Replaced the term margin with leverage when it should say leverage (All comments)
2021-08-09 06:37:14 +02:00
Matthias
6a227fe9eb Merge pull request #5383 from freqtrade/dependabot/pip/develop/types-cachetools-0.1.10
Bump types-cachetools from 0.1.9 to 0.1.10
2021-08-09 06:20:28 +02:00
Matthias
70f8bff8ce Merge pull request #5384 from freqtrade/dependabot/pip/develop/ccxt-1.54.62
Bump ccxt from 1.54.24 to 1.54.62
2021-08-09 06:16:35 +02:00
Matthias
d2d5590252 Merge pull request #5385 from freqtrade/dependabot/pip/develop/types-tabulate-0.8.2
Bump types-tabulate from 0.1.1 to 0.8.2
2021-08-09 06:16:05 +02:00
dependabot[bot]
59626b4ffc Bump types-tabulate from 0.1.1 to 0.8.2
Bumps [types-tabulate](https://github.com/python/typeshed) from 0.1.1 to 0.8.2.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-tabulate
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-09 03:01:27 +00:00
dependabot[bot]
bad25b753c Bump ccxt from 1.54.24 to 1.54.62
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.54.24 to 1.54.62.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.54.24...1.54.62)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-09 03:01:25 +00:00
dependabot[bot]
32e8e3b242 Bump types-cachetools from 0.1.9 to 0.1.10
Bumps [types-cachetools](https://github.com/python/typeshed) from 0.1.9 to 0.1.10.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-09 03:01:19 +00:00
Sam Germain
8e941e6836 Changed interest implementation 2021-08-08 17:09:17 -06:00
Sam Germain
0545a0ed3c Replaced the term margin with leverage when it should say leverage 2021-08-08 17:04:24 -06:00
Matthias
756112c84d Merge pull request #5374 from freqtrade/rem_legacy_hyperopt
Remove legacy hyperopt
2021-08-08 12:42:52 +02:00
Matthias
3bd0c3d009 Remove legacy code from export to csv 2021-08-08 11:02:54 +02:00
Matthias
be240566ba Fix random test failure 2021-08-08 10:57:20 +02:00
Matthias
faf16a64e5 Remove legacy hyperopt file support 2021-08-08 10:22:45 +02:00
Matthias
0ae4eccea5 Refactor Hyperopt-list and hyperopt-show to reduce some duplicate code 2021-08-08 10:06:35 +02:00
Matthias
7eaadb2630 Add custom-* methods to bot-basics
closes #5370
2021-08-08 09:50:50 +02:00
Matthias
ecdecb02fa Merge pull request #5365 from samgermain/enums
Added leverage enums
2021-08-08 09:48:11 +02:00
Sam Germain
4630f69830 Removed short, exit_short from enums 2021-08-08 01:36:59 -06:00
Sam Germain
658f138e30 Added short_tag to SignalTagType 2021-08-07 20:08:52 -06:00
Sam Germain
71963e65f1 Removed ExchangeName Enum 2021-08-07 18:47:03 -06:00
Matthias
cf70b34ff0 Add min_value to all volumepairlist samples 2021-08-07 16:15:42 +02:00
Matthias
5393c55b51 Document min_value for VolumePairList
closes #5260
2021-08-07 16:01:20 +02:00
Sam Germain
7e6b281b75 Merge branch 'feat/short' of https://github.com/freqtrade/freqtrade into feat/short 2021-08-07 01:43:56 -06:00
Matthias
92ed7c0bf8 Merge branch 'develop' into feat/short 2021-08-07 09:42:25 +02:00
Matthias
6532aba765 Merge pull request #5360 from freqtrade/hyperopt_protections
Hyperopt protections and Boolean parameter
2021-08-07 09:42:05 +02:00
Matthias
66de30f042 Merge pull request #5368 from samgermain/autopep8-formatted
Autopep8 formatting
2021-08-07 09:29:58 +02:00
Sam Germain
9988c293b5 Merge branch 'enums' into feat/short 2021-08-06 19:30:31 -06:00
Sam Germain
9b58c58609 Merge branch 'develop' into feat/short 2021-08-06 18:12:53 -06:00
Sam Germain
b9356a5564 Autopep8 formatting 2021-08-06 16:35:39 -06:00
Sam Germain
aec82b4647 Added empty everage/__init__.py 2021-08-06 01:37:34 -06:00
Sam Germain
50d185ccd8 Added exchange_name variables to exchange classes 2021-08-06 01:23:55 -06:00
Sam Germain
241bfc409f Added leverage enums 2021-08-05 23:29:26 -06:00
axel
612b88e993 Merge branch 'develop' of https://github.com/freqtrade/freqtrade into custom_order_price 2021-08-05 18:21:31 -04:00
axel
0985b11267 add doc for custom exit price 2021-08-05 18:16:16 -04:00
axel
84d082033b fix default retval for strategy custom_entry_price 2021-08-05 18:00:31 -04:00
axel
0aeebc9d53 add test for custom exit price 2021-08-05 17:57:45 -04:00
Matthias
90c194de1f Align Readme and documentation index in supported exchange lists 2021-08-05 19:27:38 +02:00
Matthias
4d28f0ed59 Merge pull request #5363 from kamontat/patch-1
Update README link
2021-08-05 19:27:00 +02:00
Kamontat Chantrachirathumrong
eee5f174fc update link 2021-08-05 20:33:15 +07:00
axel
cb3b0cf311 add custom_exit_price in interface and freqtradebot 2021-08-04 23:09:40 -04:00
axel
f243ad4af0 add custom_exit_price in strategy interface 2021-08-04 19:09:55 -04:00
axel
f9f519fd3c add custom_exit_price function to interface 2021-08-04 18:54:17 -04:00
axel
d9b9eecd4d remove entry price reached method 2021-08-04 18:47:14 -04:00
axel
2cf781f3dd add freqtradebot execute_buy test in custom entry price case 2021-08-04 18:32:39 -04:00
Matthias
ad0e4a8567 Add BooleanParameter 2021-08-04 20:52:56 +02:00
Matthias
b73768acd1 Fix bug in property overwriting prevention 2021-08-04 20:21:56 +02:00
Matthias
3c41223333 Add test for protections-hyperopt 2021-08-04 20:01:28 +02:00
Matthias
a661e0db6e Deprecate protections from config 2021-08-04 19:43:16 +02:00
Matthias
ceed3c663b Document using protections 2021-08-04 07:17:35 +02:00
Matthias
a6454cfc39 Autoenable protections when protection-space is selected 2021-08-04 07:17:29 +02:00
Matthias
797d7e5ce6 Merge pull request #5157 from samgermain/margin-db
Margin db
2021-08-04 06:57:36 +02:00
Matthias
091bf7c4d2 Output protection space 2021-08-04 06:50:14 +02:00
Matthias
544e0da6c2 Add protection parameter space 2021-08-04 06:50:14 +02:00
Matthias
800b2eeaf0 Load protections as part of backtest()
this enables different values in hyperopt per epoch
2021-08-04 06:50:14 +02:00
Matthias
74a5cb3c21 Remove protections from full config
They are supposed to be configured in the strategy
2021-08-04 06:49:53 +02:00
Matthias
6410a6528b Add missing methods to advanced strategy template 2021-08-04 06:46:21 +02:00
axel
bc3e6deb1c remove specific test for buy with custom entry 2021-08-03 17:09:52 -04:00
axel
b644233ead rename custom_entry_price kwarg to align it to the interface 2021-08-03 17:03:27 -04:00
axel
b3dafb378e remove use_custom_entry_price as a config option 2021-08-03 16:54:28 -04:00
axel
16146357b3 reuse buy_limit_requested as rate input for custom entry price 2021-08-03 16:39:35 -04:00
axel
42e24d8b4b remove price change cancel reason in contants, will be added in another PR 2021-08-03 16:35:16 -04:00
axel
00939b63f2 flake 8 fixes 2021-08-03 16:25:18 -04:00
axel
53fb8b05e7 remove short logic in entry_price_reached function 2021-08-03 16:19:29 -04:00
axel
d9c9b7d7fc restore interface test file 2021-08-03 16:02:10 -04:00
axel
3d8c3ffd38 fix syntax error in unit test 2021-08-03 15:57:23 -04:00
axel
5284112b69 fix in custom entry function output,remove changes related to outdated prices, doc exemple minor changes 2021-08-03 15:57:23 -04:00
axel
f11f5d17e9 add feature custom entry price for live 2021-08-03 15:57:23 -04:00
Matthias
07673ef47f Update Migrations to use the latest added columns 2021-08-03 10:25:59 +02:00
Sam Germain
5b6dbbd750 Changed order of buy_tag in migrations 2021-08-03 00:23:21 -06:00
Sam Germain
d88e2ae603 Merge branch 'develop' into margin-db 2021-08-02 23:58:44 -06:00
Matthias
dfc17f2bd1 Fix ci failure 2021-08-03 07:21:11 +02:00
Matthias
4ab03f7e37 Don't load fallback methods for autohyperopt 2021-08-02 21:17:56 +02:00
Matthias
e70a742005 Reorder space methods in hyperopt 2021-08-02 21:12:10 +02:00
Matthias
adb33e763b Merge pull request #5350 from freqtrade/environment_vars
Add environment variable support
2021-08-02 20:48:23 +02:00
Matthias
c981641441 Don't fail if strategy doesn't contain sell signal 2021-08-02 20:30:46 +02:00
Matthias
d8d8261f1b Merge pull request #5318 from samgermain/combined_exchange_buy_sell
combined exchange.buy and exchange.sell
2021-08-02 20:11:09 +02:00
Matthias
3c5f06d5c0 Update tests/exchange/test_exchange.py 2021-08-02 08:31:33 +02:00
Matthias
5ead95b06b Merge pull request #5245 from sauces1313/RangeStabilityFilterMax
Range stability filter max
2021-08-02 08:06:36 +02:00
Matthias
3e5659b32f Merge pull request #5355 from freqtrade/dependabot/pip/develop/scipy-1.7.1
Bump scipy from 1.7.0 to 1.7.1
2021-08-02 08:03:44 +02:00
Matthias
b63eda3a2b Some minor cleanup and improved test coverage 2021-08-02 07:15:09 +02:00
Matthias
8485964bb7 Merge pull request #5357 from freqtrade/dependabot/pip/develop/mkdocs-material-7.2.2
Bump mkdocs-material from 7.2.1 to 7.2.2
2021-08-02 06:31:22 +02:00
Matthias
eeee92275b Merge pull request #5356 from freqtrade/dependabot/pip/develop/types-requests-2.25.1
Bump types-requests from 2.25.0 to 2.25.1
2021-08-02 06:30:14 +02:00
Matthias
d4fa50c605 Merge pull request #5353 from freqtrade/dependabot/pip/develop/ccxt-1.54.24
Bump ccxt from 1.53.72 to 1.54.24
2021-08-02 06:29:57 +02:00
Matthias
ae48012831 Merge pull request #5354 from freqtrade/dependabot/pip/develop/fastapi-0.68.0
Bump fastapi from 0.67.0 to 0.68.0
2021-08-02 06:29:42 +02:00
Matthias
5b4931897d Merge pull request #5352 from freqtrade/dependabot/pip/develop/isort-5.9.3
Bump isort from 5.9.2 to 5.9.3
2021-08-02 06:29:09 +02:00
dependabot[bot]
3a19e1610d Bump mkdocs-material from 7.2.1 to 7.2.2
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.2.1 to 7.2.2.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.2.1...7.2.2)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-02 03:01:38 +00:00
dependabot[bot]
7fd3fc98c0 Bump types-requests from 2.25.0 to 2.25.1
Bumps [types-requests](https://github.com/python/typeshed) from 2.25.0 to 2.25.1.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-02 03:01:35 +00:00
dependabot[bot]
849b8197a9 Bump scipy from 1.7.0 to 1.7.1
Bumps [scipy](https://github.com/scipy/scipy) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.7.0...v1.7.1)

---
updated-dependencies:
- dependency-name: scipy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-02 03:01:30 +00:00
dependabot[bot]
4afcea9a1c Bump fastapi from 0.67.0 to 0.68.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.67.0 to 0.68.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.67.0...0.68.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-02 03:01:25 +00:00
dependabot[bot]
4f05d31b94 Bump ccxt from 1.53.72 to 1.54.24
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.53.72 to 1.54.24.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.53.72...1.54.24)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-02 03:01:19 +00:00
dependabot[bot]
b3f057e7c0 Bump isort from 5.9.2 to 5.9.3
Bumps [isort](https://github.com/pycqa/isort) from 5.9.2 to 5.9.3.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.9.2...5.9.3)

---
updated-dependencies:
- dependency-name: isort
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-02 03:01:13 +00:00
sauces1313
059c32b067 Check for and default to 'None' 2021-08-02 02:49:49 +00:00
Matthias
056bc93bc6 backtesting needs startup_candle_count
fixes informative-pair loading  being different between --strategy-list and
--strategy.
2021-08-01 19:17:52 +02:00
Matthias
e78be75e8c Merge pull request #5351 from samgermain/persistence-tests-usdt
Changed tests in tests/test_persistence.py to use usdt prices
2021-08-01 13:36:40 +02:00
Sam Germain
047df0c212 Removed leverage references 2021-08-01 03:01:47 -06:00
Matthias
e9ef9a6d28 Use .view() to convert dates to enums
part of #5314 - fixing deprecation warning.
2021-08-01 10:31:35 +02:00
Sam Germain
90a61b1765 Changed tests in tests/test_persistence.py to use usdt prices 2021-07-31 20:44:49 -06:00
Matthias
6f8519d0a3 Add environment variable support 2021-07-31 19:26:56 +02:00
Matthias
c5e3348b89 Migrations for indexes should run in a seperate session
closes #5349
2021-07-31 16:36:28 +02:00
Matthias
1ccc89d1e9 Store fully analyzed dataframe 2021-07-31 10:00:24 +02:00
Sam Germain
ef429afb6f Removed is_oeing_trade is_closing_trade 2021-07-31 01:22:48 -06:00
Sam Germain
d6ffd23865 Merged with remote 2021-07-31 01:19:11 -06:00
Sam Germain
bc42516f68 test_update_limit_order has both a buy and sell leverage short order 2021-07-31 01:05:37 -06:00
Matthias
b1cbc75e93 Properly cache pair dataframe in backtesting (without startup-range). 2021-07-31 08:45:04 +02:00
Matthias
6abd352c0f Add test for backtesting dataframe cache 2021-07-31 08:44:09 +02:00
Sam Germain
26be620f71 Removed LocalTrade.set_is_short 2021-07-31 00:20:25 -06:00
Sam Germain
fadb0de7c7 Removed excess modes stop_loss method, removed models.is_opening_side models.is_closing_side 2021-07-31 00:12:53 -06:00
Matthias
ab3c753415 Fix develop_plot building 2021-07-30 21:23:09 +02:00
Matthias
499af5c42b Update webservermode docs
closes #5345
2021-07-30 21:04:04 +02:00
Matthias
35bf2a59a8 Improve test reliability (fix fluky test) 2021-07-30 21:02:55 +02:00
Matthias
138b126d03 Merge pull request #5299 from kevinjulian/feat/kevinjulian/add-buy-signal-name
Add buy signal name
2021-07-30 08:23:11 +02:00
Matthias
aa34889c04 Don't run migrations twice 2021-07-30 07:14:35 +02:00
Matthias
71838dc51a Merge pull request #5285 from freqtrade/backtest_startup_afte_populates
Remove startup-candles after populating buy/sell signals
2021-07-30 07:01:26 +02:00
Matthias
dad98d43be Merge pull request #5287 from GeorgeMurAlkh/develop
Dataprovider caching and trimming of historical informative.
2021-07-29 20:43:40 +02:00
Matthias
a599645b03 Merge pull request #5338 from freqtrade/new_release
New release 2021.7
2021-07-29 20:35:10 +02:00
Matthias
03064731ac Version bump 2021.7 2021-07-29 19:49:19 +02:00
Matthias
d0528a6213 Merge branch 'stable' into new_release 2021-07-29 19:49:04 +02:00
Matthias
6490b82ad6 Update docker-documentation for multiarch builds 2021-07-29 19:48:36 +02:00
Matthias
8768df647a Merge pull request #5312 from raph92/patch-3
Fix code to get Bittrex US-restricted markets
2021-07-29 07:13:42 +02:00
Matthias
cf4d1875dd Use prohibitedIn instead of isRestricted 2021-07-29 06:56:37 +02:00
Sam Germain
25c527ee67 combined exchange.buy and exchange.sell, Adding dummy mock to create_order in tests in test_freqtradebot 2021-07-28 14:55:06 -06:00
Sam Germain
3fb7f983f8 Added is_short and leverage to __repr__ 2021-07-28 12:25:56 -06:00
Sam Germain
195badeb80 Changed liquidation_price to isolated_liq 2021-07-28 12:25:56 -06:00
Sam Germain
6ad9b535a9 persistence all to one test file, use more regular values like 2.0 for persistence tests 2021-07-28 12:25:56 -06:00
Sam Germain
a900570f1a Added enter_side and exit_side computed variables to persistence 2021-07-28 12:25:56 -06:00
Sam Germain
b801eaaa54 Changed the name of a test to match it's equivelent
Removed test-analysis-lev
2021-07-28 12:25:56 -06:00
Matthias
317f4ebce0 Boolean sqlite fix for orders table 2021-07-28 12:25:56 -06:00
Matthias
071f6309cc Try fix migration tests 2021-07-28 12:25:56 -06:00
Sam Germain
af8875574c updated mkdocs and leverage docs
Added tests for set_liquidation_price and set_stop_loss
updated params in interestmode enum
2021-07-28 12:25:56 -06:00
Sam Germain
256160740e Updated interest and ratio calculations to correct functions 2021-07-28 12:25:56 -06:00
Sam Germain
8e52a3a29c updated ratio_calc_profit function 2021-07-28 12:25:55 -06:00
Sam Germain
006a60e5a4 Added docstrings to methods 2021-07-28 12:25:55 -06:00
Sam Germain
b0476ebd3e All persistence margin tests pass
Flake8 compliant, passed mypy, ran isort .
2021-07-28 12:25:55 -06:00
Sam Germain
52def4e826 Changed InterestMode enum implementation 2021-07-28 12:25:55 -06:00
Sam Germain
60572c9e0d Took liquidation price out of order completely 2021-07-28 12:25:55 -06:00
Sam Germain
0fc9d6b6ac Moved leverage and is_short variables out of trade constructors and into conftest 2021-07-28 12:25:55 -06:00
Sam Germain
b7b6d87c27 Pass all but one test, because sqalchemy messes up 2021-07-28 12:25:55 -06:00
Sam Germain
737a62be52 set initial_stop_loss in stoploss helper 2021-07-28 12:25:55 -06:00
Sam Germain
f566d83839 Tried to add liquidation price to order object, caused a test to fail 2021-07-28 12:25:55 -06:00
Sam Germain
31fa6f9c25 updated timezone.utc time 2021-07-28 12:25:55 -06:00
Sam Germain
b1098f0120 Added liquidation_price check to test_stoploss_reinitialization_short 2021-07-28 12:25:55 -06:00
Sam Germain
811cea288d Added checks for making sure stop_loss doesn't go below liquidation_price 2021-07-28 12:25:55 -06:00
Sam Germain
0bd71f87d0 made leveraged test names unique
test_adjust_stop_loss_short, test_update_market_order_shortpasses
2021-07-28 12:25:55 -06:00
Sam Germain
286427c04a Moved interest calculation to an enum 2021-07-28 12:25:55 -06:00
Sam Germain
6787461d68 updated leverage.md 2021-07-28 12:25:55 -06:00
Sam Germain
be3a9390fe Switched migrations.py check for stake_currency back to open_rate, because stake_currency is no longer a variable 2021-07-28 12:25:55 -06:00
Sam Germain
5fc587c225 Removed exchange file modifications 2021-07-28 12:25:55 -06:00
Sam Germain
a4403c0814 fixed rpc_apiserver test fails, changed test_persistence_long to test_persistence_leverage 2021-07-28 12:25:55 -06:00
Sam Germain
0ffc85fed9 Set default leverage to 1.0 2021-07-28 12:25:55 -06:00
Sam Germain
78708b27f2 Updated tests to new persistence 2021-07-28 12:25:55 -06:00
Matthias
e0d42d2eb7 Fix migrations, revert some parts related to amount properties 2021-07-28 12:25:55 -06:00
Sam Germain
e4d4d1d1f1 Wrote all tests for shorting 2021-07-28 12:25:55 -06:00
Sam Germain
f194673001 Updated ratio calculation, updated short tests 2021-07-28 12:25:55 -06:00
Sam Germain
5ac03762f0 Kraken interest test comes really close to passing
Added more trades to conftest_trades
2021-07-28 12:25:55 -06:00
Sam Germain
df360fb281 Made borrowed a computed property 2021-07-28 12:25:55 -06:00
Sam Germain
68d3699c19 Turned amount into a computed property 2021-07-28 12:25:55 -06:00
Sam Germain
efcc2adacf About 15 margin tests pass 2021-07-28 12:25:55 -06:00
Sam Germain
f5d7deedf4 added exception checks to LocalTrade.leverage and LocalTrade.borrowed 2021-07-28 12:25:55 -06:00
Sam Germain
34073135b7 Added types to setters 2021-07-28 12:25:55 -06:00
Sam Germain
d07fe1586c Set leverage and borowed to computed properties 2021-07-28 12:25:55 -06:00
Sam Germain
c24ec89dc4 Started some pytests for short and leverage
1 short test passes
2021-07-28 12:25:55 -06:00
Sam Germain
b80f8ca0af Created interest function 2021-07-28 12:25:55 -06:00
Sam Germain
000932eed0 Adding templates for leverage/short tests
All previous pytests pass
2021-07-28 12:25:55 -06:00
Sam Germain
10979361c1 Added changes suggested in pull request, fixed breaking changes,
can run the bot again
2021-07-28 12:25:55 -06:00
Sam Germain
741ca0e58c Added changed to persistance/migrations 2021-07-28 12:25:55 -06:00
Sam Germain
7823a33cbb Updated Trade class 2021-07-28 12:25:55 -06:00
Sam Germain
c7e8439c76 Updated LocalTrade and Order classes 2021-07-28 12:25:55 -06:00
Matthias
a7b8de92a3 Merge pull request #5309 from faustogut/patch-1
Fix configuration.md typos
2021-07-27 20:01:41 +02:00
Matthias
d8298a295b Merge pull request #5329 from freqtrade/dependabot/pip/develop/ccxt-1.53.72
Bump ccxt from 1.53.25 to 1.53.72
2021-07-27 19:27:11 +02:00
Matthias
b1feabc816 Merge pull request #5319 from Rikj000/docs/strategy-advanced/add-current_time-to-confirm_trade_entry-exit
Docs - StrategyAdvanced - Added `current_time` to `confirm_trade_entry/exit()` examples
2021-07-27 19:26:50 +02:00
Matthias
7480b5cd0f Merge pull request #5322 from freqtrade/dependabot/pip/develop/mkdocs-material-7.2.1
Bump mkdocs-material from 7.1.11 to 7.2.1
2021-07-27 19:24:24 +02:00
Matthias
ce3e81ae5f Merge pull request #5323 from freqtrade/dependabot/pip/develop/fastapi-0.67.0
Bump fastapi from 0.66.0 to 0.67.0
2021-07-27 08:37:37 +02:00
dependabot[bot]
a451a97274 Bump ccxt from 1.53.25 to 1.53.72
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.53.25 to 1.53.72.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.53.25...1.53.72)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-27 05:39:35 +00:00
Matthias
a0b1157a10 Merge pull request #5327 from freqtrade/dependabot/pip/develop/pandas-1.3.1
Bump pandas from 1.3.0 to 1.3.1
2021-07-27 07:38:42 +02:00
Sam Germain
10d214ccad Added is_short and leverage to __repr__ 2021-07-26 23:09:47 -06:00
Sam Germain
4fcae0d927 Changed liquidation_price to isolated_liq 2021-07-26 23:09:47 -06:00
Sam Germain
1918304c5b persistence all to one test file, use more regular values like 2.0 for persistence tests 2021-07-26 23:09:47 -06:00
Sam Germain
35fd8d6a02 Added enter_side and exit_side computed variables to persistence 2021-07-26 23:09:47 -06:00
Sam Germain
4b81fb31fb Changed the name of a test to match it's equivelent
Removed test-analysis-lev
2021-07-26 23:09:47 -06:00
Matthias
3d7a74551f Boolean sqlite fix for orders table 2021-07-26 23:09:47 -06:00
Matthias
9a03cae920 Try fix migration tests 2021-07-26 23:09:47 -06:00
Sam Germain
0d06d7e108 updated mkdocs and leverage docs
Added tests for set_liquidation_price and set_stop_loss
updated params in interestmode enum
2021-07-26 23:09:47 -06:00
Sam Germain
f1dc6b54ad Updated interest and ratio calculations to correct functions 2021-07-26 23:09:47 -06:00
Sam Germain
358f0303b9 updated ratio_calc_profit function 2021-07-26 23:09:47 -06:00
Sam Germain
546a7353df Added docstrings to methods 2021-07-26 23:09:47 -06:00
Sam Germain
7f75c978a0 All persistence margin tests pass
Flake8 compliant, passed mypy, ran isort .
2021-07-26 23:09:47 -06:00
Sam Germain
a368dfa7b5 Changed InterestMode enum implementation 2021-07-26 23:09:47 -06:00
Sam Germain
86888dbbf0 Took liquidation price out of order completely 2021-07-26 23:09:47 -06:00
Sam Germain
a19466c085 Moved leverage and is_short variables out of trade constructors and into conftest 2021-07-26 23:09:47 -06:00
Sam Germain
150df3eb88 Pass all but one test, because sqalchemy messes up 2021-07-26 23:09:46 -06:00
Sam Germain
98acb0f4ff set initial_stop_loss in stoploss helper 2021-07-26 23:09:46 -06:00
Sam Germain
dd6cc1153b Tried to add liquidation price to order object, caused a test to fail 2021-07-26 23:09:46 -06:00
Sam Germain
1414df5e27 updated timezone.utc time 2021-07-26 23:09:46 -06:00
Sam Germain
bb2a44735b Added liquidation_price check to test_stoploss_reinitialization_short 2021-07-26 23:09:46 -06:00
Sam Germain
2aa2b5bcff Added checks for making sure stop_loss doesn't go below liquidation_price 2021-07-26 23:09:46 -06:00
Sam Germain
3328707a1d made leveraged test names unique
test_adjust_stop_loss_short, test_update_market_order_shortpasses
2021-07-26 23:09:46 -06:00
Sam Germain
1b202ca22e Moved interest calculation to an enum 2021-07-26 23:09:46 -06:00
Sam Germain
d48f1083b0 updated leverage.md 2021-07-26 23:09:46 -06:00
Sam Germain
b6c8b60e65 Switched migrations.py check for stake_currency back to open_rate, because stake_currency is no longer a variable 2021-07-26 23:09:46 -06:00
Sam Germain
ffadc7426c Removed exchange file modifications 2021-07-26 23:09:46 -06:00
Sam Germain
c5ce8c6dd8 fixed rpc_apiserver test fails, changed test_persistence_long to test_persistence_leverage 2021-07-26 23:09:46 -06:00
Sam Germain
0d5749c508 Set default leverage to 1.0 2021-07-26 23:09:46 -06:00
Sam Germain
9ddb6981dd Updated tests to new persistence 2021-07-26 23:09:46 -06:00
Matthias
75b2c9ca1b Fix migrations, revert some parts related to amount properties 2021-07-26 23:09:46 -06:00
Sam Germain
25ff726921 Wrote all tests for shorting 2021-07-26 23:09:46 -06:00
Sam Germain
4d057b8047 Updated ratio calculation, updated short tests 2021-07-26 23:09:46 -06:00
Sam Germain
3a8a9eb255 Kraken interest test comes really close to passing
Added more trades to conftest_trades
2021-07-26 23:09:46 -06:00
Sam Germain
876386d2db Made borrowed a computed property 2021-07-26 23:09:46 -06:00
Sam Germain
2a50f4ff7b Turned amount into a computed property 2021-07-26 23:09:46 -06:00
Sam Germain
da81be9050 About 15 margin tests pass 2021-07-26 23:09:46 -06:00
Sam Germain
6f6deae376 added exception checks to LocalTrade.leverage and LocalTrade.borrowed 2021-07-26 23:09:46 -06:00
Sam Germain
c68a0f05d8 Added types to setters 2021-07-26 23:09:46 -06:00
Sam Germain
691a042e29 Set leverage and borowed to computed properties 2021-07-26 23:09:46 -06:00
Sam Germain
692c55088a Started some pytests for short and leverage
1 short test passes
2021-07-26 23:09:46 -06:00
Sam Germain
b6cc3f02bf Created interest function 2021-07-26 23:09:46 -06:00
Sam Germain
613eecf16a Adding templates for leverage/short tests
All previous pytests pass
2021-07-26 23:09:46 -06:00
Sam Germain
67341aa4f2 Added changes suggested in pull request, fixed breaking changes,
can run the bot again
2021-07-26 23:09:46 -06:00
Sam Germain
20dcd9a1a2 Added changed to persistance/migrations 2021-07-26 23:09:46 -06:00
Sam Germain
69e81100e4 Updated Trade class 2021-07-26 23:09:46 -06:00
Sam Germain
a27171b371 Updated LocalTrade and Order classes 2021-07-26 23:09:46 -06:00
Matthias
27fe6e0a1b Merge pull request #5325 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.22
Bump sqlalchemy from 1.4.21 to 1.4.22
2021-07-26 18:17:50 +02:00
Matthias
d2d21baa04 Merge pull request #5326 from freqtrade/dependabot/pip/develop/coveralls-3.2.0
Bump coveralls from 3.1.0 to 3.2.0
2021-07-26 18:16:46 +02:00
Matthias
5c011cba73 Merge pull request #5317 from samgermain/fix-spammy-console
Log level set to debug on exchange.get_rate
2021-07-26 18:12:36 +02:00
dependabot[bot]
0fac9c9cf2 Bump pandas from 1.3.0 to 1.3.1
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/master/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.3.0...v1.3.1)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-26 03:01:25 +00:00
dependabot[bot]
6a3838ea4b Bump coveralls from 3.1.0 to 3.2.0
Bumps [coveralls](https://github.com/TheKevJames/coveralls-python) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/TheKevJames/coveralls-python/releases)
- [Changelog](https://github.com/TheKevJames/coveralls-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TheKevJames/coveralls-python/compare/3.1.0...3.2.0)

---
updated-dependencies:
- dependency-name: coveralls
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-26 03:01:20 +00:00
dependabot[bot]
0f82174c52 Bump sqlalchemy from 1.4.21 to 1.4.22
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.21 to 1.4.22.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-26 03:01:16 +00:00
dependabot[bot]
7d428f9cb9 Bump fastapi from 0.66.0 to 0.67.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.66.0 to 0.67.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.66.0...0.67.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-26 03:01:05 +00:00
dependabot[bot]
11937fd1bf Bump mkdocs-material from 7.1.11 to 7.2.1
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.11 to 7.2.1.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.11...7.2.1)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-26 03:00:57 +00:00
Sam Germain
05f74bdf53 Changed log ouput to debug in exchange.get_rate 2021-07-25 16:13:04 -06:00
Rik Helsen
1e32a3ca09 📝 Docs - StrategyAdvanced - Added current_time to confirm_trade_entry/exit() examples 2021-07-25 15:54:49 +02:00
sauces1313
4675d85b90 Merge branch 'freqtrade:develop' into RangeStabilityFilterMax 2021-07-25 02:37:56 -05:00
sauces1313
34c8a5afaf remove second filter, add max option 2021-07-25 07:24:55 +00:00
Sam Germain
b42afb9dae get_rate checks if side is buy for some console output 2021-07-24 17:14:54 -06:00
raphael
06e7f379b3 Fix code to get Bittrex US-restricted markets
Old code was no longer working
2021-07-23 16:32:30 -04:00
kevinjulian
b7ba2f115e retrigger checks 2021-07-23 21:20:32 +07:00
kevinjulian
0fcbe097c0 remove blankspace 2021-07-23 21:06:38 +07:00
kevinjulian
7a0cb95ffb fix testcase 2021-07-23 20:43:27 +07:00
kevinjulian
b9c2489b73 remove SN 2021-07-23 18:41:29 +07:00
kevinjulian
ba0fa1120a revert rename naming 2021-07-23 18:39:18 +07:00
kevinjulian
acfaa39e54 revert back test_rpc_api_server 2021-07-23 18:34:18 +07:00
kevinjulian
8032257fdf revert test_pairlist 2021-07-23 18:30:25 +07:00
kevinjulian
aea5da0c73 changes testcase 2021-07-23 11:42:43 +07:00
kevinjulian
65fc094c9f add to webhook-config 2021-07-23 09:31:51 +07:00
kevinjulian
5fe18be4b5 add note buy_tag and split 3 assignment for get_signal 2021-07-23 01:25:15 +07:00
Matthias
b84a1d0c92 Don't crash when *_params is not defined in strategy
closes #5407
2021-07-22 20:21:04 +02:00
Kevin Julian
dd923c3471 Update docs/strategy-advanced.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-07-23 01:16:24 +07:00
Kevin Julian
65b4705b67 Update docs/strategy-advanced.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-07-23 01:16:10 +07:00
Fausto Gutierrez
986aafcdf9 Fix configuration.md typos 2021-07-22 14:16:50 +02:00
kevinjulian
b01daa8bbc expose buy_tag to api 2021-07-22 13:09:05 +07:00
kevinjulian
dd809f756b run mypy 2021-07-22 02:34:20 +07:00
kevinjulian
643b6b950e run flake8 2021-07-22 02:23:34 +07:00
kevinjulian
25e329623f change signature 2021-07-22 02:11:54 +07:00
kevinjulian
46f2a20a98 run flake8 2021-07-22 02:00:51 +07:00
kevinjulian
235c1afd09 add buy_tag on telegram 2021-07-22 01:53:15 +07:00
kevinjulian
f5a660f845 caps BUY_TAG_IDX 2021-07-21 20:19:56 +07:00
kevinjulian
49886874aa rename to buy_tag 2021-07-21 20:05:35 +07:00
GeorgeMurAlkh
759a350d73 Merge branch 'freqtrade:develop' into develop 2021-07-21 00:09:35 +03:00
George Muravei-Alkhavoi
1ea29a918a Fix webserver timerange problem. 2021-07-21 00:09:09 +03:00
kevinjulian
db1e676639 retrigger checks 2021-07-21 00:48:03 +07:00
kevinjulian
66a7070170 run linter 2021-07-20 23:56:03 +07:00
kevinjulian
5d04d6ffa7 fix edge testcase 2021-07-20 23:40:32 +07:00
kevinjulian
cbfedf8b29 fix backtest testcase 2021-07-20 23:25:00 +07:00
kevinjulian
c558fc0b17 fix feedback 2021-07-20 20:40:32 +07:00
kevinjulian
3d8b2d601d fix test persistance 2021-07-20 20:23:47 +07:00
Kevin Julian
edf9c08f06 Merge branch 'develop' into feat/kevinjulian/add-buy-signal-name 2021-07-20 19:19:46 +07:00
kevinjulian
ed30c023cd fix some testcase 2021-07-20 19:08:14 +07:00
kevinjulian
d31d38a85f add doc 2021-07-20 16:39:20 +07:00
kevinjulian
ec526b3f96 fix testcase 2021-07-20 16:22:04 +07:00
kevinjulian
7d04005218 add test and migration 2021-07-20 16:14:48 +07:00
Matthias
f870c0099b Merge pull request #5300 from samgermain/ubuntu-setup-fix
Fixed setup for python3.9 on ubuntu
2021-07-20 07:04:08 +02:00
Matthias
e4b42b2b5b Merge pull request #5284 from samgermain/merge_get_buy_sell_rate
Merge get_buy_rate and get_sell_rate
2021-07-20 06:54:47 +02:00
Sam Germain
550a9de097 Fixed setup for python3.9 on ubuntu 2021-07-19 16:25:36 -06:00
kevinjulian
104711a9bf get_signal signature 2021-07-20 05:04:25 +07:00
kevinjulian
9e63bdbac9 feat: add buy signal name 2021-07-20 04:58:20 +07:00
Matthias
1f5504975c Merge pull request #5289 from freqtrade/dependabot/pip/develop/ta-lib-0.4.21
Bump ta-lib from 0.4.20 to 0.4.21
2021-07-19 20:08:34 +02:00
Sam Germain
b0bfbb6558 removed buy and sell merge, updated strategy name, removed default side for get_rate 2021-07-19 11:37:52 -06:00
Matthias
d13524f7c1 Update ta-lib wheels 2021-07-19 19:36:24 +02:00
Matthias
59916d0e8b Merge pull request #5288 from freqtrade/dependabot/pip/develop/mkdocs-1.2.2
Bump mkdocs from 1.2.1 to 1.2.2
2021-07-19 08:06:23 +02:00
Matthias
cd9341a116 Merge pull request #5295 from freqtrade/dependabot/pip/develop/numpy-1.21.1
Bump numpy from 1.21.0 to 1.21.1
2021-07-19 07:01:48 +02:00
dependabot[bot]
fe8de98832 Bump mkdocs from 1.2.1 to 1.2.2
Bumps [mkdocs](https://github.com/mkdocs/mkdocs) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/mkdocs/mkdocs/releases)
- [Commits](https://github.com/mkdocs/mkdocs/compare/1.2.1...1.2.2)

---
updated-dependencies:
- dependency-name: mkdocs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-19 04:47:28 +00:00
Matthias
55f3877ee6 Merge pull request #5290 from freqtrade/dependabot/pip/develop/mkdocs-material-7.1.11
Bump mkdocs-material from 7.1.10 to 7.1.11
2021-07-19 06:46:36 +02:00
Matthias
c434d99b4f Merge pull request #5291 from freqtrade/dependabot/pip/develop/requests-2.26.0
Bump requests from 2.25.1 to 2.26.0
2021-07-19 06:46:21 +02:00
Matthias
31b19b9a58 Merge pull request #5294 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.21
Bump sqlalchemy from 1.4.20 to 1.4.21
2021-07-19 06:44:32 +02:00
dependabot[bot]
bff353a299 Bump numpy from 1.21.0 to 1.21.1
Bumps [numpy](https://github.com/numpy/numpy) from 1.21.0 to 1.21.1.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.21.0...v1.21.1)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-19 04:41:25 +00:00
Matthias
56c3e0c3ba Merge pull request #5293 from freqtrade/dependabot/pip/develop/questionary-1.10.0
Bump questionary from 1.9.0 to 1.10.0
2021-07-19 06:40:54 +02:00
Matthias
3a3ef4f35d Merge pull request #5292 from freqtrade/dependabot/pip/develop/ccxt-1.53.25
Bump ccxt from 1.52.83 to 1.53.25
2021-07-19 06:40:35 +02:00
dependabot[bot]
b7c951eacc Bump sqlalchemy from 1.4.20 to 1.4.21
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.20 to 1.4.21.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-19 03:01:19 +00:00
dependabot[bot]
7efad98e47 Bump questionary from 1.9.0 to 1.10.0
Bumps [questionary](https://github.com/tmbo/questionary) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/tmbo/questionary/releases)
- [Commits](https://github.com/tmbo/questionary/compare/1.9.0...1.10.0)

---
updated-dependencies:
- dependency-name: questionary
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-19 03:01:13 +00:00
dependabot[bot]
4a26889743 Bump ccxt from 1.52.83 to 1.53.25
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.52.83 to 1.53.25.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.52.83...1.53.25)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-19 03:01:10 +00:00
dependabot[bot]
31b3b49999 Bump requests from 2.25.1 to 2.26.0
Bumps [requests](https://github.com/psf/requests) from 2.25.1 to 2.26.0.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/master/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.25.1...v2.26.0)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-19 03:01:04 +00:00
dependabot[bot]
c1f1dfb36e Bump mkdocs-material from 7.1.10 to 7.1.11
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.10 to 7.1.11.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.10...7.1.11)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-19 03:01:00 +00:00
dependabot[bot]
e9d9668e8a Bump ta-lib from 0.4.20 to 0.4.21
Bumps [ta-lib](https://github.com/mrjbq7/ta-lib) from 0.4.20 to 0.4.21.
- [Release notes](https://github.com/mrjbq7/ta-lib/releases)
- [Changelog](https://github.com/mrjbq7/ta-lib/blob/master/CHANGELOG)
- [Commits](https://github.com/mrjbq7/ta-lib/compare/TA_Lib-0.4.20...TA_Lib-0.4.21)

---
updated-dependencies:
- dependency-name: ta-lib
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-19 03:00:56 +00:00
George Muravei-Alkhavoi
ab786abf7f Fix intendation. 2021-07-19 00:47:51 +03:00
George Muravei-Alkhavoi
f705293353 Dataprovider caching and trimming to timerange of historical informative. 2021-07-19 00:25:24 +03:00
Matthias
ffeff9c0f7 Update ARM image building 2021-07-18 19:33:25 +02:00
Matthias
365479f5e0 Remove startup-candles after populating buy/sell signals
closes #5242
2021-07-18 11:06:41 +02:00
Matthias
adef5d89f3 Fix failing test after webserver merge 2021-07-18 11:06:14 +02:00
Matthias
7b7d9c02d7 Merge pull request #5243 from freqtrade/feat/webservermode_progress
Introduce webserver mode subcommand
2021-07-18 10:48:55 +02:00
Matthias
0282d13221 Fix PI image caching 2021-07-18 10:25:24 +02:00
Matthias
51cc903248 Run ci on selfhosted runner 2021-07-18 10:25:24 +02:00
Sam Germain
44df5eeacf Adjusted docstring, and conditional near end of buy_rate 2021-07-18 00:00:18 -06:00
Sam Germain
7c27525bd8 Merge get_buy_rate and get_sell_rate 2021-07-17 22:51:20 -06:00
Matthias
03a4ae4674 Merge pull request #5279 from rokups/patch-3
Honor skip_pair_validation setting when downloading pairs.
2021-07-17 08:44:22 +02:00
Rokas Kupstys
53a8c693b8 Honor skip_pair_validation setting when downloading pairs. 2021-07-17 09:21:03 +03:00
Matthias
d652e6fcc4 Don't log from wallet in backtest mode 2021-07-16 19:57:49 +02:00
Matthias
4899b06b31 Merge pull request #5273 from freqtrade/fix/profit_calc
fix calculation logic for /profit
2021-07-16 19:19:28 +02:00
Matthias
3bc36cd650 Merge pull request #5275 from samgermain/example_json_filename_extensions
Example json filename extensions
2021-07-16 12:08:37 +02:00
Sam Germain
a1ab8066f2 Merge branch 'example_json_filename_extensions' of https://github.com/samgermain/freqtrade into example_json_filename_extensions 2021-07-16 02:08:44 -06:00
Sam Germain
804bc8134f Merge branch 'develop' into example_json_filename_extensions 2021-07-16 02:05:08 -06:00
Sam Germain
b7dc2989e7 flake8 adjustments 2021-07-16 02:03:25 -06:00
Matthias
2e95df4d8d Update docs for /profit output 2021-07-15 20:12:44 +02:00
Matthias
2928ee22ce Remove compose file for devcontainer 2021-07-15 19:48:16 +02:00
Matthias
708d5691b0 Merge pull request #5271 from samgermain/setup-mac-fix
setup.sh mac fix
2021-07-15 12:13:47 +02:00
Sam Germain
07e3f82400 Changed to python3.8 installing first, removed test_and_fix_python_on_mac 2021-07-15 01:03:32 -06:00
Sam Germain
65ce7c9838 Added echo python3.* line back in 2021-07-14 20:01:43 -06:00
Sam Germain
74d7497a47 Setup script tries to install python3.9 instead of 3.8 with this fix, python versions are also checked for in a loop instead of copy and pasted code 2021-07-14 19:25:51 -06:00
Sam Germain
cde041f702 install hdf5 and c-blosc on mac if using python3.9 2021-07-14 19:20:12 -06:00
Matthias
697bf92f6f Add test for get_starting_balance method 2021-07-14 21:10:25 +02:00
Matthias
02d716a8be Fix api test 2021-07-14 21:03:57 +02:00
Matthias
c9c7f84e8c Calculate relative profit based on assumed starting balance 2021-07-14 20:55:11 +02:00
Matthias
f5c47767cb Provide available capital to api 2021-07-14 20:51:42 +02:00
Matthias
288c92301f Improve docs wording 2021-07-14 06:50:14 +02:00
Matthias
3451687135 Merge pull request #5255 from freqtrade/improve_dynamic_stake
Improve dynamic stake with multiple bots on the same exchange
2021-07-14 06:45:48 +02:00
Sam Germain
362436f7d2 Renamed example config files so they are .json so that syntax highlighting is all correct. Explicitly listed each one in .gitignore to prevent a real config file from being uploaded accidently 2021-07-13 19:39:23 -06:00
Matthias
29e2b858ca Improve wording in docs 2021-07-13 20:40:06 +02:00
Sam Germain
2bf7705f2c Renamed example config files so they are .json so that syntax highlighting is all correct. Explicitly listed each one in .gitignore to prevent a real config file from being uploaded accidently 2021-07-12 23:05:35 -06:00
Matthias
a261b188da Merge pull request #5265 from anasyusef/censor_db_pwd_logs
Censor DB password when outputting to logs
2021-07-12 20:48:41 +02:00
anasyusef
08a4da6f51 Merge branch 'censor_db_pwd_logs' of https://github.com/anasyusef/freqtrade into censor_db_pwd_logs 2021-07-12 13:24:38 +00:00
anasyusef
91e5562ae0 style: apply flake8 formatting 2021-07-12 13:22:36 +00:00
Matthias
3c001dfcf6 Merge pull request #5264 from freqtrade/dependabot/pip/develop/isort-5.9.2
Bump isort from 5.9.1 to 5.9.2
2021-07-12 15:10:36 +02:00
anasyusef
8def18b002 style: apply flake8 formatting 2021-07-12 12:31:13 +00:00
anasyusef
313cf6a013 test: add test for parsing db uri 2021-07-12 12:28:34 +00:00
anasyusef
c78b2075d8 feat: add one additional asterisk 2021-07-12 12:27:59 +00:00
anasyusef
6a53e2c764 feat: apply censoring to logging 2021-07-12 12:08:01 +00:00
anasyusef
f94dbcd085 feat: censor password from logs 2021-07-12 12:02:10 +00:00
Matthias
40db424363 Add documentation for available capital setting 2021-07-12 07:11:56 +02:00
Matthias
6a8e8875a2 Test new behaviour 2021-07-12 06:54:06 +02:00
Matthias
7863746904 Add available_capital parameter 2021-07-12 06:54:06 +02:00
Matthias
b41c234440 Extract Closed profit calculation to trade object 2021-07-12 06:54:06 +02:00
Matthias
ed77889d6b Add explicit tests for _validate_stake_amount 2021-07-12 06:52:59 +02:00
Matthias
c583452a5a Merge pull request #5263 from freqtrade/dependabot/pip/develop/mkdocs-material-7.1.10
Bump mkdocs-material from 7.1.9 to 7.1.10
2021-07-12 06:40:10 +02:00
Matthias
5f94c3f81b Merge pull request #5262 from freqtrade/dependabot/pip/develop/ccxt-1.52.83
Bump ccxt from 1.52.40 to 1.52.83
2021-07-12 06:38:01 +02:00
dependabot[bot]
81c50aca01 Bump isort from 5.9.1 to 5.9.2
Bumps [isort](https://github.com/pycqa/isort) from 5.9.1 to 5.9.2.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.9.1...5.9.2)

---
updated-dependencies:
- dependency-name: isort
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-12 03:01:38 +00:00
dependabot[bot]
21ef08d9a8 Bump mkdocs-material from 7.1.9 to 7.1.10
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.9 to 7.1.10.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.9...7.1.10)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-12 03:01:34 +00:00
dependabot[bot]
f4caf9b93c Bump ccxt from 1.52.40 to 1.52.83
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.52.40 to 1.52.83.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.52.40...1.52.83)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-12 03:01:29 +00:00
Matthias
8b78a3bde2 Quick fix for trades opening below min-trade amount 2021-07-11 21:01:12 +02:00
Matthias
38296e8689 Merge pull request #5189 from rokups/rk/custom-stake
Implement strategy-controlled stake sizes
2021-07-11 19:45:43 +02:00
Matthias
7ea0a74c53 Default to proposed stake 2021-07-11 14:11:41 +02:00
Rokas Kupstys
0e4466ca1e Implement strategy-controlled stake sizes. Expose self.wallet to a strategy. 2021-07-11 12:38:58 +03:00
Matthias
f658cfa349 Remove Slack
As the community is mostly active on discord, there's little point in
linking people to Slack as well
2021-07-11 11:13:27 +02:00
Matthias
52ae95b2a5 Improve naming of apiserver variables 2021-07-10 11:20:21 +02:00
Matthias
ad26b0dad0 Don't void backtest object when not necessary 2021-07-10 10:59:00 +02:00
Matthias
72a103f32d Properly test webserver startup in standalone mode 2021-07-10 10:21:25 +02:00
Matthias
e4e2340f91 Fix bug where currencies are duplicated
in case there is dust
2021-07-10 10:02:05 +02:00
Matthias
cf6f706078 Don't build for feat branches
that breaks CI for PR's
2021-07-10 10:01:15 +02:00
Matthias
6129c5ca9e Fix deprecation warnings from pandas 1.3.0
closes #5251
2021-07-09 20:46:38 +02:00
Matthias
2f33b97b95 Validate startup candles for backtesting correctly
closes #5250
2021-07-09 07:20:43 +02:00
Matthias
fb25130588 Merge pull request #5244 from octaviusgus/develop
fix daily profit data bug and daily profit curve example
2021-07-09 07:06:14 +02:00
Matthias
d96d6024f4 Merge pull request #5252 from kevinjulian/agefilter-max-days-listed
Fix Agefilter cannot appear on startup messages
2021-07-08 20:29:06 +02:00
Matthias
03861945a3 Update documentation page too. 2021-07-08 20:04:47 +02:00
kevinjulian
2a4a980855 Merge branch 'agefilter-max-days-listed' of https://github.com/kevinjulian/freqtrade into agefilter-max-days-listed 2021-07-08 19:25:32 +07:00
kevinjulian
863391122f fix short desc not appear 2021-07-08 13:42:52 +07:00
Matthias
225522762b Merge pull request #5231 from nightshift2k/enhancement/range-based-volumefilter
Range based VolumeFilter
2021-07-08 07:22:37 +02:00
Matthias
8be0241573 Build images for feat/** branches 2021-07-08 07:07:56 +02:00
Matthias
e5da7ff6db Fix typos and improve wording in docs 2021-07-08 07:02:40 +02:00
Matthias
76e51cddba Merge pull request #5246 from nightshift2k/feature/offsetfilter
new filter OffsetFilter for offsetting incoming pairlists
2021-07-07 21:06:23 +02:00
nightshift2k
7dc826d6b3 warning for range based lookback performance
more readable formatting of examples
2021-07-07 20:43:37 +02:00
nightshift2k
5a2bc192d4 Update docs/includes/pairlists.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-07-07 20:29:55 +02:00
nightshift2k
4d4ed82db8 Update docs/includes/pairlists.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-07-07 20:29:52 +02:00
Matthias
62f2597f7a Merge pull request #5228 from kevinjulian/agefilter-max-days-listed
feat(agefilter): add max_days_listed
2021-07-07 20:22:04 +02:00
Matthias
682f880630 Slightly simplify if statement, add additional test 2021-07-07 20:05:56 +02:00
kevinjulian
8248d1acd1 run flake8 2021-07-07 22:10:22 +07:00
kevinjulian
00a1931f40 fix test 2021-07-07 21:24:44 +07:00
nightshift2k
c44e87cd30 added tests for `OffsetFilter
to `test_pairlist.py`
2021-07-07 12:06:55 +02:00
nightshift2k
6cea0ef2d7 documentation for OffsetFilter 2021-07-07 11:48:26 +02:00
nightshift2k
f30e300f18 adjusted test_pairlist.py for fixed rolling sum 2021-07-07 11:28:35 +02:00
sauces1313
8b0a02db8e Correct exception messages 2021-07-07 08:11:13 +00:00
sauces1313
8b485d197a Update Plugins doc 2021-07-07 07:54:17 +00:00
nightshift2k
3c3772703b changed quoteVolume to be built over a
rolling period using lookback_period
to avoid pair_candles being larger
than requested lookback_period
2021-07-07 09:46:05 +02:00
user
638bed3dac Add RangeStabilityFilterMax pairlist filter 2021-07-07 06:46:51 +00:00
octaviusgus
d1104bd434 fix daily profit data and daily profit curve example 2021-07-06 22:47:39 +02:00
Matthias
b7a9853d9a Increase test coverage 2021-07-06 21:04:52 +02:00
Matthias
a4bd862323 Fix fluky test 2021-07-06 20:29:04 +02:00
Matthias
36d4a15d24 quickly document webserver mode 2021-07-06 19:48:28 +02:00
Matthias
005da97183 extract backtesting abort functionality 2021-07-06 19:48:28 +02:00
Matthias
5474d5ee64 Move webserver start command to seperate file 2021-07-06 19:48:28 +02:00
Matthias
e5b1657ab3 Properly remove rpc handler 2021-07-06 19:48:28 +02:00
Matthias
2ec22f1d97 Add Sorting to available pair list 2021-07-06 19:48:28 +02:00
Matthias
830b2548bc Add backtest stopping 2021-07-06 19:48:28 +02:00
Matthias
129c7b02d0 Not all config values are mandatory in webserver mode 2021-07-06 19:48:28 +02:00
Matthias
17b3cc2097 Return numeric value, not empty string 2021-07-06 19:48:28 +02:00
Matthias
b44d215b90 Add test for backtest via APII 2021-07-06 19:48:28 +02:00
Matthias
804d99cce9 Move backtesting api to it's own file 2021-07-06 19:48:28 +02:00
Matthias
8566306010 Add test for start_websever 2021-07-06 19:48:28 +02:00
Matthias
134c61126e Properly track bt progress ... 2021-07-06 19:48:28 +02:00
Matthias
03140a0ecb Run webserver in main thread when using webserver mode 2021-07-06 19:48:28 +02:00
Matthias
37b15e830a Add trade count to progress 2021-07-06 19:48:28 +02:00
Matthias
048008756f Add progress tracking for backtesting 2021-07-06 19:48:28 +02:00
Matthias
06b6726029 Support compounding key 2021-07-06 19:48:28 +02:00
Matthias
f96d7dfe6d Allow backtesting to reuse data
Allow activating / deactivating protections dynamically
2021-07-06 19:48:28 +02:00
Matthias
edb8c4f0e5 Fix tests for webserver mode 2021-07-06 19:48:28 +02:00
Matthias
5c18c8726d Implement backtesting with fastapi 2021-07-06 19:48:28 +02:00
Matthias
df55259737 Add start_trading endpoint 2021-07-06 19:48:28 +02:00
Matthias
02b84bd018 Introduce webserver mode for fastapi 2021-07-06 19:48:28 +02:00
Matthias
800e314bfd Store backtesting results in backtest instance 2021-07-06 19:48:28 +02:00
Matthias
97e8ec91f0 Save configuration file paths 2021-07-06 19:48:28 +02:00
Matthias
ef137546fe Add webserver entrypoint 2021-07-06 19:48:28 +02:00
Kevin Julian
0f3d34eaf4 Merge branch 'develop' into agefilter-max-days-listed 2021-07-06 19:47:18 +07:00
kevinjulian
502c69dce3 change short desc 2021-07-06 19:36:42 +07:00
Matthias
dec523eef0 Display verison of installed FreqUI 2021-07-06 07:20:05 +02:00
nightshift2k
1e87225e91 added test_VolumePairList_range to test_pairlist.py 2021-07-05 20:59:27 +02:00
Matthias
baf6bca34e Merge pull request #5240 from freqtrade/dependabot/pip/develop/pandas-1.3.0
Bump pandas from 1.2.5 to 1.3.0
2021-07-05 19:56:03 +02:00
Matthias
10998eb0fa Remove further usages of int(int_timestamp) 2021-07-05 19:51:14 +02:00
Matthias
1682578a39 Merge pull request #5234 from nightshift2k/fixups/pairlists
fixup pairlist filters, change  float_timestamp to int_timestamp
2021-07-05 19:45:35 +02:00
nightshift2k
346d66748b first version of OffsetFilter 2021-07-05 12:50:56 +02:00
nightshift2k
5626ca5a06 removed unnecessary casting to int() 2021-07-05 10:39:22 +02:00
Matthias
70a41a0f67 Merge pull request #5239 from freqtrade/dependabot/pip/develop/python-telegram-bot-13.7
Bump python-telegram-bot from 13.6 to 13.7
2021-07-05 07:06:28 +02:00
Matthias
eb3ead4930 Merge pull request #5229 from kevinjulian/telegram-balance
compact low balance currencies
2021-07-05 06:56:35 +02:00
dependabot[bot]
ac7598ff14 Bump python-telegram-bot from 13.6 to 13.7
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 13.6 to 13.7.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v13.6...v13.7)

---
updated-dependencies:
- dependency-name: python-telegram-bot
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-05 04:31:00 +00:00
dependabot[bot]
0c8afea382 Bump pandas from 1.2.5 to 1.3.0
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.2.5 to 1.3.0.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/master/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.2.5...v1.3.0)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-05 04:30:54 +00:00
Matthias
94ec9d2366 Merge pull request #5237 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.20
Bump sqlalchemy from 1.4.19 to 1.4.20
2021-07-05 06:29:58 +02:00
Matthias
6c789e4130 Merge pull request #5236 from freqtrade/dependabot/pip/develop/ccxt-1.52.40
Bump ccxt from 1.52.4 to 1.52.40
2021-07-05 06:29:39 +02:00
Matthias
1e696c4a20 Merge pull request #5235 from freqtrade/dependabot/pip/develop/plotly-5.1.0
Bump plotly from 5.0.0 to 5.1.0
2021-07-05 06:29:19 +02:00
Matthias
d146697297 Merge pull request #5238 from freqtrade/dependabot/pip/develop/fastapi-0.66.0
Bump fastapi from 0.65.2 to 0.66.0
2021-07-05 06:28:56 +02:00
dependabot[bot]
d1555a1095 Bump fastapi from 0.65.2 to 0.66.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.65.2 to 0.66.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.65.2...0.66.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-05 03:01:28 +00:00
dependabot[bot]
7ae5f47242 Bump sqlalchemy from 1.4.19 to 1.4.20
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.19 to 1.4.20.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-05 03:01:24 +00:00
dependabot[bot]
2f97846bd8 Bump ccxt from 1.52.4 to 1.52.40
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.52.4 to 1.52.40.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.52.4...1.52.40)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-05 03:01:18 +00:00
dependabot[bot]
0d787fde58 Bump plotly from 5.0.0 to 5.1.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.0.0...v5.1.0)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-05 03:01:11 +00:00
nightshift2k
7ac55e5415 AgeFilter, RangeStabilityFilter, VolatilityFilter
changed `float_timestamp` to `int_timestamp`
2021-07-04 21:08:42 +02:00
nightshift2k
85c7b55750 improvements:
- `float_timestamp` switched to `int_timestamp`
- added documentation to pairlists.md
2021-07-04 20:46:24 +02:00
Matthias
d758b0ccab Merge pull request #5232 from octaviusgus/patch-1
Daily profit plotting / equity curve
2021-07-04 20:00:44 +02:00
Matthias
c5489d530a Reexport File to docs to have this available as documentation too 2021-07-04 19:50:44 +02:00
kevinjulian
c3cf71bba8 sort import 2021-07-04 22:04:39 +07:00
kevinjulian
2d5ced7801 fix testcase 2021-07-04 21:59:59 +07:00
kevinjulian
9e548657e0 fix testcase 2021-07-04 21:08:46 +07:00
octaviusgus
558bcc7959 Jupyter notebook snippet: Plotting daily profit / equity line 2021-07-04 15:56:55 +02:00
octaviusgus
4aa2ae37bd add daily_profit_list
added extra key daily_profit in return of optimize_reports.generate_daily_stats
this allows us to analyze and plot a daily profit chart / equity line using snippet below inside jupyter notebook

```
# Plotting equity line (starting with 0 on day 1 and adding daily profit for each backtested day)

from freqtrade.configuration import Configuration
from freqtrade.data.btanalysis import load_backtest_data, load_backtest_stats
import plotly.express as px
import pandas as pd

# strategy = 'Strat'
# config = Configuration.from_files(["user_data/config.json"])
# backtest_dir = config["user_data_dir"] / "backtest_results"

stats = load_backtest_stats(backtest_dir)
strategy_stats = stats['strategy'][strategy]

equity = 0
equity_daily = []
for dp in strategy_stats['daily_profit']:
    equity_daily.append(equity)
    equity += float(dp)

dates = pd.date_range(strategy_stats['backtest_start'], strategy_stats['backtest_end'])

df = pd.DataFrame({'dates':dates,'equity_daily':equity_daily})

fig = px.line(df, x="dates", y="equity_daily")
fig.show()

```
2021-07-04 14:38:17 +02:00
Matthias
791dfd9ba3 Fix some doc typos 2021-07-04 14:02:11 +02:00
Matthias
898bef1837 Merge pull request #5219 from freqtrade/hyperopt_paramfile
automatic Hyperopt paramfile
2021-07-04 13:56:52 +02:00
nightshift2k
9919061c78 PEP8 compliance 2021-07-04 11:40:45 +02:00
nightshift2k
348dbeff3f added meaningful logging of used lookback range 2021-07-04 11:16:33 +02:00
Matthias
77293b1f1e Remove Zero duration Trades
after the recent backtesting fixes, this metric no longer makes sense, as it can't really be 0 any longer.
2021-07-04 10:50:10 +02:00
Matthias
a4096318e0 Provide full backtest-statistics to Hyperopt loss functions
closes #5223
2021-07-04 10:15:19 +02:00
kevinjulian
7efa228d73 add dust balance 2021-07-04 03:08:29 +07:00
kevinjulian
dbdd7f38a8 add plural 2021-07-04 02:56:05 +07:00
kevinjulian
b722e12350 compact low balance currencies 2021-07-04 02:44:48 +07:00
kevinjulian
f6511c3e3f fix typo and add blocker 2021-07-04 02:20:53 +07:00
kevinjulian
b72bbebccb fix flake8 2021-07-04 01:46:51 +07:00
kevinjulian
3d9f3eeb07 feat(agefilter): add max_days_listed 2021-07-03 23:58:04 +07:00
Matthias
e9dbd57da4 Merge pull request #5221 from rokups/patch-2
Add range property to CategoricalParameter.
2021-07-03 16:00:24 +02:00
Matthias
dc8abd77df Fix import order 2021-07-03 15:45:00 +02:00
Rokas Kupstys
3686efa08a Add range property to CategoricalParameter and DecimalParameter, add their tests.
At the moment we can keep a single code path when using IntParameter, but we have to make a special hyperopt case for CategoricalParameter/DecimalParameter. Range property solves this.
2021-07-03 16:02:45 +03:00
nightshift2k
53f963dd73 fixed self._tf_in_secs to self._tf_in_sec 2021-07-03 11:49:05 +02:00
nightshift2k
62da4b452c code cleanup and comments 2021-07-03 11:47:17 +02:00
nightshift2k
055229a44a first iteration of volume pairlist with range lookback 2021-07-03 11:39:14 +02:00
Matthias
9d6860337f Merge pull request #5212 from rokups/rk/trailing-stop-2
Trailing stoploss in backtesting v2
2021-07-03 08:39:30 +02:00
Matthias
3503fdb4ec Improve tests for newly added methods 2021-07-03 08:38:55 +02:00
Matthias
fbd91cd3f8 Improve formatting to avoid backslash newlines 2021-07-03 08:22:21 +02:00
Matthias
b25ad68c44 Fix np.bool_ not outputting correctly 2021-07-02 20:52:25 +02:00
Matthias
849f01e6b7 FIx doc typo 2021-07-02 06:45:52 +02:00
Matthias
7acbc9a554 Merge pull request #5220 from freqtrade/dependabot/docker/python-3.9.6-slim-buster
Bump python from 3.9.5-slim-buster to 3.9.6-slim-buster
2021-07-01 06:17:49 +02:00
dependabot[bot]
99bc6bbb8f Bump python from 3.9.5-slim-buster to 3.9.6-slim-buster
Bumps python from 3.9.5-slim-buster to 3.9.6-slim-buster.

---
updated-dependencies:
- dependency-name: python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-01 03:02:05 +00:00
Matthias
e034f11dcc Improve test for hyperopt_show 2021-06-30 20:21:33 +02:00
Matthias
b8de3270fa Plotting: Fix hover mode options after plotly update
closes #5209
2021-06-30 20:11:11 +02:00
Matthias
60b7f6edff Improve documentation 2021-06-30 19:53:36 +02:00
Matthias
15e36a20e1 Improve naming of default hyperopt serializer 2021-06-30 19:48:34 +02:00
Rokas Kupstys
bc0742ae67 Fix extremely optimistic results when using a combination of custom_stoploss and trailing_stop. 2021-06-30 09:10:50 +03:00
Matthias
0809225a0a Update documentation to mention parameter strategy files 2021-06-30 07:05:20 +02:00
Matthias
645da51b5f Add test for parameter loading 2021-06-30 06:55:10 +02:00
Matthias
dcf53ac3ff Add test for try_eport_params 2021-06-30 06:33:40 +02:00
Matthias
ff61b8a2e7 Disable parameter export from tests 2021-06-29 20:57:16 +02:00
Matthias
84703080b8 Extract hyperopt_defaults_serializer to hyperopt_tools 2021-06-29 20:51:29 +02:00
Matthias
55f032b18e Catch trying to read faulty parameter file 2021-06-29 20:51:29 +02:00
Matthias
62cdbdc26a Automatically export hyperopt parameters 2021-06-29 20:51:25 +02:00
Matthias
af04c8e2da Merge pull request #5205 from barisengez/develop
Added timerange and max open trades info above multiple strategy backtest result summary table
2021-06-29 16:49:17 +02:00
barbarius
a8117c6e0b Refactored to use results variable from for loop 2021-06-29 11:24:49 +02:00
Matthias
a2ccc1526e Load parameters from file 2021-06-29 07:07:34 +02:00
Matthias
8ca0076332 Fix small typos 2021-06-29 06:50:47 +02:00
Matthias
d4514f5f16 Introduce File versions to hyperopt result files 2021-06-29 06:50:47 +02:00
Matthias
a7e9e362b7 Simplify printing logic for non-optimized parameters 2021-06-29 06:50:47 +02:00
Matthias
8b7010fc9a Update pprint name 2021-06-29 06:50:47 +02:00
Matthias
aa5181ca81 Properly export non-optimized parameters 2021-06-29 06:50:47 +02:00
Matthias
ef14359d31 Add some tests for paramfile writing 2021-06-29 06:50:47 +02:00
Matthias
e97de4643f Move tests to hyperopttools test file 2021-06-29 06:50:47 +02:00
Matthias
34e6ce431f Print non-optimized parameters (also stop / roi) 2021-06-29 06:50:47 +02:00
Matthias
2310deec53 Update name to get non-optimized parameters 2021-06-29 06:50:47 +02:00
Matthias
8cdd1e3aef Fix some type errors 2021-06-29 06:50:47 +02:00
Matthias
2bf17f71e7 Dump parameters from hyperopt-show 2021-06-29 06:50:47 +02:00
Matthias
750c780293 Support loading parameters from json file 2021-06-29 06:50:47 +02:00
Matthias
eb5cee4934 Merge pull request #5210 from eschava/profit_best_pair
"/profit N" command should print best pair for the same period of time, not for all trades
2021-06-29 06:39:46 +02:00
Eugene Schava
d54de72471 "/profit N" command should print best pair for the same period of time, not for all trades 2021-06-28 23:42:09 +03:00
Matthias
65d7e74888 Add note about ldconfig
#2087
2021-06-28 19:44:15 +02:00
Matthias
0907a572df Merge pull request #5201 from freqtrade/dependabot/pip/develop/plotly-5.0.0
Bump plotly from 4.14.3 to 5.0.0
2021-06-28 19:44:07 +02:00
Matthias
534083c665 Merge pull request #5197 from freqtrade/dependabot/pip/develop/mkdocs-material-7.1.9
Bump mkdocs-material from 7.1.8 to 7.1.9
2021-06-28 19:28:23 +02:00
barbarius
a0f28f4a15 Added max open trades to strategy summary first line 2021-06-28 17:05:12 +02:00
Matthias
5af04c1a66 Merge pull request #5193 from freqtrade/dependabot/pip/develop/mypy-0.910
Bump mypy from 0.902 to 0.910
2021-06-28 13:45:48 +02:00
dependabot[bot]
8a0523885e Bump mypy from 0.902 to 0.910
Bumps [mypy](https://github.com/python/mypy) from 0.902 to 0.910.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v0.902...v0.910)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 11:19:46 +00:00
Matthias
a92b332550 Merge pull request #5195 from freqtrade/dependabot/pip/develop/nbconvert-6.1.0
Bump nbconvert from 6.0.7 to 6.1.0
2021-06-28 13:18:54 +02:00
Matthias
d1b0964c03 Merge pull request #5203 from freqtrade/dependabot/pip/develop/pandas-1.2.5
Bump pandas from 1.2.4 to 1.2.5
2021-06-28 13:18:40 +02:00
barbarius
2e5b719de8 Added timerange above multiple strategy backtest result summary table 2021-06-28 10:54:54 +02:00
barbarius
c99ae3b419 Added timerange above multiple strategy backtest result summary table 2021-06-28 10:20:34 +02:00
dependabot[bot]
3215232691 Bump pandas from 1.2.4 to 1.2.5
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.2.4 to 1.2.5.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/master/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.2.4...v1.2.5)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 08:07:05 +00:00
Matthias
f3684e0051 Merge pull request #5196 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.19
Bump sqlalchemy from 1.4.18 to 1.4.19
2021-06-28 10:05:41 +02:00
Matthias
0f586bec2d Merge pull request #5202 from freqtrade/dependabot/pip/develop/ccxt-1.52.4
Bump ccxt from 1.51.77 to 1.52.4
2021-06-28 10:05:24 +02:00
dependabot[bot]
91bb378207 Bump nbconvert from 6.0.7 to 6.1.0
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 6.0.7 to 6.1.0.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Commits](https://github.com/jupyter/nbconvert/compare/6.0.7...6.1.0)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 08:04:03 +00:00
Matthias
6dbebe2634 Merge pull request #5199 from freqtrade/dependabot/pip/develop/urllib3-1.26.6
Bump urllib3 from 1.26.5 to 1.26.6
2021-06-28 10:03:31 +02:00
Matthias
86e8ab6bf3 Merge pull request #5200 from freqtrade/dependabot/pip/develop/isort-5.9.1
Bump isort from 5.8.0 to 5.9.1
2021-06-28 10:03:00 +02:00
Matthias
82677f4235 Merge pull request #5204 from freqtrade/dependabot/pip/develop/types-requests-2.25.0
Bump types-requests from 0.1.13 to 2.25.0
2021-06-28 10:02:29 +02:00
dependabot[bot]
06829c8400 Bump ccxt from 1.51.77 to 1.52.4
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.51.77 to 1.52.4.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.51.77...1.52.4)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 04:52:20 +00:00
dependabot[bot]
694f30d0f8 Bump types-requests from 0.1.13 to 2.25.0
Bumps [types-requests](https://github.com/python/typeshed) from 0.1.13 to 2.25.0.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 04:52:05 +00:00
Matthias
22c6d18cd8 Merge pull request #5194 from freqtrade/dependabot/pip/develop/numpy-1.21.0
Bump numpy from 1.20.3 to 1.21.0
2021-06-28 06:51:30 +02:00
Matthias
6a769c9d59 Merge pull request #5198 from freqtrade/dependabot/pip/develop/python-rapidjson-1.4
Bump python-rapidjson from 1.0 to 1.4
2021-06-28 06:49:11 +02:00
dependabot[bot]
157ff82197 Bump urllib3 from 1.26.5 to 1.26.6
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.5 to 1.26.6.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/1.26.6/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.5...1.26.6)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 04:48:44 +00:00
dependabot[bot]
6824e64dcd Bump sqlalchemy from 1.4.18 to 1.4.19
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.18 to 1.4.19.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 04:48:41 +00:00
dependabot[bot]
9e09b271e7 Bump isort from 5.8.0 to 5.9.1
Bumps [isort](https://github.com/pycqa/isort) from 5.8.0 to 5.9.1.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.8.0...5.9.1)

---
updated-dependencies:
- dependency-name: isort
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 04:48:13 +00:00
Matthias
30557c28bb Merge pull request #5192 from freqtrade/dependabot/pip/develop/arrow-1.1.1
Bump arrow from 1.1.0 to 1.1.1
2021-06-28 06:47:55 +02:00
dependabot[bot]
281c18badc Bump plotly from 4.14.3 to 5.0.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 4.14.3 to 5.0.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v4.14.3...v5.0.0)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 04:47:43 +00:00
Matthias
6ce58601f7 Merge pull request #5191 from freqtrade/dependabot/pip/develop/types-cachetools-0.1.9
Bump types-cachetools from 0.1.8 to 0.1.9
2021-06-28 06:47:15 +02:00
dependabot[bot]
3026c340ca Bump python-rapidjson from 1.0 to 1.4
Bumps [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) from 1.0 to 1.4.
- [Release notes](https://github.com/python-rapidjson/python-rapidjson/releases)
- [Changelog](https://github.com/python-rapidjson/python-rapidjson/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-rapidjson/python-rapidjson/compare/v1.0...v1.4)

---
updated-dependencies:
- dependency-name: python-rapidjson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 03:01:33 +00:00
dependabot[bot]
d41218c97e Bump mkdocs-material from 7.1.8 to 7.1.9
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.8 to 7.1.9.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.8...7.1.9)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 03:01:30 +00:00
dependabot[bot]
738fe45b4b Bump numpy from 1.20.3 to 1.21.0
Bumps [numpy](https://github.com/numpy/numpy) from 1.20.3 to 1.21.0.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.20.3...v1.21.0)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 03:01:17 +00:00
dependabot[bot]
d810c262e4 Bump arrow from 1.1.0 to 1.1.1
Bumps [arrow](https://github.com/arrow-py/arrow) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/arrow-py/arrow/releases)
- [Changelog](https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/arrow-py/arrow/compare/1.1.0...1.1.1)

---
updated-dependencies:
- dependency-name: arrow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 03:01:09 +00:00
dependabot[bot]
d09b712458 Bump types-cachetools from 0.1.8 to 0.1.9
Bumps [types-cachetools](https://github.com/python/typeshed) from 0.1.8 to 0.1.9.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 03:01:06 +00:00
Matthias
ab07fb5b3f Merge pull request #5188 from freqtrade/move_config_settings
Move ask_strategy config settings to root level
2021-06-27 11:30:50 +02:00
Matthias
34448fb87c Expose default currency precision to API 2021-06-26 20:46:54 +02:00
Matthias
00a7097b9e Reduce verbosity of getting sell-rate from orderbook 2021-06-26 20:09:52 +02:00
Matthias
3f669147f1 Simplify strategy-resolver moving 2021-06-26 17:55:31 +02:00
Matthias
158cb415a9 Add settings interface to have types available 2021-06-26 17:28:37 +02:00
Matthias
ce69abc06e Update docs and tests for newly deprectated settings 2021-06-26 17:11:15 +02:00
Matthias
b7f01a08f3 Update sequence of process_deprecated_setting parameters 2021-06-26 17:03:51 +02:00
Matthias
0235868c66 Update tests for new config structure 2021-06-26 16:39:01 +02:00
Matthias
1067a9f356 Move strategy-override signals to top-level of the config
closes #2867
2021-06-26 16:06:13 +02:00
Matthias
60c7308126 Merge pull request #5183 from freqtrade/remove_order_book_max
Remove order book max
2021-06-26 14:56:10 +02:00
Matthias
fa72ed10b6 Add Kukoin to community tested exchanges 2021-06-26 14:44:51 +02:00
Matthias
f9ef30bc02 Merge pull request #5185 from freqtrade/new_release
New release 2021.6
2021-06-26 14:41:13 +02:00
Matthias
1cb057bda7 Version bump 2021.6 2021-06-26 14:01:23 +02:00
Matthias
7fe42852a8 Merge branch 'stable' into new_release 2021-06-26 14:00:55 +02:00
Matthias
c62fad0088 Pricing strategies should default to use orderbook pricing 2021-06-26 08:19:37 +02:00
Matthias
0ecf456d7f Update Deprecation date 2021-06-26 08:13:31 +02:00
Matthias
ea89af30c7 Merge pull request #5182 from aayush-jain18/docstring-cleanup
Docstring cleanup
2021-06-25 20:53:54 +02:00
Matthias
59a33d0fa9 Add test for ask_orderbook validation 2021-06-25 20:52:34 +02:00
Matthias
8c542e4028 Update tests for removed order_book_max option 2021-06-25 20:45:53 +02:00
Matthias
ae6a5c908e Update documentation to reflect new setting for sell price 2021-06-25 20:37:17 +02:00
Matthias
d59a38665c Remove support for order_book_max 2021-06-25 20:36:39 +02:00
aayush-jain18
d294ef10d7 unexpected docstring params 2021-06-25 23:56:16 +05:30
Matthias
1440b2f7fe Merge pull request #5178 from aayush-jain18/spell-correction
spell corrections
2021-06-25 19:10:39 +02:00
aayush-jain18
a46f60bd94 spell corrections 2021-06-25 22:10:04 +05:30
Matthias
3d9336459f Merge pull request #5180 from mohammad-hekmat/patch-2
Update configuration.md
2021-06-25 18:27:40 +02:00
Matthias
40545e62af Merge pull request #5082 from freqtrade/dry_run_order
Dry run order filling
2021-06-25 18:26:01 +02:00
Matthias
1a82685dd8 Don't reset log caching
uvicorn will "load from dict" the config - which flushes the logs
and therefore cleans log-buffering
2021-06-25 18:24:10 +02:00
mohammad sadegh hekmat
fef73b1b6a Update configuration.md 2021-06-25 20:42:44 +04:30
Matthias
ec2c4dd883 Merge pull request #5179 from mohammad-hekmat/patch-1
Update configuration.md
2021-06-25 18:04:36 +02:00
Matthias
91231a6073 Merge pull request #5177 from frosty00/binance-portal
Minor Binance Portal Edits
2021-06-25 17:49:35 +02:00
mohammad sadegh hekmat
ea236abf18 Update configuration.md 2021-06-25 19:19:51 +04:30
Carlo Revelli
69a3aee01e minor edits 2021-06-25 10:53:52 +01:00
Carlo Revelli
9e91240283 binance-portal 2021-06-25 10:43:40 +01:00
Matthias
2ade3ec7b9 Add max-width query to hide on small screens 2021-06-24 23:09:06 +02:00
Matthias
f585ffa264 Add Dark theme to Documentation 2021-06-24 22:53:46 +02:00
Matthias
538a1acdb5 Add Binance Broker ad to documentation page 2021-06-24 22:53:27 +02:00
Matthias
e0d3ca6c6d Fix import sorting 2021-06-24 18:44:59 +02:00
Matthias
c938edc01b Apply dataprovider to /pair_history endpoint 2021-06-24 18:18:01 +02:00
Matthias
f7c09ba63a Log endpoint should use static rpc class 2021-06-24 18:17:40 +02:00
Matthias
18c00a4222 Merge pull request #5170 from eschava/profit_N_consistent
make "/profit N" command output be consistent with "/daily" command
2021-06-23 18:27:49 +02:00
Eugene Schava
3c70768e18 make "/profit N" command output be consistent with "/daily" and "/status table" commands 2021-06-23 07:30:08 +03:00
Matthias
dce01b0542 Merge pull request #5159 from freqtrade/dependabot/pip/develop/scipy-1.7.0
Bump scipy from 1.6.3 to 1.7.0
2021-06-22 19:46:48 +02:00
Matthias
74b9be82a2 Merge pull request #5152 from robcaulk/patch-2
Fix errors during ubuntu install
2021-06-22 15:56:02 +02:00
Robert Caulk
10e94350e9 Update installation.md 2021-06-22 14:59:43 +02:00
Eugene Schava
e97c82c514 make "/profit N" command output be consistent with "/daily" and "/status table" commands 2021-06-22 12:22:19 +03:00
Eugene Schava
0605cbb06e make "/profit N" command output be consistent with "/daily" and "/status table" commands 2021-06-22 12:20:12 +03:00
Matthias
b8d6e68916 Merge pull request #5163 from freqtrade/dependabot/pip/develop/types-filelock-0.1.4
Bump types-filelock from 0.1.3 to 0.1.4
2021-06-21 15:08:24 +02:00
dependabot[bot]
8c1484ed5e Bump types-filelock from 0.1.3 to 0.1.4
Bumps [types-filelock](https://github.com/python/typeshed) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-filelock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-21 06:06:08 +00:00
Matthias
dda0a48dfa Merge pull request #5162 from freqtrade/dependabot/pip/develop/types-tabulate-0.1.1
Bump types-tabulate from 0.1.0 to 0.1.1
2021-06-21 08:05:19 +02:00
Matthias
b7a5f9d138 Merge pull request #5161 from freqtrade/dependabot/pip/develop/types-cachetools-0.1.8
Bump types-cachetools from 0.1.7 to 0.1.8
2021-06-21 08:04:49 +02:00
dependabot[bot]
2d05a8bea1 Bump types-cachetools from 0.1.7 to 0.1.8
Bumps [types-cachetools](https://github.com/python/typeshed) from 0.1.7 to 0.1.8.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-21 04:35:56 +00:00
Matthias
147ecb2063 Merge pull request #5164 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.19
Bump prompt-toolkit from 3.0.18 to 3.0.19
2021-06-21 05:28:36 +01:00
dependabot[bot]
fdc04e27a4 Bump types-tabulate from 0.1.0 to 0.1.1
Bumps [types-tabulate](https://github.com/python/typeshed) from 0.1.0 to 0.1.1.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-tabulate
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-21 04:25:59 +00:00
Matthias
9f18decd92 Merge pull request #5166 from freqtrade/dependabot/pip/develop/pycoingecko-2.2.0
Bump pycoingecko from 2.1.0 to 2.2.0
2021-06-21 05:20:46 +01:00
Matthias
b4bb88cad3 Merge pull request #5160 from freqtrade/dependabot/pip/develop/ccxt-1.51.77
Bump ccxt from 1.51.40 to 1.51.77
2021-06-21 05:20:07 +01:00
Matthias
b85fdf11b4 Merge pull request #5165 from freqtrade/dependabot/pip/develop/types-requests-0.1.13
Bump types-requests from 0.1.11 to 0.1.13
2021-06-21 05:19:32 +01:00
dependabot[bot]
bb0ee837bc Bump pycoingecko from 2.1.0 to 2.2.0
Bumps [pycoingecko](https://github.com/man-c/pycoingecko) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/man-c/pycoingecko/releases)
- [Changelog](https://github.com/man-c/pycoingecko/blob/master/CHANGELOG.md)
- [Commits](https://github.com/man-c/pycoingecko/commits)

---
updated-dependencies:
- dependency-name: pycoingecko
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-21 03:01:22 +00:00
dependabot[bot]
a6628fc65f Bump types-requests from 0.1.11 to 0.1.13
Bumps [types-requests](https://github.com/python/typeshed) from 0.1.11 to 0.1.13.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-21 03:01:21 +00:00
dependabot[bot]
eab6399490 Bump prompt-toolkit from 3.0.18 to 3.0.19
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.18 to 3.0.19.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.18...3.0.19)

---
updated-dependencies:
- dependency-name: prompt-toolkit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-21 03:01:17 +00:00
dependabot[bot]
fc7b372ce4 Bump ccxt from 1.51.40 to 1.51.77
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.51.40 to 1.51.77.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/1.51.40...1.51.77)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-21 03:01:06 +00:00
dependabot[bot]
17f8936f42 Bump scipy from 1.6.3 to 1.7.0
Bumps [scipy](https://github.com/scipy/scipy) from 1.6.3 to 1.7.0.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.6.3...v1.7.0)

---
updated-dependencies:
- dependency-name: scipy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-21 03:00:59 +00:00
Matthias
97351c95c0 Add section about GPU support
#5158 #5085 #3704 #2754
2021-06-20 10:36:18 +02:00
Matthias
7f434c0413 Simplify mkdocs jquery inclusion by using overrides
instead of partials
2021-06-20 09:37:32 +02:00
Matthias
347eceeda5 Try fix fluky test 2021-06-19 20:30:51 +02:00
Matthias
204758834d Merge pull request #4308 from eatrisno/patch-1
Add Refresh / Reload Button on rpc/Telegram
2021-06-19 18:50:59 +01:00
Matthias
122943d835 Don't run filter again for pairlist generator
The generator implicitly runs filter - so it should not be ran again
as that would void generator caching.

closes #5103
2021-06-19 19:37:27 +02:00
Matthias
96fbb226c5 Implement better strategy checks
part of #2696
2021-06-19 19:32:29 +02:00
Matthias
a7f8342171 Add small documentation about reload disabling 2021-06-19 16:49:54 +02:00
Matthias
6e99e3fbbb Implement tests for message updating 2021-06-19 09:31:34 +02:00
Matthias
39b876e37a Log exchange responses if configured 2021-06-19 09:07:42 +02:00
Matthias
e40d481d09 Merge pull request #5014 from Rikj000/hyperopt-show-include-non-optimized-in-json
BugFix - `hyperopt-show --print-json` include non-optimized params
2021-06-19 07:42:15 +01:00
Rik Helsen
656bebd4da 🪲 Included completely non_optimized spaces in json + swapped merge dictionary order 2021-06-18 22:03:04 +02:00
Matthias
6e89fbd146 Remove Dockerfile.aarch64
it's identical to the real image except for the "--platform" tag,
which is unnecessary if building from a arm64 architecture
2021-06-18 21:06:58 +02:00
Matthias
e1010ff592 Don't load protections from config if strategy defines a property 2021-06-18 19:55:53 +02:00
Robert Caulk
0a1e15988f Fix errors during ubuntu install
Encountering the python header error on a fresh ubuntu install:

```  utils_find_1st/find_1st.cpp:3:10: fatal error: Python.h: No such file or directory
   #include "Python.h"
            ^~~~~~~~~~
  compilation terminated.
```

solved by installing python3.7-dev. Also need to ensure python3.7-venv for fresh install.
2021-06-18 09:48:59 +02:00
Rik Helsen
1567804509 kwargs merge dictionaries instead of using loops 2021-06-17 22:41:49 +02:00
Cryptomeister Nox
85979c3176 * Adding command for Filtering
* Read latest Backtest file and print trades
2021-06-17 20:35:02 +02:00
Rik Helsen
546ca01071 ♻️ Fixed flake8 warning 2021-06-17 20:33:21 +02:00
Rik Helsen
96cd76998b Merge branch 'freqtrade-develop' into hyperopt-show-include-non-optimized-in-json
🔀 Merged upstream branches and fixed merge conflicts
2021-06-17 20:24:36 +02:00
Rik Helsen
90d37f5ec6 🔀 Merged upstream branches and fixed merge conflicts 2021-06-17 20:24:20 +02:00
Matthias
8562e19776 Document protections to come from the strategy 2021-06-17 20:15:53 +02:00
Matthias
a9f111dca0 Fix some types 2021-06-17 19:50:49 +02:00
Matthias
7ff794cb87 Merge branch 'develop' into pr/eatrisno/4308 2021-06-17 19:46:15 +02:00
Matthias
8bb464bd64 Merge pull request #5108 from rokups/rk/pessimistic-trailing-stoploss
Implement most pessimistic handling of trailing stoploss.
2021-06-17 18:41:00 +01:00
Matthias
c4bc47e6e7 Merge pull request #5140 from barisengez/develop
Moved daily avg trade row next to total trades on backtest results
2021-06-17 08:54:48 +01:00
Matthias
a49ca9cbf7 Change log-level "Executing handler" msg to debug
closes #5143
2021-06-17 06:57:35 +02:00
Matthias
b38ab84a13 Add documentation mention about new behaviour 2021-06-17 06:48:41 +02:00
Matthias
1c9def2fdb Update freqtrade/optimize/optimize_reports.py 2021-06-16 20:17:44 +01:00
barbarius
1bb04bb0c2 Moved daily avg trade row next to total trades on backtest results 2021-06-16 11:40:55 +02:00
Matthias
38ed49cef5 move low to stoploss_reached
to clarify where which rate is used
2021-06-15 09:05:36 +03:00
Rokas Kupstys
6d5fc96714 Implement most pessimistic handling of trailing stoploss. 2021-06-15 09:05:36 +03:00
Matthias
0af9bcef60 Merge pull request #5131 from freqtrade/dependabot/pip/develop/mypy-0.902
Bump mypy from 0.812 to 0.902
2021-06-14 19:03:46 +01:00
Matthias
cf7394d01c Export backtesting results by default
closes #4977
2021-06-14 19:57:24 +02:00
Matthias
4ba7a2bbd2 Fix mypy update problems 2021-06-14 19:18:42 +02:00
Matthias
9c789856bd Merge pull request #5129 from freqtrade/dependabot/pip/develop/mkdocs-1.2.1
Bump mkdocs from 1.2 to 1.2.1
2021-06-14 11:39:11 +01:00
dependabot[bot]
63802aa7f6 Bump mkdocs from 1.2 to 1.2.1
Bumps [mkdocs](https://github.com/mkdocs/mkdocs) from 1.2 to 1.2.1.
- [Release notes](https://github.com/mkdocs/mkdocs/releases)
- [Commits](https://github.com/mkdocs/mkdocs/compare/1.2...1.2.1)

---
updated-dependencies:
- dependency-name: mkdocs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-14 08:52:42 +00:00
Matthias
61845f9706 Merge pull request #5132 from freqtrade/dependabot/pip/develop/ccxt-1.51.40
Bump ccxt from 1.51.3 to 1.51.40
2021-06-14 09:51:17 +01:00
Matthias
cb10f8cd4f Merge pull request #5130 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.18
Bump sqlalchemy from 1.4.17 to 1.4.18
2021-06-14 09:50:40 +01:00
Matthias
9c64fe466d Merge pull request #5128 from freqtrade/dependabot/pip/develop/mkdocs-material-7.1.8
Bump mkdocs-material from 7.1.7 to 7.1.8
2021-06-14 09:16:39 +01:00
dependabot[bot]
fe933e78bd Bump ccxt from 1.51.3 to 1.51.40
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.51.3 to 1.51.40.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.51.3...1.51.40)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-14 05:19:33 +00:00
dependabot[bot]
3f1d6d453c Bump mypy from 0.812 to 0.902
Bumps [mypy](https://github.com/python/mypy) from 0.812 to 0.902.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v0.812...v0.902)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-14 05:19:23 +00:00
dependabot[bot]
4530ae28cd Bump sqlalchemy from 1.4.17 to 1.4.18
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.17 to 1.4.18.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-14 05:19:16 +00:00
dependabot[bot]
6dc4259c6e Bump mkdocs-material from 7.1.7 to 7.1.8
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.7 to 7.1.8.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.7...7.1.8)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-14 05:18:54 +00:00
Matthias
1d0a178eb5 Merge pull request #5122 from bzed/broken_symlink_fix
Ignore broken symlinks while resolving strategies.
2021-06-14 05:10:56 +01:00
Bernd Zeimetz
cd6620a044 Ignore broken symlinks while resolving strategies.
Without this fix the resolver tries to read from the broken symlink,
resulting in an exception that leads to the the rather confusing
error message

freqtrade.resolvers.iresolver - WARNING - Path "...../user_data/strategies" does not exist.

as a result of a symlink matching .py not being readable.
2021-06-13 21:42:09 +02:00
Matthias
e226252921 Always use the same parameter sequence 2021-06-13 20:39:25 +02:00
Matthias
a95f760ff7 Simplify update logic by moving it to send_msg 2021-06-13 20:34:08 +02:00
Matthias
03eff69829 Simplify update message sending 2021-06-13 20:23:32 +02:00
Matthias
d32508aa75 Merge branch 'develop' into pr/eatrisno/4308 2021-06-13 20:04:24 +02:00
Matthias
7b372fbcaa Merge pull request #5126 from freqtrade/remove_ordereddict
Remove ordereddict
2021-06-13 14:44:32 +01:00
Matthias
eaf0aac77e Remove OrderedDict
as we're no longer supporting python 3.6
2021-06-13 11:47:18 +02:00
Matthias
fb4dd6c2ac Update test to cover this scenario 2021-06-13 11:34:44 +02:00
Matthias
d54ee0eb04 Refactor hyperopt_tools naming 2021-06-13 11:24:24 +02:00
Matthias
c65b4e5d3b Small fix to models 2021-06-13 11:20:22 +02:00
Matthias
d35b2e3b8f Update ftx stoploss logic to properly detect correct trades
closes #5045
2021-06-13 11:06:34 +02:00
Matthias
a05e38dbd3 Require timeframe for plot-profit
must be set in config or via --timeframe
2021-06-12 09:03:55 +02:00
Matthias
e2bbc0aa04 Merge pull request #5117 from freqtrade/dependabot/pip/fastapi-0.65.2
Bump fastapi from 0.65.1 to 0.65.2
2021-06-10 17:58:53 +01:00
dependabot[bot]
c215b24a19 Bump fastapi from 0.65.1 to 0.65.2
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.65.1 to 0.65.2.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.65.1...0.65.2)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-10 15:54:32 +00:00
Matthias
ef208012c4 Merge pull request #5104 from freqtrade/enums_own_module
Enums own package
2021-06-10 05:31:14 +01:00
Matthias
c292926086 Small style improvements (no empty line at start) 2021-06-10 06:21:10 +02:00
Matthias
d4dfdf04fc Move RPCMessageType to enums 2021-06-09 20:23:17 +02:00
Matthias
f484ec216e Merge pull request #5099 from bgouvea/develop
Addition of the maximum drawdown to the hyperoptimization
2021-06-09 19:10:25 +01:00
Bruno Gouvea
40f1ede775 Simplifying HO's result function 2021-06-09 12:03:24 -03:00
Matthias
756904f985 Set sell_reason to stoploss when closing the trade as stoploss
closes #5101
2021-06-08 21:21:29 +02:00
Matthias
9c34304cb9 Move state enums to enums package 2021-06-08 21:20:35 +02:00
Matthias
3c149b9b59 Move signalType to enums 2021-06-08 21:09:39 +02:00
Matthias
89b9915c12 Update imports for SellType in tests 2021-06-08 21:07:16 +02:00
Matthias
d16a619489 Move SellType Enum to it's own module 2021-06-08 21:04:34 +02:00
Matthias
b9cf950bbf Add test for bad argument on /profit 2021-06-08 20:35:25 +02:00
Matthias
e71d965e32 Merge pull request #4982 from eschava/profit_day_week
day/week options for Telegram '/profit' command
2021-06-08 19:26:57 +01:00
Matthias
3310a45029 Change wording if limited lookback is used 2021-06-08 20:10:43 +02:00
Bruno Gouvea
3cce668353 Creating a control variable to determine the existence of max drawdown in the final result. 2021-06-08 02:57:44 -03:00
Bruno Gouvea
816bb531b3 Creating fake column for legacy mode on max drawdown 2021-06-08 02:42:55 -03:00
Bruno Gouvea
4595db39aa Displaying max. drawdown only when it is not legacy mode. 2021-06-08 02:18:00 -03:00
Bruno Gouvea
c513c9685d Remove blank line (PEP8) 2021-06-07 18:20:04 -03:00
Bruno Gouvea
5c3a418e65 Adjusting drawdown column position. 2021-06-07 18:15:26 -03:00
Bruno Gouvea
35d6140068 Displays the max drawdown in the hyper optimization results table. 2021-06-07 17:53:19 -03:00
Matthias
4512ece17d Update Discord link 2021-06-07 21:05:25 +02:00
Matthias
97a12ddab7 Version pin mkdocs to avoid nasty surprises
fix use_directory_urls defaulting to false
2021-06-07 20:19:48 +02:00
Matthias
dff8490daa Fix docs rendering for pricefilter 2021-06-07 20:00:30 +02:00
Matthias
ad16dbc50a Merge pull request #5092 from freqtrade/dependabot/pip/develop/blosc-1.10.4
Bump blosc from 1.10.2 to 1.10.4
2021-06-07 18:57:53 +01:00
dependabot[bot]
57cd8888e2 Bump blosc from 1.10.2 to 1.10.4
Bumps [blosc](https://github.com/blosc/python-blosc) from 1.10.2 to 1.10.4.
- [Release notes](https://github.com/blosc/python-blosc/releases)
- [Changelog](https://github.com/Blosc/python-blosc/blob/master/RELEASE_NOTES.rst)
- [Commits](https://github.com/blosc/python-blosc/compare/v1.10.2...v1.10.4)

---
updated-dependencies:
- dependency-name: blosc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-07 17:34:25 +00:00
Matthias
38e28dbf4e Merge pull request #5093 from freqtrade/dependabot/pip/develop/pycoingecko-2.1.0
Bump pycoingecko from 2.0.0 to 2.1.0
2021-06-07 18:33:35 +01:00
Matthias
9a87765e61 Merge pull request #5090 from freqtrade/dependabot/pip/develop/python-telegram-bot-13.6
Bump python-telegram-bot from 13.5 to 13.6
2021-06-07 18:05:36 +01:00
Matthias
b5bd695f2b Merge pull request #5091 from freqtrade/dependabot/pip/develop/ccxt-1.51.3
Bump ccxt from 1.50.70 to 1.51.3
2021-06-07 18:05:02 +01:00
Matthias
2878cca52c Merge pull request #5088 from freqtrade/dependabot/pip/develop/uvicorn-0.14.0
Bump uvicorn from 0.13.4 to 0.14.0
2021-06-07 11:53:55 +01:00
Matthias
bda7af08fa Merge pull request #5089 from freqtrade/dependabot/pip/develop/pytest-cov-2.12.1
Bump pytest-cov from 2.12.0 to 2.12.1
2021-06-07 11:50:08 +01:00
Matthias
bf5796744b Merge pull request #5094 from freqtrade/dependabot/pip/develop/mkdocs-material-7.1.7
Bump mkdocs-material from 7.1.6 to 7.1.7
2021-06-07 11:25:14 +01:00
dependabot[bot]
14119d7366 Bump mkdocs-material from 7.1.6 to 7.1.7
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.6 to 7.1.7.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.6...7.1.7)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-07 05:22:30 +00:00
dependabot[bot]
77a2feeb9f Bump pycoingecko from 2.0.0 to 2.1.0
Bumps [pycoingecko](https://github.com/man-c/pycoingecko) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/man-c/pycoingecko/releases)
- [Changelog](https://github.com/man-c/pycoingecko/blob/master/CHANGELOG.md)
- [Commits](https://github.com/man-c/pycoingecko/compare/2.0.0...2.1.0)

---
updated-dependencies:
- dependency-name: pycoingecko
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-07 05:22:24 +00:00
dependabot[bot]
2468ae35cd Bump ccxt from 1.50.70 to 1.51.3
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.50.70 to 1.51.3.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.50.70...1.51.3)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-07 05:22:09 +00:00
dependabot[bot]
69d74544aa Bump python-telegram-bot from 13.5 to 13.6
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 13.5 to 13.6.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v13.5...v13.6)

---
updated-dependencies:
- dependency-name: python-telegram-bot
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-07 05:22:00 +00:00
dependabot[bot]
9073a05328 Bump pytest-cov from 2.12.0 to 2.12.1
Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 2.12.0 to 2.12.1.
- [Release notes](https://github.com/pytest-dev/pytest-cov/releases)
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v2.12.0...v2.12.1)

---
updated-dependencies:
- dependency-name: pytest-cov
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-07 05:21:53 +00:00
dependabot[bot]
c8accd314a Bump uvicorn from 0.13.4 to 0.14.0
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.13.4 to 0.14.0.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.13.4...0.14.0)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-07 05:21:47 +00:00
Matthias
be6d6b7d74 Merge pull request #5083 from freqtrade/test_multiarch
Combine docker build scripts
2021-06-06 18:19:58 +01:00
Matthias
6479217cb4 Don't build for test_multiarch 2021-06-06 14:16:32 +02:00
Matthias
c76848e089 Update dry-run description with new filling logic 2021-06-06 13:51:42 +02:00
Matthias
c389d44e9a Improve filling logic 2021-06-05 15:22:52 +02:00
Matthias
db03a24109 Add tests for fill methods 2021-06-05 09:09:39 +02:00
Matthias
1e988c97ad Update dry-run order handling to use realistic fill prices
closes #3389
2021-06-05 09:09:39 +02:00
Matthias
a0893b291a Fix strategy samples to use runmode.value
closes #5073
2021-06-05 09:03:03 +02:00
Matthias
42b6d28b3c Update warning about order_time_in_force
as pointed out in #3009
2021-06-03 19:20:04 +02:00
Matthias
8e44de7f83 Merge pull request #5071 from janoskut/plot-profit-make-open-html-optional
plot-profit: Make "auto-open" HTML result optional
2021-06-03 05:40:38 +01:00
Matthias
8f4700e690 Merge pull request #5070 from janoskut/test-pairlist-remove-non-json-headline
test-pairlist: remove non-JSON headline from JSON output
2021-06-03 05:39:50 +01:00
Janos
812eb229df plot-profit: Make "auto-open" HTML result optional
Adding an "--auto-open" argument.
This improves tool processing of the results, while still allowing to open the HTML file for easy use.
2021-06-02 21:33:26 +02:00
Janos
80af6e43e4 test-pairlist: remove non-JSON headline from JSON output 2021-06-02 21:02:21 +02:00
Matthias
3dab58e6db Merge pull request #5069 from freqtrade/dry_run_orders
Pricing refactor
2021-06-02 18:05:51 +01:00
Matthias
cabab44b75 Combine docker build scripts 2021-06-02 16:13:51 +02:00
Matthias
387f3bbc5d Adjust missed tests 2021-06-02 11:43:47 +02:00
Matthias
bd1984386e Move get_sell_rate to exchange class 2021-06-02 11:41:13 +02:00
Matthias
12916243ec Move get_buy_rate to exchange class 2021-06-02 11:30:19 +02:00
Matthias
4e1425023e Further reorder exchange methods 2021-06-02 11:20:26 +02:00
Matthias
4c277b3039 Reorder exchange methods 2021-06-02 11:18:13 +02:00
Matthias
67beda6c92 Add fetch_dry_run_order method 2021-06-02 11:06:32 +02:00
Matthias
10cd89a99d Allow the API to respond faster in case of long pairlists 2021-06-02 10:39:49 +02:00
Matthias
a257137993 Merge pull request #5066 from eschava/telegram_sell_message
telegram: move the most important information to the top of the sell message
2021-06-02 06:40:29 +01:00
Eugene Schava
9edcb393b6 telegram: move the most important information to the top of sell message
fixed flake error
2021-06-01 22:24:21 +03:00
Matthias
1594402312 Add note about signal expiry 2021-06-01 19:39:41 +02:00
Eugene Schava
79552a93fe telegram: move the most important information to the top of sell message
fixed tests
2021-06-01 20:17:11 +03:00
Eugene Schava
53b1f38952 telegram: move the most important information to the top of sell message 2021-06-01 20:08:22 +03:00
Matthias
f920c26802 fix Hyperopt-list avg-time filters
These should use a numeric field (which currently isn't available).

closes #5061
2021-05-31 20:01:40 +02:00
Matthias
2f816dff9b Merge pull request #5057 from freqtrade/dependabot/pip/develop/ccxt-1.50.70
Bump ccxt from 1.50.48 to 1.50.70
2021-05-31 16:40:19 +01:00
Matthias
b5e3fe3b8e Document bittrex volumepairlist incompatibility
closes #5051
2021-05-31 17:38:41 +02:00
dependabot[bot]
f9541d301f Bump ccxt from 1.50.48 to 1.50.70
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.50.48 to 1.50.70.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.50.48...1.50.70)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-31 08:19:14 +00:00
Matthias
1829da669c Merge pull request #5053 from freqtrade/dependabot/pip/develop/urllib3-1.26.5
Bump urllib3 from 1.26.4 to 1.26.5
2021-05-31 07:40:28 +01:00
Matthias
1dc2af78ce Merge pull request #5055 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.17
Bump sqlalchemy from 1.4.15 to 1.4.17
2021-05-31 07:38:40 +01:00
Matthias
3d54ab78b2 Merge pull request #5054 from freqtrade/dependabot/pip/develop/mkdocs-material-7.1.6
Bump mkdocs-material from 7.1.5 to 7.1.6
2021-05-31 07:37:56 +01:00
Matthias
a92865ce8a Merge pull request #5056 from freqtrade/dependabot/pip/develop/coveralls-3.1.0
Bump coveralls from 3.0.1 to 3.1.0
2021-05-31 07:37:17 +01:00
dependabot[bot]
5d4e182336 Bump coveralls from 3.0.1 to 3.1.0
Bumps [coveralls](https://github.com/TheKevJames/coveralls-python) from 3.0.1 to 3.1.0.
- [Release notes](https://github.com/TheKevJames/coveralls-python/releases)
- [Changelog](https://github.com/TheKevJames/coveralls-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TheKevJames/coveralls-python/compare/3.0.1...3.1.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-31 05:18:54 +00:00
dependabot[bot]
b4319b5ad8 Bump sqlalchemy from 1.4.15 to 1.4.17
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.15 to 1.4.17.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-31 05:18:49 +00:00
dependabot[bot]
eb166147c3 Bump mkdocs-material from 7.1.5 to 7.1.6
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.5 to 7.1.6.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.5...7.1.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-31 05:18:39 +00:00
dependabot[bot]
cd300c52ee Bump urllib3 from 1.26.4 to 1.26.5
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.4 to 1.26.5.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.4...1.26.5)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-31 05:18:19 +00:00
Matthias
2d7ccaeb3d Add test for load_config 2021-05-30 20:14:54 +02:00
Matthias
06b59551b0 Improve test coverage 2021-05-30 20:14:54 +02:00
Matthias
f9bcf19f9a Merge pull request #5003 from rokups/rk/plotting
Indicator plotting improvement
2021-05-30 18:44:54 +01:00
Matthias
e3d5c9cb10 Fix typo in exception message 2021-05-30 16:39:33 +01:00
Matthias
e17e35f0ef Merge pull request #5046 from freqtrade/list_strategy_hyperopt
allow list-strategies to show if params are hyperoptable
2021-05-30 16:36:31 +01:00
Matthias
d3e255935a Merge pull request #5050 from freqtrade/test_nowrite
Test nowrite
2021-05-30 15:46:57 +01:00
Matthias
901d984ee3 Tests should write to tmpdir, not testdir 2021-05-30 16:26:24 +02:00
Matthias
4ac3e2978b Merge pull request #5049 from kamontat/patch-1
Fix we use check sell_noti not noti
2021-05-30 15:19:27 +01:00
Kamontat Chantrachirathumrong
806838c3af Fix we use check sell_noti not noti 2021-05-30 21:07:44 +07:00
Rokas Kupstys
b54da430b9 Add ability to plot bars on indicator chart and pass custom arguments to plotly. 2021-05-30 11:11:19 +03:00
Matthias
08f96df3ac Don't write to testdir, but to tempdir 2021-05-30 08:43:14 +02:00
Matthias
d7fdc2114a allow list-strategies to show if params are hyperoptable 2021-05-29 13:27:08 +02:00
Matthias
a81a672ffe Merge pull request #5043 from freqtrade/test_multiarch
Test multiarch
2021-05-29 09:44:02 +01:00
Matthias
f6b1abe23f Remove ci from test_multiarch again 2021-05-29 08:30:55 +02:00
Matthias
9cf2c2201b Align dockerfiles 2021-05-29 08:30:55 +02:00
Matthias
1e052bde90 Move Dockerfile.armhf to docker directory 2021-05-29 08:30:55 +02:00
Matthias
8658be004e Use docker-manifest to build multiarch images 2021-05-29 08:30:45 +02:00
Matthias
313567d07d Support having numbers in custom keyboard 2021-05-29 08:12:25 +02:00
Matthias
9d5ffce732 Merge pull request #5042 from blacklightpy/develop
Removed binance.je from exchange specific notes
2021-05-29 07:11:01 +01:00
Jyothish Kumar M S
6418f2eedb Removed binance.je from exchange specific notes
Binance Jersey is deprecated, so I think it should be removed from freqtrade
2021-05-29 01:28:20 +05:30
Matthias
4617967e14 Try building for multiarch 2021-05-28 19:15:03 +02:00
Eugene Schava
14df243661 day/week options for Telegram '/profit' command
mypy fix
2021-05-28 17:18:23 +03:00
Eugene Schava
012309a06a day/week options for Telegram '/profit' command
fixed line lenght
2021-05-28 17:03:31 +03:00
Eugene Schava
36b68d3702 day/week options for Telegram '/profit' command
format changed to "/profit n"
2021-05-28 14:46:22 +03:00
Eugene Schava
4b5a9d8c49 day/week options for Telegram '/profit' command
revert accidental changes
2021-05-28 14:43:57 +03:00
Matthias
59366208b0 Add no_build-isolation to arm images too 2021-05-28 13:01:09 +02:00
Matthias
27bd3cea4f Fix failing docker build 2021-05-28 12:40:30 +02:00
Eugene Schava
a965436cd6 day/week options for Telegram '/profit' command
format changed to "/profit n"
2021-05-28 10:17:26 +03:00
Matthias
6224a656c3 Merge pull request #5031 from freqtrade/pytoml
Switch to pyproject.toml for setup
2021-05-28 07:58:13 +01:00
Matthias
8a56af9192 Update onlyprofit loss should use absolute profit
closes #4934
2021-05-28 08:38:46 +02:00
Matthias
a42effd4fc Update email to freqtrade email address 2021-05-28 08:26:20 +02:00
Matthias
b740ed8064 Merge pull request #5035 from marijn111/develop
Fix NameError in hyperopt.md code example
2021-05-27 15:13:48 +01:00
Matthias
7bfe935e37 Merge pull request #4838 from Antreasgr/fix-encoding-issue
Fix bug in running hyperopt in windows 10
2021-05-27 14:57:36 +01:00
Matthias
85c2ca0d03 Merge pull request #5034 from freqtrade/new_release
New release 2021.5
2021-05-27 14:52:44 +01:00
Matthias
377352fced Merge pull request #4682 from freqtrade/sqlalchemy_14
Sqlalchemy 14 preparations
2021-05-27 14:19:25 +01:00
Marijn
6235a4d92e [changes] - Hyperopt code example 2021-05-27 15:01:58 +02:00
Matthias
a89364aa98 Merge branch 'develop' into pr/Antreasgr/4838 2021-05-27 14:59:39 +02:00
Matthias
5d96107496 Don't configure isort twice 2021-05-27 14:25:29 +02:00
Matthias
3014bc3467 Don't use Sum sign in hyperopt to avoid compatibility problems 2021-05-27 14:22:11 +02:00
Matthias
9fbc5c0537 Switch to pyproject.toml for setup 2021-05-27 14:03:39 +02:00
Matthias
639c83575b Fix csv-export error with new hyperopt format 2021-05-27 13:09:06 +02:00
Matthias
cf39dd2163 Fix csv-export error with new hyperopt format 2021-05-27 13:08:28 +02:00
Matthias
e0083bc58e Support backwards-compatible sell setting 2021-05-27 13:00:05 +02:00
Matthias
66de5df1d1 Update sqlite init method 2021-05-27 11:38:28 +02:00
Matthias
b82f7a2dfd Update orders-migrations to work with new sqlalchemy syntax 2021-05-27 11:38:28 +02:00
Matthias
17f74f7da8 Ensure commit happens on forcebuy 2021-05-27 11:38:28 +02:00
Matthias
a01d05997e Add Trade.commit method for easy use 2021-05-27 11:38:28 +02:00
Matthias
6fb32c3594 Use commit instead of .flush() 2021-05-27 11:38:28 +02:00
Matthias
eaa47ff335 Don't use autocommit 2021-05-27 11:38:28 +02:00
Matthias
c31cb67118 Further changes for sqlalchemy 1.4 2021-05-27 11:38:28 +02:00
Matthias
2f79958acb Move declarative_base import to import from .orm 2021-05-27 11:38:28 +02:00
Kamontat Chantrachirathumrong
c5c323ca88 Settings notify sell in telegram base on sell reason (#5028)
* BREAK: notification sell by sell reason

* Update constants.py

* Update telegram.py

* Update telegram-usage.md

* Update telegram.py

* Update telegram.py

* Fix test fail

* Update config_full.json.example

* Update telegram-usage.md

* Update telegram.py

* Update telegram.py

* Update telegram-usage.md

* validate value of sell object

* Fix linter

* Update constants.py

* Make telegram sample slightly more positive

Co-authored-by: Matthias <xmatthias@outlook.com>
2021-05-27 11:35:27 +02:00
Matthias
8bef7217ec Forgot to save :O 2021-05-27 11:24:01 +02:00
Matthias
a6cd353655 Address random ci failure 2021-05-27 11:22:22 +02:00
Matthias
0c9b913cad Version bump 2021.5 2021-05-27 11:10:10 +02:00
Matthias
e42e06a593 Merge branch 'stable' into new_release 2021-05-27 11:10:00 +02:00
Matthias
f3d8e5c9e4 Improve hyperopt docs
closes #4949
2021-05-27 10:44:35 +02:00
Matthias
42453333be Align coinbase download with ccxt limits
Align with https://github.com/ccxt/ccxt/issues/9268
2021-05-27 07:38:47 +02:00
Matthias
8e89d3e6e4 Fix sort error 2021-05-25 19:33:34 +02:00
Matthias
cc5769e900 Convert np.int64 to proper int
closes #5018
2021-05-25 19:24:56 +02:00
Matthias
a747312c1e Explicitly provide is_open to trade Object
closes #5015
2021-05-25 18:02:07 +02:00
Matthias
aa4653549b Merge pull request #5019 from kamontat/patch-1
Wrong filename in devcontainer
2021-05-25 05:27:44 +01:00
Kamontat Chantrachirathumrong
7dcf94f80c Update Dockerfile 2021-05-25 08:18:14 +07:00
Rikj000
bd44deea0d BugFix - hyperopt-show --print-json include non-optimized params 2021-05-24 18:51:33 +02:00
Matthias
9465fd390a Fix devcontainer 2021-05-24 17:01:53 +02:00
Matthias
c14a4eaa68 Merge pull request #5013 from nmenescardi/patch-2
Update strategy-advanced.md
2021-05-24 15:27:23 +01:00
Nicolas Menescardi
c0d3a31ddb Update strategy-advanced.md
fix some typos
2021-05-24 11:08:17 -03:00
Matthias
bb1222d9b8 Merge pull request #5009 from freqtrade/dependabot/pip/develop/ta-lib-0.4.20
Bump ta-lib from 0.4.19 to 0.4.20
2021-05-24 10:31:59 +01:00
Matthias
ba3997185b Update wheels for ta-lib 2021-05-24 10:43:48 +02:00
Matthias
84d8a4b061 Merge pull request #5010 from freqtrade/dependabot/pip/develop/ccxt-1.50.30
Bump ccxt from 1.50.6 to 1.50.30
2021-05-24 09:43:11 +01:00
Matthias
5d44ca0b82 Merge pull request #5005 from Pascal66/patch-2
Fix a rare error during hyperopt
2021-05-24 09:40:29 +01:00
Matthias
d95c526242 Merge pull request #5008 from freqtrade/dependabot/pip/develop/jinja2-3.0.1
Bump jinja2 from 3.0.0 to 3.0.1
2021-05-24 07:05:34 +01:00
Matthias
af16614bf2 Fix formatting issue 2021-05-24 07:48:36 +02:00
Matthias
929e085910 Merge pull request #5007 from freqtrade/dependabot/pip/develop/mkdocs-material-7.1.5
Bump mkdocs-material from 7.1.4 to 7.1.5
2021-05-24 06:46:11 +01:00
dependabot[bot]
20ccda1699 Bump ccxt from 1.50.6 to 1.50.30
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.50.6 to 1.50.30.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.50.6...1.50.30)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-24 05:24:17 +00:00
dependabot[bot]
7757c476fd Bump ta-lib from 0.4.19 to 0.4.20
Bumps [ta-lib](https://github.com/mrjbq7/ta-lib) from 0.4.19 to 0.4.20.
- [Release notes](https://github.com/mrjbq7/ta-lib/releases)
- [Changelog](https://github.com/mrjbq7/ta-lib/blob/master/CHANGELOG)
- [Commits](https://github.com/mrjbq7/ta-lib/compare/TA_Lib-0.4.19...TA_Lib-0.4.20)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-24 05:24:08 +00:00
dependabot[bot]
2fddb4ae43 Bump jinja2 from 3.0.0 to 3.0.1
Bumps [jinja2](https://github.com/pallets/jinja) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.0.0...3.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-24 05:24:02 +00:00
dependabot[bot]
4c02e6667f Bump mkdocs-material from 7.1.4 to 7.1.5
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.4 to 7.1.5.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.4...7.1.5)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-24 05:23:55 +00:00
Priveyes
6f990c5976 Fix a rare error in save_result : ValueError: Out of range float values are not JSON compliant
freqtrade/freqtrade/optimize/hyperopt.py", line 166, in _save_result
    rapidjson.dump(epoch, f, default=str, number_mode=rapidjson.NM_NATIVE)
ValueError: Out of range float values are not JSON compliant
2021-05-23 18:49:07 +02:00
Matthias
ae037b0ec1 Merge pull request #4746 from gmatheu/contribution/telegram_forcebuy_inline_keyboard
Telegram: forcebuy inline keyboard
2021-05-23 15:32:47 +01:00
Matthias
f760b4a789 Merge branch 'develop' into pr/gmatheu/4746 2021-05-23 16:03:11 +02:00
Matthias
77302ea178 Update documentation for forcebuy query 2021-05-23 16:01:49 +02:00
Matthias
971d5b2ecc Merge pull request #5002 from freqtrade/track_rejected_trades
Track rejected trades
2021-05-23 14:56:50 +01:00
Matthias
3f956441fc Properly format % of zero_duration_trades 2021-05-23 15:53:54 +02:00
Matthias
a39860e0de Add tests for rejected signals 2021-05-23 14:15:02 +02:00
Matthias
7f125315b0 Track Rejected Trades
closes #3423
2021-05-23 09:42:05 +02:00
Matthias
02faeb60a3 Merge pull request #4943 from rokups/rk/statistics
Extra statistics
2021-05-23 08:38:27 +01:00
Matthias
916ece6a29 More realistic testcase for results 2021-05-23 09:15:36 +02:00
Rokas Kupstys
db985cbc2e Fix hyperopt-show failing to display old results with missing new fields. 2021-05-23 09:45:26 +03:00
Matthias
74d75599a9 Merge pull request #4964 from thraizz/develop
Add backoff timer for coingecko API
2021-05-22 16:54:29 +01:00
Matthias
765c824bfc isort 2021-05-22 17:25:23 +02:00
Matthias
a7bd8b0aa5 Fix exception in plotting when no trades where generated
as seen in #4981
2021-05-22 17:03:16 +02:00
Matthias
feb836eaf6 Merge pull request #4994 from freqtrade/support_other_dbs
Support other dbs
2021-05-22 15:54:34 +01:00
A. Schueler
0693458507 Update freqtrade/rpc/fiat_convert.py 2021-05-22 16:26:58 +02:00
Matthias
08c707e0cf Update docs with new format 2021-05-22 15:38:13 +02:00
Rokas Kupstys
25cc4eae96 Fix tests that broke after table formatting changed. 2021-05-22 15:25:37 +02:00
Matthias
5191c869c9 Merge pull request #4996 from JoeSchr/patch-5
Fix missing `not` in `empty` check
2021-05-22 13:57:17 +01:00
A. Schueler
be13856171 Fix flake8 error in test_fiat_convert 2021-05-22 13:43:48 +02:00
A. Schueler
f8cdd6475c Reduce warnings when waiting for coingecko backoff 2021-05-22 13:43:33 +02:00
JoeSchr
21d986710d Fix missing not in empty check
See discussing here: https://github.com/freqtrade/freqtrade/pull/4963#discussion_r633457596
seems that request was only partially implemented
2021-05-22 13:26:59 +02:00
A. Schueler
e4ca944597 Add tests for coingecko backoff 2021-05-22 12:04:24 +02:00
A. Schueler
6e05f856b4 Abort _find_price when cryptomap is empty after retry 2021-05-22 11:55:03 +02:00
A. Schueler
ab6bfbad12 Handle RequestExceptions that are not 429s in _load_cryptomap 2021-05-22 11:52:40 +02:00
A. Schueler
8842e0d161 Fix flake8 error in fiat_convert 2021-05-22 10:59:33 +02:00
A. Schueler
a0921ec753 Add backoff timer for coingecko API
Set a future timestamp when we should retry getting coingecko data.

This fixes conversion from stake to fiat when running multiple bots
as we don't simply accept the 429 error from Coingecko but handle it.
2021-05-22 10:59:33 +02:00
Matthias
df0928c8b5 Merge pull request #4992 from freqtrade/buy_partial_fill
Don't cancel low partial filled buy
2021-05-22 09:17:04 +01:00
Matthias
cc064f1574 String columns should have a max-length defined
otherwise MySql will not work.
2021-05-22 10:12:23 +02:00
Matthias
5285cd69b4 Add documentation for Postgres and Mysql 2021-05-22 10:12:03 +02:00
Matthias
44bbc0718e CLosing bracket 2021-05-21 20:54:18 +02:00
Matthias
a7216e6279 SQLite does not know drop column 2021-05-21 20:53:38 +02:00
Matthias
41e3233bab Fix failing test 2021-05-21 20:44:11 +02:00
Matthias
6acb2eb2b6 Add average column to orders table 2021-05-21 20:35:39 +02:00
Matthias
4e94d3d3e5 Add test for too small buy check 2021-05-21 19:49:36 +02:00
Matthias
45e2621505 Add minimum-filled protection for buy cancels 2021-05-21 19:32:16 +02:00
Matthias
4c08f0020a Merge pull request #4990 from nmenescardi/patch-1
Update strategy-customization.md
2021-05-21 16:03:53 +01:00
Nicolas Menescardi
9537d9f4e2 Update strategy-customization.md
Fix typo: 'This will method will...' -> 'This method will...'
2021-05-21 11:27:22 -03:00
Matthias
dfa412f0de Fix typo in filter 2021-05-21 13:24:13 +02:00
Rokas Kupstys
981b2df7ca Include win:loss ratio in results tables. 2021-05-21 12:18:08 +03:00
Rokas Kupstys
debd98ad9a Make results table more compact by merging win/draw/loss columns and drawdown abs/% into single columns. 2021-05-21 11:36:23 +03:00
Rokas Kupstys
e1dc1357ce Add drawdown column to strategy summary table. 2021-05-21 11:36:23 +03:00
Rokas Kupstys
edcfa94093 Include zero duration trades in backtesting report. 2021-05-21 11:36:23 +03:00
Matthias
0e6c1d28f4 Fix cleanup CI by updating action 2021-05-21 09:32:18 +02:00
Matthias
10b013dc34 Merge pull request #4963 from robcaulk/patch-1
update doc to reflect better empty dataframe check
2021-05-21 09:31:16 +02:00
Matthias
96ea10e562 Fix circular import in hyperopt 2021-05-21 08:52:56 +02:00
Matthias
f398888865 Refactor preprocessed trimming to seperate method 2021-05-21 08:26:19 +02:00
Matthias
d19b37c777 Merge pull request #4979 from kamontat/patch-1
Fix hyperopt trim to empty dataframe
2021-05-21 08:17:35 +02:00
Matthias
1a30e39222 Move squeeze into if block 2021-05-21 08:06:27 +02:00
Matthias
ccd705bfda Merge pull request #4962 from eschava/total_row
Total row for telegram "/status table" command
2021-05-21 08:02:30 +02:00
Matthias
e2edcb5457 Merge pull request #4988 from kamontat/patch-2
fix wrong json key
2021-05-21 07:19:48 +02:00
Kamontat Chantrachirathumrong
0045d3a726 fix wrong json key 2021-05-21 11:18:16 +07:00
Eugene Schava
336f4aa6a7 day/week options for Telegram '/profit' command
isort fix
2021-05-20 08:17:08 +03:00
Kamontat Chantrachirathumrong
6172e67fcd Update hyperopt.py 2021-05-20 11:56:31 +07:00
Kamontat Chantrachirathumrong
c2b9da68e1 fix indent 2021-05-20 11:56:11 +07:00
Kamontat Chantrachirathumrong
1b3bfb2e7f found root cause. 2021-05-20 11:50:15 +07:00
Kamontat Chantrachirathumrong
48210170e7 wrap with is not empty 2021-05-20 11:49:25 +07:00
Matthias
ba106e6c4a Merge pull request #4975 from Axel-CH/allow_seconds_unfilled_timeout
Add ability to choose unit in unfilled timeout
2021-05-20 06:43:15 +02:00
Matthias
586f2a699d Merge pull request #4953 from freqtrade/value_filter
max-value change filter
2021-05-20 06:35:34 +02:00
Matthias
0358b5365f Add "unfilledtimeout-unit" to full config sample 2021-05-20 06:26:07 +02:00
Eugene Schava
935ed36433 day/week options for Telegram '/profit' command
mypy fix
2021-05-20 01:10:22 +03:00
Eugene Schava
e9841910e9 day/week options for Telegram '/profit' command 2021-05-20 00:33:33 +03:00
Kamontat Chantrachirathumrong
082fb11bbe Avoid having error cannot set a frame with no defined index and a scalar 2021-05-20 01:54:48 +07:00
Matthias
ef4d1c24d7 Merge pull request #4941 from brookmiles/fix-stoploss-above-candle
prevent backtest stoploss trade price being set above candle high
2021-05-19 06:20:35 +02:00
axel
75f88b466a add ability to choose unit in unfilled timeout 2021-05-18 19:30:36 -04:00
Matthias
7a9853bfe1 Fix "Too many open Files" exception 2021-05-18 20:39:55 +02:00
Matthias
2565f91bc2 Adjust tests to reflect new stoploss behaviour 2021-05-18 19:33:17 +02:00
Matthias
16c22c7b68 Add pair name to stoploss
helps debugging #4972
2021-05-18 19:16:25 +02:00
Matthias
36eba0f110 Don't use "r+" memmap, but "r2 2021-05-17 21:05:48 +02:00
Matthias
6aa574fa2b Convert ROI result to proper json object
closes #4952
2021-05-17 20:58:50 +02:00
Matthias
6659a07079 Add tests for max-value filter 2021-05-17 19:47:57 +02:00
Matthias
369f19df6b Add valuefilter to Pricefilters 2021-05-17 19:44:36 +02:00
Matthias
3006396398 Fix docstring typo 2021-05-17 19:37:22 +02:00
Matthias
26f5bc6584 Merge pull request #4944 from brookmiles/fix-download-data-end-date
Add support for timerange end date to `download-data`
2021-05-17 19:35:32 +02:00
Eugene Schava
459fae6d80 Total row for telegram "/status table" command
fixes
2021-05-17 16:22:48 +03:00
Eugene Schava
3ad8fa2f38 Total row for telegram "/status table" command
moved sum calculation to API
2021-05-17 15:59:03 +03:00
Matthias
c2bd1bf7e6 Merge pull request #4960 from freqtrade/dependabot/pip/develop/fastapi-0.65.1
Bump fastapi from 0.64.0 to 0.65.1
2021-05-17 14:31:30 +02:00
dependabot[bot]
cb50298bfe Bump fastapi from 0.64.0 to 0.65.1
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.64.0 to 0.65.1.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.64.0...0.65.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-17 12:05:13 +00:00
Matthias
4436700f5a Merge pull request #4959 from freqtrade/dependabot/pip/develop/aiofiles-0.7.0
Bump aiofiles from 0.6.0 to 0.7.0
2021-05-17 14:04:40 +02:00
Eugene Schava
196fde44e0 Total row for telegram "/status table" command
work around mypy warning
2021-05-17 14:45:54 +03:00
Matthias
748f5d6490 Merge pull request #4961 from freqtrade/dependabot/pip/develop/jinja2-3.0.0
Bump jinja2 from 2.11.3 to 3.0.0
2021-05-17 13:14:13 +02:00
Eugene Schava
915ff7e1bf Total row for telegram "/status table" command
fix mypy warnings
2021-05-17 13:03:20 +03:00
Eugene Schava
d7479fda1f Total row for telegram "/status table" command
fix compiler warnings
2021-05-17 12:53:57 +03:00
Eugene Schava
0abb9cfe28 Total row for telegram "/status table" command 2021-05-17 12:41:44 +03:00
Robert Caulk
860a4d2390 update doc to reflect better empty dataframe check 2021-05-17 11:40:57 +02:00
Matthias
6542070afa Merge pull request #4954 from freqtrade/dependabot/pip/develop/numpy-1.20.3
Bump numpy from 1.20.2 to 1.20.3
2021-05-17 10:41:27 +02:00
Eugene Schava
10ef0f54ac Total row for telegram "/status table" command 2021-05-17 11:12:11 +03:00
dependabot[bot]
40ae21f3a8 Bump numpy from 1.20.2 to 1.20.3
Bumps [numpy](https://github.com/numpy/numpy) from 1.20.2 to 1.20.3.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.20.2...v1.20.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-17 07:59:36 +00:00
Matthias
c5d9c09220 Merge pull request #4958 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.15
Bump sqlalchemy from 1.4.14 to 1.4.15
2021-05-17 09:16:09 +02:00
Matthias
868706d132 Merge pull request #4956 from freqtrade/dependabot/pip/develop/pytest-cov-2.12.0
Bump pytest-cov from 2.11.1 to 2.12.0
2021-05-17 09:15:43 +02:00
Matthias
c17d93f387 Merge pull request #4957 from freqtrade/dependabot/pip/develop/flake8-tidy-imports-4.3.0
Bump flake8-tidy-imports from 4.2.1 to 4.3.0
2021-05-17 09:14:43 +02:00
Matthias
5f2fe24d7d Merge pull request #4955 from freqtrade/dependabot/pip/develop/ccxt-1.50.6
Bump ccxt from 1.49.73 to 1.50.6
2021-05-17 07:46:33 +02:00
dependabot[bot]
c0b61282fb Bump jinja2 from 2.11.3 to 3.0.0
Bumps [jinja2](https://github.com/pallets/jinja) from 2.11.3 to 3.0.0.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/2.11.3...3.0.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-17 05:21:52 +00:00
dependabot[bot]
8143e63853 Bump aiofiles from 0.6.0 to 0.7.0
Bumps [aiofiles](https://github.com/Tinche/aiofiles) from 0.6.0 to 0.7.0.
- [Release notes](https://github.com/Tinche/aiofiles/releases)
- [Commits](https://github.com/Tinche/aiofiles/compare/v0.6.0...v0.7.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-17 05:21:36 +00:00
dependabot[bot]
976a026d3b Bump sqlalchemy from 1.4.14 to 1.4.15
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.14 to 1.4.15.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-17 05:21:31 +00:00
dependabot[bot]
439ef197bc Bump flake8-tidy-imports from 4.2.1 to 4.3.0
Bumps [flake8-tidy-imports](https://github.com/adamchainz/flake8-tidy-imports) from 4.2.1 to 4.3.0.
- [Release notes](https://github.com/adamchainz/flake8-tidy-imports/releases)
- [Changelog](https://github.com/adamchainz/flake8-tidy-imports/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/flake8-tidy-imports/compare/4.2.1...4.3.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-17 05:21:18 +00:00
dependabot[bot]
78c77cca73 Bump pytest-cov from 2.11.1 to 2.12.0
Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 2.11.1 to 2.12.0.
- [Release notes](https://github.com/pytest-dev/pytest-cov/releases)
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v2.11.1...v2.12.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-17 05:21:11 +00:00
dependabot[bot]
b0f854af95 Bump ccxt from 1.49.73 to 1.50.6
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.49.73 to 1.50.6.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.49.73...1.50.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-17 05:21:02 +00:00
Matthias
37b71b8cfd Fix PerformanceFilter failing in test-pairlist mode 2021-05-16 19:55:13 +02:00
Matthias
0d50e99563 Fix Agefilter checking for > instead of >= 2021-05-16 19:35:30 +02:00
Matthias
c9ac67e985 Fix some typos 2021-05-16 14:50:25 +02:00
Matthias
8f8d5dbff5 Add tests for sl_order_with_result 2021-05-16 14:41:50 +02:00
Matthias
6f38976470 Introduce cancel_stoploss_with_result 2021-05-16 14:15:24 +02:00
Matthias
380754b8ab Fix typos in docstrings 2021-05-16 13:20:05 +02:00
Matthias
0b1dd0d203 Use correct order_id for ftx
closes #4511
2021-05-16 09:15:25 +02:00
Matthias
32bdceee12 Merge pull request #4947 from freqtrade/performance_abs
/performance - sort by absolute profit
2021-05-15 20:32:58 +02:00
Matthias
2d7735ba04 Update telegram to sort performance by absolute performance 2021-05-15 19:49:21 +02:00
Matthias
6b2a38ccfb Add absolute Profit to apiserver 2021-05-15 19:39:46 +02:00
Matthias
2ecb42a639 Improve rest-api doc config samples 2021-05-15 15:52:02 +02:00
Matthias
4a11688e33 Merge pull request #4945 from JoeSchr/patch-4
Update installation.md
2021-05-15 15:38:28 +02:00
JoeSchr
8e98778498 Update installation.md
Fix typo
2021-05-15 15:21:21 +02:00
Matthias
4f968b4a6f Merge pull request #4926 from rokups/rk/misc-fixes
Two fixes
2021-05-15 15:11:07 +02:00
Brook Miles
db17b1a851 fix indentation 2021-05-15 20:20:36 +09:00
Brook Miles
88da1f109b fix #4412 download-data does not stop downloading at the specified TIMERANGE end date 2021-05-15 20:15:19 +09:00
Rokas Kupstys
2d5f465f1b Fix protections being loaded multiple times for first strategy when backtesting. 2021-05-15 13:37:03 +03:00
Rokas Kupstys
29fed37df3 Fix exception when few pairs with no data do not result in aborting backtest.
Exception is triggered by backtesting 20210301-20210501 range with BAKE/USDT pair (binance). Pair data starts on 2021-04-30 12:00:00 and after adjusting for startup candles pair dataframe is empty.

Solution: Since there are other pairs with enough data - skip pairs with no data and issue a warning.

Exception:
```
Traceback (most recent call last):
  File "/home/rk/src/freqtrade/freqtrade/main.py", line 37, in main
    return_code = args['func'](args)
  File "/home/rk/src/freqtrade/freqtrade/commands/optimize_commands.py", line 53, in start_backtesting
    backtesting.start()
  File "/home/rk/src/freqtrade/freqtrade/optimize/backtesting.py", line 502, in start
    min_date, max_date = self.backtest_one_strategy(strat, data, timerange)
  File "/home/rk/src/freqtrade/freqtrade/optimize/backtesting.py", line 474, in backtest_one_strategy
    results = self.backtest(
  File "/home/rk/src/freqtrade/freqtrade/optimize/backtesting.py", line 365, in backtest
    data: Dict = self._get_ohlcv_as_lists(processed)
  File "/home/rk/src/freqtrade/freqtrade/optimize/backtesting.py", line 199, in _get_ohlcv_as_lists
    pair_data.loc[:, 'buy'] = 0  # cleanup from previous run
  File "/home/rk/src/freqtrade/venv/lib/python3.9/site-packages/pandas/core/indexing.py", line 692, in __setitem__
    iloc._setitem_with_indexer(indexer, value, self.name)
  File "/home/rk/src/freqtrade/venv/lib/python3.9/site-packages/pandas/core/indexing.py", line 1587, in _setitem_with_indexer
    raise ValueError(
ValueError: cannot set a frame with no defined index and a scalar
```
2021-05-15 13:37:03 +03:00
Matthias
e1447f955c /locks should always respond, even if there's no locks
closes #4942
2021-05-15 10:50:00 +02:00
Brook Miles
2eac23a15f if stoploss price is above the candle high, set it to candle open instead. this can occur if stoploss had previously been reached but the sell was prevented by confirm_trade_exit 2021-05-15 15:38:51 +09:00
Matthias
0ace35bf3d Fix unreferenced error 2021-05-15 08:14:50 +02:00
Matthias
a6c644161d Merge pull request #4930 from freqtrade/hyperopt_memory
Hyperopt memory problems
2021-05-15 07:12:57 +02:00
Matthias
5e73195b30 Use linux lineseperator at all times 2021-05-15 07:01:32 +02:00
Matthias
3aaf06a3e2 Merge pull request #4932 from freqtrade/fix/4920
Change rate back to "open" for custom_sell
2021-05-15 06:40:21 +02:00
Matthias
1f049214aa Merge pull request #4933 from rokups/patch-1
Couple tweaks for docs.
2021-05-14 20:04:16 +02:00
Rokas Kupstys
330fb538a9 Couple tweaks for docs. 2021-05-14 10:43:48 +03:00
Matthias
09b6923e50 Use "choose" link for new issues 2021-05-14 07:22:51 +02:00
Matthias
4bc018a456 Change rate back to "open" for custom_sell
closes #4920
2021-05-14 07:18:10 +02:00
Matthias
09756e3007 Subplots should always be included in responses 2021-05-14 06:36:50 +02:00
Matthias
ff7bbec1bc Merge pull request #4902 from docbobo/arm64-docs
Documentation for running arm64 builds
2021-05-14 05:48:08 +02:00
Matthias
ecee42f561 Read pickle file in mmap mode 2021-05-13 20:13:04 +02:00
Matthias
1055862bc0 Extract data-load + dump from hyperopt
(Reduces memory-usage as the dataframes go out of scope)
2021-05-12 21:15:01 +02:00
Matthias
5e66d37d57 Slightly modify docker instructions for arm64 2021-05-12 20:07:45 +02:00
Matthias
84222c89ee Merge pull request #4922 from rokups/rk/fix-docs
Docs update regarding dataframe access
2021-05-12 19:58:11 +02:00
Matthias
24a1d5a96f Change default hyperopt-name to be shorter 2021-05-12 19:06:13 +02:00
Matthias
5f5597b93f Better test hyperopt writing and reading 2021-05-12 19:06:09 +02:00
Rokas Kupstys
9bb6ba086b Update docs/strategy-advanced.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-05-12 17:15:38 +03:00
Rokas Kupstys
ad4c51b3c5 * Added "Dataframe access" section showcasing how to obtain dataframe and use it to get last-available and trade-open candles.
* Fix custom_sell() example to use rsi from last-available instead of trade-open candle, add a pointer to "Dataframe access" section for more info.
* Simplify "Custom stoploss using an indicator from dataframe example" greatly, add a pointer to "Dataframe access" section for more info.
2021-05-12 09:30:35 +03:00
Matthias
3cbe40875d read hyperopt results from pickle or json 2021-05-12 06:06:30 +02:00
Matthias
06bf1aa274 Store epochs as json per line 2021-05-12 05:58:25 +02:00
Matthias
7398ea88e0 Change optimize_reports to convert dates to string earlier 2021-05-11 20:37:49 +02:00
Matthias
6d232db1d8 Merge pull request #4918 from kamontat/patch-1
remove duplicate python3-pip
2021-05-11 20:16:26 +02:00
Kamontat Chantrachirathumrong
e53bbec285 remove duplicate python3-pip 2021-05-12 00:13:13 +07:00
Matthias
bcab44560a Fix doc typo 2021-05-11 06:25:23 +02:00
Matthias
c4a2de0fd5 Merge pull request #4915 from froggleston/develop
Small update custom_sell() doc
2021-05-11 06:16:49 +02:00
Robert Davey
ac95d577a5 Merge pull request #1 from froggleston/frog-custom-sell-doc
Update strategy-advanced.md
2021-05-10 19:48:09 +01:00
Robert Davey
425d97719a Update strategy-advanced.md
Update custom_sell() example to comment that the current trade row is at trade open as written. Change "abstain" to something clearer for non-fluent English speakers.
2021-05-10 19:42:37 +01:00
Matthias
b81f24d9c6 Merge pull request #4851 from rokups/rk/backtest-dataprovider
Data provider support in backtesting
2021-05-10 19:11:05 +02:00
Matthias
91fd367287 Merge pull request #4906 from freqtrade/dependabot/pip/develop/ccxt-1.49.73
Bump ccxt from 1.49.30 to 1.49.73
2021-05-10 15:24:02 +02:00
Matthias
3d6b3f1d6a Add Issue config.yml 2021-05-10 15:08:28 +02:00
dependabot[bot]
8e6a95e11b Bump ccxt from 1.49.30 to 1.49.73
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.49.30 to 1.49.73.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.49.30...1.49.73)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-10 10:50:05 +00:00
Matthias
7e6d469511 Merge pull request #4913 from freqtrade/dependabot/pip/develop/fastapi-0.64.0
Bump fastapi from 0.63.0 to 0.64.0
2021-05-10 08:53:34 +02:00
Matthias
9cef2983e5 Merge pull request #4907 from freqtrade/dependabot/pip/develop/mkdocs-material-7.1.4
Bump mkdocs-material from 7.1.3 to 7.1.4
2021-05-10 08:52:02 +02:00
Matthias
3eb4cda975 Merge pull request #4911 from freqtrade/dependabot/pip/develop/pymdown-extensions-8.2
Bump pymdown-extensions from 8.1.1 to 8.2
2021-05-10 08:51:47 +02:00
Matthias
0fefa696cc Merge pull request #4908 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.14
Bump sqlalchemy from 1.4.12 to 1.4.14
2021-05-10 08:50:42 +02:00
Matthias
837c05aa62 Merge pull request #4910 from freqtrade/dependabot/pip/develop/flake8-3.9.2
Bump flake8 from 3.9.1 to 3.9.2
2021-05-10 08:49:53 +02:00
Matthias
699b21064b Merge pull request #4912 from freqtrade/dependabot/pip/develop/pytest-mock-3.6.1
Bump pytest-mock from 3.6.0 to 3.6.1
2021-05-10 08:49:25 +02:00
Matthias
158a4ea660 Merge pull request #4909 from freqtrade/dependabot/pip/develop/pytest-6.2.4
Bump pytest from 6.2.3 to 6.2.4
2021-05-10 08:49:13 +02:00
dependabot[bot]
43c7382d24 Bump fastapi from 0.63.0 to 0.64.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.63.0 to 0.64.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.63.0...0.64.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-10 05:27:36 +00:00
dependabot[bot]
93268ba16d Bump pytest-mock from 3.6.0 to 3.6.1
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.6.0 to 3.6.1.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.6.0...v3.6.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-10 05:27:22 +00:00
dependabot[bot]
5ecd86ed56 Bump pymdown-extensions from 8.1.1 to 8.2
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 8.1.1 to 8.2.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/8.1.1...8.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-10 05:27:11 +00:00
dependabot[bot]
6eb47b0aeb Bump flake8 from 3.9.1 to 3.9.2
Bumps [flake8](https://gitlab.com/pycqa/flake8) from 3.9.1 to 3.9.2.
- [Release notes](https://gitlab.com/pycqa/flake8/tags)
- [Commits](https://gitlab.com/pycqa/flake8/compare/3.9.1...3.9.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-10 05:27:03 +00:00
dependabot[bot]
0a82e2b061 Bump pytest from 6.2.3 to 6.2.4
Bumps [pytest](https://github.com/pytest-dev/pytest) from 6.2.3 to 6.2.4.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/6.2.3...6.2.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-10 05:26:52 +00:00
dependabot[bot]
a7cd8fc578 Bump sqlalchemy from 1.4.12 to 1.4.14
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.12 to 1.4.14.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-10 05:26:36 +00:00
dependabot[bot]
a7bd051f6b Bump mkdocs-material from 7.1.3 to 7.1.4
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.3 to 7.1.4.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.3...7.1.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-10 05:26:26 +00:00
Matthias
d495ea3693 Update docs about availability of get_analyzed 2021-05-09 19:53:41 +02:00
Matthias
1c408c0404 Add small tests for backtest mode 2021-05-09 19:47:37 +02:00
Boris Prüßmann
f2add44253 Update docs/docker_quickstart.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-05-09 17:27:30 +02:00
Boris Pruessmann
0a0e7ce5f5 Documentation for running arm64 builds 2021-05-09 14:37:56 +02:00
Matthias
00e93dad02 Fix mistake in the docs 2021-05-09 10:04:56 +02:00
Matthias
92186d89a2 Add some changes to strategytemplate 2021-05-09 09:56:36 +02:00
Matthias
2157923aee have edge send multiple messages if necessary
closes #4519
2021-05-08 19:45:34 +02:00
Rokas Kupstys
17b9e898d2 Update docs displaying how to get last available and trade-open candles. 2021-05-08 18:40:49 +03:00
Rokas Kupstys
8d8c782bd0 Slice dataframe in backtesting, preventing access to rows past current time. 2021-05-08 18:40:49 +03:00
Matthias
0ca0ed4117 Merge pull request #4843 from docbobo/arm64-support
Docker support for arm64
2021-05-08 17:35:19 +02:00
Matthias
70189b1992 Move dockerfile and document M1 image existance 2021-05-08 17:24:41 +02:00
Rokas Kupstys
f1eb653545 Fix strategy protections not being loaded in backtesting. 2021-05-08 10:29:47 +03:00
Rokas Kupstys
1b01ad6f85 Make exchange parameter optional and do not use it as parameter in backtesting. 2021-05-08 10:29:47 +03:00
Matthias
4b6cd69c81 Add test for no-exchange dataprovider 2021-05-08 10:29:47 +03:00
Rokas Kupstys
d344194b36 Fix dataprovider in hyperopt. 2021-05-08 10:29:47 +03:00
Rokas Kupstys
9b4f6b41a2 Use correct datetime. 2021-05-08 10:29:47 +03:00
Rokas Kupstys
6fb4d83ab3 Fix dataprovider in hyperopt. 2021-05-08 10:29:47 +03:00
Rokas Kupstys
6af4de8fe8 Remove dataframe parameter from docs. 2021-05-08 10:29:47 +03:00
Rokas Kupstys
cdfa6adbe5 Store pair datafrmes in dataprovider for backtesting. 2021-05-08 10:29:47 +03:00
Rokas Kupstys
dc6e702fec Pass current_time to confirm_trade_entry/confirm_trade_exit. 2021-05-08 10:29:47 +03:00
Rokas Kupstys
d34da3f981 Revert "Add dataframe parameter to custom_stoploss() and custom_sell() methods."
This reverts commit 595b8735f8.

# Conflicts:
#	freqtrade/optimize/backtesting.py
#	freqtrade/strategy/interface.py
2021-05-08 10:29:47 +03:00
Matthias
513be11fd9 Fix hyperopt output
closes #4892
2021-05-07 20:23:11 +02:00
Matthias
4a7d7a5779 Merge pull request #4887 from freqtrade/timerange_noarrow
Don't use Arrow to get min/max backtest dates
2021-05-07 06:51:16 +02:00
Matthias
554f5f14b6 Raise exception if no data is left 2021-05-07 06:41:15 +02:00
Matthias
4f529fe424 Don't use Arrow to get min/max backtest dates 2021-05-06 19:43:14 +02:00
Matthias
32577cc0cd Merge pull request #4836 from bzed/telegram-locks
Telegram rpc: split too long /locks messages
2021-05-05 20:15:13 +02:00
Matthias
d8de871934 Merge pull request #4869 from freqtrade/edge_informative
Have Edge support informative pairs
2021-05-05 20:10:40 +02:00
Matthias
a710b7dc01 Update tests to match new behaviour 2021-05-05 19:58:45 +02:00
Matthias
431cb5313f Support informative pairs in edge positioning 2021-05-05 19:58:45 +02:00
Matthias
6c50157c95 Merge pull request #4877 from freqtrade/dependabot/docker/python-3.9.5-slim-buster
Bump python from 3.9.4-slim-buster to 3.9.5-slim-buster
2021-05-05 08:31:34 +02:00
Matthias
947ad856c0 Update Dockerfile.armhf 2021-05-05 08:12:28 +02:00
dependabot[bot]
f55ce04fa6 Bump python from 3.9.4-slim-buster to 3.9.5-slim-buster
Bumps python from 3.9.4-slim-buster to 3.9.5-slim-buster.

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-05 05:14:42 +00:00
Matthias
da47f4e1a4 Fix Kraken balance update error
closes #4873
2021-05-05 06:47:26 +02:00
Matthias
4d9dc2a2ff Merge pull request #4848 from freqtrade/hyperopt_btresults
Hyperopt store backtest-outcome
2021-05-04 06:44:01 +02:00
Matthias
da5e832a5a Merge pull request #4862 from freqtrade/dependabot/pip/develop/python-telegram-bot-13.5
Bump python-telegram-bot from 13.4.1 to 13.5
2021-05-03 13:12:28 +02:00
Matthias
239583d7bc Merge pull request #4859 from freqtrade/dependabot/pip/develop/cachetools-4.2.2
Bump cachetools from 4.2.1 to 4.2.2
2021-05-03 13:12:18 +02:00
Matthias
b852a8b1c6 Merge pull request #4861 from freqtrade/dependabot/pip/develop/ccxt-1.49.30
Bump ccxt from 1.48.76 to 1.49.30
2021-05-03 13:12:04 +02:00
dependabot[bot]
860379bc58 Bump ccxt from 1.48.76 to 1.49.30
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.48.76 to 1.49.30.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.48.76...1.49.30)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-03 10:23:52 +00:00
dependabot[bot]
2d89824267 Bump cachetools from 4.2.1 to 4.2.2
Bumps [cachetools](https://github.com/tkem/cachetools) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/tkem/cachetools/releases)
- [Changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/tkem/cachetools/compare/v4.2.1...v4.2.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-03 10:21:49 +00:00
dependabot[bot]
82a08bd7de Bump python-telegram-bot from 13.4.1 to 13.5
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 13.4.1 to 13.5.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v13.4.1...v13.5)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-03 10:16:58 +00:00
Matthias
42c286a2da Merge pull request #4863 from freqtrade/dependabot/pip/develop/arrow-1.1.0
Bump arrow from 1.0.3 to 1.1.0
2021-05-03 10:13:22 +02:00
Matthias
3d11df68e3 Be explicit with space assignment in documentation 2021-05-03 08:34:02 +02:00
Matthias
f138cca797 Be explicit with space assignment in documentation 2021-05-03 08:33:22 +02:00
Matthias
1ffc53b3b5 Fix docs typo for CategoryParameter
closes #4852
2021-05-03 08:26:23 +02:00
Matthias
4465915a94 Merge pull request #4856 from freqtrade/dependabot/pip/develop/scikit-learn-0.24.2
Bump scikit-learn from 0.24.1 to 0.24.2
2021-05-03 08:23:06 +02:00
Matthias
f55ce8543a Merge pull request #4860 from freqtrade/dependabot/pip/develop/technical-1.3.0
Bump technical from 1.2.2 to 1.3.0
2021-05-03 08:22:13 +02:00
Matthias
d7e4d5ff3f Merge pull request #4858 from freqtrade/dependabot/pip/develop/pyjwt-2.1.0
Bump pyjwt from 2.0.1 to 2.1.0
2021-05-03 08:20:51 +02:00
Matthias
39cffeb2df Merge pull request #4857 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.12
Bump sqlalchemy from 1.4.11 to 1.4.12
2021-05-03 08:20:13 +02:00
dependabot[bot]
a63d9e9515 Bump arrow from 1.0.3 to 1.1.0
Bumps [arrow](https://github.com/arrow-py/arrow) from 1.0.3 to 1.1.0.
- [Release notes](https://github.com/arrow-py/arrow/releases)
- [Changelog](https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/arrow-py/arrow/compare/1.0.3...1.1.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-03 05:27:17 +00:00
dependabot[bot]
cea207026a Bump technical from 1.2.2 to 1.3.0
Bumps [technical](https://github.com/freqtrade/technical) from 1.2.2 to 1.3.0.
- [Release notes](https://github.com/freqtrade/technical/releases)
- [Commits](https://github.com/freqtrade/technical/compare/1.2.2...1.3.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-03 05:26:39 +00:00
dependabot[bot]
37227170b3 Bump pyjwt from 2.0.1 to 2.1.0
Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.0.1 to 2.1.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.0.1...2.1.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-03 05:26:30 +00:00
dependabot[bot]
8ed15fb7cc Bump sqlalchemy from 1.4.11 to 1.4.12
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.11 to 1.4.12.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-03 05:26:18 +00:00
dependabot[bot]
8364343cd6 Bump scikit-learn from 0.24.1 to 0.24.2
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 0.24.1 to 0.24.2.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/0.24.1...0.24.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-03 05:26:08 +00:00
Matthias
da574e4e69 Small style fixes 2021-05-03 06:30:41 +02:00
Matthias
6d7096dc66 Use both old and new fixtures for test 2021-05-02 20:42:01 +02:00
Matthias
fc110ea418 Support csv export for new and old versions 2021-05-02 20:41:45 +02:00
Matthias
303895b33e Add support for filters to new hyperopt-results 2021-05-02 20:07:22 +02:00
Matthias
ef9dd0676c Rename hyperoptresult fixture to avoid naming collision 2021-05-02 20:06:47 +02:00
Matthias
99e1ef9b4a Fix docs typo for CategoryParameter
closes #4852
2021-05-02 19:21:26 +02:00
Matthias
6f8225c49e Merge pull request #4850 from youpas/patch-2
Fixed anchor link for PriceFilter
2021-05-02 17:08:59 +02:00
Matthias
60e908eee5 Merge pull request #4849 from youpas/patch-1
Fixed syntax error in the example
2021-05-02 15:10:50 +02:00
youpas
b71d850596 Fixed anchor link for PriceFilter 2021-05-02 11:47:02 +02:00
youpas
4fc37f15d1 Fixed syntax error in the example
Removed extra comma in the "Full example of Pairlist Handlers" section.
2021-05-02 11:41:26 +02:00
Matthias
287b43e999 Output strategy results including non-optimized parameters 2021-05-02 11:30:53 +02:00
Matthias
d069ad43d8 Small reformatting in hyperopt 2021-05-02 11:01:26 +02:00
Matthias
8ee0b0d8e8 Store not optimized parameters (if applicable) 2021-05-02 10:46:04 +02:00
Matthias
9049d6b779 Reformat hyper to cache parameters 2021-05-02 10:45:21 +02:00
Matthias
6b6270db13 Add hint about "sell_profit_only" to docs 2021-05-02 10:37:54 +02:00
Matthias
46f0f66039 Keep dimensions stored in hyperopt class
There is no point in regenerating them and it will cause some
overhead as all space classes will be recreated for every epoch.
2021-05-02 09:48:37 +02:00
Matthias
ced5cc7ce2 Don't recalculate min/max date - they won't change between epochs 2021-05-02 09:46:27 +02:00
Matthias
ecdfb6e5ed Fix output of % for new format 2021-05-02 09:46:27 +02:00
Matthias
881cba336a Show backtesting result in hyperopt-show 2021-05-02 09:46:27 +02:00
Matthias
420e75af65 Extract show_backtest_result for one strategy 2021-05-02 09:46:27 +02:00
Matthias
97478abb9d Move format explanation string to HyperoptTools 2021-05-02 09:46:27 +02:00
Matthias
4c00d4496d Update tests to reflect new backtest returns 2021-05-02 09:46:27 +02:00
Matthias
f2e182002d Simplify calling backtesting by returning the proper result 2021-05-02 09:46:27 +02:00
Matthias
e2e1d34828 Extract stake_currency param from hyperopt-explanationstring 2021-05-02 09:46:27 +02:00
Matthias
852f125347 Fix tests 2021-05-02 09:46:27 +02:00
Matthias
6aaaad29d7 Use backtesting output for hyperopt results 2021-05-02 09:46:27 +02:00
Matthias
545cba7fd8 Refactor optimize_report
we should not calculate non-daily statistics in the daily stats method
2021-05-02 09:46:27 +02:00
Matthias
9994fce577 Extract generation of report for one strategy to it's own method 2021-05-02 09:46:27 +02:00
Matthias
b125c975c7 Rename strategy_comparison method 2021-05-02 09:46:27 +02:00
Matthias
c45204a2c4 Fix failing mocks 2021-05-02 08:59:21 +02:00
Matthias
ac2e1eb3d7 Don't import joblib for regular strategies 2021-05-02 08:44:16 +02:00
Matthias
0e359dcb7a Merge pull request #4788 from saeedrss/develop
fetch live data from hitbtc exchange #4778
2021-05-01 19:13:00 +02:00
Matthias
bdd0184f0b Small stylistic fixes 2021-05-01 17:44:43 +02:00
Matthias
1cb430f59b Remove encoding specifics, gitattributes to echeckout as utf8 2021-05-01 17:41:40 +02:00
Matthias
3c9042c825 Merge pull request #4844 from freqtrade/improve_hyper
IntParameter should not calculate indicators if it's not being optimized
2021-05-01 17:36:29 +02:00
Matthias
e01bc7717b Merge pull request #4832 from JoeSchr/patch-3
Add to custom_sell() documentation
2021-05-01 17:34:10 +02:00
Matthias
0b280a59bc Support per exchange params for OHLCV endpoint 2021-05-01 17:29:53 +02:00
Matthias
e0ca3c014c Don't completely remove encode/decode 2021-05-01 17:12:48 +02:00
Matthias
30da307d13 Remove encode/decode for hyperopt 2021-05-01 17:01:52 +02:00
Matthias
ca0749dfdd Update strategy-advanced.md 2021-05-01 16:58:14 +02:00
Matthias
555262b6e1 Only calculate additional indicators if the space is selected 2021-05-01 16:40:29 +02:00
Matthias
e381df9098 extract has_space to Hyperopt-Tools 2021-05-01 16:36:35 +02:00
Matthias
e050ea8dfa Don't load parameters for other space 2021-05-01 16:21:59 +02:00
Boris Pruessmann
42a52ff669 Docker support for arm64 2021-05-01 14:13:21 +02:00
Matthias
401f31e86b Merge pull request #4841 from JoeSchr/fix/istrategy-return-value
fix IStrategy: abstract methods still need to pass through return value
2021-04-30 20:13:11 +02:00
Matthias
856b65206b Reduce log-frequency of AgeFilter
closes #4840
2021-04-30 19:42:41 +02:00
Joe Schr
f3388ed9aa fix IStrategy: abstract methods still need to pass through return value
otherwise doing something like:
```py
dataframe = super().populate_indicators(dataframe, ...)
```

won't work, because `dataframe` becomes `None`.

This is needed if one of those methods uses dataframe.copy() instead of
just working on reference. e.g. using `merge_informative` in
`populate_indicator` in a nested class hierarchy
2021-04-30 14:39:01 +02:00
Matthias
6763bd447e Fix link to poweredby image 2021-04-30 07:50:33 +02:00
Matthias
6bd9e1ec84 Merge pull request #4825 from freqtrade/new_release
New release 2021.4
2021-04-30 07:46:02 +02:00
Antreas Gribas
cf03daa0fd Fix bug in running hyperopt in windows 10
with preferred encoding in locale differrent from
utf-8
2021-04-30 00:28:42 +03:00
Bernd Zeimetz
3be7bc509c Telegram: send locks as chunks of 25.
Producing easily readable messages, hopefully always below the message lenght limit
2021-04-29 22:21:04 +02:00
Bernd Zeimetz
4d1613a432 Add chunks function.
Implementing a generator to split Lists into chunks.
2021-04-29 22:21:04 +02:00
JoeSchr
f2bd70dfc2 Add sentence about how it differs from custom_stoploss() 2021-04-29 13:07:22 +02:00
Matthias
27a9b2cc9f Merge pull request #4831 from JoeSchr/patch-2
Update strategy-advanced.md
2021-04-29 12:51:52 +02:00
JoeSchr
cf839e36f3 Add to custom_sell() documentation
- Flesh out infos about return type 
- give quick example at beginning to get reader in right mindset what this does and why it's useful
2021-04-29 12:49:51 +02:00
Matthias
bb115154eb Merge pull request #4829 from nmcc1212/patch-1
Docker Quick start grammatical error
2021-04-29 12:30:36 +02:00
JoeSchr
83708ae045 Update strategy-advanced.md
Remove untrue comment probably left-over from more intricate example
2021-04-29 12:16:02 +02:00
Nial McCallister
7cf8c5d659 Docker Quick start grammatical error
please install docker-compose should be installed
 does not make grammatical sense
2021-04-29 10:46:00 +01:00
Matthias
5bc908870f Fix documentation comment missalignment 2021-04-29 09:07:47 +02:00
Matthias
a3d2e68312 Merge pull request #4750 from rokups/rk/custom_sell
Add IStrategy.custom_sell method which allows per-trade sell signal evaluation
2021-04-29 06:50:56 +02:00
Matthias
aab020c9a2 Merge pull request #4818 from freqtrade/cleanup_models
Move static Trade functions to right class
2021-04-28 21:18:55 +02:00
Matthias
2b78ee254c Version bump to 2021.4 2021-04-28 21:16:13 +02:00
Matthias
4767d41d6f Merge branch 'stable' into new_release 2021-04-28 21:06:15 +02:00
Matthias
3285f6caa3 Improve wording in Note box 2021-04-28 20:42:15 +02:00
Matthias
7c8a367442 Update docs to not promote stoploss / take-profit 2021-04-28 20:36:06 +02:00
Matthias
63c28b6519 Remove obsolete get_balance method 2021-04-28 16:00:12 +02:00
Matthias
6eb947ae09 Move static Trade functions to right class 2021-04-28 06:37:40 +02:00
Matthias
1465af50d7 FTX usable configuration 2021-04-27 19:19:08 +02:00
Matthias
2aa4bff118 Merge pull request #4776 from onerobotband/patch-1
Create config_ftx.json.example
2021-04-27 19:18:53 +02:00
Matthias
cc916ab2e9 Add test for custom_sell 2021-04-26 20:26:14 +02:00
Matthias
55faa6a84a safe_wrapper should use kwargs to call methods 2021-04-26 20:18:03 +02:00
Matthias
2061162d79 Convert trade-opendate to python datetime 2021-04-26 20:01:13 +02:00
Matthias
dbf33271b5 Small doc changes 2021-04-26 19:52:26 +02:00
Matthias
3f84c37a79 Fix wallet calls
closes #4810  #4812
2021-04-26 14:12:52 +02:00
Matthias
929c49a62e Merge pull request #4808 from freqtrade/dependabot/pip/develop/pytest-asyncio-0.15.1
Bump pytest-asyncio from 0.15.0 to 0.15.1
2021-04-26 13:46:26 +02:00
dependabot[bot]
298f54adff Bump pytest-asyncio from 0.15.0 to 0.15.1
Bumps [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) from 0.15.0 to 0.15.1.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.15.0...v0.15.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-26 10:47:09 +00:00
Matthias
528b1357af Merge pull request #4807 from freqtrade/dependabot/pip/develop/pycoingecko-2.0.0
Bump pycoingecko from 1.4.1 to 2.0.0
2021-04-26 12:29:48 +02:00
Matthias
cd4be33607 Merge pull request #4801 from freqtrade/pairlist_caching
Cache pairlist in pairlist, not globally
2021-04-26 12:29:14 +02:00
Matthias
6f0a585bd0 Fix random test failure due to ttl 0 issue 2021-04-26 11:53:44 +02:00
Rokas Kupstys
31a2285eac Fix mypy complaints. 2021-04-26 10:42:24 +03:00
Matthias
8327e35a8d Merge pull request #4809 from freqtrade/dependabot/pip/develop/scipy-1.6.3
Bump scipy from 1.6.2 to 1.6.3
2021-04-26 09:30:31 +02:00
Matthias
9792d71202 Merge pull request #4804 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.11
Bump sqlalchemy from 1.4.9 to 1.4.11
2021-04-26 09:16:27 +02:00
Matthias
ee2d4ffaf8 Merge pull request #4806 from freqtrade/dependabot/pip/develop/ccxt-1.48.76
Bump ccxt from 1.48.22 to 1.48.76
2021-04-26 09:13:52 +02:00
Matthias
40f31319a2 Merge pull request #4805 from freqtrade/dependabot/pip/develop/pytest-mock-3.6.0
Bump pytest-mock from 3.5.1 to 3.6.0
2021-04-26 08:44:54 +02:00
Matthias
bfb8aa13b7 Merge pull request #4803 from freqtrade/dependabot/pip/develop/mkdocs-material-7.1.3
Bump mkdocs-material from 7.1.2 to 7.1.3
2021-04-26 07:59:28 +02:00
dependabot[bot]
02160d52e3 Bump scipy from 1.6.2 to 1.6.3
Bumps [scipy](https://github.com/scipy/scipy) from 1.6.2 to 1.6.3.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.6.2...v1.6.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-26 05:26:59 +00:00
dependabot[bot]
bdcf21e187 Bump pycoingecko from 1.4.1 to 2.0.0
Bumps [pycoingecko](https://github.com/man-c/pycoingecko) from 1.4.1 to 2.0.0.
- [Release notes](https://github.com/man-c/pycoingecko/releases)
- [Changelog](https://github.com/man-c/pycoingecko/blob/master/CHANGELOG.md)
- [Commits](https://github.com/man-c/pycoingecko/compare/1.4.1...2.0.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-26 05:26:43 +00:00
dependabot[bot]
e5bdafd4ab Bump ccxt from 1.48.22 to 1.48.76
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.48.22 to 1.48.76.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.48.22...1.48.76)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-26 05:26:37 +00:00
dependabot[bot]
09a3448fd4 Bump pytest-mock from 3.5.1 to 3.6.0
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.5.1 to 3.6.0.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.5.1...v3.6.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-26 05:26:09 +00:00
dependabot[bot]
14ef080d28 Bump sqlalchemy from 1.4.9 to 1.4.11
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.9 to 1.4.11.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-26 05:26:02 +00:00
dependabot[bot]
4a5eba3db4 Bump mkdocs-material from 7.1.2 to 7.1.3
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.2 to 7.1.3.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.2...7.1.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-26 05:25:53 +00:00
Matthias
bb7ef2f804 Cache pairlist in pairlist, not globally
closes #4797 closes #4689
2021-04-25 20:10:47 +02:00
Rokas Kupstys
9c21c75cf5 Fix inaccuracy in docs. 2021-04-25 13:18:35 +03:00
Matthias
7448a05f15 Use correct variable in pairlist_manager 2021-04-25 11:01:04 +02:00
Matthias
fd3afdc230 plot-profit should use absolute values 2021-04-25 10:10:09 +02:00
Rokas Kupstys
98f6fce2ec Use correct sell reason in case of custom sell reason. 2021-04-25 09:48:40 +03:00
Rokas Kupstys
e58fe7a8cb Update custom_sell documentation. 2021-04-25 09:48:40 +03:00
Rokas Kupstys
004550529e Document dataframe parameter in custom_stoploss(). 2021-04-25 09:48:40 +03:00
Rokas Kupstys
595b8735f8 Add dataframe parameter to custom_stoploss() and custom_sell() methods. 2021-04-25 09:48:40 +03:00
Rokas Kupstys
961b38636f Remove explicit sell_flag parameter from SellCheckTuple. 2021-04-25 09:48:40 +03:00
Rokas Kupstys
bfad4e82ad Make execute_sell() use SellCheckTuple for sell reason. 2021-04-25 09:48:40 +03:00
Rokas Kupstys
a90e795695 Warn and trim custom sell reason if it is too long. 2021-04-25 09:48:40 +03:00
Rokas Kupstys
1aad128d85 Support returning a string from custom_sell() and have it recorded as custom sell reason. 2021-04-25 09:48:40 +03:00
Rokas Kupstys
a77337e424 Document IStrategy.custom_sell. 2021-04-25 09:48:40 +03:00
Rokas Kupstys
1292e08fe4 Use strategy_safe_wrapper() when calling custom_sell(). 2021-04-25 09:48:40 +03:00
Rokas Kupstys
0fd68aee51 Add IStrategy.custom_sell method which allows per-trade sell signal evaluation. 2021-04-25 09:48:40 +03:00
Matthias
1c315a5842 Merge pull request #4798 from wr0ngc0degen/develop
fix docstring typo in sample_strategy.py
2021-04-25 08:45:30 +02:00
Matthias
4636b3970b Fix failed test due to exchange downtime 2021-04-25 08:25:12 +02:00
wr0ngc0degen
869a45a031 Merge pull request #2 from freqtrade/develop
update develop from base repo
2021-04-25 05:50:03 +02:00
wr0ngc0degen
2eda25426f fix typo in sample_strategy.py
fix copy-paste issue in populate_sell_trend docstring
2021-04-25 05:47:59 +02:00
Matthias
e855530483 hdf5 handler should include the end-date 2021-04-24 20:26:37 +02:00
Matthias
cb86c90d3e Remove obsolete TODO's 2021-04-24 19:16:54 +02:00
Matthias
88f26971fa Use defaultdict for backtesting 2021-04-24 19:15:09 +02:00
Matthias
8e85b63b3d Merge pull request #4792 from JoeSchr/add-distribution-graph-to-example-notebook
add distribution graph to example notebook
2021-04-24 16:14:48 +02:00
Matthias
b223775385 Update "output" of jupyter notebook as well 2021-04-24 15:56:53 +02:00
Matthias
f12e002686 Merge pull request #4775 from freqtrade/fix_wallet_unlimited
Fix wallet unlimited
2021-04-24 15:54:06 +02:00
Matthias
9177d9d129 Merge pull request #4790 from freqtrade/hyper_range
add IntParameter.range
2021-04-24 13:41:29 +02:00
Matthias
185d754b8b Improve documentation to suggest config-private.json 2021-04-24 13:39:20 +02:00
Joe Schr
31b0e3b5e8 add distribution graph to example notebook 2021-04-24 13:29:59 +02:00
Matthias
7453dac668 Improve doc wording 2021-04-24 13:25:46 +02:00
Matthias
d647b841f0 Add docs how to optimize indicator parameters 2021-04-24 09:03:59 +02:00
Matthias
5c7f278c8a add tests for IntParameter.range 2021-04-24 07:18:35 +02:00
Matthias
90476c4287 Add "range" property to IntParameter 2021-04-24 07:00:33 +02:00
wr0ngc0degen
e3c86643e6 Merge pull request #1 from freqtrade/develop
updating from the base repo
2021-04-24 05:47:08 +02:00
Matthias
9dc7f776d9 Improve log output when loading parameters 2021-04-23 20:35:30 +02:00
saeedrss
37d8e3c758 Merge branch 'develop' of https://github.com/freqtrade/freqtrade into develop 2021-04-23 22:28:33 +04:30
Matthias
191a31db30 NameErrors should not stop loading a different strategy 2021-04-23 19:36:26 +02:00
Matthias
df16fbd742 Add "dataload complete" message to backtest + hyperopt 2021-04-23 19:22:41 +02:00
saeedrss
b69a9134f5 fixing support for HitBTC #4778
hitbtc by default send candle from beginning (not most recently)
this change fixed
2021-04-23 21:27:13 +04:30
Matthias
4005708f85 Handle edge with volumepairlist and empty pair_whitelist
closes #4779
2021-04-23 06:50:39 +02:00
Matthias
406c1267a2 Remove superfluss space 2021-04-22 20:01:08 +02:00
Matthias
f5f0bf53af Merge pull request #4780 from rokups/rk/new-pairs-days
Add --new-pairs-days parameter for download-data command.
2021-04-22 19:55:25 +02:00
Matthias
33fa196eae Merge pull request #4767 from bzed/patch-1
setup.sh: Install libpython3-dev on Debian/Ubuntu
2021-04-22 19:48:52 +02:00
Matthias
ccaf5764da Small adjustments 2021-04-22 19:41:01 +02:00
Matthias
0d2457cd47 Add lock_reason to per-pair lock 2021-04-22 19:28:50 +02:00
Matthias
f2d5f476d4 Merge pull request #4777 from c0d5x/informative-global-pairlock-msg
Add the reason why there is a global pairlock when lock is available
2021-04-22 19:24:13 +02:00
Matthias
4693cba10d Merge pull request #4769 from freqtrade/trades_pagination
Trades pagination
2021-04-22 19:13:19 +02:00
Matthias
7e2e196643 improve sell_message by using sell rate 2021-04-22 17:13:22 +02:00
Rokas Kupstys
3144185409 Allow specifying "new_pairs_days" in config. 2021-04-22 11:18:28 +03:00
Matthias
f744df2374 Fix bad fill message 2021-04-22 10:01:41 +02:00
Rokas Kupstys
09efa7b06b Add --new-pairs-days parameter for download-data command.
This parameter allows us to customize a number of days we would like to download for new pairs only. This allows us to achieve efficient data update, downloading all data for new pairs and only missing data for existing pairs. To do that use `freqtrade download-data --new-pairs-days=3650` (not specifying `--days` or `--timerange` causes freqtrade to download only missing data for existing pairs).
2021-04-22 10:07:13 +03:00
Matthias
515c73f399 Don't hard-limit trades endpoint for now 2021-04-22 06:51:26 +02:00
Jose Hidalgo
896ec58cad Add the reason why there is a global pairlock when lock is available 2021-04-21 15:02:33 -06:00
Matthias
92a2e254af Fix backtesting test 2021-04-21 20:17:30 +02:00
Matthias
d8c8a8d8c2 Remvoe pointless arguments from get_trade_stake_amount 2021-04-21 20:01:10 +02:00
onerobotband
f7a4331c86 Create config_ftx.json.example
to stop the dl trades error from popping up all the time
2021-04-21 18:38:57 +01:00
Matthias
ba2d4d4656 Reduce number of calls to Trade.total_open_traes_stakes() 2021-04-21 19:27:42 +02:00
Matthias
0233aa248e Limit stake_amount to max available amount 2021-04-21 17:22:16 +02:00
Matthias
9f6f3e0862 Address ZeroDivisionExceptiond
closes #4764 closes #4617
2021-04-20 21:41:49 +02:00
Matthias
05ce3acc46 Improve tests for api_trades 2021-04-20 21:29:16 +02:00
Matthias
759bbd8e72 Update documentation about pagination 2021-04-20 21:23:37 +02:00
Matthias
bd92ce938c trade_history should paginate through results
this avoids huge results
2021-04-20 21:04:44 +02:00
Matthias
b230558294 Merge pull request #4766 from freqtrade/fill_rpc
Add buy/sell fill messages to telegram
2021-04-20 20:39:15 +02:00
Matthias
cfa9315e2a Prevent out of candle ROI sells 2021-04-20 20:29:53 +02:00
Matthias
ba6049e4aa Merge pull request #4768 from c0d5x/fix-markdrawdown-msg
Fix incorrect message when protection is fired
2021-04-20 20:23:16 +02:00
Bernd Zeimetz
5defd9a7f8 setup.sh: Install libpython3-dev on Debian/Ubuntu
Python.h is required to build c modules for Python.
2021-04-20 19:52:57 +02:00
Jose Hidalgo
fd110c7d62 The error that it prints says the contrary to what
was evaluated.

ex. Trading stopped due to Max Drawdown 0.79 < 0.2 within 48 candles
2021-04-20 11:50:53 -06:00
Matthias
f821ef5aec Final finetunings of rpc_fill messages 2021-04-20 19:36:30 +02:00
Matthias
efbe0843be Add documentation for fill messages 2021-04-20 19:23:29 +02:00
Matthias
d740aae8ca Default fill notifications to off 2021-04-20 19:23:29 +02:00
Matthias
0341ac5a55 rename RPC message types 2021-04-20 19:23:28 +02:00
Matthias
8800a09770 Don't send double-notifications for stoploss fills 2021-04-20 19:22:14 +02:00
Matthias
fecd5c582b Add buy and sell fill notifications
closes #3542
2021-04-20 19:22:14 +02:00
Matthias
71b017e7c3 Simplify webhook test 2021-04-20 19:22:14 +02:00
Matthias
06d6f9ac41 Fix calculation of unlimited_stake in case of modified wallet 2021-04-20 15:55:48 +02:00
Matthias
1936dd1ee8 Add test-case verifying "changing" wallet
with unlimited amount
2021-04-20 15:45:07 +02:00
Matthias
2254f65fa7 use binance intests instead of bittrex 2021-04-20 12:59:15 +02:00
Matthias
bd7e535e42 Use "human" amounts in stake_amount tests 2021-04-20 11:58:47 +02:00
Matthias
c9e901cf32 Move wallet tasks to test_wallets 2021-04-20 11:31:37 +02:00
Matthias
75612496d7 Improve poweredBy logo spacing 2021-04-19 19:01:39 +02:00
Matthias
a2acb54e7e Clarify comments in pairlist 2021-04-19 15:15:40 +02:00
Matthias
a51ffdaa3a Merge pull request #4760 from freqtrade/dependabot/pip/develop/ccxt-1.48.22
Bump ccxt from 1.47.47 to 1.48.22
2021-04-19 14:15:36 +02:00
dependabot[bot]
0ddc68b37d Bump ccxt from 1.47.47 to 1.48.22
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.47.47 to 1.48.22.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.47.47...1.48.22)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-19 09:41:49 +00:00
Matthias
efd0d48ad0 Merge pull request #4762 from freqtrade/dependabot/pip/develop/mkdocs-material-7.1.2
Bump mkdocs-material from 7.1.1 to 7.1.2
2021-04-19 08:45:04 +02:00
Matthias
66b3ecfeed Remove faulty font-family in svg 2021-04-19 08:32:25 +02:00
Matthias
81cf09f3b2 Merge pull request #4761 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.9
Bump sqlalchemy from 1.4.7 to 1.4.9
2021-04-19 08:15:46 +02:00
Matthias
4fc5b5d33d Merge pull request #4757 from freqtrade/dependabot/pip/develop/pytest-asyncio-0.15.0
Bump pytest-asyncio from 0.14.0 to 0.15.0
2021-04-19 07:53:08 +02:00
Matthias
00389fa602 Merge pull request #4759 from freqtrade/dependabot/pip/develop/pandas-1.2.4
Bump pandas from 1.2.3 to 1.2.4
2021-04-19 07:52:48 +02:00
Matthias
36ddf99880 Merge pull request #4758 from freqtrade/dependabot/pip/develop/flake8-3.9.1
Bump flake8 from 3.9.0 to 3.9.1
2021-04-19 07:52:05 +02:00
Matthias
9407dbcf87 Add freqtrade powered by ccxt 2021-04-19 07:49:58 +02:00
dependabot[bot]
b94de3030a Bump mkdocs-material from 7.1.1 to 7.1.2
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.1 to 7.1.2.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.1...7.1.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-19 05:23:33 +00:00
dependabot[bot]
59d02f3f03 Bump sqlalchemy from 1.4.7 to 1.4.9
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.7 to 1.4.9.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-19 05:23:27 +00:00
dependabot[bot]
05246e6637 Bump pandas from 1.2.3 to 1.2.4
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/master/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.2.3...v1.2.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-19 05:22:52 +00:00
dependabot[bot]
8d2e6954a1 Bump flake8 from 3.9.0 to 3.9.1
Bumps [flake8](https://gitlab.com/pycqa/flake8) from 3.9.0 to 3.9.1.
- [Release notes](https://gitlab.com/pycqa/flake8/tags)
- [Commits](https://gitlab.com/pycqa/flake8/compare/3.9.0...3.9.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-19 05:22:41 +00:00
dependabot[bot]
296ea30cc3 Bump pytest-asyncio from 0.14.0 to 0.15.0
Bumps [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) from 0.14.0 to 0.15.0.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.14.0...v0.15.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-19 05:22:35 +00:00
Matthias
0737e3fa22 Clarify refresh_period section for volumepairlist
part of #4689
2021-04-17 19:48:29 +02:00
Matthias
44bfb53668 Don't use current rate for closed trades 2021-04-17 19:29:34 +02:00
Matthias
3b53c88dbe Merge pull request #4751 from freqtrade/pairs_backtesting
Pairs backtesting
2021-04-17 19:14:13 +02:00
Matthias
fbb9075539 Update util command structures too 2021-04-17 10:53:03 +02:00
Matthias
c8d3d449a3 Add quick test for pair_whitelist overwrite 2021-04-17 10:51:02 +02:00
Matthias
6a9c47d15f Update docs with new options 2021-04-17 10:48:24 +02:00
Matthias
1eb9ce4227 Allow specifying pairs for optimize commands via --pairs 2021-04-17 10:47:32 +02:00
Matthias
c52edcff4d Merge pull request #4677 from mads03dk/get_trade
Add API endpoint for getting a specific trade
2021-04-16 19:57:58 +02:00
Matthias
9f2b6ee9a5 Merge pull request #4740 from freqtrade/decimal_stoploss_Hyperopt
stoploss and roi skdecimal spaces hyperopt
2021-04-16 19:46:07 +02:00
Matthias
5c579613e1 add /trade endpoint to rest_client script 2021-04-16 19:42:13 +02:00
Matthias
aeb81f90ff Implement errorhandling for /trade endpoint 2021-04-16 19:35:56 +02:00
Matthias
e6936ae135 Improve wording in docs 2021-04-16 19:16:29 +02:00
Matthias
ccd4ef905e Merge pull request #4742 from theomart/patch-2
Correct get_min_pair_stake_amount formula
2021-04-16 13:49:46 +02:00
Matthias
8ce5522a10 Add additional documentation for SKDecimal space 2021-04-16 08:00:04 +02:00
Matthias
2011912a19 Adapt documentation to use 3 decimals only 2021-04-16 07:46:00 +02:00
Gonzalo Matheu
7a98de10ea telegram: Formatting typings 2021-04-15 21:51:16 -03:00
Gonzalo Matheu
e3c5a4b3fc telegram: Formatting imports 2021-04-15 21:51:16 -03:00
Gonzalo Matheu
5fae4ea2fd telegram: Formatting code 2021-04-15 21:51:16 -03:00
Gonzalo Matheu
50bdae8eb2 telegram: Adding forcebuy inline keyboard 2021-04-15 21:51:16 -03:00
Gonzalo Matheu
e2f28991e6 telegram: Wrapping long line 2021-04-15 21:51:16 -03:00
Gonzalo Matheu
271e4500d9 telegram: Adding dynamic keyboard to /forcebuy response 2021-04-15 21:51:16 -03:00
grillzoo
01b303e0f9 Aligning the doc 2021-04-15 21:58:07 +01:00
grillzoo
5e51ba6258 fix flake8 2021-04-15 21:38:00 +01:00
Matthias
ce870bbcf7 Use 3 decimals for ROI space 2021-04-15 21:38:20 +02:00
Matthias
a7f8da4bd5 Merge pull request #4713 from ugurcemozturk/patch-1
chore(readme): Fix markdown of docker manual
2021-04-15 16:16:02 +02:00
Matthias
7142787256 Roll back unintended changes that break rendering 2021-04-15 15:41:35 +02:00
Matthias
db9887c335 Merge pull request #4743 from JoeSchr/patch-1
remove `copy()` from `custom_info` example
2021-04-15 15:34:50 +02:00
JoeSchr
c9c039d640 remove copy() from custom_info example
`set_index` automatically copies if not stated otherwise with `inplace=True`
> inplacebool, default False
If True, modifies the DataFrame in place (do not create a new object).

from: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.set_index.html?highlight=set_index#pandas.DataFrame.set_index
2021-04-15 15:21:28 +02:00
Théo Martin
ce23d9dfee Fix test min stake amount 2021-04-15 01:38:08 +01:00
Théo Martin
885096f2b3 Update tests for get_min_pair_stake_amount 2021-04-15 01:22:52 +01:00
Théo Martin
fa343b0484 Fix get_min_pair_stake_amount formula 2021-04-15 01:19:30 +01:00
Matthias
52c482cecf Convert trailing and roi defaults to skdecimal 2021-04-14 20:36:34 +02:00
Matthias
e820814809 Default-stoploss-hyperopt should use decimal space, nto real 2021-04-14 20:32:34 +02:00
Matthias
862df2b431 Add blacklist recommendation for kucoin
closes #4738
2021-04-14 19:43:32 +02:00
Matthias
6beb1c223f Merge pull request #4734 from freqtrade/get_tickers_ccache
/balance should use cached tickers when possible
2021-04-14 06:30:22 +02:00
Matthias
ba38e398e4 Add type hint 2021-04-13 22:17:42 +02:00
Matthias
c316531c49 make tests 3.7 compatible 2021-04-13 22:07:01 +02:00
Matthias
c2f35ce416 /balance should use cached tickers when possible 2021-04-13 20:21:03 +02:00
Matthias
82d66410f7 Fix /performance output
if multiple messages are necessary

closes #4726
2021-04-13 19:20:57 +02:00
Matthias
521e48c94a Add doc section for Kucoin
part of #4723
2021-04-13 13:55:08 +02:00
Matthias
e4bb6b1582 Add kucoin exchange subclass
Kucoin has some specific orderbook restrictions

closes #4723
2021-04-13 12:28:07 +02:00
Matthias
b0bd73272c Merge pull request #4730 from wr0ngc0degen/develop
update conda dependencies to make compatible with tables package
2021-04-13 12:19:49 +02:00
Matthias
638cd4e8f1 Upgrade cleanup action to latest version 2021-04-13 12:04:22 +02:00
Matthias
37c8fd6ad7 Remove arrow from models.py 2021-04-13 11:55:03 +02:00
wr0ngc0degen
e0f2bb6160 update conda dependencies to make compatible with tables package
- restrict python version in conda's environment.yml to fixed installation issues due to current incompatibility of tables package with python 3.9
2021-04-13 11:44:07 +02:00
Matthias
59cfbbee17 Merge pull request #4724 from csteeg/develop
Fixes FTX stoploss on echange throwing an error
2021-04-13 08:41:52 +02:00
Matthias
99e7ee1273 Fix ftx stoploss creation test 2021-04-13 08:26:41 +02:00
Matthias
f1cf56cc42 Update current_whitelist test 2021-04-13 06:57:21 +02:00
Matthias
9b23be4021 Return a copy from current_whitelist
this avoids manipulating of the pair whitelist from within a strategy
2021-04-13 06:49:53 +02:00
Matthias
4b902d6eb8 Don't use response-model on trades endpoint for now 2021-04-13 06:23:11 +02:00
Matthias
9a58a85347 Don't export "hum" date versions for trade objects.
They are not used and have a rather high performance penalty due to
using arrow.get
2021-04-13 06:17:11 +02:00
Matthias
b60c2bc9b6 Merge pull request #4725 from freqtrade/brew_install
Update brew before installing packages
2021-04-13 06:06:51 +02:00
Matthias
1194d0c0f4 Update brew before installing packages 2021-04-12 20:06:18 +02:00
Matthias
cb60db01b1 Merge pull request #4703 from freqtrade/decimal_space
Add SKDecimal Space
2021-04-12 19:18:10 +02:00
Chris van de Steeg
d4dc05980c Update ftx.py
Stoploss price should be set as param instead of passing it as price according to ccxt
2021-04-12 16:01:46 +02:00
Matthias
f1ac6853fc Fix discord invite link 2021-04-12 11:11:53 +02:00
Matthias
b4a2d00698 Merge pull request #4719 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.7
Bump sqlalchemy from 1.4.5 to 1.4.7
2021-04-12 08:13:10 +02:00
Matthias
8fe2a9cdc9 Merge pull request #4720 from freqtrade/dependabot/pip/develop/ccxt-1.47.47
Bump ccxt from 1.46.38 to 1.47.47
2021-04-12 08:12:12 +02:00
Matthias
0a91d2c7ce Merge pull request #4721 from freqtrade/dependabot/pip/develop/mkdocs-material-7.1.1
Bump mkdocs-material from 7.1.0 to 7.1.1
2021-04-12 08:01:36 +02:00
dependabot[bot]
c19ebc0157 Bump mkdocs-material from 7.1.0 to 7.1.1
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.0 to 7.1.1.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.0...7.1.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-12 05:26:58 +00:00
dependabot[bot]
53bbb2b42c Bump ccxt from 1.46.38 to 1.47.47
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.46.38 to 1.47.47.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.46.38...1.47.47)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-12 05:26:47 +00:00
dependabot[bot]
1b925ec4a9 Bump sqlalchemy from 1.4.5 to 1.4.7
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.5 to 1.4.7.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-12 05:26:11 +00:00
Ugur Cem Ozturk
906c4e64d3 chore(readme): Fix markdown of docker manual
Link to docker-compose was pointing to the one from develop branch. It's changed as with the stable docker-compose.
2021-04-11 15:38:08 +03:00
Matthias
aaf9872ef3 Simplify webserver test 2021-04-10 19:53:00 +02:00
Matthias
be0dc737dc Merge pull request #4706 from freqtrade/simplify_fiat_convert
Simplify fiat convert and fix USD coingecko problem
2021-04-10 14:57:34 +02:00
Matthias
4820b4b314 Fix test failure 2021-04-10 14:52:34 +02:00
Matthias
40fc9d4bfe Merge pull request #4707 from gerrito333/develop
fix documentation inconsistency related to VolatilityFilter
2021-04-10 14:42:09 +02:00
Matthias
579e68f31e Reduce log verbosity when buying 2021-04-10 14:40:44 +02:00
gbojen
96a5b6555d fix documentation inconsistency
fixes freqtrade/freqtrade#4650
2021-04-10 14:31:12 +02:00
Matthias
14e8574235 fetch_balance is never called in dry-run 2021-04-10 14:17:43 +02:00
Matthias
37c2e037f1 Rename dry_run_order to create_dry_run_order 2021-04-10 13:50:56 +02:00
Matthias
ebbe47f38d Simplify fiat convert and fix USD coingecko problem 2021-04-10 13:36:16 +02:00
Matthias
9804e20114 Don't use _set_value for autoOpt-Spaces 2021-04-10 09:53:48 +02:00
Matthias
4996bd443e Merge pull request #4697 from freqtrade/docker_user
Docker as user
2021-04-10 08:19:25 +02:00
Matthias
83fbaf16c8 Extract numeric param validation and explosion 2021-04-10 07:59:59 +02:00
Matthias
ea4b5d675d Don't explode low/high, but use explicit parameters 2021-04-10 07:12:31 +02:00
Matthias
34e47db18d Test SKDecimal space 2021-04-09 22:15:24 +02:00
Matthias
fedff1a75a Fix failing test 2021-04-09 22:10:20 +02:00
Matthias
5f67400649 Add SKDecimal Space 2021-04-09 21:58:15 +02:00
Matthias
126127c1e1 Fix armHF image to use ftuser on install too 2021-04-09 21:28:54 +02:00
Matthias
4b2cec22ec Chown .local dir 2021-04-09 19:34:05 +02:00
Matthias
421079ebb7 Merge pull request #4698 from brookmiles/add-faq-spot-only
add FAQ entries for shorting, futures, and options
2021-04-09 09:51:01 +02:00
Brook Miles
0b4b67e46b add FAQ entries for shorting, futures, and options 2021-04-09 10:36:03 +09:00
Matthias
644dcc1641 Only allow chown via sudo 2021-04-08 20:36:30 +02:00
Matthias
4eb251ce41 Update dockerfiles to run as non-root 2021-04-08 20:17:53 +02:00
Matthias
898c24949b Add chown method to support docker 2021-04-08 20:17:07 +02:00
Matthias
8cd3c05c39 Merge pull request #4686 from gerrito333/develop
Add Pairlist Handler for Volatility
2021-04-08 20:00:41 +02:00
Matthias
75e26b9981 Merge pull request #4694 from freqtrade/gitattr
Add gitattributes file
2021-04-08 19:34:56 +02:00
Matthias
74bf0b6399 Fix typo in documentation 2021-04-08 19:29:51 +02:00
Matthias
5a5c5fccf2 Add gitattributes file 2021-04-08 17:18:09 +02:00
gbojen
862f69f895 removed typos 2021-04-08 16:43:38 +02:00
gbojen
f8244d9d76 resolves freqtrade/freqtrade#4650 2021-04-07 22:25:54 +02:00
Matthias
588c221df0 Merge pull request #4684 from aapopov92/patch-1
Improve Kraken-specific config description.
2021-04-07 19:20:16 +02:00
Matthias
4d30c32ad2 Improve resiliancy of a test 2021-04-07 17:10:20 +02:00
Matthias
c36051be56 Merge pull request #4685 from freqtrade/ft_has
Use ccxt's has to check which exchanges can work with freqtrade
2021-04-07 10:47:56 +02:00
gbojen
5ee879a747 isort resolves freqtrade/freqtrade#4650 2021-04-07 10:15:51 +02:00
gbojen
17508efbbc resolves freqtrade/freqtrade#4650 2021-04-07 08:59:44 +02:00
Matthias
7f8d90d34c Update list-exchanges doc with new format 2021-04-07 07:05:10 +02:00
Matthias
d2680f6cb8 Remove telegram deprecation warning
closes #4688
2021-04-07 06:57:05 +02:00
Matthias
ac6bff536f Fix test failure with UI test if UI is deployed 2021-04-07 06:55:11 +02:00
Matthias
0f0607baec Fix rangeestability filter caching issue 2021-04-07 06:52:34 +02:00
gbojen
9772a93634 resolves freqtrade/freqtrade#4650 2021-04-06 23:11:40 +02:00
gbojen
9089323d26 resolves freqtrade/freqtrade#4650 2021-04-06 22:46:36 +02:00
gbojen
187cf6dcd5 VolatilityFilter resolves freqtrade/freqtrade#4650 2021-04-06 22:41:15 +02:00
Matthias
a3b4667f7c Update exchange validation to use "validate_exchange". 2021-04-06 20:16:29 +02:00
Aleksey Popov
b6599c1da9 Improve Kraken-specific config description.
Added Warning after Kraken rate limit config in order to clearly highlight that it holds delay between requests instead of req\sec rate.
2021-04-06 20:10:52 +02:00
Matthias
be3b6ab491 Merge pull request #4683 from klara31/negative-sell_profit_offset
Allow ask_strategy.sell_profit_offset negative value
2021-04-06 20:09:18 +02:00
Matthias
5ed7828446 Remove hardcoded list of non-working exchanges 2021-04-06 20:03:38 +02:00
klara31
f37fbbf4e1 Update constants.py 2021-04-06 19:47:48 +02:00
Matthias
c40b811f19 flush after creating mock trades 2021-04-06 19:35:28 +02:00
klara31
bf0886a839 Update constants.py 2021-04-06 18:35:30 +02:00
Matthias
56ef3af424 Allow comments in pairs files 2021-04-06 13:29:22 +02:00
gbojen
1733e24062 pyLint adjustment resolves freqtrade#4650 2021-04-06 10:44:13 +02:00
gbojen
be770a8941 added VolatilityFilter resolves freqtrade#4650 2021-04-06 10:42:53 +02:00
gbojen
6f02acdbbd Revert "resolves freqtrade/freqtrade#4650"
This reverts commit 142690c930.
2021-04-06 10:39:27 +02:00
gbojen
142690c930 resolves freqtrade/freqtrade#4650 2021-04-06 10:05:03 +02:00
Matthias
f1f79b9448 Merge pull request #4679 from freqtrade/dependabot/docker/python-3.9.4-slim-buster
Bump python from 3.9.3-slim-buster to 3.9.4-slim-buster
2021-04-06 08:16:46 +02:00
Matthias
ddabfe0206 adjust tests to match new exchangelist output 2021-04-06 07:58:45 +02:00
Matthias
969d44a952 Update Dockerfile.armhf 2021-04-06 07:49:16 +02:00
Matthias
0550f261f1 Add exchange_has validation 2021-04-06 07:47:44 +02:00
dependabot[bot]
6633752fcb Bump python from 3.9.3-slim-buster to 3.9.4-slim-buster
Bumps python from 3.9.3-slim-buster to 3.9.4-slim-buster.

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-06 05:29:34 +00:00
Mads Sørensen
fc78246bbc Some changes to rest-api docs 2021-04-05 19:34:01 +02:00
Mads Sørensen
ddba0d688e Add new trade endpoint to docs 2021-04-05 19:32:55 +02:00
Mads Sørensen
c176e277f1 Add a REST endpoint for getting a specific trade 2021-04-05 19:31:34 +02:00
Matthias
78a84f8081 Allow --hyperoptloss in addition to --hyperopt-loss 2021-04-05 15:38:33 +02:00
Matthias
7b2a0d46cb Fix typo 2021-04-05 15:38:25 +02:00
Matthias
3044aa18e6 Add warning for hyperopt-parameters 2021-04-05 14:45:42 +02:00
Matthias
431f0a3db4 Merge pull request #4671 from freqtrade/fix/sqlalchemy
sqlalchemy database locked bug
2021-04-05 14:09:35 +02:00
Matthias
b470672dfd Merge pull request #4596 from rokups/rk/hyper-strategy
Support for creating auto-hyperoptable strategies.
2021-04-05 13:55:32 +02:00
Matthias
c51839dc3b Make the logmessage for loaded parameters clearer 2021-04-05 11:21:20 +02:00
Matthias
dc406fe19f Fail in case of name and explicit space name collisions 2021-04-05 10:53:00 +02:00
Matthias
1f7eeb42a2 Merge pull request #4670 from freqtrade/dependabot/docker/python-3.9.3-slim-buster
Bump python from 3.9.2-slim-buster to 3.9.3-slim-buster
2021-04-05 08:46:30 +02:00
Matthias
7132aefd60 Rename Trade.session to Trade._session 2021-04-05 08:46:12 +02:00
Matthias
af52581813 Update Dockerfile.armhf 2021-04-05 08:22:01 +02:00
Matthias
6a4da8cd42 Merge pull request #4667 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.5
Bump sqlalchemy from 1.4.3 to 1.4.5
2021-04-05 08:20:56 +02:00
Matthias
b4ff0801f8 Merge pull request #4666 from freqtrade/dependabot/pip/develop/ccxt-1.46.38
Bump ccxt from 1.45.44 to 1.46.38
2021-04-05 08:20:26 +02:00
Matthias
7cd2fefc1f Merge pull request #4668 from freqtrade/dependabot/pip/develop/pycoingecko-1.4.1
Bump pycoingecko from 1.4.0 to 1.4.1
2021-04-05 08:18:51 +02:00
Matthias
c40e26632a Merge pull request #4669 from freqtrade/dependabot/pip/develop/pytest-6.2.3
Bump pytest from 6.2.2 to 6.2.3
2021-04-05 08:16:29 +02:00
Matthias
2733683291 Merge pull request #4665 from freqtrade/dependabot/pip/develop/mkdocs-material-7.1.0
Bump mkdocs-material from 7.0.7 to 7.1.0
2021-04-05 08:15:47 +02:00
dependabot[bot]
e979f132e3 Bump python from 3.9.2-slim-buster to 3.9.3-slim-buster
Bumps python from 3.9.2-slim-buster to 3.9.3-slim-buster.

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-05 05:57:56 +00:00
Matthias
ea0b47a7f9 Replace test occurances of Trade.session with Trade.query.session 2021-04-05 07:38:07 +02:00
Matthias
0407bf755f Use .query.session to make sure the scoped session is used properly 2021-04-05 07:28:51 +02:00
dependabot[bot]
abbc56c1cc Bump pytest from 6.2.2 to 6.2.3
Bumps [pytest](https://github.com/pytest-dev/pytest) from 6.2.2 to 6.2.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/6.2.2...6.2.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-05 05:27:44 +00:00
dependabot[bot]
36b39f9136 Bump pycoingecko from 1.4.0 to 1.4.1
Bumps [pycoingecko](https://github.com/man-c/pycoingecko) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/man-c/pycoingecko/releases)
- [Changelog](https://github.com/man-c/pycoingecko/blob/master/CHANGELOG.md)
- [Commits](https://github.com/man-c/pycoingecko/compare/1.4.0...1.4.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-05 05:27:31 +00:00
dependabot[bot]
320172a224 Bump sqlalchemy from 1.4.3 to 1.4.5
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.3 to 1.4.5.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-05 05:27:26 +00:00
dependabot[bot]
fc2f9fd0c7 Bump ccxt from 1.45.44 to 1.46.38
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.45.44 to 1.46.38.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.45.44...1.46.38)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-05 05:27:16 +00:00
dependabot[bot]
342f14472c Bump mkdocs-material from 7.0.7 to 7.1.0
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.0.7 to 7.1.0.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.0.7...7.1.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-05 05:26:45 +00:00
Matthias
bd5e1c5096 Merge pull request #4660 from rextea/order_pairlist_results
Sort pair lists by total profit
2021-04-04 19:47:33 +02:00
Matthias
c2be9b971c Improve backtest assumptions with fill rules 2021-04-04 07:02:59 +02:00
rextea
9e56f6d4eb Sort pair lists by total profit 2021-04-04 01:19:38 +03:00
Matthias
30e5e92968 Don't allow one parmeter to be in 2 spaces
use the explicit user wish (given explicitly with "space")
2021-04-03 20:17:48 +02:00
Matthias
9d4b5cc6bb Fix typo 2021-04-03 19:56:20 +02:00
Matthias
5f6eae52a2 fix too long performance message
closes #4655
2021-04-03 19:12:36 +02:00
Matthias
41cb2a6451 Merge branch 'develop' into pr/rokups/4596 2021-04-03 17:00:37 +02:00
Matthias
6555454bd2 Remove more ticker_interval occurances 2021-04-03 16:54:47 +02:00
Matthias
771fc05749 Update sample strategy with hyperoptable Parameters 2021-04-03 16:32:16 +02:00
Matthias
093d6ce8af Add sample for Nested space 2021-04-03 16:13:49 +02:00
Matthias
c2d43a526c Combine Legacy and advanced hyperopt sections 2021-04-03 16:08:08 +02:00
Matthias
32a503491d Reorder hyperopt methods 2021-04-03 15:41:43 +02:00
Matthias
4eb7ce52cd Remove duplicate entries from hyperopt_legacy 2021-04-03 15:38:52 +02:00
Rokas Kupstys
faf40482ef Fix parameter printing. 2021-04-03 13:49:24 +03:00
Rokas Kupstys
23c19b6852 New hyperopt documentation. 2021-04-03 11:19:52 +03:00
Matthias
e7a1924aa0 Fix typo 2021-04-03 08:36:06 +02:00
Matthias
68db8535be Merge pull request #4651 from freqtrade/technical_default
Include Technical in default image
2021-04-03 08:12:49 +02:00
Matthias
7728e269fd Include Technical in default image 2021-04-03 07:17:02 +02:00
Rokas Kupstys
ea43d5ba85 Implement DecimalParameter and rename FloatParameter to RealParameter. 2021-04-02 17:08:16 +03:00
Matthias
c7ee34687b Merge pull request #4584 from withshubh/develop
fix: code quality issues
2021-04-02 15:19:49 +02:00
Matthias
b6c6ee88bc Merge pull request #4646 from mads03dk/develop
Add profit_fiat to REST API response on status
2021-04-02 15:16:34 +02:00
Mads Sørensen
3691ae8686 Make sure the fiat converter exists before calling it 2021-04-02 14:50:47 +02:00
Mads Sørensen
ede26091b9 Add validation in the right places... 2021-04-02 14:35:19 +02:00
shubhendra
f47dc31786 Refactor the comparison involving not
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-04-02 16:57:44 +05:30
Mads Sørensen
2c0079b00b Add profit_fiat to tests, use ANY, as price changes... 2021-04-02 13:16:52 +02:00
Mads Sørensen
51f0fcb2cb Add profit_fiat to REST API 2021-04-02 12:20:38 +02:00
Matthias
d64295ba24 Adapt test strategy to new parameters 2021-04-01 06:55:25 +02:00
Matthias
5acdc9bf42 Fix type errors by converting all hyperopt methods to instance methods 2021-04-01 06:47:23 +02:00
Matthias
b501d948ec Merge pull request #4636 from freqtrade/fix/4298
Allow edge to use dynamic pairlists
2021-03-31 21:11:37 +02:00
Rokas Kupstys
5e5b11d4d6 Split "enabled" to "load" and "optimize" parameters. 2021-03-31 12:31:28 +03:00
Matthias
2869d5368d Allow edge to use dynamic pairlists
closes #4298
2021-03-30 20:20:24 +02:00
Matthias
89cfcc8ba6 Merge pull request #4630 from freqtrade/reduce_dataload_verbosity
Reduce verbosity of missing data if less than 1% of data is missing
2021-03-30 16:18:01 +02:00
Matthias
50fcb3f330 Reduce verbosity of missing data if less than 1% of data is missing 2021-03-30 07:26:39 +02:00
Matthias
71dea3fb93 Merge pull request #4628 from freqtrade/fix-startupcandles
Remove candle_count from dataframe
2021-03-30 06:49:24 +02:00
Matthias
89bbfd2324 Remove candle_count from dataframe before backtesting
closes #3754
2021-03-29 20:26:54 +02:00
Matthias
6954a1e029 MOre tests for ParameterHyperopt 2021-03-29 19:49:22 +02:00
Matthias
00d8f3a479 Merge pull request #4623 from freqtrade/dependabot/pip/develop/scipy-1.6.2
Bump scipy from 1.6.1 to 1.6.2
2021-03-29 14:09:28 +02:00
Matthias
74ca3aa5ae Merge pull request #4621 from freqtrade/dependabot/pip/develop/cryptography-3.4.7
Bump cryptography from 3.4.6 to 3.4.7
2021-03-29 13:39:15 +02:00
Matthias
268debeb9d Merge pull request #4625 from freqtrade/dependabot/pip/develop/ccxt-1.45.44
Bump ccxt from 1.43.89 to 1.45.44
2021-03-29 13:38:42 +02:00
dependabot[bot]
5d5debab66 Bump scipy from 1.6.1 to 1.6.2
Bumps [scipy](https://github.com/scipy/scipy) from 1.6.1 to 1.6.2.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.6.1...v1.6.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-29 10:01:20 +00:00
dependabot[bot]
3e864a87ad Bump cryptography from 3.4.6 to 3.4.7
Bumps [cryptography](https://github.com/pyca/cryptography) from 3.4.6 to 3.4.7.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/3.4.6...3.4.7)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-29 09:53:50 +00:00
dependabot[bot]
dacaa4a732 Bump ccxt from 1.43.89 to 1.45.44
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.43.89 to 1.45.44.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.43.89...1.45.44)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-29 09:34:57 +00:00
Matthias
8d01767a42 Fix CI syntax 2021-03-29 09:20:34 +02:00
Matthias
95a9c92769 Add permission-check before slack notify 2021-03-29 09:13:48 +02:00
Matthias
83c1843af3 Merge pull request #4624 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.18
Bump prompt-toolkit from 3.0.17 to 3.0.18
2021-03-29 08:40:39 +02:00
Matthias
dfbbaef917 Merge pull request #4622 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.3
Bump sqlalchemy from 1.4.2 to 1.4.3
2021-03-29 08:12:15 +02:00
Matthias
507787c156 Merge pull request #4618 from freqtrade/dependabot/pip/develop/mkdocs-material-7.0.7
Bump mkdocs-material from 7.0.6 to 7.0.7
2021-03-29 08:04:28 +02:00
Matthias
d2faa8ca1c Merge pull request #4620 from freqtrade/dependabot/pip/develop/numpy-1.20.2
Bump numpy from 1.20.1 to 1.20.2
2021-03-29 08:02:27 +02:00
dependabot[bot]
8e49271e6f Bump prompt-toolkit from 3.0.17 to 3.0.18
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.17 to 3.0.18.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.17...3.0.18)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-29 05:28:30 +00:00
dependabot[bot]
607c05b3ce Bump sqlalchemy from 1.4.2 to 1.4.3
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.4.2 to 1.4.3.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-29 05:28:16 +00:00
dependabot[bot]
e5789b36cf Bump numpy from 1.20.1 to 1.20.2
Bumps [numpy](https://github.com/numpy/numpy) from 1.20.1 to 1.20.2.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.20.1...v1.20.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-29 05:27:57 +00:00
dependabot[bot]
9322845740 Bump mkdocs-material from 7.0.6 to 7.0.7
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.0.6 to 7.0.7.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.0.6...7.0.7)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-29 05:27:22 +00:00
Matthias
d6585517d5 Merge pull request #4615 from freqtrade/config_add_restapi
new-config should include API config
2021-03-29 06:43:56 +02:00
Matthias
f6211bc00e new-config should include API config 2021-03-28 20:23:57 +02:00
Matthias
fc8478111e Improve strategy template 2021-03-28 20:06:30 +02:00
Matthias
929f329607 more tests 2021-03-28 19:49:20 +02:00
Matthias
20f7e9b4b7 Make BaseParameter get_space abstract 2021-03-28 19:31:54 +02:00
Matthias
2cf36ca545 Merge pull request #4609 from freqtrade/new_release
New release 2021.3
2021-03-28 11:32:33 +02:00
Matthias
8022386404 Type custom_hyperopt 2021-03-27 18:00:07 +01:00
Matthias
7fb34f7e25 Version bump 2021.3 2021-03-27 11:34:11 +01:00
Matthias
bf0f34c156 Merge branch 'stable' into new_release 2021-03-27 11:33:56 +01:00
Matthias
4fd7bedcb2 Sort imports ... 2021-03-27 11:32:51 +01:00
Matthias
71e2134694 Add some simple tests for hyperoptParameters 2021-03-27 11:26:26 +01:00
Matthias
786ddc6a91 remove unused imports 2021-03-27 10:47:33 +01:00
Masoud Azizi
39bfe5e1a7 Thee to the 2021-03-26 20:51:14 +01:00
rextea
76a02ff70a fix indentations 2021-03-26 18:49:17 +03:00
rextea
2bed41da5d Add days breakdown table to backtesting 2021-03-26 18:40:50 +03:00
Rokas Kupstys
e934d3ddfb [SQUASH] Oopsie. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
40f5c7853e [SQUASH] Add a way to temporarily disable a parameter (excludes from parameter loading/hyperopt) and print parameter values when executed. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
bbe6ece38d [SQUASH] Fix parameter configs not loading. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
424cd2a914 [SQUASH] Use "space" instead of category. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
fd45dfd894 [SQUASH] Make skopt imports optional. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
11689100e7 [SQUASH] Fix exception when HyperOpt nested class is not defined. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
e9f0babe8a [SQUASH] Use HyperStrategyMixin as part of IStrategy interface. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
2d13e5fd50 [SQUASH] Oopsies. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
bb89e44e19 [SQUASH] Address PR comments.
* Split Parameter into IntParameter/FloatParameter/CategoricalParameter.
* Rename IHyperStrategy to HyperStrategyMixin and use it as mixin.
* --hyperopt parameter is now optional if strategy uses HyperStrategyMixin.
* Use OperationalException() instead of asserts.
2021-03-26 16:56:24 +02:00
Rokas Kupstys
0a205f52b0 Optional support for defining hyperopt parameters in a strategy file and reusing common hyperopt/strategy parts. 2021-03-26 16:56:24 +02:00
Matthias
8da7d5c009 Merge pull request #4594 from rextea/add_confirm_exit_enter_tade_to_backtesting
Add confirm_trade_exit and confirm_trade_entry to backtesting
2021-03-25 20:26:56 +01:00
Matthias
292ea8c1d0 Update backtesting.py 2021-03-25 09:34:33 +01:00
rextea
0ca95aa0c2 Change rate to acctual close rate 2021-03-25 10:25:25 +02:00
Matthias
ec15610bff Fix isort issue 2021-03-24 19:21:07 +01:00
rextea
d795febf92 Add info to documantation 2021-03-24 18:26:03 +02:00
Matthias
ee82d36bef Merge pull request #4593 from hoeckxer/feat/status_table_telegram_length
Changed the code for status table a bit so that it splits up the trad…
2021-03-24 06:49:54 +01:00
Erwin Hoeckx
2fd510e6e4 Added comment with an example calculation
Signed-off-by: Erwin Hoeckx <hawkeyenl@yahoo.com>
2021-03-23 21:52:46 +01:00
Erwin Hoeckx
65a9763fa5 Fixed an issue when there were exactly 50 trades, it was sending an extra empty table
Signed-off-by: Erwin Hoeckx <hawkeyenl@yahoo.com>
2021-03-23 16:54:38 +01:00
Erwin Hoeckx
c928cd38dc Small bugfix to make sure it shows all the trades
Signed-off-by: Erwin Hoeckx <hawkeyenl@yahoo.com>
2021-03-23 16:45:42 +01:00
Matthias
d5301b4d63 RateLimit should be enabled by default 2021-03-23 10:53:09 +01:00
rextea
f51f4b1817 Add confirm_trade_exit and confirm_trade_entry to backtesting 2021-03-23 10:35:46 +02:00
rextea
dc4ea604dd Add confirm_trade_exit and confirm_trade_entry to backtesting 2021-03-23 10:19:16 +02:00
rextea
eb5d69dcd4 Add confirm_trade_exit and confirm_trade_entry to backtesting 2021-03-23 10:12:08 +02:00
rextea
6856963aef Add confirm_trade_exit and confirm_trade_entry to backtesting 2021-03-23 10:09:41 +02:00
Erwin Hoeckx
4e8999ade3 Changed the code for status table a bit so that it splits up the trades per 50 trades, to make sure it can be sent regardless of number of trades
Signed-off-by: Erwin Hoeckx <hawkeyenl@yahoo.com>
2021-03-22 20:40:11 +01:00
Matthias
7adfa0cfd9 Merge pull request #4592 from freqtrade/dependabot/pip/develop/sqlalchemy-1.4.2
Bump sqlalchemy from 1.3.23 to 1.4.2
2021-03-22 20:00:13 +01:00
Matthias
b7702a1e9f Improve tests to work with new sqlalchemy version 2021-03-22 19:39:06 +01:00
Matthias
e39cff522d Remove duplicate dict keys in test 2021-03-22 17:30:16 +01:00
Matthias
77610b6a6d Merge pull request #4590 from freqtrade/dependabot/pip/develop/urllib3-1.26.4
Bump urllib3 from 1.26.3 to 1.26.4
2021-03-22 06:53:21 +01:00
Matthias
efe1315a17 Merge pull request #4589 from freqtrade/dependabot/pip/develop/ccxt-1.43.89
Bump ccxt from 1.43.27 to 1.43.89
2021-03-22 06:52:38 +01:00
Matthias
d4ca62f7f3 Merge pull request #4591 from freqtrade/dependabot/pip/develop/isort-5.8.0
Bump isort from 5.7.0 to 5.8.0
2021-03-22 06:52:18 +01:00
dependabot[bot]
ea3012e94d Bump sqlalchemy from 1.3.23 to 1.4.2
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.3.23 to 1.4.2.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-22 05:25:35 +00:00
dependabot[bot]
09c7ee9e92 Bump isort from 5.7.0 to 5.8.0
Bumps [isort](https://github.com/pycqa/isort) from 5.7.0 to 5.8.0.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.7.0...5.8.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-22 05:25:28 +00:00
dependabot[bot]
9612ba34ed Bump urllib3 from 1.26.3 to 1.26.4
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.3 to 1.26.4.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.3...1.26.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-22 05:25:17 +00:00
dependabot[bot]
ac7a1305cb Bump ccxt from 1.43.27 to 1.43.89
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.43.27 to 1.43.89.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.43.27...1.43.89)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-22 05:25:11 +00:00
shubhendra
4d81834912 Merge isinstance calls
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:47 +05:30
shubhendra
45da3a7022 Refactor unnecessary else / elif when if block has a continue statement
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:47 +05:30
shubhendra
910e15b174 Remove methods with unnecessary super delegation.
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:47 +05:30
shubhendra
6d6ad035d6 Remove length check in favour of truthiness of the object
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:46 +05:30
shubhendra
537ad059bc Remove unnecessary use of comprehension
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:46 +05:30
shubhendra
62d99a0b74 Remove unnecessary comprehension
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:45 +05:30
shubhendra
4f5a1e94a7 Add .deepsource.toml
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:45 +05:30
Matthias
e315a6a0da assume "last" can miss from a ticker response
closes #4573
2021-03-20 14:58:51 +01:00
Matthias
43d7f9ac67 Add bid_last_balance parameter
to interpolate sell prices

closes #3270
2021-03-20 14:38:26 +01:00
Matthias
f4e71c1f14 get_buy_rate tests should be sensible 2021-03-20 14:02:13 +01:00
Matthias
73876b61b4 Show potential errors when loading markets 2021-03-20 13:34:33 +01:00
Matthias
16a54b3616 Don't require non-mandatory arguments 2021-03-20 13:08:02 +01:00
Matthias
fe7f3d9c37 Add price side validation for market orders 2021-03-20 11:48:39 +01:00
Matthias
066dd72210 add orderbook structure documentation 2021-03-20 08:34:15 +01:00
Matthias
0a9622a065 Merge pull request #4581 from freqtrade/fix/4578
Fix calculation error for min-trade-stake
2021-03-20 08:21:52 +01:00
Matthias
69799532a6 Document usage of open_date_utc
closes #4580
2021-03-20 08:13:56 +01:00
Matthias
7ffe1fd36a Fix calculation error for min-trade-stake 2021-03-20 07:21:22 +01:00
Matthias
fd34d454a8 Merge pull request #4574 from maycon/patch-1
Added slash to fix a broken formatting
2021-03-19 20:32:31 +01:00
Matthias
fb90901bb3 Fix telegram table for both rendered and github markdown 2021-03-19 20:12:12 +01:00
Maycon Maia Vitali
c1f7992270 Added slash to fix a broken formatting
On the command table the pipe(|) broke the formatting.
2021-03-19 10:39:45 -03:00
Matthias
0d5833ed91 Use OperationalException for TimeRange errors 2021-03-19 06:40:04 +01:00
Matthias
c304651249 Merge pull request #4571 from pbrunier/develop
Improvement for timerange parser
2021-03-19 06:36:22 +01:00
Patrick Brunier
4d52732d30 Added a small snippet to give users a descent error message,
when their start date is afer the stop date.
Also updated the tests.
2021-03-18 22:38:54 +01:00
Matthias
84ca9bd2c7 Merge pull request #4543 from brookmiles/fix-math-custom-stoploss-docs
correct math used in examples and clarify some terminology regarding …
2021-03-18 19:32:30 +01:00
Matthias
dd4d1d82d4 Update docs/strategy-advanced.md 2021-03-18 14:19:33 +01:00
Brook Miles
bf14796d4c revert "Trailing stoploss with positive offset" example as stoploss_from_open() wasn't adding value 2021-03-18 21:50:54 +09:00
Matthias
b6e9e74a8b Add link between stoploss_from_open and custom_stop documentation 2021-03-18 06:46:08 +01:00
Brook Miles
983c0ef118 update stoploss_from_open examples to use helper function 2021-03-18 09:47:03 +09:00
Matthias
76ca3c219f extract result-printing from hyperopt class 2021-03-17 20:45:15 +01:00
Matthias
b05de6d468 Move advanced exchange config to exchange page 2021-03-17 19:36:35 +01:00
Matthias
6597055a24 Ensure ccxt tests run without dry-run
closes #4566
2021-03-17 19:36:11 +01:00
Brook Miles
ce1ed76269 complete stoploss_from_open and associated test 2021-03-17 22:44:10 +09:00
Brook Miles
aee2591490 add stoploss_from_open() as a strategy_helper 2021-03-17 17:58:23 +09:00
Matthias
79d4585dad Add check to ensure close_profit_abs is filled on closed trades
Technically, this should not be possible, but #4554 shows it is.

closes #4554
2021-03-16 19:24:03 +01:00
Matthias
dd5873ef24 Merge pull request #4552 from freqtrade/dependabot/pip/develop/ccxt-1.43.27
Bump ccxt from 1.42.66 to 1.43.27
2021-03-15 19:50:43 +01:00
Matthias
09aa678e59 Merge pull request #4549 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.17
Bump prompt-toolkit from 3.0.16 to 3.0.17
2021-03-15 11:33:28 +01:00
dependabot[bot]
8f26935259 Bump ccxt from 1.42.66 to 1.43.27
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.42.66 to 1.43.27.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.42.66...1.43.27)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-15 09:26:02 +00:00
Matthias
ecc677ad13 Merge pull request #4550 from freqtrade/dependabot/pip/develop/python-telegram-bot-13.4.1
Bump python-telegram-bot from 13.3 to 13.4.1
2021-03-15 08:38:20 +01:00
Matthias
6ae2774b7a Merge pull request #4548 from freqtrade/dependabot/pip/develop/mkdocs-material-7.0.6
Bump mkdocs-material from 7.0.5 to 7.0.6
2021-03-15 07:19:27 +01:00
Matthias
8a4fd05ded Merge pull request #4551 from freqtrade/fix/slacknotify
Update slack action
2021-03-15 07:19:05 +01:00
Matthias
b4b11c403d Merge pull request #4546 from freqtrade/dependabot/pip/develop/flake8-3.9.0
Bump flake8 from 3.8.4 to 3.9.0
2021-03-15 07:18:53 +01:00
Matthias
b6c29bebb0 Update slack action 2021-03-15 06:56:48 +01:00
dependabot[bot]
a209b0a392 Bump python-telegram-bot from 13.3 to 13.4.1
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 13.3 to 13.4.1.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v13.3...v13.4.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-15 05:28:18 +00:00
dependabot[bot]
1173d8971a Bump prompt-toolkit from 3.0.16 to 3.0.17
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.16 to 3.0.17.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-15 05:28:06 +00:00
dependabot[bot]
22c34faca3 Bump mkdocs-material from 7.0.5 to 7.0.6
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.0.5 to 7.0.6.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.0.5...7.0.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-15 05:28:02 +00:00
dependabot[bot]
09872d8e42 Bump flake8 from 3.8.4 to 3.9.0
Bumps [flake8](https://gitlab.com/pycqa/flake8) from 3.8.4 to 3.9.0.
- [Release notes](https://gitlab.com/pycqa/flake8/tags)
- [Commits](https://gitlab.com/pycqa/flake8/compare/3.8.4...3.9.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-15 05:27:18 +00:00
Matthias
b191663a7e Adapt hyperopt templates to be better aligned
closes #3027
2021-03-14 19:49:46 +01:00
Matthias
0b35c0571f Allow custom fee to be used during dry-run
closes #3696
2021-03-14 19:37:57 +01:00
Brook Miles
e924416431 correct math used in examples and clarify some terminology regarding custom stoploss functions 2021-03-14 22:02:53 +09:00
Matthias
7a63f8cc31 Fix hdf5 support on raspberry 2021-03-14 13:25:08 +01:00
Matthias
b57c150654 Final balance should include forcesold pairs 2021-03-14 09:48:40 +01:00
Matthias
9fb6cfcdad Merge pull request #4540 from jlaw/fix-date-test-utc
fix: Use now() to match timezone of download data
2021-03-14 07:03:29 +01:00
Jackson Law
618bae23a6 fix: Use now() to match timezone of download data 2021-03-13 11:14:36 -08:00
Matthias
cd8d9f2930 Merge pull request #4534 from rokups/patch-1
Provide access to strategy instance from hyperopt class.
2021-03-13 17:14:47 +01:00
Matthias
3b99f04a78 Merge pull request #4535 from freqtrade/fix/backtestperformance
Improve backtest performance after enabling compounding
2021-03-13 16:51:00 +01:00
Matthias
eb4f05eb23 Add documentation for hyperopt.strategy availability 2021-03-13 16:47:12 +01:00
Matthias
3a0739183a Merge pull request #4530 from jlaw/develop
Create event loop manually if uvloop is available
2021-03-13 16:25:16 +01:00
Matthias
6389e86ed6 Add test for uvloop fix 2021-03-13 16:09:07 +01:00
Matthias
0320c8dc92 Improve tests for trades_proxy 2021-03-13 15:51:27 +01:00
Rokas Kupstys
5e872273d1 Provide access to strategy instance from hyperopt class. 2021-03-13 15:13:42 +02:00
Matthias
d1acc8092c Improve backtest performance 2021-03-13 10:17:14 +01:00
Jackson Law
425cd7adba Create event loop manually if uvloop is available
asyncio.get_event_loop() does not call new_event_loop()
if current_thread() != main_thread()
2021-03-12 16:16:03 -08:00
Matthias
441d3fad39 Merge pull request #4513 from freqtrade/fix/4511
Fix stoploss order problem with FTX
2021-03-11 19:39:44 +01:00
Matthias
ef9977fc1e Make stake_amount + stake_currency mandatory for backtesting 2021-03-10 10:43:44 +01:00
Matthias
333ad02605 Fix random test failure 2021-03-10 10:39:38 +01:00
Matthias
0db5c9746f Merge pull request #4454 from freqtrade/backtest_compound_speed
Backtest compound, wallet, ...
2021-03-10 10:07:40 +01:00
Matthias
60f6b998d3 Update logo with smiling one 2021-03-10 09:27:03 +01:00
Matthias
99583bbd0c Fix problem with FTX
where cancelled orders are "cancelled", not "canceled"
2021-03-09 20:21:08 +01:00
Matthias
dd420a22e9 Merge pull request #4508 from Th0masL/fix_order_by
Change order_by from ID to close_date for /trades command
2021-03-09 20:20:04 +01:00
Matthias
a1902f226d Make trade-close sequence clear for mock trades 2021-03-09 19:29:00 +01:00
Th0masL
37e6006169 Fix order_by in trades command 2021-03-08 23:21:56 +02:00
Matthias
4b550dab17 Always reset fake-databases
Otherwise results may stick around for the next strategy
2021-03-08 19:40:29 +01:00
Matthias
61ec7a309b Merge pull request #4501 from freqtrade/dependabot/pip/develop/aiohttp-3.7.4.post0
Bump aiohttp from 3.7.4 to 3.7.4.post0
2021-03-08 17:12:55 +01:00
dependabot[bot]
25c9e89956 Bump aiohttp from 3.7.4 to 3.7.4.post0
Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.7.4 to 3.7.4.post0.
- [Release notes](https://github.com/aio-libs/aiohttp/releases)
- [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst)
- [Commits](https://github.com/aio-libs/aiohttp/compare/v3.7.4...v3.7.4.post0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-08 09:15:30 +00:00
Matthias
5e3e1e22e3 Merge pull request #4502 from freqtrade/dependabot/pip/develop/pandas-1.2.3
Bump pandas from 1.2.2 to 1.2.3
2021-03-08 10:12:03 +01:00
dependabot[bot]
7950acf6d4 Bump pandas from 1.2.2 to 1.2.3
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/master/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.2.2...v1.2.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-08 08:53:20 +00:00
Matthias
7e45af97e6 Merge pull request #4504 from freqtrade/dependabot/pip/develop/mkdocs-material-7.0.5
Bump mkdocs-material from 7.0.3 to 7.0.5
2021-03-08 07:31:06 +01:00
Matthias
bb1f888b4c Merge pull request #4503 from freqtrade/dependabot/pip/develop/arrow-1.0.3
Bump arrow from 1.0.2 to 1.0.3
2021-03-08 07:30:38 +01:00
Matthias
7e897343c8 Merge pull request #4499 from freqtrade/dependabot/pip/develop/coveralls-3.0.1
Bump coveralls from 3.0.0 to 3.0.1
2021-03-08 06:52:08 +01:00
Matthias
6217c4c886 Merge pull request #4500 from freqtrade/dependabot/pip/develop/ccxt-1.42.66
Bump ccxt from 1.42.47 to 1.42.66
2021-03-08 06:51:39 +01:00
dependabot[bot]
a9c114d301 Bump mkdocs-material from 7.0.3 to 7.0.5
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.0.3 to 7.0.5.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.0.3...7.0.5)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-08 05:28:27 +00:00
dependabot[bot]
a2b9236082 Bump arrow from 1.0.2 to 1.0.3
Bumps [arrow](https://github.com/arrow-py/arrow) from 1.0.2 to 1.0.3.
- [Release notes](https://github.com/arrow-py/arrow/releases)
- [Changelog](https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/arrow-py/arrow/compare/1.0.2...1.0.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-08 05:28:23 +00:00
dependabot[bot]
1f314f7d45 Bump ccxt from 1.42.47 to 1.42.66
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.42.47 to 1.42.66.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.42.47...1.42.66)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-08 05:28:15 +00:00
dependabot[bot]
46965b1a2c Bump coveralls from 3.0.0 to 3.0.1
Bumps [coveralls](https://github.com/TheKevJames/coveralls-python) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/TheKevJames/coveralls-python/releases)
- [Changelog](https://github.com/TheKevJames/coveralls-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TheKevJames/coveralls-python/compare/3.0.0...3.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-08 05:28:11 +00:00
Matthias
0b81b58d28 Use pandas.values.tolist instead of itertuples
speeds up backtesting
closes #4494
2021-03-07 11:28:54 +01:00
Matthias
02d7dc4780 Increase cache size to be large enough to hold all pairs
closes #4483
2021-03-06 19:55:02 +01:00
Matthias
b515609d73 Merge pull request #4490 from Th0masL/add_trade_id
Add the trade ID to Telegram Buy/Sell/Cancel messages
2021-03-06 15:40:34 +01:00
Th0masL
ad0e60b5b6 Add trade_id to Cancel messages and reduced lines length 2021-03-06 15:07:47 +02:00
Matthias
eed8c94dd9 Merge pull request #4488 from patrick310/patch-1
Add strategy name to HyperOpt results filename
2021-03-06 13:48:12 +01:00
Matthias
28109846d5 Merge pull request #4489 from freqtrade/forcebuy_ordertype
forcebuy ordertype
2021-03-06 13:37:46 +01:00
Th0masL
2472f52874 Add trade_id to tests 2021-03-06 01:07:37 +02:00
Th0masL
03b89e7f78 Add trade_id in Telegram messages 2021-03-06 00:04:12 +02:00
Matthias
a405d578da Introduce forcebuy ordertype to allow specifiying a different ordertype for forcebuy / forcesells 2021-03-05 20:22:04 +01:00
Patrick Weber
4532222010 Fixed line length in HyperOpt for new name
Fixed line length errors and multiple f strings to facilitate strategy being added in the name
2021-03-05 13:16:49 -06:00
Matthias
5196306407 Remove deprecated profit return value 2021-03-05 20:03:49 +01:00
Patrick Weber
345f7404e9 Add strategy name to HyperOpt results filename
This just extends the HyperOpt result filename by adding the strategy name. This allows analysis of HyperOpt results folder with no additional necessary context. An alternative idea would be to expand the result dict, but the additional static copies are non value added.
2021-03-05 12:56:11 -06:00
Matthias
a39e83dbd4 Merge pull request #4482 from raoulbuzziol/develop
added "Median profit" column to hyperopt -> export-csv
2021-03-05 19:37:21 +01:00
Matthias
731ab5d2a7 Fix too long line errors 2021-03-05 19:22:57 +01:00
Matthias
bc05d03126 Make best / worst day absolute 2021-03-05 19:21:09 +01:00
Matthias
8c371ace32 Merge pull request #4478 from JoeSchr/docs/add-custom_info-examples
Documentation: Add examples how to use dataframe with "custom_info"
2021-03-05 07:24:50 +01:00
JoeSchr
dfeafc2204 Update docs/strategy-customization.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-03-04 20:05:27 +01:00
JoeSchr
161a4656d5 Update docs/strategy-advanced.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-03-04 20:05:21 +01:00
Joe Schr
1304918a29 fix(docs/strategy-advanced/custom_info-storage/example): only add to "custom_info" in backtesting and hyperopt 2021-03-04 20:03:43 +01:00
Joe Schr
900deb663a fix(docs/strategy-advanced/custom_stoploss/example): check if "pair" exists in "custom_info" before requesting 2021-03-04 20:03:43 +01:00
Joe Schr
c56b9cd751 fix(docs/strategy-advanced): add warnings 2021-03-04 20:03:43 +01:00
Joe Schr
a6ef354a5f fix(docs/strategy-advanced): use get_analyzed_dataframe() instead of custom_info.iloc 2021-03-04 20:03:43 +01:00
Joe Schr
22a558e331 fix(docs/strategy-advanced): fix link to custom_info storage 2021-03-04 20:03:42 +01:00
Joe Schr
1a02a146a1 feature(docs/strategy-advanced/custom_info-storage/example): add ATR column calculation 2021-03-04 20:03:42 +01:00
Joe Schr
4064f856d1 fix(docs/strategy-customization): add "hyperopt" to runmode check for custom_info in custom_stoploss example 2021-03-04 20:03:42 +01:00
Joe Schr
b52698197b refactor(docs/strategy-advanced): extract "Storing information" section from strategy-customization.md 2021-03-04 20:03:42 +01:00
Joe Schr
d05acc30fa fix(docs/strategy-customization): remove superflous prints from example code 2021-03-04 20:03:42 +01:00
Joe Schr
32f35fcd90 fix(docs/strategy-customization): "custom_stoploss indicator" example need to check for RUN_MODE 2021-03-04 20:03:42 +01:00
Joe Schr
c5900bbd38 feature(docs/strategy-customization): add example "Custom stoploss using an indicator from dataframe" 2021-03-04 20:03:42 +01:00
Joe Schr
cc4e84bb70 feature(docs/strategy-customization): add example how to store indicator with DatetimeIndex into custom_info 2021-03-04 20:03:42 +01:00
Joe Schr
5cf3194fab chore(docs/strategy-customization): clean up left over trailing whitespaces 2021-03-04 20:03:42 +01:00
Joe Schr
d5993db064 refactor(docs/strategy-customization): change variable name for better readability
`cust_info` -> `custom_info`
2021-03-04 20:03:42 +01:00
raoulus
0968ecc1af added "Median profit" column to hyperopt -> export-csv 2021-03-04 17:27:04 +01:00
Matthias
078b77d41b Fix crash when using unlimited stake and no trades are made 2021-03-02 16:12:22 +01:00
Matthias
0be34291ef Merge pull request #4473 from JoeSchr/backtest_compound_speed
fix: avg_stake_amount should not be `NaN` if df is empty
2021-03-02 13:59:53 +01:00
Joe Schr
55a315be14 fix: avg_stake_amount should not be NaN if df is empty 2021-03-02 13:38:55 +01:00
Matthias
f00c4fc27b Merge pull request #4472 from av1nxsh/develop
Add ping support to rest_client.py
2021-03-02 12:03:02 +01:00
av1nxsh
a85e656e8d rest_client.py
optimised with var 'configstatus'
2021-03-02 16:16:20 +05:30
av1nxsh
218d22ed52 rest_client.py
updated for connection error case
2021-03-02 15:45:16 +05:30
Matthias
6eb253c31e Merge pull request #4469 from freqtrade/rpc/locks
Add RPC methods to remove locks
2021-03-02 10:41:08 +01:00
av1nxsh
95c635091e rest_client.py
fixed operator
2021-03-02 14:57:05 +05:30
av1nxsh
82bf65f696 rest_client.py
flake8 issues
2021-03-02 14:49:33 +05:30
av1nxsh
4fe2e542b4 rest_client.py
removing tab
2021-03-02 14:25:37 +05:30
av1nxsh
7c35d107ab rest_client.py
first
2021-03-02 14:24:00 +05:30
Matthias
4bb6a27745 Don't catch errors that can't happen 2021-03-02 06:59:58 +01:00
Matthias
007ac7abb5 Add telegram pair unlocking 2021-03-01 20:09:40 +01:00
Matthias
6640156ac7 Support deleting locks via API 2021-03-01 19:50:39 +01:00
Matthias
4e51364057 Add warning about sandboxes
closes #4468
2021-03-01 19:12:02 +01:00
Matthias
7dc77d0af6 Merge pull request #4463 from freqtrade/dependabot/pip/develop/mkdocs-material-7.0.3
Bump mkdocs-material from 6.2.8 to 7.0.3
2021-03-01 09:48:08 +01:00
Matthias
64ef7becc7 Update styles to work with new mkdocs version 2021-03-01 09:35:35 +01:00
Matthias
6eef6d41bc Merge pull request #4465 from freqtrade/dependabot/pip/develop/arrow-1.0.2
Bump arrow from 0.17.0 to 1.0.2
2021-03-01 09:30:11 +01:00
Matthias
2083cf6ddf Fix mypy errors introduced by Arrow update 2021-03-01 08:57:57 +01:00
Matthias
0ebefdfeb6 Merge pull request #4464 from freqtrade/dependabot/pip/develop/ccxt-1.42.47
Bump ccxt from 1.42.19 to 1.42.47
2021-03-01 08:19:17 +01:00
Matthias
3d65ba2dcb Add rpc method to delete locks 2021-03-01 07:51:33 +01:00
Matthias
bba9b9e819 Don't use __root__ directly for api response 2021-03-01 07:08:44 +01:00
dependabot[bot]
4537a48988 Bump arrow from 0.17.0 to 1.0.2
Bumps [arrow](https://github.com/arrow-py/arrow) from 0.17.0 to 1.0.2.
- [Release notes](https://github.com/arrow-py/arrow/releases)
- [Changelog](https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/arrow-py/arrow/compare/0.17.0...1.0.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-01 05:32:17 +00:00
dependabot[bot]
d0fd3c289c Bump ccxt from 1.42.19 to 1.42.47
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.42.19 to 1.42.47.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.42.19...1.42.47)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-01 05:32:14 +00:00
dependabot[bot]
00747a3bc3 Bump mkdocs-material from 6.2.8 to 7.0.3
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 6.2.8 to 7.0.3.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/6.2.8...7.0.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-01 05:31:43 +00:00
Matthias
4b689f5b88 Merge pull request #4420 from freqtrade/dependabot/pip/develop/mypy-0.812
Bump mypy from 0.790 to 0.812
2021-02-28 15:30:44 +01:00
Matthias
aba034ff40 Fix mypy problem after mypy 0.800 upgrade 2021-02-28 11:04:30 +01:00
dependabot[bot]
94cab4ed71 Bump mypy from 0.790 to 0.812
Bumps [mypy](https://github.com/python/mypy) from 0.790 to 0.812.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v0.790...v0.812)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-28 11:04:30 +01:00
Matthias
54ccbd9370 Merge pull request #4391 from squat0001/develop
Add dust level to balance command in telegram
2021-02-28 10:36:44 +01:00
Matthias
a13dc3cdde Use sensible defaults for balance_dust_level 2021-02-28 09:57:52 +01:00
Matthias
9cb37409fd Explicitly convert starting-balance to float 2021-02-28 09:56:29 +01:00
Florian Reitmeir
0895407811 add balance_dust_level parameter to make telegram less chatty 2021-02-28 08:51:32 +01:00
Matthias
05f057fe72 Stringify favicon path
potentially closes #4459
2021-02-28 08:48:28 +01:00
Matthias
bc0efe5baa Merge pull request #4457 from JoeSchr/patch-4
Fix: custom_stoploss returns typo
2021-02-28 08:36:21 +01:00
JoeSchr
e791ff6042 Fix: custom_stoploss returns typo
Afaik it should return -0.07 for 7% instead of -0.7.

As a side note, really interesting would also be an example for greater than 100% profits. especially when trailing stoploss, like
* Once profit is > 200% - stoploss will be set to 150%.

I assume it could be as simple as
```py
if current_profit > 2:
            return (-1.50 + current_profit)
````
to achieve it

But I'm not quite confident, if the bot can handle stuff smaller than `-1`, since `1` and `-1` seem to have some special meaning and are often used to disable stoploss etc.
2021-02-27 23:28:26 +01:00
Matthias
d9d5617432 UPdate backtesting doc for total profit calc 2021-02-27 20:26:13 +01:00
Matthias
b2e9295d7f Small stylistic fixes 2021-02-27 19:57:42 +01:00
Matthias
6018a05343 Improve backtest documentation 2021-02-27 10:45:22 +01:00
Matthias
324b9dbdff Simplify wallet code 2021-02-27 10:33:25 +01:00
Matthias
f65092459a Fix optimize_reports test 2021-02-27 10:14:25 +01:00
Matthias
fb489c11c9 Improve test-coverage of pairlocks 2021-02-27 10:07:02 +01:00
Matthias
f5bb5f56f1 Update documentation with backtesting compounding possibilities 2021-02-27 09:33:00 +01:00
Matthias
98f3142b30 Improve handling of backtesting params 2021-02-27 09:33:00 +01:00
Matthias
86f9409fd2 fix --stake-amount parameter 2021-02-27 09:33:00 +01:00
Matthias
d3fb473e57 Improve backtesting documentation 2021-02-27 09:33:00 +01:00
Matthias
fc256749af Add test for backtesting _enter_trade 2021-02-27 09:33:00 +01:00
Matthias
60db6ccf45 Add test for subclassing 2021-02-27 09:33:00 +01:00
Matthias
53a57f2c81 Change some types
Fix types of new model object
2021-02-27 09:33:00 +01:00
Matthias
03eb23a4ce 2 levels of Trade models, one with and one without sqlalchemy
Fixes a performance issue when backtesting with sqlalchemy, as that
uses descriptors for all properties.
2021-02-27 09:33:00 +01:00
Matthias
394a6bbf2a Fix some type errors 2021-02-27 09:33:00 +01:00
Matthias
52acacbed5 Check min-trade-stake in backtesting 2021-02-27 09:33:00 +01:00
Matthias
f04f07299c Improve backtesting metrics 2021-02-27 09:33:00 +01:00
Matthias
7913166453 Improve performance by updating wallets only when necessary 2021-02-27 09:33:00 +01:00
Matthias
37d7d2afd5 Wallets should not recalculate close_profit for closed trades 2021-02-27 09:33:00 +01:00
Matthias
f367375e5b ABS drawdown should show wallet high and low values 2021-02-27 09:33:00 +01:00
Matthias
aed23d55c2 Add starting balance to profit cumsum calculation 2021-02-27 09:33:00 +01:00
Matthias
0d2f877e77 Use absolute drawdown calc 2021-02-27 09:32:59 +01:00
Matthias
74fc4bdab5 Shorten debug log 2021-02-27 09:32:59 +01:00
Matthias
72f21fc5ec Add trade-volume metric 2021-02-27 09:32:59 +01:00
Matthias
35e6a9ab3a Backtest-reports should calculate total gains based on starting capital 2021-02-27 09:32:59 +01:00
Matthias
8d61a26382 Allow dynamic stake for backtesting and hyperopt 2021-02-27 09:32:59 +01:00
Matthias
e4abe902fc Enable compounding for backtesting 2021-02-27 09:32:59 +01:00
Matthias
959ff99046 Add Dry-run wallet CLI option 2021-02-27 09:32:59 +01:00
Matthias
0754a7a78f total_open_trades_stake should support no-db mode 2021-02-27 09:32:59 +01:00
Matthias
0faa6f84dc Improve Wallet logging disabling for backtesting 2021-02-27 09:32:59 +01:00
Matthias
20455de2a9 Small enhancements to docs 2021-02-27 09:32:59 +01:00
Matthias
081b9be45c use get_all_locks to get locks for backtest result 2021-02-27 09:32:59 +01:00
Matthias
e32b2097f0 Use timestamp in UTC timezone for ROI comparisons 2021-02-27 09:32:59 +01:00
Matthias
712d503e6c Use sell-reason value in backtesting, not the enum object 2021-02-27 09:32:59 +01:00
Matthias
b5177eadab Extract close method for exchange 2021-02-27 09:32:59 +01:00
Matthias
4ce4eadc23 remove only ccxt objects when hyperopting 2021-02-27 09:32:59 +01:00
Matthias
9361aa1c95 Add wallets to backtesting 2021-02-27 09:32:59 +01:00
Matthias
f0a154692d Wallets should use trade_proxy 2021-02-27 09:32:59 +01:00
Matthias
9968e4e49c Add warning about downloading data from kraken
closes #4449
2021-02-27 08:26:13 +01:00
Matthias
b92fb6d3d0 Merge pull request #4452 from JoeSchr/patch-3
Fix(strategy/interface.py): comment typo
2021-02-27 08:16:50 +01:00
JoeSchr
642e3be7c5 Fix(strategy/interface.py): comment typo
`advice_buy` -> `advise_buy`
2021-02-26 23:17:59 +01:00
Matthias
0bb80d1442 Merge pull request #4446 from Xanders/patch-1
Webhook JSON format
2021-02-26 20:03:07 +01:00
Matthias
7d87c44c35 Merge pull request #4436 from Th0masL/forcesell_type
Allow changing the order_type for forcesell
2021-02-26 19:42:00 +01:00
Xanders
f0391d3761 Better JSON webhook result description 2021-02-26 21:40:45 +03:00
Xanders
efa50be145 Fix blank lines rule at test_rpc_webhook.py 2021-02-26 21:32:41 +03:00
Xanders
7281e794b4 Fix too long line at webhook.py 2021-02-26 21:31:33 +03:00
Matthias
9a926c155d Add forcesell entry to full config 2021-02-26 19:30:42 +01:00
Xanders
984e70d4e8 Add webhook result example to documentation 2021-02-26 21:15:40 +03:00
Xanders
52641aaa31 Add test for webhook JSON format 2021-02-26 18:12:10 +03:00
Xanders
a2cd3ed5ba Add documentation for JSON webhook format 2021-02-26 17:59:38 +03:00
Xanders
fc69240e6d Add JSON-encoded webhooks 2021-02-26 17:46:23 +03:00
Matthias
cc12919ee3 Merge pull request #4445 from seguri/patch-1
Fix #4441
2021-02-26 11:28:50 +01:00
Marco Seguri
51d73a5889 Fix #4441 2021-02-26 11:11:27 +01:00
Matthias
55015c4aa3 Merge pull request #4444 from freqtrade/dependabot/pip/aiohttp-3.7.4
Bump aiohttp from 3.7.3 to 3.7.4
2021-02-26 08:31:11 +01:00
dependabot[bot]
622ff771ec Bump aiohttp from 3.7.3 to 3.7.4
Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.7.3 to 3.7.4.
- [Release notes](https://github.com/aio-libs/aiohttp/releases)
- [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst)
- [Commits](https://github.com/aio-libs/aiohttp/compare/v3.7.3...v3.7.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-26 07:21:04 +00:00
Matthias
1b3b389109 Remove binanceje, add ftx to config selector
closes #4441
2021-02-26 07:58:15 +01:00
Matthias
c4979fd87f Add note to check configuration settings to docker quickstart
part of #4441
2021-02-26 06:57:51 +01:00
Matthias
d877e3c1df Fix failing CI due to unavailable pairs 2021-02-26 06:51:32 +01:00
Matthias
6d38a2e659 Small enhancements to docs 2021-02-25 19:57:09 +01:00
Matthias
262394e112 Add psutils to support OOM Gracefull shutdown
closes #4436, #4439 #3990
2021-02-25 19:24:30 +01:00
Th0masL
006f31129e Reduced length of the line 2021-02-25 05:23:24 +02:00
Th0masL
117f0064ed Allow changing the order_type for forcesell 2021-02-25 05:02:08 +02:00
Matthias
38b96f071f Merge pull request #4434 from freqtrade/new_release
New release 2020.2
2021-02-24 19:27:43 +01:00
Matthias
1f30c3d7f1 Refresh slack link 2021-02-24 06:46:32 +01:00
Matthias
834f00f580 Refresh slack link 2021-02-24 06:46:07 +01:00
Matthias
aea8f05d10 Version bump 2021.2 2021-02-24 06:39:59 +01:00
Matthias
cae67b02df Merge branch 'stable' into new_release 2021-02-24 06:39:51 +01:00
Matthias
d6d8678fd6 Fix missleading FAQ information 2021-02-24 06:34:10 +01:00
Matthias
133562ba06 Merge pull request #4428 from freqtrade/dependabot/pip/develop/ccxt-1.42.19
Bump ccxt from 1.41.90 to 1.42.19
2021-02-22 22:01:38 +01:00
Matthias
e8794e8b8c Merge pull request #4429 from freqtrade/dependabot/pip/develop/tabulate-0.8.9
Bump tabulate from 0.8.8 to 0.8.9
2021-02-22 21:59:44 +01:00
dependabot[bot]
3612c786b5 Bump tabulate from 0.8.8 to 0.8.9
Bumps [tabulate](https://github.com/astanin/python-tabulate) from 0.8.8 to 0.8.9.
- [Release notes](https://github.com/astanin/python-tabulate/releases)
- [Changelog](https://github.com/astanin/python-tabulate/blob/master/CHANGELOG)
- [Commits](https://github.com/astanin/python-tabulate/compare/v0.8.8...v0.8.9)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-22 19:06:39 +00:00
dependabot[bot]
a0fa1e84fc Bump ccxt from 1.41.90 to 1.42.19
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.41.90 to 1.42.19.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.41.90...1.42.19)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-22 19:06:36 +00:00
Matthias
c71ecd3680 Fix wrong pair-content in strategy-analysis notebook and documentation
closes #4399
2021-02-22 20:04:36 +01:00
Matthias
2b5f1ff256 Merge pull request #4426 from freqtrade/fix/4405
Don't fail API calls when live price is not available
2021-02-22 14:09:20 +01:00
Matthias
228e51b60b Fix #4405 2021-02-22 13:34:52 +01:00
Matthias
5e4730b73b Add test confirming #4405 2021-02-22 11:44:39 +01:00
Matthias
62885166a9 Merge pull request #4424 from freqtrade/dependabot/docker/python-3.9.2-slim-buster
Bump python from 3.9.1-slim-buster to 3.9.2-slim-buster
2021-02-22 08:43:54 +01:00
Matthias
21933a55f7 Merge pull request #4423 from freqtrade/dependabot/pip/develop/cryptography-3.4.6
Bump cryptography from 3.4.5 to 3.4.6
2021-02-22 08:23:19 +01:00
Matthias
8a62bfa0e5 armhf image should not be updated to python3.9 2021-02-22 08:20:45 +01:00
Matthias
8ffeafd2c3 Merge pull request #4422 from freqtrade/dependabot/pip/develop/scipy-1.6.1
Bump scipy from 1.6.0 to 1.6.1
2021-02-22 08:19:12 +01:00
Matthias
e34d8cba0e Merge pull request #4421 from freqtrade/dependabot/pip/develop/uvicorn-0.13.4
Bump uvicorn from 0.13.3 to 0.13.4
2021-02-22 08:02:16 +01:00
dependabot[bot]
d8c7e5ce8d Bump python from 3.9.1-slim-buster to 3.9.2-slim-buster
Bumps python from 3.9.1-slim-buster to 3.9.2-slim-buster.

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-22 05:56:25 +00:00
Matthias
6feabd51a2 Merge pull request #4418 from freqtrade/dependabot/pip/develop/python-telegram-bot-13.3
Bump python-telegram-bot from 13.2 to 13.3
2021-02-22 06:48:25 +01:00
Matthias
d7cc86735b Merge pull request #4417 from freqtrade/dependabot/pip/develop/tabulate-0.8.8
Bump tabulate from 0.8.7 to 0.8.8
2021-02-22 06:47:57 +01:00
dependabot[bot]
85f12f8c28 Bump cryptography from 3.4.5 to 3.4.6
Bumps [cryptography](https://github.com/pyca/cryptography) from 3.4.5 to 3.4.6.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/3.4.5...3.4.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-22 05:27:57 +00:00
dependabot[bot]
dea04c6452 Bump scipy from 1.6.0 to 1.6.1
Bumps [scipy](https://github.com/scipy/scipy) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.6.0...v1.6.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-22 05:27:54 +00:00
dependabot[bot]
932aabd012 Bump uvicorn from 0.13.3 to 0.13.4
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.13.3 to 0.13.4.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.13.3...0.13.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-22 05:27:51 +00:00
dependabot[bot]
8c398acc09 Bump python-telegram-bot from 13.2 to 13.3
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 13.2 to 13.3.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v13.2...v13.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-22 05:27:42 +00:00
dependabot[bot]
ab74c6e771 Bump tabulate from 0.8.7 to 0.8.8
Bumps [tabulate](https://github.com/astanin/python-tabulate) from 0.8.7 to 0.8.8.
- [Release notes](https://github.com/astanin/python-tabulate/releases)
- [Changelog](https://github.com/astanin/python-tabulate/blob/master/CHANGELOG)
- [Commits](https://github.com/astanin/python-tabulate/compare/v0.8.7...v0.8.8)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-22 05:27:41 +00:00
Matthias
95fcb1eb27 Merge pull request #4415 from The-smooth-operator/develop
Fix example in storing-information docs
2021-02-21 19:34:11 +01:00
Alberto del Barrio
188d7aaf8c Fix example in storing-information docs 2021-02-21 18:50:11 +01:00
Matthias
3629892fc3 Stoploss-guard should use the trade_limit or more
fix #4404
2021-02-20 19:38:44 +01:00
Matthias
245e39e523 dry-run should be a bool, not a string 2021-02-20 19:17:26 +01:00
Matthias
4e5f8478b1 Merge pull request #4394 from JoeSchr/develop
fix(doc/plotting): misplaced comma in example code
2021-02-18 17:43:53 +01:00
JoeSchr
c9688f1c89 fix(doc/plotting): misplaced comma in example code 2021-02-18 17:30:29 +01:00
Matthias
2b0d2070d0 Avoid crash with /delete
When a trade is deleted between querying the database and actually
handling the trade.

closes #4326
2021-02-18 12:49:14 +01:00
Matthias
327c23618f Improve documentation for get_analyzed_dataframe 2021-02-18 09:30:35 +01:00
Matthias
b5a9ce2894 Download data in the right format as well ...
closes #4393
2021-02-18 09:26:35 +01:00
Matthias
87dc1d3955 Explicitly push tag and tag_plot images 2021-02-17 20:52:25 +01:00
Matthias
fedbb5c0c4 Remove last flask occurance from setup.py
fixes #4390
2021-02-17 20:47:11 +01:00
Matthias
11b20d6932 Add config to hyperopt_loss_function documentation 2021-02-17 07:04:29 +01:00
Matthias
eff0d46ea1 Merge pull request #4375 from flomerz/pass_processed_data
pass data and config to loss function
2021-02-16 20:06:50 +01:00
Matthias
009a447d8a Adjust documentation for new parameter in loss functions 2021-02-16 19:51:09 +01:00
Florian Merz
3e06cd8b3a pass data and config to loss function 2021-02-16 10:11:33 +01:00
Matthias
a97a5a7ca8 Merge pull request #4372 from freqtrade/dependabot/pip/develop/cryptography-3.4.5
Bump cryptography from 3.3.2 to 3.4.5
2021-02-15 14:24:37 +01:00
dependabot[bot]
bc188907b8 Bump cryptography from 3.3.2 to 3.4.5
Bumps [cryptography](https://github.com/pyca/cryptography) from 3.3.2 to 3.4.5.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/3.3.2...3.4.5)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-15 08:46:46 +00:00
Matthias
eab1d298bc Merge pull request #4374 from freqtrade/dependabot/pip/develop/ccxt-1.41.90
Bump ccxt from 1.41.70 to 1.41.90
2021-02-15 09:45:44 +01:00
dependabot[bot]
5f25139348 Bump ccxt from 1.41.70 to 1.41.90
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.41.70 to 1.41.90.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.41.70...1.41.90)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-15 08:18:04 +00:00
Matthias
1a3e7191ed Merge pull request #4116 from squat0001/develop-squat
Develop squat
2021-02-15 07:15:11 +01:00
Matthias
833e2768e6 Merge pull request #4371 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.16
Bump prompt-toolkit from 3.0.14 to 3.0.16
2021-02-15 06:59:37 +01:00
Matthias
86fdc3016c Merge pull request #4369 from freqtrade/dependabot/pip/develop/joblib-1.0.1
Bump joblib from 1.0.0 to 1.0.1
2021-02-15 06:46:49 +01:00
Matthias
4503fd0790 Merge pull request #4370 from freqtrade/dependabot/pip/develop/pandas-1.2.2
Bump pandas from 1.2.1 to 1.2.2
2021-02-15 06:45:29 +01:00
dependabot[bot]
dbef5425c5 Bump prompt-toolkit from 3.0.14 to 3.0.16
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.14 to 3.0.16.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.14...3.0.16)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-15 05:27:12 +00:00
dependabot[bot]
d08572ea0d Bump pandas from 1.2.1 to 1.2.2
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/master/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.2.1...v1.2.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-15 05:27:05 +00:00
dependabot[bot]
44cb206688 Bump joblib from 1.0.0 to 1.0.1
Bumps [joblib](https://github.com/joblib/joblib) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/joblib/joblib/releases)
- [Changelog](https://github.com/joblib/joblib/blob/master/CHANGES.rst)
- [Commits](https://github.com/joblib/joblib/compare/1.0.0...1.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-15 05:27:01 +00:00
Matthias
1a166f639d Add test for calcuate_csum 2021-02-14 19:44:13 +01:00
Florian Reitmeir
5c263c7ffd add backtesting results abs profit min/abs profit max, to get a better view if a strategy has a enough money to succeed 2021-02-14 19:41:12 +01:00
Matthias
f82dd55153 Merge pull request #4367 from freqtrade/fix/4181
ohlcv_candle_limit per timeframe
2021-02-14 19:32:05 +01:00
Matthias
ee74bc1f52 timeframe is mandatory, no need to use .get() 2021-02-14 11:01:12 +01:00
Matthias
ffca09bbcb Test ohlcv_candle_limit explicitly 2021-02-14 10:38:49 +01:00
Matthias
da89838b5c Set bittrex limits as returned by the exchange
closes #4181
2021-02-14 10:32:55 +01:00
Matthias
5622bb3247 Make candle_limit optionally timeframe dependent 2021-02-14 10:29:45 +01:00
Matthias
7ecf8f8b80 Cleanup candle_limit usage 2021-02-14 10:08:05 +01:00
Matthias
10a11bda34 Document bitvavo as community tested
closes #4360
2021-02-14 09:42:25 +01:00
Matthias
6f77ec063e Fix cookieError on python<3.8
Only occurs in combination with api-server enabled,
due to some hot-fixing starlette does.
Since we load starlette at a later point, we need to replicate
starlette's behaviour for now, so sameSite cookies don't create a
problem.

closes #4356
2021-02-14 07:22:08 +01:00
Matthias
73d91275c4 Reset sell_order_status if a new sell-order is placed
closes #4365
2021-02-14 07:11:07 +01:00
Eko Aprili Trisno
af98e025d1 Merge branch 'develop' into patch-1 2021-02-14 02:12:38 +07:00
Eko Aprili Trisno
ba32708ed4 Update telegram.py 2021-02-14 01:40:04 +07:00
Matthias
4b5f4aa1c1 Merge pull request #4361 from freqtrade/format_currencies
Format currencies
2021-02-13 19:23:23 +01:00
Matthias
d4c8be915c Use fstring where possible 2021-02-13 16:11:49 +01:00
Matthias
e7acee7904 Improve coin value output by rounding coin specific 2021-02-13 16:05:56 +01:00
Matthias
072abde9b7 Introduce round_coin_value to simplify coin rounding 2021-02-13 16:05:35 +01:00
Matthias
dd23f6bcbc Fix type for getting pairs 2021-02-11 20:29:31 +01:00
Matthias
843fb204e9 Fix problem with inf values returned from dataframe for api methods 2021-02-11 20:21:31 +01:00
Matthias
aa79574c0c Position-size should NEVER be over available_capital
Part of #4353
2021-02-11 17:09:31 +01:00
Matthias
3110d2dbb1 Add small test cases 2021-02-09 20:09:10 +01:00
Matthias
86fa75b286 Pin version of cryptography 2021-02-09 06:55:36 +01:00
Matthias
7ee149da5d Improve plotting errorhandling
closes #4327
2021-02-08 20:08:32 +01:00
Matthias
427d762746 Improve tests for cancel_order to be more realistic 2021-02-08 19:37:24 +01:00
Matthias
c5ab3a80a5 Check if order is a dict before parsing
closes #4331
2021-02-08 19:35:22 +01:00
Matthias
de727645ab FIx random test failure if certain files exist 2021-02-08 19:21:33 +01:00
Matthias
afaac92685 Merge pull request #4337 from freqtrade/dependabot/pip/develop/python-telegram-bot-13.2
Bump python-telegram-bot from 13.1 to 13.2
2021-02-08 09:46:10 +01:00
Matthias
48e203f6a4 Merge pull request #4338 from freqtrade/dependabot/pip/develop/ccxt-1.41.70
Bump ccxt from 1.41.62 to 1.41.70
2021-02-08 09:45:49 +01:00
Matthias
f999366bf5 Merge pull request #4333 from freqtrade/dependabot/pip/develop/py-find-1st-1.1.5
Bump py-find-1st from 1.1.4 to 1.1.5
2021-02-08 09:45:20 +01:00
dependabot[bot]
c412f8df62 Bump python-telegram-bot from 13.1 to 13.2
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 13.1 to 13.2.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v13.1...v13.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-08 08:28:11 +00:00
dependabot[bot]
12168cbf01 Bump ccxt from 1.41.62 to 1.41.70
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.41.62 to 1.41.70.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.41.62...1.41.70)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-08 08:26:18 +00:00
Matthias
0850145b3d Merge pull request #4334 from freqtrade/dependabot/pip/develop/numpy-1.20.1
Bump numpy from 1.20.0 to 1.20.1
2021-02-08 08:22:30 +01:00
Matthias
9821d3a554 Merge pull request #4335 from freqtrade/dependabot/pip/develop/sqlalchemy-1.3.23
Bump sqlalchemy from 1.3.22 to 1.3.23
2021-02-08 08:21:46 +01:00
Matthias
d681565756 Merge pull request #4336 from freqtrade/dependabot/pip/develop/mkdocs-material-6.2.8
Bump mkdocs-material from 6.2.7 to 6.2.8
2021-02-08 08:21:22 +01:00
dependabot[bot]
22d447b3f5 Bump mkdocs-material from 6.2.7 to 6.2.8
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 6.2.7 to 6.2.8.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/6.2.7...6.2.8)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-08 05:27:46 +00:00
dependabot[bot]
676cd7bb55 Bump sqlalchemy from 1.3.22 to 1.3.23
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.3.22 to 1.3.23.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-08 05:27:45 +00:00
dependabot[bot]
dd7f9181c5 Bump numpy from 1.20.0 to 1.20.1
Bumps [numpy](https://github.com/numpy/numpy) from 1.20.0 to 1.20.1.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/master/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.20.0...v1.20.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-08 05:27:44 +00:00
dependabot[bot]
d1bb46bed0 Bump py-find-1st from 1.1.4 to 1.1.5
Bumps [py-find-1st](https://github.com/roebel/py_find_1st) from 1.1.4 to 1.1.5.
- [Release notes](https://github.com/roebel/py_find_1st/releases)
- [Commits](https://github.com/roebel/py_find_1st/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-08 05:27:42 +00:00
Matthias
f6cdc6d9a2 Merge pull request #4325 from freqtrade/refresh_order_skip
Refresh order skip
2021-02-07 08:23:22 +01:00
Matthias
4cb67f140a Merge pull request #4323 from eselskas/patch-2
Fix sample strategy documentation link
2021-02-06 20:17:20 +01:00
Edvinas Selskas
694f55c0a5 Use suggested link 2021-02-06 14:43:50 +00:00
Matthias
d5cf837c0f Parse regular cancel_order call to update orders table 2021-02-06 09:23:10 +01:00
Matthias
729e773353 Merge pull request #4319 from JoeSchr/patch-2
Update data-download.md
2021-02-06 09:11:49 +01:00
Edvinas Selskas
bc8fda8d63 Update sample_strategy.py
Fix test
2021-02-06 03:13:53 +00:00
Edvinas Selskas
0a43988f3f Fix sample strategy documentation link
Noticed that the current link is dead. I think this would be the most appropriate link in this case.
2021-02-06 03:02:37 +00:00
Matthias
aec22c5c3d introduce skip_open_order_update parameter
skips startup-open-order-update
closes #4128
2021-02-05 20:17:53 +01:00
Matthias
86a97988c0 Improve wording 2021-02-05 20:09:13 +01:00
Matthias
0806202d47 ccxt version bump to 1.41.62 2021-02-05 20:02:55 +01:00
Matthias
2c71b3b118 Merge pull request #4309 from freqtrade/extract_stake_amount
Move get_trade_stake_amount to wallets
2021-02-05 19:47:30 +01:00
Matthias
545a94f360 Merge pull request #4321 from JoeSchr/fix/lint-binance-example-config
chore(lint): lint binance example config
2021-02-05 14:58:24 +01:00
Joe Schr
a816fb1245 chore(lint): lint binance example config 2021-02-05 12:43:19 +01:00
Matthias
1310a7b547 Fix bug with wrong conversion for BTCST/BTC
This can happen if a pair starts with the stake-currency

closes #4307
2021-02-04 19:58:44 +01:00
Matthias
17e1cfbd43 Merge pull request #4313 from raoulbuzziol/develop
setting resize_keyboard=True for slightly smaller Telegram buttons
2021-02-04 19:42:45 +01:00
JoeSchr
428d2af312 add sudo to chown
that was the whole point d'oh
2021-02-04 19:39:25 +01:00
JoeSchr
5165357f40 Update data-download.md
Fix wrong path
Add section about fixing wrong docker permission, if user_data is created by docker, it's permission are set to `root`
2021-02-04 19:36:04 +01:00
Matthias
19e43e2e9d Merge pull request #4314 from JoeSchr/patch-1
Update README.md
2021-02-04 17:34:23 +01:00
JoeSchr
5cd8745997 Update README.md
Typo playing -> paying
2021-02-04 16:26:03 +01:00
raoulus
99b2214d1f setting resize_keyboard=True for slightly smaller Telegram buttons 2021-02-04 15:27:18 +01:00
Matthias
e8e5acc2e2 Fix import in strategy template 2021-02-03 20:15:08 +01:00
Matthias
024849d844 Merge pull request #4285 from freqtrade/ui_deploy
Deploy FreqUI into webserver
2021-02-03 20:09:31 +01:00
Matthias
b8cb39462c Move get_trade_stake_amount to wallets
this way it can be easier used by other functions
2021-02-03 20:00:33 +01:00
Matthias
6c87c49871 Merge pull request #4306 from The-smooth-operator/docs
Fix documentation links pointing to pairlists
2021-02-03 19:30:20 +01:00
Eko Aprili Trisno
54d0ac9d20 Update telegram.py 2021-02-04 01:19:23 +07:00
Eko Aprili Trisno
21d3635e8d Update telegram.py 2021-02-04 01:16:27 +07:00
Eko Aprili Trisno
69d62ef383 Add Refresh / Reload Button on rpc/Telegram 2021-02-04 01:06:52 +07:00
Alberto del Barrio
f36c61e32f Fix documentation links pointing to pairlists 2021-02-03 18:12:48 +01:00
Matthias
caa3e1a7fa Merge pull request #4301 from freqtrade/doc_reorg
Doc reorg
2021-02-03 12:02:05 +01:00
Matthias
de72734076 Merge pull request #4302 from mobrine1/patch-1
#4289 printing json output
2021-02-03 10:13:44 +01:00
mobrine1
06b56544a8 printing json by default now 2021-02-03 03:27:54 -05:00
mobrine1
56569690d9 Update rest_client.py 2021-02-02 15:59:48 -05:00
mobrine1
12bcbf4374 #4289 printing json output
Adding --json flag to print json output
2021-02-02 15:40:33 -05:00
Matthias
cd41d11b85 Merge pull request #4300 from freqtrade/extract_get_min_stake_amount
Extract min stake amount from bot to exchange class
2021-02-02 20:28:35 +01:00
Matthias
43986d3f73 Move Pricing to subpage 2021-02-02 20:26:01 +01:00
Matthias
b41078cc46 Don't include plugin documentation in Configuration page 2021-02-02 20:23:30 +01:00
Matthias
dabe456d65 Improve wording of configuration doc
remove unneeded sections
2021-02-02 20:20:34 +01:00
Matthias
3e3c9e99c7 Move command references to their respective subpages 2021-02-02 20:03:28 +01:00
Matthias
f0532f28cf Small doc-reorg adding "advanced topics" as main header 2021-02-02 20:03:01 +01:00
Matthias
cfd0bb8964 Extract min stake amount from bot to exchange class 2021-02-02 19:47:21 +01:00
Matthias
fa8156b321 Merge pull request #4282 from pan-long/patch-1
Fix a bug when compare sell_profit_offset
2021-02-02 08:22:38 +01:00
Matthias
3d9b4034e6 Use already calculated current_profit for sell_profit_offset comparison 2021-02-02 08:06:19 +01:00
Matthias
a69fde39e5 Merge pull request #4296 from freqtrade/fix/pairlistbug
Fix disappearing pairs pairlist bug
2021-02-01 20:02:50 +01:00
Matthias
a9f1c871dd Add path loading snippet to derived strategies
closes #4279
2021-02-01 19:48:29 +01:00
Matthias
52acf9aaf6 Fix "disappearing pairs" bug
closes #4277
2021-02-01 19:40:31 +01:00
Matthias
130a9b4db3 Add test to call verify_pairlist multiple times 2021-02-01 19:39:55 +01:00
Matthias
55c9489eb2 Downgrade RPI docker-image to 3.7
otherwise piwheels.org does not work at the moment
2021-02-01 15:11:04 +01:00
Matthias
cd5c58fd37 Properly patch exchange for plot_profit test 2021-02-01 12:58:18 +01:00
Matthias
b33534b8f5 Merge pull request #4290 from freqtrade/dependabot/pip/develop/urllib3-1.26.3
Bump urllib3 from 1.26.2 to 1.26.3
2021-02-01 11:01:45 +01:00
Matthias
4facf662de Fix random test-failure caused by un-clean hyperopt shutdown
pytest --random-order-seed=415781
2021-02-01 11:00:55 +01:00
Matthias
fd5468f9cc Merge pull request #4292 from freqtrade/dependabot/pip/develop/pymdown-extensions-8.1.1
Bump pymdown-extensions from 8.1 to 8.1.1
2021-02-01 10:52:47 +01:00
dependabot[bot]
ccdac3d4c3 Bump urllib3 from 1.26.2 to 1.26.3
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.2 to 1.26.3.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/1.26.3/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.2...1.26.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-01 08:50:24 +00:00
dependabot[bot]
7fcf0d5231 Bump pymdown-extensions from 8.1 to 8.1.1
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 8.1 to 8.1.1.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/8.1...8.1.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-01 08:45:31 +00:00
Matthias
dc55c79e41 Merge pull request #4286 from freqtrade/dataload_valueerror
Fix valueerror in case of empty array files
2021-02-01 07:52:05 +01:00
Matthias
ed2ae65ffb Merge pull request #4293 from freqtrade/dependabot/pip/develop/jinja2-2.11.3
Bump jinja2 from 2.11.2 to 2.11.3
2021-02-01 07:48:22 +01:00
Matthias
8e1f3a5196 Merge pull request #4291 from freqtrade/dependabot/pip/develop/pytest-6.2.2
Bump pytest from 6.2.1 to 6.2.2
2021-02-01 07:47:40 +01:00
Matthias
382cd9eaaf Merge pull request #4295 from freqtrade/dependabot/pip/develop/mkdocs-material-6.2.7
Bump mkdocs-material from 6.2.5 to 6.2.7
2021-02-01 07:47:23 +01:00
Matthias
8cf8ef98c4 Merge pull request #4294 from freqtrade/dependabot/pip/develop/ccxt-1.41.35
Bump ccxt from 1.40.99 to 1.41.35
2021-02-01 07:47:06 +01:00
dependabot[bot]
2a5e0920ec Bump mkdocs-material from 6.2.5 to 6.2.7
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 6.2.5 to 6.2.7.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/6.2.5...6.2.7)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-01 05:42:08 +00:00
dependabot[bot]
aa7120f27c Bump ccxt from 1.40.99 to 1.41.35
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.40.99 to 1.41.35.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.40.99...1.41.35)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-01 05:42:06 +00:00
dependabot[bot]
ed1d4f0568 Bump jinja2 from 2.11.2 to 2.11.3
Bumps [jinja2](https://github.com/pallets/jinja) from 2.11.2 to 2.11.3.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/2.11.2...2.11.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-01 05:42:05 +00:00
dependabot[bot]
76312d722a Bump pytest from 6.2.1 to 6.2.2
Bumps [pytest](https://github.com/pytest-dev/pytest) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/6.2.1...6.2.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-01 05:41:53 +00:00
Matthias
2c80388b40 Fix valueerror in case of empty array files 2021-02-01 06:28:49 +01:00
Matthias
06e2bc94c3 Deploy to subdirectory 2021-01-31 16:01:00 +01:00
Matthias
e4a085027b Add test for UI methods 2021-01-31 15:27:00 +01:00
Matthias
28be71806f Install html file as well 2021-01-31 15:13:51 +01:00
Matthias
a87a885ccd Don't use Path object to return fileresponses 2021-01-31 14:54:58 +01:00
Matthias
7b3d99819f Fix bug with not cleaning UI folder 2021-01-31 14:50:54 +01:00
Matthias
944d674eeb Store freqUI version and read it again 2021-01-31 14:50:54 +01:00
Matthias
2af1d2d639 Extract last FreqUI version from api response 2021-01-31 14:50:54 +01:00
Matthias
1df0aa8751 Add ui installation to docker container builds 2021-01-31 14:50:54 +01:00
Matthias
35c2e2556e Document FreqUI usage 2021-01-31 14:50:54 +01:00
Matthias
e928d2991d Add fallback file 2021-01-31 14:50:54 +01:00
Matthias
f05f2c45e8 Allow deleting of UI only 2021-01-31 14:50:54 +01:00
Matthias
ddc99553bd Add test case for get_ui_download_url 2021-01-31 14:50:54 +01:00
Matthias
a1a35115ad Extract get_ui_download_url 2021-01-31 14:50:54 +01:00
Matthias
87ed2d7502 Write some tests for UI Downloading 2021-01-31 14:50:54 +01:00
Matthias
a47616eed4 Add UI installation subcommand 2021-01-31 14:50:54 +01:00
Matthias
27970b424d Add webUI serving to api-server 2021-01-31 14:50:54 +01:00
Matthias
79087ba166 Fix intermitted test failure 2021-01-31 14:50:39 +01:00
Matthias
f288ed1f36 Merge pull request #4284 from freqtrade/windows_ci_error
Version bump numpy 1.20.0
2021-01-31 13:59:36 +01:00
Matthias
5724371a4f Fix types for numpy 1.20.0 upgrade 2021-01-31 11:21:23 +01:00
Matthias
92721db583 Version bump numpy to 1.20.0 2021-01-31 10:51:21 +01:00
Matthias
bc586fe73b Try fix CI 2021-01-31 10:29:43 +01:00
Pan Long
4cc93151c5 Fix a bug when compare sell_profit_offset
It should be comparing the ratio instead of absolut profit.

Also updated the comment.
2021-01-31 12:14:09 +08:00
Matthias
16dad8b6d4 Allow custom_stoploss to cooperate with stoploss on exchange 2021-01-30 20:11:18 +01:00
Matthias
30e5c01cb1 Improve formatting of custom_stoploss docs 2021-01-30 19:59:14 +01:00
Matthias
afdb39d78f Merge pull request #4280 from andre-ac/develop
Fixed virtualenv link
2021-01-30 19:20:13 +01:00
andre-ac
6b63129eb0 Fixed virtualenv link 2021-01-30 15:36:59 +00:00
Matthias
406682c3bb Fix random api failure in slow cases 2021-01-30 10:20:40 +01:00
Matthias
b68ed458b8 Merge pull request #4067 from freqtrade/dependabot/docker/python-3.9.1-slim-buster
Bump python from 3.8.6-slim-buster to 3.9.1-slim-buster
2021-01-30 10:13:32 +01:00
Matthias
5d18289821 Fix name in issue template 2021-01-30 07:17:25 +01:00
Matthias
375f551e5d Merge pull request #4218 from sobeit2020/develop
Conda - installation process : adding and explaining
2021-01-29 20:01:07 +01:00
Matthias
1e6194fa30 Improve wording, fix hirerchial hierarchy 2021-01-29 19:46:45 +01:00
Matthias
d8353bc90e Merge branch 'develop' into pr/sobeit2020/4218 2021-01-29 19:11:19 +01:00
Matthias
ea0ffbae73 use profit_ratio in calculate_cum_profit 2021-01-29 19:06:57 +01:00
Matthias
ad9efd3ac5 Merge pull request #4275 from freqtrade/markets_ref
Cache markets in the exchange object
2021-01-29 16:57:57 +01:00
sobeit2020
b12d0b110e Update installation.md 2021-01-28 23:09:39 +00:00
Matthias
5cdd9dd445 Cache markets in the exchange object 2021-01-28 19:47:32 +01:00
dependabot[bot]
4bb2a00f03 Bump python from 3.8.6-slim-buster to 3.9.1-slim-buster
Bumps python from 3.8.6-slim-buster to 3.9.1-slim-buster.

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-27 18:12:56 +00:00
Matthias
65459086a3 Merge pull request #4268 from freqtrade/backtest_trade_object
Backtest trade object
2021-01-27 19:10:21 +01:00
Matthias
766c786d90 Merge pull request #4273 from freqtrade/new_release
New release 2021.1
2021-01-27 19:02:52 +01:00
sobeit2020
d1d77f56df Update installation.md 2021-01-27 13:38:59 +00:00
sobeit2020
a414d5d75a Update installation.md 2021-01-27 13:25:16 +00:00
sobeit2020
ec2cf7f979 Update installation.md 2021-01-27 13:23:53 +00:00
sobeit2020
5da8a3078b Update installation.md 2021-01-27 13:04:04 +00:00
Matthias
eac98dbbd6 Version bump to 2021.1 2021-01-27 07:29:40 +01:00
Matthias
a9b4d6de33 Check for existance of ask key in ticker
closes #4267
2021-01-26 17:18:55 +01:00
Matthias
4d7f3e570b Add test for spreadfilter division exception 2021-01-26 17:18:51 +01:00
Matthias
5ab8cc56a4 Update docs to also work for postgres 2021-01-26 08:13:43 +01:00
Matthias
9005cd25b8 Merge pull request #4256 from thopd88/patch-2
Fix operator does not exist: boolean = integer
2021-01-26 07:21:39 +01:00
Tho Pham (Alex)
8f529f48da Update freqtrade/freqtradebot.py use is_open.is_(True)
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-01-26 07:38:25 +07:00
sobeit2020
188010329c Update installation.md 2021-01-25 21:22:43 +00:00
sobeit2020
bcc7adb186 Update installation.md 2021-01-25 21:18:38 +00:00
sobeit2020
d848242379 Update installation.md 2021-01-25 21:12:48 +00:00
sobeit2020
39cef2dbe0 Update environment.yml 2021-01-25 20:45:35 +00:00
sobeit2020
4a28fab8a1 Update installation.md 2021-01-25 20:41:55 +00:00
Matthias
91b6c02947 Update download-data --dl-trades sample command 2021-01-25 20:57:05 +01:00
sobeit2020
65e0ba60dc Update installation.md 2021-01-25 19:51:01 +00:00
Matthias
13ad6dd461 Fix documentation 2021-01-25 19:56:40 +01:00
Matthias
c659150d9f Also print trade_duration in seconds to json 2021-01-25 19:42:34 +01:00
Matthias
3a83492999 Merge pull request #4265 from freqtrade/dependabot/pip/develop/ccxt-1.40.99
Bump ccxt from 1.40.74 to 1.40.99
2021-01-25 10:11:56 +01:00
dependabot[bot]
f98bd40955 Bump ccxt from 1.40.74 to 1.40.99
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.40.74 to 1.40.99.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.40.74...1.40.99)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-25 08:24:17 +00:00
Matthias
6fc165c133 Merge pull request #4264 from freqtrade/dependabot/pip/develop/scikit-learn-0.24.1
Bump scikit-learn from 0.24.0 to 0.24.1
2021-01-25 08:23:57 +01:00
Matthias
d10e00b61b Merge pull request #4262 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.14
Bump prompt-toolkit from 3.0.10 to 3.0.14
2021-01-25 08:23:30 +01:00
Matthias
c0df15af29 Merge pull request #4257 from freqtrade/dependabot/pip/develop/cachetools-4.2.1
Bump cachetools from 4.2.0 to 4.2.1
2021-01-25 08:22:46 +01:00
Matthias
9b8148356e Merge pull request #4261 from freqtrade/dependabot/pip/develop/pandas-1.2.1
Bump pandas from 1.2.0 to 1.2.1
2021-01-25 08:22:12 +01:00
Matthias
04058b1a33 Merge pull request #4258 from freqtrade/dependabot/pip/develop/blosc-1.10.2
Bump blosc from 1.10.1 to 1.10.2
2021-01-25 08:04:27 +01:00
Matthias
1314e75bc6 Merge pull request #4259 from freqtrade/dependabot/pip/develop/pytest-cov-2.11.1
Bump pytest-cov from 2.10.1 to 2.11.1
2021-01-25 08:03:24 +01:00
dependabot[bot]
cb749b578d Bump scikit-learn from 0.24.0 to 0.24.1
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 0.24.0 to 0.24.1.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/0.24.0...0.24.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-25 05:37:51 +00:00
dependabot[bot]
fb99cf1459 Bump prompt-toolkit from 3.0.10 to 3.0.14
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.10 to 3.0.14.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.10...3.0.14)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-25 05:37:50 +00:00
dependabot[bot]
d4e9037e6e Bump pandas from 1.2.0 to 1.2.1
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/master/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.2.0...v1.2.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-25 05:37:49 +00:00
dependabot[bot]
afdcd2c0af Bump pytest-cov from 2.10.1 to 2.11.1
Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 2.10.1 to 2.11.1.
- [Release notes](https://github.com/pytest-dev/pytest-cov/releases)
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v2.10.1...v2.11.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-25 05:37:42 +00:00
dependabot[bot]
9422062cbd Bump blosc from 1.10.1 to 1.10.2
Bumps [blosc](https://github.com/blosc/python-blosc) from 1.10.1 to 1.10.2.
- [Release notes](https://github.com/blosc/python-blosc/releases)
- [Changelog](https://github.com/Blosc/python-blosc/blob/master/RELEASE_NOTES.rst)
- [Commits](https://github.com/blosc/python-blosc/compare/v1.10.1...v1.10.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-25 05:37:25 +00:00
dependabot[bot]
b976baae3f Bump cachetools from 4.2.0 to 4.2.1
Bumps [cachetools](https://github.com/tkem/cachetools) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/tkem/cachetools/releases)
- [Changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/tkem/cachetools/compare/v4.2.0...v4.2.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-25 05:37:16 +00:00
Tho Pham (Alex)
c22cccb55b Fix operator does not exist: boolean = integer 2021-01-25 12:24:47 +07:00
sobeit2020
2226f6781f Update installation.md 2021-01-24 21:31:36 +00:00
Matthias
62e43539c9 Limit max_open_trades to maximum available pairs
closes #4008
2021-01-24 19:59:54 +01:00
Matthias
789a980a30 Fix tests for new export format 2021-01-24 19:42:32 +01:00
sobeit2020
2c2a33b2e8 updated environemnt.ylm 2021-01-24 17:06:40 +00:00
sobeit2020
9af89786ba update installation.md
ma
2021-01-24 17:03:56 +00:00
Matthias
deb8432d33 Streamline trade to dataframe conversion 2021-01-24 08:58:41 +01:00
Matthias
8ee264bc59 Don't use profit_percent for backtesting results anymore 2021-01-24 08:58:41 +01:00
Matthias
48977493bb Backtesting does not need to convert to BacktestResult object 2021-01-24 08:58:41 +01:00
Matthias
3b51545d23 Add trade_duration to to_json 2021-01-24 08:58:41 +01:00
Matthias
9a3c425cf4 Update slack link 2021-01-24 08:53:05 +01:00
Matthias
16f9675356 Fix whitelist expansion problem 2021-01-23 20:40:27 +01:00
Matthias
37acaa685b Merge pull request #4249 from freqtrade/config_rename
Config rename
2021-01-23 09:20:42 +01:00
Matthias
31e0b09643 Rename config.json.example
it's really the config dedicated to bittrex,
so the name should reflect this in beeing config_bittrex.json.example
2021-01-22 19:18:34 +01:00
Matthias
371b374ea6 Remove unused config setup from setup.sh 2021-01-22 19:12:34 +01:00
Matthias
bec9b580b0 sell_profit_offset should be documented in the strategy override section 2021-01-22 17:38:55 +01:00
Matthias
e94e2dd383 Remove docker config without compose 2021-01-22 17:32:57 +01:00
Matthias
c42241986e further investigate random test failure 2021-01-21 19:20:38 +01:00
Matthias
c998577d4a Merge pull request #4244 from dannoso/patch-1
Fixed quickstart link in docs
2021-01-21 19:12:47 +01:00
Davide
fd379d36ac Fixed quickstart link in docs 2021-01-21 12:27:22 +01:00
Matthias
5c0f98b518 Blacklist Poloniex - as ccxt does not provide a fetch_order endpoint 2021-01-20 19:31:17 +01:00
Matthias
06cae1b60c Merge pull request #4241 from tijmenvandenbrink/develop
Small improvement to MaxDrawDown protection
2021-01-20 14:16:08 +01:00
Matthias
5f5f75e147 Improve wording in protections documentation 2021-01-20 13:57:53 +01:00
Tijmen van den Brink
992d6b8018 Small improvement to MaxDrawDown protection 2021-01-20 09:24:30 +01:00
Matthias
7c80eeea95 Add use_custom_stoploss to optimize_report 2021-01-19 22:51:12 +01:00
Matthias
86b3306a3b Small doc refactoring 2021-01-19 22:07:10 +01:00
Matthias
7c99e6f0e6 Avoid random test failure 2021-01-19 20:49:28 +01:00
Matthias
20591b539a Merge pull request #4228 from baartch/develop
Extending the Telegram Bot command /status with the possibility to query specific trade_ids
2021-01-19 20:08:49 +01:00
Matthias
cd8d4da466 Add test for /status <tradeids> functionality 2021-01-19 19:45:13 +01:00
Andreas Brunner
a68a546dd9 _rpc_trade_status argument datatype optimizations 2021-01-18 15:26:53 +01:00
Matthias
c785bce7e6 Merge pull request #4234 from freqtrade/dependabot/pip/develop/pyjwt-2.0.1
Bump pyjwt from 2.0.0 to 2.0.1
2021-01-18 09:20:16 +01:00
Matthias
d05cbe239a Merge pull request #4231 from freqtrade/dependabot/pip/develop/coveralls-3.0.0
Bump coveralls from 2.2.0 to 3.0.0
2021-01-18 08:59:05 +01:00
Matthias
792c8503f9 Merge pull request #4233 from freqtrade/dependabot/pip/develop/mkdocs-material-6.2.5
Bump mkdocs-material from 6.2.4 to 6.2.5
2021-01-18 08:48:44 +01:00
Matthias
10104927c9 Fix devcontainer
closes #4230
2021-01-18 07:46:19 +00:00
Matthias
611dbdc522 Merge pull request #4235 from freqtrade/dependabot/pip/develop/ccxt-1.40.74
Bump ccxt from 1.40.30 to 1.40.74
2021-01-18 07:31:34 +01:00
Matthias
3386ca9999 Merge pull request #4232 from freqtrade/dependabot/pip/develop/plotly-4.14.3
Bump plotly from 4.14.1 to 4.14.3
2021-01-18 07:29:41 +01:00
dependabot[bot]
994b4013ad Bump ccxt from 1.40.30 to 1.40.74
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.40.30 to 1.40.74.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.40.30...1.40.74)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-18 05:38:06 +00:00
dependabot[bot]
8b5f8937cc Bump pyjwt from 2.0.0 to 2.0.1
Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.0.0...2.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-18 05:37:48 +00:00
dependabot[bot]
7f8dbce367 Bump mkdocs-material from 6.2.4 to 6.2.5
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 6.2.4 to 6.2.5.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/6.2.4...6.2.5)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-18 05:37:45 +00:00
dependabot[bot]
6a8e495102 Bump plotly from 4.14.1 to 4.14.3
Bumps [plotly](https://github.com/plotly/plotly.py) from 4.14.1 to 4.14.3.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v4.14.1...v4.14.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-18 05:37:37 +00:00
dependabot[bot]
296a6bd43c Bump coveralls from 2.2.0 to 3.0.0
Bumps [coveralls](https://github.com/coveralls-clients/coveralls-python) from 2.2.0 to 3.0.0.
- [Release notes](https://github.com/coveralls-clients/coveralls-python/releases)
- [Changelog](https://github.com/TheKevJames/coveralls-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/coveralls-clients/coveralls-python/compare/2.2.0...3.0.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-18 05:37:29 +00:00
Andreas Brunner
eb95d970e9 flake8 beautify 2021-01-17 21:26:55 +01:00
Andreas Brunner
d21eff0d52 fix, if an non existing trade_id is provided 2021-01-17 21:21:31 +01:00
Andreas Brunner
3ea33d1737 updating doc and help with new /status argument 2021-01-17 21:15:17 +01:00
Andreas Brunner
6d40814dbf extend status bot command to query specific trades 2021-01-17 20:39:35 +01:00
Matthias
a8bae3a381 Don't update trade fees for dry-run orders 2021-01-17 20:31:27 +01:00
Matthias
389db2fe7d Enhance wording of docker quickstart 2021-01-17 19:11:00 +01:00
Matthias
3a2bac4ae3 Merge pull request #4223 from freqtrade/bot_name
Add bot_name setting
2021-01-17 15:23:41 +01:00
sobeit2020
172a629c58 Update installation.md 2021-01-16 22:41:37 +00:00
sobeit2020
f9dd74585e Update installation.md 2021-01-16 22:39:11 +00:00
sobeit2020
73206a9194 Update installation.md 2021-01-16 22:35:42 +00:00
sobeit2020
63be27f671 Update installation.md 2021-01-16 22:28:23 +00:00
sobeit2020
9ad0817105 Update installation.md 2021-01-16 22:27:25 +00:00
sobeit2020
a271c9e98e Update installation.md 2021-01-16 22:24:22 +00:00
Matthias
53c208197d Add bot_name setting
allows naming the bot to simply differentiate when running different
bots.
2021-01-16 16:19:49 +01:00
Matthias
572f5f9186 Fix fstring syntax error 2021-01-16 10:05:47 +01:00
Matthias
9f338ba6ed Debug random test failure in CI 2021-01-16 10:01:31 +01:00
Matthias
3fefb6f1c8 Merge pull request #4215 from freqtrade/refactor/backtest
Small backtest refactor, introduce calling `bot_loop_start` in backtesting
2021-01-16 09:32:19 +01:00
Matthias
d74376726a api-server should fully support max_open_trades=-1 2021-01-15 20:47:12 +01:00
Matthias
baef8b4f79 Merge pull request #4197 from nas-/develop
Added support for regex in whitelist
2021-01-15 07:34:49 +01:00
Matthias
bf5868c96d Add testcase for nonexisting pairs on whitelist 2021-01-15 07:10:17 +01:00
nas-
f72d53351c Added ability to keep invalid pairs while expanding expand_pairlist 2021-01-15 06:37:57 +01:00
sobeit2020
ce5ba1bb6e Adding Conda installation process 2021-01-15 00:14:11 +00:00
Matthias
0b65fe6afe Capture backtest start / end time 2021-01-14 19:09:25 +01:00
Matthias
9147106259 call bot_loop_start() in backtesting to allow setup-code to run 2021-01-14 19:09:25 +01:00
Matthias
baa1142afa Use preprocessed to get min/max date in hyperopt 2021-01-14 19:09:21 +01:00
Matthias
9d4cdcad10 Extract backtesting of one strategy 2021-01-14 19:04:42 +01:00
Matthias
6d1fba1409 Remove unnecessary log output tests 2021-01-14 19:04:42 +01:00
Matthias
f3de0dd3eb Fix support for protections in hyperopt
closes #4208
2021-01-14 06:53:40 +01:00
Matthias
d289fe44cb Merge pull request #4205 from tejeshreddy/docs-edge
fix: edge doc typos [done]
2021-01-13 16:43:43 +01:00
tejeshreddy
950c5c0113 fix: edge doc typos 2021-01-13 16:50:38 +05:30
Matthias
adb3fb123e Fix typo 2021-01-12 19:35:02 +01:00
Matthias
47a06c6213 Fix enable/reenable of swagger UI endpoint 2021-01-12 19:28:22 +01:00
Matthias
ac43591c44 Fix failing api when max_open_trades is unlimited 2021-01-12 19:24:37 +01:00
Matthias
60ea32e398 Improve wording 2021-01-12 19:05:25 +01:00
Matthias
6007d5182a Merge pull request #4147 from hoeckxer/ignore_expired_candle
Ignoring candles that have expired within timeframe
2021-01-12 19:04:16 +01:00
hoeckxer
1f6a71fdd9 Reformat code on new version 2021-01-12 08:24:11 +01:00
Matthias
951c6ac1d4 Merge pull request #4193 from freqtrade/sell_profit_offset
Sell profit offset
2021-01-12 07:58:07 +01:00
hoeckxer
71f45021b9 Removed redundant statement 2021-01-12 07:35:30 +01:00
hoeckxer
e328182bd7 Changed workings so it only needs to timing-parameter, instead of also requiring a boolean value 2021-01-12 07:30:39 +01:00
nas-
4d7ffa8c81 Added suppoort for regex in whitelist 2021-01-12 01:13:58 +01:00
Matthias
b062b836cc Add test for sell_profit_offset 2021-01-11 19:42:44 +01:00
Matthias
63a579dbab Add sell_profit_offset parameter
Allows defining positive offsets before enabling the sell signal
2021-01-11 19:30:25 +01:00
Matthias
dbc25f00ac Switch full config from bittrex to binance
bittrex no longer supports volumepairlist.

closes #4192
2021-01-11 19:12:03 +01:00
Matthias
0c6c5162e8 Merge pull request #4189 from freqtrade/fix/4183
Include stoploss_on_exchange in stoploss_guard
2021-01-11 08:14:59 +01:00
Matthias
689c19620c Merge pull request #4188 from freqtrade/dependabot/pip/develop/pytest-mock-3.5.1
Bump pytest-mock from 3.5.0 to 3.5.1
2021-01-11 07:57:19 +01:00
Matthias
f159c46438 Include stoploss_on_exchange in stoploss_guard
fix #4183
2021-01-11 07:55:01 +01:00
Matthias
bc0550358f Merge pull request #4186 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.10
Bump prompt-toolkit from 3.0.9 to 3.0.10
2021-01-11 07:36:29 +01:00
Matthias
d78fd3fa8f Merge pull request #4185 from freqtrade/dependabot/pip/develop/mkdocs-material-6.2.4
Bump mkdocs-material from 6.2.3 to 6.2.4
2021-01-11 07:34:48 +01:00
Matthias
6c29964bcc Merge pull request #4187 from freqtrade/dependabot/pip/develop/ccxt-1.40.30
Bump ccxt from 1.40.25 to 1.40.30
2021-01-11 07:33:55 +01:00
dependabot[bot]
59efc5f083 Bump pytest-mock from 3.5.0 to 3.5.1
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.5.0 to 3.5.1.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.5.0...v3.5.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-11 05:38:47 +00:00
dependabot[bot]
f1809286cf Bump ccxt from 1.40.25 to 1.40.30
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.40.25 to 1.40.30.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.40.25...1.40.30)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-11 05:38:47 +00:00
dependabot[bot]
a34753fcb1 Bump prompt-toolkit from 3.0.9 to 3.0.10
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.9 to 3.0.10.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.9...3.0.10)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-11 05:38:45 +00:00
dependabot[bot]
ddecf3ef98 Bump mkdocs-material from 6.2.3 to 6.2.4
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 6.2.3 to 6.2.4.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/6.2.3...6.2.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-11 05:38:34 +00:00
Matthias
5102dfd6df Merge pull request #4144 from freqtrade/improve_informativepair
Improve merge_informative_pairs to properly merge correct timeframes
2021-01-09 10:15:59 +01:00
Matthias
61d225a575 Merge pull request #4170 from freqtrade/dependabot/pip/develop/pyjwt-2.0.0
Bump pyjwt from 1.7.1 to 2.0.0
2021-01-08 19:48:04 +01:00
Matthias
8631a54514 Fix test due to pyjwt2.0 2021-01-08 19:34:01 +01:00
Matthias
5f17dd06a5 Merge pull request #4173 from freqtrade/fix/4161
Fix #4161 - by not using the problematic method for windows
2021-01-08 19:22:48 +01:00
Matthias
47f391e43e Merge pull request #4164 from freqtrade/ci_macos_39
Run CI for mac on 3.9
2021-01-08 19:22:15 +01:00
Matthias
378a252ad1 Fix #4161 - by not using the problematic method for windows 2021-01-08 13:46:43 +01:00
Matthias
cc428d7e36 Merge pull request #4171 from freqtrade/dependabot/pip/develop/numpy-1.19.5
Bump numpy from 1.19.4 to 1.19.5
2021-01-08 13:44:09 +01:00
dependabot[bot]
c8df3c4730 Bump pyjwt from 1.7.1 to 2.0.0
Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 1.7.1 to 2.0.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jpadilla/pyjwt/compare/1.7.1...2.0.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-08 07:48:31 +00:00
Matthias
de26867ad2 Merge pull request #4166 from freqtrade/dependabot/pip/develop/pytest-mock-3.5.0
Bump pytest-mock from 3.4.0 to 3.5.0
2021-01-08 08:48:14 +01:00
dependabot[bot]
4d2c59b7ec Bump numpy from 1.19.4 to 1.19.5
Bumps [numpy](https://github.com/numpy/numpy) from 1.19.4 to 1.19.5.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/master/doc/HOWTO_RELEASE.rst.txt)
- [Commits](https://github.com/numpy/numpy/compare/v1.19.4...v1.19.5)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-08 07:47:47 +00:00
Matthias
eb9d137d5b Merge pull request #4167 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.9
Bump prompt-toolkit from 3.0.8 to 3.0.9
2021-01-08 08:47:32 +01:00
Matthias
ee6d340aa7 Merge pull request #4169 from freqtrade/dependabot/pip/develop/ccxt-1.40.25
Bump ccxt from 1.40.14 to 1.40.25
2021-01-08 08:47:12 +01:00
Matthias
3bc59d427c Merge pull request #4168 from freqtrade/dependabot/pip/develop/uvicorn-0.13.3
Bump uvicorn from 0.13.2 to 0.13.3
2021-01-08 08:46:42 +01:00
dependabot[bot]
3cf506fa5d Bump ccxt from 1.40.14 to 1.40.25
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.40.14 to 1.40.25.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.40.14...1.40.25)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-08 07:16:49 +00:00
dependabot[bot]
784630e2f2 Bump uvicorn from 0.13.2 to 0.13.3
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.13.2 to 0.13.3.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.13.2...0.13.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-08 07:16:49 +00:00
dependabot[bot]
f3319e1382 Bump prompt-toolkit from 3.0.8 to 3.0.9
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.8 to 3.0.9.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/commits/3.0.9)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-08 07:16:48 +00:00
dependabot[bot]
bd5f46e4c2 Bump pytest-mock from 3.4.0 to 3.5.0
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.4.0...v3.5.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-08 07:16:36 +00:00
Matthias
2e7faa782c Add documentation section for macOS installation error on 3.999999999 2021-01-08 06:51:37 +01:00
Matthias
3a9583403b Merge pull request #4165 from freqtrade/trades_dl
Trades dl fix faulty behaviour
2021-01-08 06:22:13 +01:00
Matthias
4f126bea35 Change trades-test2 to better test correct behaviour 2021-01-07 20:06:26 +01:00
Matthias
bf182dc01e Fix wrong key usage in trade_history_timebased 2021-01-07 20:03:34 +01:00
Matthias
124cb5c5bf Add cblosc brew dependency 2021-01-07 19:36:50 +01:00
Matthias
54ab61d18a Install hdf5 via brew 2021-01-07 19:27:35 +01:00
Matthias
9e66417e85 Run CI for mac on 3.9 2021-01-07 19:21:42 +01:00
Matthias
b43ef474ad Fix expired candle implementation
Improve and simplify test by passing the current time to the function
2021-01-07 07:51:49 +01:00
Matthias
7a628432a8 Merge pull request #4159 from freqtrade/protections/strategy
Allow protections to be set in the strategy
2021-01-07 06:39:34 +01:00
Matthias
c9e477214f Allow protections to be set in the strategy 2021-01-06 16:37:09 +01:00
Matthias
6ca2b2d52d Merge pull request #4158 from freqtrade/fix/rpc_history_bug
Fix bug in RPC history mode when no data is found
2021-01-06 16:03:03 +01:00
Matthias
e69dac2704 Fix bug in RPC history mode when no data is found 2021-01-06 15:38:46 +01:00
Matthias
a9ca72c1b8 Fix typo in documentation 2021-01-06 11:04:14 +01:00
Matthias
dfe9247c65 Merge pull request #4155 from freqtrade/fix_dry_open_order_update
Don't update open orders in dry-run mode
2021-01-06 10:52:39 +01:00
Matthias
91f8667881 DOn't update open orders in dry-run mode 2021-01-06 09:57:36 +01:00
Matthias
3d57a108d8 Merge pull request #4150 from hoeckxer/protection_documentation_clarification
Protections - clarification in documentation
2021-01-06 09:55:43 +01:00
Matthias
a906093153 FIx doc wording for all guards 2021-01-06 09:45:21 +01:00
hoeckxer
f7b055a58c Attempt to improve wording
Signed-off-by: hoeckxer <hawkeyenl@yahoo.com>
2021-01-06 09:26:03 +01:00
hoeckxer
95732e8991 Clarification in documentation
Signed-off-by: hoeckxer <hawkeyenl@yahoo.com>
2021-01-05 21:03:23 +01:00
hoeckxer
c0f170fdb9 Merge branch 'develop' into ignore_expired_candle 2021-01-05 21:00:08 +01:00
hoeckxer
5c34140a19 Adjusted documentation to reflect sub-key configuration 2021-01-05 20:59:31 +01:00
hoeckxer
65d91a3a58 isort fix 2021-01-05 15:36:34 +01:00
hoeckxer
573de1cf08 Fixed flake8 warnings 2021-01-05 15:30:29 +01:00
hoeckxer
67d84e7514 Merge branch 'ignore_expired_candle' of github.com:hoeckxer/freqtrade into ignore_expired_candle 2021-01-05 14:49:46 +01:00
hoeckxer
e3f3f36298 Changes based on review comments 2021-01-05 14:49:35 +01:00
Erwin Hoeckx
eaaaddac86 Update docs/configuration.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-01-05 11:10:00 +01:00
Matthias
c010cdf894 Merge pull request #4138 from freqtrade/fastapi
use Fastapi instead of flask for API operations
2021-01-05 10:07:19 +01:00
hoeckxer
c9ed2137bb Simplified return statements
Signed-off-by: hoeckxer <hawkeyenl@yahoo.com>
2021-01-05 09:07:46 +01:00
Erwin Hoeckx
67306d943a Update interface.py
Simplified return value, thereby including the situation where the time simply hasn't expired yet
2021-01-05 07:33:34 +01:00
Erwin Hoeckx
9a93a0876a Update interface.py
Adjusted comment
2021-01-05 07:32:07 +01:00
hoeckxer
844df96ec7 Making changes so the build checks are satisified (imports & flake8)
Signed-off-by: hoeckxer <hawkeyenl@yahoo.com>
2021-01-05 07:06:53 +01:00
hoeckxer
614a996597 First commit about ignoring expired candle
Signed-off-by: hoeckxer <hawkeyenl@yahoo.com>
2021-01-04 20:49:24 +01:00
Matthias
cce4d7e42c Merge pull request #4145 from hoeckxer/custom_stoploss_doc_addition
Added an example with a positive offset for a custom stoploss
2021-01-04 19:19:53 +01:00
hoeckxer
1cf6e2c957 Changed documentation based on review comments
Signed-off-by: hoeckxer <hawkeyenl@yahoo.com>
2021-01-04 14:37:22 +01:00
hoeckxer
0704cfb05b Added an example with a positive offset for a custom stoploss
Signed-off-by: hoeckxer <hawkeyenl@yahoo.com>
2021-01-04 14:14:52 +01:00
Matthias
07bc0c3fce Improve merge_informative_pairs to properly merge correct timeframes
explanation in #4073, closes #4073
2021-01-04 13:49:38 +01:00
Matthias
d1804dee6b Add note about python-dev dependency 2021-01-04 09:40:17 +01:00
Matthias
9e84dd9274 Merge pull request #4141 from freqtrade/dependabot/pip/develop/scipy-1.6.0
Bump scipy from 1.5.4 to 1.6.0
2021-01-04 09:30:57 +01:00
Matthias
a7e3f9ef70 Merge pull request #4142 from freqtrade/dependabot/pip/develop/isort-5.7.0
Bump isort from 5.6.4 to 5.7.0
2021-01-04 09:27:04 +01:00
Matthias
a33f4fd9ca Merge pull request #4143 from freqtrade/dependabot/pip/develop/ccxt-1.40.14
Bump ccxt from 1.39.79 to 1.40.14
2021-01-04 08:30:42 +01:00
dependabot[bot]
9e435fba0b Bump ccxt from 1.39.79 to 1.40.14
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.39.79 to 1.40.14.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.39.79...1.40.14)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-04 05:39:14 +00:00
dependabot[bot]
7d06e61461 Bump scipy from 1.5.4 to 1.6.0
Bumps [scipy](https://github.com/scipy/scipy) from 1.5.4 to 1.6.0.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.5.4...v1.6.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-04 05:38:57 +00:00
dependabot[bot]
66391b80ae Bump isort from 5.6.4 to 5.7.0
Bumps [isort](https://github.com/pycqa/isort) from 5.6.4 to 5.7.0.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.6.4...5.7.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-04 05:38:57 +00:00
Matthias
5ca2cd3a1e Change defaults to log only errors 2021-01-03 07:18:41 +01:00
Matthias
634d6f3898 Change logging to stderr 2021-01-03 07:15:45 +01:00
Matthias
26c3463403 Stake-amount supports unlimited, too 2021-01-03 06:49:10 +01:00
Matthias
cff50f9f66 Add response-model for show_config 2021-01-03 06:49:10 +01:00
Matthias
ca0bb7bbb8 Don't require RPC for strategy 2021-01-03 06:49:07 +01:00
Matthias
e6176d43f3 Optional RPC dependency 2021-01-03 06:49:07 +01:00
Matthias
3dc37dd79d Add types for deps 2021-01-03 06:49:07 +01:00
Matthias
336dd1a29c Rename api_models to api_schemas 2021-01-03 06:49:07 +01:00
Matthias
84ced92002 Fix mock-tests missing some fields 2021-01-03 06:49:07 +01:00
Matthias
29f4dd1dcd Enhance some response models 2021-01-03 06:49:07 +01:00
Matthias
718f2b24d2 Don't use relative imports 2021-01-03 06:49:07 +01:00
Matthias
b2ab553a31 Rename api_server2 module to apiserver 2021-01-03 06:49:04 +01:00
Matthias
eb20f6e7d0 Align auth token to flask version to prevent user-logout 2021-01-03 06:49:04 +01:00
Matthias
346542e5cd Remove flask dependency 2021-01-03 06:49:04 +01:00
Matthias
68d148e72d Allow configuration of openAPI interface 2021-01-03 06:49:04 +01:00
Matthias
1717121f10 Properly use JWT secret key 2021-01-03 06:49:04 +01:00
Matthias
790f833653 Some more tests around api_auth 2021-01-03 06:49:04 +01:00
Matthias
29ce323649 Fix wrong hyperoptlosstest 2021-01-03 06:49:04 +01:00
Matthias
776ce57f55 Remove api_server 2021-01-03 06:49:04 +01:00
Matthias
54a50b1fb4 Fix some tests 2021-01-03 06:49:04 +01:00
Matthias
9f873305eb Improve response models 2021-01-03 06:49:04 +01:00
Matthias
9350f505bc Implement missing methods 2021-01-03 06:49:04 +01:00
Matthias
e23898d17b Improve some tests 2021-01-03 06:49:04 +01:00
Matthias
9ee1d88355 Implement more endpoints 2021-01-03 06:49:04 +01:00
Matthias
73a29e6d74 Improve tests, implement more fastapi methods 2021-01-03 06:49:04 +01:00
Matthias
a18d66e108 Add more endpoints to fastapi 2021-01-03 06:49:04 +01:00
Matthias
f37ea4ba24 Fix some initial tests towards fastAPI 2021-01-03 06:49:04 +01:00
Matthias
4b86700a0f Implement more endpoints 2021-01-03 06:48:56 +01:00
Matthias
5e4c4cae06 Fix auth providers 2021-01-03 06:48:53 +01:00
Matthias
86d0700884 Move models to apimodels 2021-01-03 06:46:25 +01:00
Matthias
6594278509 Reorder endpoints 2021-01-03 06:46:25 +01:00
Matthias
eac74a9dec Implement auth in fastapi 2021-01-03 06:46:25 +01:00
Matthias
619b855d5f Add version endpoint 2021-01-03 06:46:25 +01:00
Matthias
a862f19f82 Allow retrieval of rpc and config via dependencies 2021-01-03 06:46:25 +01:00
Matthias
1e38fec61b Initial fastapi implementation (Ping working) 2021-01-03 06:46:25 +01:00
Matthias
31829d5250 Merge pull request #4134 from hoeckxer/documentation_imports_custom_stoploss
Added imports to documentation for clarification when using custom st…
2021-01-02 09:23:43 +01:00
Matthias
11f36fbaee Fix all custom stoploss samples 2021-01-02 09:14:31 +01:00
Erwin Hoeckx
67ced6a53c Update docs/strategy-advanced.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-01-01 20:49:04 +01:00
hoeckxer
e5840abaf9 Added imports to documentation for clarification when using custom stoploss
Signed-off-by: hoeckxer <hawkeyenl@yahoo.com>
2020-12-31 21:05:47 +01:00
Matthias
885da85fce Merge branch 'stable' into develop 2020-12-31 10:39:20 +01:00
Matthias
9e3224ccc0 Merge pull request #4089 from freqtrade/feat/stoploss_custom
introduce custom stoploss
2020-12-31 10:33:33 +01:00
Matthias
12de29dd3e Merge pull request #4133 from freqtrade/dynamic_pairlist
Wildcard based blacklist
2020-12-31 10:02:30 +01:00
Matthias
512e163355 change docstring to better reflect what the method is for 2020-12-31 09:48:49 +01:00
Matthias
bd7600ff06 Small visual changes 2020-12-31 09:43:24 +01:00
Matthias
04624aae40 Add documentation for wildcard-blacklist 2020-12-30 12:30:50 +01:00
Matthias
0affacd39a Support invalid regex blacklist from config 2020-12-30 10:14:22 +01:00
Matthias
9feabe707f Fix RPC methods to allow wildcards (and validate wildcards) 2020-12-30 09:57:31 +01:00
Matthias
704cf14383 Add expand_pairlist method 2020-12-30 09:55:44 +01:00
Matthias
2fdda8e448 plot-profit should fail gracefully if no trade is within the selected timerange
closes #4119
2020-12-30 08:30:41 +01:00
Matthias
b8899b39ec Show advanced plot-config section again
closes #4132
2020-12-30 06:29:59 +01:00
Matthias
9d7e0514ff Merge pull request #4131 from freqtrade/fix/krakenbalance
Fix/krakenbalance
2020-12-30 06:23:25 +01:00
Matthias
b607740dd1 Fix kraken balance bug if open buy orders exist 2020-12-29 20:06:37 +01:00
Matthias
238e9aabb1 Add test showing wrong behaviour 2020-12-29 20:05:07 +01:00
Matthias
f97e810429 Merge pull request #4127 from freqtrade/new_release
New release 2020.12
2020-12-29 07:07:54 +01:00
Matthias
0925a3cd19 Reinstate header partials 2020-12-28 14:12:39 +01:00
Matthias
a2fdb9d2f6 Move jquery to the bottom 2020-12-28 14:12:39 +01:00
Matthias
f6e56027b1 Reinstate jquery 2020-12-28 14:12:39 +01:00
Matthias
625da69fcb Remove custom header section from docs 2020-12-28 14:12:15 +01:00
Matthias
dcc7d559ee Reinstate header partials 2020-12-28 14:08:57 +01:00
Matthias
ecea6c9526 Move jquery to the bottom 2020-12-28 14:02:30 +01:00
Matthias
accc59aa1b Reinstate jquery 2020-12-28 13:49:08 +01:00
Matthias
8366e67fee Remove custom header section from docs 2020-12-28 10:19:50 +01:00
Matthias
003552d78c Remove custom header section from docs 2020-12-28 10:19:24 +01:00
Matthias
d4e42987e2 Merge pull request #4126 from freqtrade/dependabot/pip/develop/pandas-1.2.0
Bump pandas from 1.1.5 to 1.2.0
2020-12-28 10:09:05 +01:00
Matthias
f80ffe279b Version bump 2020.12 2020-12-28 09:54:58 +01:00
Matthias
ea22588649 Merge branch 'stable' into new_release 2020-12-28 09:54:46 +01:00
Matthias
fe8898c7f8 Merge pull request #4124 from freqtrade/dependabot/pip/develop/scikit-learn-0.24.0
Bump scikit-learn from 0.23.2 to 0.24.0
2020-12-28 09:54:29 +01:00
Matthias
0d4cf32086 Slightly adapt to pandas incompatibility 2020-12-28 09:50:48 +01:00
dependabot[bot]
30087697e0 Bump pandas from 1.1.5 to 1.2.0
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.1.5 to 1.2.0.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/master/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.1.5...v1.2.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-28 08:21:17 +00:00
Matthias
8dca3c84f8 Merge pull request #4122 from freqtrade/dependabot/pip/develop/ccxt-1.39.79
Bump ccxt from 1.39.52 to 1.39.79
2020-12-28 09:19:15 +01:00
Matthias
0fc504fc4e Merge pull request #4125 from freqtrade/dependabot/pip/develop/blosc-1.10.1
Bump blosc from 1.9.2 to 1.10.1
2020-12-28 09:18:14 +01:00
Matthias
25b872a9c8 Merge pull request #4123 from freqtrade/dependabot/pip/develop/pymdown-extensions-8.1
Bump pymdown-extensions from 8.0.1 to 8.1
2020-12-28 09:17:09 +01:00
Matthias
a328bf58f4 Merge pull request #4121 from freqtrade/dependabot/pip/develop/mkdocs-material-6.2.3
Bump mkdocs-material from 6.1.7 to 6.2.3
2020-12-28 09:16:46 +01:00
dependabot[bot]
f492609115 Bump blosc from 1.9.2 to 1.10.1
Bumps [blosc](https://github.com/blosc/python-blosc) from 1.9.2 to 1.10.1.
- [Release notes](https://github.com/blosc/python-blosc/releases)
- [Changelog](https://github.com/Blosc/python-blosc/blob/master/RELEASE_NOTES.rst)
- [Commits](https://github.com/blosc/python-blosc/compare/v1.9.2...v1.10.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-28 05:37:17 +00:00
dependabot[bot]
092ebf845d Bump scikit-learn from 0.23.2 to 0.24.0
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 0.23.2 to 0.24.0.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/0.23.2...0.24.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-28 05:37:16 +00:00
dependabot[bot]
87b896879f Bump ccxt from 1.39.52 to 1.39.79
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.39.52 to 1.39.79.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.39.52...1.39.79)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-28 05:37:13 +00:00
dependabot[bot]
10840ec170 Bump pymdown-extensions from 8.0.1 to 8.1
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 8.0.1 to 8.1.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/8.0.1...8.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-28 05:37:13 +00:00
dependabot[bot]
b3e929d14b Bump mkdocs-material from 6.1.7 to 6.2.3
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 6.1.7 to 6.2.3.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/6.1.7...6.2.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-28 05:37:11 +00:00
Matthias
8cf3dbb682 Merge pull request #4110 from freqtrade/test/exchange_ccxt
add tests to verify exchange compatibility with ccxt
2020-12-26 16:32:25 +01:00
Matthias
7d2b9447d0 Update slack link 2020-12-26 15:30:55 +01:00
Matthias
4b910426ff Merge pull request #4113 from freqtrade/ref/rpc
Refactor RPC dependency tree
2020-12-25 10:10:50 +01:00
Matthias
a87c273903 Refactor RPC modules so handlers don't inherit RPC directly 2020-12-24 09:09:23 +01:00
Matthias
1508e08ea5 Move fiatconvert init to RPC class 2020-12-24 08:39:00 +01:00
Matthias
48f7997a77 Merge pull request #4112 from freqtrade/tests/telegram
simplify telegram tests
2020-12-24 08:24:11 +01:00
Matthias
5bf739b917 Simplify more telegram tests 2020-12-24 07:39:46 +01:00
Matthias
be4a4be7a3 Further simplify test_telegram 2020-12-24 07:29:26 +01:00
Matthias
4cbbb80bc3 Refactor test_telegram to simplify tests 2020-12-24 07:10:01 +01:00
Matthias
516e56bfaa Move init of _config to apiserver parent 2020-12-23 20:50:32 +01:00
Matthias
0b98f19f2c Merge pull request #4111 from freqtrade/move_pairlist_plugins
Move pairlists to be a plugin submodule
2020-12-23 19:10:08 +01:00
Matthias
f11fd2fee1 Sort imports 2020-12-23 17:00:02 +01:00
Matthias
67193bca3d Move pairlists to be a plugin submodule 2020-12-23 16:54:35 +01:00
Matthias
7cef5ac217 Merge pull request #4092 from MrKrautee/telegram
Telegram: specify custom keyboard in config
2020-12-23 16:25:37 +01:00
Matthias
1713841d0b Initialize markets at startup for ccxt tests 2020-12-23 16:20:25 +01:00
Matthias
721d0fb2a8 Improve wording of developer docs 2020-12-23 16:00:26 +01:00
Christof
74bcd82c3d Exception msg 2020-12-23 16:00:01 +01:00
Matthias
65d91b7cbb Add note on adding new exchange with compat tests 2020-12-23 15:53:41 +01:00
Matthias
5599490aa2 Adjust ohlcv test after rebase 2020-12-23 15:50:24 +01:00
Matthias
b39de171c8 Don't run longrun regularily 2020-12-23 15:46:08 +01:00
Matthias
0981287c62 Improve test syntax for ccxt_compat tests 2020-12-23 15:41:59 +01:00
Matthias
2016eea212 Fix some test-errors in ccxt_compat 2020-12-23 15:41:59 +01:00
Matthias
a6e6ce16b1 Fix test failures 2020-12-23 15:41:59 +01:00
Matthias
b7d4ff9c21 Add test for fetch_ohlcv (against exchange) 2020-12-23 15:41:59 +01:00
Matthias
7833d9935c Add dummy test for fetch_ohlcv 2020-12-23 15:41:59 +01:00
Matthias
79ed89e487 Add test for fee calculation 2020-12-23 15:41:59 +01:00
Matthias
38af1b2a5d Improve compat tests 2020-12-23 15:41:59 +01:00
Matthias
36d60fa8a8 First small compat test 2020-12-23 15:41:59 +01:00
Christof
b1fe5940fa check for Exception and log msgs 2020-12-22 13:01:01 +01:00
Christof
cd1a8e2c42 better error msg 2020-12-22 12:39:27 +01:00
Christof
be28b42bfa Exception for invalid keyboard config 2020-12-22 12:34:21 +01:00
Matthias
4dadfd199d Documentation syntax 2020-12-22 07:36:53 +01:00
Matthias
39579b6e5d Merge pull request #4093 from freqtrade/ohlcv_limit
set ohlcv limit on ccxt calls
2020-12-21 19:34:50 +01:00
Matthias
9d37ac9955 Merge pull request #4094 from MrKrautee/plot_area
Plot area between traces
2020-12-21 19:30:07 +01:00
Matthias
9c0850ff50 Merge pull request #4103 from MrKrautee/tg_docs
added /locks to command list
2020-12-21 10:22:54 +01:00
Christof
78dff3d510 docs: Note syntax 2020-12-21 10:22:24 +01:00
Christof
2787ba0809 added /locks to command list 2020-12-21 10:03:27 +01:00
Christof
277f3ff47b tests: cleaup 2020-12-21 09:52:10 +01:00
Matthias
5bd14bcccf Merge pull request #4100 from freqtrade/dependabot/pip/develop/pytest-mock-3.4.0
Bump pytest-mock from 3.3.1 to 3.4.0
2020-12-21 09:31:44 +01:00
Matthias
bbc049c838 Merge pull request #4102 from freqtrade/dependabot/pip/develop/sqlalchemy-1.3.22
Bump sqlalchemy from 1.3.20 to 1.3.22
2020-12-21 09:31:35 +01:00
dependabot[bot]
d25fe58574 Bump sqlalchemy from 1.3.20 to 1.3.22
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 1.3.20 to 1.3.22.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/master/CHANGES)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-21 08:19:10 +00:00
dependabot[bot]
8eb0130200 Bump pytest-mock from 3.3.1 to 3.4.0
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.3.1...v3.4.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-21 08:18:53 +00:00
Matthias
fae631c026 Merge pull request #4096 from freqtrade/dependabot/pip/develop/pytest-6.2.1
Bump pytest from 6.2.0 to 6.2.1
2020-12-21 07:41:05 +01:00
Matthias
08a1f74748 Merge pull request #4098 from freqtrade/dependabot/pip/develop/flake8-tidy-imports-4.2.1
Bump flake8-tidy-imports from 4.2.0 to 4.2.1
2020-12-21 07:40:46 +01:00
Matthias
537c20ed87 Merge pull request #4097 from freqtrade/dependabot/pip/develop/questionary-1.9.0
Bump questionary from 1.8.1 to 1.9.0
2020-12-21 07:40:20 +01:00
Matthias
3a46f02682 Merge pull request #4101 from freqtrade/dependabot/pip/develop/ccxt-1.39.52
Bump ccxt from 1.39.33 to 1.39.52
2020-12-21 07:39:34 +01:00
Matthias
e587c005de Merge pull request #4099 from freqtrade/dependabot/pip/develop/joblib-1.0.0
Bump joblib from 0.17.0 to 1.0.0
2020-12-21 07:35:09 +01:00
Matthias
bc110cfe8f Merge pull request #4095 from freqtrade/dependabot/pip/develop/requests-2.25.1
Bump requests from 2.25.0 to 2.25.1
2020-12-21 07:34:30 +01:00
dependabot[bot]
3b67863914 Bump ccxt from 1.39.33 to 1.39.52
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.39.33 to 1.39.52.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.39.33...1.39.52)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-21 05:36:27 +00:00
dependabot[bot]
a2873096c8 Bump flake8-tidy-imports from 4.2.0 to 4.2.1
Bumps [flake8-tidy-imports](https://github.com/adamchainz/flake8-tidy-imports) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/adamchainz/flake8-tidy-imports/releases)
- [Changelog](https://github.com/adamchainz/flake8-tidy-imports/blob/master/HISTORY.rst)
- [Commits](https://github.com/adamchainz/flake8-tidy-imports/compare/4.2.0...4.2.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-21 05:36:24 +00:00
dependabot[bot]
5716202e45 Bump joblib from 0.17.0 to 1.0.0
Bumps [joblib](https://github.com/joblib/joblib) from 0.17.0 to 1.0.0.
- [Release notes](https://github.com/joblib/joblib/releases)
- [Changelog](https://github.com/joblib/joblib/blob/master/CHANGES.rst)
- [Commits](https://github.com/joblib/joblib/compare/0.17.0...1.0.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-21 05:36:24 +00:00
dependabot[bot]
fe27206926 Bump questionary from 1.8.1 to 1.9.0
Bumps [questionary](https://github.com/tmbo/questionary) from 1.8.1 to 1.9.0.
- [Release notes](https://github.com/tmbo/questionary/releases)
- [Commits](https://github.com/tmbo/questionary/compare/1.8.1...1.9.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-21 05:36:12 +00:00
dependabot[bot]
a1755364e1 Bump pytest from 6.2.0 to 6.2.1
Bumps [pytest](https://github.com/pytest-dev/pytest) from 6.2.0 to 6.2.1.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/6.2.0...6.2.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-21 05:36:09 +00:00
dependabot[bot]
e7e687c8ec Bump requests from 2.25.0 to 2.25.1
Bumps [requests](https://github.com/psf/requests) from 2.25.0 to 2.25.1.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/master/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.25.0...v2.25.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-21 05:36:08 +00:00
Christof
5423c21be0 keyboard type 2020-12-20 22:51:40 +01:00
Christof
f39dde121a moved keyboard config validation to __inti__ 2020-12-20 22:36:56 +01:00
Christof
18a24d75ef cleanup 2020-12-20 21:31:01 +01:00
Christof
3cb559994e some more test 2020-12-20 21:31:01 +01:00
Christof
c1b8ad7232 renaming, comments, cleanups 2020-12-20 21:31:01 +01:00
Christof
fabb31e1bc imports order 2020-12-20 21:31:01 +01:00
Christof
f120c8d6c7 documentation 2020-12-20 21:31:01 +01:00
Christof
f24626e139 removed too many blank lines 2020-12-20 21:31:01 +01:00
Christof
43091a26ce simple tests 2020-12-20 21:28:57 +01:00
Christof
8b24878023 plot_config documentation for fill_to, fill_label, fill_color 2020-12-20 21:28:57 +01:00
Christof
5b2902fcbc cleanup 2020-12-20 21:28:57 +01:00
Christof
16baca5eeb fixed: too complex warning 2020-12-20 21:28:57 +01:00
Christof
d901a86165 typo 2020-12-20 21:28:57 +01:00
Christof
75e4758936 changed config params, added fill area in subplots 2020-12-20 21:28:57 +01:00
Christof
cc39cf97dd revert to former create_plotconfig behaviour 2020-12-20 21:28:57 +01:00
Christof
4531c924da PEP8 2020-12-20 21:28:57 +01:00
Christof
fb3d82ccb9 cleanup 2020-12-20 21:28:57 +01:00
Christof
fdd4b40c34 fixed subplots, empty create plot_config if its not given by strategie 2020-12-20 21:28:57 +01:00
Christof
daa1727e2b Exeption for fill_area.traces 2020-12-20 21:28:57 +01:00
Christof
3fdfc06a1e label for fill_area added and documentation updated 2020-12-20 21:28:57 +01:00
Christof
ecadfdd98e fixed:advanced config. added. feature: fill area between traces by advanced configuration. 2020-12-20 21:28:57 +01:00
Christof
6b44545d37 sort order imports 2020-12-20 21:06:45 +01:00
Christof
799e6be2eb fix tests 2020-12-20 21:06:45 +01:00
Christof
621105df9a renaming shortcut_btns to keyboard 2020-12-20 21:06:45 +01:00
Christof
bf92099486 test for custom keyboard 2020-12-20 21:06:45 +01:00
Christof
5b3ffd5141 better log msg, comments 2020-12-20 21:06:45 +01:00
Christof
5e6897b278 documentation for custom keyboard 2020-12-20 21:06:45 +01:00
Christof
e92bcb00f6 telegram: specify custom shortcut bottons (keyboard) in config.json 2020-12-20 21:06:45 +01:00
Matthias
8d3f096a97 AgeFilter does not require tickers 2020-12-20 20:08:54 +01:00
Matthias
d7daa86434 Add bybit subclass 2020-12-20 19:59:46 +01:00
Matthias
bd0af1b300 Fix test warning 2020-12-20 19:38:12 +01:00
Matthias
7d2395ddb7 Add limit parameter to fetch_ohlcv 2020-12-20 19:33:04 +01:00
Matthias
fc0d14c1b5 Improve documentation 2020-12-20 19:14:18 +01:00
Matthias
676dd0d664 Improve documentation 2020-12-20 11:22:15 +01:00
Matthias
9d5961e224 Rename method to custom_stoploss 2020-12-20 11:17:50 +01:00
Matthias
277342f167 Rename flag to "use_custom_stoposs" 2020-12-20 11:12:22 +01:00
Matthias
8574751a07 Add stoploss_value to strategy template 2020-12-20 10:49:22 +01:00
Matthias
f8639fe938 Add more tests for custom_loss 2020-12-19 20:36:19 +01:00
Matthias
5f8610b28f Add explicit test for stop_loss_reached 2020-12-19 20:08:03 +01:00
Matthias
22d64553c9 Rename test file 2020-12-19 18:00:44 +01:00
Matthias
ea4238e860 cleanup some tests 2020-12-19 17:59:49 +01:00
Matthias
11e2915621 Fix documentation problem 2020-12-19 17:44:39 +01:00
Matthias
6892c08e9b Improve docstring 2020-12-19 13:18:06 +01:00
Matthias
b2c1098316 more docs for dynamic stoploss method 2020-12-19 12:03:18 +01:00
Matthias
f7b54c2415 Allow and document time-based custom stoploss
closes #3206
2020-12-19 11:46:49 +01:00
Matthias
f235ab8cf4 Fix some typos in docs 2020-12-19 11:39:21 +01:00
Matthias
18795844d8 Add initial set of custom stoploss documentation 2020-12-19 11:37:20 +01:00
Matthias
a414b57d54 Experiment with custom stoploss interface 2020-12-18 06:56:56 +01:00
Matthias
8f6aefb591 Extract stoploss assignment 2020-12-18 06:56:56 +01:00
Matthias
768a24c375 Add stoplossvalue interface 2020-12-18 06:56:56 +01:00
Matthias
b9f3410d8b Merge pull request #4082 from bigchakalaka/patch-2
Update strategy-customization.md
2020-12-18 06:16:13 +01:00
bigchakalaka
ca9fd08991 Update strategy-customization.md 2020-12-17 21:40:54 +01:00
Matthias
4e7f914e92 Improve test for AgeFilter, fix bug in Agefilter 2020-12-17 13:34:53 +01:00
Matthias
266031a6be Disallow PerformanceFilter for backtesting
closes #4072
2020-12-16 19:24:47 +01:00
Matthias
8441d0f60f Merge pull request #4069 from freqtrade/refactor_ohlcv_download
Refactor pairlist ohlcv download to use async
2020-12-16 19:11:49 +01:00
Matthias
d1fda28d2e Fix typehints 2020-12-15 20:59:58 +01:00
Matthias
011ba1d9ae Adapt tests to use async methods 2020-12-15 20:49:46 +01:00
Matthias
3c85d5201f Use async to get candle data for pairlists 2020-12-15 20:38:26 +01:00
Matthias
f320cb0d7a Merge pull request #4068 from freqtrade/docker_stage_pi
Docker stage pi
2020-12-15 19:10:10 +01:00
Matthias
4c0edd0461 Move dependencies to base image for RPI 2020-12-15 09:28:56 +01:00
Matthias
c8dde63227 Allow test-pairlist to run with verbosity 2020-12-15 09:23:40 +01:00
Matthias
69901c1314 Provide pair to _validate_pairs in pairlists 2020-12-15 09:23:40 +01:00
Matthias
39fec25ae0 add optional Cache arguments to refresh_pairs method 2020-12-15 09:23:27 +01:00
Matthias
dc92808335 Change PI dockerfile to use staged build 2020-12-15 06:44:08 +01:00
Matthias
ca9036ee1d Merge pull request #3840 from freqtrade/dependabot/docker/python-3.9.0-slim-buster
Bump python from 3.8.6-slim-buster to 3.9.1-slim-buster (build actions using 3.9)
2020-12-14 20:44:29 +01:00
Matthias
e240f0b372 Merge branch 'develop' into dependabot/docker/python-3.9.0-slim-buster 2020-12-14 20:18:34 +01:00
Matthias
8366e2fd89 Merge pull request #4064 from freqtrade/dependabot/pip/develop/pytest-6.2.0
Bump pytest from 6.1.2 to 6.2.0
2020-12-14 19:46:13 +01:00
Matthias
9f5c4ead15 Remove support for 3.6 2020-12-14 19:18:54 +01:00
Matthias
66d5271ada Don't build for 3.6 any longer 2020-12-14 19:10:24 +01:00
Matthias
ba869a330f Build 3.6 on github actions too 2020-12-14 19:05:41 +01:00
dependabot[bot]
8965b8a18d Bump pytest from 6.1.2 to 6.2.0
Bumps [pytest](https://github.com/pytest-dev/pytest) from 6.1.2 to 6.2.0.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/6.1.2...6.2.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-14 08:27:36 +00:00
Matthias
bf48df92c1 Merge pull request #4059 from freqtrade/dependabot/pip/develop/plotly-4.14.1
Bump plotly from 4.13.0 to 4.14.1
2020-12-14 07:42:24 +01:00
Matthias
e763aa04bd Merge pull request #4062 from freqtrade/dependabot/pip/develop/python-rapidjson-1.0
Bump python-rapidjson from 0.9.4 to 1.0
2020-12-14 07:40:49 +01:00
Matthias
36fba4826f Merge pull request #4058 from freqtrade/dependabot/pip/develop/cachetools-4.2.0
Bump cachetools from 4.1.1 to 4.2.0
2020-12-14 07:40:03 +01:00
Matthias
4813eec308 Merge pull request #4063 from freqtrade/dependabot/pip/develop/ccxt-1.39.33
Bump ccxt from 1.39.10 to 1.39.33
2020-12-14 07:39:30 +01:00
Matthias
aace993842 Merge pull request #4061 from freqtrade/dependabot/pip/develop/pandas-1.1.5
Bump pandas from 1.1.4 to 1.1.5
2020-12-14 07:38:45 +01:00
Matthias
834cf384f6 Merge pull request #4060 from freqtrade/dependabot/pip/develop/flake8-tidy-imports-4.2.0
Bump flake8-tidy-imports from 4.1.0 to 4.2.0
2020-12-14 07:37:00 +01:00
dependabot[bot]
a9b586d338 Bump ccxt from 1.39.10 to 1.39.33
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.39.10 to 1.39.33.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.39.10...1.39.33)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-14 05:44:16 +00:00
dependabot[bot]
44f295110b Bump python-rapidjson from 0.9.4 to 1.0
Bumps [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) from 0.9.4 to 1.0.
- [Release notes](https://github.com/python-rapidjson/python-rapidjson/releases)
- [Changelog](https://github.com/python-rapidjson/python-rapidjson/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-rapidjson/python-rapidjson/compare/v0.9.4...v1.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-14 05:43:46 +00:00
dependabot[bot]
bdd895b8da Bump pandas from 1.1.4 to 1.1.5
Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.1.4 to 1.1.5.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Changelog](https://github.com/pandas-dev/pandas/blob/master/RELEASE.md)
- [Commits](https://github.com/pandas-dev/pandas/compare/v1.1.4...v1.1.5)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-14 05:43:42 +00:00
dependabot[bot]
a3139dd9d4 Bump flake8-tidy-imports from 4.1.0 to 4.2.0
Bumps [flake8-tidy-imports](https://github.com/adamchainz/flake8-tidy-imports) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/adamchainz/flake8-tidy-imports/releases)
- [Changelog](https://github.com/adamchainz/flake8-tidy-imports/blob/master/HISTORY.rst)
- [Commits](https://github.com/adamchainz/flake8-tidy-imports/compare/4.1.0...4.2.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-14 05:43:34 +00:00
dependabot[bot]
4cf16fa8d1 Bump plotly from 4.13.0 to 4.14.1
Bumps [plotly](https://github.com/plotly/plotly.py) from 4.13.0 to 4.14.1.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v4.13.0...v4.14.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-14 05:43:33 +00:00
dependabot[bot]
3bea9255e7 Bump cachetools from 4.1.1 to 4.2.0
Bumps [cachetools](https://github.com/tkem/cachetools) from 4.1.1 to 4.2.0.
- [Release notes](https://github.com/tkem/cachetools/releases)
- [Changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/tkem/cachetools/compare/v4.1.1...v4.2.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-14 05:43:33 +00:00
Matthias
dad427461d Downgrade dockerfile to 3.8.6 to avoid image bloat 2020-12-13 13:11:04 +01:00
Matthias
a4bfd0b0aa Split linux and OSX builds into 2 seperate, parallel jobs 2020-12-13 11:25:42 +01:00
Matthias
be555895b2 Merge branch 'develop' into dependabot/docker/python-3.9.0-slim-buster 2020-12-13 11:24:23 +01:00
Matthias
7c6357cc45 Merge pull request #4041 from freqtrade/plugins/protections_backtest
Introduce Protection Plugins
2020-12-13 11:08:24 +01:00
Matthias
657b002a81 Explicitly check for False in fetch_ticker 2020-12-13 10:59:29 +01:00
Matthias
9cd1be8f93 Update usage of open_trade_price to open_trade_value 2020-12-13 10:33:45 +01:00
Matthias
7eab33de08 Merge branch 'develop' into plugins/protections_backtest 2020-12-13 10:31:33 +01:00
Matthias
8a2fbf6592 Small cleanup of protection stuff 2020-12-13 10:16:09 +01:00
Matthias
1436dc58f5 Merge pull request #4057 from freqtrade/avoid_high_fee_wrong_reports
Avoid high fee wrong reports
2020-12-12 20:04:06 +01:00
Matthias
14647fb5f0 Add tests for update fee 2020-12-12 11:49:52 +01:00
Matthias
3ee7fe64ba Clean up some tests 2020-12-12 11:25:56 +01:00
Matthias
181b88dc75 Don't accept too high fees, assuming they are erroneous
Forces fallback to "detection from trades"
2020-12-12 10:52:27 +01:00
Matthias
aa4ac87fd4 Merge pull request #4052 from Samaoo/patch-4
Update backtesting.md
2020-12-12 10:48:23 +01:00
Samaoo
b45c2fb1d0 Update backtesting.md 2020-12-12 10:27:17 +01:00
Matthias
6107878f4e Bump ccxt to 1.39.10
closes #4051
2020-12-12 07:08:29 +01:00
Matthias
aab8e36e78 Merge pull request #4046 from dmmop/patch-1
Update dockerfile to multistage
2020-12-11 09:10:36 +01:00
Matthias
c784e5780e Merge pull request #4054 from freqtrade/models_open_price
Models open price
2020-12-11 06:31:02 +01:00
Matthias
95fd3824da Finish renamal of open_trade_price to open_value 2020-12-10 19:36:52 +01:00
Matthias
201cc67e05 Rename open_trade_price to "open_trade_value" 2020-12-10 19:21:20 +01:00
Matthias
76594d5dde Merge pull request #3799 from imxuwang/issue3783
Introduce Telegram /stats endpoint
2020-12-10 15:41:09 +01:00
Matthias
ca99d484fc Refactor to use list comprehension 2020-12-10 07:39:50 +01:00
Matthias
33f330256b Reorder commands on telegram init 2020-12-09 20:36:30 +01:00
Samaoo
af53dfbfab Update backtesting.md 2020-12-09 15:57:15 +01:00
Samaoo
f5817063b7 Update backtesting.md 2020-12-09 15:53:38 +01:00
David Martinez Martin
25f8e0cc57 Added git packages for future dependencies 2020-12-09 11:28:45 +01:00
David Martinez Martin
5708098256 Move ENV PATH to base image 2020-12-09 10:34:38 +01:00
Matthias
7126aa9514 Merge pull request #4047 from freqtrade/strategy_manatory
Ensure non-defined attributes fail correctly
2020-12-09 10:27:29 +01:00
Matthias
f1af2972e2 Ensure non-defined attributes fail correctly
Remove unnecessary check, as stoploss cannot be none (it's mandatory and
a number)
2020-12-09 07:55:08 +01:00
David Martinez Martin
e6b3e64534 Update dockerfile to multistage
This change reduce the image size from 727Mb to 469Mb.
2020-12-09 03:27:59 +01:00
Matthias
d9a86158f4 Add cmake to support raspberry 64bit installs 2020-12-08 19:46:54 +01:00
Matthias
ad7b29cc1d Merge pull request #4045 from Samaoo/patch-3
Update data-download.md
2020-12-08 19:14:17 +01:00
Samaoo
118a22d010 Update data-download.md 2020-12-08 18:04:26 +01:00
Matthias
9725b8e17c Update Dockerfile 2020-12-08 08:43:22 +01:00
Matthias
f897b683c7 Add seperate page describing plugins 2020-12-07 19:22:14 +01:00
Matthias
82bc6973fe Add last key to config_full 2020-12-07 16:16:33 +01:00
Matthias
c37bc307e2 Small finetunings to documentation 2020-12-07 16:12:03 +01:00
Matthias
b5289d5f0e Update full config with correct protection keys 2020-12-07 16:02:55 +01:00
Matthias
de2cc9708d Fix test leakage 2020-12-07 16:01:29 +01:00
Matthias
f047297995 Improve wording, fix bug 2020-12-07 15:48:06 +01:00
Matthias
3ab5514697 Add API endpoint for /stats 2020-12-07 15:07:08 +01:00
Matthias
81410fb404 Document /stats for telegram 2020-12-07 15:03:16 +01:00
Matthias
e873cafdc4 Beautify code a bit 2020-12-07 14:54:39 +01:00
Matthias
effc96e92b Improve tests for backtest protections 2020-12-07 11:39:01 +01:00
Matthias
5849d07497 Export locks as part of backtesting 2020-12-07 11:39:01 +01:00
Matthias
57a4044eb0 Enhance test verifying that locks are not replaced 2020-12-07 11:39:01 +01:00
Matthias
bb51da8297 Fix slow backtest due to protections 2020-12-07 11:39:01 +01:00
Matthias
75a5161650 Support multis-strategy backtests with protections 2020-12-07 11:39:01 +01:00
Matthias
a3f9cd2c26 Only load protections when necessary 2020-12-07 11:39:01 +01:00
Matthias
946fb09455 Update help command output 2020-12-07 11:39:01 +01:00
Matthias
e2d15f4082 Add parameter to enable protections for backtesting 2020-12-07 11:39:01 +01:00
Matthias
32189d27c8 Disable output from plugins in backtesting 2020-12-07 11:39:01 +01:00
Matthias
9f34aebdaa Allow closing trades without message 2020-12-07 11:39:01 +01:00
Matthias
b606936eb7 Make changes to backtesting to incorporate protections 2020-12-07 11:39:01 +01:00
Matthias
98c88fa58e Prepare protections for backtesting 2020-12-07 11:39:01 +01:00
Matthias
3426e99b8b Improve formatting of protection startup message 2020-12-07 11:37:57 +01:00
Matthias
64d6c7bb65 Update developer docs 2020-12-07 11:17:11 +01:00
Matthias
0e2a43ab4d Add duration_explanation functions 2020-12-07 11:12:09 +01:00
Matthias
c993831a04 Add protections to startup messages 2020-12-07 10:57:01 +01:00
Matthias
d4799e6aa3 Implement *candle definitions 2020-12-07 10:54:26 +01:00
Matthias
a93bb6853b Document *candles settings, implement validations 2020-12-07 10:47:13 +01:00
Matthias
eb952d77be Move lookback_period to parent __init__ 2020-12-07 08:27:14 +01:00
Matthias
f13e9ce5ed Improve docs 2020-12-07 08:23:10 +01:00
Matthias
b36f333b2f Add new protections to full sample, documentation 2020-12-07 08:23:10 +01:00
Matthias
f06b58dc91 Test MaxDrawdown desc 2020-12-07 08:23:10 +01:00
Matthias
089c463cfb Introduce max_drawdown protection 2020-12-07 08:23:10 +01:00
Matthias
9d6f3a89ef Improve docs and fix typos 2020-12-07 08:23:10 +01:00
Matthias
768d7fa196 Readd optional for get_pair_locks - it's necessary 2020-12-07 08:23:10 +01:00
Matthias
9947dcd1da Beta feature warning 2020-12-07 08:23:10 +01:00
Matthias
ad746627b3 Fix lock-loop 2020-12-07 08:23:10 +01:00
Matthias
397a15cb61 Improve protection documentation 2020-12-07 08:23:10 +01:00
Matthias
4351a26b4c Move stop_duration to parent class
avoids reimplementation and enhances standardization
2020-12-07 08:23:10 +01:00
Matthias
12e84bda1e Add developer docs for Protections 2020-12-07 08:23:10 +01:00
Matthias
6d0f16920f Get Longest lock logic 2020-12-07 08:23:10 +01:00
Matthias
dce2364672 Add stoploss per pair support 2020-12-07 08:23:10 +01:00
Matthias
dcdf4a0503 Improve tests 2020-12-07 08:23:10 +01:00
Matthias
32cde1cb7d Improve test for lowprofitpairs 2020-12-07 08:23:10 +01:00
Matthias
8f958ef723 Improve login-mixin structure 2020-12-07 08:23:10 +01:00
Matthias
8d9c66a638 Add LogginMixin to freqtradebot class to avoid over-logging 2020-12-07 08:23:10 +01:00
Matthias
be57ceb252 Remove confusing entry
(in this branch of the if statement, candle_date is empty
2020-12-07 08:23:10 +01:00
Matthias
5e3d2401f5 Only call stop methods when they actually support this method 2020-12-07 08:23:10 +01:00
Matthias
2cd54a5933 Allow disabling output from plugins 2020-12-07 08:23:10 +01:00
Matthias
8ebd6ad200 Rename login-mixin log method 2020-12-07 08:23:10 +01:00
Matthias
2e5b9fd4b2 format profit in low_profit_pairs 2020-12-07 08:23:10 +01:00
Matthias
e29d918ea5 Avoid double-locks also in per pair locks 2020-12-07 08:23:10 +01:00
Matthias
fc97266dd4 Add "now" to lock_pair method 2020-12-07 08:23:10 +01:00
Matthias
59091ef2b7 Add helper method to calculate protection until 2020-12-07 08:23:10 +01:00
Matthias
47cd856fea Include protection documentation 2020-12-07 08:23:10 +01:00
Matthias
5133675988 Apply all stops in the list, even if the first would apply already 2020-12-07 08:23:10 +01:00
Matthias
9484ee6690 Test for low_profit_pairs 2020-12-07 08:23:10 +01:00
Matthias
bb06365c50 Improve protection documentation 2020-12-07 08:23:10 +01:00
Matthias
1f703dc341 Improve protection documentation 2020-12-07 08:23:10 +01:00
Matthias
00d4820bc1 Add low_profit_pairs 2020-12-07 08:23:10 +01:00
Matthias
9f6c2a583f Better wording for config options 2020-12-07 08:23:10 +01:00
Matthias
8dbef6bbea Add test for cooldown period 2020-12-07 08:23:10 +01:00
Matthias
fe0afb9883 Implement calling of per-pair protection 2020-12-07 08:23:10 +01:00
Matthias
2a66c33a4e Add locks per pair 2020-12-07 08:23:10 +01:00
Matthias
ff7ba23477 Simplify enter_positions and add global pairlock check 2020-12-07 08:23:10 +01:00
Matthias
05be33ccd4 Simplify is_pair_locked 2020-12-07 08:23:10 +01:00
Matthias
56975db2ed Add more tests 2020-12-07 08:23:10 +01:00
Matthias
2b85e7eac3 Add initial tests for StoplossGuard protection 2020-12-07 08:23:10 +01:00
Matthias
816703b8e1 Improve protections work 2020-12-07 08:23:10 +01:00
Matthias
f39a534fc0 Implement global stop (First try) 2020-12-07 08:23:10 +01:00
Matthias
246b4a57a4 add small note to pairlist dev docs 2020-12-07 08:23:10 +01:00
Matthias
04878c3ce1 Rename test directory for pairlist 2020-12-07 08:23:10 +01:00
Matthias
3447f1ae53 Implement first stop method 2020-12-07 08:23:10 +01:00
Matthias
a0bd2ce837 Add first version of protection manager 2020-12-07 08:23:10 +01:00
Matthias
b6b9c8e5cc Move "slow-log" to it's own mixin 2020-12-07 08:23:10 +01:00
Matthias
f01d86060a Merge pull request #4040 from freqtrade/dependabot/pip/develop/ccxt-1.38.87
Bump ccxt from 1.38.55 to 1.38.87
2020-12-07 08:12:30 +01:00
Matthias
1fd652d3de Merge pull request #4039 from freqtrade/dependabot/pip/develop/mkdocs-material-6.1.7
Bump mkdocs-material from 6.1.6 to 6.1.7
2020-12-07 08:06:02 +01:00
dependabot[bot]
647e6509a4 Bump ccxt from 1.38.55 to 1.38.87
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.38.55 to 1.38.87.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.38.55...1.38.87)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-07 05:48:43 +00:00
dependabot[bot]
0c0eb8236d Bump mkdocs-material from 6.1.6 to 6.1.7
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 6.1.6 to 6.1.7.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/6.1.6...6.1.7)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-07 05:48:23 +00:00
Matthias
51fbd0698c Move get_logs to be static method 2020-12-06 19:57:48 +01:00
Matthias
245c19f5e9 Add simple test for /stats call 2020-12-05 14:48:56 +01:00
Matthias
aa27c9ace2 Reorder methods in telegram
/stats is closely related to /profit
2020-12-05 14:39:50 +01:00
Matthias
143423145c Refactor most of the logic to rpc.py
this way /stats can be used by other RPC methods too
2020-12-05 14:38:42 +01:00
Matthias
c556d1b37e Make /stats working 2020-12-05 14:06:46 +01:00
Matthias
8f61b68b2a Merge branch 'develop' into pr/imxuwang/3799 2020-12-05 14:06:23 +01:00
Matthias
058d40a72c Fix telegram /daily command without arguments 2020-12-05 08:16:40 +01:00
Matthias
71e46794b4 Add updating documentation
closes #4036
2020-12-04 19:59:26 +01:00
Matthias
f37af9d98a Merge pull request #4033 from Samaoo/patch-2
Put dollar sign after amount in edge.md
2020-12-04 19:50:46 +01:00
Samaoo
7f453033a4 Update edge.md 2020-12-04 16:53:41 +01:00
Matthias
2fbbeb970b Gracefully handle cases where no buy price was found
closes #4030
2020-12-04 07:42:16 +01:00
Matthias
22595e6f92 Merge pull request #3929 from radwayne/roi_trailing_backtest
change backtesting behaviour if roi and trailing-stop happen at the same time
2020-12-03 19:40:46 +01:00
Matthias
01cb676f2c Merge pull request #4015 from freqtrade/dependabot/pip/develop/python-telegram-bot-13.1
Bump python-telegram-bot from 13.0 to 13.1
2020-12-02 19:02:10 +01:00
Matthias
9e063b9fc8 Merge pull request #4026 from Samaoo/patch-1
Update faq.md
2020-12-02 09:05:59 +01:00
Samaoo
9b4a81c0a4 Update faq.md 2020-12-02 08:40:49 +01:00
Matthias
c09c23eab1 Make sure non-int telegram values don't crash the bot 2020-12-02 07:51:59 +01:00
Matthias
d039ce1fb3 Update available columns for hyperopt
closes #4025
2020-12-02 06:46:18 +01:00
Matthias
4f8bc73d1a Merge pull request #4024 from Samaoo/patch-2
Update faq.md
2020-12-02 06:40:02 +01:00
Samaoo
3c4fe66d86 Update faq.md 2020-12-01 21:50:51 +01:00
Samaoo
4bc24ece41 Update faq.md 2020-12-01 21:49:50 +01:00
Samaoo
c1fffb9925 Update faq.md 2020-12-01 21:38:54 +01:00
Matthias
d6cc3d7374 Improve FAQ
related to question in #4023
2020-12-01 19:58:06 +01:00
Matthias
5dfa1807a3 Fix tests after small updates 2020-12-01 19:57:43 +01:00
Matthias
36b7edc342 Update typing errors 2020-12-01 19:57:09 +01:00
Matthias
de0c5f9133 Merge pull request #4022 from freqtrade/pi_setup
improve setup.sh script
2020-12-01 07:03:26 +01:00
Matthias
cec771b593 Ask for plotting dependency installation 2020-12-01 06:48:16 +01:00
Matthias
5f70d1f9a7 Ask for hyperopt installation during setup
closes #2871
2020-12-01 06:48:16 +01:00
Matthias
95b24ba8a9 Update setup.sh with some specifics 2020-12-01 06:48:12 +01:00
Matthias
202ca88e23 Changes to pi steup 2020-11-30 17:37:19 +01:00
dependabot[bot]
14d44b2cd6 Bump python-telegram-bot from 13.0 to 13.1
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 13.0 to 13.1.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v13.0...v13.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-30 08:02:09 +00:00
Matthias
dda5bcbc8d Merge pull request #4009 from mrsegen/patch-4
[Pairlist] Add PerformanceFilter
2020-11-30 07:48:15 +01:00
Matthias
5da41160bf Merge pull request #4017 from freqtrade/dependabot/pip/develop/ccxt-1.38.55
Bump ccxt from 1.38.13 to 1.38.55
2020-11-30 07:29:14 +01:00
Matthias
a22fd7eb3b Merge pull request #4016 from freqtrade/dependabot/pip/develop/plotly-4.13.0
Bump plotly from 4.12.0 to 4.13.0
2020-11-30 07:29:01 +01:00
dependabot[bot]
275cfb3a9c Bump ccxt from 1.38.13 to 1.38.55
Bumps [ccxt](https://github.com/ccxt/ccxt) from 1.38.13 to 1.38.55.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/doc/exchanges-by-country.rst)
- [Commits](https://github.com/ccxt/ccxt/compare/1.38.13...1.38.55)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-30 05:42:12 +00:00
dependabot[bot]
f17c7f0609 Bump plotly from 4.12.0 to 4.13.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 4.12.0 to 4.13.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v4.12.0...v4.13.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-30 05:42:00 +00:00
Leif Segen
b7de18608d Trigger CI 2020-11-29 10:30:43 -06:00
Leif Segen
99abe52043 Trigger CI 2020-11-29 10:30:02 -06:00
Leif Segen
5f8e67d2b2 Update docs/includes/pairlists.md
Co-authored-by: Matthias <xmatthias@outlook.com>
2020-11-29 05:05:54 -06:00
Matthias
18de9cc5e5 Merge pull request #4012 from freqtrade/best_worst_pair
Enhance backtesting summary report
2020-11-29 10:54:09 +01:00
Leif Segen
90070f0dc5 Force test rerun 2020-11-28 17:17:40 -06:00
Leif Segen
1791495475 Trigger another run of tests 2020-11-28 16:50:44 -06:00
Leif Segen
4b6f5b92b5 Remove non-pertinent test case 2020-11-28 12:47:36 -06:00
Leif Segen
e7a035eefe Lint 2020-11-28 12:29:31 -06:00
Leif Segen
d6c9391924 Restoring expectation 2020-11-28 12:18:23 -06:00
Leif Segen
323c0657f8 Sort by profit after sort by count/pair 2020-11-28 12:17:03 -06:00
Leif Segen
6a74c57c3d Pair name-based sorting.
Attempt at more rational string sorting. Change test to show not working as expected.
2020-11-28 11:33:25 -06:00
Matthias
e40d97e05e Small formatting improvements 2020-11-28 17:52:29 +01:00
Matthias
5d3f59df90 Add best / worst trade 2020-11-28 17:45:56 +01:00
Matthias
a00f852cf9 Add best / worst pair to summary statistics 2020-11-28 17:37:10 +01:00
Leif Segen
03c5714399 Use explicit merge without depending on library detail. Add no trades case. 2020-11-28 09:45:17 -06:00
Leif Segen
e1d42ba78c Alphabetize 2020-11-28 09:44:01 -06:00
Matthias
56529180eb Further improve hyperopt docs 2020-11-28 16:42:08 +01:00
Matthias
ff286bd80c Slightly clarify hyperopt docs 2020-11-28 16:32:44 +01:00
Matthias
a47d8dbe56 Small refactor, avoiding duplicate calculation of profits 2020-11-28 11:35:29 +01:00
Matthias
829a47b187 Merge pull request #4006 from freqtrade/remove_deprecated_experimentals
Remove deprecated experimental settings
2020-11-28 10:34:47 +01:00
Matthias
4cb331b5ad Remove non-needed parameters from tests 2020-11-28 10:24:44 +01:00
Matthias
b7703e6428 Merge pull request #4007 from mrsegen/patch-2
Fix link
2020-11-28 10:22:58 +01:00
Leif Segen
37d2e476df isort imports 2020-11-28 01:59:30 -06:00
Leif Segen
f448564073 Lint 2020-11-28 01:49:46 -06:00
Leif Segen
ecce5265f5 Linting 2020-11-28 01:43:19 -06:00
Leif Segen
fefa500963 More lint 2020-11-28 01:34:40 -06:00
Leif Segen
966c6b308f Satisfy linter. 2020-11-28 01:34:18 -06:00
Leif Segen
1f7d681ddb Merge branch 'patch-4' of https://github.com/mrsegen/freqtrade into patch-4 2020-11-28 01:22:15 -06:00
Leif Segen
dbd50fdff6 Document filter. 2020-11-28 01:22:03 -06:00
Leif Segen
cfbd1c4c43 Merge branch 'develop' into patch-4 2020-11-28 01:17:34 -06:00
Leif Segen
662ec32073 Add test cases 2020-11-28 01:15:36 -06:00
Leif Segen
26855800a3 Remove unused seed 2020-11-28 00:39:18 -06:00
Leif Segen
4600bb807c Existing tests pass. 2020-11-28 00:38:06 -06:00
Leif Segen
9538fa1d72 Tweak main parameterized block for PerformanceFilter
Remove randomized exception that was geared toward ShuffleFilter. Remove case involvoing seed, also geared toward ShuffleFilter. Mock get_overall_performance().
2020-11-28 00:24:48 -06:00
Leif Segen
91b4c80d35 Remove unused parameters 2020-11-27 22:18:49 -06:00
Leif Segen
afb795b6f5 Remove unnecessary test
PerforamnceFilter doesn't use seeds, so no need to provide different ones.
2020-11-27 22:08:23 -06:00
Leif Segen
380cca2252 Remove unused imports 2020-11-27 22:00:48 -06:00
Leif Segen
3357350628 Revert unintended change 2020-11-27 22:00:36 -06:00
Leif Segen
c34150552f Revert unrelated change 2020-11-27 21:36:55 -06:00
Leif Segen
05686998bb Add starter entry in documentation 2020-11-27 21:26:42 -06:00
Leif Segen
7cbd89657f Initial step towards implementing proposed code 2020-11-27 21:24:40 -06:00
Leif Segen
89573348b6 Fix link 2020-11-27 20:37:52 -06:00
Matthias
af1b3721fb remove duplicate settings check 2020-11-27 20:28:17 +01:00
Matthias
95c3c45ec9 Remove long deprecated settings that moved from experimental to
ask_strategy
2020-11-27 20:24:32 +01:00
Leif Segen
46ec6f498c Correct link
Fix prior redirection to a non-working link: https://www.freqtrade.io/en/latest/telegram-usage/configuration/#understand-forcebuy_enable
2020-11-27 12:51:44 -06:00
Matthias
c69ce28b76 Update backtest assumption documentation 2020-11-27 09:26:58 +01:00
Matthias
fefb4b23d0 revise logic in should_sell 2020-11-27 09:24:53 +01:00
Matthias
4aa6ebee04 Add more tests for #2422 2020-11-27 09:17:25 +01:00
Matthias
57461a59f3 Update backtesting documentation with new logic 2020-11-27 08:30:17 +01:00
Matthias
81d08c4def Add detailed backtest test verifying the ROI / trailing stop collision 2020-11-27 08:24:56 +01:00
Leif Segen
d959eeb97d Merge pull request #2 from freqtrade/develop
catch up forked dev with original dev
2020-11-23 22:11:17 -06:00
Leif Segen
312533fded Match current dev file 2020-11-23 22:08:53 -06:00
Matthias
7a8b274a44 Merge branch 'develop' into pr/imxuwang/3799 2020-11-19 13:18:03 +01:00
Matthias
dd42d61d03 Run CI on 3.9 2020-11-17 19:44:39 +01:00
dependabot[bot]
181d3a3808 Bump python from 3.8.6-slim-buster to 3.9.0-slim-buster
Bumps python from 3.8.6-slim-buster to 3.9.0-slim-buster.

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-17 19:44:05 +01:00
radwayne
8e03fee868 Update interface.py
Changed The should_sell() method, to handle the case where both ROI and trailing stoploss are reached in backtest.
2020-11-06 13:56:46 +01:00
Matthias
50e7418d24 Merge branch 'develop' into pr/imxuwang/3799 2020-10-22 08:05:09 +02:00
Matthias
2f91f87ad3 Merge branch 'develop' into pr/imxuwang/3799 2020-10-22 07:55:48 +02:00
Xu Wang
1c27aaab72 Declare type of 'dur'. 2020-10-18 20:24:13 +01:00
Xu Wang
355afc082e Add command 'stats' in expected test output. 2020-10-05 10:05:15 +01:00
Xu Wang
7bce2cd29d Add trade duration by win/loss. 2020-09-28 20:30:20 +01:00
Xu Wang
627e221b65 Use tabulate to create sell reason message. 2020-09-27 20:23:13 +01:00
Xu Wang
44ad0f631c Summarize trade reason for telegram command /stats. 2020-09-26 22:40:54 +01:00
Xu Wang
28411da83e Add the telegram command function template. 2020-09-22 22:28:12 +01:00
Leif Segen
1b4b10f8cd Update docs/installation.md
Address that numpy is required before `python3 -m pip install -r requirements.txt` can run.
2019-07-23 23:45:27 -05:00
448 changed files with 79173 additions and 18482 deletions

View File

@@ -1,18 +1,21 @@
FROM freqtradeorg/freqtrade:develop
USER root
# Install dependencies
COPY requirements-dev.txt /freqtrade/
RUN apt-get update \
&& apt-get -y install git sudo vim \
&& apt-get -y install git mercurial sudo vim build-essential \
&& apt-get clean \
&& pip install autopep8 -r docs/requirements-docs.txt -r requirements-dev.txt --no-cache-dir \
&& useradd -u 1000 -U -m ftuser \
&& mkdir -p /home/ftuser/.vscode-server /home/ftuser/.vscode-server-insiders /home/ftuser/commandhistory \
&& echo "export PROMPT_COMMAND='history -a'" >> /home/ftuser/.bashrc \
&& echo "export HISTFILE=~/commandhistory/.bash_history" >> /home/ftuser/.bashrc \
&& chown ftuser:ftuser -R /home/ftuser/.local/ \
&& chown ftuser: -R /home/ftuser/
USER ftuser
RUN pip install --user autopep8 -r docs/requirements-docs.txt -r requirements-dev.txt --no-cache-dir
# Empty the ENTRYPOINT to allow all commands
ENTRYPOINT []

View File

@@ -1,11 +1,20 @@
{
"name": "freqtrade Develop",
"dockerComposeFile": [
"docker-compose.yml"
"build": {
"dockerfile": "Dockerfile",
"context": ".."
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [
8080
],
"mounts": [
"source=freqtrade-bashhistory,target=/home/ftuser/commandhistory,type=volume"
],
// Uncomment to connect as a non-root user if you've added one. See https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "ftuser",
"service": "ft_vscode",
"postCreateCommand": "freqtrade create-userdir --userdir user_data/",
"workspaceFolder": "/freqtrade/",
@@ -25,20 +34,6 @@
"ms-python.vscode-pylance",
"davidanson.vscode-markdownlint",
"ms-azuretools.vscode-docker",
"vscode-icons-team.vscode-icons",
],
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Uncomment the next line if you want start specific services in your Docker Compose config.
// "runServices": [],
// Uncomment the next line if you want to keep your containers running after VS Code shuts down.
// "shutdownAction": "none",
// Uncomment the next line to run commands after the container is created - for example installing curl.
// "postCreateCommand": "sudo apt-get update && apt-get install -y git",
// Uncomment to connect as a non-root user if you've added one. See https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "ftuser"
}

View File

@@ -1,24 +0,0 @@
---
version: '3'
services:
ft_vscode:
build:
context: ..
dockerfile: ".devcontainer/Dockerfile"
volumes:
# Allow git usage within container
- "${HOME}/.ssh:/home/ftuser/.ssh:ro"
- "${HOME}/.gitconfig:/home/ftuser/.gitconfig:ro"
- ..:/freqtrade:cached
# Persist bash-history
- freqtrade-vscode-server:/home/ftuser/.vscode-server
- freqtrade-bashhistory:/home/ftuser/commandhistory
# Expose API port
ports:
- "127.0.0.1:8080:8080"
command: /bin/sh -c "while sleep 1000; do :; done"
volumes:
freqtrade-vscode-server:
freqtrade-bashhistory:

View File

@@ -1,9 +1,9 @@
.git
.gitignore
Dockerfile
Dockerfile.armhf
.dockerignore
config.json*
*.sqlite
docker/
.coveragerc
.eggs
.github
@@ -13,4 +13,13 @@ CONTRIBUTING.md
MANIFEST.in
README.md
freqtrade.service
freqtrade.egg-info
config.json*
*.sqlite
user_data
*.log
.vscode
.mypy_cache
.ipynb_checkpoints

3
.gitattributes vendored Normal file
View File

@@ -0,0 +1,3 @@
*.py eol=lf
*.sh eol=lf
*.ps1 eol=crlf

3
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,3 @@
# These are supported funding model platforms
github: [xmatthias]

View File

@@ -9,7 +9,7 @@ assignees: ''
<!--
Have you searched for similar issues before posting it?
If you have discovered a bug in the bot, please [search our issue tracker](https://github.com/freqtrade/freqtrade/issues?q=is%3Aissue).
If you have discovered a bug in the bot, please [search the issue tracker](https://github.com/freqtrade/freqtrade/issues?q=is%3Aissue).
If it hasn't been reported, please create a new issue.
Please do not use bug reports to request new features.

6
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,6 @@
---
blank_issues_enabled: false
contact_links:
- name: Discord Server
url: https://discord.gg/p7nuUNVfP7
about: Ask a question or get community support from our Discord server

View File

@@ -24,4 +24,3 @@ Have you search for this feature before requesting it? It's highly likely that a
## Describe the enhancement
*Explain the enhancement you would like*

View File

@@ -1,5 +1,5 @@
---
name: BQuestion
name: Question
about: Ask a question you could not find an answer in the docs
title: ''
labels: "Question"
@@ -22,4 +22,4 @@ Please do not use the question template to report bugs or to request new feature
## Your question
*Ask the question you have not been able to find an answer in our [Documentation](https://www.freqtrade.io/en/latest/)*
*Ask the question you have not been able to find an answer in the [Documentation](https://www.freqtrade.io/en/latest/)*

View File

@@ -1,15 +1,17 @@
Thank you for sending your pull request. But first, have you included
<!-- Thank you for sending your pull request. But first, have you included
unit tests, and is your code PEP8 conformant? [More details](https://github.com/freqtrade/freqtrade/blob/develop/CONTRIBUTING.md)
-->
## Summary
Explain in one sentence the goal of this PR
<!-- Explain in one sentence the goal of this PR -->
Solve the issue: #___
## Quick changelog
- <change log #1>
- <change log #2>
- <change log 1>
- <change log 1>
## What's new?
*Explain in details what this PR solve or improve. You can include visuals.*
<!-- Explain in details what this PR solve or improve. You can include visuals. -->

View File

@@ -5,9 +5,17 @@ updates:
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: pip
directory: "/"
schedule:
interval: weekly
open-pull-requests-limit: 10
target-branch: develop
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
target-branch: develop

View File

@@ -3,9 +3,9 @@ name: Freqtrade CI
on:
push:
branches:
- master
- stable
- develop
- ci/*
tags:
release:
types: [published]
@@ -13,52 +13,50 @@ on:
schedule:
- cron: '0 5 * * 4'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
build_linux:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-18.04, ubuntu-20.04, macos-latest ]
python-version: [3.7, 3.8]
os: [ ubuntu-18.04, ubuntu-20.04, ubuntu-22.04 ]
python-version: ["3.8", "3.9", "3.10"]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache_dependencies
uses: actions/cache@v1
uses: actions/cache@v3
id: cache
with:
path: ~/dependencies/
key: ${{ runner.os }}-dependencies
- name: pip cache (linux)
uses: actions/cache@preview
if: startsWith(matrix.os, 'ubuntu')
uses: actions/cache@v3
if: runner.os == 'Linux'
with:
path: ~/.cache/pip
key: test-${{ matrix.os }}-${{ matrix.python-version }}-pip
- name: pip cache (macOS)
uses: actions/cache@preview
if: startsWith(matrix.os, 'macOS')
with:
path: ~/Library/Caches/pip
key: test-${{ matrix.os }}-${{ matrix.python-version }}-pip
- name: TA binary *nix
if: steps.cache.outputs.cache-hit != 'true'
run: |
cd build_helpers && ./install_ta-lib.sh ${HOME}/dependencies/; cd ..
- name: Installation - *nix
if: runner.os == 'Linux'
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade pip wheel
export LD_LIBRARY_PATH=${HOME}/dependencies/lib:$LD_LIBRARY_PATH
export TA_LIBRARY_PATH=${HOME}/dependencies/lib
export TA_INCLUDE_PATH=${HOME}/dependencies/include
@@ -68,27 +66,118 @@ jobs:
- name: Tests
run: |
pytest --random-order --cov=freqtrade --cov-config=.coveragerc
if: matrix.python-version != '3.9' || matrix.os != 'ubuntu-22.04'
- name: Tests incl. ccxt compatibility tests
run: |
pytest --random-order --cov=freqtrade --cov-config=.coveragerc --longrun
if: matrix.python-version == '3.9' && matrix.os == 'ubuntu-22.04'
- name: Coveralls
if: (startsWith(matrix.os, 'ubuntu-20') && matrix.python-version == '3.8')
if: (runner.os == 'Linux' && matrix.python-version == '3.9')
env:
# Coveralls token. Not used as secret due to github not providing secrets to forked repositories
COVERALLS_REPO_TOKEN: 6D1m0xupS3FgutfuGao8keFf9Hc0FpIXu
run: |
# Allow failure for coveralls
coveralls -v || true
coveralls || true
- name: Backtesting
- name: Backtesting (multi)
run: |
cp config.json.example config.json
cp config_examples/config_bittrex.example.json config.json
freqtrade create-userdir --userdir user_data
freqtrade backtesting --datadir tests/testdata --strategy SampleStrategy
freqtrade new-strategy -s AwesomeStrategy
freqtrade new-strategy -s AwesomeStrategyMin --template minimal
freqtrade backtesting --datadir tests/testdata --strategy-list AwesomeStrategy AwesomeStrategyMin -i 5m
- name: Hyperopt
run: |
cp config.json.example config.json
cp config_examples/config_bittrex.example.json config.json
freqtrade create-userdir --userdir user_data
freqtrade hyperopt --datadir tests/testdata -e 5 --strategy SampleStrategy --hyperopt SampleHyperOpt --hyperopt-loss SharpeHyperOptLossDaily --print-all
freqtrade hyperopt --datadir tests/testdata -e 5 --strategy SampleStrategy --hyperopt-loss SharpeHyperOptLossDaily --print-all
- name: Flake8
run: |
flake8
- name: Sort imports (isort)
run: |
isort --check .
- name: Mypy
run: |
mypy freqtrade scripts tests
- name: Discord notification
uses: rjstone/discord-webhook-notify@v1
if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false)
with:
severity: error
details: Freqtrade CI failed on ${{ matrix.os }}
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
build_macos:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ macos-latest ]
python-version: ["3.8", "3.9", "3.10"]
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache_dependencies
uses: actions/cache@v3
id: cache
with:
path: ~/dependencies/
key: ${{ runner.os }}-dependencies
- name: pip cache (macOS)
uses: actions/cache@v3
if: runner.os == 'macOS'
with:
path: ~/Library/Caches/pip
key: test-${{ matrix.os }}-${{ matrix.python-version }}-pip
- name: TA binary *nix
if: steps.cache.outputs.cache-hit != 'true'
run: |
cd build_helpers && ./install_ta-lib.sh ${HOME}/dependencies/; cd ..
- name: Installation - macOS
if: runner.os == 'macOS'
run: |
brew update
brew install hdf5 c-blosc
python -m pip install --upgrade pip wheel
export LD_LIBRARY_PATH=${HOME}/dependencies/lib:$LD_LIBRARY_PATH
export TA_LIBRARY_PATH=${HOME}/dependencies/lib
export TA_INCLUDE_PATH=${HOME}/dependencies/include
pip install -r requirements-dev.txt
pip install -e .
- name: Tests
run: |
pytest --random-order
- name: Backtesting
run: |
cp config_examples/config_bittrex.example.json config.json
freqtrade create-userdir --userdir user_data
freqtrade new-strategy -s AwesomeStrategyAdv --template advanced
freqtrade backtesting --datadir tests/testdata --strategy AwesomeStrategyAdv
- name: Hyperopt
run: |
cp config_examples/config_bittrex.example.json config.json
freqtrade create-userdir --userdir user_data
freqtrade hyperopt --datadir tests/testdata -e 5 --strategy SampleStrategy --hyperopt-loss SharpeHyperOptLossDaily --print-all
- name: Flake8
run: |
@@ -102,16 +191,13 @@ jobs:
run: |
mypy freqtrade scripts
- name: Slack Notification
uses: homoluctus/slatify@v1.8.0
- name: Discord notification
uses: rjstone/discord-webhook-notify@v1
if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false)
with:
type: ${{ job.status }}
job_name: '*Freqtrade CI ${{ matrix.os }}*'
mention: 'here'
mention_if: 'failure'
channel: '#notifications'
url: ${{ secrets.SLACK_WEBHOOK }}
severity: info
details: Test Succeeded!
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
build_windows:
@@ -119,19 +205,18 @@ jobs:
strategy:
matrix:
os: [ windows-latest ]
python-version: [3.7, 3.8]
python-version: ["3.8", "3.9", "3.10"]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Pip cache (Windows)
uses: actions/cache@preview
if: startsWith(runner.os, 'Windows')
uses: actions/cache@v3
with:
path: ~\AppData\Local\pip\Cache
key: ${{ matrix.os }}-${{ matrix.python-version }}-pip
@@ -142,19 +227,19 @@ jobs:
- name: Tests
run: |
pytest --random-order --cov=freqtrade --cov-config=.coveragerc
pytest --random-order
- name: Backtesting
run: |
cp config.json.example config.json
cp config_examples/config_bittrex.example.json config.json
freqtrade create-userdir --userdir user_data
freqtrade backtesting --datadir tests/testdata --strategy SampleStrategy
- name: Hyperopt
run: |
cp config.json.example config.json
cp config_examples/config_bittrex.example.json config.json
freqtrade create-userdir --userdir user_data
freqtrade hyperopt --datadir tests/testdata -e 5 --strategy SampleStrategy --hyperopt SampleHyperOpt --hyperopt-loss SharpeHyperOptLossDaily --print-all
freqtrade hyperopt --datadir tests/testdata -e 5 --strategy SampleStrategy --hyperopt-loss SharpeHyperOptLossDaily --print-all
- name: Flake8
run: |
@@ -162,32 +247,44 @@ jobs:
- name: Mypy
run: |
mypy freqtrade scripts
mypy freqtrade scripts tests
- name: Slack Notification
uses: homoluctus/slatify@v1.8.0
- name: Discord notification
uses: rjstone/discord-webhook-notify@v1
if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false)
with:
type: ${{ job.status }}
job_name: '*Freqtrade CI windows*'
mention: 'here'
mention_if: 'failure'
channel: '#notifications'
url: ${{ secrets.SLACK_WEBHOOK }}
severity: error
details: Test Failed
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
mypy_version_check:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: pre-commit dependencies
run: |
pip install pyaml
python build_helpers/pre_commit_update.py
docs_check:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Documentation syntax
run: |
./tests/test_docs.sh
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: "3.10"
- name: Documentation build
run: |
@@ -195,49 +292,53 @@ jobs:
pip install mkdocs
mkdocs build
- name: Slack Notification
uses: homoluctus/slatify@v1.8.0
- name: Discord notification
uses: rjstone/discord-webhook-notify@v1
if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false)
with:
type: ${{ job.status }}
job_name: '*Freqtrade Docs*'
channel: '#notifications'
url: ${{ secrets.SLACK_WEBHOOK }}
severity: error
details: Freqtrade doc test failed!
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
cleanup-prior-runs:
runs-on: ubuntu-20.04
steps:
- name: Cleanup previous runs on this branch
uses: rokroskar/workflow-run-cleanup-action@v0.2.2
if: "!startsWith(github.ref, 'refs/tags/') && github.ref != 'refs/heads/stable' && github.repository == 'freqtrade/freqtrade'"
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
# Notify on slack only once - when CI completes (and after deploy) in case it's successfull
# Notify only once - when CI completes (and after deploy) in case it's successfull
notify-complete:
needs: [ build, build_windows, docs_check ]
needs: [ build_linux, build_macos, build_windows, docs_check, mypy_version_check ]
runs-on: ubuntu-20.04
# Discord notification can't handle schedule events
if: (github.event_name != 'schedule')
permissions:
repository-projects: read
steps:
- name: Slack Notification
uses: homoluctus/slatify@v1.8.0
if: always() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false)
- name: Check user permission
id: check
uses: scherermichael-oss/action-has-permission@1.0.6
with:
type: ${{ job.status }}
job_name: '*Freqtrade CI*'
channel: '#notifications'
url: ${{ secrets.SLACK_WEBHOOK }}
required-permission: write
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Discord notification
uses: rjstone/discord-webhook-notify@v1
if: always() && steps.check.outputs.has-permission && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false)
with:
severity: info
details: Test Completed!
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
deploy:
needs: [ build, build_windows, docs_check ]
needs: [ build_linux, build_macos, build_windows, docs_check, mypy_version_check ]
runs-on: ubuntu-20.04
if: (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'release') && github.repository == 'freqtrade/freqtrade'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: "3.9"
- name: Extract branch name
shell: bash
@@ -250,7 +351,7 @@ jobs:
python setup.py sdist bdist_wheel
- name: Publish to PyPI (Test)
uses: pypa/gh-action-pypi-publish@master
uses: pypa/gh-action-pypi-publish@v1.5.1
if: (github.event_name == 'release')
with:
user: __token__
@@ -258,7 +359,7 @@ jobs:
repository_url: https://test.pypi.org/legacy/
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@master
uses: pypa/gh-action-pypi-publish@v1.5.1
if: (github.event_name == 'release')
with:
user: __token__
@@ -271,13 +372,6 @@ jobs:
run: |
echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
- name: Build and test and push docker image
env:
IMAGE_NAME: freqtradeorg/freqtrade
BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }}
run: |
build_helpers/publish_docker.sh
# We need docker experimental to pull the ARM image.
- name: Switch docker to experimental
run: |
@@ -288,7 +382,7 @@ jobs:
- name: Set up Docker Buildx
id: buildx
uses: crazy-max/ghaction-docker-buildx@v1
uses: crazy-max/ghaction-docker-buildx@v3.3.1
with:
buildx-version: latest
qemu-version: latest
@@ -296,22 +390,46 @@ jobs:
- name: Available platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Build Raspberry docker image
- name: Build and test and push docker images
env:
IMAGE_NAME: freqtradeorg/freqtrade
BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }}_pi
BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }}
run: |
build_helpers/publish_docker_pi.sh
build_helpers/publish_docker_multi.sh
- name: Slack Notification
uses: homoluctus/slatify@v1.8.0
if: always() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false)
- name: Discord notification
uses: rjstone/discord-webhook-notify@v1
if: always() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) && (github.event_name != 'schedule')
with:
type: ${{ job.status }}
job_name: '*Freqtrade CI Deploy*'
mention: 'here'
mention_if: 'failure'
channel: '#notifications'
url: ${{ secrets.SLACK_WEBHOOK }}
severity: info
details: Deploy Succeeded!
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
deploy_arm:
needs: [ deploy ]
# Only run on 64bit machines
runs-on: [self-hosted, linux, ARM64]
if: (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'release') && github.repository == 'freqtrade/freqtrade'
steps:
- uses: actions/checkout@v3
- name: Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF##*/})"
id: extract_branch
- name: Dockerhub login
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
run: |
echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
- name: Build and test and push docker images
env:
IMAGE_NAME: freqtradeorg/freqtrade
BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }}
run: |
build_helpers/publish_docker_arm64.sh

View File

@@ -8,11 +8,10 @@ jobs:
dockerHubDescription:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
- name: Docker Hub Description
uses: peter-evans/dockerhub-description@v2.1.0
uses: peter-evans/dockerhub-description@v3
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKERHUB_REPOSITORY: freqtradeorg/freqtrade

19
.gitignore vendored
View File

@@ -1,13 +1,24 @@
# Freqtrade rules
config*.json
*.sqlite
*.sqlite-shm
*.sqlite-wal
logfile.txt
user_data/*
!user_data/strategy/sample_strategy.py
!user_data/notebooks
!user_data/models
!user_data/freqaimodels
user_data/freqaimodels/*
user_data/models/*
user_data/notebooks/*
freqtrade-plot.html
freqtrade-profit-plot.html
freqtrade/rpc/api_server/ui/*
build_helpers/ta-lib/*
# Macos related
.DS_Store
# Byte-compiled / optimized / DLL files
__pycache__/
@@ -74,6 +85,8 @@ instance/
# Sphinx documentation
docs/_build/
# Mkdocs documentation
site/
# PyBuilder
target/
@@ -94,3 +107,9 @@ target/
#exceptions
!*.gitkeep
!config_examples/config_binance.example.json
!config_examples/config_bittrex.example.json
!config_examples/config_ftx.example.json
!config_examples/config_full.example.json
!config_examples/config_kraken.example.json
!config_examples/config_freqai.example.json

46
.pre-commit-config.yaml Normal file
View File

@@ -0,0 +1,46 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pycqa/flake8
rev: "4.0.1"
hooks:
- id: flake8
# stages: [push]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: "v0.942"
hooks:
- id: mypy
exclude: build_helpers
additional_dependencies:
- types-cachetools==5.2.1
- types-filelock==3.2.7
- types-requests==2.28.8
- types-tabulate==0.8.11
- types-python-dateutil==2.8.19
# stages: [push]
- repo: https://github.com/pycqa/isort
rev: "5.10.1"
hooks:
- id: isort
name: isort (python)
# stages: [push]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.4.0
hooks:
- id: end-of-file-fixer
exclude: |
(?x)^(
tests/.*|
.*\.svg
)$
- id: mixed-line-ending
- id: debug-statements
- id: check-ast
- id: trailing-whitespace
exclude: |
(?x)^(
.*\.md
)$

View File

@@ -7,4 +7,3 @@ ignore=vendor
[TYPECHECK]
ignored-modules=numpy,talib,talib.abstract

View File

@@ -4,5 +4,5 @@ build:
image: latest
python:
version: 3.6
setup_py_install: false
version: 3.8
setup_py_install: false

View File

@@ -1,61 +0,0 @@
os:
- linux
dist: xenial
language: python
python:
- 3.6
services:
- docker
env:
global:
- IMAGE_NAME=freqtradeorg/freqtrade
install:
- cd build_helpers && ./install_ta-lib.sh ${HOME}/dependencies; cd ..
- export LD_LIBRARY_PATH=${HOME}/dependencies/lib:$LD_LIBRARY_PATH
- export TA_LIBRARY_PATH=${HOME}/dependencies/lib
- export TA_INCLUDE_PATH=${HOME}/dependencies/include
- pip install -r requirements-dev.txt
- pip install -e .
jobs:
include:
- stage: tests
script:
- pytest --random-order --cov=freqtrade --cov-config=.coveragerc
# Allow failure for coveralls
# - coveralls || true
name: pytest
- script:
- cp config.json.example config.json
- freqtrade create-userdir --userdir user_data
- freqtrade backtesting --datadir tests/testdata --strategy SampleStrategy
name: backtest
- script:
- cp config.json.example config.json
- freqtrade create-userdir --userdir user_data
- freqtrade hyperopt --datadir tests/testdata -e 5 --strategy SampleStrategy --hyperopt SampleHyperOpt --hyperopt-loss SharpeHyperOptLossDaily
name: hyperopt
- script: flake8
name: flake8
- script:
# Test Documentation boxes -
# !!! <TYPE>: is not allowed!
# !!! <TYPE> "title" - Title needs to be quoted!
- grep -Er '^!{3}\s\S+:|^!{3}\s\S+\s[^"]' docs/*; test $? -ne 0
name: doc syntax
- script: mypy freqtrade scripts
name: mypy
# - stage: docker
# if: branch in (master, develop, feat/improve_travis) AND (type in (push, cron))
# script:
# - build_helpers/publish_docker.sh
# name: "Build and test and push docker image"
notifications:
slack:
secure: bKLXmOrx8e2aPZl7W8DA5BdPAXWGpI5UzST33oc1G/thegXcDVmHBTJrBs4sZak6bgAclQQrdZIsRd2eFYzHLalJEaw6pk7hoAw8SvLnZO0ZurWboz7qg2+aZZXfK4eKl/VUe4sM9M4e/qxjkK+yWG7Marg69c4v1ypF7ezUi1fPYILYw8u0paaiX0N5UX8XNlXy+PBlga2MxDjUY70MuajSZhPsY2pDUvYnMY1D/7XN3cFW0g+3O8zXjF0IF4q1Z/1ASQe+eYjKwPQacE+O8KDD+ZJYoTOFBAPllrtpO1jnOPFjNGf3JIbVMZw4bFjIL0mSQaiSUaUErbU3sFZ5Or79rF93XZ81V7uEZ55vD8KMfR2CB1cQJcZcj0v50BxLo0InkFqa0Y8Nra3sbpV4fV5Oe8pDmomPJrNFJnX6ULQhQ1gTCe0M5beKgVms5SITEpt4/Y0CmLUr6iHDT0CUiyMIRWAXdIgbGh1jfaWOMksybeRevlgDsIsNBjXmYI1Sw2ZZR2Eo2u4R6zyfyjOMLwYJ3vgq9IrACv2w5nmf0+oguMWHf6iWi2hiOqhlAN1W74+3HsYQcqnuM3LGOmuCnPprV1oGBqkPXjIFGpy21gNx4vHfO1noLUyJnMnlu2L7SSuN1CdLsnjJ1hVjpJjPfqB4nn8g12x87TqM1bOm+3Q=
cache:
pip: True
directories:
- $HOME/dependencies

View File

@@ -12,7 +12,7 @@ Few pointers for contributions:
- New features need to contain unit tests, must conform to PEP8 (max-line-length = 100) and should be documented with the introduction PR.
- PR's can be declared as `[WIP]` - which signify Work in Progress Pull Requests (which are not finished).
If you are unsure, discuss the feature on our [discord server](https://discord.gg/MA9v74M), on [Slack](https://join.slack.com/t/highfrequencybot/shared_invite/zt-jaut7r4m-Y17k4x5mcQES9a9swKuxbg) or in a [issue](https://github.com/freqtrade/freqtrade/issues) before a PR.
If you are unsure, discuss the feature on our [discord server](https://discord.gg/p7nuUNVfP7) or in a [issue](https://github.com/freqtrade/freqtrade/issues) before a Pull Request.
## Getting started
@@ -56,6 +56,13 @@ To help with that, we encourage you to install the git pre-commit
hook that will warn you when you try to commit code that fails these checks.
Guide for installing them is [here](http://flake8.pycqa.org/en/latest/user/using-hooks.html).
##### Additional styles applied
* Have docstrings on all public methods
* Use double-quotes for docstrings
* Multiline docstrings should be indented to the level of the first quote
* Doc-strings should follow the reST format (`:param xxx: ...`, `:return: ...`, `:raises KeyError: ... `)
### 3. Test if all type-hints are correct
#### Run mypy

View File

@@ -1,29 +1,58 @@
FROM python:3.8.6-slim-buster
FROM python:3.10.6-slim-bullseye as base
RUN apt-get update \
&& apt-get -y install curl build-essential libssl-dev sqlite3 \
&& apt-get clean \
&& pip install --upgrade pip
# Setup env
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONFAULTHANDLER 1
ENV PATH=/home/ftuser/.local/bin:$PATH
ENV FT_APP_ENV="docker"
# Prepare environment
RUN mkdir /freqtrade
RUN mkdir /freqtrade \
&& apt-get update \
&& apt-get -y install sudo libatlas3-base curl sqlite3 libhdf5-serial-dev \
&& apt-get clean \
&& useradd -u 1000 -G sudo -U -m -s /bin/bash ftuser \
&& chown ftuser:ftuser /freqtrade \
# Allow sudoers
&& echo "ftuser ALL=(ALL) NOPASSWD: /bin/chown" >> /etc/sudoers
WORKDIR /freqtrade
# Install dependencies
FROM base as python-deps
RUN apt-get update \
&& apt-get -y install build-essential libssl-dev git libffi-dev libgfortran5 pkg-config cmake gcc \
&& apt-get clean \
&& pip install --upgrade pip
# Install TA-lib
COPY build_helpers/* /tmp/
RUN cd /tmp && /tmp/install_ta-lib.sh && rm -r /tmp/*ta-lib*
ENV LD_LIBRARY_PATH /usr/local/lib
# Install dependencies
COPY requirements.txt requirements-hyperopt.txt /freqtrade/
RUN pip install numpy --no-cache-dir \
&& pip install -r requirements-hyperopt.txt --no-cache-dir
COPY --chown=ftuser:ftuser requirements.txt requirements-hyperopt.txt /freqtrade/
USER ftuser
RUN pip install --user --no-cache-dir numpy \
&& pip install --user --no-cache-dir -r requirements-hyperopt.txt
# Copy dependencies to runtime-image
FROM base as runtime-image
COPY --from=python-deps /usr/local/lib /usr/local/lib
ENV LD_LIBRARY_PATH /usr/local/lib
COPY --from=python-deps --chown=ftuser:ftuser /home/ftuser/.local /home/ftuser/.local
USER ftuser
# Install and execute
COPY . /freqtrade/
RUN pip install -e . --no-cache-dir \
&& mkdir /freqtrade/user_data/
COPY --chown=ftuser:ftuser . /freqtrade/
RUN pip install -e . --user --no-cache-dir --no-build-isolation \
&& mkdir /freqtrade/user_data/ \
&& freqtrade install-ui
ENTRYPOINT ["freqtrade"]
# Default to trade mode
CMD [ "trade" ]

View File

@@ -1,29 +0,0 @@
FROM --platform=linux/arm/v7 python:3.7.7-slim-buster
RUN apt-get update \
&& apt-get -y install curl build-essential libssl-dev libffi-dev libatlas3-base libgfortran5 sqlite3 \
&& apt-get clean \
&& pip install --upgrade pip \
&& echo "[global]\nextra-index-url=https://www.piwheels.org/simple" > /etc/pip.conf
# Prepare environment
RUN mkdir /freqtrade
WORKDIR /freqtrade
# Install TA-lib
COPY build_helpers/* /tmp/
RUN cd /tmp && /tmp/install_ta-lib.sh && rm -r /tmp/*ta-lib*
ENV LD_LIBRARY_PATH /usr/local/lib
# Install dependencies
COPY requirements.txt /freqtrade/
RUN pip install numpy --no-cache-dir \
&& pip install -r requirements.txt --no-cache-dir
# Install and execute
COPY . /freqtrade/
RUN pip install -e . --no-cache-dir
ENTRYPOINT ["freqtrade"]
# Default to trade mode
CMD [ "trade" ]

View File

@@ -1,5 +1,7 @@
include LICENSE
include README.md
include config.json.example
recursive-include freqtrade *.py
recursive-include freqtrade/templates/ *.j2 *.ipynb
include freqtrade/exchange/binance_leverage_tiers.json
include freqtrade/rpc/api_server/ui/fallback_file.html
include freqtrade/rpc/api_server/ui/favicon.ico

101
README.md
View File

@@ -1,11 +1,11 @@
# Freqtrade
# ![freqtrade](https://raw.githubusercontent.com/freqtrade/freqtrade/develop/docs/assets/freqtrade_poweredby.svg)
[![Freqtrade CI](https://github.com/freqtrade/freqtrade/workflows/Freqtrade%20CI/badge.svg)](https://github.com/freqtrade/freqtrade/actions/)
[![Coverage Status](https://coveralls.io/repos/github/freqtrade/freqtrade/badge.svg?branch=develop&service=github)](https://coveralls.io/github/freqtrade/freqtrade?branch=develop)
[![Documentation](https://readthedocs.org/projects/freqtrade/badge/)](https://www.freqtrade.io)
[![Maintainability](https://api.codeclimate.com/v1/badges/5737e6d668200b7518ff/maintainability)](https://codeclimate.com/github/freqtrade/freqtrade/maintainability)
Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all major exchanges and be controlled via Telegram. It contains backtesting, plotting and money management tools as well as strategy optimization by machine learning.
Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all major exchanges and be controlled via Telegram or webUI. It contains backtesting, plotting and money management tools as well as strategy optimization by machine learning.
![freqtrade](https://raw.githubusercontent.com/freqtrade/freqtrade/develop/docs/assets/freqtrade-screenshot.png)
@@ -22,45 +22,61 @@ expect.
We strongly recommend you to have coding and Python knowledge. Do not
hesitate to read the source code and understand the mechanism of this bot.
## Exchange marketplaces supported
## Supported Exchange marketplaces
Please read the [exchange specific notes](docs/exchanges.md) to learn about eventual, special configurations needed for each exchange.
- [X] [Binance](https://www.binance.com/)
- [X] [Bittrex](https://bittrex.com/)
- [X] [Binance](https://www.binance.com/) ([*Note for binance users](docs/exchanges.md#blacklists))
- [X] [FTX](https://ftx.com/#a=2258149)
- [X] [Gate.io](https://www.gate.io/ref/6266643)
- [X] [Huobi](http://huobi.com/)
- [X] [Kraken](https://kraken.com/)
- [ ] [113 others to tests](https://github.com/ccxt/ccxt/). _(We cannot guarantee they will work)_
- [X] [OKX](https://okx.com/) (Former OKEX)
- [ ] [potentially many others](https://github.com/ccxt/ccxt/). _(We cannot guarantee they will work)_
### Supported Futures Exchanges (experimental)
- [X] [Binance](https://www.binance.com/)
- [X] [Gate.io](https://www.gate.io/ref/6266643)
- [X] [OKX](https://okx.com/).
Please make sure to read the [exchange specific notes](docs/exchanges.md), as well as the [trading with leverage](docs/leverage.md) documentation before diving in.
### Community tested
Exchanges confirmed working by the community:
- [X] [Bitvavo](https://bitvavo.com/)
- [X] [Kucoin](https://www.kucoin.com/)
## Documentation
We invite you to read the bot documentation to ensure you understand how the bot is working.
Please find the complete documentation on our [website](https://www.freqtrade.io).
Please find the complete documentation on the [freqtrade website](https://www.freqtrade.io).
## Features
- [x] **Based on Python 3.6+**: For botting on any operating system - Windows, macOS and Linux.
- [x] **Based on Python 3.8+**: For botting on any operating system - Windows, macOS and Linux.
- [x] **Persistence**: Persistence is achieved through sqlite.
- [x] **Dry-run**: Run the bot without playing money.
- [x] **Dry-run**: Run the bot without paying money.
- [x] **Backtesting**: Run a simulation of your buy/sell strategy.
- [x] **Strategy Optimization by machine learning**: Use machine learning to optimize your buy/sell strategy parameters with real exchange data.
- [x] **Edge position sizing** Calculate your win rate, risk reward ratio, the best stoploss and adjust your position size before taking a position for each specific market. [Learn more](https://www.freqtrade.io/en/latest/edge/).
- [X] **Adaptive prediction modeling**: Build a smart strategy with FreqAI that self-trains to the market via adaptive machine learning methods. [Learn more](https://www.freqtrade.io/en/stable/freqai/)
- [x] **Edge position sizing** Calculate your win rate, risk reward ratio, the best stoploss and adjust your position size before taking a position for each specific market. [Learn more](https://www.freqtrade.io/en/stable/edge/).
- [x] **Whitelist crypto-currencies**: Select which crypto-currency you want to trade or use dynamic whitelists.
- [x] **Blacklist crypto-currencies**: Select which crypto-currency you want to avoid.
- [x] **Builtin WebUI**: Builtin web UI to manage your bot.
- [x] **Manageable via Telegram**: Manage the bot with Telegram.
- [x] **Display profit/loss in fiat**: Display your profit/loss in 33 fiat.
- [x] **Daily summary of profit/loss**: Provide a daily summary of your profit/loss.
- [x] **Display profit/loss in fiat**: Display your profit/loss in fiat currency.
- [x] **Performance status report**: Provide a performance status of your current trades.
## Quick start
Freqtrade provides a Linux/macOS script to install all dependencies and help you to configure the bot.
Please refer to the [Docker Quickstart documentation](https://www.freqtrade.io/en/stable/docker_quickstart/) on how to get started quickly.
```bash
git clone -b develop https://github.com/freqtrade/freqtrade.git
cd freqtrade
./setup.sh --install
```
For any other type of installation please refer to [Installation doc](https://www.freqtrade.io/en/latest/installation/).
For further (native) installation methods, please refer to the [Installation documentation page](https://www.freqtrade.io/en/stable/installation/).
## Basic Usage
@@ -68,22 +84,22 @@ For any other type of installation please refer to [Installation doc](https://ww
```
usage: freqtrade [-h] [-V]
{trade,create-userdir,new-config,new-hyperopt,new-strategy,download-data,convert-data,convert-trade-data,backtesting,edge,hyperopt,hyperopt-list,hyperopt-show,list-exchanges,list-hyperopts,list-markets,list-pairs,list-strategies,list-timeframes,show-trades,test-pairlist,plot-dataframe,plot-profit}
{trade,create-userdir,new-config,new-strategy,download-data,convert-data,convert-trade-data,list-data,backtesting,edge,hyperopt,hyperopt-list,hyperopt-show,list-exchanges,list-hyperopts,list-markets,list-pairs,list-strategies,list-timeframes,show-trades,test-pairlist,install-ui,plot-dataframe,plot-profit,webserver}
...
Free, open source crypto trading bot
positional arguments:
{trade,create-userdir,new-config,new-hyperopt,new-strategy,download-data,convert-data,convert-trade-data,backtesting,edge,hyperopt,hyperopt-list,hyperopt-show,list-exchanges,list-hyperopts,list-markets,list-pairs,list-strategies,list-timeframes,show-trades,test-pairlist,plot-dataframe,plot-profit}
{trade,create-userdir,new-config,new-strategy,download-data,convert-data,convert-trade-data,list-data,backtesting,edge,hyperopt,hyperopt-list,hyperopt-show,list-exchanges,list-hyperopts,list-markets,list-pairs,list-strategies,list-timeframes,show-trades,test-pairlist,install-ui,plot-dataframe,plot-profit,webserver}
trade Trade module.
create-userdir Create user-data directory.
new-config Create new config
new-hyperopt Create new hyperopt
new-strategy Create new strategy
download-data Download backtesting data.
convert-data Convert candle (OHLCV) data from one format to
another.
convert-trade-data Convert trade data from one format to another.
list-data List downloaded data.
backtesting Backtesting module.
edge Edge module.
hyperopt Hyperopt module.
@@ -97,8 +113,10 @@ positional arguments:
list-timeframes Print available timeframes for the exchange.
show-trades Show trades.
test-pairlist Test your pairlist configuration.
install-ui Install FreqUI
plot-dataframe Plot candles with indicators.
plot-profit Generate plot showing profits.
webserver Webserver module.
optional arguments:
-h, --help show this help message and exit
@@ -108,14 +126,15 @@ optional arguments:
### Telegram RPC commands
Telegram is not mandatory. However, this is a great way to control your bot. More details and the full command list on our [documentation](https://www.freqtrade.io/en/latest/telegram-usage/)
Telegram is not mandatory. However, this is a great way to control your bot. More details and the full command list on the [documentation](https://www.freqtrade.io/en/latest/telegram-usage/)
- `/start`: Starts the trader.
- `/stop`: Stops the trader.
- `/stopbuy`: Stop entering new trades.
- `/status [table]`: Lists all open trades.
- `/profit`: Lists cumulative profit from all finished trades
- `/forcesell <trade_id>|all`: Instantly sells the given trade (Ignoring `minimum_roi`).
- `/status <trade_id>|[table]`: Lists all or specific open trades.
- `/profit [<n>]`: Lists cumulative profit from all finished trades, over the last n days.
- `/forceexit <trade_id>|all`: Instantly exits the given trade (Ignoring `minimum_roi`).
- `/fx <trade_id>|all`: Alias to `/forceexit`
- `/performance`: Show performance of each finished trade grouped by pair
- `/balance`: Show account balance per currency.
- `/daily <n>`: Shows profit or loss per day, over the last n days.
@@ -132,21 +151,17 @@ The project is currently setup in two main branches:
## Support
### Help / Discord / Slack
### Help / Discord
For any questions not covered by the documentation or for further information about the bot, or to simply engage with like-minded individuals, we encourage you to join our slack channel.
Please check out our [discord server](https://discord.gg/MA9v74M).
You can also join our [Slack channel](https://join.slack.com/t/highfrequencybot/shared_invite/zt-jaut7r4m-Y17k4x5mcQES9a9swKuxbg).
For any questions not covered by the documentation or for further information about the bot, or to simply engage with like-minded individuals, we encourage you to join the Freqtrade [discord server](https://discord.gg/p7nuUNVfP7).
### [Bugs / Issues](https://github.com/freqtrade/freqtrade/issues?q=is%3Aissue)
If you discover a bug in the bot, please
[search our issue tracker](https://github.com/freqtrade/freqtrade/issues?q=is%3Aissue)
[search the issue tracker](https://github.com/freqtrade/freqtrade/issues?q=is%3Aissue)
first. If it hasn't been reported, please
[create a new issue](https://github.com/freqtrade/freqtrade/issues/new) and
ensure you follow the template guide so that our team can assist you as
[create a new issue](https://github.com/freqtrade/freqtrade/issues/new/choose) and
ensure you follow the template guide so that the team can assist you as
quickly as possible.
### [Feature Requests](https://github.com/freqtrade/freqtrade/labels/enhancement)
@@ -154,22 +169,22 @@ quickly as possible.
Have you a great idea to improve the bot you want to share? Please,
first search if this feature was not [already discussed](https://github.com/freqtrade/freqtrade/labels/enhancement).
If it hasn't been requested, please
[create a new request](https://github.com/freqtrade/freqtrade/issues/new)
[create a new request](https://github.com/freqtrade/freqtrade/issues/new/choose)
and ensure you follow the template guide so that it does not get lost
in the bug reports.
### [Pull Requests](https://github.com/freqtrade/freqtrade/pulls)
Feel like our bot is missing a feature? We welcome your pull requests!
Feel like the bot is missing a feature? We welcome your pull requests!
Please read our
Please read the
[Contributing document](https://github.com/freqtrade/freqtrade/blob/develop/CONTRIBUTING.md)
to understand the requirements before sending your pull-requests.
Coding is not a necessity to contribute - maybe start with improving our documentation?
Coding is not a necessity to contribute - maybe start with improving the documentation?
Issues labeled [good first issue](https://github.com/freqtrade/freqtrade/labels/good%20first%20issue) can be good first contributions, and will help get you familiar with the codebase.
**Note** before starting any major new feature work, *please open an issue describing what you are planning to do* or talk to us on [discord](https://discord.gg/MA9v74M) or [Slack](https://join.slack.com/t/highfrequencybot/shared_invite/zt-jaut7r4m-Y17k4x5mcQES9a9swKuxbg). This will ensure that interested parties can give valuable feedback on the feature, and let others know that you are working on it.
**Note** before starting any major new feature work, *please open an issue describing what you are planning to do* or talk to us on [discord](https://discord.gg/p7nuUNVfP7) (please use the #dev channel for this). This will ensure that interested parties can give valuable feedback on the feature, and let others know that you are working on it.
**Important:** Always create your PR against the `develop` branch, not `stable`.
@@ -179,7 +194,7 @@ Issues labeled [good first issue](https://github.com/freqtrade/freqtrade/labels/
The clock must be accurate, synchronized to a NTP server very frequently to avoid problems with communication to the exchanges.
### Min hardware required
### Minimum hardware required
To run this bot we recommend you a cloud instance with a minimum of:
@@ -187,9 +202,9 @@ To run this bot we recommend you a cloud instance with a minimum of:
### Software requirements
- [Python 3.6.x](http://docs.python-guide.org/en/latest/starting/installation/)
- [Python >= 3.8](http://docs.python-guide.org/en/latest/starting/installation/)
- [pip](https://pip.pypa.io/en/stable/installing/)
- [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- [TA-Lib](https://mrjbq7.github.io/ta-lib/install.html)
- [virtualenv](https://virtualenv.pypa.io/en/stable/installation/) (Recommended)
- [virtualenv](https://virtualenv.pypa.io/en/stable/installation.html) (Recommended)
- [Docker](https://www.docker.com/products/docker) (Recommended)

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -4,14 +4,31 @@ else
INSTALL_LOC=${1}
fi
echo "Installing to ${INSTALL_LOC}"
if [ ! -f "${INSTALL_LOC}/lib/libta_lib.a" ]; then
if [ -n "$2" ] || [ ! -f "${INSTALL_LOC}/lib/libta_lib.a" ]; then
tar zxvf ta-lib-0.4.0-src.tar.gz
cd ta-lib \
&& sed -i.bak "s|0.00000001|0.000000000000000001 |g" src/ta_func/ta_utility.h \
&& curl 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD' -o config.guess \
&& curl 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD' -o config.sub \
&& ./configure --prefix=${INSTALL_LOC}/ \
&& make \
&& which sudo && sudo make install || make install \
&& cd ..
&& make
if [ $? -ne 0 ]; then
echo "Failed building ta-lib."
cd .. && rm -rf ./ta-lib/
exit 1
fi
if [ -z "$2" ]; then
which sudo && sudo make install || make install
if [ -x "$(command -v apt-get)" ]; then
echo "Updating library path using ldconfig"
sudo ldconfig
fi
else
# Don't install with sudo
make install
fi
cd .. && rm -rf ./ta-lib/
else
echo "TA-lib already installed, skipping installation"
fi

View File

@@ -1,17 +1,18 @@
# Downloads don't work automatically, since the URL is regenerated via javascript.
# Downloaded from https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib
# Invoke-WebRequest -Uri "https://download.lfd.uci.edu/pythonlibs/xxxxxxx/TA_Lib-0.4.17-cp37-cp37m-win_amd64.whl" -OutFile "TA_Lib-0.4.17-cp37-cp37m-win_amd64.whl"
python -m pip install --upgrade pip
python -m pip install --upgrade pip wheel
$pyv = python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')"
if ($pyv -eq '3.7') {
pip install build_helpers\TA_Lib-0.4.19-cp37-cp37m-win_amd64.whl
}
if ($pyv -eq '3.8') {
pip install build_helpers\TA_Lib-0.4.19-cp38-cp38-win_amd64.whl
pip install build_helpers\TA_Lib-0.4.24-cp38-cp38-win_amd64.whl
}
if ($pyv -eq '3.9') {
pip install build_helpers\TA_Lib-0.4.24-cp39-cp39-win_amd64.whl
}
if ($pyv -eq '3.10') {
pip install build_helpers\TA_Lib-0.4.24-cp310-cp310-win_amd64.whl
}
pip install -r requirements-dev.txt
pip install -e .

View File

@@ -0,0 +1,42 @@
# File used in CI to ensure pre-commit dependencies are kept uptodate.
import sys
from pathlib import Path
import yaml
pre_commit_file = Path('.pre-commit-config.yaml')
require_dev = Path('requirements-dev.txt')
with require_dev.open('r') as rfile:
requirements = rfile.readlines()
# Extract types only
type_reqs = [r.strip('\n') for r in requirements if r.startswith('types-')]
with pre_commit_file.open('r') as file:
f = yaml.load(file, Loader=yaml.FullLoader)
mypy_repo = [repo for repo in f['repos'] if repo['repo']
== 'https://github.com/pre-commit/mirrors-mypy']
hooks = mypy_repo[0]['hooks'][0]['additional_dependencies']
errors = []
for hook in hooks:
if hook not in type_reqs:
errors.append(f"{hook} is missing in requirements-dev.txt.")
for req in type_reqs:
if req not in hooks:
errors.append(f"{req} is missing in pre-config file.")
if errors:
for e in errors:
print(e)
sys.exit(1)
sys.exit(0)

View File

@@ -1,57 +0,0 @@
#!/bin/sh
# Replace / with _ to create a valid tag
TAG=$(echo "${BRANCH_NAME}" | sed -e "s/\//_/g")
TAG_PLOT=${TAG}_plot
echo "Running for ${TAG}"
# Add commit and commit_message to docker container
echo "${GITHUB_SHA}" > freqtrade_commit
if [ "${GITHUB_EVENT_NAME}" = "schedule" ]; then
echo "event ${GITHUB_EVENT_NAME}: full rebuild - skipping cache"
docker build -t freqtrade:${TAG} .
else
echo "event ${GITHUB_EVENT_NAME}: building with cache"
# Pull last build to avoid rebuilding the whole image
docker pull ${IMAGE_NAME}:${TAG}
docker build --cache-from ${IMAGE_NAME}:${TAG} -t freqtrade:${TAG} .
fi
# Tag image for upload and next build step
docker tag freqtrade:$TAG ${IMAGE_NAME}:$TAG
docker build --cache-from freqtrade:${TAG} --build-arg sourceimage=${TAG} -t freqtrade:${TAG_PLOT} -f docker/Dockerfile.plot .
docker tag freqtrade:$TAG_PLOT ${IMAGE_NAME}:$TAG_PLOT
if [ $? -ne 0 ]; then
echo "failed building image"
return 1
fi
# Run backtest
docker run --rm -v $(pwd)/config.json.example:/freqtrade/config.json:ro -v $(pwd)/tests:/tests freqtrade:${TAG} backtesting --datadir /tests/testdata --strategy-path /tests/strategy/strats/ --strategy DefaultStrategy
if [ $? -ne 0 ]; then
echo "failed running backtest"
return 1
fi
if [ $? -ne 0 ]; then
echo "failed tagging image"
return 1
fi
# Tag as latest for develop builds
if [ "${TAG}" = "develop" ]; then
docker tag freqtrade:$TAG ${IMAGE_NAME}:latest
fi
# Show all available images
docker images
docker push ${IMAGE_NAME}
if [ $? -ne 0 ]; then
echo "failed pushing repo"
return 1
fi

View File

@@ -0,0 +1,86 @@
#!/bin/sh
# Use BuildKit, otherwise building on ARM fails
export DOCKER_BUILDKIT=1
# Replace / with _ to create a valid tag
TAG=$(echo "${BRANCH_NAME}" | sed -e "s/\//_/g")
TAG_PLOT=${TAG}_plot
TAG_FREQAI=${TAG}_freqai
TAG_PI="${TAG}_pi"
TAG_ARM=${TAG}_arm
TAG_PLOT_ARM=${TAG_PLOT}_arm
TAG_FREQAI_ARM=${TAG_FREQAI}_arm
CACHE_IMAGE=freqtradeorg/freqtrade_cache
echo "Running for ${TAG}"
# Add commit and commit_message to docker container
echo "${GITHUB_SHA}" > freqtrade_commit
if [ "${GITHUB_EVENT_NAME}" = "schedule" ]; then
echo "event ${GITHUB_EVENT_NAME}: full rebuild - skipping cache"
# Build regular image
docker build -t freqtrade:${TAG_ARM} .
else
echo "event ${GITHUB_EVENT_NAME}: building with cache"
# Build regular image
docker pull ${IMAGE_NAME}:${TAG_ARM}
docker build --cache-from ${IMAGE_NAME}:${TAG_ARM} -t freqtrade:${TAG_ARM} .
fi
if [ $? -ne 0 ]; then
echo "failed building multiarch images"
return 1
fi
# Tag image for upload and next build step
docker tag freqtrade:$TAG_ARM ${CACHE_IMAGE}:$TAG_ARM
docker build --cache-from freqtrade:${TAG_ARM} --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG_ARM} -t freqtrade:${TAG_PLOT_ARM} -f docker/Dockerfile.plot .
docker build --cache-from freqtrade:${TAG_ARM} --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG_ARM} -t freqtrade:${TAG_FREQAI_ARM} -f docker/Dockerfile.freqai .
docker tag freqtrade:$TAG_PLOT_ARM ${CACHE_IMAGE}:$TAG_PLOT_ARM
docker tag freqtrade:$TAG_FREQAI_ARM ${CACHE_IMAGE}:$TAG_FREQAI_ARM
# Run backtest
docker run --rm -v $(pwd)/config_examples/config_bittrex.example.json:/freqtrade/config.json:ro -v $(pwd)/tests:/tests freqtrade:${TAG_ARM} backtesting --datadir /tests/testdata --strategy-path /tests/strategy/strats/ --strategy StrategyTestV3
if [ $? -ne 0 ]; then
echo "failed running backtest"
return 1
fi
docker images
# docker push ${IMAGE_NAME}
docker push ${CACHE_IMAGE}:$TAG_PLOT_ARM
docker push ${CACHE_IMAGE}:$TAG_FREQAI_ARM
docker push ${CACHE_IMAGE}:$TAG_ARM
# Create multi-arch image
# Make sure that all images contained here are pushed to github first.
# Otherwise installation might fail.
echo "create manifests"
docker manifest create --amend ${IMAGE_NAME}:${TAG} ${CACHE_IMAGE}:${TAG_ARM} ${IMAGE_NAME}:${TAG_PI} ${CACHE_IMAGE}:${TAG}
docker manifest push -p ${IMAGE_NAME}:${TAG}
docker manifest create ${IMAGE_NAME}:${TAG_PLOT} ${CACHE_IMAGE}:${TAG_PLOT_ARM} ${CACHE_IMAGE}:${TAG_PLOT}
docker manifest push -p ${IMAGE_NAME}:${TAG_PLOT}
docker manifest create ${IMAGE_NAME}:${TAG_FREQAI} ${CACHE_IMAGE}:${TAG_FREQAI_ARM} ${CACHE_IMAGE}:${TAG_FREQAI}
docker manifest push -p ${IMAGE_NAME}:${TAG_FREQAI}
# Tag as latest for develop builds
if [ "${TAG}" = "develop" ]; then
docker manifest create ${IMAGE_NAME}:latest ${CACHE_IMAGE}:${TAG_ARM} ${IMAGE_NAME}:${TAG_PI} ${CACHE_IMAGE}:${TAG}
docker manifest push -p ${IMAGE_NAME}:latest
fi
docker images
# Cleanup old images from arm64 node.
docker image prune -a --force --filter "until=24h"

View File

@@ -0,0 +1,79 @@
#!/bin/sh
# The below assumes a correctly setup docker buildx environment
# Replace / with _ to create a valid tag
TAG=$(echo "${BRANCH_NAME}" | sed -e "s/\//_/g")
TAG_PLOT=${TAG}_plot
TAG_FREQAI=${TAG}_freqai
TAG_PI="${TAG}_pi"
PI_PLATFORM="linux/arm/v7"
echo "Running for ${TAG}"
CACHE_IMAGE=freqtradeorg/freqtrade_cache
CACHE_TAG=${CACHE_IMAGE}:${TAG_PI}_cache
# Add commit and commit_message to docker container
echo "${GITHUB_SHA}" > freqtrade_commit
if [ "${GITHUB_EVENT_NAME}" = "schedule" ]; then
echo "event ${GITHUB_EVENT_NAME}: full rebuild - skipping cache"
# Build regular image
docker build -t freqtrade:${TAG} .
# Build PI image
docker buildx build \
--cache-to=type=registry,ref=${CACHE_TAG} \
-f docker/Dockerfile.armhf \
--platform ${PI_PLATFORM} \
-t ${IMAGE_NAME}:${TAG_PI} --push .
else
echo "event ${GITHUB_EVENT_NAME}: building with cache"
# Build regular image
docker pull ${IMAGE_NAME}:${TAG}
docker build --cache-from ${IMAGE_NAME}:${TAG} -t freqtrade:${TAG} .
# Pull last build to avoid rebuilding the whole image
# docker pull --platform ${PI_PLATFORM} ${IMAGE_NAME}:${TAG}
docker buildx build \
--cache-from=type=registry,ref=${CACHE_TAG} \
--cache-to=type=registry,ref=${CACHE_TAG} \
-f docker/Dockerfile.armhf \
--platform ${PI_PLATFORM} \
-t ${IMAGE_NAME}:${TAG_PI} --push .
fi
if [ $? -ne 0 ]; then
echo "failed building multiarch images"
return 1
fi
# Tag image for upload and next build step
docker tag freqtrade:$TAG ${CACHE_IMAGE}:$TAG
docker build --cache-from freqtrade:${TAG} --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG} -t freqtrade:${TAG_PLOT} -f docker/Dockerfile.plot .
docker build --cache-from freqtrade:${TAG} --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG} -t freqtrade:${TAG_FREQAI} -f docker/Dockerfile.freqai .
docker tag freqtrade:$TAG_PLOT ${CACHE_IMAGE}:$TAG_PLOT
docker tag freqtrade:$TAG_FREQAI ${CACHE_IMAGE}:$TAG_FREQAI
# Run backtest
docker run --rm -v $(pwd)/config_examples/config_bittrex.example.json:/freqtrade/config.json:ro -v $(pwd)/tests:/tests freqtrade:${TAG} backtesting --datadir /tests/testdata --strategy-path /tests/strategy/strats/ --strategy StrategyTestV3
if [ $? -ne 0 ]; then
echo "failed running backtest"
return 1
fi
docker images
docker push ${CACHE_IMAGE}
docker push ${CACHE_IMAGE}:$TAG_PLOT
docker push ${CACHE_IMAGE}:$TAG_FREQAI
docker push ${CACHE_IMAGE}:$TAG
docker images
if [ $? -ne 0 ]; then
echo "failed building image"
return 1
fi

View File

@@ -1,36 +0,0 @@
#!/bin/sh
# The below assumes a correctly setup docker buildx environment
# Replace / with _ to create a valid tag
TAG=$(echo "${BRANCH_NAME}" | sed -e "s/\//_/g")
PI_PLATFORM="linux/arm/v7"
echo "Running for ${TAG}"
CACHE_TAG=freqtradeorg/freqtrade_cache:${TAG}_cache
# Add commit and commit_message to docker container
echo "${GITHUB_SHA}" > freqtrade_commit
if [ "${GITHUB_EVENT_NAME}" = "schedule" ]; then
echo "event ${GITHUB_EVENT_NAME}: full rebuild - skipping cache"
docker buildx build \
--cache-to=type=registry,ref=${CACHE_TAG} \
-f Dockerfile.armhf \
--platform ${PI_PLATFORM} \
-t ${IMAGE_NAME}:${TAG} --push .
else
echo "event ${GITHUB_EVENT_NAME}: building with cache"
# Pull last build to avoid rebuilding the whole image
# docker pull --platform ${PI_PLATFORM} ${IMAGE_NAME}:${TAG}
docker buildx build \
--cache-from=type=registry,ref=${CACHE_TAG} \
--cache-to=type=registry,ref=${CACHE_TAG} \
-f Dockerfile.armhf \
--platform ${PI_PLATFORM} \
-t ${IMAGE_NAME}:${TAG} --push .
fi
if [ $? -ne 0 ]; then
echo "failed building image"
return 1
fi

View File

@@ -8,34 +8,32 @@
"dry_run": true,
"cancel_open_orders_on_exit": false,
"unfilledtimeout": {
"buy": 10,
"sell": 30
"entry": 10,
"exit": 10,
"exit_timeout_count": 0,
"unit": "minutes"
},
"bid_strategy": {
"use_order_book": false,
"ask_last_balance": 0.0,
"entry_pricing": {
"price_side": "same",
"use_order_book": true,
"order_book_top": 1,
"price_last_balance": 0.0,
"check_depth_of_market": {
"enabled": false,
"bids_to_ask_delta": 1
}
},
"ask_strategy":{
"use_order_book": false,
"order_book_min": 1,
"order_book_max": 1,
"use_sell_signal": true,
"sell_profit_only": false,
"ignore_roi_if_buy_signal": false
"exit_pricing": {
"price_side": "same",
"use_order_book": true,
"order_book_top": 1
},
"exchange": {
"name": "binance",
"key": "your_exchange_key",
"secret": "your_exchange_secret",
"ccxt_config": {"enableRateLimit": true},
"ccxt_config": {},
"ccxt_async_config": {
"enableRateLimit": true,
"rateLimit": 200
},
"pair_whitelist": [
"ALGO/BTC",
@@ -84,14 +82,15 @@
"enabled": false,
"listen_ip_address": "127.0.0.1",
"listen_port": 8080,
"verbosity": "info",
"verbosity": "error",
"jwt_secret_key": "somethingrandom",
"CORS_origins": [],
"username": "",
"password": ""
"username": "freqtrader",
"password": "SuperSecurePassword"
},
"bot_name": "freqtrade",
"initial_state": "running",
"forcebuy_enable": false,
"force_entry_enable": false,
"internals": {
"process_throttle_secs": 5
}

View File

@@ -8,25 +8,25 @@
"dry_run": true,
"cancel_open_orders_on_exit": false,
"unfilledtimeout": {
"buy": 10,
"sell": 30
"entry": 10,
"exit": 10,
"exit_timeout_count": 0,
"unit": "minutes"
},
"bid_strategy": {
"use_order_book": false,
"ask_last_balance": 0.0,
"entry_pricing": {
"price_side": "same",
"use_order_book": true,
"order_book_top": 1,
"price_last_balance": 0.0,
"check_depth_of_market": {
"enabled": false,
"bids_to_ask_delta": 1
}
},
"ask_strategy":{
"use_order_book": false,
"order_book_min": 1,
"order_book_max": 1,
"use_sell_signal": true,
"sell_profit_only": false,
"ignore_roi_if_buy_signal": false
"exit_pricing":{
"price_side": "same",
"use_order_book": true,
"order_book_top": 1
},
"exchange": {
"name": "bittrex",
@@ -41,13 +41,13 @@
"ETH/BTC",
"LTC/BTC",
"ETC/BTC",
"DASH/BTC",
"ZEC/BTC",
"RVN/BTC",
"CRO/BTC",
"XLM/BTC",
"XRP/BTC",
"TRX/BTC",
"ADA/BTC",
"XMR/BTC"
"DOT/BTC"
],
"pair_blacklist": [
"DOGE/BTC"
@@ -79,14 +79,15 @@
"enabled": false,
"listen_ip_address": "127.0.0.1",
"listen_port": 8080,
"verbosity": "info",
"verbosity": "error",
"jwt_secret_key": "somethingrandom",
"CORS_origins": [],
"username": "",
"password": ""
"username": "freqtrader",
"password": "SuperSecurePassword"
},
"bot_name": "freqtrade",
"initial_state": "running",
"forcebuy_enable": false,
"force_entry_enable": false,
"internals": {
"process_throttle_secs": 5
}

View File

@@ -0,0 +1,96 @@
{
"trading_mode": "futures",
"margin_mode": "isolated",
"max_open_trades": 5,
"stake_currency": "USDT",
"stake_amount": 200,
"tradable_balance_ratio": 1,
"fiat_display_currency": "USD",
"dry_run": true,
"timeframe": "3m",
"dry_run_wallet": 1000,
"cancel_open_orders_on_exit": true,
"unfilledtimeout": {
"entry": 10,
"exit": 30
},
"exchange": {
"name": "binance",
"key": "",
"secret": "",
"ccxt_config": {
"enableRateLimit": true
},
"ccxt_async_config": {
"enableRateLimit": true,
"rateLimit": 200
},
"pair_whitelist": [
"1INCH/USDT",
"ALGO/USDT"
],
"pair_blacklist": []
},
"entry_pricing": {
"price_side": "same",
"use_order_book": true,
"order_book_top": 1,
"price_last_balance": 0.0,
"check_depth_of_market": {
"enabled": false,
"bids_to_ask_delta": 1
}
},
"exit_pricing": {
"price_side": "other",
"use_order_book": true,
"order_book_top": 1
},
"pairlists": [
{
"method": "StaticPairList"
}
],
"freqai": {
"enabled": true,
"startup_candles": 10000,
"purge_old_models": true,
"train_period_days": 15,
"backtest_period_days": 7,
"live_retrain_hours": 0,
"identifier": "uniqe-id",
"feature_parameters": {
"include_timeframes": [
"3m",
"15m",
"1h"
],
"include_corr_pairlist": [
"BTC/USDT",
"ETH/USDT"
],
"label_period_candles": 20,
"include_shifted_candles": 2,
"DI_threshold": 0.9,
"weight_factor": 0.9,
"principal_component_analysis": false,
"use_SVM_to_remove_outliers": true,
"stratify_training_data": 0,
"indicator_max_period_candles": 20,
"indicator_periods_candles": [10, 20]
},
"data_split_parameters": {
"test_size": 0.33,
"random_state": 1
},
"model_training_parameters": {
"n_estimators": 1000
}
},
"bot_name": "",
"force_entry_enable": true,
"initial_state": "running",
"internals": {
"process_throttle_secs": 5
}
}

View File

@@ -0,0 +1,96 @@
{
"max_open_trades": 3,
"stake_currency": "USD",
"stake_amount": 50,
"tradable_balance_ratio": 0.99,
"fiat_display_currency": "USD",
"timeframe": "5m",
"dry_run": true,
"cancel_open_orders_on_exit": false,
"unfilledtimeout": {
"entry": 10,
"exit": 10,
"exit_timeout_count": 0,
"unit": "minutes"
},
"entry_pricing": {
"price_side": "same",
"use_order_book": true,
"order_book_top": 1,
"price_last_balance": 0.0,
"check_depth_of_market": {
"enabled": false,
"bids_to_ask_delta": 1
}
},
"exit_pricing": {
"price_side": "same",
"use_order_book": true,
"order_book_top": 1
},
"exchange": {
"name": "ftx",
"key": "your_exchange_key",
"secret": "your_exchange_secret",
"ccxt_config": {},
"ccxt_async_config": {},
"pair_whitelist": [
"BTC/USD",
"ETH/USD",
"BNB/USD",
"USDT/USD",
"LTC/USD",
"SRM/USD",
"SXP/USD",
"XRP/USD",
"DOGE/USD",
"1INCH/USD",
"CHZ/USD",
"MATIC/USD",
"LINK/USD",
"OXY/USD",
"SUSHI/USD"
],
"pair_blacklist": [
"FTT/USD"
]
},
"pairlists": [
{"method": "StaticPairList"}
],
"edge": {
"enabled": false,
"process_throttle_secs": 3600,
"calculate_since_number_of_days": 7,
"allowed_risk": 0.01,
"stoploss_range_min": -0.01,
"stoploss_range_max": -0.1,
"stoploss_range_step": -0.01,
"minimum_winrate": 0.60,
"minimum_expectancy": 0.20,
"min_trade_number": 10,
"max_trade_duration_minute": 1440,
"remove_pumps": false
},
"telegram": {
"enabled": false,
"token": "your_telegram_token",
"chat_id": "your_telegram_chat_id"
},
"api_server": {
"enabled": false,
"listen_ip_address": "127.0.0.1",
"listen_port": 8080,
"verbosity": "error",
"jwt_secret_key": "somethingrandom",
"CORS_origins": [],
"username": "freqtrader",
"password": "SuperSecurePassword"
},
"bot_name": "freqtrade",
"initial_state": "running",
"force_entry_enable": false,
"internals": {
"process_throttle_secs": 5
}
}

View File

@@ -5,15 +5,24 @@
"tradable_balance_ratio": 0.99,
"fiat_display_currency": "USD",
"amount_reserve_percent": 0.05,
"available_capital": 1000,
"amend_last_stake_amount": false,
"last_stake_amount_min_ratio": 0.5,
"dry_run": true,
"dry_run_wallet": 1000,
"cancel_open_orders_on_exit": false,
"timeframe": "5m",
"trailing_stop": false,
"trailing_stop_positive": 0.005,
"trailing_stop_positive_offset": 0.0051,
"trailing_only_offset_is_reached": false,
"use_exit_signal": true,
"exit_profit_only": false,
"exit_profit_offset": 0.0,
"ignore_roi_if_entry_signal": false,
"ignore_buying_expired_candle_after": 300,
"trading_mode": "spot",
"margin_mode": "",
"minimal_roi": {
"40": 0.0,
"30": 0.01,
@@ -22,39 +31,41 @@
},
"stoploss": -0.10,
"unfilledtimeout": {
"buy": 10,
"sell": 30
"entry": 10,
"exit": 10,
"exit_timeout_count": 0,
"unit": "minutes"
},
"bid_strategy": {
"price_side": "bid",
"use_order_book": false,
"ask_last_balance": 0.0,
"entry_pricing": {
"price_side": "same",
"use_order_book": true,
"order_book_top": 1,
"price_last_balance": 0.0,
"check_depth_of_market": {
"enabled": false,
"bids_to_ask_delta": 1
}
},
"ask_strategy":{
"price_side": "ask",
"use_order_book": false,
"order_book_min": 1,
"order_book_max": 1,
"use_sell_signal": true,
"sell_profit_only": false,
"ignore_roi_if_buy_signal": false
"exit_pricing":{
"price_side": "same",
"use_order_book": true,
"order_book_top": 1,
"price_last_balance": 0.0
},
"order_types": {
"buy": "limit",
"sell": "limit",
"emergencysell": "market",
"entry": "limit",
"exit": "limit",
"emergency_exit": "market",
"force_exit": "market",
"force_entry": "market",
"stoploss": "market",
"stoploss_on_exchange": false,
"stoploss_on_exchange_interval": 60
"stoploss_on_exchange_interval": 60,
"stoploss_on_exchange_limit_ratio": 0.99
},
"order_time_in_force": {
"buy": "gtc",
"sell": "gtc"
"entry": "gtc",
"exit": "gtc"
},
"pairlists": [
{"method": "StaticPairList"},
@@ -76,28 +87,31 @@
}
],
"exchange": {
"name": "bittrex",
"name": "binance",
"sandbox": false,
"key": "your_exchange_key",
"secret": "your_exchange_secret",
"password": "",
"ccxt_config": {"enableRateLimit": true},
"ccxt_async_config": {
"enableRateLimit": false,
"rateLimit": 500,
"aiohttp_trust_env": false
},
"log_responses": false,
// "unknown_fee_rate": 1,
"ccxt_config": {},
"ccxt_async_config": {},
"pair_whitelist": [
"ALGO/BTC",
"ATOM/BTC",
"BAT/BTC",
"BCH/BTC",
"BRD/BTC",
"EOS/BTC",
"ETH/BTC",
"IOTA/BTC",
"LINK/BTC",
"LTC/BTC",
"ETC/BTC",
"DASH/BTC",
"ZEC/BTC",
"XLM/BTC",
"NXT/BTC",
"TRX/BTC",
"ADA/BTC",
"XMR/BTC"
"NEO/BTC",
"NXS/BTC",
"XMR/BTC",
"XRP/BTC",
"XTZ/BTC"
],
"pair_blacklist": [
"DOGE/BTC"
@@ -120,39 +134,59 @@
"remove_pumps": false
},
"telegram": {
"enabled": true,
"enabled": false,
"token": "your_telegram_token",
"chat_id": "your_telegram_chat_id",
"notification_settings": {
"status": "on",
"warning": "on",
"startup": "on",
"buy": "on",
"sell": "on",
"buy_cancel": "on",
"sell_cancel": "on"
}
"entry": "on",
"entry_fill": "on",
"exit": {
"roi": "off",
"emergency_exit": "off",
"force_exit": "off",
"exit_signal": "off",
"trailing_stop_loss": "off",
"stop_loss": "off",
"stoploss_on_exchange": "off",
"custom_exit": "off"
},
"exit_fill": "on",
"entry_cancel": "on",
"exit_cancel": "on",
"protection_trigger": "off",
"protection_trigger_global": "on",
"show_candle": "off"
},
"reload": true,
"balance_dust_level": 0.01
},
"api_server": {
"enabled": false,
"listen_ip_address": "127.0.0.1",
"listen_port": 8080,
"verbosity": "info",
"verbosity": "error",
"enable_openapi": false,
"jwt_secret_key": "somethingrandom",
"CORS_origins": [],
"username": "freqtrader",
"password": "SuperSecurePassword"
},
"bot_name": "freqtrade",
"db_url": "sqlite:///tradesv3.sqlite",
"initial_state": "running",
"forcebuy_enable": false,
"force_entry_enable": false,
"internals": {
"process_throttle_secs": 5,
"heartbeat_interval": 60
},
"disable_dataframe_checks": false,
"strategy": "DefaultStrategy",
"strategy": "SampleStrategy",
"strategy_path": "user_data/strategies/",
"recursive_strategy_search": false,
"add_config_files": [],
"dataformat_ohlcv": "json",
"dataformat_trades": "jsongz"
}

View File

@@ -8,34 +8,32 @@
"dry_run": true,
"cancel_open_orders_on_exit": false,
"unfilledtimeout": {
"buy": 10,
"sell": 30
"entry": 10,
"exit": 10,
"exit_timeout_count": 0,
"unit": "minutes"
},
"bid_strategy": {
"use_order_book": false,
"ask_last_balance": 0.0,
"entry_pricing": {
"price_side": "same",
"use_order_book": true,
"order_book_top": 1,
"price_last_balance": 0.0,
"check_depth_of_market": {
"enabled": false,
"bids_to_ask_delta": 1
}
},
"ask_strategy":{
"use_order_book": false,
"order_book_min": 1,
"order_book_max": 1,
"use_sell_signal": true,
"sell_profit_only": false,
"ignore_roi_if_buy_signal": false
"exit_pricing":{
"price_side": "same",
"use_order_book": true,
"order_book_top": 1
},
"exchange": {
"name": "kraken",
"key": "your_exchange_key",
"secret": "your_exchange_key",
"ccxt_config": {"enableRateLimit": true},
"ccxt_config": {},
"ccxt_async_config": {
"enableRateLimit": true,
"rateLimit": 1000
},
"pair_whitelist": [
"ADA/EUR",
@@ -89,14 +87,15 @@
"enabled": false,
"listen_ip_address": "127.0.0.1",
"listen_port": 8080,
"verbosity": "info",
"verbosity": "error",
"jwt_secret_key": "somethingrandom",
"CORS_origins": [],
"username": "",
"password": ""
"username": "freqtrader",
"password": "SuperSecurePassword"
},
"bot_name": "freqtrade",
"initial_state": "running",
"forcebuy_enable": false,
"force_entry_enable": false,
"internals": {
"process_throttle_secs": 5
},

View File

@@ -9,11 +9,16 @@ services:
# Build step - only needed when additional dependencies are needed
# build:
# context: .
# dockerfile: "./Dockerfile.technical"
# dockerfile: "./docker/Dockerfile.custom"
restart: unless-stopped
container_name: freqtrade
volumes:
- "./user_data:/freqtrade/user_data"
# Expose api on port 8080 (localhost only)
# Please read the https://www.freqtrade.io/en/stable/rest-api/ documentation
# before enabling this.
ports:
- "127.0.0.1:8080:8080"
# Default command used when running `docker compose up`
command: >
trade

59
docker/Dockerfile.armhf Normal file
View File

@@ -0,0 +1,59 @@
FROM python:3.9.12-slim-bullseye as base
# Setup env
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONFAULTHANDLER 1
ENV PATH=/home/ftuser/.local/bin:$PATH
ENV FT_APP_ENV="docker"
# Prepare environment
RUN mkdir /freqtrade \
&& apt-get update \
&& apt-get -y install sudo libatlas3-base curl sqlite3 libhdf5-dev \
&& apt-get clean \
&& useradd -u 1000 -G sudo -U -m ftuser \
&& chown ftuser:ftuser /freqtrade \
# Allow sudoers
&& echo "ftuser ALL=(ALL) NOPASSWD: /bin/chown" >> /etc/sudoers
WORKDIR /freqtrade
# Install dependencies
FROM base as python-deps
RUN apt-get update \
&& apt-get -y install build-essential libssl-dev libffi-dev libgfortran5 pkg-config cmake gcc \
&& apt-get clean \
&& pip install --upgrade pip \
&& echo "[global]\nextra-index-url=https://www.piwheels.org/simple" > /etc/pip.conf
# Install TA-lib
COPY build_helpers/* /tmp/
RUN cd /tmp && /tmp/install_ta-lib.sh && rm -r /tmp/*ta-lib*
ENV LD_LIBRARY_PATH /usr/local/lib
# Install dependencies
COPY --chown=ftuser:ftuser requirements.txt /freqtrade/
USER ftuser
RUN pip install --user --no-cache-dir numpy \
&& pip install --user --no-cache-dir -r requirements.txt
# Copy dependencies to runtime-image
FROM base as runtime-image
COPY --from=python-deps /usr/local/lib /usr/local/lib
ENV LD_LIBRARY_PATH /usr/local/lib
COPY --from=python-deps --chown=ftuser:ftuser /home/ftuser/.local /home/ftuser/.local
USER ftuser
# Install and execute
COPY --chown=ftuser:ftuser . /freqtrade/
RUN pip install -e . --user --no-cache-dir --no-build-isolation\
&& mkdir /freqtrade/user_data/ \
&& freqtrade install-ui
ENTRYPOINT ["freqtrade"]
# Default to trade mode
CMD [ "trade" ]

11
docker/Dockerfile.custom Normal file
View File

@@ -0,0 +1,11 @@
FROM freqtradeorg/freqtrade:develop
# Switch user to root if you must install something from apt
# Don't forget to switch the user back below!
# USER root
# The below dependency - pyti - serves as an example. Please use whatever you need!
RUN pip install --user pyti
# Switch back to user (only if you required root above)
# USER ftuser

View File

@@ -3,8 +3,8 @@ FROM freqtradeorg/freqtrade:develop
# Install dependencies
COPY requirements-dev.txt /freqtrade/
RUN pip install numpy --no-cache-dir \
&& pip install -r requirements-dev.txt --no-cache-dir
RUN pip install numpy --user --no-cache-dir \
&& pip install -r requirements-dev.txt --user --no-cache-dir
# Empty the ENTRYPOINT to allow all commands
ENTRYPOINT []

9
docker/Dockerfile.freqai Normal file
View File

@@ -0,0 +1,9 @@
ARG sourceimage=freqtradeorg/freqtrade
ARG sourcetag=develop
FROM ${sourceimage}:${sourcetag}
# Install dependencies
COPY requirements-freqai.txt /freqtrade/
RUN pip install -r requirements-freqai.txt --user --no-cache-dir

View File

@@ -1,7 +1,7 @@
FROM freqtradeorg/freqtrade:develop_plot
RUN pip install jupyterlab --no-cache-dir
RUN pip install jupyterlab --user --no-cache-dir
# Empty the ENTRYPOINT to allow all commands
ENTRYPOINT []

View File

@@ -1,7 +1,8 @@
ARG sourceimage=develop
FROM freqtradeorg/freqtrade:${sourceimage}
ARG sourceimage=freqtradeorg/freqtrade
ARG sourcetag=develop
FROM ${sourceimage}:${sourcetag}
# Install dependencies
COPY requirements-plot.txt /freqtrade/
RUN pip install -r requirements-plot.txt --no-cache-dir
RUN pip install -r requirements-plot.txt --user --no-cache-dir

View File

@@ -1,6 +0,0 @@
FROM freqtradeorg/freqtrade:develop
RUN apt-get update \
&& apt-get -y install git \
&& apt-get clean \
&& pip install git+https://github.com/freqtrade/technical

View File

@@ -0,0 +1,102 @@
# Advanced Backtesting Analysis
## Analyze the buy/entry and sell/exit tags
It can be helpful to understand how a strategy behaves according to the buy/entry tags used to
mark up different buy conditions. You might want to see more complex statistics about each buy and
sell condition above those provided by the default backtesting output. You may also want to
determine indicator values on the signal candle that resulted in a trade opening.
!!! Note
The following buy reason analysis is only available for backtesting, *not hyperopt*.
We need to run backtesting with the `--export` option set to `signals` to enable the exporting of
signals **and** trades:
``` bash
freqtrade backtesting -c <config.json> --timeframe <tf> --strategy <strategy_name> --timerange=<timerange> --export=signals
```
This will tell freqtrade to output a pickled dictionary of strategy, pairs and corresponding
DataFrame of the candles that resulted in buy signals. Depending on how many buys your strategy
makes, this file may get quite large, so periodically check your `user_data/backtest_results`
folder to delete old exports.
Before running your next backtest, make sure you either delete your old backtest results or run
backtesting with the `--cache none` option to make sure no cached results are used.
If all goes well, you should now see a `backtest-result-{timestamp}_signals.pkl` file in the
`user_data/backtest_results` folder.
To analyze the entry/exit tags, we now need to use the `freqtrade backtesting-analysis` command
with `--analysis-groups` option provided with space-separated arguments (default `0 1 2`):
``` bash
freqtrade backtesting-analysis -c <config.json> --analysis-groups 0 1 2 3 4
```
This command will read from the last backtesting results. The `--analysis-groups` option is
used to specify the various tabular outputs showing the profit fo each group or trade,
ranging from the simplest (0) to the most detailed per pair, per buy and per sell tag (4):
* 1: profit summaries grouped by enter_tag
* 2: profit summaries grouped by enter_tag and exit_tag
* 3: profit summaries grouped by pair and enter_tag
* 4: profit summaries grouped by pair, enter_ and exit_tag (this can get quite large)
More options are available by running with the `-h` option.
### Using export-filename
Normally, `backtesting-analysis` uses the latest backtest results, but if you wanted to go
back to a previous backtest output, you need to supply the `--export-filename` option.
You can supply the same parameter to `backtest-analysis` with the name of the final backtest
output file. This allows you to keep historical versions of backtest results and re-analyse
them at a later date:
``` bash
freqtrade backtesting -c <config.json> --timeframe <tf> --strategy <strategy_name> --timerange=<timerange> --export=signals --export-filename=/tmp/mystrat_backtest.json
```
You should see some output similar to below in the logs with the name of the timestamped
filename that was exported:
```
2022-06-14 16:28:32,698 - freqtrade.misc - INFO - dumping json to "/tmp/mystrat_backtest-2022-06-14_16-28-32.json"
```
You can then use that filename in `backtesting-analysis`:
```
freqtrade backtesting-analysis -c <config.json> --export-filename=/tmp/mystrat_backtest-2022-06-14_16-28-32.json
```
### Tuning the buy tags and sell tags to display
To show only certain buy and sell tags in the displayed output, use the following two options:
```
--enter-reason-list : Space-separated list of enter signals to analyse. Default: "all"
--exit-reason-list : Space-separated list of exit signals to analyse. Default: "all"
```
For example:
```bash
freqtrade backtesting-analysis -c <config.json> --analysis-groups 0 2 --enter-reason-list enter_tag_a enter_tag_b --exit-reason-list roi custom_exit_tag_a stop_loss
```
### Outputting signal candle indicators
The real power of `freqtrade backtesting-analysis` comes from the ability to print out the indicator
values present on signal candles to allow fine-grained investigation and tuning of buy signal
indicators. To print out a column for a given set of indicators, use the `--indicator-list`
option:
```bash
freqtrade backtesting-analysis -c <config.json> --analysis-groups 0 2 --enter-reason-list enter_tag_a enter_tag_b --exit-reason-list roi custom_exit_tag_a stop_loss --indicator-list rsi rsi_1h bb_lowerband ema_9 macd macdsignal
```
The indicators have to be present in your strategy's main DataFrame (either for your main
timeframe or for informative timeframes) otherwise they will simply be ignored in the script
output.

View File

@@ -4,34 +4,6 @@ This page explains some advanced Hyperopt topics that may require higher
coding skills and Python knowledge than creation of an ordinal hyperoptimization
class.
## Derived hyperopt classes
Custom hyperop classes can be derived in the same way [it can be done for strategies](strategy-customization.md#derived-strategies).
Applying to hyperoptimization, as an example, you may override how dimensions are defined in your optimization hyperspace:
```python
class MyAwesomeHyperOpt(IHyperOpt):
...
# Uses default stoploss dimension
class MyAwesomeHyperOpt2(MyAwesomeHyperOpt):
@staticmethod
def stoploss_space() -> List[Dimension]:
# Override boundaries for stoploss
return [
Real(-0.33, -0.01, name='stoploss'),
]
```
and then quickly switch between hyperopt classes, running optimization process with hyperopt class you need in each particular case:
```
$ freqtrade hyperopt --hyperopt MyAwesomeHyperOpt --hyperopt-loss SharpeHyperOptLossDaily --strategy MyAwesomeStrategy ...
or
$ freqtrade hyperopt --hyperopt MyAwesomeHyperOpt2 --hyperopt-loss SharpeHyperOptLossDaily --strategy MyAwesomeStrategy ...
```
## Creating and using a custom loss function
To use a custom loss function class, make sure that the function `hyperopt_loss_function` is defined in your custom hyperopt loss class.
@@ -40,6 +12,11 @@ For the sample below, you then need to add the command line parameter `--hyperop
A sample of this can be found below, which is identical to the Default Hyperopt loss implementation. A full sample can be found in [userdata/hyperopts](https://github.com/freqtrade/freqtrade/blob/develop/freqtrade/templates/sample_hyperopt_loss.py).
``` python
from datetime import datetime
from typing import Any, Dict
from pandas import DataFrame
from freqtrade.optimize.hyperopt import IHyperOptLoss
TARGET_TRADES = 600
@@ -54,6 +31,8 @@ class SuperDuperHyperOptLoss(IHyperOptLoss):
@staticmethod
def hyperopt_loss_function(results: DataFrame, trade_count: int,
min_date: datetime, max_date: datetime,
config: Dict, processed: Dict[str, DataFrame],
backtest_stats: Dict[str, Any],
*args, **kwargs) -> float:
"""
Objective function, returns smaller number for better results
@@ -63,7 +42,7 @@ class SuperDuperHyperOptLoss(IHyperOptLoss):
* 0.25: Avoiding trade loss
* 1.0 to total profit, compared to the expected value (`EXPECTED_MAX_PROFIT`) defined above
"""
total_profit = results['profit_percent'].sum()
total_profit = results['profit_ratio'].sum()
trade_duration = results['trade_duration'].mean()
trade_loss = 1 - 0.25 * exp(-(trade_count - TARGET_TRADES) ** 2 / 10 ** 5.8)
@@ -75,17 +54,138 @@ class SuperDuperHyperOptLoss(IHyperOptLoss):
Currently, the arguments are:
* `results`: DataFrame containing the result
* `results`: DataFrame containing the resulting trades.
The following columns are available in results (corresponds to the output-file of backtesting when used with `--export trades`):
`pair, profit_percent, profit_abs, open_time, close_time, open_index, close_index, trade_duration, open_at_end, open_rate, close_rate, sell_reason`
`pair, profit_ratio, profit_abs, open_date, open_rate, fee_open, close_date, close_rate, fee_close, amount, trade_duration, is_open, exit_reason, stake_amount, min_rate, max_rate, stop_loss_ratio, stop_loss_abs`
* `trade_count`: Amount of trades (identical to `len(results)`)
* `min_date`: Start date of the hyperopting TimeFrame
* `min_date`: End date of the hyperopting TimeFrame
* `min_date`: Start date of the timerange used
* `min_date`: End date of the timerange used
* `config`: Config object used (Note: Not all strategy-related parameters will be updated here if they are part of a hyperopt space).
* `processed`: Dict of Dataframes with the pair as keys containing the data used for backtesting.
* `backtest_stats`: Backtesting statistics using the same format as the backtesting file "strategy" substructure. Available fields can be seen in `generate_strategy_stats()` in `optimize_reports.py`.
This function needs to return a floating point number (`float`). Smaller numbers will be interpreted as better results. The parameters and balancing for this is up to you.
!!! Note
This function is called once per iteration - so please make sure to have this as optimized as possible to not slow hyperopt down unnecessarily.
This function is called once per epoch - so please make sure to have this as optimized as possible to not slow hyperopt down unnecessarily.
!!! Note "`*args` and `**kwargs`"
Please keep the arguments `*args` and `**kwargs` in the interface to allow us to extend this interface in the future.
## Overriding pre-defined spaces
To override a pre-defined space (`roi_space`, `generate_roi_table`, `stoploss_space`, `trailing_space`), define a nested class called Hyperopt and define the required spaces as follows:
```python
class MyAwesomeStrategy(IStrategy):
class HyperOpt:
# Define a custom stoploss space.
def stoploss_space():
return [SKDecimal(-0.05, -0.01, decimals=3, name='stoploss')]
# Define custom ROI space
def roi_space() -> List[Dimension]:
return [
Integer(10, 120, name='roi_t1'),
Integer(10, 60, name='roi_t2'),
Integer(10, 40, name='roi_t3'),
SKDecimal(0.01, 0.04, decimals=3, name='roi_p1'),
SKDecimal(0.01, 0.07, decimals=3, name='roi_p2'),
SKDecimal(0.01, 0.20, decimals=3, name='roi_p3'),
]
```
!!! Note
Please keep the arguments `*args` and `**kwargs` in the interface to allow us to extend this interface later.
All overrides are optional and can be mixed/matched as necessary.
### Dynamic parameters
Parameters can also be defined dynamically, but must be available to the instance once the * [`bot_start()` callback](strategy-callbacks.md#bot-start) has been called.
``` python
class MyAwesomeStrategy(IStrategy):
def bot_start(self, **kwargs) -> None:
self.buy_adx = IntParameter(20, 30, default=30, optimize=True)
# ...
```
!!! Warning
Parameters created this way will not show up in the `list-strategies` parameter count.
### Overriding Base estimator
You can define your own estimator for Hyperopt by implementing `generate_estimator()` in the Hyperopt subclass.
```python
class MyAwesomeStrategy(IStrategy):
class HyperOpt:
def generate_estimator(dimensions: List['Dimension'], **kwargs):
return "RF"
```
Possible values are either one of "GP", "RF", "ET", "GBRT" (Details can be found in the [scikit-optimize documentation](https://scikit-optimize.github.io/)), or "an instance of a class that inherits from `RegressorMixin` (from sklearn) and where the `predict` method has an optional `return_std` argument, which returns `std(Y | x)` along with `E[Y | x]`".
Some research will be necessary to find additional Regressors.
Example for `ExtraTreesRegressor` ("ET") with additional parameters:
```python
class MyAwesomeStrategy(IStrategy):
class HyperOpt:
def generate_estimator(dimensions: List['Dimension'], **kwargs):
from skopt.learning import ExtraTreesRegressor
# Corresponds to "ET" - but allows additional parameters.
return ExtraTreesRegressor(n_estimators=100)
```
The `dimensions` parameter is the list of `skopt.space.Dimension` objects corresponding to the parameters to be optimized. It can be used to create isotropic kernels for the `skopt.learning.GaussianProcessRegressor` estimator. Here's an example:
```python
class MyAwesomeStrategy(IStrategy):
class HyperOpt:
def generate_estimator(dimensions: List['Dimension'], **kwargs):
from skopt.utils import cook_estimator
from skopt.learning.gaussian_process.kernels import (Matern, ConstantKernel)
kernel_bounds = (0.0001, 10000)
kernel = (
ConstantKernel(1.0, kernel_bounds) *
Matern(length_scale=np.ones(len(dimensions)), length_scale_bounds=[kernel_bounds for d in dimensions], nu=2.5)
)
kernel += (
ConstantKernel(1.0, kernel_bounds) *
Matern(length_scale=np.ones(len(dimensions)), length_scale_bounds=[kernel_bounds for d in dimensions], nu=1.5)
)
return cook_estimator("GP", space=dimensions, kernel=kernel, n_restarts_optimizer=2)
```
!!! Note
While custom estimators can be provided, it's up to you as User to do research on possible parameters and analyze / understand which ones should be used.
If you're unsure about this, best use one of the Defaults (`"ET"` has proven to be the most versatile) without further parameters.
## Space options
For the additional spaces, scikit-optimize (in combination with Freqtrade) provides the following space types:
* `Categorical` - Pick from a list of categories (e.g. `Categorical(['a', 'b', 'c'], name="cat")`)
* `Integer` - Pick from a range of whole numbers (e.g. `Integer(1, 10, name='rsi')`)
* `SKDecimal` - Pick from a range of decimal numbers with limited precision (e.g. `SKDecimal(0.1, 0.5, decimals=3, name='adx')`). *Available only with freqtrade*.
* `Real` - Pick from a range of decimal numbers with full precision (e.g. `Real(0.1, 0.5, name='adx')`
You can import all of these from `freqtrade.optimize.space`, although `Categorical`, `Integer` and `Real` are only aliases for their corresponding scikit-optimize Spaces. `SKDecimal` is provided by freqtrade for faster optimizations.
``` python
from freqtrade.optimize.space import Categorical, Dimension, Integer, SKDecimal, Real # noqa
```
!!! Hint "SKDecimal vs. Real"
We recommend to use `SKDecimal` instead of the `Real` space in almost all cases. While the Real space provides full accuracy (up to ~16 decimal places) - this precision is rarely needed, and leads to unnecessary long hyperopt times.
Assuming the definition of a rather small space (`SKDecimal(0.10, 0.15, decimals=2, name='xxx')`) - SKDecimal will have 5 possibilities (`[0.10, 0.11, 0.12, 0.13, 0.14, 0.15]`).
A corresponding real space `Real(0.10, 0.15 name='xxx')` on the other hand has an almost unlimited number of possibilities (`[0.10, 0.010000000001, 0.010000000002, ... 0.014999999999, 0.01500000000]`).

View File

@@ -52,6 +52,71 @@ freqtrade trade -c MyConfigUSDT.json -s MyCustomStrategy --db-url sqlite:///user
For more information regarding usage of the sqlite databases, for example to manually enter or remove trades, please refer to the [SQL Cheatsheet](sql_cheatsheet.md).
### Multiple instances using docker
To run multiple instances of freqtrade using docker you will need to edit the docker-compose.yml file and add all the instances you want as separate services. Remember, you can separate your configuration into multiple files, so it's a good idea to think about making them modular, then if you need to edit something common to all bots, you can do that in a single config file.
``` yml
---
version: '3'
services:
freqtrade1:
image: freqtradeorg/freqtrade:stable
# image: freqtradeorg/freqtrade:develop
# Use plotting image
# image: freqtradeorg/freqtrade:develop_plot
# Build step - only needed when additional dependencies are needed
# build:
# context: .
# dockerfile: "./docker/Dockerfile.custom"
restart: always
container_name: freqtrade1
volumes:
- "./user_data:/freqtrade/user_data"
# Expose api on port 8080 (localhost only)
# Please read the https://www.freqtrade.io/en/latest/rest-api/ documentation
# before enabling this.
ports:
- "127.0.0.1:8080:8080"
# Default command used when running `docker compose up`
command: >
trade
--logfile /freqtrade/user_data/logs/freqtrade1.log
--db-url sqlite:////freqtrade/user_data/tradesv3_freqtrade1.sqlite
--config /freqtrade/user_data/config.json
--config /freqtrade/user_data/config.freqtrade1.json
--strategy SampleStrategy
freqtrade2:
image: freqtradeorg/freqtrade:stable
# image: freqtradeorg/freqtrade:develop
# Use plotting image
# image: freqtradeorg/freqtrade:develop_plot
# Build step - only needed when additional dependencies are needed
# build:
# context: .
# dockerfile: "./docker/Dockerfile.custom"
restart: always
container_name: freqtrade2
volumes:
- "./user_data:/freqtrade/user_data"
# Expose api on port 8080 (localhost only)
# Please read the https://www.freqtrade.io/en/latest/rest-api/ documentation
# before enabling this.
ports:
- "127.0.0.1:8081:8080"
# Default command used when running `docker compose up`
command: >
trade
--logfile /freqtrade/user_data/logs/freqtrade2.log
--db-url sqlite:////freqtrade/user_data/tradesv3_freqtrade2.sqlite
--config /freqtrade/user_data/config.json
--config /freqtrade/user_data/config.freqtrade2.json
--strategy SampleStrategy
```
You can use whatever naming convention you want, freqtrade1 and 2 are arbitrary. Note, that you will need to use different database files, port mappings and telegram configurations for each instance, as mentioned above.
## Configure the bot running as a systemd service
Copy the `freqtrade.service` file to your systemd user directory (usually `~/.config/systemd/user`) and update `WorkingDirectory` and `ExecStart` to match your setup.
@@ -111,12 +176,15 @@ Log messages are send to `syslog` with the `user` facility. So you can see them
On many systems `syslog` (`rsyslog`) fetches data from `journald` (and vice versa), so both `--logfile syslog` or `--logfile journald` can be used and the messages be viewed with both `journalctl` and a syslog viewer utility. You can combine this in any way which suites you better.
For `rsyslog` the messages from the bot can be redirected into a separate dedicated log file. To achieve this, add
```
if $programname startswith "freqtrade" then -/var/log/freqtrade.log
```
to one of the rsyslog configuration files, for example at the end of the `/etc/rsyslog.d/50-default.conf`.
For `syslog` (`rsyslog`), the reduction mode can be switched on. This will reduce the number of repeating messages. For instance, multiple bot Heartbeat messages will be reduced to a single message when nothing else happens with the bot. To achieve this, set in `/etc/rsyslog.conf`:
```
# Filter duplicated messages
$RepeatedMsgReduction on

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid meet" viewBox="0 0 90 90" width="100" height="100"><defs><path d="M0 90L0 0L90 0L90 90L0 90ZM50 60L60 60L60 80L70 80L70 60L80 60L80 50L50 50L50 60ZM30 80L40 80L40 70L30 70L30 80ZM30 60L20 60L20 70L10 70L10 80L20 80L20 70L30 70L30 60L40 60L40 50L30 50L30 60ZM10 60L20 60L20 50L10 50L10 60ZM10 40L40 40L40 30L20 30L20 20L40 20L40 10L10 10L10 40ZM50 40L80 40L80 30L60 30L60 20L80 20L80 10L50 10L50 40Z" id="c6g67PWSoP"></path></defs><g><g><g><use xlink:href="#c6g67PWSoP" opacity="1" fill="#000000" fill-opacity="1"></use></g></g></g></svg>

After

Width:  |  Height:  |  Size: 818 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
docs/assets/freqai_algo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 995 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 2.0 MiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

BIN
docs/assets/frequi_url.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

View File

@@ -5,57 +5,181 @@ This page explains how to validate your strategy performance by using Backtestin
Backtesting requires historic data to be available.
To learn how to get data for the pairs and exchange you're interested in, head over to the [Data Downloading](data-download.md) section of the documentation.
## Backtesting command reference
```
usage: freqtrade backtesting [-h] [-v] [--logfile FILE] [-V] [-c PATH]
[-d PATH] [--userdir PATH] [-s NAME]
[--strategy-path PATH] [-i TIMEFRAME]
[--timerange TIMERANGE]
[--data-format-ohlcv {json,jsongz,hdf5}]
[--max-open-trades INT]
[--stake-amount STAKE_AMOUNT] [--fee FLOAT]
[-p PAIRS [PAIRS ...]] [--eps] [--dmmp]
[--enable-protections]
[--dry-run-wallet DRY_RUN_WALLET]
[--timeframe-detail TIMEFRAME_DETAIL]
[--strategy-list STRATEGY_LIST [STRATEGY_LIST ...]]
[--export {none,trades,signals}]
[--export-filename PATH]
[--breakdown {day,week,month} [{day,week,month} ...]]
[--cache {none,day,week,month}]
optional arguments:
-h, --help show this help message and exit
-i TIMEFRAME, --timeframe TIMEFRAME
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
--timerange TIMERANGE
Specify what timerange of data to use.
--data-format-ohlcv {json,jsongz,hdf5}
Storage format for downloaded candle (OHLCV) data.
(default: `json`).
--max-open-trades INT
Override the value of the `max_open_trades`
configuration setting.
--stake-amount STAKE_AMOUNT
Override the value of the `stake_amount` configuration
setting.
--fee FLOAT Specify fee ratio. Will be applied twice (on trade
entry and exit).
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
--eps, --enable-position-stacking
Allow buying the same pair multiple times (position
stacking).
--dmmp, --disable-max-market-positions
Disable applying `max_open_trades` during backtest
(same as setting `max_open_trades` to a very high
number).
--enable-protections, --enableprotections
Enable protections for backtesting.Will slow
backtesting down by a considerable amount, but will
include configured protections
--dry-run-wallet DRY_RUN_WALLET, --starting-balance DRY_RUN_WALLET
Starting balance, used for backtesting / hyperopt and
dry-runs.
--timeframe-detail TIMEFRAME_DETAIL
Specify detail timeframe for backtesting (`1m`, `5m`,
`30m`, `1h`, `1d`).
--strategy-list STRATEGY_LIST [STRATEGY_LIST ...]
Provide a space-separated list of strategies to
backtest. Please note that timeframe needs to be set
either in config or via command line. When using this
together with `--export trades`, the strategy-name is
injected into the filename (so `backtest-data.json`
becomes `backtest-data-SampleStrategy.json`
--export {none,trades,signals}
Export backtest results (default: trades).
--export-filename PATH, --backtest-filename PATH
Use this filename for backtest results.Requires
`--export` to be set as well. Example: `--export-filen
ame=user_data/backtest_results/backtest_today.json`
--breakdown {day,week,month} [{day,week,month} ...]
Show backtesting breakdown per [day, week, month].
--cache {none,day,week,month}
Load a cached backtest result no older than specified
age (default: day).
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--logfile FILE Log to the file specified. Special values are:
'syslog', 'journald'. See the documentation for more
details.
-V, --version show program's version number and exit
-c PATH, --config PATH
Specify configuration file (default:
`userdir/config.json` or `config.json` whichever
exists). Multiple --config options may be used. Can be
set to `-` to read config from stdin.
-d PATH, --datadir PATH
Path to directory with historical backtesting data.
--userdir PATH, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
```
## Test your strategy with Backtesting
Now you have good Buy and Sell strategies and some historic data, you want to test it against
real data. This is what we call
[backtesting](https://en.wikipedia.org/wiki/Backtesting).
real data. This is what we call [backtesting](https://en.wikipedia.org/wiki/Backtesting).
Backtesting will use the crypto-currencies (pairs) from your config file and load historical candle (OHCLV) data from `user_data/data/<exchange>` by default.
Backtesting will use the crypto-currencies (pairs) from your config file and load historical candle (OHLCV) data from `user_data/data/<exchange>` by default.
If no data is available for the exchange / pair / timeframe combination, backtesting will ask you to download them first using `freqtrade download-data`.
For details on downloading, please refer to the [Data Downloading](data-download.md) section in the documentation.
The result of backtesting will confirm if your bot has better odds of making a profit than a loss.
All profit calculations include fees, and freqtrade will use the exchange's default fees for the calculation.
!!! Warning "Using dynamic pairlists for backtesting"
Using dynamic pairlists is possible, however it relies on the current market conditions - which will not reflect the historic status of the pairlist.
Also, when using pairlists other than StaticPairlist, reproducability of backtesting-results cannot be guaranteed.
Please read the [pairlists documentation](configuration.md#pairlists) for more information.
Using dynamic pairlists is possible (not all of the handlers are allowed to be used in backtest mode), however it relies on the current market conditions - which will not reflect the historic status of the pairlist.
Also, when using pairlists other than StaticPairlist, reproducibility of backtesting-results cannot be guaranteed.
Please read the [pairlists documentation](plugins.md#pairlists) for more information.
To achieve reproducible results, best generate a pairlist via the [`test-pairlist`](utils.md#test-pairlist) command and use that as static pairlist.
### Run a backtesting against the currencies listed in your config file
!!! Note
By default, Freqtrade will export backtesting results to `user_data/backtest_results`.
The exported trades can be used for [further analysis](#further-backtest-result-analysis) or can be used by the [plotting sub-command](plotting.md#plot-price-and-indicators) (`freqtrade plot-dataframe`) in the scripts directory.
#### With 5 min candle (OHLCV) data (per default)
### Starting balance
Backtesting will require a starting balance, which can be provided as `--dry-run-wallet <balance>` or `--starting-balance <balance>` command line argument, or via `dry_run_wallet` configuration setting.
This amount must be higher than `stake_amount`, otherwise the bot will not be able to simulate any trade.
### Dynamic stake amount
Backtesting supports [dynamic stake amount](configuration.md#dynamic-stake-amount) by configuring `stake_amount` as `"unlimited"`, which will split the starting balance into `max_open_trades` pieces.
Profits from early trades will result in subsequent higher stake amounts, resulting in compounding of profits over the backtesting period.
### Example backtesting commands
With 5 min candle (OHLCV) data (per default)
```bash
freqtrade backtesting
freqtrade backtesting --strategy AwesomeStrategy
```
#### With 1 min candle (OHLCV) data
Where `--strategy AwesomeStrategy` / `-s AwesomeStrategy` refers to the class name of the strategy, which is within a python file in the `user_data/strategies` directory.
---
With 1 min candle (OHLCV) data
```bash
freqtrade backtesting --timeframe 1m
freqtrade backtesting --strategy AwesomeStrategy --timeframe 1m
```
#### Using a different on-disk historical candle (OHLCV) data source
---
Providing a custom starting balance of 1000 (in stake currency)
```bash
freqtrade backtesting --strategy AwesomeStrategy --dry-run-wallet 1000
```
---
Using a different on-disk historical candle (OHLCV) data source
Assume you downloaded the history data from the Bittrex exchange and kept it in the `user_data/data/bittrex-20180101` directory.
You can then use this data for backtesting as follows:
```bash
freqtrade --datadir user_data/data/bittrex-20180101 backtesting
freqtrade backtesting --strategy AwesomeStrategy --datadir user_data/data/bittrex-20180101
```
#### With a (custom) strategy file
---
```bash
freqtrade backtesting -s SampleStrategy
```
Where `-s SampleStrategy` refers to the class name within the strategy file `sample_strategy.py` found in the `freqtrade/user_data/strategies` directory.
#### Comparing multiple Strategies
Comparing multiple Strategies
```bash
freqtrade backtesting --strategy-list SampleStrategy1 AwesomeStrategy --timeframe 5m
@@ -63,23 +187,29 @@ freqtrade backtesting --strategy-list SampleStrategy1 AwesomeStrategy --timefram
Where `SampleStrategy1` and `AwesomeStrategy` refer to class names of strategies.
#### Exporting trades to file
---
Prevent exporting trades to file
```bash
freqtrade backtesting --export trades --config config.json --strategy SampleStrategy
freqtrade backtesting --strategy backtesting --export none --config config.json
```
The exported trades can be used for [further analysis](#further-backtest-result-analysis), or can be used by the plotting script `plot_dataframe.py` in the scripts directory.
Only use this if you're sure you'll not want to plot or analyze your results further.
#### Exporting trades to file specifying a custom filename
---
Exporting trades to file specifying a custom filename
```bash
freqtrade backtesting --export trades --export-filename=backtest_samplestrategy.json
freqtrade backtesting --strategy backtesting --export trades --export-filename=backtest_samplestrategy.json
```
Please also read about the [strategy startup period](strategy-customization.md#strategy-startup-period).
#### Supplying custom fee value
---
Supplying custom fee value
Sometimes your account has certain fee rebates (fee reductions starting with a certain account size or monthly volume), which are not visible to ccxt.
To account for this in backtesting, you can use the `--fee` command line option to supply this value to backtesting.
@@ -94,26 +224,26 @@ freqtrade backtesting --fee 0.001
!!! Note
Only supply this option (or the corresponding configuration parameter) if you want to experiment with different fee values. By default, Backtesting fetches the default fee from the exchange pair/market info.
#### Running backtest with smaller testset by using timerange
---
Use the `--timerange` argument to change how much of the testset you want to use.
Running backtest with smaller test-set by using timerange
Use the `--timerange` argument to change how much of the test-set you want to use.
For example, running backtesting with the `--timerange=20190501-` option will use all available data starting with May 1st, 2019 from your inputdata.
For example, running backtesting with the `--timerange=20190501-` option will use all available data starting with May 1st, 2019 from your input data.
```bash
freqtrade backtesting --timerange=20190501-
```
You can also specify particular dates or a range span indexed by start and stop.
You can also specify particular date ranges.
The full timerange specification:
- Use tickframes till 2018/01/31: `--timerange=-20180131`
- Use tickframes since 2018/01/31: `--timerange=20180131-`
- Use tickframes since 2018/01/31 till 2018/03/01 : `--timerange=20180131-20180301`
- Use tickframes between POSIX timestamps 1527595200 1527618600:
`--timerange=1527595200-1527618600`
- Use data until 2018/01/31: `--timerange=-20180131`
- Use data since 2018/01/31: `--timerange=20180131-`
- Use data since 2018/01/31 till 2018/03/01 : `--timerange=20180131-20180301`
- Use data between POSIX / epoch timestamps 1527595200 1527618600: `--timerange=1527595200-1527618600`
## Understand the backtesting result
@@ -122,63 +252,90 @@ The most important in the backtesting is to understand the result.
A backtesting result will look like that:
```
========================================================= BACKTESTING REPORT ========================================================
| Pair | Buys | Avg Profit % | Cum Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Wins | Draws | Losses |
|:---------|-------:|---------------:|---------------:|-----------------:|---------------:|:---------------|------:|-------:|--------:|
| ADA/BTC | 35 | -0.11 | -3.88 | -0.00019428 | -1.94 | 4:35:00 | 14 | 0 | 21 |
| ARK/BTC | 11 | -0.41 | -4.52 | -0.00022647 | -2.26 | 2:03:00 | 3 | 0 | 8 |
| BTS/BTC | 32 | 0.31 | 9.78 | 0.00048938 | 4.89 | 5:05:00 | 18 | 0 | 14 |
| DASH/BTC | 13 | -0.08 | -1.07 | -0.00005343 | -0.53 | 4:39:00 | 6 | 0 | 7 |
| ENG/BTC | 18 | 1.36 | 24.54 | 0.00122807 | 12.27 | 2:50:00 | 8 | 0 | 10 |
| EOS/BTC | 36 | 0.08 | 3.06 | 0.00015304 | 1.53 | 3:34:00 | 16 | 0 | 20 |
| ETC/BTC | 26 | 0.37 | 9.51 | 0.00047576 | 4.75 | 6:14:00 | 11 | 0 | 15 |
| ETH/BTC | 33 | 0.30 | 9.96 | 0.00049856 | 4.98 | 7:31:00 | 16 | 0 | 17 |
| IOTA/BTC | 32 | 0.03 | 1.09 | 0.00005444 | 0.54 | 3:12:00 | 14 | 0 | 18 |
| LSK/BTC | 15 | 1.75 | 26.26 | 0.00131413 | 13.13 | 2:58:00 | 6 | 0 | 9 |
| LTC/BTC | 32 | -0.04 | -1.38 | -0.00006886 | -0.69 | 4:49:00 | 11 | 0 | 21 |
| NANO/BTC | 17 | 1.26 | 21.39 | 0.00107058 | 10.70 | 1:55:00 | 10 | 0 | 7 |
| NEO/BTC | 23 | 0.82 | 18.97 | 0.00094936 | 9.48 | 2:59:00 | 10 | 0 | 13 |
| REQ/BTC | 9 | 1.17 | 10.54 | 0.00052734 | 5.27 | 3:47:00 | 4 | 0 | 5 |
| XLM/BTC | 16 | 1.22 | 19.54 | 0.00097800 | 9.77 | 3:15:00 | 7 | 0 | 9 |
| XMR/BTC | 23 | -0.18 | -4.13 | -0.00020696 | -2.07 | 5:30:00 | 12 | 0 | 11 |
| XRP/BTC | 35 | 0.66 | 22.96 | 0.00114897 | 11.48 | 3:49:00 | 12 | 0 | 23 |
| ZEC/BTC | 22 | -0.46 | -10.18 | -0.00050971 | -5.09 | 2:22:00 | 7 | 0 | 15 |
| TOTAL | 429 | 0.36 | 152.41 | 0.00762792 | 76.20 | 4:12:00 | 186 | 0 | 243 |
========================================================= SELL REASON STATS =========================================================
| Sell Reason | Sells | Wins | Draws | Losses |
========================================================= BACKTESTING REPORT ==========================================================
| Pair | Buys | Avg Profit % | Cum Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Wins Draws Loss Win% |
|:---------|-------:|---------------:|---------------:|-----------------:|---------------:|:-------------|-------------------------:|
| ADA/BTC | 35 | -0.11 | -3.88 | -0.00019428 | -1.94 | 4:35:00 | 14 0 21 40.0 |
| ARK/BTC | 11 | -0.41 | -4.52 | -0.00022647 | -2.26 | 2:03:00 | 3 0 8 27.3 |
| BTS/BTC | 32 | 0.31 | 9.78 | 0.00048938 | 4.89 | 5:05:00 | 18 0 14 56.2 |
| DASH/BTC | 13 | -0.08 | -1.07 | -0.00005343 | -0.53 | 4:39:00 | 6 0 7 46.2 |
| ENG/BTC | 18 | 1.36 | 24.54 | 0.00122807 | 12.27 | 2:50:00 | 8 0 10 44.4 |
| EOS/BTC | 36 | 0.08 | 3.06 | 0.00015304 | 1.53 | 3:34:00 | 16 0 20 44.4 |
| ETC/BTC | 26 | 0.37 | 9.51 | 0.00047576 | 4.75 | 6:14:00 | 11 0 15 42.3 |
| ETH/BTC | 33 | 0.30 | 9.96 | 0.00049856 | 4.98 | 7:31:00 | 16 0 17 48.5 |
| IOTA/BTC | 32 | 0.03 | 1.09 | 0.00005444 | 0.54 | 3:12:00 | 14 0 18 43.8 |
| LSK/BTC | 15 | 1.75 | 26.26 | 0.00131413 | 13.13 | 2:58:00 | 6 0 9 40.0 |
| LTC/BTC | 32 | -0.04 | -1.38 | -0.00006886 | -0.69 | 4:49:00 | 11 0 21 34.4 |
| NANO/BTC | 17 | 1.26 | 21.39 | 0.00107058 | 10.70 | 1:55:00 | 10 0 7 58.5 |
| NEO/BTC | 23 | 0.82 | 18.97 | 0.00094936 | 9.48 | 2:59:00 | 10 0 13 43.5 |
| REQ/BTC | 9 | 1.17 | 10.54 | 0.00052734 | 5.27 | 3:47:00 | 4 0 5 44.4 |
| XLM/BTC | 16 | 1.22 | 19.54 | 0.00097800 | 9.77 | 3:15:00 | 7 0 9 43.8 |
| XMR/BTC | 23 | -0.18 | -4.13 | -0.00020696 | -2.07 | 5:30:00 | 12 0 11 52.2 |
| XRP/BTC | 35 | 0.66 | 22.96 | 0.00114897 | 11.48 | 3:49:00 | 12 0 23 34.3 |
| ZEC/BTC | 22 | -0.46 | -10.18 | -0.00050971 | -5.09 | 2:22:00 | 7 0 15 31.8 |
| TOTAL | 429 | 0.36 | 152.41 | 0.00762792 | 76.20 | 4:12:00 | 186 0 243 43.4 |
========================================================= EXIT REASON STATS ==========================================================
| Exit Reason | Sells | Wins | Draws | Losses |
|:-------------------|--------:|------:|-------:|--------:|
| trailing_stop_loss | 205 | 150 | 0 | 55 |
| stop_loss | 166 | 0 | 0 | 166 |
| sell_signal | 56 | 36 | 0 | 20 |
| force_sell | 2 | 0 | 0 | 2 |
| exit_signal | 56 | 36 | 0 | 20 |
| force_exit | 2 | 0 | 0 | 2 |
====================================================== LEFT OPEN TRADES REPORT ======================================================
| Pair | Buys | Avg Profit % | Cum Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Wins | Draws | Losses |
|:---------|-------:|---------------:|---------------:|-----------------:|---------------:|:---------------|------:|-------:|--------:|
| ADA/BTC | 1 | 0.89 | 0.89 | 0.00004434 | 0.44 | 6:00:00 | 1 | 0 | 0 |
| LTC/BTC | 1 | 0.68 | 0.68 | 0.00003421 | 0.34 | 2:00:00 | 1 | 0 | 0 |
| TOTAL | 2 | 0.78 | 1.57 | 0.00007855 | 0.78 | 4:00:00 | 2 | 0 | 0 |
=============== SUMMARY METRICS ===============
| Metric | Value |
|-----------------------+---------------------|
| Backtesting from | 2019-01-01 00:00:00 |
| Backtesting to | 2019-05-01 00:00:00 |
| Max open trades | 3 |
| | |
| Total trades | 429 |
| First trade | 2019-01-01 18:30:00 |
| First trade Pair | EOS/USDT |
| Total Profit % | 152.41% |
| Trades per day | 3.575 |
| Best day | 25.27% |
| Worst day | -30.67% |
| Avg. Duration Winners | 4:23:00 |
| Avg. Duration Loser | 6:55:00 |
| | |
| Max Drawdown | 50.63% |
| Drawdown Start | 2019-02-15 14:10:00 |
| Drawdown End | 2019-04-11 18:15:00 |
| Market change | -5.88% |
===============================================
| Pair | Buys | Avg Profit % | Cum Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Win Draw Loss Win% |
|:---------|-------:|---------------:|---------------:|-----------------:|---------------:|:---------------|--------------------:|
| ADA/BTC | 1 | 0.89 | 0.89 | 0.00004434 | 0.44 | 6:00:00 | 1 0 0 100 |
| LTC/BTC | 1 | 0.68 | 0.68 | 0.00003421 | 0.34 | 2:00:00 | 1 0 0 100 |
| TOTAL | 2 | 0.78 | 1.57 | 0.00007855 | 0.78 | 4:00:00 | 2 0 0 100 |
================== SUMMARY METRICS ==================
| Metric | Value |
|-----------------------------+---------------------|
| Backtesting from | 2019-01-01 00:00:00 |
| Backtesting to | 2019-05-01 00:00:00 |
| Max open trades | 3 |
| | |
| Total/Daily Avg Trades | 429 / 3.575 |
| Starting balance | 0.01000000 BTC |
| Final balance | 0.01762792 BTC |
| Absolute profit | 0.00762792 BTC |
| Total profit % | 76.2% |
| CAGR % | 460.87% |
| Profit factor | 1.11 |
| Avg. stake amount | 0.001 BTC |
| Total trade volume | 0.429 BTC |
| | |
| Long / Short | 352 / 77 |
| Total profit Long % | 1250.58% |
| Total profit Short % | -15.02% |
| Absolute profit Long | 0.00838792 BTC |
| Absolute profit Short | -0.00076 BTC |
| | |
| Best Pair | LSK/BTC 26.26% |
| Worst Pair | ZEC/BTC -10.18% |
| Best Trade | LSK/BTC 4.25% |
| Worst Trade | ZEC/BTC -10.25% |
| Best day | 0.00076 BTC |
| Worst day | -0.00036 BTC |
| Days win/draw/lose | 12 / 82 / 25 |
| Avg. Duration Winners | 4:23:00 |
| Avg. Duration Loser | 6:55:00 |
| Rejected Entry signals | 3089 |
| Entry/Exit Timeouts | 0 / 0 |
| Canceled Trade Entries | 34 |
| Canceled Entry Orders | 123 |
| Replaced Entry Orders | 89 |
| | |
| Min balance | 0.00945123 BTC |
| Max balance | 0.01846651 BTC |
| Max % of account underwater | 25.19% |
| Absolute Drawdown (Account) | 13.33% |
| Drawdown | 0.0015 BTC |
| Drawdown high | 0.0013 BTC |
| Drawdown low | -0.0002 BTC |
| Drawdown Start | 2019-02-15 14:10:00 |
| Drawdown End | 2019-04-11 18:15:00 |
| Market change | -5.88% |
=====================================================
```
### Backtesting report table
@@ -189,19 +346,19 @@ The last line will give you the overall performance of your strategy,
here:
```
| TOTAL | 429 | 0.36 | 152.41 | 0.00762792 | 76.20 | 4:12:00 | 186 | 243 |
| TOTAL | 429 | 0.36 | 152.41 | 0.00762792 | 76.20 | 4:12:00 | 186 0 243 43.4 |
```
The bot has made `429` trades for an average duration of `4:12:00`, with a performance of `76.20%` (profit), that means it has
earned a total of `0.00762792 BTC` starting with a capital of 0.01 BTC.
The column `avg profit %` shows the average profit for all trades made while the column `cum profit %` sums up all the profits/losses.
The column `tot profit %` shows instead the total profit % in relation to allocated capital (`max_open_trades * stake_amount`).
In the above results we have `max_open_trades=2` and `stake_amount=0.005` in config so `tot_profit %` will be `(76.20/100) * (0.005 * 2) =~ 0.00762792 BTC`.
The column `Avg Profit %` shows the average profit for all trades made while the column `Cum Profit %` sums up all the profits/losses.
The column `Tot Profit %` shows instead the total profit % in relation to the starting balance.
In the above results, we have a starting balance of 0.01 BTC and an absolute profit of 0.00762792 BTC - so the `Tot Profit %` will be `(0.00762792 / 0.01) * 100 ~= 76.2%`.
Your strategy performance is influenced by your buy strategy, your sell strategy, and also by the `minimal_roi` and `stop_loss` you have set.
Your strategy performance is influenced by your buy strategy, your exit strategy, and also by the `minimal_roi` and `stop_loss` you have set.
For example, if your `minimal_roi` is only `"0": 0.01` you cannot expect the bot to make more profit than 1% (because it will sell every time a trade reaches 1%).
For example, if your `minimal_roi` is only `"0": 0.01` you cannot expect the bot to make more profit than 1% (because it will exit every time a trade reaches 1%).
```json
"minimal_roi": {
@@ -213,14 +370,14 @@ On the other hand, if you set a too high `minimal_roi` like `"0": 0.55`
(55%), there is almost no chance that the bot will ever reach this profit.
Hence, keep in mind that your performance is an integral mix of all different elements of the strategy, your configuration, and the crypto-currency pairs you have set up.
### Sell reasons table
### Exit reasons table
The 2nd table contains a recap of sell reasons.
This table can tell you which area needs some additional work (e.g. all or many of the `sell_signal` trades are losses, so you should work on improving the sell signal, or consider disabling it).
The 2nd table contains a recap of exit reasons.
This table can tell you which area needs some additional work (e.g. all or many of the `exit_signal` trades are losses, so you should work on improving the exit signal, or consider disabling it).
### Left open trades table
The 3rd table contains all trades the bot had to `forcesell` at the end of the backtesting period to present you the full picture.
The 3rd table contains all trades the bot had to `force_exit` at the end of the backtesting period to present you the full picture.
This is necessary to simulate realistic behavior, since the backtest period has to end at some point, while realistically, you could leave the bot running forever.
These trades are also included in the first table, but are also shown separately in this table for clarity.
@@ -230,71 +387,204 @@ The last element of the backtest report is the summary metrics table.
It contains some useful key metrics about performance of your strategy on backtesting data.
```
=============== SUMMARY METRICS ===============
| Metric | Value |
|-----------------------+---------------------|
| Backtesting from | 2019-01-01 00:00:00 |
| Backtesting to | 2019-05-01 00:00:00 |
| Max open trades | 3 |
| | |
| Total trades | 429 |
| First trade | 2019-01-01 18:30:00 |
| First trade Pair | EOS/USDT |
| Total Profit % | 152.41% |
| Trades per day | 3.575 |
| Best day | 25.27% |
| Worst day | -30.67% |
| Avg. Duration Winners | 4:23:00 |
| Avg. Duration Loser | 6:55:00 |
| | |
| Max Drawdown | 50.63% |
| Drawdown Start | 2019-02-15 14:10:00 |
| Drawdown End | 2019-04-11 18:15:00 |
| Market change | -5.88% |
===============================================
================== SUMMARY METRICS ==================
| Metric | Value |
|-----------------------------+---------------------|
| Backtesting from | 2019-01-01 00:00:00 |
| Backtesting to | 2019-05-01 00:00:00 |
| Max open trades | 3 |
| | |
| Total/Daily Avg Trades | 429 / 3.575 |
| Starting balance | 0.01000000 BTC |
| Final balance | 0.01762792 BTC |
| Absolute profit | 0.00762792 BTC |
| Total profit % | 76.2% |
| CAGR % | 460.87% |
| Profit factor | 1.11 |
| Avg. stake amount | 0.001 BTC |
| Total trade volume | 0.429 BTC |
| | |
| Long / Short | 352 / 77 |
| Total profit Long % | 1250.58% |
| Total profit Short % | -15.02% |
| Absolute profit Long | 0.00838792 BTC |
| Absolute profit Short | -0.00076 BTC |
| | |
| Best Pair | LSK/BTC 26.26% |
| Worst Pair | ZEC/BTC -10.18% |
| Best Trade | LSK/BTC 4.25% |
| Worst Trade | ZEC/BTC -10.25% |
| Best day | 0.00076 BTC |
| Worst day | -0.00036 BTC |
| Days win/draw/lose | 12 / 82 / 25 |
| Avg. Duration Winners | 4:23:00 |
| Avg. Duration Loser | 6:55:00 |
| Rejected Entry signals | 3089 |
| Entry/Exit Timeouts | 0 / 0 |
| Canceled Trade Entries | 34 |
| Canceled Entry Orders | 123 |
| Replaced Entry Orders | 89 |
| | |
| Min balance | 0.00945123 BTC |
| Max balance | 0.01846651 BTC |
| Max % of account underwater | 25.19% |
| Absolute Drawdown (Account) | 13.33% |
| Drawdown | 0.0015 BTC |
| Drawdown high | 0.0013 BTC |
| Drawdown low | -0.0002 BTC |
| Drawdown Start | 2019-02-15 14:10:00 |
| Drawdown End | 2019-04-11 18:15:00 |
| Market change | -5.88% |
=====================================================
```
- `Backtesting from` / `Backtesting to`: Backtesting range (usually defined with the `--timerange` option).
- `Max open trades`: Setting of `max_open_trades` (or `--max-open-trades`) - to clearly see settings for this.
- `Total trades`: Identical to the total trades of the backtest output table.
- `First trade`: First trade entered.
- `First trade pair`: Which pair was part of the first trade.
- `Total Profit %`: Total profit per stake amount. Aligned to the TOTAL column of the first table.
- `Trades per day`: Total trades divided by the backtesting duration in days (this will give you information about how many trades to expect from the strategy).
- `Max open trades`: Setting of `max_open_trades` (or `--max-open-trades`) - or number of pairs in the pairlist (whatever is lower).
- `Total/Daily Avg Trades`: Identical to the total trades of the backtest output table / Total trades divided by the backtesting duration in days (this will give you information about how many trades to expect from the strategy).
- `Starting balance`: Start balance - as given by dry-run-wallet (config or command line).
- `Final balance`: Final balance - starting balance + absolute profit.
- `Absolute profit`: Profit made in stake currency.
- `Total profit %`: Total profit. Aligned to the `TOTAL` row's `Tot Profit %` from the first table. Calculated as `(End capital Starting capital) / Starting capital`.
- `CAGR %`: Compound annual growth rate.
- `Profit factor`: profit / loss.
- `Avg. stake amount`: Average stake amount, either `stake_amount` or the average when using dynamic stake amount.
- `Total trade volume`: Volume generated on the exchange to reach the above profit.
- `Best Pair` / `Worst Pair`: Best and worst performing pair, and it's corresponding `Cum Profit %`.
- `Best Trade` / `Worst Trade`: Biggest single winning trade and biggest single losing trade.
- `Best day` / `Worst day`: Best and worst day based on daily profit.
- `Days win/draw/lose`: Winning / Losing days (draws are usually days without closed trade).
- `Avg. Duration Winners` / `Avg. Duration Loser`: Average durations for winning and losing trades.
- `Max Drawdown`: Maximum drawdown experienced. For example, the value of 50% means that from highest to subsequent lowest point, a 50% drop was experienced).
- `Rejected Entry signals`: Trade entry signals that could not be acted upon due to `max_open_trades` being reached.
- `Entry/Exit Timeouts`: Entry/exit orders which did not fill (only applicable if custom pricing is used).
- `Canceled Trade Entries`: Number of trades that have been canceled by user request via `adjust_entry_price`.
- `Canceled Entry Orders`: Number of entry orders that have been canceled by user request via `adjust_entry_price`.
- `Replaced Entry Orders`: Number of entry orders that have been replaced by user request via `adjust_entry_price`.
- `Min balance` / `Max balance`: Lowest and Highest Wallet balance during the backtest period.
- `Max % of account underwater`: Maximum percentage your account has decreased from the top since the simulation started.
Calculated as the maximum of `(Max Balance - Current Balance) / (Max Balance)`.
- `Absolute Drawdown (Account)`: Maximum Account Drawdown experienced. Calculated as `(Absolute Drawdown) / (DrawdownHigh + startingBalance)`.
- `Drawdown`: Maximum, absolute drawdown experienced. Difference between Drawdown High and Subsequent Low point.
- `Drawdown high` / `Drawdown low`: Profit at the beginning and end of the largest drawdown period. A negative low value means initial capital lost.
- `Drawdown Start` / `Drawdown End`: Start and end datetime for this largest drawdown (can also be visualized via the `plot-dataframe` sub-command).
- `Market change`: Change of the market during the backtest period. Calculated as average of all pairs changes from the first to the last candle using the "close" column.
- `Long / Short`: Split long/short values (Only shown when short trades were made).
- `Total profit Long %` / `Absolute profit Long`: Profit long trades only (Only shown when short trades were made).
- `Total profit Short %` / `Absolute profit Short`: Profit short trades only (Only shown when short trades were made).
### Assumptions made by backtesting
### Daily / Weekly / Monthly breakdown
You can get an overview over daily / weekly or monthly results by using the `--breakdown <>` switch.
To visualize daily and weekly breakdowns, you can use the following:
``` bash
freqtrade backtesting --strategy MyAwesomeStrategy --breakdown day week
```
``` output
======================== DAY BREAKDOWN =========================
| Day | Tot Profit USDT | Wins | Draws | Losses |
|------------+-------------------+--------+---------+----------|
| 03/07/2021 | 200.0 | 2 | 0 | 0 |
| 04/07/2021 | -50.31 | 0 | 0 | 2 |
| 05/07/2021 | 220.611 | 3 | 2 | 0 |
| 06/07/2021 | 150.974 | 3 | 0 | 2 |
| 07/07/2021 | -70.193 | 1 | 0 | 2 |
| 08/07/2021 | 212.413 | 2 | 0 | 3 |
```
The output will show a table containing the realized absolute Profit (in stake currency) for the given timeperiod, as well as wins, draws and losses that materialized (closed) on this day. Below that there will be a second table for the summarized values of weeks indicated by the date of the closing Sunday. The same would apply to a monthly breakdown indicated by the last day of the month.
### Backtest result caching
To save time, by default backtest will reuse a cached result from within the last day when the backtested strategy and config match that of a previous backtest. To force a new backtest despite existing result for an identical run specify `--cache none` parameter.
!!! Warning
Caching is automatically disabled for open-ended timeranges (`--timerange 20210101-`), as freqtrade cannot ensure reliably that the underlying data didn't change. It can also use cached results where it shouldn't if the original backtest had missing data at the end, which was fixed by downloading more data.
In this instance, please use `--cache none` once to force a fresh backtest.
### Further backtest-result analysis
To further analyze your backtest results, you can [export the trades](#exporting-trades-to-file).
You can then load the trades to perform further analysis as shown in the [data analysis](data-analysis.md#backtesting) backtesting section.
## Assumptions made by backtesting
Since backtesting lacks some detailed information about what happens within a candle, it needs to take a few assumptions:
- Exchange [trading limits](#trading-limits-in-backtesting) are respected
- Buys happen at open-price
- Sell signal sells happen at open-price of the following candle
- Low happens before high for stoploss, protecting capital first
- All orders are filled at the requested price (no slippage, no unfilled orders)
- Exit-signal exits happen at open-price of the consecutive candle
- Exit-signal is favored over Stoploss, because exit-signals are assumed to trigger on candle's open
- ROI
- sells are compared to high - but the ROI value is used (e.g. ROI = 2%, high=5% - so the sell will be at 2%)
- sells are never "below the candle", so a ROI of 2% may result in a sell at 2.4% if low was at 2.4% profit
- Forcesells caused by `<N>=-1` ROI entries use low as sell value, unless N falls on the candle open (e.g. `120: -1` for 1h candles)
- Stoploss sells happen exactly at stoploss price, even if low was lower
- exits are compared to high - but the ROI value is used (e.g. ROI = 2%, high=5% - so the exit will be at 2%)
- exits are never "below the candle", so a ROI of 2% may result in a exit at 2.4% if low was at 2.4% profit
- Forceexits caused by `<N>=-1` ROI entries use low as exit value, unless N falls on the candle open (e.g. `120: -1` for 1h candles)
- Stoploss exits happen exactly at stoploss price, even if low was lower, but the loss will be `2 * fees` higher than the stoploss price
- Stoploss is evaluated before ROI within one candle. So you can often see more trades with the `stoploss` exit reason comparing to the results obtained with the same strategy in the Dry Run/Live Trade modes
- Low happens before high for stoploss, protecting capital first
- Trailing stoploss
- Trailing Stoploss is only adjusted if it's below the candle's low (otherwise it would be triggered)
- On trade entry candles that trigger trailing stoploss, the "minimum offset" (`stop_positive_offset`) is assumed (instead of high) - and the stop is calculated from this point
- High happens first - adjusting stoploss
- Low uses the adjusted stoploss (so sells with large high-low difference are backtested correctly)
- Sell-reason does not explain if a trade was positive or negative, just what triggered the sell (this can look odd if negative ROI values are used)
- Stoploss (and trailing stoploss) is evaluated before ROI within one candle. So you can often see more trades with the `stoploss` and/or `trailing_stop` sell reason comparing to the results obtained with the same strategy in the Dry Run/Live Trade modes.
- Low uses the adjusted stoploss (so exits with large high-low difference are backtested correctly)
- ROI applies before trailing-stop, ensuring profits are "top-capped" at ROI if both ROI and trailing stop applies
- Exit-reason does not explain if a trade was positive or negative, just what triggered the exit (this can look odd if negative ROI values are used)
- Evaluation sequence (if multiple signals happen on the same candle)
- Exit-signal
- Stoploss
- ROI
- Trailing stoploss
Taking these assumptions, backtesting tries to mirror real trading as closely as possible. However, backtesting will **never** replace running a strategy in dry-run mode.
Also, keep in mind that past results don't guarantee future success.
In addition to the above assumptions, strategy authors should carefully read the [Common Mistakes](strategy-customization.md#common-mistakes-when-developing-strategies) section, to avoid using data in backtesting which is not available in real market conditions.
### Further backtest-result analysis
### Trading limits in backtesting
To further analyze your backtest results, you can [export the trades](#exporting-trades-to-file).
You can then load the trades to perform further analysis as shown in our [data analysis](data-analysis.md#backtesting) backtesting section.
Exchanges have certain trading limits, like minimum base currency, or minimum stake (quote) currency.
These limits are usually listed in the exchange documentation as "trading rules" or similar.
Backtesting (as well as live and dry-run) does honor these limits, and will ensure that a stoploss can be placed below this value - so the value will be slightly higher than what the exchange specifies.
Freqtrade has however no information about historic limits.
This can lead to situations where trading-limits are inflated by using a historic price, resulting in minimum amounts > 50$.
For example:
BTC minimum tradable amount is 0.001.
BTC trades at 22.000\$ today (0.001 BTC is related to this) - but the backtesting period includes prices as high as 50.000\$.
Today's minimum would be `0.001 * 22_000` - or 22\$.
However the limit could also be 50$ - based on `0.001 * 50_000` in some historic setting.
## Improved backtest accuracy
One big limitation of backtesting is it's inability to know how prices moved intra-candle (was high before close, or viceversa?).
So assuming you run backtesting with a 1h timeframe, there will be 4 prices for that candle (Open, High, Low, Close).
While backtesting does take some assumptions (read above) about this - this can never be perfect, and will always be biased in one way or the other.
To mitigate this, freqtrade can use a lower (faster) timeframe to simulate intra-candle movements.
To utilize this, you can append `--timeframe-detail 5m` to your regular backtesting command.
``` bash
freqtrade backtesting --strategy AwesomeStrategy --timeframe 1h --timeframe-detail 5m
```
This will load 1h data as well as 5m data for the timeframe. The strategy will be analyzed with the 1h timeframe - and for every "open trade candle" (candles where a trade is open) the 5m data will be used to simulate intra-candle movements.
All callback functions (`custom_exit()`, `custom_stoploss()`, ... ) will be running for each 5m candle once the trade is opened (so 12 times in the above example of 1h timeframe, and 5m detailed timeframe).
`--timeframe-detail` must be smaller than the original timeframe, otherwise backtesting will fail to start.
Obviously this will require more memory (5m data is bigger than 1h data), and will also impact runtime (depending on the amount of trades and trade durations).
Also, data must be available / downloaded already.
!!! Tip
You can use this function as the last part of strategy development, to ensure your strategy is not exploiting one of the [backtesting assumptions](#assumptions-made-by-backtesting). Strategies that perform similarly well with this mode have a good chance to perform well in dry/live modes too (although only forward-testing (dry-mode) can really confirm a strategy).
## Backtesting multiple strategies
@@ -314,15 +604,14 @@ There will be an additional table comparing win/losses of the different strategi
Detailed output for all strategies one after the other will be available, so make sure to scroll up to see the details per strategy.
```
=========================================================== STRATEGY SUMMARY ===========================================================
| Strategy | Buys | Avg Profit % | Cum Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Wins | Draws | Losses |
|:------------|-------:|---------------:|---------------:|-----------------:|---------------:|:---------------|------:|-------:|-------:|
| Strategy1 | 429 | 0.36 | 152.41 | 0.00762792 | 76.20 | 4:12:00 | 186 | 0 | 243 |
| Strategy2 | 1487 | -0.13 | -197.58 | -0.00988917 | -98.79 | 4:43:00 | 662 | 0 | 825 |
=========================================================== STRATEGY SUMMARY =========================================================================
| Strategy | Buys | Avg Profit % | Cum Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Wins | Draws | Losses | Drawdown % |
|:------------|-------:|---------------:|---------------:|-----------------:|---------------:|:---------------|------:|-------:|-------:|-----------:|
| Strategy1 | 429 | 0.36 | 152.41 | 0.00762792 | 76.20 | 4:12:00 | 186 | 0 | 243 | 45.2 |
| Strategy2 | 1487 | -0.13 | -197.58 | -0.00988917 | -98.79 | 4:43:00 | 662 | 0 | 825 | 241.68 |
```
## Next step
Great, your strategy is profitable. What if the bot can give your the
optimal parameters to use for your strategy?
Great, your strategy is profitable. What if the bot can give your the optimal parameters to use for your strategy?
Your next step is to learn [how to find optimal parameters with Hyperopt](hyperopt.md)

View File

@@ -4,13 +4,14 @@ This page provides you some basic concepts on how Freqtrade works and operates.
## Freqtrade terminology
* Trade: Open position.
* Open Order: Order which is currently placed on the exchange, and is not yet complete.
* Pair: Tradable pair, usually in the format of Quote/Base (e.g. XRP/USDT).
* Timeframe: Candle length to use (e.g. `"5m"`, `"1h"`, ...).
* Indicators: Technical indicators (SMA, EMA, RSI, ...).
* Limit order: Limit orders which execute at the defined limit price or better.
* Market order: Guaranteed to fill, may move price depending on the order size.
* **Strategy**: Your trading strategy, telling the bot what to do.
* **Trade**: Open position.
* **Open Order**: Order which is currently placed on the exchange, and is not yet complete.
* **Pair**: Tradable pair, usually in the format of Base/Quote (e.g. XRP/USDT).
* **Timeframe**: Candle length to use (e.g. `"5m"`, `"1h"`, ...).
* **Indicators**: Technical indicators (SMA, EMA, RSI, ...).
* **Limit order**: Limit orders which execute at the defined limit price or better.
* **Market order**: Guaranteed to fill, may move price depending on the order size.
## Fee handling
@@ -19,28 +20,34 @@ All profit calculations of Freqtrade include fees. For Backtesting / Hyperopt /
## Bot execution logic
Starting freqtrade in dry-run or live mode (using `freqtrade trade`) will start the bot and start the bot iteration loop.
By default, loop runs every few seconds (`internals.process_throttle_secs`) and does roughly the following in the following sequence:
This will also run the `bot_start()` callback.
By default, the bot loop runs every few seconds (`internals.process_throttle_secs`) and performs the following actions:
* Fetch open trades from persistence.
* Calculate current list of tradable pairs.
* Download ohlcv data for the pairlist including all [informative pairs](strategy-customization.md#get-data-for-non-tradeable-pairs)
* Download OHLCV data for the pairlist including all [informative pairs](strategy-customization.md#get-data-for-non-tradeable-pairs)
This step is only executed once per Candle to avoid unnecessary network traffic.
* Call `bot_loop_start()` strategy callback.
* Analyze strategy per pair.
* Call `populate_indicators()`
* Call `populate_buy_trend()`
* Call `populate_sell_trend()`
* Call `populate_entry_trend()`
* Call `populate_exit_trend()`
* Check timeouts for open orders.
* Calls `check_buy_timeout()` strategy callback for open buy orders.
* Calls `check_sell_timeout()` strategy callback for open sell orders.
* Verifies existing positions and eventually places sell orders.
* Considers stoploss, ROI and sell-signal.
* Determine sell-price based on `ask_strategy` configuration setting.
* Before a sell order is placed, `confirm_trade_exit()` strategy callback is called.
* Calls `check_entry_timeout()` strategy callback for open entry orders.
* Calls `check_exit_timeout()` strategy callback for open exit orders.
* Calls `adjust_entry_price()` strategy callback for open entry orders.
* Verifies existing positions and eventually places exit orders.
* Considers stoploss, ROI and exit-signal, `custom_exit()` and `custom_stoploss()`.
* Determine exit-price based on `exit_pricing` configuration setting or by using the `custom_exit_price()` callback.
* Before a exit order is placed, `confirm_trade_exit()` strategy callback is called.
* Check position adjustments for open trades if enabled by calling `adjust_trade_position()` and place additional order if required.
* Check if trade-slots are still available (if `max_open_trades` is reached).
* Verifies buy signal trying to enter new positions.
* Determine buy-price based on `bid_strategy` configuration setting.
* Before a buy order is placed, `confirm_trade_entry()` strategy callback is called.
* Verifies entry signal trying to enter new positions.
* Determine entry-price based on `entry_pricing` configuration setting, or by using the `custom_entry_price()` callback.
* In Margin and Futures mode, `leverage()` strategy callback is called to determine the desired leverage.
* Determine stake size by calling the `custom_stake_amount()` callback.
* Before an entry order is placed, `confirm_trade_entry()` strategy callback is called.
This loop will be repeated again and again until the bot is stopped.
@@ -49,9 +56,21 @@ This loop will be repeated again and again until the bot is stopped.
[backtesting](backtesting.md) or [hyperopt](hyperopt.md) do only part of the above logic, since most of the trading operations are fully simulated.
* Load historic data for configured pairlist.
* Calculate indicators (calls `populate_indicators()`).
* Calls `populate_buy_trend()` and `populate_sell_trend()`
* Calls `bot_start()` once.
* Calls `bot_loop_start()` once.
* Calculate indicators (calls `populate_indicators()` once per pair).
* Calculate entry / exit signals (calls `populate_entry_trend()` and `populate_exit_trend()` once per pair).
* Loops per candle simulating entry and exit points.
* Check for Order timeouts, either via the `unfilledtimeout` configuration, or via `check_entry_timeout()` / `check_exit_timeout()` strategy callbacks.
* Calls `adjust_entry_price()` strategy callback for open entry orders.
* Check for trade entry signals (`enter_long` / `enter_short` columns).
* Confirm trade entry / exits (calls `confirm_trade_entry()` and `confirm_trade_exit()` if implemented in the strategy).
* Call `custom_entry_price()` (if implemented in the strategy) to determine entry price (Prices are moved to be within the opening candle).
* In Margin and Futures mode, `leverage()` strategy callback is called to determine the desired leverage.
* Determine stake size by calling the `custom_stake_amount()` callback.
* Check position adjustments for open trades if enabled and call `adjust_trade_position()` to determine if an additional order is requested.
* Call `custom_stoploss()` and `custom_exit()` to find custom exit points.
* For exits based on exit-signal and custom-exit: Call `custom_exit_price()` to determine exit price (Prices are moved to be within the closing candle).
* Generate backtest report output
!!! Note

View File

@@ -12,22 +12,22 @@ This page explains the different parameters of the bot and how to run it.
```
usage: freqtrade [-h] [-V]
{trade,create-userdir,new-config,new-hyperopt,new-strategy,download-data,convert-data,convert-trade-data,backtesting,edge,hyperopt,hyperopt-list,hyperopt-show,list-exchanges,list-hyperopts,list-markets,list-pairs,list-strategies,list-timeframes,show-trades,test-pairlist,plot-dataframe,plot-profit}
{trade,create-userdir,new-config,new-strategy,download-data,convert-data,convert-trade-data,list-data,backtesting,edge,hyperopt,hyperopt-list,hyperopt-show,list-exchanges,list-hyperopts,list-markets,list-pairs,list-strategies,list-timeframes,show-trades,test-pairlist,install-ui,plot-dataframe,plot-profit,webserver}
...
Free, open source crypto trading bot
positional arguments:
{trade,create-userdir,new-config,new-hyperopt,new-strategy,download-data,convert-data,convert-trade-data,backtesting,edge,hyperopt,hyperopt-list,hyperopt-show,list-exchanges,list-hyperopts,list-markets,list-pairs,list-strategies,list-timeframes,show-trades,test-pairlist,plot-dataframe,plot-profit}
{trade,create-userdir,new-config,new-strategy,download-data,convert-data,convert-trade-data,list-data,backtesting,edge,hyperopt,hyperopt-list,hyperopt-show,list-exchanges,list-hyperopts,list-markets,list-pairs,list-strategies,list-timeframes,show-trades,test-pairlist,install-ui,plot-dataframe,plot-profit,webserver}
trade Trade module.
create-userdir Create user-data directory.
new-config Create new config
new-hyperopt Create new hyperopt
new-strategy Create new strategy
download-data Download backtesting data.
convert-data Convert candle (OHLCV) data from one format to
another.
convert-trade-data Convert trade data from one format to another.
list-data List downloaded data.
backtesting Backtesting module.
edge Edge module.
hyperopt Hyperopt module.
@@ -41,8 +41,10 @@ positional arguments:
list-timeframes Print available timeframes for the exchange.
show-trades Show trades.
test-pairlist Test your pairlist configuration.
install-ui Install FreqUI
plot-dataframe Plot candles with indicators.
plot-profit Generate plot showing profits.
webserver Webserver module.
optional arguments:
-h, --help show this help message and exit
@@ -56,6 +58,7 @@ optional arguments:
usage: freqtrade trade [-h] [-v] [--logfile FILE] [-V] [-c PATH] [-d PATH]
[--userdir PATH] [-s NAME] [--strategy-path PATH]
[--db-url PATH] [--sd-notify] [--dry-run]
[--dry-run-wallet DRY_RUN_WALLET]
optional arguments:
-h, --help show this help message and exit
@@ -66,6 +69,9 @@ optional arguments:
--sd-notify Notify systemd service manager.
--dry-run Enforce dry-run for trading (removes Exchange secrets
and simulates trades).
--dry-run-wallet DRY_RUN_WALLET, --starting-balance DRY_RUN_WALLET
Starting balance, used for backtesting / hyperopt and
dry-runs.
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
@@ -205,241 +211,6 @@ in production mode. Example command:
freqtrade trade -c config.json --db-url sqlite:///tradesv3.dry_run.sqlite
```
## Backtesting commands
Backtesting also uses the config specified via `-c/--config`.
```
usage: freqtrade backtesting [-h] [-v] [--logfile FILE] [-V] [-c PATH]
[-d PATH] [--userdir PATH] [-s NAME]
[--strategy-path PATH] [-i TIMEFRAME]
[--timerange TIMERANGE] [--max-open-trades INT]
[--stake-amount STAKE_AMOUNT] [--fee FLOAT]
[--eps] [--dmmp]
[--strategy-list STRATEGY_LIST [STRATEGY_LIST ...]]
[--export EXPORT] [--export-filename PATH]
optional arguments:
-h, --help show this help message and exit
-i TIMEFRAME, --timeframe TIMEFRAME, --ticker-interval TIMEFRAME
Specify ticker interval (`1m`, `5m`, `30m`, `1h`,
`1d`).
--timerange TIMERANGE
Specify what timerange of data to use.
--max-open-trades INT
Override the value of the `max_open_trades`
configuration setting.
--stake-amount STAKE_AMOUNT
Override the value of the `stake_amount` configuration
setting.
--fee FLOAT Specify fee ratio. Will be applied twice (on trade
entry and exit).
--eps, --enable-position-stacking
Allow buying the same pair multiple times (position
stacking).
--dmmp, --disable-max-market-positions
Disable applying `max_open_trades` during backtest
(same as setting `max_open_trades` to a very high
number).
--strategy-list STRATEGY_LIST [STRATEGY_LIST ...]
Provide a space-separated list of strategies to
backtest. Please note that ticker-interval needs to be
set either in config or via command line. When using
this together with `--export trades`, the strategy-
name is injected into the filename (so `backtest-
data.json` becomes `backtest-data-
DefaultStrategy.json`
--export EXPORT Export backtest results, argument are: trades.
Example: `--export=trades`
--export-filename PATH
Save backtest results to the file with this filename.
Requires `--export` to be set as well. Example:
`--export-filename=user_data/backtest_results/backtest
_today.json`
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--logfile FILE Log to the file specified. Special values are:
'syslog', 'journald'. See the documentation for more
details.
-V, --version show program's version number and exit
-c PATH, --config PATH
Specify configuration file (default:
`userdir/config.json` or `config.json` whichever
exists). Multiple --config options may be used. Can be
set to `-` to read config from stdin.
-d PATH, --datadir PATH
Path to directory with historical backtesting data.
--userdir PATH, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
```
### Getting historic data for backtesting
The first time your run Backtesting, you will need to download some historic data first.
This can be accomplished by using `freqtrade download-data`.
Check the corresponding [Data Downloading](data-download.md) section for more details
## Hyperopt commands
To optimize your strategy, you can use hyperopt parameter hyperoptimization
to find optimal parameter values for your strategy.
```
usage: freqtrade hyperopt [-h] [-v] [--logfile FILE] [-V] [-c PATH] [-d PATH]
[--userdir PATH] [-s NAME] [--strategy-path PATH]
[-i TIMEFRAME] [--timerange TIMERANGE]
[--max-open-trades INT]
[--stake-amount STAKE_AMOUNT] [--fee FLOAT]
[--hyperopt NAME] [--hyperopt-path PATH] [--eps]
[-e INT]
[--spaces {all,buy,sell,roi,stoploss,trailing,default} [{all,buy,sell,roi,stoploss,trailing,default} ...]]
[--dmmp] [--print-all] [--no-color] [--print-json]
[-j JOBS] [--random-state INT] [--min-trades INT]
[--hyperopt-loss NAME]
optional arguments:
-h, --help show this help message and exit
-i TIMEFRAME, --timeframe TIMEFRAME, --ticker-interval TIMEFRAME
Specify ticker interval (`1m`, `5m`, `30m`, `1h`,
`1d`).
--timerange TIMERANGE
Specify what timerange of data to use.
--max-open-trades INT
Override the value of the `max_open_trades`
configuration setting.
--stake-amount STAKE_AMOUNT
Override the value of the `stake_amount` configuration
setting.
--fee FLOAT Specify fee ratio. Will be applied twice (on trade
entry and exit).
--hyperopt NAME Specify hyperopt class name which will be used by the
bot.
--hyperopt-path PATH Specify additional lookup path for Hyperopt and
Hyperopt Loss functions.
--eps, --enable-position-stacking
Allow buying the same pair multiple times (position
stacking).
-e INT, --epochs INT Specify number of epochs (default: 100).
--spaces {all,buy,sell,roi,stoploss,trailing,default} [{all,buy,sell,roi,stoploss,trailing,default} ...]
Specify which parameters to hyperopt. Space-separated
list.
--dmmp, --disable-max-market-positions
Disable applying `max_open_trades` during backtest
(same as setting `max_open_trades` to a very high
number).
--print-all Print all results, not only the best ones.
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--print-json Print output in JSON format.
-j JOBS, --job-workers JOBS
The number of concurrently running jobs for
hyperoptimization (hyperopt worker processes). If -1
(default), all CPUs are used, for -2, all CPUs but one
are used, etc. If 1 is given, no parallel computing
code is used at all.
--random-state INT Set random state to some positive integer for
reproducible hyperopt results.
--min-trades INT Set minimal desired number of trades for evaluations
in the hyperopt optimization path (default: 1).
--hyperopt-loss NAME Specify the class name of the hyperopt loss function
class (IHyperOptLoss). Different functions can
generate completely different results, since the
target for optimization is different. Built-in
Hyperopt-loss-functions are: ShortTradeDurHyperOptLoss,
OnlyProfitHyperOptLoss, SharpeHyperOptLoss,
SharpeHyperOptLossDaily, SortinoHyperOptLoss,
SortinoHyperOptLossDaily.
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--logfile FILE Log to the file specified. Special values are:
'syslog', 'journald'. See the documentation for more
details.
-V, --version show program's version number and exit
-c PATH, --config PATH
Specify configuration file (default:
`userdir/config.json` or `config.json` whichever
exists). Multiple --config options may be used. Can be
set to `-` to read config from stdin.
-d PATH, --datadir PATH
Path to directory with historical backtesting data.
--userdir PATH, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
```
## Edge commands
To know your trade expectancy and winrate against historical data, you can use Edge.
```
usage: freqtrade edge [-h] [-v] [--logfile FILE] [-V] [-c PATH] [-d PATH]
[--userdir PATH] [-s NAME] [--strategy-path PATH]
[-i TIMEFRAME] [--timerange TIMERANGE]
[--max-open-trades INT] [--stake-amount STAKE_AMOUNT]
[--fee FLOAT] [--stoplosses STOPLOSS_RANGE]
optional arguments:
-h, --help show this help message and exit
-i TIMEFRAME, --timeframe TIMEFRAME, --ticker-interval TIMEFRAME
Specify ticker interval (`1m`, `5m`, `30m`, `1h`,
`1d`).
--timerange TIMERANGE
Specify what timerange of data to use.
--max-open-trades INT
Override the value of the `max_open_trades`
configuration setting.
--stake-amount STAKE_AMOUNT
Override the value of the `stake_amount` configuration
setting.
--fee FLOAT Specify fee ratio. Will be applied twice (on trade
entry and exit).
--stoplosses STOPLOSS_RANGE
Defines a range of stoploss values against which edge
will assess the strategy. The format is "min,max,step"
(without any space). Example:
`--stoplosses=-0.01,-0.1,-0.001`
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--logfile FILE Log to the file specified. Special values are:
'syslog', 'journald'. See the documentation for more
details.
-V, --version show program's version number and exit
-c PATH, --config PATH
Specify configuration file (default:
`userdir/config.json` or `config.json` whichever
exists). Multiple --config options may be used. Can be
set to `-` to read config from stdin.
-d PATH, --datadir PATH
Path to directory with historical backtesting data.
--userdir PATH, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
```
To understand edge and how to read the results, please read the [edge documentation](edge.md).
## Next step
The optimal strategy of the bot will change with time depending of the market trends. The next step is to

View File

@@ -5,125 +5,252 @@ By default, these settings are configured via the configuration file (see below)
## The Freqtrade configuration file
The bot uses a set of configuration parameters during its operation that all together conform the bot configuration. It normally reads its configuration from a file (Freqtrade configuration file).
The bot uses a set of configuration parameters during its operation that all together conform to the bot configuration. It normally reads its configuration from a file (Freqtrade configuration file).
Per default, the bot loads the configuration from the `config.json` file, located in the current working directory.
You can specify a different configuration file used by the bot with the `-c/--config` command line option.
You can specify a different configuration file used by the bot with the `-c/--config` command-line option.
In some advanced use cases, multiple configuration files can be specified and used by the bot or the bot can read its configuration parameters from the process standard input stream.
If you used the [Quick start](installation.md/#quick-start) method for installing
If you used the [Quick start](installation.md/#quick-start) method for installing
the bot, the installation script should have already created the default configuration file (`config.json`) for you.
If default configuration file is not created we recommend you to copy and use the `config.json.example` as a template
for your bot configuration.
If the default configuration file is not created we recommend to use `freqtrade new-config --config config.json` to generate a basic configuration file.
The Freqtrade configuration file is to be written in the JSON format.
The Freqtrade configuration file is to be written in JSON format.
Additionally to the standard JSON syntax, you may use one-line `// ...` and multi-line `/* ... */` comments in your configuration files and trailing commas in the lists of parameters.
Do not worry if you are not familiar with JSON format -- simply open the configuration file with an editor of your choice, make some changes to the parameters you need, save your changes and, finally, restart the bot or, if it was previously stopped, run it again with the changes you made to the configuration. The bot validates syntax of the configuration file at startup and will warn you if you made any errors editing it, pointing out problematic lines.
Do not worry if you are not familiar with JSON format -- simply open the configuration file with an editor of your choice, make some changes to the parameters you need, save your changes and, finally, restart the bot or, if it was previously stopped, run it again with the changes you made to the configuration. The bot validates the syntax of the configuration file at startup and will warn you if you made any errors editing it, pointing out problematic lines.
### Environment variables
Set options in the Freqtrade configuration via environment variables.
This takes priority over the corresponding value in configuration or strategy.
Environment variables must be prefixed with `FREQTRADE__` to be loaded to the freqtrade configuration.
`__` serves as level separator, so the format used should correspond to `FREQTRADE__{section}__{key}`.
As such - an environment variable defined as `export FREQTRADE__STAKE_AMOUNT=200` would result in `{stake_amount: 200}`.
A more complex example might be `export FREQTRADE__EXCHANGE__KEY=<yourExchangeKey>` to keep your exchange key secret. This will move the value to the `exchange.key` section of the configuration.
Using this scheme, all configuration settings will also be available as environment variables.
Please note that Environment variables will overwrite corresponding settings in your configuration, but command line Arguments will always win.
Common example:
```
FREQTRADE__TELEGRAM__CHAT_ID=<telegramchatid>
FREQTRADE__TELEGRAM__TOKEN=<telegramToken>
FREQTRADE__EXCHANGE__KEY=<yourExchangeKey>
FREQTRADE__EXCHANGE__SECRET=<yourExchangeSecret>
```
!!! Note
Environment variables detected are logged at startup - so if you can't find why a value is not what you think it should be based on the configuration, make sure it's not loaded from an environment variable.
### Multiple configuration files
Multiple configuration files can be specified and used by the bot or the bot can read its configuration parameters from the process standard input stream.
You can specify additional configuration files in `add_config_files`. Files specified in this parameter will be loaded and merged with the initial config file. The files are resolved relative to the initial configuration file.
This is similar to using multiple `--config` parameters, but simpler in usage as you don't have to specify all files for all commands.
!!! Tip "Use multiple configuration files to keep secrets secret"
You can use a 2nd configuration file containing your secrets. That way you can share your "primary" configuration file, while still keeping your API keys for yourself.
``` json title="user_data/config.json"
"add_config_files": [
"config-private.json"
]
```
``` bash
freqtrade trade --config user_data/config.json <...>
```
The 2nd file should only specify what you intend to override.
If a key is in more than one of the configurations, then the "last specified configuration" wins (in the above example, `config-private.json`).
For one-off commands, you can also use the below syntax by specifying multiple "--config" parameters.
``` bash
freqtrade trade --config user_data/config.json --config user_data/config-private.json <...>
```
This is equivalent to the example above - but `config-private.json` is specified as cli argument.
??? Note "config collision handling"
If the same configuration setting takes place in both `config.json` and `config-import.json`, then the parent configuration wins.
In the below case, `max_open_trades` would be 3 after the merging - as the reusable "import" configuration has this key overwritten.
``` json title="user_data/config.json"
{
"max_open_trades": 3,
"stake_currency": "USDT",
"add_config_files": [
"config-import.json"
]
}
```
``` json title="user_data/config-import.json"
{
"max_open_trades": 10,
"stake_amount": "unlimited",
}
```
Resulting combined configuration:
``` json title="Result"
{
"max_open_trades": 3,
"stake_currency": "USDT",
"stake_amount": "unlimited"
}
```
## Configuration parameters
The table below will list all configuration parameters available.
Freqtrade can also load many options via command line (CLI) arguments (check out the commands `--help` output for details).
The prevelance for all Options is as follows:
### Configuration option prevalence
The prevalence for all Options is as follows:
- CLI arguments override any other option
- Configuration files are used in sequence (last file wins), and override Strategy configurations.
- Strategy configurations are only used if they are not set via configuration or via command line arguments. These options are marked with [Strategy Override](#parameters-in-the-strategy) in the below table.
- [Environment Variables](#environment-variables)
- Configuration files are used in sequence (the last file wins) and override Strategy configurations.
- Strategy configurations are only used if they are not set via configuration or command-line arguments. These options are marked with [Strategy Override](#parameters-in-the-strategy) in the below table.
### Parameters table
Mandatory parameters are marked as **Required**, which means that they are required to be set in one of the possible ways.
| Parameter | Description |
|------------|-------------|
| `max_open_trades` | **Required.** Number of open trades your bot is allowed to have. Only one open trade per pair is possible, so the length of your pairlist is another limitation which can apply. If -1 then it is ignored (i.e. potentially unlimited open trades, limited by the pairlist). [More information below](#configuring-amount-per-trade).<br> **Datatype:** Positive integer or -1.
| `stake_currency` | **Required.** Crypto-currency used for trading. [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** String
| `stake_amount` | **Required.** Amount of crypto-currency your bot will use for each trade. Set it to `"unlimited"` to allow the bot to use all available balance. [More information below](#configuring-amount-per-trade). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** Positive float or `"unlimited"`.
| `max_open_trades` | **Required.** Number of open trades your bot is allowed to have. Only one open trade per pair is possible, so the length of your pairlist is another limitation that can apply. If -1 then it is ignored (i.e. potentially unlimited open trades, limited by the pairlist). [More information below](#configuring-amount-per-trade).<br> **Datatype:** Positive integer or -1.
| `stake_currency` | **Required.** Crypto-currency used for trading. <br> **Datatype:** String
| `stake_amount` | **Required.** Amount of crypto-currency your bot will use for each trade. Set it to `"unlimited"` to allow the bot to use all available balance. [More information below](#configuring-amount-per-trade). <br> **Datatype:** Positive float or `"unlimited"`.
| `tradable_balance_ratio` | Ratio of the total account balance the bot is allowed to trade. [More information below](#configuring-amount-per-trade). <br>*Defaults to `0.99` 99%).*<br> **Datatype:** Positive float between `0.1` and `1.0`.
| `available_capital` | Available starting capital for the bot. Useful when running multiple bots on the same exchange account.[More information below](#configuring-amount-per-trade). <br> **Datatype:** Positive float.
| `amend_last_stake_amount` | Use reduced last stake amount if necessary. [More information below](#configuring-amount-per-trade). <br>*Defaults to `false`.* <br> **Datatype:** Boolean
| `last_stake_amount_min_ratio` | Defines minimum stake amount that has to be left and executed. Applies only to the last stake amount when it's amended to a reduced value (i.e. if `amend_last_stake_amount` is set to `true`). [More information below](#configuring-amount-per-trade). <br>*Defaults to `0.5`.* <br> **Datatype:** Float (as ratio)
| `amount_reserve_percent` | Reserve some amount in min pair stake amount. The bot will reserve `amount_reserve_percent` + stoploss value when calculating min pair stake amount in order to avoid possible trade refusals. <br>*Defaults to `0.05` (5%).* <br> **Datatype:** Positive Float as ratio.
| `timeframe` | The timeframe (former ticker interval) to use (e.g `1m`, `5m`, `15m`, `30m`, `1h` ...). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** String
| `timeframe` | The timeframe to use (e.g `1m`, `5m`, `15m`, `30m`, `1h` ...). Usually missing in configuration, and specified in the strategy. [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** String
| `fiat_display_currency` | Fiat currency used to show your profits. [More information below](#what-values-can-be-used-for-fiat_display_currency). <br> **Datatype:** String
| `dry_run` | **Required.** Define if the bot must be in Dry Run or production mode. <br>*Defaults to `true`.* <br> **Datatype:** Boolean
| `dry_run_wallet` | Define the starting amount in stake currency for the simulated wallet used by the bot running in the Dry Run mode.<br>*Defaults to `1000`.* <br> **Datatype:** Float
| `dry_run_wallet` | Define the starting amount in stake currency for the simulated wallet used by the bot running in Dry Run mode.<br>*Defaults to `1000`.* <br> **Datatype:** Float
| `cancel_open_orders_on_exit` | Cancel open orders when the `/stop` RPC command is issued, `Ctrl+C` is pressed or the bot dies unexpectedly. When set to `true`, this allows you to use `/stop` to cancel unfilled and partially filled orders in the event of a market crash. It does not impact open positions. <br>*Defaults to `false`.* <br> **Datatype:** Boolean
| `process_only_new_candles` | Enable processing of indicators only when new candles arrive. If false each loop populates the indicators, this will mean the same candle is processed many times creating system load but can be useful of your strategy depends on tick data not only candle. [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `false`.* <br> **Datatype:** Boolean
| `minimal_roi` | **Required.** Set the threshold as ratio the bot will use to sell a trade. [More information below](#understand-minimal_roi). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** Dict
| `process_only_new_candles` | Enable processing of indicators only when new candles arrive. If false each loop populates the indicators, this will mean the same candle is processed many times creating system load but can be useful of your strategy depends on tick data not only candle. [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `true`.* <br> **Datatype:** Boolean
| `minimal_roi` | **Required.** Set the threshold as ratio the bot will use to exit a trade. [More information below](#understand-minimal_roi). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** Dict
| `stoploss` | **Required.** Value as ratio of the stoploss used by the bot. More details in the [stoploss documentation](stoploss.md). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** Float (as ratio)
| `trailing_stop` | Enables trailing stoploss (based on `stoploss` in either configuration or strategy file). More details in the [stoploss documentation](stoploss.md#trailing-stop-loss). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** Boolean
| `trailing_stop_positive` | Changes stoploss once profit has been reached. More details in the [stoploss documentation](stoploss.md#trailing-stop-loss-custom-positive-loss). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** Float
| `trailing_stop_positive_offset` | Offset on when to apply `trailing_stop_positive`. Percentage value which should be positive. More details in the [stoploss documentation](stoploss.md#trailing-stop-loss-only-once-the-trade-has-reached-a-certain-offset). [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `0.0` (no offset).* <br> **Datatype:** Float
| `trailing_only_offset_is_reached` | Only apply trailing stoploss when the offset is reached. [stoploss documentation](stoploss.md). [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `false`.* <br> **Datatype:** Boolean
| `unfilledtimeout.buy` | **Required.** How long (in minutes) the bot will wait for an unfilled buy order to complete, after which the order will be cancelled and repeated at current (new) price, as long as there is a signal. [Strategy Override](#parameters-in-the-strategy).<br> **Datatype:** Integer
| `unfilledtimeout.sell` | **Required.** How long (in minutes) the bot will wait for an unfilled sell order to complete, after which the order will be cancelled and repeated at current (new) price, as long as there is a signal. [Strategy Override](#parameters-in-the-strategy).<br> **Datatype:** Integer
| `bid_strategy.price_side` | Select the side of the spread the bot should look at to get the buy rate. [More information below](#buy-price-side).<br> *Defaults to `bid`.* <br> **Datatype:** String (either `ask` or `bid`).
| `bid_strategy.ask_last_balance` | **Required.** Set the bidding price. More information [below](#buy-price-without-orderbook-enabled).
| `bid_strategy.use_order_book` | Enable buying using the rates in [Order Book Bids](#buy-price-with-orderbook-enabled). <br> **Datatype:** Boolean
| `bid_strategy.order_book_top` | Bot will use the top N rate in Order Book Bids to buy. I.e. a value of 2 will allow the bot to pick the 2nd bid rate in [Order Book Bids](#buy-price-with-orderbook-enabled). <br>*Defaults to `1`.* <br> **Datatype:** Positive Integer
| `bid_strategy. check_depth_of_market.enabled` | Do not buy if the difference of buy orders and sell orders is met in Order Book. [Check market depth](#check-depth-of-market). <br>*Defaults to `false`.* <br> **Datatype:** Boolean
| `bid_strategy. check_depth_of_market.bids_to_ask_delta` | The difference ratio of buy orders and sell orders found in Order Book. A value below 1 means sell order size is greater, while value greater than 1 means buy order size is higher. [Check market depth](#check-depth-of-market) <br> *Defaults to `0`.* <br> **Datatype:** Float (as ratio)
| `ask_strategy.price_side` | Select the side of the spread the bot should look at to get the sell rate. [More information below](#sell-price-side).<br> *Defaults to `ask`.* <br> **Datatype:** String (either `ask` or `bid`).
| `ask_strategy.use_order_book` | Enable selling of open trades using [Order Book Asks](#sell-price-with-orderbook-enabled). <br> **Datatype:** Boolean
| `ask_strategy.order_book_min` | Bot will scan from the top min to max Order Book Asks searching for a profitable rate. <br>*Defaults to `1`.* <br> **Datatype:** Positive Integer
| `ask_strategy.order_book_max` | Bot will scan from the top min to max Order Book Asks searching for a profitable rate. <br>*Defaults to `1`.* <br> **Datatype:** Positive Integer
| `ask_strategy.use_sell_signal` | Use sell signals produced by the strategy in addition to the `minimal_roi`. [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `true`.* <br> **Datatype:** Boolean
| `ask_strategy.sell_profit_only` | Wait until the bot makes a positive profit before taking a sell decision. [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `false`.* <br> **Datatype:** Boolean
| `ask_strategy.ignore_roi_if_buy_signal` | Do not sell if the buy signal is still active. This setting takes preference over `minimal_roi` and `use_sell_signal`. [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `false`.* <br> **Datatype:** Boolean
| `order_types` | Configure order-types depending on the action (`"buy"`, `"sell"`, `"stoploss"`, `"stoploss_on_exchange"`). [More information below](#understand-order_types). [Strategy Override](#parameters-in-the-strategy).<br> **Datatype:** Dict
| `order_time_in_force` | Configure time in force for buy and sell orders. [More information below](#understand-order_time_in_force). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** Dict
| `fee` | Fee used during backtesting / dry-runs. Should normally not be configured, which has freqtrade fall back to the exchange default fee. Set as ratio (e.g. 0.001 = 0.1%). Fee is applied twice for each trade, once when buying, once when selling. <br> **Datatype:** Float (as ratio)
| `futures_funding_rate` | User-specified funding rate to be used when historical funding rates are not available from the exchange. This does not overwrite real historical rates. It is recommended that this be set to 0 unless you are testing a specific coin and you understand how the funding rate will affect freqtrade's profit calculations. [More information here](leverage.md#unavailable-funding-rates) <br>*Defaults to None.*<br> **Datatype:** Float
| `trading_mode` | Specifies if you want to trade regularly, trade with leverage, or trade contracts whose prices are derived from matching cryptocurrency prices. [leverage documentation](leverage.md). <br>*Defaults to `"spot"`.* <br> **Datatype:** String
| `margin_mode` | When trading with leverage, this determines if the collateral owned by the trader will be shared or isolated to each trading pair [leverage documentation](leverage.md). <br> **Datatype:** String
| `liquidation_buffer` | A ratio specifying how large of a safety net to place between the liquidation price and the stoploss to prevent a position from reaching the liquidation price [leverage documentation](leverage.md). <br>*Defaults to `0.05`.* <br> **Datatype:** Float
| | **Unfilled timeout**
| `unfilledtimeout.entry` | **Required.** How long (in minutes or seconds) the bot will wait for an unfilled entry order to complete, after which the order will be cancelled and repeated at current (new) price, as long as there is a signal. [Strategy Override](#parameters-in-the-strategy).<br> **Datatype:** Integer
| `unfilledtimeout.exit` | **Required.** How long (in minutes or seconds) the bot will wait for an unfilled exit order to complete, after which the order will be cancelled and repeated at current (new) price, as long as there is a signal. [Strategy Override](#parameters-in-the-strategy).<br> **Datatype:** Integer
| `unfilledtimeout.unit` | Unit to use in unfilledtimeout setting. Note: If you set unfilledtimeout.unit to "seconds", "internals.process_throttle_secs" must be inferior or equal to timeout [Strategy Override](#parameters-in-the-strategy). <br> *Defaults to `minutes`.* <br> **Datatype:** String
| `unfilledtimeout.exit_timeout_count` | How many times can exit orders time out. Once this number of timeouts is reached, an emergency exit is triggered. 0 to disable and allow unlimited order cancels. [Strategy Override](#parameters-in-the-strategy).<br>*Defaults to `0`.* <br> **Datatype:** Integer
| | **Pricing**
| `entry_pricing.price_side` | Select the side of the spread the bot should look at to get the entry rate. [More information below](#buy-price-side).<br> *Defaults to `same`.* <br> **Datatype:** String (either `ask`, `bid`, `same` or `other`).
| `entry_pricing.price_last_balance` | **Required.** Interpolate the bidding price. More information [below](#entry-price-without-orderbook-enabled).
| `entry_pricing.use_order_book` | Enable entering using the rates in [Order Book Entry](#entry-price-with-orderbook-enabled). <br> *Defaults to `True`.*<br> **Datatype:** Boolean
| `entry_pricing.order_book_top` | Bot will use the top N rate in Order Book "price_side" to enter a trade. I.e. a value of 2 will allow the bot to pick the 2nd entry in [Order Book Entry](#entry-price-with-orderbook-enabled). <br>*Defaults to `1`.* <br> **Datatype:** Positive Integer
| `entry_pricing. check_depth_of_market.enabled` | Do not enter if the difference of buy orders and sell orders is met in Order Book. [Check market depth](#check-depth-of-market). <br>*Defaults to `false`.* <br> **Datatype:** Boolean
| `entry_pricing. check_depth_of_market.bids_to_ask_delta` | The difference ratio of buy orders and sell orders found in Order Book. A value below 1 means sell order size is greater, while value greater than 1 means buy order size is higher. [Check market depth](#check-depth-of-market) <br> *Defaults to `0`.* <br> **Datatype:** Float (as ratio)
| `exit_pricing.price_side` | Select the side of the spread the bot should look at to get the exit rate. [More information below](#exit-price-side).<br> *Defaults to `same`.* <br> **Datatype:** String (either `ask`, `bid`, `same` or `other`).
| `exit_pricing.price_last_balance` | Interpolate the exiting price. More information [below](#exit-price-without-orderbook-enabled).
| `exit_pricing.use_order_book` | Enable exiting of open trades using [Order Book Exit](#exit-price-with-orderbook-enabled). <br> *Defaults to `True`.*<br> **Datatype:** Boolean
| `exit_pricing.order_book_top` | Bot will use the top N rate in Order Book "price_side" to exit. I.e. a value of 2 will allow the bot to pick the 2nd ask rate in [Order Book Exit](#exit-price-with-orderbook-enabled)<br>*Defaults to `1`.* <br> **Datatype:** Positive Integer
| `custom_price_max_distance_ratio` | Configure maximum distance ratio between current and custom entry or exit price. <br>*Defaults to `0.02` 2%).*<br> **Datatype:** Positive float
| | **TODO**
| `use_exit_signal` | Use exit signals produced by the strategy in addition to the `minimal_roi`. [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `true`.* <br> **Datatype:** Boolean
| `exit_profit_only` | Wait until the bot reaches `exit_profit_offset` before taking an exit decision. [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `false`.* <br> **Datatype:** Boolean
| `exit_profit_offset` | Exit-signal is only active above this value. Only active in combination with `exit_profit_only=True`. [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `0.0`.* <br> **Datatype:** Float (as ratio)
| `ignore_roi_if_entry_signal` | Do not exit if the entry signal is still active. This setting takes preference over `minimal_roi` and `use_exit_signal`. [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `false`.* <br> **Datatype:** Boolean
| `ignore_buying_expired_candle_after` | Specifies the number of seconds until a buy signal is no longer used. <br> **Datatype:** Integer
| `order_types` | Configure order-types depending on the action (`"entry"`, `"exit"`, `"stoploss"`, `"stoploss_on_exchange"`). [More information below](#understand-order_types). [Strategy Override](#parameters-in-the-strategy).<br> **Datatype:** Dict
| `order_time_in_force` | Configure time in force for entry and exit orders. [More information below](#understand-order_time_in_force). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** Dict
| `position_adjustment_enable` | Enables the strategy to use position adjustments (additional buys or sells). [More information here](strategy-callbacks.md#adjust-trade-position). <br> [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `false`.*<br> **Datatype:** Boolean
| `max_entry_position_adjustment` | Maximum additional order(s) for each open trade on top of the first entry Order. Set it to `-1` for unlimited additional orders. [More information here](strategy-callbacks.md#adjust-trade-position). <br> [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `-1`.*<br> **Datatype:** Positive Integer or -1
| | **Exchange**
| `exchange.name` | **Required.** Name of the exchange class to use. [List below](#user-content-what-values-for-exchangename). <br> **Datatype:** String
| `exchange.sandbox` | Use the 'sandbox' version of the exchange, where the exchange provides a sandbox for risk-free integration. See [here](sandbox-testing.md) in more details.<br> **Datatype:** Boolean
| `exchange.key` | API key to use for the exchange. Only required when you are in production mode.<br>**Keep it in secret, do not disclose publicly.** <br> **Datatype:** String
| `exchange.secret` | API secret to use for the exchange. Only required when you are in production mode.<br>**Keep it in secret, do not disclose publicly.** <br> **Datatype:** String
| `exchange.password` | API password to use for the exchange. Only required when you are in production mode and for exchanges that use password for API requests.<br>**Keep it in secret, do not disclose publicly.** <br> **Datatype:** String
| `exchange.pair_whitelist` | List of pairs to use by the bot for trading and to check for potential trades during backtesting. Not used by VolumePairList (see [below](#pairlists-and-pairlist-handlers)). <br> **Datatype:** List
| `exchange.pair_blacklist` | List of pairs the bot must absolutely avoid for trading and backtesting (see [below](#pairlists-and-pairlist-handlers)). <br> **Datatype:** List
| `exchange.ccxt_config` | Additional CCXT parameters passed to both ccxt instances (sync and async). This is usually the correct place for ccxt configurations. Parameters may differ from exchange to exchange and are documented in the [ccxt documentation](https://ccxt.readthedocs.io/en/latest/manual.html#instantiation) <br> **Datatype:** Dict
| `exchange.uid` | API uid to use for the exchange. Only required when you are in production mode and for exchanges that use uid for API requests.<br>**Keep it in secret, do not disclose publicly.** <br> **Datatype:** String
| `exchange.pair_whitelist` | List of pairs to use by the bot for trading and to check for potential trades during backtesting. Supports regex pairs as `.*/BTC`. Not used by VolumePairList. [More information](plugins.md#pairlists-and-pairlist-handlers). <br> **Datatype:** List
| `exchange.pair_blacklist` | List of pairs the bot must absolutely avoid for trading and backtesting. [More information](plugins.md#pairlists-and-pairlist-handlers). <br> **Datatype:** List
| `exchange.ccxt_config` | Additional CCXT parameters passed to both ccxt instances (sync and async). This is usually the correct place for additional ccxt configurations. Parameters may differ from exchange to exchange and are documented in the [ccxt documentation](https://ccxt.readthedocs.io/en/latest/manual.html#instantiation). Please avoid adding exchange secrets here (use the dedicated fields instead), as they may be contained in logs. <br> **Datatype:** Dict
| `exchange.ccxt_sync_config` | Additional CCXT parameters passed to the regular (sync) ccxt instance. Parameters may differ from exchange to exchange and are documented in the [ccxt documentation](https://ccxt.readthedocs.io/en/latest/manual.html#instantiation) <br> **Datatype:** Dict
| `exchange.ccxt_async_config` | Additional CCXT parameters passed to the async ccxt instance. Parameters may differ from exchange to exchange and are documented in the [ccxt documentation](https://ccxt.readthedocs.io/en/latest/manual.html#instantiation) <br> **Datatype:** Dict
| `exchange.markets_refresh_interval` | The interval in minutes in which markets are reloaded. <br>*Defaults to `60` minutes.* <br> **Datatype:** Positive Integer
| `exchange.skip_pair_validation` | Skip pairlist validation on startup.<br>*Defaults to `false`<br> **Datatype:** Boolean
| `edge.*` | Please refer to [edge configuration document](edge.md) for detailed explanation.
| `exchange.skip_open_order_update` | Skips open order updates on startup should the exchange cause problems. Only relevant in live conditions.<br>*Defaults to `false`<br> **Datatype:** Boolean
| `exchange.unknown_fee_rate` | Fallback value to use when calculating trading fees. This can be useful for exchanges which have fees in non-tradable currencies. The value provided here will be multiplied with the "fee cost".<br>*Defaults to `None`<br> **Datatype:** float
| `exchange.log_responses` | Log relevant exchange responses. For debug mode only - use with care.<br>*Defaults to `false`<br> **Datatype:** Boolean
| `experimental.block_bad_exchanges` | Block exchanges known to not work with freqtrade. Leave on default unless you want to test if that exchange works now. <br>*Defaults to `true`.* <br> **Datatype:** Boolean
| `pairlists` | Define one or more pairlists to be used. [More information below](#pairlists-and-pairlist-handlers). <br>*Defaults to `StaticPairList`.* <br> **Datatype:** List of Dicts
| | **Plugins**
| `edge.*` | Please refer to [edge configuration document](edge.md) for detailed explanation of all possible configuration options.
| `pairlists` | Define one or more pairlists to be used. [More information](plugins.md#pairlists-and-pairlist-handlers). <br>*Defaults to `StaticPairList`.* <br> **Datatype:** List of Dicts
| `protections` | Define one or more protections to be used. [More information](plugins.md#protections). <br> **Datatype:** List of Dicts
| | **Telegram**
| `telegram.enabled` | Enable the usage of Telegram. <br> **Datatype:** Boolean
| `telegram.token` | Your Telegram bot token. Only required if `telegram.enabled` is `true`. <br>**Keep it in secret, do not disclose publicly.** <br> **Datatype:** String
| `telegram.chat_id` | Your personal Telegram account id. Only required if `telegram.enabled` is `true`. <br>**Keep it in secret, do not disclose publicly.** <br> **Datatype:** String
| `telegram.balance_dust_level` | Dust-level (in stake currency) - currencies with a balance below this will not be shown by `/balance`. <br> **Datatype:** float
| `telegram.reload` | Allow "reload" buttons on telegram messages. <br>*Defaults to `True`.<br> **Datatype:** boolean
| `telegram.notification_settings.*` | Detailed notification settings. Refer to the [telegram documentation](telegram-usage.md) for details.<br> **Datatype:** dictionary
| | **Webhook**
| `webhook.enabled` | Enable usage of Webhook notifications <br> **Datatype:** Boolean
| `webhook.url` | URL for the webhook. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details. <br> **Datatype:** String
| `webhook.webhookbuy` | Payload to send on buy. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details. <br> **Datatype:** String
| `webhook.webhookbuycancel` | Payload to send on buy order cancel. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details. <br> **Datatype:** String
| `webhook.webhooksell` | Payload to send on sell. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details. <br> **Datatype:** String
| `webhook.webhooksellcancel` | Payload to send on sell order cancel. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details. <br> **Datatype:** String
| `webhook.webhookentry` | Payload to send on entry. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details. <br> **Datatype:** String
| `webhook.webhookentrycancel` | Payload to send on entry order cancel. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details. <br> **Datatype:** String
| `webhook.webhookentryfill` | Payload to send on entry order filled. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details. <br> **Datatype:** String
| `webhook.webhookexit` | Payload to send on exit. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details. <br> **Datatype:** String
| `webhook.webhookexitcancel` | Payload to send on exit order cancel. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details. <br> **Datatype:** String
| `webhook.webhookexitfill` | Payload to send on exit order filled. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details. <br> **Datatype:** String
| `webhook.webhookstatus` | Payload to send on status calls. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details. <br> **Datatype:** String
| | **Rest API / FreqUI**
| `api_server.enabled` | Enable usage of API Server. See the [API Server documentation](rest-api.md) for more details. <br> **Datatype:** Boolean
| `api_server.listen_ip_address` | Bind IP address. See the [API Server documentation](rest-api.md) for more details. <br> **Datatype:** IPv4
| `api_server.listen_port` | Bind Port. See the [API Server documentation](rest-api.md) for more details. <br>**Datatype:** Integer between 1024 and 65535
| `api_server.verbosity` | Logging verbosity. `info` will print all RPC Calls, while "error" will only display errors. <br>**Datatype:** Enum, either `info` or `error`. Defaults to `info`.
| `api_server.username` | Username for API server. See the [API Server documentation](rest-api.md) for more details. <br>**Keep it in secret, do not disclose publicly.**<br> **Datatype:** String
| `api_server.password` | Password for API server. See the [API Server documentation](rest-api.md) for more details. <br>**Keep it in secret, do not disclose publicly.**<br> **Datatype:** String
| `db_url` | Declares database URL to use. NOTE: This defaults to `sqlite:///tradesv3.dryrun.sqlite` if `dry_run` is `true`, and to `sqlite:///tradesv3.sqlite` for production instances. <br> **Datatype:** String, SQLAlchemy connect string
| `initial_state` | Defines the initial application state. More information below. <br>*Defaults to `stopped`.* <br> **Datatype:** Enum, either `stopped` or `running`
| `forcebuy_enable` | Enables the RPC Commands to force a buy. More information below. <br> **Datatype:** Boolean
| `bot_name` | Name of the bot. Passed via API to a client - can be shown to distinguish / name bots.<br> *Defaults to `freqtrade`*<br> **Datatype:** String
| | **Other**
| `initial_state` | Defines the initial application state. If set to stopped, then the bot has to be explicitly started via `/start` RPC command. <br>*Defaults to `stopped`.* <br> **Datatype:** Enum, either `stopped` or `running`
| `force_entry_enable` | Enables the RPC Commands to force a Trade entry. More information below. <br> **Datatype:** Boolean
| `disable_dataframe_checks` | Disable checking the OHLCV dataframe returned from the strategy methods for correctness. Only use when intentionally changing the dataframe and understand what you are doing. [Strategy Override](#parameters-in-the-strategy).<br> *Defaults to `False`*. <br> **Datatype:** Boolean
| `strategy` | **Required** Defines Strategy class to use. Recommended to be set via `--strategy NAME`. <br> **Datatype:** ClassName
| `strategy_path` | Adds an additional strategy lookup path (must be a directory). <br> **Datatype:** String
| `internals.process_throttle_secs` | Set the process throttle. Value in second. <br>*Defaults to `5` seconds.* <br> **Datatype:** Positive Integer
| `internals.process_throttle_secs` | Set the process throttle, or minimum loop duration for one bot iteration loop. Value in second. <br>*Defaults to `5` seconds.* <br> **Datatype:** Positive Integer
| `internals.heartbeat_interval` | Print heartbeat message every N seconds. Set to 0 to disable heartbeat messages. <br>*Defaults to `60` seconds.* <br> **Datatype:** Positive Integer or 0
| `internals.sd_notify` | Enables use of the sd_notify protocol to tell systemd service manager about changes in the bot state and issue keep-alive pings. See [here](installation.md#7-optional-configure-freqtrade-as-a-systemd-service) for more details. <br> **Datatype:** Boolean
| `logfile` | Specifies logfile name. Uses a rolling strategy for log file rotation for 10 files with the 1MB limit per file. <br> **Datatype:** String
| `strategy` | **Required** Defines Strategy class to use. Recommended to be set via `--strategy NAME`. <br> **Datatype:** ClassName
| `strategy_path` | Adds an additional strategy lookup path (must be a directory). <br> **Datatype:** String
| `recursive_strategy_search` | Set to `true` to recursively search sub-directories inside `user_data/strategies` for a strategy. <br> **Datatype:** Boolean
| `user_data_dir` | Directory containing user data. <br> *Defaults to `./user_data/`*. <br> **Datatype:** String
| `db_url` | Declares database URL to use. NOTE: This defaults to `sqlite:///tradesv3.dryrun.sqlite` if `dry_run` is `true`, and to `sqlite:///tradesv3.sqlite` for production instances. <br> **Datatype:** String, SQLAlchemy connect string
| `logfile` | Specifies logfile name. Uses a rolling strategy for log file rotation for 10 files with the 1MB limit per file. <br> **Datatype:** String
| `add_config_files` | Additional config files. These files will be loaded and merged with the current config file. The files are resolved relative to the initial file.<br> *Defaults to `[]`*. <br> **Datatype:** List of strings
| `dataformat_ohlcv` | Data format to use to store historical candle (OHLCV) data. <br> *Defaults to `json`*. <br> **Datatype:** String
| `dataformat_trades` | Data format to use to store historical trades data. <br> *Defaults to `jsongz`*. <br> **Datatype:** String
### Parameters in the strategy
The following parameters can be set in either configuration file or strategy.
The following parameters can be set in the configuration file or strategy.
Values set in the configuration file always overwrite values set in the strategy.
* `minimal_roi`
@@ -133,39 +260,74 @@ Values set in the configuration file always overwrite values set in the strategy
* `trailing_stop_positive`
* `trailing_stop_positive_offset`
* `trailing_only_offset_is_reached`
* `use_custom_stoploss`
* `process_only_new_candles`
* `order_types`
* `order_time_in_force`
* `stake_currency`
* `stake_amount`
* `unfilledtimeout`
* `disable_dataframe_checks`
* `use_sell_signal` (ask_strategy)
* `sell_profit_only` (ask_strategy)
* `ignore_roi_if_buy_signal` (ask_strategy)
- `use_exit_signal`
* `exit_profit_only`
- `exit_profit_offset`
- `ignore_roi_if_entry_signal`
* `ignore_buying_expired_candle_after`
* `position_adjustment_enable`
* `max_entry_position_adjustment`
### Configuring amount per trade
There are several methods to configure how much of the stake currency the bot will use to enter a trade. All methods respect the [available balance configuration](#available-balance) as explained below.
There are several methods to configure how much of the stake currency the bot will use to enter a trade. All methods respect the [available balance configuration](#tradable-balance) as explained below.
#### Available balance
#### Minimum trade stake
The minimum stake amount will depend on exchange and pair and is usually listed in the exchange support pages.
Assuming the minimum tradable amount for XRP/USD is 20 XRP (given by the exchange), and the price is 0.6$, the minimum stake amount to buy this pair is `20 * 0.6 ~= 12`.
This exchange has also a limit on USD - where all orders must be > 10$ - which however does not apply in this case.
To guarantee safe execution, freqtrade will not allow buying with a stake-amount of 10.1$, instead, it'll make sure that there's enough space to place a stoploss below the pair (+ an offset, defined by `amount_reserve_percent`, which defaults to 5%).
With a reserve of 5%, the minimum stake amount would be ~12.6$ (`12 * (1 + 0.05)`). If we take into account a stoploss of 10% on top of that - we'd end up with a value of ~14$ (`12.6 / (1 - 0.1)`).
To limit this calculation in case of large stoploss values, the calculated minimum stake-limit will never be more than 50% above the real limit.
!!! Warning
Since the limits on exchanges are usually stable and are not updated often, some pairs can show pretty high minimum limits, simply because the price increased a lot since the last limit adjustment by the exchange. Freqtrade adjusts the stake-amount to this value, unless it's > 30% more than the calculated/desired stake-amount - in which case the trade is rejected.
#### Tradable balance
By default, the bot assumes that the `complete amount - 1%` is at it's disposal, and when using [dynamic stake amount](#dynamic-stake-amount), it will split the complete balance into `max_open_trades` buckets per trade.
Freqtrade will reserve 1% for eventual fees when entering a trade and will therefore not touch that by default.
You can configure the "untouched" amount by using the `tradable_balance_ratio` setting.
For example, if you have 10 ETH available in your wallet on the exchange and `tradable_balance_ratio=0.5` (which is 50%), then the bot will use a maximum amount of 5 ETH for trading and considers this as available balance. The rest of the wallet is untouched by the trades.
For example, if you have 10 ETH available in your wallet on the exchange and `tradable_balance_ratio=0.5` (which is 50%), then the bot will use a maximum amount of 5 ETH for trading and considers this as an available balance. The rest of the wallet is untouched by the trades.
!!! Danger
This setting should **not** be used when running multiple bots on the same account. Please look at [Available Capital to the bot](#assign-available-capital) instead.
!!! Warning
The `tradable_balance_ratio` setting applies to the current balance (free balance + tied up in trades). Therefore, assuming the starting balance of 1000, a configuration with `tradable_balance_ratio=0.99` will not guarantee that 10 currency units will always remain available on the exchange. For example, the free amount may reduce to 5 units if the total balance is reduced to 500 (either by a losing streak, or by withdrawing balance).
The `tradable_balance_ratio` setting applies to the current balance (free balance + tied up in trades). Therefore, assuming the starting balance of 1000, a configuration with `tradable_balance_ratio=0.99` will not guarantee that 10 currency units will always remain available on the exchange. For example, the free amount may reduce to 5 units if the total balance is reduced to 500 (either by a losing streak or by withdrawing balance).
#### Assign available Capital
To fully utilize compounding profits when using multiple bots on the same exchange account, you'll want to limit each bot to a certain starting balance.
This can be accomplished by setting `available_capital` to the desired starting balance.
Assuming your account has 10.000 USDT and you want to run 2 different strategies on this exchange.
You'd set `available_capital=5000` - granting each bot an initial capital of 5000 USDT.
The bot will then split this starting balance equally into `max_open_trades` buckets.
Profitable trades will result in increased stake-sizes for this bot - without affecting the stake-sizes of the other bot.
!!! Warning "Incompatible with `tradable_balance_ratio`"
Setting this option will replace any configuration of `tradable_balance_ratio`.
#### Amend last stake amount
Assuming we have the tradable balance of 1000 USDT, `stake_amount=400`, and `max_open_trades=3`.
The bot would open 2 trades, and will be unable to fill the last trading slot, since the requested 400 USDT are no longer available, since 800 USDT are already tied in other trades.
The bot would open 2 trades and will be unable to fill the last trading slot, since the requested 400 USDT are no longer available since 800 USDT are already tied in other trades.
To overcome this, the option `amend_last_stake_amount` can be set to `True`, which will enable the bot to reduce stake_amount to the available balance in order to fill the last trade slot.
To overcome this, the option `amend_last_stake_amount` can be set to `True`, which will enable the bot to reduce stake_amount to the available balance to fill the last trade slot.
In the example above this would mean:
@@ -193,7 +355,7 @@ For example, the bot will at most use (0.05 BTC x 3) = 0.15 BTC, assuming a conf
#### Dynamic stake amount
Alternatively, you can use a dynamic stake amount, which will use the available balance on the exchange, and divide that equally by the amount of allowed trades (`max_open_trades`).
Alternatively, you can use a dynamic stake amount, which will use the available balance on the exchange, and divide that equally by the number of allowed trades (`max_open_trades`).
To configure this, set `stake_amount="unlimited"`. We also recommend to set `tradable_balance_ratio=0.99` (99%) - to keep a minimum balance for eventual fees.
@@ -210,90 +372,99 @@ To allow the bot to trade all the available `stake_currency` in your account (mi
"tradable_balance_ratio": 0.99,
```
!!! Note
This configuration will allow increasing / decreasing stakes depending on the performance of the bot (lower stake if bot is loosing, higher stakes if the bot has a winning record, since higher balances are available).
!!! Tip "Compounding profits"
This configuration will allow increasing/decreasing stakes depending on the performance of the bot (lower stake if the bot is losing, higher stakes if the bot has a winning record since higher balances are available), and will result in profit compounding.
!!! Note "When using Dry-Run Mode"
When using `"stake_amount" : "unlimited",` in combination with Dry-Run, the balance will be simulated starting with a stake of `dry_run_wallet` which will evolve over time. It is therefore important to set `dry_run_wallet` to a sensible value (like 0.05 or 0.01 for BTC and 1000 or 100 for USDT, for example), otherwise it may simulate trades with 100 BTC (or more) or 0.05 USDT (or less) at once - which may not correspond to your real available balance or is less than the exchange minimal limit for the order amount for the stake currency.
When using `"stake_amount" : "unlimited",` in combination with Dry-Run, Backtesting or Hyperopt, the balance will be simulated starting with a stake of `dry_run_wallet` which will evolve.
It is therefore important to set `dry_run_wallet` to a sensible value (like 0.05 or 0.01 for BTC and 1000 or 100 for USDT, for example), otherwise, it may simulate trades with 100 BTC (or more) or 0.05 USDT (or less) at once - which may not correspond to your real available balance or is less than the exchange minimal limit for the order amount for the stake currency.
#### Dynamic stake amount with position adjustment
When you want to use position adjustment with unlimited stakes, you must also implement `custom_stake_amount` to a return a value depending on your strategy.
Typical value would be in the range of 25% - 50% of the proposed stakes, but depends highly on your strategy and how much you wish to leave into the wallet as position adjustment buffer.
For example if your position adjustment assumes it can do 2 additional buys with the same stake amounts then your buffer should be 66.6667% of the initially proposed unlimited stake amount.
Or another example if your position adjustment assumes it can do 1 additional buy with 3x the original stake amount then `custom_stake_amount` should return 25% of proposed stake amount and leave 75% for possible later position adjustments.
--8<-- "includes/pricing.md"
### Understand minimal_roi
The `minimal_roi` configuration parameter is a JSON object where the key is a duration
in minutes and the value is the minimum ROI as ratio.
in minutes and the value is the minimum ROI as a ratio.
See the example below:
```json
"minimal_roi": {
"40": 0.0, # Sell after 40 minutes if the profit is not negative
"30": 0.01, # Sell after 30 minutes if there is at least 1% profit
"20": 0.02, # Sell after 20 minutes if there is at least 2% profit
"0": 0.04 # Sell immediately if there is at least 4% profit
"40": 0.0, # Exit after 40 minutes if the profit is not negative
"30": 0.01, # Exit after 30 minutes if there is at least 1% profit
"20": 0.02, # Exit after 20 minutes if there is at least 2% profit
"0": 0.04 # Exit immediately if there is at least 4% profit
},
```
Most of the strategy files already include the optimal `minimal_roi` value.
This parameter can be set in either Strategy or Configuration file. If you use it in the configuration file, it will override the
`minimal_roi` value from the strategy file.
If it is not set in either Strategy or Configuration, a default of 1000% `{"0": 10}` is used, and minimal roi is disabled unless your trade generates 1000% profit.
If it is not set in either Strategy or Configuration, a default of 1000% `{"0": 10}` is used, and minimal ROI is disabled unless your trade generates 1000% profit.
!!! Note "Special case to forcesell after a specific time"
A special case presents using `"<N>": -1` as ROI. This forces the bot to sell a trade after N Minutes, no matter if it's positive or negative, so represents a time-limited force-sell.
!!! Note "Special case to forceexit after a specific time"
A special case presents using `"<N>": -1` as ROI. This forces the bot to exit a trade after N Minutes, no matter if it's positive or negative, so represents a time-limited force-exit.
### Understand stoploss
### Understand force_entry_enable
Go to the [stoploss documentation](stoploss.md) for more details.
### Understand trailing stoploss
Go to the [trailing stoploss Documentation](stoploss.md#trailing-stop-loss) for details on trailing stoploss.
### Understand initial_state
The `initial_state` configuration parameter is an optional field that defines the initial application state.
Possible values are `running` or `stopped`. (default=`running`)
If the value is `stopped` the bot has to be started with `/start` first.
### Understand forcebuy_enable
The `forcebuy_enable` configuration parameter enables the usage of forcebuy commands via Telegram.
This is disabled for security reasons by default, and will show a warning message on startup if enabled.
For example, you can send `/forcebuy ETH/BTC` Telegram command when this feature if enabled to the bot,
who then buys the pair and holds it until a regular sell-signal (ROI, stoploss, /forcesell) appears.
The `force_entry_enable` configuration parameter enables the usage of force-enter (`/forcelong`, `/forceshort`) commands via Telegram and REST API.
For security reasons, it's disabled by default, and freqtrade will show a warning message on startup if enabled.
For example, you can send `/forceenter ETH/BTC` to the bot, which will result in freqtrade buying the pair and holds it until a regular exit-signal (ROI, stoploss, /forceexit) appears.
This can be dangerous with some strategies, so use with care.
See [the telegram documentation](telegram-usage.md) for details on usage.
### Understand process_throttle_secs
### Ignoring expired candles
The `process_throttle_secs` configuration parameter is an optional field that defines in seconds how long the bot should wait
before asking the strategy if we should buy or a sell an asset. After each wait period, the strategy is asked again for
every opened trade wether or not we should sell, and for all the remaining pairs (either the dynamic list of pairs or
the static list of pairs) if we should buy.
When working with larger timeframes (for example 1h or more) and using a low `max_open_trades` value, the last candle can be processed as soon as a trade slot becomes available. When processing the last candle, this can lead to a situation where it may not be desirable to use the buy signal on that candle. For example, when using a condition in your strategy where you use a cross-over, that point may have passed too long ago for you to start a trade on it.
In these situations, you can enable the functionality to ignore candles that are beyond a specified period by setting `ignore_buying_expired_candle_after` to a positive number, indicating the number of seconds after which the buy signal becomes expired.
For example, if your strategy is using a 1h timeframe, and you only want to buy within the first 5 minutes when a new candle comes in, you can add the following configuration to your strategy:
``` json
{
//...
"ignore_buying_expired_candle_after": 300,
// ...
}
```
!!! Note
This setting resets with each new candle, so it will not prevent sticking-signals from executing on the 2nd or 3rd candle they're active. Best use a "trigger" selector for buy signals, which are only active for one candle.
### Understand order_types
The `order_types` configuration parameter maps actions (`buy`, `sell`, `stoploss`, `emergencysell`) to order-types (`market`, `limit`, ...) as well as configures stoploss to be on the exchange and defines stoploss on exchange update interval in seconds.
The `order_types` configuration parameter maps actions (`entry`, `exit`, `stoploss`, `emergency_exit`, `force_exit`, `force_entry`) to order-types (`market`, `limit`, ...) as well as configures stoploss to be on the exchange and defines stoploss on exchange update interval in seconds.
This allows to enter using limit orders, exit using limit-orders, and create stoplosses using market orders.
It also allows to set the
stoploss "on exchange" which means stoploss order would be placed immediately once the buy order is fulfilled.
This allows to buy using limit orders, sell using
limit-orders, and create stoplosses using market orders. It also allows to set the
stoploss "on exchange" which means stoploss order would be placed immediately once
the buy order is fulfilled.
`order_types` set in the configuration file overwrites values set in the strategy as a whole, so you need to configure the whole `order_types` dictionary in one place.
If this is configured, the following 4 values (`buy`, `sell`, `stoploss` and
`stoploss_on_exchange`) need to be present, otherwise the bot will fail to start.
If this is configured, the following 4 values (`entry`, `exit`, `stoploss` and `stoploss_on_exchange`) need to be present, otherwise, the bot will fail to start.
For information on (`emergencysell`,`stoploss_on_exchange`,`stoploss_on_exchange_interval`,`stoploss_on_exchange_limit_ratio`) please see stop loss documentation [stop loss on exchange](stoploss.md)
For information on (`emergency_exit`,`force_exit`, `force_entry`, `stoploss_on_exchange`,`stoploss_on_exchange_interval`,`stoploss_on_exchange_limit_ratio`) please see stop loss documentation [stop loss on exchange](stoploss.md)
Syntax for Strategy:
```python
order_types = {
"buy": "limit",
"sell": "limit",
"emergencysell": "market",
"entry": "limit",
"exit": "limit",
"emergency_exit": "market",
"force_entry": "market",
"force_exit": "market",
"stoploss": "market",
"stoploss_on_exchange": False,
"stoploss_on_exchange_interval": 60,
@@ -305,9 +476,11 @@ Configuration:
```json
"order_types": {
"buy": "limit",
"sell": "limit",
"emergencysell": "market",
"entry": "limit",
"exit": "limit",
"emergency_exit": "market",
"force_entry": "market",
"force_exit": "market",
"stoploss": "market",
"stoploss_on_exchange": false,
"stoploss_on_exchange_interval": 60
@@ -330,7 +503,7 @@ Configuration:
If `stoploss_on_exchange` is enabled and the stoploss is cancelled manually on the exchange, then the bot will create a new stoploss order.
!!! Warning "Warning: stoploss_on_exchange failures"
If stoploss on exchange creation fails for some reason, then an "emergency sell" is initiated. By default, this will sell the asset using a market order. The order-type for the emergency-sell can be changed by setting the `emergencysell` value in the `order_types` dictionary - however this is not advised.
If stoploss on exchange creation fails for some reason, then an "emergency exit" is initiated. By default, this will exit the trade using a market order. The order-type for the emergency-exit can be changed by setting the `emergency_exit` value in the `order_types` dictionary - however, this is not advised.
### Understand order_time_in_force
@@ -340,12 +513,12 @@ is executed on the exchange. Three commonly used time in force are:
**GTC (Good Till Canceled):**
This is most of the time the default time in force. It means the order will remain
on exchange till it is canceled by user. It can be fully or partially fulfilled.
on exchange till it is cancelled by the user. It can be fully or partially fulfilled.
If partially fulfilled, the remaining will stay on the exchange till cancelled.
**FOK (Fill Or Kill):**
It means if the order is not executed immediately AND fully then it is canceled by the exchange.
It means if the order is not executed immediately AND fully then it is cancelled by the exchange.
**IOC (Immediate Or Canceled):**
@@ -360,73 +533,14 @@ The possible values are: `gtc` (default), `fok` or `ioc`.
``` python
"order_time_in_force": {
"buy": "gtc",
"sell": "gtc"
"entry": "gtc",
"exit": "gtc"
},
```
!!! Warning
This is an ongoing work. For now it is supported only for binance and only for buy orders.
Please don't change the default value unless you know what you are doing.
### Exchange configuration
Freqtrade is based on [CCXT library](https://github.com/ccxt/ccxt) that supports over 100 cryptocurrency
exchange markets and trading APIs. The complete up-to-date list can be found in the
[CCXT repo homepage](https://github.com/ccxt/ccxt/tree/master/python).
However, the bot was tested by the development team with only Bittrex, Binance and Kraken,
so the these are the only officially supported exchanges:
- [Bittrex](https://bittrex.com/): "bittrex"
- [Binance](https://www.binance.com/): "binance"
- [Kraken](https://kraken.com/): "kraken"
Feel free to test other exchanges and submit your PR to improve the bot.
Some exchanges require special configuration, which can be found on the [Exchange-specific Notes](exchanges.md) documentation page.
#### Sample exchange configuration
A exchange configuration for "binance" would look as follows:
```json
"exchange": {
"name": "binance",
"key": "your_exchange_key",
"secret": "your_exchange_secret",
"ccxt_config": {"enableRateLimit": true},
"ccxt_async_config": {
"enableRateLimit": true,
"rateLimit": 200
},
```
This configuration enables binance, as well as rate limiting to avoid bans from the exchange.
`"rateLimit": 200` defines a wait-event of 0.2s between each call. This can also be completely disabled by setting `"enableRateLimit"` to false.
!!! Note
Optimal settings for rate limiting depend on the exchange and the size of the whitelist, so an ideal parameter will vary on many other settings.
We try to provide sensible defaults per exchange where possible, if you encounter bans please make sure that `"enableRateLimit"` is enabled and increase the `"rateLimit"` parameter step by step.
#### Advanced Freqtrade Exchange configuration
Advanced options can be configured using the `_ft_has_params` setting, which will override Defaults and exchange-specific behaviours.
Available options are listed in the exchange-class as `_ft_has_default`.
For example, to test the order type `FOK` with Kraken, and modify candle limit to 200 (so you only get 200 candles per API call):
```json
"exchange": {
"name": "kraken",
"_ft_has_params": {
"order_time_in_force": ["gtc", "fok"],
"ohlcv_candle_limit": 200
}
```
!!! Warning
Please make sure to fully understand the impacts of these settings before modifying them.
This is ongoing work. For now, it is supported only for binance and kucoin.
Please don't change the default value unless you know what you are doing and have researched the impact of using different values for your particular exchange.
### What values can be used for fiat_display_currency?
@@ -439,7 +553,7 @@ The valid values are:
"AUD", "BRL", "CAD", "CHF", "CLP", "CNY", "CZK", "DKK", "EUR", "GBP", "HKD", "HUF", "IDR", "ILS", "INR", "JPY", "KRW", "MXN", "MYR", "NOK", "NZD", "PHP", "PKR", "PLN", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "ZAR", "USD"
```
In addition to fiat currencies, a range of cryto currencies are supported.
In addition to fiat currencies, a range of crypto currencies is supported.
The valid values are:
@@ -447,139 +561,10 @@ The valid values are:
"BTC", "ETH", "XRP", "LTC", "BCH", "USDT"
```
## Prices used for orders
Prices for regular orders can be controlled via the parameter structures `bid_strategy` for buying and `ask_strategy` for selling.
Prices are always retrieved right before an order is placed, either by querying the exchange tickers or by using the orderbook data.
!!! Note
Orderbook data used by Freqtrade are the data retrieved from exchange by the ccxt's function `fetch_order_book()`, i.e. are usually data from the L2-aggregated orderbook, while the ticker data are the structures returned by the ccxt's `fetch_ticker()`/`fetch_tickers()` functions. Refer to the ccxt library [documentation](https://github.com/ccxt/ccxt/wiki/Manual#market-data) for more details.
!!! Warning "Using market orders"
Please read the section [Market order pricing](#market-order-pricing) section when using market orders.
### Buy price
#### Check depth of market
When check depth of market is enabled (`bid_strategy.check_depth_of_market.enabled=True`), the buy signals are filtered based on the orderbook depth (sum of all amounts) for each orderbook side.
Orderbook `bid` (buy) side depth is then divided by the orderbook `ask` (sell) side depth and the resulting delta is compared to the value of the `bid_strategy.check_depth_of_market.bids_to_ask_delta` parameter. The buy order is only executed if the orderbook delta is greater than or equal to the configured delta value.
!!! Note
A delta value below 1 means that `ask` (sell) orderbook side depth is greater than the depth of the `bid` (buy) orderbook side, while a value greater than 1 means opposite (depth of the buy side is higher than the depth of the sell side).
#### Buy price side
The configuration setting `bid_strategy.price_side` defines the side of the spread the bot looks for when buying.
The following displays an orderbook.
``` explanation
...
103
102
101 # ask
-------------Current spread
99 # bid
98
97
...
```
If `bid_strategy.price_side` is set to `"bid"`, then the bot will use 99 as buying price.
In line with that, if `bid_strategy.price_side` is set to `"ask"`, then the bot will use 101 as buying price.
Using `ask` price often guarantees quicker filled orders, but the bot can also end up paying more than what would have been necessary.
Taker fees instead of maker fees will most likely apply even when using limit buy orders.
Also, prices at the "ask" side of the spread are higher than prices at the "bid" side in the orderbook, so the order behaves similar to a market order (however with a maximum price).
#### Buy price with Orderbook enabled
When buying with the orderbook enabled (`bid_strategy.use_order_book=True`), Freqtrade fetches the `bid_strategy.order_book_top` entries from the orderbook and then uses the entry specified as `bid_strategy.order_book_top` on the configured side (`bid_strategy.price_side`) of the orderbook. 1 specifies the topmost entry in the orderbook, while 2 would use the 2nd entry in the orderbook, and so on.
#### Buy price without Orderbook enabled
The following section uses `side` as the configured `bid_strategy.price_side`.
When not using orderbook (`bid_strategy.use_order_book=False`), Freqtrade uses the best `side` price from the ticker if it's below the `last` traded price from the ticker. Otherwise (when the `side` price is above the `last` price), it calculates a rate between `side` and `last` price.
The `bid_strategy.ask_last_balance` configuration parameter controls this. A value of `0.0` will use `side` price, while `1.0` will use the `last` price and values between those interpolate between ask and last price.
### Sell price
#### Sell price side
The configuration setting `ask_strategy.price_side` defines the side of the spread the bot looks for when selling.
The following displays an orderbook:
``` explanation
...
103
102
101 # ask
-------------Current spread
99 # bid
98
97
...
```
If `ask_strategy.price_side` is set to `"ask"`, then the bot will use 101 as selling price.
In line with that, if `ask_strategy.price_side` is set to `"bid"`, then the bot will use 99 as selling price.
#### Sell price with Orderbook enabled
When selling with the orderbook enabled (`ask_strategy.use_order_book=True`), Freqtrade fetches the `ask_strategy.order_book_max` entries in the orderbook. Then each of the orderbook steps between `ask_strategy.order_book_min` and `ask_strategy.order_book_max` on the configured orderbook side are validated for a profitable sell-possibility based on the strategy configuration (`minimal_roi` conditions) and the sell order is placed at the first profitable spot.
!!! Note
Using `order_book_max` higher than `order_book_min` only makes sense when ask_strategy.price_side is set to `"ask"`.
The idea here is to place the sell order early, to be ahead in the queue.
A fixed slot (mirroring `bid_strategy.order_book_top`) can be defined by setting `ask_strategy.order_book_min` and `ask_strategy.order_book_max` to the same number.
!!! Warning "Order_book_max > 1 - increased risks for stoplosses!"
Using `ask_strategy.order_book_max` higher than 1 will increase the risk the stoploss on exchange is cancelled too early, since an eventual [stoploss on exchange](#understand-order_types) will be cancelled as soon as the order is placed.
Also, the sell order will remain on the exchange for `unfilledtimeout.sell` (or until it's filled) - which can lead to missed stoplosses (with or without using stoploss on exchange).
!!! Warning "Order_book_max > 1 in dry-run"
Using `ask_strategy.order_book_max` higher than 1 will result in improper dry-run results (significantly better than real orders executed on exchange), since dry-run assumes orders to be filled almost instantly.
It is therefore advised to not use this setting for dry-runs.
#### Sell price without Orderbook enabled
When not using orderbook (`ask_strategy.use_order_book=False`), the price at the `ask_strategy.price_side` side (defaults to `"ask"`) from the ticker will be used as the sell price.
### Market order pricing
When using market orders, prices should be configured to use the "correct" side of the orderbook to allow realistic pricing detection.
Assuming both buy and sell are using market orders, a configuration similar to the following might be used
``` jsonc
"order_types": {
"buy": "market",
"sell": "market"
// ...
},
"bid_strategy": {
"price_side": "ask",
// ...
},
"ask_strategy":{
"price_side": "bid",
// ...
},
```
Obviously, if only one side is using limit orders, different pricing combinations can be used.
--8<-- "includes/pairlists.md"
## Switch to Dry-run mode
## Using Dry-run mode
We recommend starting the bot in the Dry-run mode to see how your bot will
behave and what is the performance of your strategy. In the Dry-run mode the
behave and what is the performance of your strategy. In the Dry-run mode, the
bot does not engage your money. It only runs a live simulation without
creating trades on the exchange.
@@ -595,36 +580,39 @@ creating trades on the exchange.
```json
"exchange": {
"name": "bittrex",
"key": "key",
"secret": "secret",
...
"name": "bittrex",
"key": "key",
"secret": "secret",
...
}
```
Once you will be happy with your bot performance running in the Dry-run mode, you can switch it to production mode.
!!! Note
A simulated wallet is available during dry-run mode, and will assume a starting capital of `dry_run_wallet` (defaults to 1000).
A simulated wallet is available during dry-run mode and will assume a starting capital of `dry_run_wallet` (defaults to 1000).
### Considerations for dry-run
* API-keys may or may not be provided. Only Read-Only operations (i.e. operations that do not alter account state) on the exchange are performed in the dry-run mode.
* Wallets (`/balance`) are simulated.
* API-keys may or may not be provided. Only Read-Only operations (i.e. operations that do not alter account state) on the exchange are performed in dry-run mode.
* Wallets (`/balance`) are simulated based on `dry_run_wallet`.
* Orders are simulated, and will not be posted to the exchange.
* Market orders fill based on orderbook volume the moment the order is placed.
* Limit orders fill once the price reaches the defined level - or time out based on `unfilledtimeout` settings.
* In combination with `stoploss_on_exchange`, the stop_loss price is assumed to be filled.
* Open orders (not trades, which are stored in the database) are reset on bot restart.
* Open orders (not trades, which are stored in the database) are kept open after bot restarts, with the assumption that they were not filled while being offline.
## Switch to production mode
In production mode, the bot will engage your money. Be careful, since a wrong
strategy can lose all your money. Be aware of what you are doing when
you run it in production mode.
In production mode, the bot will engage your money. Be careful, since a wrong strategy can lose all your money.
Be aware of what you are doing when you run it in production mode.
When switching to Production mode, please make sure to use a different / fresh database to avoid dry-run trades messing with your exchange money and eventually tainting your statistics.
### Setup your exchange account
You will need to create API Keys (usually you get `key` and `secret`, some exchanges require an additional `password`) from the Exchange website and you'll need to insert this into the appropriate fields in the configuration or when asked by the `freqtrade new-config` command.
API Keys are usually only required for live trading (trading for real money, bot running in "production mode", executing real orders on the exchange) and are not required for the bot running in dry-run (trade simulation) mode. When you setup the bot in dry-run mode, you may fill these fields with empty values.
API Keys are usually only required for live trading (trading for real money, bot running in "production mode", executing real orders on the exchange) and are not required for the bot running in dry-run (trade simulation) mode. When you set up the bot in dry-run mode, you may fill these fields with empty values.
### To switch your bot in production mode
@@ -636,24 +624,35 @@ API Keys are usually only required for live trading (trading for real money, bot
"dry_run": false,
```
**Insert your Exchange API key (change them by fake api keys):**
**Insert your Exchange API key (change them by fake API keys):**
```json
"exchange": {
{
"exchange": {
"name": "bittrex",
"key": "af8ddd35195e9dc500b9a6f799f6f5c93d89193b",
"secret": "08a9dc6db3d7b53e1acebd9275677f4b0a04f1a5",
...
//"password": "", // Optional, not needed by all exchanges)
// ...
}
//...
}
```
You should also make sure to read the [Exchanges](exchanges.md) section of the documentation to be aware of potential configuration details specific to your exchange.
!!! Hint "Keep your secrets secret"
To keep your secrets secret, we recommend using a 2nd configuration for your API keys.
Simply use the above snippet in a new configuration file (e.g. `config-private.json`) and keep your settings in this file.
You can then start the bot with `freqtrade trade --config user_data/config.json --config user_data/config-private.json <...>` to have your keys loaded.
**NEVER** share your private configuration file or your exchange keys with anyone!
### Using proxy with Freqtrade
To use a proxy with freqtrade, add the kwarg `"aiohttp_trust_env"=true` to the `"ccxt_async_kwargs"` dict in the exchange section of the configuration.
An example for this can be found in `config_full.json.example`
An example for this can be found in `config_examples/config_full.example.json`
``` json
"ccxt_async_config": {
@@ -669,32 +668,6 @@ export HTTPS_PROXY="http://addr:port"
freqtrade
```
## Embedding Strategies
Freqtrade provides you with with an easy way to embed the strategy into your configuration file.
This is done by utilizing BASE64 encoding and providing this string at the strategy configuration field,
in your chosen config file.
### Encoding a string as BASE64
This is a quick example, how to generate the BASE64 string in python
```python
from base64 import urlsafe_b64encode
with open(file, 'r') as f:
content = f.read()
content = urlsafe_b64encode(content.encode('utf-8'))
```
The variable 'content', will contain the strategy file in a BASE64 encoded form. Which can now be set in your configurations file as following
```json
"strategy": "NameOfStrategy:BASE64String"
```
Please ensure that 'NameOfStrategy' is identical to the strategy name!
## Next step
Now you have configured your config.json, the next step is to [start your bot](bot-usage.md).

View File

@@ -1,6 +1,6 @@
# Analyzing bot data with Jupyter notebooks
# Analyzing bot data with Jupyter notebooks
You can analyze the results of backtests and trading history easily using Jupyter notebooks. Sample notebooks are located at `user_data/notebooks/` after initializing the user directory with `freqtrade create-userdir --userdir user_data`.
You can analyze the results of backtests and trading history easily using Jupyter notebooks. Sample notebooks are located at `user_data/notebooks/` after initializing the user directory with `freqtrade create-userdir --userdir user_data`.
## Quick start with docker
@@ -41,32 +41,35 @@ ipython kernel install --user --name=freqtrade
!!! Warning
Some tasks don't work especially well in notebooks. For example, anything using asynchronous execution is a problem for Jupyter. Also, freqtrade's primary entry point is the shell cli, so using pure python in a notebook bypasses arguments that provide required objects and parameters to helper functions. You may need to set those values or create expected objects manually.
## Recommended workflow
## Recommended workflow
| Task | Tool |
--- | ---
Bot operations | CLI
| Task | Tool |
--- | ---
Bot operations | CLI
Repetitive tasks | Shell scripts
Data analysis & visualization | Notebook
Data analysis & visualization | Notebook
1. Use the CLI to
* download historical data
* run a backtest
* run with real-time data
* export results
* export results
1. Collect these actions in shell scripts
* save complicated commands with arguments
* execute multi-step operations
* execute multi-step operations
* automate testing strategies and preparing data for analysis
1. Use a notebook to
* visualize data
* munge and plot to generate insights
* mangle and plot to generate insights
## Example utility snippets
## Example utility snippets
### Change directory to root
### Change directory to root
Jupyter notebooks execute from the notebook directory. The following snippet searches for the project root, so relative paths remain consistent.
@@ -119,5 +122,6 @@ Best avoid relative paths, since this starts at the storage location of the jupy
* [Strategy debugging](strategy_analysis_example.md) - also available as Jupyter notebook (`user_data/notebooks/strategy_analysis_example.ipynb`)
* [Plotting](plotting.md)
* [Tag Analysis](advanced-backtesting.md)
Feel free to submit an issue or Pull Request enhancing this document if you would like to share ideas on how to best analyze the data.

View File

@@ -8,11 +8,12 @@ If no additional parameter is specified, freqtrade will download data for `"1m"`
Exchange and pairs will come from `config.json` (if specified using `-c/--config`).
Otherwise `--exchange` becomes mandatory.
You can use a relative timerange (`--days 20`) or an absolute starting point (`--timerange 20200101`). For incremental downloads, the relative approach should be used.
You can use a relative timerange (`--days 20`) or an absolute starting point (`--timerange 20200101-`). For incremental downloads, the relative approach should be used.
!!! Tip "Tip: Updating existing data"
If you already have backtesting data available in your data-directory and would like to refresh this data up to today, use `--days xx` with a number slightly higher than the missing number of days. Freqtrade will keep the available data and only download the missing data.
Be careful though: If the number is too small (which would result in a few missing days), the whole dataset will be removed and only xx days will be downloaded.
If you already have backtesting data available in your data-directory and would like to refresh this data up to today, freqtrade will automatically calculate the data missing for the existing pairs and the download will occur from the latest available point until "now", neither --days or --timerange parameters are required. Freqtrade will keep the available data and only download the missing data.
If you are updating existing data after inserting new pairs that you have no data for, use `--new-pairs-days xx` parameter. Specified number of days will be downloaded for new pairs while old pairs will be updated with missing data only.
If you use `--days xx` parameter alone - data for specified number of days will be downloaded for _all_ pairs. Be careful, if specified number of days is smaller than gap between now and last downloaded candle - freqtrade will delete all existing data to avoid gaps in candle data.
### Usage
@@ -20,20 +21,28 @@ You can use a relative timerange (`--days 20`) or an absolute starting point (`-
usage: freqtrade download-data [-h] [-v] [--logfile FILE] [-V] [-c PATH]
[-d PATH] [--userdir PATH]
[-p PAIRS [PAIRS ...]] [--pairs-file FILE]
[--days INT] [--timerange TIMERANGE]
[--dl-trades] [--exchange EXCHANGE]
[--days INT] [--new-pairs-days INT]
[--include-inactive-pairs]
[--timerange TIMERANGE] [--dl-trades]
[--exchange EXCHANGE]
[-t {1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} [{1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} ...]]
[--erase]
[--data-format-ohlcv {json,jsongz,hdf5}]
[--data-format-trades {json,jsongz,hdf5}]
[--trading-mode {spot,margin,futures}]
[--prepend]
optional arguments:
-h, --help show this help message and exit
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
Show profits for only these pairs. Pairs are space-
Limit command to these pairs. Pairs are space-
separated.
--pairs-file FILE File containing a list of pairs to download.
--days INT Download data for given number of days.
--new-pairs-days INT Download data of new pairs for given number of days.
Default: `None`.
--include-inactive-pairs
Also download data from inactive pairs.
--timerange TIMERANGE
Specify what timerange of data to use.
--dl-trades Download trades instead of OHLCV data. The bot will
@@ -52,6 +61,9 @@ optional arguments:
--data-format-trades {json,jsongz,hdf5}
Storage format for downloaded trades data. (default:
`jsongz`).
--trading-mode {spot,margin,futures}
Select Trading mode
--prepend Allow data prepending.
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
@@ -76,6 +88,93 @@ Common arguments:
For that reason, `download-data` does not care about the "startup-period" defined in a strategy. It's up to the user to download additional days if the backtest should start at a specific point in time (while respecting startup period).
### Pairs file
In alternative to the whitelist from `config.json`, a `pairs.json` file can be used.
If you are using Binance for example:
- create a directory `user_data/data/binance` and copy or create the `pairs.json` file in that directory.
- update the `pairs.json` file to contain the currency pairs you are interested in.
```bash
mkdir -p user_data/data/binance
touch user_data/data/binance/pairs.json
```
The format of the `pairs.json` file is a simple json list.
Mixing different stake-currencies is allowed for this file, since it's only used for downloading.
``` json
[
"ETH/BTC",
"ETH/USDT",
"BTC/USDT",
"XRP/ETH"
]
```
!!! Tip "Downloading all data for one quote currency"
Often, you'll want to download data for all pairs of a specific quote-currency. In such cases, you can use the following shorthand:
`freqtrade download-data --exchange binance --pairs .*/USDT <...>`. The provided "pairs" string will be expanded to contain all active pairs on the exchange.
To also download data for inactive (delisted) pairs, add `--include-inactive-pairs` to the command.
??? Note "Permission denied errors"
If your configuration directory `user_data` was made by docker, you may get the following error:
```
cp: cannot create regular file 'user_data/data/binance/pairs.json': Permission denied
```
You can fix the permissions of your user-data directory as follows:
```
sudo chown -R $UID:$GID user_data
```
### Start download
Then run:
```bash
freqtrade download-data --exchange binance
```
This will download historical candle (OHLCV) data for all the currency pairs you defined in `pairs.json`.
Alternatively, specify the pairs directly
```bash
freqtrade download-data --exchange binance --pairs ETH/USDT XRP/USDT BTC/USDT
```
or as regex (to download all active USDT pairs)
```bash
freqtrade download-data --exchange binance --pairs .*/USDT
```
### Other Notes
- To use a different directory than the exchange specific default, use `--datadir user_data/data/some_directory`.
- To change the exchange used to download the historical data from, please use a different configuration file (you'll probably need to adjust rate limits etc.)
- To use `pairs.json` from some other directory, use `--pairs-file some_other_dir/pairs.json`.
- To download historical candle (OHLCV) data for only 10 days, use `--days 10` (defaults to 30 days).
- To download historical candle (OHLCV) data from a fixed starting point, use `--timerange 20200101-` - which will download all data from January 1st, 2020.
- Use `--timeframes` to specify what timeframe download the historical candle (OHLCV) data for. Default is `--timeframes 1m 5m` which will download 1-minute and 5-minute data.
- To use exchange, timeframe and list of pairs as defined in your configuration file, use the `-c/--config` option. With this, the script uses the whitelist defined in the config as the list of currency pairs to download data for and does not require the pairs.json file. You can combine `-c/--config` with most other options.
#### Download additional data before the current timerange
Assuming you downloaded all data from 2022 (`--timerange 20220101-`) - but you'd now like to also backtest with earlier data.
You can do so by using the `--prepend` flag, combined with `--timerange` - specifying an end-date.
``` bash
freqtrade download-data --exchange binance --pairs ETH/USDT XRP/USDT BTC/USDT --prepend --timerange 20210101-20220101
```
!!! Note
Freqtrade will ignore the end-date in this mode if data is available, updating the end-date to the existing data start point.
### Data format
Freqtrade currently supports 3 data-formats for both OHLCV and trades data:
@@ -110,11 +209,14 @@ usage: freqtrade convert-data [-h] [-v] [--logfile FILE] [-V] [-c PATH]
{json,jsongz,hdf5} --format-to
{json,jsongz,hdf5} [--erase]
[-t {1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} [{1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} ...]]
[--exchange EXCHANGE]
[--trading-mode {spot,margin,futures}]
[--candle-types {spot,,futures,mark,index,premiumIndex,funding_rate} [{spot,,futures,mark,index,premiumIndex,funding_rate} ...]]
optional arguments:
-h, --help show this help message and exit
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
Show profits for only these pairs. Pairs are space-
Limit command to these pairs. Pairs are space-
separated.
--format-from {json,jsongz,hdf5}
Source format for data conversion.
@@ -125,6 +227,12 @@ optional arguments:
-t {1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} [{1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} ...], --timeframes {1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} [{1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} ...]
Specify which tickers to download. Space-separated
list. Default: `1m 5m`.
--exchange EXCHANGE Exchange name (default: `bittrex`). Only valid if no
config is provided.
--trading-mode {spot,margin,futures}
Select Trading mode
--candle-types {spot,,futures,mark,index,premiumIndex,funding_rate} [{spot,,futures,mark,index,premiumIndex,funding_rate} ...]
Select candle type to use
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
@@ -141,6 +249,7 @@ Common arguments:
Path to directory with historical backtesting data.
--userdir PATH, --user-data-dir PATH
Path to userdata directory.
```
##### Example converting data
@@ -200,6 +309,61 @@ It'll also remove original jsongz data files (`--erase` parameter).
freqtrade convert-trade-data --format-from jsongz --format-to json --datadir ~/.freqtrade/data/kraken --erase
```
### Sub-command trades to ohlcv
When you need to use `--dl-trades` (kraken only) to download data, conversion of trades data to ohlcv data is the last step.
This command will allow you to repeat this last step for additional timeframes without re-downloading the data.
```
usage: freqtrade trades-to-ohlcv [-h] [-v] [--logfile FILE] [-V] [-c PATH]
[-d PATH] [--userdir PATH]
[-p PAIRS [PAIRS ...]]
[-t {1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} [{1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} ...]]
[--exchange EXCHANGE]
[--data-format-ohlcv {json,jsongz,hdf5}]
[--data-format-trades {json,jsongz,hdf5}]
optional arguments:
-h, --help show this help message and exit
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
-t {1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} [{1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} ...], --timeframes {1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} [{1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,2w,1M,1y} ...]
Specify which tickers to download. Space-separated
list. Default: `1m 5m`.
--exchange EXCHANGE Exchange name (default: `bittrex`). Only valid if no
config is provided.
--data-format-ohlcv {json,jsongz,hdf5}
Storage format for downloaded candle (OHLCV) data.
(default: `json`).
--data-format-trades {json,jsongz,hdf5}
Storage format for downloaded trades data. (default:
`jsongz`).
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--logfile FILE Log to the file specified. Special values are:
'syslog', 'journald'. See the documentation for more
details.
-V, --version show program's version number and exit
-c PATH, --config PATH
Specify configuration file (default:
`userdir/config.json` or `config.json` whichever
exists). Multiple --config options may be used. Can be
set to `-` to read config from stdin.
-d PATH, --datadir PATH
Path to directory with historical backtesting data.
--userdir PATH, --user-data-dir PATH
Path to userdata directory.
```
#### Example trade-to-ohlcv conversion
``` bash
freqtrade trades-to-ohlcv --exchange kraken -t 5m 1h 1d --pairs BTC/EUR ETH/EUR
```
### Sub-command list-data
You can get a list of downloaded data using the `list-data` sub-command.
@@ -209,6 +373,7 @@ usage: freqtrade list-data [-h] [-v] [--logfile FILE] [-V] [-c PATH] [-d PATH]
[--userdir PATH] [--exchange EXCHANGE]
[--data-format-ohlcv {json,jsongz,hdf5}]
[-p PAIRS [PAIRS ...]]
[--trading-mode {spot,margin,futures}]
optional arguments:
-h, --help show this help message and exit
@@ -218,8 +383,10 @@ optional arguments:
Storage format for downloaded candle (OHLCV) data.
(default: `json`).
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
Show profits for only these pairs. Pairs are space-
Limit command to these pairs. Pairs are space-
separated.
--trading-mode {spot,margin,futures}
Select Trading mode
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
@@ -253,52 +420,6 @@ ETH/BTC 5m, 15m, 30m, 1h, 2h, 4h, 6h, 12h, 1d
ETH/USDT 5m, 15m, 30m, 1h, 2h, 4h
```
### Pairs file
In alternative to the whitelist from `config.json`, a `pairs.json` file can be used.
If you are using Binance for example:
- create a directory `user_data/data/binance` and copy or create the `pairs.json` file in that directory.
- update the `pairs.json` file to contain the currency pairs you are interested in.
```bash
mkdir -p user_data/data/binance
cp freqtrade/tests/testdata/pairs.json user_data/data/binance
```
The format of the `pairs.json` file is a simple json list.
Mixing different stake-currencies is allowed for this file, since it's only used for downloading.
``` json
[
"ETH/BTC",
"ETH/USDT",
"BTC/USDT",
"XRP/ETH"
]
```
### Start download
Then run:
```bash
freqtrade download-data --exchange binance
```
This will download historical candle (OHLCV) data for all the currency pairs you defined in `pairs.json`.
### Other Notes
- To use a different directory than the exchange specific default, use `--datadir user_data/data/some_directory`.
- To change the exchange used to download the historical data from, please use a different configuration file (you'll probably need to adjust rate limits etc.)
- To use `pairs.json` from some other directory, use `--pairs-file some_other_dir/pairs.json`.
- To download historical candle (OHLCV) data for only 10 days, use `--days 10` (defaults to 30 days).
- To download historical candle (OHLCV) data from a fixed starting point, use `--timerange 20200101-` - which will download all data from January 1st, 2020. Eventually set end dates are ignored.
- Use `--timeframes` to specify what timeframe download the historical candle (OHLCV) data for. Default is `--timeframes 1m 5m` which will download 1-minute and 5-minute data.
- To use exchange, timeframe and list of pairs as defined in your configuration file, use the `-c/--config` option. With this, the script uses the whitelist defined in the config as the list of currency pairs to download data for and does not require the pairs.json file. You can combine `-c/--config` with most other options.
### Trades (tick) data
By default, `download-data` sub-command downloads Candles (OHLCV) data. Some exchanges also provide historic trade-data via their API.
@@ -308,10 +429,13 @@ Since this data is large by default, the files use gzip by default. They are sto
To use this mode, simply add `--dl-trades` to your call. This will swap the download method to download trades, and resamples the data locally.
!!! Warning "do not use"
You should not use this unless you're a kraken user. Most other exchanges provide OHLCV data with sufficient history.
Example call:
```bash
freqtrade download-data --exchange binance --pairs XRP/ETH ETH/BTC --days 20 --dl-trades
freqtrade download-data --exchange kraken --pairs XRP/EUR ETH/EUR --days 20 --dl-trades
```
!!! Note

View File

@@ -15,8 +15,8 @@ This command line option was deprecated in 2019.7-dev (develop branch) and remov
### The **--dynamic-whitelist** command line option
This command line option was deprecated in 2018 and removed freqtrade 2019.6-dev (develop branch)
and in freqtrade 2019.7.
This command line option was deprecated in 2018 and removed freqtrade 2019.6-dev (develop branch) and in freqtrade 2019.7.
Please refer to [pairlists](plugins.md#pairlists-and-pairlist-handlers) instead.
### the `--live` command line option
@@ -24,6 +24,10 @@ and in freqtrade 2019.7.
Did only download the latest 500 candles, so was ineffective in getting good backtest data.
Removed in 2019-7-dev (develop branch) and in freqtrade 2019.8.
### `ticker_interval` (now `timeframe`)
Support for `ticker_interval` terminology was deprecated in 2020.6 in favor of `timeframe` - and compatibility code was removed in 2022.3.
### Allow running multiple pairlists in sequence
The former `"pairlist"` section in the configuration has been removed, and is replaced by `"pairlists"` - being a list to specify a sequence of pairlists.
@@ -33,3 +37,40 @@ The old section of configuration parameters (`"pairlist"`) has been deprecated i
### deprecation of bidVolume and askVolume from volume-pairlist
Since only quoteVolume can be compared between assets, the other options (bidVolume, askVolume) have been deprecated in 2020.4, and have been removed in 2020.9.
### Using order book steps for exit price
Using `order_book_min` and `order_book_max` used to allow stepping the orderbook and trying to find the next ROI slot - trying to place sell-orders early.
As this does however increase risk and provides no benefit, it's been removed for maintainability purposes in 2021.7.
### Legacy Hyperopt mode
Using separate hyperopt files was deprecated in 2021.4 and was removed in 2021.9.
Please switch to the new [Parametrized Strategies](hyperopt.md) to benefit from the new hyperopt interface.
## Strategy changes between V2 and V3
Isolated Futures / short trading was introduced in 2022.4. This required major changes to configuration settings, strategy interfaces, ...
We have put a great effort into keeping compatibility with existing strategies, so if you just want to continue using freqtrade in spot markets, there are no changes necessary.
While we may drop support for the current interface sometime in the future, we will announce this separately and have an appropriate transition period.
Please follow the [Strategy migration](strategy_migration.md) guide to migrate your strategy to the new format to start using the new functionalities.
### webhooks - changes with 2022.4
#### `buy_tag` has been renamed to `enter_tag`
This should apply only to your strategy and potentially to webhooks.
We will keep a compatibility layer for 1-2 versions (so both `buy_tag` and `enter_tag` will still work), but support for this in webhooks will disappear after that.
#### Naming changes
Webhook terminology changed from "sell" to "exit", and from "buy" to "entry".
* `webhookbuy` -> `webhookentry`
* `webhookbuyfill` -> `webhookentryfill`
* `webhookbuycancel` -> `webhookentrycancel`
* `webhooksell` -> `webhookexit`
* `webhooksellfill` -> `webhookexitfill`
* `webhooksellcancel` -> `webhookexitcancel`

View File

@@ -2,13 +2,13 @@
This page is intended for developers of Freqtrade, people who want to contribute to the Freqtrade codebase or documentation, or people who want to understand the source code of the application they're running.
All contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas are welcome. We [track issues](https://github.com/freqtrade/freqtrade/issues) on [GitHub](https://github.com) and also have a dev channel on [discord](https://discord.gg/MA9v74M) or [slack](https://join.slack.com/t/highfrequencybot/shared_invite/zt-jaut7r4m-Y17k4x5mcQES9a9swKuxbg) where you can ask questions.
All contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas are welcome. We [track issues](https://github.com/freqtrade/freqtrade/issues) on [GitHub](https://github.com) and also have a dev channel on [discord](https://discord.gg/p7nuUNVfP7) where you can ask questions.
## Documentation
Documentation is available at [https://freqtrade.io](https://www.freqtrade.io/) and needs to be provided with every new feature PR.
Special fields for the documentation (like Note boxes, ...) can be found [here](https://squidfunk.github.io/mkdocs-material/extensions/admonition/).
Special fields for the documentation (like Note boxes, ...) can be found [here](https://squidfunk.github.io/mkdocs-material/reference/admonitions/).
To test the documentation locally use the following commands.
@@ -26,6 +26,11 @@ Alternatively (e.g. if your system is not supported by the setup.sh script), fol
This will install all required tools for development, including `pytest`, `flake8`, `mypy`, and `coveralls`.
Then install the git hook scripts by running `pre-commit install`, so your changes will be verified locally before committing.
This avoids a lot of waiting for CI already, as some basic formatting checks are done locally on your machine.
Before opening a pull request, please familiarize yourself with our [Contributing Guidelines](https://github.com/freqtrade/freqtrade/blob/develop/CONTRIBUTING.md).
### Devcontainer setup
The fastest and easiest way to get started is to use [VSCode](https://code.visualstudio.com/) with the Remote container extension.
@@ -63,6 +68,36 @@ def test_method_to_test(caplog):
```
### Debug configuration
To debug freqtrade, we recommend VSCode with the following launch configuration (located in `.vscode/launch.json`).
Details will obviously vary between setups - but this should work to get you started.
``` json
{
"name": "freqtrade trade",
"type": "python",
"request": "launch",
"module": "freqtrade",
"console": "integratedTerminal",
"args": [
"trade",
// Optional:
// "--userdir", "user_data",
"--strategy",
"MyAwesomeStrategy",
]
},
```
Command line arguments can be added in the `"args"` array.
This method can also be used to debug a strategy, by setting the breakpoints within the strategy.
A similar setup can also be taken for Pycharm - using `freqtrade` as module name, and setting the command line arguments as "parameters".
!!! Note "Startup directory"
This assumes that you have the repository checked out, and the editor is started at the repository root level (so setup.py is at the top level of your repository).
## ErrorHandling
Freqtrade Exceptions all inherit from `FreqtradeException`.
@@ -94,7 +129,9 @@ Below is an outline of exception inheritance hierarchy:
+---+ StrategyError
```
## Modules
---
## Plugins
### Pairlists
@@ -119,6 +156,9 @@ The base-class provides an instance of the exchange (`self._exchange`) the pairl
self._pairlist_pos = pairlist_pos
```
!!! Tip
Don't forget to register your pairlist in `constants.py` under the variable `AVAILABLE_PAIRLISTS` - otherwise it will not be selectable.
Now, let's step through the methods which require actions:
#### Pairlist configuration
@@ -170,13 +210,100 @@ In `VolumePairList`, this implements different methods of sorting, does early va
return pairs
```
### Protections
Best read the [Protection documentation](plugins.md#protections) to understand protections.
This Guide is directed towards Developers who want to develop a new protection.
No protection should use datetime directly, but use the provided `date_now` variable for date calculations. This preserves the ability to backtest protections.
!!! Tip "Writing a new Protection"
Best copy one of the existing Protections to have a good example.
Don't forget to register your protection in `constants.py` under the variable `AVAILABLE_PROTECTIONS` - otherwise it will not be selectable.
#### Implementation of a new protection
All Protection implementations must have `IProtection` as parent class.
For that reason, they must implement the following methods:
* `short_desc()`
* `global_stop()`
* `stop_per_pair()`.
`global_stop()` and `stop_per_pair()` must return a ProtectionReturn object, which consists of:
* lock pair - boolean
* lock until - datetime - until when should the pair be locked (will be rounded up to the next new candle)
* reason - string, used for logging and storage in the database
* lock_side - long, short or '*'.
The `until` portion should be calculated using the provided `calculate_lock_end()` method.
All Protections should use `"stop_duration"` / `"stop_duration_candles"` to define how long a a pair (or all pairs) should be locked.
The content of this is made available as `self._stop_duration` to the each Protection.
If your protection requires a look-back period, please use `"lookback_period"` / `"lockback_period_candles"` to keep all protections aligned.
#### Global vs. local stops
Protections can have 2 different ways to stop trading for a limited :
* Per pair (local)
* For all Pairs (globally)
##### Protections - per pair
Protections that implement the per pair approach must set `has_local_stop=True`.
The method `stop_per_pair()` will be called whenever a trade closed (exit order completed).
##### Protections - global protection
These Protections should do their evaluation across all pairs, and consequently will also lock all pairs from trading (called a global PairLock).
Global protection must set `has_global_stop=True` to be evaluated for global stops.
The method `global_stop()` will be called whenever a trade closed (exit order completed).
##### Protections - calculating lock end time
Protections should calculate the lock end time based on the last trade it considers.
This avoids re-locking should the lookback-period be longer than the actual lock period.
The `IProtection` parent class provides a helper method for this in `calculate_lock_end()`.
---
## Implement a new Exchange (WIP)
!!! Note
This section is a Work in Progress and is not a complete guide on how to test a new exchange with Freqtrade.
!!! Note
Make sure to use an up-to-date version of CCXT before running any of the below tests.
You can get the latest version of ccxt by running `pip install -U ccxt` with activated virtual environment.
Native docker is not supported for these tests, however the available dev-container will support all required actions and eventually necessary changes.
Most exchanges supported by CCXT should work out of the box.
To quickly test the public endpoints of an exchange, add a configuration for your exchange to `test_ccxt_compat.py` and run these tests with `pytest --longrun tests/exchange/test_ccxt_compat.py`.
Completing these tests successfully a good basis point (it's a requirement, actually), however these won't guarantee correct exchange functioning, as this only tests public endpoints, but no private endpoint (like generate order or similar).
Also try to use `freqtrade download-data` for an extended timerange (multiple months) and verify that the data downloaded correctly (no holes, the specified timerange was actually downloaded).
These are prerequisites to have an exchange listed as either Supported or Community tested (listed on the homepage).
The below are "extras", which will make an exchange better (feature-complete) - but are not absolutely necessary for either of the 2 categories.
Additional tests / steps to complete:
* Verify data provided by `fetch_ohlcv()` - and eventually adjust `ohlcv_candle_limit` for this exchange
* Check L2 orderbook limit range (API documentation) - and eventually set as necessary
* Check if balance shows correctly (*)
* Create market order (*)
* Create limit order (*)
* Complete trade (enter + exit) (*)
* Compare result calculation between exchange and bot
* Ensure fees are applied correctly (check the database against the exchange)
(*) Requires API keys and Balance on the exchange.
### Stoploss On Exchange
Check if the new exchange supports Stoploss on Exchange orders through their API.
@@ -217,6 +344,32 @@ The output will show the last entry from the Exchange as well as the current UTC
If the day shows the same day, then the last candle can be assumed as incomplete and should be dropped (leave the setting `"ohlcv_partial_candle"` from the exchange-class untouched / True). Otherwise, set `"ohlcv_partial_candle"` to `False` to not drop Candles (shown in the example above).
Another way is to run this command multiple times in a row and observe if the volume is changing (while the date remains the same).
### Update binance cached leverage tiers
Updating leveraged tiers should be done regularly - and requires an authenticated account with futures enabled.
``` python
import ccxt
import json
from pathlib import Path
exchange = ccxt.binance({
'apiKey': '<apikey>',
'secret': '<secret>'
'options': {'defaultType': 'future'}
})
_ = exchange.load_markets()
lev_tiers = exchange.fetch_leverage_tiers()
# Assumes this is running in the root of the repository.
file = Path('freqtrade/exchange/binance_leverage_tiers.json')
json.dump(dict(sorted(lev_tiers.items())), file.open('w'), indent=2)
```
This file should then be contributed upstream, so others can benefit from this, too.
## Updating example notebooks
To keep the jupyter notebooks aligned with the documentation, the following should be ran after updating a example notebook.
@@ -231,9 +384,8 @@ jupyter nbconvert --ClearOutputPreprocessor.enabled=True --to markdown freqtrade
This documents some decisions taken for the CI Pipeline.
* CI runs on all OS variants, Linux (ubuntu), macOS and Windows.
* Docker images are build for the branches `stable` and `develop`.
* Docker images are build for the branches `stable` and `develop`, and are built as multiarch builds, supporting multiple platforms via the same tag.
* Docker images containing Plot dependencies are also available as `stable_plot` and `develop_plot`.
* Raspberry PI Docker images are postfixed with `_pi` - so tags will be `:stable_pi` and `develop_pi`.
* Docker images contain a file, `/freqtrade/freqtrade_commit` containing the commit this image is based of.
* Full docker image rebuilds are run once a week via schedule.
* Deployments run on ubuntu.

View File

@@ -1,201 +0,0 @@
## Freqtrade with docker without docker-compose
!!! Warning
The below documentation is provided for completeness and assumes that you are familiar with running docker containers. If you're just starting out with Docker, we recommend to follow the [Quickstart](docker.md) instructions.
### Download the official Freqtrade docker image
Pull the image from docker hub.
Branches / tags available can be checked out on [Dockerhub tags page](https://hub.docker.com/r/freqtradeorg/freqtrade/tags/).
```bash
docker pull freqtradeorg/freqtrade:stable
# Optionally tag the repository so the run-commands remain shorter
docker tag freqtradeorg/freqtrade:stable freqtrade
```
To update the image, simply run the above commands again and restart your running container.
Should you require additional libraries, please [build the image yourself](#build-your-own-docker-image).
!!! Note "Docker image update frequency"
The official docker images with tags `stable`, `develop` and `latest` are automatically rebuild once a week to keep the base image up-to-date.
In addition to that, every merge to `develop` will trigger a rebuild for `develop` and `latest`.
### Prepare the configuration files
Even though you will use docker, you'll still need some files from the github repository.
#### Clone the git repository
Linux/Mac/Windows with WSL
```bash
git clone https://github.com/freqtrade/freqtrade.git
```
Windows with docker
```bash
git clone --config core.autocrlf=input https://github.com/freqtrade/freqtrade.git
```
#### Copy `config.json.example` to `config.json`
```bash
cd freqtrade
cp -n config.json.example config.json
```
> To understand the configuration options, please refer to the [Bot Configuration](configuration.md) page.
#### Create your database file
=== "Dry-Run"
``` bash
touch tradesv3.dryrun.sqlite
```
=== "Production"
``` bash
touch tradesv3.sqlite
```
!!! Warning "Database File Path"
Make sure to use the path to the correct database file when starting the bot in Docker.
### Build your own Docker image
Best start by pulling the official docker image from dockerhub as explained [here](#download-the-official-docker-image) to speed up building.
To add additional libraries to your docker image, best check out [Dockerfile.technical](https://github.com/freqtrade/freqtrade/blob/develop/docker/Dockerfile.technical) which adds the [technical](https://github.com/freqtrade/technical) module to the image.
```bash
docker build -t freqtrade -f docker/Dockerfile.technical .
```
If you are developing using Docker, use `docker/Dockerfile.develop` to build a dev Docker image, which will also set up develop dependencies:
```bash
docker build -f docker/Dockerfile.develop -t freqtrade-dev .
```
!!! Warning "Include your config file manually"
For security reasons, your configuration file will not be included in the image, you will need to bind mount it. It is also advised to bind mount an SQLite database file (see [5. Run a restartable docker image](#run-a-restartable-docker-image)") to keep it between updates.
#### Verify the Docker image
After the build process you can verify that the image was created with:
```bash
docker images
```
The output should contain the freqtrade image.
### Run the Docker image
You can run a one-off container that is immediately deleted upon exiting with the following command (`config.json` must be in the current working directory):
```bash
docker run --rm -v `pwd`/config.json:/freqtrade/config.json -it freqtrade
```
!!! Warning
In this example, the database will be created inside the docker instance and will be lost when you refresh your image.
#### Adjust timezone
By default, the container will use UTC timezone.
If you would like to change the timezone use the following commands:
=== "Linux"
``` bash
-v /etc/timezone:/etc/timezone:ro
# Complete command:
docker run --rm -v /etc/timezone:/etc/timezone:ro -v `pwd`/config.json:/freqtrade/config.json -it freqtrade
```
=== "MacOS"
```bash
docker run --rm -e TZ=`ls -la /etc/localtime | cut -d/ -f8-9` -v `pwd`/config.json:/freqtrade/config.json -it freqtrade
```
!!! Note "MacOS Issues"
The OSX Docker versions after 17.09.1 have a known issue whereby `/etc/localtime` cannot be shared causing Docker to not start.<br>
A work-around for this is to start with the MacOS command above
More information on this docker issue and work-around can be read [here](https://github.com/docker/for-mac/issues/2396).
### Run a restartable docker image
To run a restartable instance in the background (feel free to place your configuration and database files wherever it feels comfortable on your filesystem).
#### 1. Move your config file and database
The following will assume that you place your configuration / database files to `~/.freqtrade`, which is a hidden directory in your home directory. Feel free to use a different directory and replace the directory in the upcomming commands.
```bash
mkdir ~/.freqtrade
mv config.json ~/.freqtrade
mv tradesv3.sqlite ~/.freqtrade
```
#### 2. Run the docker image
```bash
docker run -d \
--name freqtrade \
-v ~/.freqtrade/config.json:/freqtrade/config.json \
-v ~/.freqtrade/user_data/:/freqtrade/user_data \
-v ~/.freqtrade/tradesv3.sqlite:/freqtrade/tradesv3.sqlite \
freqtrade trade --db-url sqlite:///tradesv3.sqlite --strategy MyAwesomeStrategy
```
!!! Note
When using docker, it's best to specify `--db-url` explicitly to ensure that the database URL and the mounted database file match.
!!! Note
All available bot command line parameters can be added to the end of the `docker run` command.
!!! Note
You can define a [restart policy](https://docs.docker.com/config/containers/start-containers-automatically/) in docker. It can be useful in some cases to use the `--restart unless-stopped` flag (crash of freqtrade or reboot of your system).
### Monitor your Docker instance
You can use the following commands to monitor and manage your container:
```bash
docker logs freqtrade
docker logs -f freqtrade
docker restart freqtrade
docker stop freqtrade
docker start freqtrade
```
For more information on how to operate Docker, please refer to the [official Docker documentation](https://docs.docker.com/).
!!! Note
You do not need to rebuild the image for configuration changes, it will suffice to edit `config.json` and restart the container.
### Backtest with docker
The following assumes that the download/setup of the docker image have been completed successfully.
Also, backtest-data should be available at `~/.freqtrade/user_data/`.
```bash
docker run -d \
--name freqtrade \
-v /etc/localtime:/etc/localtime:ro \
-v ~/.freqtrade/config.json:/freqtrade/config.json \
-v ~/.freqtrade/tradesv3.sqlite:/freqtrade/tradesv3.sqlite \
-v ~/.freqtrade/user_data/:/freqtrade/user_data/ \
freqtrade backtesting --strategy AwsomelyProfitableStrategy
```
Head over to the [Backtesting Documentation](backtesting.md) for more details.
!!! Note
Additional bot command line parameters can be appended after the image name (`freqtrade` in the above example).

View File

@@ -1,5 +1,7 @@
# Using Freqtrade with Docker
This page explains how to run the bot with Docker. It is not meant to work out of the box. You'll still need to read through the documentation and understand how to properly configure it.
## Install Docker
Start by downloading and installing Docker CE for your platform:
@@ -8,13 +10,11 @@ Start by downloading and installing Docker CE for your platform:
* [Windows](https://docs.docker.com/docker-for-windows/install/)
* [Linux](https://docs.docker.com/install/)
Optionally, [`docker-compose`](https://docs.docker.com/compose/install/) should be installed and available to follow the [docker quick start guide](#docker-quick-start).
Once you have Docker installed, simply prepare the config file (e.g. `config.json`) and run the image for `freqtrade` as explained below.
To simplify running freqtrade, [`docker-compose`](https://docs.docker.com/compose/install/) should be installed and available to follow the below [docker quick start guide](#docker-quick-start).
## Freqtrade with docker-compose
Freqtrade provides an official Docker image on [Dockerhub](https://hub.docker.com/r/freqtradeorg/freqtrade/), as well as a [docker-compose file](https://github.com/freqtrade/freqtrade/blob/develop/docker-compose.yml) ready for usage.
Freqtrade provides an official Docker image on [Dockerhub](https://hub.docker.com/r/freqtradeorg/freqtrade/), as well as a [docker-compose file](https://github.com/freqtrade/freqtrade/blob/stable/docker-compose.yml) ready for usage.
!!! Note
- The following section assumes that `docker` and `docker-compose` are installed and available to the logged in user.
@@ -22,48 +22,23 @@ Freqtrade provides an official Docker image on [Dockerhub](https://hub.docker.co
### Docker quick start
Create a new directory and place the [docker-compose file](https://github.com/freqtrade/freqtrade/blob/develop/docker-compose.yml) in this directory.
Create a new directory and place the [docker-compose file](https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml) in this directory.
=== "PC/MAC/Linux"
``` bash
mkdir ft_userdata
cd ft_userdata/
# Download the docker-compose file from the repository
curl https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
``` bash
mkdir ft_userdata
cd ft_userdata/
# Download the docker-compose file from the repository
curl https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
# Pull the freqtrade image
docker-compose pull
# Pull the freqtrade image
docker-compose pull
# Create user directory structure
docker-compose run --rm freqtrade create-userdir --userdir user_data
# Create user directory structure
docker-compose run --rm freqtrade create-userdir --userdir user_data
# Create configuration - Requires answering interactive questions
docker-compose run --rm freqtrade new-config --config user_data/config.json
```
=== "RaspberryPi"
``` bash
mkdir ft_userdata
cd ft_userdata/
# Download the docker-compose file from the repository
curl https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
# Pull the freqtrade image
docker-compose pull
# Create user directory structure
docker-compose run --rm freqtrade create-userdir --userdir user_data
# Create configuration - Requires answering interactive questions
docker-compose run --rm freqtrade new-config --config user_data/config.json
```
!!! Note "Change your docker Image"
You have to change the docker image in the docker-compose file for your Raspberry build to work properly.
``` yml
image: freqtradeorg/freqtrade:stable_pi
# image: freqtradeorg/freqtrade:develop_pi
```
# Create configuration - Requires answering interactive questions
docker-compose run --rm freqtrade new-config --config user_data/config.json
```
The above snippet creates a new directory called `ft_userdata`, downloads the latest compose file and pulls the freqtrade image.
The last 2 steps in the snippet create the directory with `user_data`, as well as (interactively) the default configuration based on your selections.
@@ -71,19 +46,20 @@ The last 2 steps in the snippet create the directory with `user_data`, as well a
!!! Question "How to edit the bot configuration?"
You can edit the configuration at any time, which is available as `user_data/config.json` (within the directory `ft_userdata`) when using the above configuration.
You can also change the both Strategy and commands by editing the `docker-compose.yml` file.
You can also change the both Strategy and commands by editing the command section of your `docker-compose.yml` file.
#### Adding a custom strategy
1. The configuration is now available as `user_data/config.json`
2. Copy a custom strategy to the directory `user_data/strategies/`
3. add the Strategy' class name to the `docker-compose.yml` file
3. Add the Strategy' class name to the `docker-compose.yml` file
The `SampleStrategy` is run by default.
!!! Warning "`SampleStrategy` is just a demo!"
!!! Danger "`SampleStrategy` is just a demo!"
The `SampleStrategy` is there for your reference and give you ideas for your own strategy.
Please always backtest the strategy and use dry-run for some time before risking real money!
Please always backtest your strategy and use dry-run for some time before risking real money!
You will find more information about Strategy development in the [Strategy documentation](strategy-customization.md).
Once this is done, you're ready to launch the bot in trading mode (Dry-run or Live-trading, depending on your answer to the corresponding question you made above).
@@ -91,18 +67,38 @@ Once this is done, you're ready to launch the bot in trading mode (Dry-run or Li
docker-compose up -d
```
!!! Warning "Default configuration"
While the configuration generated will be mostly functional, you will still need to verify that all options correspond to what you want (like Pricing, pairlist, ...) before starting the bot.
#### Accessing the UI
If you've selected to enable FreqUI in the `new-config` step, you will have freqUI available at port `localhost:8080`.
You can now access the UI by typing localhost:8080 in your browser.
??? Note "UI Access on a remote servers"
If you're running on a VPS, you should consider using either a ssh tunnel, or setup a VPN (openVPN, wireguard) to connect to your bot.
This will ensure that freqUI is not directly exposed to the internet, which is not recommended for security reasons (freqUI does not support https out of the box).
Setup of these tools is not part of this tutorial, however many good tutorials can be found on the internet.
Please also read the [API configuration with docker](rest-api.md#configuration-with-docker) section to learn more about this configuration.
#### Monitoring the bot
You can check for running instances with `docker-compose ps`.
This should list the service `freqtrade` as `running`. If that's not the case, best check the logs (see next point).
#### Docker-compose logs
Logs will be located at: `user_data/logs/freqtrade.log`.
You can check the latest log with the command `docker-compose logs -f`.
Logs will be written to: `user_data/logs/freqtrade.log`.
You can also check the latest log with the command `docker-compose logs -f`.
#### Database
The database will be at: `user_data/tradesv3.sqlite`
The database will be located at: `user_data/tradesv3.sqlite`
#### Updating freqtrade with docker-compose
To update freqtrade when using `docker-compose` is as simple as running the following 2 commands:
Updating freqtrade when using `docker-compose` is as simple as running the following 2 commands:
``` bash
# Download the latest image
@@ -120,10 +116,21 @@ This will first pull the latest image, and will then restart the container with
Advanced users may edit the docker-compose file further to include all possible options or arguments.
All possible freqtrade arguments will be available by running `docker-compose run --rm freqtrade <command> <optional arguments>`.
All freqtrade arguments will be available by running `docker-compose run --rm freqtrade <command> <optional arguments>`.
!!! Warning "`docker-compose` for trade commands"
Trade commands (`freqtrade trade <...>`) should not be ran via `docker-compose run` - but should use `docker-compose up -d` instead.
This makes sure that the container is properly started (including port forwardings) and will make sure that the container will restart after a system reboot.
If you intend to use freqUI, please also ensure to adjust the [configuration accordingly](rest-api.md#configuration-with-docker), otherwise the UI will not be available.
!!! Note "`docker-compose run --rm`"
Including `--rm` will clean up the container after completion, and is highly recommended for all modes except trading mode (running with `freqtrade trade` command).
Including `--rm` will remove the container after completion, and is highly recommended for all modes except trading mode (running with `freqtrade trade` command).
??? Note "Using docker without docker-compose"
"`docker-compose run --rm`" will require a compose file to be provided.
Some freqtrade commands that don't require authentication such as `list-pairs` can be run with "`docker run --rm`" instead.
For example `docker run --rm freqtradeorg/freqtrade:stable list-pairs --exchange binance --quote BTC --print-json`.
This can be useful for fetching exchange information to add to your `config.json` without affecting your running containers.
#### Example: Download data with docker-compose
@@ -147,8 +154,8 @@ Head over to the [Backtesting Documentation](backtesting.md) to learn more.
### Additional dependencies with docker-compose
If your strategy requires dependencies not included in the default image (like [technical](https://github.com/freqtrade/technical)) - it will be necessary to build the image on your host.
For this, please create a Dockerfile containing installation steps for the additional dependencies (have a look at [docker/Dockerfile.technical](https://github.com/freqtrade/freqtrade/blob/develop/docker/Dockerfile.technical) for an example).
If your strategy requires dependencies not included in the default image - it will be necessary to build the image on your host.
For this, please create a Dockerfile containing installation steps for the additional dependencies (have a look at [docker/Dockerfile.custom](https://github.com/freqtrade/freqtrade/blob/develop/docker/Dockerfile.custom) for an example).
You'll then also need to modify the `docker-compose.yml` file and uncomment the build step, as well as rename the image to avoid naming collisions.
@@ -159,9 +166,9 @@ You'll then also need to modify the `docker-compose.yml` file and uncomment the
dockerfile: "./Dockerfile.<yourextension>"
```
You can then run `docker-compose build` to build the docker image, and run it using the commands described above.
You can then run `docker-compose build --pull` to build the docker image, and run it using the commands described above.
## Plotting with docker-compose
### Plotting with docker-compose
Commands `freqtrade plot-profit` and `freqtrade plot-dataframe` ([Documentation](plotting.md)) are available by changing the image to `*_plot` in your docker-compose.yml file.
You can then use these commands as follows:
@@ -172,20 +179,39 @@ docker-compose run --rm freqtrade plot-dataframe --strategy AwesomeStrategy -p B
The output will be stored in the `user_data/plot` directory, and can be opened with any modern browser.
## Data analayis using docker compose
### Data analysis using docker compose
Freqtrade provides a docker-compose file which starts up a jupyter lab server.
You can run this server using the following command:
``` bash
docker-compose --rm -f docker/docker-compose-jupyter.yml up
docker-compose -f docker/docker-compose-jupyter.yml up
```
This will create a dockercontainer running jupyter lab, which will be accessible using `https://127.0.0.1:8888/lab`.
This will create a docker-container running jupyter lab, which will be accessible using `https://127.0.0.1:8888/lab`.
Please use the link that's printed in the console after startup for simplified login.
Since part of this image is built on your machine, it is recommended to rebuild the image from time to time to keep freqtrade (and dependencies) uptodate.
Since part of this image is built on your machine, it is recommended to rebuild the image from time to time to keep freqtrade (and dependencies) up-to-date.
``` bash
docker-compose -f docker/docker-compose-jupyter.yml build --no-cache
```
## Troubleshooting
### Docker on Windows
* Error: `"Timestamp for this request is outside of the recvWindow."`
* The market api requests require a synchronized clock but the time in the docker container shifts a bit over time into the past.
To fix this issue temporarily you need to run `wsl --shutdown` and restart docker again (a popup on windows 10 will ask you to do so).
A permanent solution is either to host the docker container on a linux host or restart the wsl from time to time with the scheduler.
``` bash
taskkill /IM "Docker Desktop.exe" /F
wsl --shutdown
start "" "C:\Program Files\Docker\Docker\Docker Desktop.exe"
```
!!! Warning
Due to the above, we do not recommend the usage of docker on windows for production setups, but only for experimentation, datadownload and backtesting.
Best use a linux-VPS for running freqtrade reliably.

View File

@@ -1,19 +1,20 @@
# Edge positioning
The `Edge Positioning` module uses probability to calculate your win rate and risk reward ration. It will use these statistics to control your strategy trade entry points, position side and, stoploss.
The `Edge Positioning` module uses probability to calculate your win rate and risk reward ratio. It will use these statistics to control your strategy trade entry points, position size and, stoploss.
!!! Warning
`Edge positioning` is not compatible with dynamic (volume-based) whitelist.
When using `Edge positioning` with a dynamic whitelist (VolumePairList), make sure to also use `AgeFilter` and set it to at least `calculate_since_number_of_days` to avoid problems with missing data.
!!! Note
`Edge Positioning` only considers *its own* buy/sell/stoploss signals. It ignores the stoploss, trailing stoploss, and ROI settings in the strategy configuration file.
`Edge Positioning` improves the performance of some trading strategies and *decreases* the performance of others.
## Introduction
Trading strategies are not perfect. They are frameworks that are susceptible to the market and its indicators. Because the market is not at all predictable, sometimes a strategy will win and sometimes the same strategy will lose.
To obtain an edge in the market, a strategy has to make more money than it loses. Making money in trading is not only about *how often* the strategy makes or loses money.
To obtain an edge in the market, a strategy has to make more money than it loses. Making money in trading is not only about *how often* the strategy makes or loses money.
!!! tip "It doesn't matter how often, but how much!"
A bad strategy might make 1 penny in *ten* transactions but lose 1 dollar in *one* transaction. If one only checks the number of winning trades, it would be misleading to think that the strategy is actually making a profit.
@@ -23,8 +24,8 @@ The Edge Positioning module seeks to improve a strategy's winning probability an
We raise the following question[^1]:
!!! Question "Which trade is a better option?"
a) A trade with 80% of chance of losing $100 and 20% chance of winning $200<br/>
b) A trade with 100% of chance of losing $30
a) A trade with 80% of chance of losing 100\$ and 20% chance of winning 200\$<br/>
b) A trade with 100% of chance of losing 30\$
???+ Info "Answer"
The expected value of *a)* is smaller than the expected value of *b)*.<br/>
@@ -34,8 +35,8 @@ We raise the following question[^1]:
Another way to look at it is to ask a similar question:
!!! Question "Which trade is a better option?"
a) A trade with 80% of chance of winning 100 and 20% chance of losing $200<br/>
b) A trade with 100% of chance of winning $30
a) A trade with 80% of chance of winning 100\$ and 20% chance of losing 200\$<br/>
b) A trade with 100% of chance of winning 30\$
Edge positioning tries to answer the hard questions about risk/reward and position size automatically, seeking to minimizes the chances of losing of a given strategy.
@@ -55,7 +56,7 @@ Similarly, we can discover the set of losing trades $T_{lose}$ as follows:
$$ T_{lose} = \{o \in O | o \leq 0\} $$
!!! Example
In a section where a strategy made three transactions $O = \{3.5, -1, 15, 0\}$:<br>
In a section where a strategy made four transactions $O = \{3.5, -1, 15, 0\}$:<br>
$T_{win} = \{3.5, 15\}$<br>
$T_{lose} = \{-1, 0\}$<br>
@@ -82,7 +83,7 @@ Risk Reward Ratio ($R$) is a formula used to measure the expected gains of a giv
$$ R = \frac{\text{potential_profit}}{\text{potential_loss}} $$
???+ Example "Worked example of $R$ calculation"
Let's say that you think that the price of *stonecoin* today is $10.0. You believe that, because they will start mining stonecoin, it will go up to $15.0 tomorrow. There is the risk that the stone is too hard, and the GPUs can't mine it, so the price might go to $0 tomorrow. You are planning to invest $100, which will give you 10 shares (100 / 10).
Let's say that you think that the price of *stonecoin* today is 10.0\$. You believe that, because they will start mining stonecoin, it will go up to 15.0\$ tomorrow. There is the risk that the stone is too hard, and the GPUs can't mine it, so the price might go to 0\$ tomorrow. You are planning to invest 100\$, which will give you 10 shares (100 / 10).
Your potential profit is calculated as:
@@ -92,9 +93,9 @@ $$ R = \frac{\text{potential_profit}}{\text{potential_loss}} $$
&= 50
\end{aligned}$
Since the price might go to $0, the $100 dollars invested could turn into 0.
Since the price might go to 0\$, the 100\$ dollars invested could turn into 0.
We do however use a stoploss of 15% - so in the worst case, we'll sell 15% below entry price (or at 8.5$).
We do however use a stoploss of 15% - so in the worst case, we'll sell 15% below entry price (or at 8.5$\).
$\begin{aligned}
\text{potential_loss} &= (\text{entry_price} - \text{stoploss}) * \frac{\text{investment}}{\text{entry_price}} \\
@@ -109,7 +110,7 @@ $$ R = \frac{\text{potential_profit}}{\text{potential_loss}} $$
&= \frac{50}{15}\\
&= 3.33
\end{aligned}$<br>
What it effectively means is that the strategy have the potential to make 3.33$ for each $1 invested.
What it effectively means is that the strategy have the potential to make 3.33\$ for each 1\$ invested.
On a long horizon, that is, on many trades, we can calculate the risk reward by dividing the strategy' average profit on winning trades by the strategy' average loss on losing trades. We can calculate the average profit, $\mu_{win}$, as follows:
@@ -141,7 +142,7 @@ $$E = R * W - L$$
$E = R * W - L = 5 * 0.28 - 0.72 = 0.68$
<br>
The expectancy worked out in the example above means that, on average, this strategy' trades will return 1.68 times the size of its losses. Said another way, the strategy makes $1.68 for every $1 it loses, on average.
The expectancy worked out in the example above means that, on average, this strategy' trades will return 1.68 times the size of its losses. Said another way, the strategy makes 1.68\$ for every 1\$ it loses, on average.
This is important for two reasons: First, it may seem obvious, but you know right away that you have a positive return. Second, you now have a number you can compare to other candidate systems to make decisions about which ones you employ.
@@ -206,7 +207,68 @@ Let's say the stake currency is **ETH** and there is $10$ **ETH** on the wallet.
- The strategy detects a sell signal in the **XLM/ETH** market. The bot exits **Trade 1** for a profit of $1$ **ETH**. The total capital in the wallet becomes $11$ **ETH** and the available capital for trading becomes $5.5$ **ETH**.
- **Trade 4** The strategy detects a new buy signal int the **XLM/ETH** market. `Edge Positioning` calculates the stoploss of $2%$, and the position size of $0.055 / 0.02 = 2.75$ **ETH**.
- **Trade 4** The strategy detects a new buy signal int the **XLM/ETH** market. `Edge Positioning` calculates the stoploss of $2\%$, and the position size of $0.055 / 0.02 = 2.75$ **ETH**.
## Edge command reference
```
usage: freqtrade edge [-h] [-v] [--logfile FILE] [-V] [-c PATH] [-d PATH]
[--userdir PATH] [-s NAME] [--strategy-path PATH]
[-i TIMEFRAME] [--timerange TIMERANGE]
[--data-format-ohlcv {json,jsongz,hdf5}]
[--max-open-trades INT] [--stake-amount STAKE_AMOUNT]
[--fee FLOAT] [-p PAIRS [PAIRS ...]]
[--stoplosses STOPLOSS_RANGE]
optional arguments:
-h, --help show this help message and exit
-i TIMEFRAME, --timeframe TIMEFRAME
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
--timerange TIMERANGE
Specify what timerange of data to use.
--data-format-ohlcv {json,jsongz,hdf5}
Storage format for downloaded candle (OHLCV) data.
(default: `None`).
--max-open-trades INT
Override the value of the `max_open_trades`
configuration setting.
--stake-amount STAKE_AMOUNT
Override the value of the `stake_amount` configuration
setting.
--fee FLOAT Specify fee ratio. Will be applied twice (on trade
entry and exit).
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
--stoplosses STOPLOSS_RANGE
Defines a range of stoploss values against which edge
will assess the strategy. The format is "min,max,step"
(without any space). Example:
`--stoplosses=-0.01,-0.1,-0.001`
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--logfile FILE Log to the file specified. Special values are:
'syslog', 'journald'. See the documentation for more
details.
-V, --version show program's version number and exit
-c PATH, --config PATH
Specify configuration file (default:
`userdir/config.json` or `config.json` whichever
exists). Multiple --config options may be used. Can be
set to `-` to read config from stdin.
-d PATH, --datadir PATH
Path to directory with historical backtesting data.
--userdir PATH, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
```
## Configurations
@@ -222,7 +284,7 @@ Edge module has following configuration options:
| `stoploss_range_max` | Maximum stoploss. <br>*Defaults to `-0.10`.* <br> **Datatype:** Float
| `stoploss_range_step` | As an example if this is set to -0.01 then Edge will test the strategy for `[-0.01, -0,02, -0,03 ..., -0.09, -0.10]` ranges. <br> **Note** than having a smaller step means having a bigger range which could lead to slow calculation. <br> If you set this parameter to -0.001, you then slow down the Edge calculation by a factor of 10. <br>*Defaults to `-0.001`.* <br> **Datatype:** Float
| `minimum_winrate` | It filters out pairs which don't have at least minimum_winrate. <br>This comes handy if you want to be conservative and don't comprise win rate in favour of risk reward ratio. <br>*Defaults to `0.60`.* <br> **Datatype:** Float
| `minimum_expectancy` | It filters out pairs which have the expectancy lower than this number. <br>Having an expectancy of 0.20 means if you put 10$ on a trade you expect a 12$ return. <br>*Defaults to `0.20`.* <br> **Datatype:** Float
| `minimum_expectancy` | It filters out pairs which have the expectancy lower than this number. <br>Having an expectancy of 0.20 means if you put 10\$ on a trade you expect a 12\$ return. <br>*Defaults to `0.20`.* <br> **Datatype:** Float
| `min_trade_number` | When calculating *W*, *R* and *E* (expectancy) against historical data, you always want to have a minimum number of trades. The more this number is the more Edge is reliable. <br>Having a win rate of 100% on a single trade doesn't mean anything at all. But having a win rate of 70% over past 100 trades means clearly something. <br>*Defaults to `10` (it is highly recommended not to decrease this number).* <br> **Datatype:** Integer
| `max_trade_duration_minute` | Edge will filter out trades with long duration. If a trade is profitable after 1 month, it is hard to evaluate the strategy based on it. But if most of trades are profitable and they have maximum duration of 30 minutes, then it is clearly a good sign.<br>**NOTICE:** While configuring this value, you should take into consideration your timeframe. As an example filtering out trades having duration less than one day for a strategy which has 4h interval does not make sense. Default value is set assuming your strategy interval is relatively small (1m or 5m, etc.).<br>*Defaults to `1440` (one day).* <br> **Datatype:** Integer
| `remove_pumps` | Edge will remove sudden pumps in a given market while going through historical data. However, given that pumps happen very often in crypto markets, we recommend you keep this off.<br>*Defaults to `false`.* <br> **Datatype:** Boolean

View File

@@ -1,24 +1,97 @@
# Exchange-specific Notes
This page combines common gotchas and informations which are exchange-specific and most likely don't apply to other exchanges.
This page combines common gotchas and Information which are exchange-specific and most likely don't apply to other exchanges.
## Exchange configuration
Freqtrade is based on [CCXT library](https://github.com/ccxt/ccxt) that supports over 100 cryptocurrency
exchange markets and trading APIs. The complete up-to-date list can be found in the
[CCXT repo homepage](https://github.com/ccxt/ccxt/tree/master/python).
However, the bot was tested by the development team with only a few exchanges.
A current list of these can be found in the "Home" section of this documentation.
Feel free to test other exchanges and submit your feedback or PR to improve the bot or confirm exchanges that work flawlessly..
Some exchanges require special configuration, which can be found below.
### Sample exchange configuration
A exchange configuration for "binance" would look as follows:
```json
"exchange": {
"name": "binance",
"key": "your_exchange_key",
"secret": "your_exchange_secret",
"ccxt_config": {},
"ccxt_async_config": {},
// ...
```
### Setting rate limits
Usually, rate limits set by CCXT are reliable and work well.
In case of problems related to rate-limits (usually DDOS Exceptions in your logs), it's easy to change rateLimit settings to other values.
```json
"exchange": {
"name": "kraken",
"key": "your_exchange_key",
"secret": "your_exchange_secret",
"ccxt_config": {"enableRateLimit": true},
"ccxt_async_config": {
"enableRateLimit": true,
"rateLimit": 3100
},
```
This configuration enables kraken, as well as rate-limiting to avoid bans from the exchange.
`"rateLimit": 3100` defines a wait-event of 3.1s between each call. This can also be completely disabled by setting `"enableRateLimit"` to false.
!!! Note
Optimal settings for rate-limiting depend on the exchange and the size of the whitelist, so an ideal parameter will vary on many other settings.
We try to provide sensible defaults per exchange where possible, if you encounter bans please make sure that `"enableRateLimit"` is enabled and increase the `"rateLimit"` parameter step by step.
## Binance
!!! Tip "Stoploss on Exchange"
Binance supports `stoploss_on_exchange` and uses stop-loss-limit orders. It provides great advantages, so we recommend to benefit from it.
Binance supports [time_in_force](configuration.md#understand-order_time_in_force).
### Blacklists
!!! Tip "Stoploss on Exchange"
Binance supports `stoploss_on_exchange` and uses `stop-loss-limit` orders. It provides great advantages, so we recommend to benefit from it by enabling stoploss on exchange..
### Binance Blacklist
For Binance, please add `"BNB/<STAKE>"` to your blacklist to avoid issues.
Accounts having BNB accounts use this to pay for fees - if your first trade happens to be on `BNB`, further trades will consume this position and make the initial BNB order unsellable as the expected amount is not there anymore.
Accounts having BNB accounts use this to pay for fees - if your first trade happens to be on `BNB`, further trades will consume this position and make the initial BNB trade unsellable as the expected amount is not there anymore.
### Binance Futures
Binance has specific (unfortunately complex) [Futures Trading Quantitative Rules](https://www.binance.com/en/support/faq/4f462ebe6ff445d4a170be7d9e897272) which need to be followed, and which prohibit a too low stake-amount (among others) for too many orders.
Violating these rules will result in a trading restriction.
When trading on Binance Futures market, orderbook must be used because there is no price ticker data for futures.
``` jsonc
"entry_pricing": {
"use_order_book": true,
"order_book_top": 1,
"check_depth_of_market": {
"enabled": false,
"bids_to_ask_delta": 1
}
},
"exit_pricing": {
"use_order_book": true,
"order_book_top": 1
},
```
### Binance sites
Binance has been split into 3, and users must use the correct ccxt exchange ID for their exchange, otherwise API keys are not recognized.
Binance has been split into 2, and users must use the correct ccxt exchange ID for their exchange, otherwise API keys are not recognized.
* [binance.com](https://www.binance.com/) - International users. Use exchange id: `binance`.
* [binance.us](https://www.binance.us/) - US based users. Use exchange id: `binanceus`.
* [binance.je](https://www.binance.je/) - Binance Jersey, trading fiat currencies. Use exchange id: `binanceje`.
## Kraken
@@ -40,12 +113,29 @@ Due to the heavy rate-limiting applied by Kraken, the following configuration se
},
```
!!! Warning "Downloading data from kraken"
Downloading kraken data will require significantly more memory (RAM) than any other exchange, as the trades-data needs to be converted into candles on your machine.
It will also take a long time, as freqtrade will need to download every single trade that happened on the exchange for the pair / timerange combination, therefore please be patient.
!!! Warning "rateLimit tuning"
Please pay attention that rateLimit configuration entry holds delay in milliseconds between requests, NOT requests\sec rate.
So, in order to mitigate Kraken API "Rate limit exceeded" exception, this configuration should be increased, NOT decreased.
## Bittrex
### Order types
Bittrex does not support market orders. If you have a message at the bot startup about this, you should change order type values set in your configuration and/or in the strategy from `"market"` to `"limit"`. See some more details on this [here in the FAQ](faq.md#im-getting-the-exchange-bittrex-does-not-support-market-orders-message-and-cannot-run-my-strategy).
Bittrex also does not support `VolumePairlist` due to limited / split API constellation at the moment.
Please use `StaticPairlist`. Other pairlists (other than `VolumePairlist`) should not be affected.
### Volume pairlist
Bittrex does not support the direct usage of VolumePairList. This can however be worked around by using the advanced mode with `lookback_days: 1` (or more), which will emulate 24h volume.
Read more in the [pairlist documentation](plugins.md#volumepairlist-advanced-mode).
### Restricted markets
Bittrex split its exchange into US and International versions.
@@ -67,8 +157,9 @@ You can get a list of restricted markets by using the following snippet:
``` python
import ccxt
ct = ccxt.bittrex()
_ = ct.load_markets()
res = [ f"{x['MarketCurrency']}/{x['BaseCurrency']}" for x in ct.publicGetMarkets()['result'] if x['IsRestricted']]
lm = ct.load_markets()
res = [p for p, x in lm.items() if 'US' in x['info']['prohibitedIn']]
print(res)
```
@@ -92,8 +183,65 @@ To use subaccounts with FTX, you need to edit the configuration and add the foll
}
```
!!! Note
Older versions of freqtrade may require this key to be added to `"ccxt_async_config"` as well.
## Kucoin
Kucoin requires a passphrase for each api key, you will therefore need to add this key into the configuration so your exchange section looks as follows:
```json
"exchange": {
"name": "kucoin",
"key": "your_exchange_key",
"secret": "your_exchange_secret",
"password": "your_exchange_api_key_password",
// ...
}
```
Kucoin supports [time_in_force](configuration.md#understand-order_time_in_force).
!!! Tip "Stoploss on Exchange"
Kucoin supports `stoploss_on_exchange` and can use both stop-loss-market and stop-loss-limit orders. It provides great advantages, so we recommend to benefit from it.
You can use either `"limit"` or `"market"` in the `order_types.stoploss` configuration setting to decide which type of stoploss shall be used.
### Kucoin Blacklists
For Kucoin, please add `"KCS/<STAKE>"` to your blacklist to avoid issues.
Accounts having KCS accounts use this to pay for fees - if your first trade happens to be on `KCS`, further trades will consume this position and make the initial KCS trade unsellable as the expected amount is not there anymore.
## Huobi
!!! Tip "Stoploss on Exchange"
Huobi supports `stoploss_on_exchange` and uses `stop-limit` orders. It provides great advantages, so we recommend to benefit from it by enabling stoploss on exchange.
## OKX (former OKEX)
OKX requires a passphrase for each api key, you will therefore need to add this key into the configuration so your exchange section looks as follows:
```json
"exchange": {
"name": "okx",
"key": "your_exchange_key",
"secret": "your_exchange_secret",
"password": "your_exchange_api_key_password",
// ...
}
```
!!! Warning
OKX only provides 100 candles per api call. Therefore, the strategy will only have a pretty low amount of data available in backtesting mode.
!!! Warning "Futures"
OKX Futures has the concept of "position mode" - which can be Net or long/short (hedge mode).
Freqtrade supports both modes - but changing the mode mid-trading is not supported and will lead to exceptions and failures to place trades.
OKX also only provides MARK candles for the past ~3 months. Backtesting futures prior to that date will therefore lead to slight deviations, as funding-fees cannot be calculated correctly without this data.
## Gate.io
!!! Tip "Stoploss on Exchange"
Gate.io supports `stoploss_on_exchange` and uses `stop-loss-limit` orders. It provides great advantages, so we recommend to benefit from it by enabling stoploss on exchange..
Gate.io allows the use of `POINT` to pay for fees. As this is not a tradable currency (no regular market available), automatic fee calculations will fail (and default to a fee of 0).
The configuration parameter `exchange.unknown_fee_rate` can be used to specify the exchange rate between Point and the stake currency. Obviously, changing the stake-currency will also require changes to this value.
## All exchanges
@@ -117,3 +265,25 @@ Whether your exchange returns incomplete candles or not can be checked using [th
Due to the danger of repainting, Freqtrade does not allow you to use this incomplete candle.
However, if it is based on the need for the latest price for your strategy - then this requirement can be acquired using the [data provider](strategy-customization.md#possible-options-for-dataprovider) from within the strategy.
### Advanced Freqtrade Exchange configuration
Advanced options can be configured using the `_ft_has_params` setting, which will override Defaults and exchange-specific behavior.
Available options are listed in the exchange-class as `_ft_has_default`.
For example, to test the order type `FOK` with Kraken, and modify candle limit to 200 (so you only get 200 candles per API call):
```json
"exchange": {
"name": "kraken",
"_ft_has_params": {
"order_time_in_force": ["gtc", "fok"],
"ohlcv_candle_limit": 200
}
//...
}
```
!!! Warning
Please make sure to fully understand the impacts of these settings before modifying them.

View File

@@ -1,34 +1,50 @@
# Freqtrade FAQ
## Supported Markets
Freqtrade supports spot trading only.
### Can I open short positions?
Freqtrade can open short positions in futures markets.
This requires the strategy to be made for this - and `"trading_mode": "futures"` in the configuration.
Please make sure to read the [relevant documentation page](leverage.md) first.
In spot markets, you can in some cases use leveraged spot tokens, which reflect an inverted pair (eg. BTCUP/USD, BTCDOWN/USD, ETHBULL/USD, ETHBEAR/USD,...) which can be traded with Freqtrade.
### Can I trade options or futures?
Futures trading is supported for selected exchanges.
## Beginner Tips & Tricks
* When you work with your strategy & hyperopt file you should use a proper code editor like vscode or Pycharm. A good code editor will provide syntax highlighting as well as line numbers, making it easy to find syntax errors (most likely, pointed out by Freqtrade during startup).
* When you work with your strategy & hyperopt file you should use a proper code editor like VSCode or PyCharm. A good code editor will provide syntax highlighting as well as line numbers, making it easy to find syntax errors (most likely pointed out by Freqtrade during startup).
## Freqtrade common issues
### The bot does not start
Running the bot with `freqtrade trade --config config.json` does show the output `freqtrade: command not found`.
Running the bot with `freqtrade trade --config config.json` shows the output `freqtrade: command not found`.
This could have the following reasons:
This could be caused by the following reasons:
* The virtual environment is not active
* run `source .env/bin/activate` to activate the virtual environment
* The virtual environment is not active.
* Run `source .env/bin/activate` to activate the virtual environment.
* The installation did not work correctly.
* Please check the [Installation documentation](installation.md).
### I have waited 5 minutes, why hasn't the bot made any trades yet?!
### I have waited 5 minutes, why hasn't the bot made any trades yet?
* Depending on the buy strategy, the amount of whitelisted coins, the
situation of the market etc, it can take up to hours to find good entry
situation of the market etc, it can take up to hours to find a good entry
position for a trade. Be patient!
* Or it may because of a configuration error? Best check the logs, it's usually telling you if the bot is simply not getting buy signals (only heartbeat messages), or if there is something wrong (errors / exceptions in the log).
* It may be because of a configuration error. It's best to check the logs, they usually tell you if the bot is simply not getting buy signals (only heartbeat messages), or if there is something wrong (errors / exceptions in the log).
### I have made 12 trades already, why is my total profit negative?!
### I have made 12 trades already, why is my total profit negative?
I understand your disappointment but unfortunately 12 trades is just
not enough to say anything. If you run backtesting, you can see that our
not enough to say anything. If you run backtesting, you can see that the
current algorithm does leave you on the plus side, but that is after
thousands of trades and even there, you will be left with losses on
specific coins that you have traded tens if not hundreds of times. We
@@ -36,20 +52,34 @@ of course constantly aim to improve the bot but it will _always_ be a
gamble, which should leave you with modest wins on monthly basis but
you can't say much from few trades.
### Id like to change the stake amount. Can I just stop the bot with /stop and then change the config.json and run it again?
### Id like to make changes to the config. Can I do that without having to kill the bot?
Not quite. Trades are persisted to a database but the configuration is
currently only read when the bot is killed and restarted. `/stop` more
like pauses. You can stop your bot, adjust settings and start it again.
Yes. You can edit your config and use the `/reload_config` command to reload the configuration. The bot will stop, reload the configuration and strategy and will restart with the new configuration and strategy.
### I want to improve the bot with a new strategy
### Why does my bot not sell everything it bought?
That's great. We have a nice backtesting and hyperoptimization setup. See
the tutorial [here|Testing-new-strategies-with-Hyperopt](bot-usage.md#hyperopt-commands).
This is called "coin dust" and can happen on all exchanges.
It happens because many exchanges subtract fees from the "receiving currency" - so you buy 100 COIN - but you only get 99.9 COIN.
As COIN is trading in full lot sizes (1COIN steps), you cannot sell 0.9 COIN (or 99.9 COIN) - but you need to round down to 99 COIN.
This is not a bot-problem, but will also happen while manual trading.
While freqtrade can handle this (it'll sell 99 COIN), fees are often below the minimum tradable lot-size (you can only trade full COIN, not 0.9 COIN).
Leaving the dust (0.9 COIN) on the exchange makes usually sense, as the next time freqtrade buys COIN, it'll eat into the remaining small balance, this time selling everything it bought, and therefore slowly declining the dust balance (although it most likely will never reach exactly 0).
Where possible (e.g. on binance), the use of the exchange's dedicated fee currency will fix this.
On binance, it's sufficient to have BNB in your account, and have "Pay fees in BNB" enabled in your profile. Your BNB balance will slowly decline (as it's used to pay fees) - but you'll no longer encounter dust (Freqtrade will include the fees in the profit calculations).
Other exchanges don't offer such possibilities, where it's simply something you'll have to accept or move to a different exchange.
### I want to use incomplete candles
Freqtrade will not provide incomplete candles to strategies. Using incomplete candles will lead to repainting and consequently to strategies with "ghost" buys, which are impossible to both backtest, and verify after they happened.
You can use "current" market data by using the [dataprovider](strategy-customization.md#orderbookpair-maximum)'s orderbook or ticker methods - which however cannot be used during backtesting.
### Is there a setting to only SELL the coins being held and not perform anymore BUYS?
You can use the `/forcesell all` command from Telegram.
You can use the `/stopbuy` command in Telegram to prevent future buys, followed by `/forceexit all` (sell all open trades).
### I want to run multiple bots on the same machine
@@ -59,33 +89,45 @@ Please look at the [advanced setup documentation Page](advanced-setup.md#running
This message is just a warning that the latest candles had missing candles in them.
Depending on the exchange, this can indicate that the pair didn't have a trade for the timeframe you are using - and the exchange does only return candles with volume.
On low volume pairs, this is a rather common occurance.
On low volume pairs, this is a rather common occurrence.
If this happens for all pairs in the pairlist, this might indicate a recent exchange downtime. Please check your exchange's public channels for details.
Irrespectively of the reason, Freqtrade will fill up these candles with "empty" candles, where open, high, low and close are set to the previous candle close - and volume is empty. In a chart, this will look like a `_` - and is aligned with how exchanges usually represent 0 volume candles.
### I'm getting "Outdated history for pair xxx" in the log
The bot is trying to tell you that it got an outdated last candle (not the last complete candle).
As a consequence, Freqtrade will not enter a trade for this pair - as trading on old information is usually not what is desired.
This warning can point to one of the below problems:
* Exchange downtime -> Check your exchange status page / blog / twitter feed for details.
* Wrong system time -> Ensure your system-time is correct.
* Barely traded pair -> Check the pair on the exchange webpage, look at the timeframe your strategy uses. If the pair does not have any volume in some candles (usually visualized with a "volume 0" bar, and a "_" as candle), this pair did not have any trades in this timeframe. These pairs should ideally be avoided, as they can cause problems with order-filling.
* API problem -> API returns wrong data (this only here for completeness, and should not happen with supported exchanges).
### I'm getting the "RESTRICTED_MARKET" message in the log
Currently known to happen for US Bittrex users.
Read [the Bittrex section about restricted markets](exchanges.md#restricted-markets) for more information.
### I'm getting the "Exchange Bittrex does not support market orders." message and cannot run my strategy
### I'm getting the "Exchange XXX does not support market orders." message and cannot run my strategy
As the message says, Bittrex does not support market orders and you have one of the [order types](configuration.md/#understand-order_types) set to "market". Probably your strategy was written with other exchanges in mind and sets "market" orders for "stoploss" orders, which is correct and preferable for most of the exchanges supporting market orders (but not for Bittrex).
As the message says, your exchange does not support market orders and you have one of the [order types](configuration.md/#understand-order_types) set to "market". Your strategy was probably written with other exchanges in mind and sets "market" orders for "stoploss" orders, which is correct and preferable for most of the exchanges supporting market orders (but not for Bittrex and Gate.io).
To fix it for Bittrex, redefine order types in the strategy to use "limit" instead of "market":
To fix this, redefine order types in the strategy to use "limit" instead of "market":
```
``` python
order_types = {
...
'stoploss': 'limit',
"stoploss": "limit",
...
}
```
Same fix should be done in the configuration file, if order types are defined in your custom config rather than in the strategy.
The same fix should be applied in the configuration file, if order types are defined in your custom config rather than in the strategy.
### How do I search the bot logs for something?
@@ -127,45 +169,61 @@ On Windows, the `--logfile` option is also supported by Freqtrade and you can us
## Hyperopt module
### How many epoch do I need to get a good Hyperopt result?
### Why does freqtrade not have GPU support?
First of all, most indicator libraries don't have GPU support - as such, there would be little benefit for indicator calculations.
The GPU improvements would only apply to pandas-native calculations - or ones written by yourself.
For hyperopt, freqtrade is using scikit-optimize, which is built on top of scikit-learn.
Their statement about GPU support is [pretty clear](https://scikit-learn.org/stable/faq.html#will-you-add-gpu-support).
GPU's also are only good at crunching numbers (floating point operations).
For hyperopt, we need both number-crunching (find next parameters) and running python code (running backtesting).
As such, GPU's are not too well suited for most parts of hyperopt.
The benefit of using GPU would therefore be pretty slim - and will not justify the complexity introduced by trying to add GPU support.
There is however nothing preventing you from using GPU-enabled indicators within your strategy if you think you must have this - you will however probably be disappointed by the slim gain that will give you (compared to the complexity).
### How many epochs do I need to get a good Hyperopt result?
Per default Hyperopt called without the `-e`/`--epochs` command line option will only
run 100 epochs, means 100 evals of your triggers, guards, ... Too few
run 100 epochs, means 100 evaluations of your triggers, guards, ... Too few
to find a great result (unless if you are very lucky), so you probably
have to run it for 10.000 or more. But it will take an eternity to
have to run it for 10000 or more. But it will take an eternity to
compute.
Since hyperopt uses Bayesian search, running for too many epochs may not produce greater results.
It's therefore recommended to run between 500-1000 epochs over and over until you hit at least 10.000 epochs in total (or are satisfied with the result). You can best judge by looking at the results - if the bot keeps discovering better strategies, it's best to keep on going.
It's therefore recommended to run between 500-1000 epochs over and over until you hit at least 10000 epochs in total (or are satisfied with the result). You can best judge by looking at the results - if the bot keeps discovering better strategies, it's best to keep on going.
```bash
freqtrade hyperopt --hyperop SampleHyperopt --hyperopt-loss SharpeHyperOptLossDaily --strategy SampleStrategy -e 1000
freqtrade hyperopt --hyperopt-loss SharpeHyperOptLossDaily --strategy SampleStrategy -e 1000
```
### Why does it take a long time to run hyperopt?
* Discovering a great strategy with Hyperopt takes time. Study www.freqtrade.io, the Freqtrade Documentation page, join the Freqtrade [Slack community](https://join.slack.com/t/highfrequencybot/shared_invite/zt-jaut7r4m-Y17k4x5mcQES9a9swKuxbg) - or the Freqtrade [discord community](https://discord.gg/X89cVG). While you patiently wait for the most advanced, free crypto bot in the world, to hand you a possible golden strategy specially designed just for you.
* Discovering a great strategy with Hyperopt takes time. Study www.freqtrade.io, the Freqtrade Documentation page, join the Freqtrade [discord community](https://discord.gg/p7nuUNVfP7). While you patiently wait for the most advanced, free crypto bot in the world, to hand you a possible golden strategy specially designed just for you.
* If you wonder why it can take from 20 minutes to days to do 1000 epochs here are some answers:
This answer was written during the release 0.15.1, when we had:
- 8 triggers
- 9 guards: let's say we evaluate even 10 values from each
- 1 stoploss calculation: let's say we want 10 values from that too to be evaluated
* 8 triggers
* 9 guards: let's say we evaluate even 10 values from each
* 1 stoploss calculation: let's say we want 10 values from that too to be evaluated
The following calculation is still very rough and not very precise
but it will give the idea. With only these triggers and guards there is
already 8\*10^9\*10 evaluations. A roughly total of 80 billion evals.
Did you run 100 000 evals? Congrats, you've done roughly 1 / 100 000 th
already 8\*10^9\*10 evaluations. A roughly total of 80 billion evaluations.
Did you run 100 000 evaluations? Congrats, you've done roughly 1 / 100 000 th
of the search space, assuming that the bot never tests the same parameters more than once.
* The time it takes to run 1000 hyperopt epochs depends on things like: The available cpu, hard-disk, ram, timeframe, timerange, indicator settings, indicator count, amount of coins that hyperopt test strategies on and the resulting trade count - which can be 650 trades in a year or 10.0000 trades depending if the strategy aims for big profits by trading rarely or for many low profit trades.
* The time it takes to run 1000 hyperopt epochs depends on things like: The available cpu, hard-disk, ram, timeframe, timerange, indicator settings, indicator count, amount of coins that hyperopt test strategies on and the resulting trade count - which can be 650 trades in a year or 100000 trades depending if the strategy aims for big profits by trading rarely or for many low profit trades.
Example: 4% profit 650 times vs 0,3% profit a trade 10.000 times in a year. If we assume you set the --timerange to 365 days.
Example: 4% profit 650 times vs 0,3% profit a trade 10000 times in a year. If we assume you set the --timerange to 365 days.
Example:
Example:
`freqtrade --config config.json --strategy SampleStrategy --hyperopt SampleHyperopt -e 1000 --timerange 20190601-20200601`
## Edge module

769
docs/freqai.md Normal file
View File

@@ -0,0 +1,769 @@
![freqai-logo](assets/freqai_doc_logo.svg)
# FreqAI
FreqAI is a module designed to automate a variety of tasks associated with training a predictive model to generate market forecasts given a set of input features.
Among the the features included:
* **Self-adaptive retraining**: retrain models during live deployments to self-adapt to the market in an unsupervised manner.
* **Rapid feature engineering**: create large rich feature sets (10k+ features) based on simple user created strategies.
* **High performance**: adaptive retraining occurs on separate thread (or on GPU if available) from inferencing and bot trade operations. Keep newest models and data in memory for rapid inferencing.
* **Realistic backtesting**: emulate self-adaptive retraining with backtesting module that automates past retraining.
* **Modifiable**: use the generalized and robust architecture for incorporating any machine learning library/method available in Python. Seven examples available.
* **Smart outlier removal**: remove outliers from training and prediction sets using a variety of outlier detection techniques.
* **Crash resilience**: model storage to disk to make reloading from a crash fast and easy (and purge obsolete files for sustained dry/live runs).
* **Automated data normalization**: normalize the data in a smart and statistically safe way.
* **Automatic data download**: compute the data download timerange and update historic data (in live deployments).
* **Clean incoming data** safe NaN handling before training and prediction.
* **Dimensionality reduction**: reduce the size of the training data via Principal Component Analysis.
* **Deploy bot fleets**: set one bot to train models while a fleet of other bots inference into the models and handle trades.
## Quick start
The easiest way to quickly test FreqAI is to run it in dry run with the following command
```bash
freqtrade trade --config config_examples/config_freqai.example.json --strategy FreqaiExampleStrategy --freqaimodel LightGBMRegressor --strategy-path freqtrade/templates
```
where the user will see the boot-up process of auto-data downloading, followed by simultaneous training and trading.
The example strategy, example prediction model, and example config can all be found in
`freqtrade/templates/FreqaiExampleStrategy.py`, `freqtrade/freqai/prediction_models/LightGBMRegressor.py`,
`config_examples/config_freqai.example.json`, respectively.
## General approach
The user provides FreqAI with a set of custom *base* indicators (created inside the strategy the same way
a typical Freqtrade strategy is created) as well as target values which look into the future.
FreqAI trains a model to predict the target value based on the input of custom indicators for each pair in the whitelist. These models are consistently retrained to adapt to market conditions. FreqAI offers the ability to both backtest strategies (emulating reality with periodic retraining) and deploy dry/live. In dry/live conditions, FreqAI can be set to constant retraining in a background thread in an effort to keep models as young as possible.
An overview of the algorithm is shown here to help users understand the data processing pipeline and the model usage.
![freqai-algo](assets/freqai_algo.png)
## Background and vocabulary
**Features** are the quantities with which a model is trained. $X_i$ represents the
vector of all features for a single candle. In FreqAI, the user
builds the features from anything they can construct in the strategy.
**Labels** are the target values with which the weights inside a model are trained
toward. Each set of features is associated with a single label, which is also
defined within the strategy by the user. These labels intentionally look into the
future, and are not available to the model during dryrun/live/backtesting.
**Training** refers to the process of feeding individual feature sets into the
model with associated labels with the goal of matching input feature sets to associated labels.
**Train data** is a subset of the historic data which is fed to the model during
training to adjust weights. This data directly influences weight connections in the model.
**Test data** is a subset of the historic data which is used to evaluate the
intermediate performance of the model during training. This data does not
directly influence nodal weights within the model.
## Install prerequisites
The normal Freqtrade install process will ask the user if they wish to install FreqAI dependencies. The user should reply "yes" to this question if they wish to use FreqAI. If the user did not reply yes, they can manually install these dependencies after the install with:
``` bash
pip install -r requirements-freqai.txt
```
!!! Note
Catboost will not be installed on arm devices (raspberry, Mac M1, ARM based VPS, ...), since Catboost does not provide wheels for this platform.
### Usage with docker
For docker users, a dedicated tag with freqAI dependencies is available as `:freqai`.
As such - you can replace the image line in your docker-compose file with `image: freqtradeorg/freqtrade:develop_freqai`.
This image contains the regular freqAI dependencies. Similar to native installs, Catboost will not be available on ARM based devices.
## Configuring FreqAI
### Parameter table
The table below will list all configuration parameters available for FreqAI.
Mandatory parameters are marked as **Required**, which means that they are required to be set in one of the possible ways.
| Parameter | Description |
|------------|-------------|
| `freqai` | **Required.** The parent dictionary containing all the parameters below for controlling FreqAI. <br> **Datatype:** dictionary.
| `identifier` | **Required.** A unique name for the current model. This can be reused to reload pre-trained models/data. <br> **Datatype:** string.
| `train_period_days` | **Required.** Number of days to use for the training data (width of the sliding window). <br> **Datatype:** positive integer.
| `backtest_period_days` | **Required.** Number of days to inference into the trained model before sliding the window and retraining. This can be fractional days, but beware that the user provided `timerange` will be divided by this number to yield the number of trainings necessary to complete the backtest. <br> **Datatype:** Float.
| `live_retrain_hours` | Frequency of retraining during dry/live runs. Default set to 0, which means it will retrain as often as possible. <br> **Datatype:** Float > 0.
| `follow_mode` | If true, this instance of FreqAI will look for models associated with `identifier` and load those for inferencing. A `follower` will **not** train new models. `False` by default. <br> **Datatype:** boolean.
| `startup_candles` | Number of candles needed for *backtesting only* to ensure all indicators are non NaNs at the start of the first train period. <br> **Datatype:** positive integer.
| `fit_live_predictions_candles` | Computes target (label) statistics from prediction data, instead of from the training data set. Number of candles is the number of historical candles it uses to generate the statistics. <br> **Datatype:** positive integer.
| `purge_old_models` | Tell FreqAI to delete obsolete models. Otherwise, all historic models will remain on disk. Defaults to `False`. <br> **Datatype:** boolean.
| `expiration_hours` | Ask FreqAI to avoid making predictions if a model is more than `expiration_hours` old. Defaults to 0 which means models never expire. <br> **Datatype:** positive integer.
| | **Feature Parameters**
| `feature_parameters` | A dictionary containing the parameters used to engineer the feature set. Details and examples shown [here](#feature-engineering) <br> **Datatype:** dictionary.
| `include_corr_pairlist` | A list of correlated coins that FreqAI will add as additional features to all `pair_whitelist` coins. All indicators set in `populate_any_indicators` will be created for each coin in this list, and that set of features is added to the base asset feature set. <br> **Datatype:** list of assets (strings).
| `include_timeframes` | A list of timeframes that all indicators in `populate_any_indicators` will be created for and added as features to the base asset feature set. <br> **Datatype:** list of timeframes (strings).
| `label_period_candles` | Number of candles into the future that the labels are created for. This is used in `populate_any_indicators`, refer to `templates/FreqaiExampleStrategy.py` for detailed usage. The user can create custom labels, making use of this parameter not. <br> **Datatype:** positive integer.
| `include_shifted_candles` | Parameter used to add a sense of temporal recency to flattened regression type input data. `include_shifted_candles` takes all features, duplicates and shifts them by the number indicated by user. <br> **Datatype:** positive integer.
| `DI_threshold` | Activates the Dissimilarity Index for outlier detection when above 0, explained in detail [here](#removing-outliers-with-the-dissimilarity-index). <br> **Datatype:** positive float (typically below 1).
| `weight_factor` | Used to set weights for training data points according to their recency, see details and a figure of how it works [here](#controlling-the-model-learning-process). <br> **Datatype:** positive float (typically below 1).
| `principal_component_analysis` | Ask FreqAI to automatically reduce the dimensionality of the data set using PCA. <br> **Datatype:** boolean.
| `use_SVM_to_remove_outliers` | Ask FreqAI to train a support vector machine to detect and remove outliers from the training data set as well as from incoming data points. <br> **Datatype:** boolean.
| `svm_params` | All parameters available in Sklearn's `SGDOneClassSVM()`. E.g. `nu` *Very* broadly, is the percentage of data points that should be considered outliers. `shuffle` is by default false to maintain reproducibility. But these and all others can be added/changed in this dictionary. <br> **Datatype:** dictionary.
| `stratify_training_data` | This value is used to indicate the stratification of the data. e.g. 2 would set every 2nd data point into a separate dataset to be pulled from during training/testing. <br> **Datatype:** positive integer.
| `indicator_max_period_candles` | The maximum *period* used in `populate_any_indicators()` for indicator creation. FreqAI uses this information in combination with the maximum timeframe to calculate how many data points it should download so that the first data point does not have a NaN <br> **Datatype:** positive integer.
| `indicator_periods_candles` | A list of integers used to duplicate all indicators according to a set of periods and add them to the feature set. <br> **Datatype:** list of positive integers.
| `use_DBSCAN_to_remove_outliers` | Inactive by default. If true, FreqAI clusters data using DBSCAN to identify and remove outliers from training and prediction data. <br> **Datatype:** float (fraction of 1).
| | **Data split parameters**
| `data_split_parameters` | Include any additional parameters available from Scikit-learn `test_train_split()`, which are shown [here](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html) <br> **Datatype:** dictionary.
| `test_size` | Fraction of data that should be used for testing instead of training. <br> **Datatype:** positive float below 1.
| `shuffle` | Shuffle the training data points during training. Typically for time-series forecasting, this is set to False. <br> **Datatype:** boolean.
| | **Model training parameters**
| `model_training_parameters` | A flexible dictionary that includes all parameters available by the user selected library. For example, if the user uses `LightGBMRegressor`, then this dictionary can contain any parameter available by the `LightGBMRegressor` [here](https://lightgbm.readthedocs.io/en/latest/pythonapi/lightgbm.LGBMRegressor.html). If the user selects a different model, then this dictionary can contain any parameter from that different model. <br> **Datatype:** dictionary.
| `n_estimators` | A common parameter among regressors which sets the number of boosted trees to fit <br> **Datatype:** integer.
| `learning_rate` | A common parameter among regressors which sets the boosting learning rate. <br> **Datatype:** float.
| `n_jobs`, `thread_count`, `task_type` | Different libraries use different parameter names to control the number of threads used for parallel processing or whether or not it is a `task_type` of `gpu` or `cpu`. <br> **Datatype:** float.
| | **Extraneous parameters**
| `keras` | If your model makes use of keras (typical of Tensorflow based prediction models), activate this flag so that the model save/loading follows keras standards. Default value `false` <br> **Datatype:** boolean.
| `conv_width` | The width of a convolutional neural network input tensor. This replaces the need for `shift` by feeding in historical data points as the second dimension of the tensor. Technically, this parameter can also be used for regressors, but it only adds computational overhead and does not change the model training/prediction. Default value, 2 <br> **Datatype:** integer.
### Important FreqAI dataframe key patterns
Here are the values the user can expect to include/use inside the typical strategy dataframe (`df[]`):
| DataFrame Key | Description |
|------------|-------------|
| `df['&*']` | Any dataframe column prepended with `&` in `populate_any_indicators()` is treated as a training target inside FreqAI (typically following the naming convention `&-s*`). These same dataframe columns names are fed back to the user as the predictions. For example, the user wishes to predict the price change in the next 40 candles (similar to `templates/FreqaiExampleStrategy.py`) by setting `df['&-s_close']`. FreqAI makes the predictions and gives them back to the user under the same key (`df['&-s_close']`) to be used in `populate_entry/exit_trend()`. <br> **Datatype:** depends on the output of the model.
| `df['&*_std/mean']` | The standard deviation and mean values of the user defined labels during training (or live tracking with `fit_live_predictions_candles`). Commonly used to understand rarity of prediction (use the z-score as shown in `templates/FreqaiExampleStrategy.py` to evaluate how often a particular prediction was observed during training (or historically with `fit_live_predictions_candles`)<br> **Datatype:** float.
| `df['do_predict']` | An indication of an outlier, this return value is integer between -1 and 2 which lets the user understand if the prediction is trustworthy or not. `do_predict==1` means the prediction is trustworthy. If the [Dissimilarity Index](#removing-outliers-with-the-dissimilarity-index) is above the user defined threshold, it will subtract 1 from `do_predict`. If `use_SVM_to_remove_outliers()` is active, then the Support Vector Machine (SVM) may also detect outliers in training and prediction data. In this case, the SVM will also subtract one from `do_predict`. A particular case is when `do_predict == 2`, it means that the model has expired due to `expired_hours`. <br> **Datatype:** integer between -1 and 2.
| `df['DI_values']` | The raw Dissimilarity Index values to give the user a sense of confidence in the prediction. Lower DI means the data point is closer to the trained parameter space. <br> **Datatype:** float.
| `df['%*']` | Any dataframe column prepended with `%` in `populate_any_indicators()` is treated as a training feature inside FreqAI. For example, the user can include the rsi in the training feature set (similar to `templates/FreqaiExampleStrategy.py`) by setting `df['%-rsi']`. See more details on how this is done [here](#building-the-feature-set). <br>**Note**: since the number of features prepended with `%` can multiply very quickly (10s of thousands of features is easily engineered using the multiplictative functionality described in the `feature_parameters` table.) these features are removed from the dataframe upon return from FreqAI. If the user wishes to keep a particular type of feature for plotting purposes, you can prepend it with `%%`. <br> **Datatype:** depends on the output of the model.
### Example config file
The user interface is isolated to the typical config file. A typical FreqAI config setup could include:
```json
"freqai": {
"startup_candles": 10000,
"purge_old_models": true,
"train_period_days": 30,
"backtest_period_days": 7,
"identifier" : "unique-id",
"feature_parameters" : {
"include_timeframes": ["5m","15m","4h"],
"include_corr_pairlist": [
"ETH/USD",
"LINK/USD",
"BNB/USD"
],
"label_period_candles": 24,
"include_shifted_candles": 2,
"weight_factor": 0,
"indicator_max_period_candles": 20,
"indicator_periods_candles": [10, 20]
},
"data_split_parameters" : {
"test_size": 0.25,
"random_state": 42
},
"model_training_parameters" : {
"n_estimators": 100,
"random_state": 42,
"learning_rate": 0.02,
"task_type": "CPU",
},
}
```
### Feature engineering
Features are added by the user inside the `populate_any_indicators()` method of the strategy
by prepending indicators with `%` and labels are added by prepending `&`.
There are some important components/structures that the user *must* include when building their feature set.
Another structure to consider is the location of the labels at the bottom of the example function (below `if set_generalized_indicators:`).
This is where the user will add single features and labels to their feature set to avoid duplication from
various configuration parameters which multiply the feature set such as `include_timeframes`.
```python
def populate_any_indicators(
self, pair, df, tf, informative=None, set_generalized_indicators=False
):
"""
Function designed to automatically generate, name and merge features
from user indicated timeframes in the configuration file. User controls the indicators
passed to the training/prediction by prepending indicators with `'%-' + coin `
(see convention below). I.e. user should not prepend any supporting metrics
(e.g. bb_lowerband below) with % unless they explicitly want to pass that metric to the
model.
:param pair: pair to be used as informative
:param df: strategy dataframe which will receive merges from informatives
:param tf: timeframe of the dataframe which will modify the feature names
:param informative: the dataframe associated with the informative pair
:param coin: the name of the coin which will modify the feature names.
"""
coint = pair.split('/')[0]
if informative is None:
informative = self.dp.get_pair_dataframe(pair, tf)
# first loop is automatically duplicating indicators for time periods
for t in self.freqai_info["feature_parameters"]["indicator_periods_candles"]:
t = int(t)
informative[f"%-{coin}rsi-period_{t}"] = ta.RSI(informative, timeperiod=t)
informative[f"%-{coin}mfi-period_{t}"] = ta.MFI(informative, timeperiod=t)
informative[f"%-{coin}adx-period_{t}"] = ta.ADX(informative, window=t)
bollinger = qtpylib.bollinger_bands(
qtpylib.typical_price(informative), window=t, stds=2.2
)
informative[f"{coin}bb_lowerband-period_{t}"] = bollinger["lower"]
informative[f"{coin}bb_middleband-period_{t}"] = bollinger["mid"]
informative[f"{coin}bb_upperband-period_{t}"] = bollinger["upper"]
informative[f"%-{coin}bb_width-period_{t}"] = (
informative[f"{coin}bb_upperband-period_{t}"]
- informative[f"{coin}bb_lowerband-period_{t}"]
) / informative[f"{coin}bb_middleband-period_{t}"]
informative[f"%-{coin}close-bb_lower-period_{t}"] = (
informative["close"] / informative[f"{coin}bb_lowerband-period_{t}"]
)
informative[f"%-{coin}relative_volume-period_{t}"] = (
informative["volume"] / informative["volume"].rolling(t).mean()
)
indicators = [col for col in informative if col.startswith("%")]
# This loop duplicates and shifts all indicators to add a sense of recency to data
for n in range(self.freqai_info["feature_parameters"]["include_shifted_candles"] + 1):
if n == 0:
continue
informative_shift = informative[indicators].shift(n)
informative_shift = informative_shift.add_suffix("_shift-" + str(n))
informative = pd.concat((informative, informative_shift), axis=1)
df = merge_informative_pair(df, informative, self.config["timeframe"], tf, ffill=True)
skip_columns = [
(s + "_" + tf) for s in ["date", "open", "high", "low", "close", "volume"]
]
df = df.drop(columns=skip_columns)
# Add generalized indicators here (because in live, it will call this
# function to populate indicators during training). Notice how we ensure not to
# add them multiple times
if set_generalized_indicators:
df["%-day_of_week"] = (df["date"].dt.dayofweek + 1) / 7
df["%-hour_of_day"] = (df["date"].dt.hour + 1) / 25
# user adds targets here by prepending them with &- (see convention below)
# If user wishes to use multiple targets, a multioutput prediction model
# needs to be used such as templates/CatboostPredictionMultiModel.py
df["&-s_close"] = (
df["close"]
.shift(-self.freqai_info["feature_parameters"]["label_period_candles"])
.rolling(self.freqai_info["feature_parameters"]["label_period_candles"])
.mean()
/ df["close"]
- 1
)
return df
```
The user of the present example does not wish to pass the `bb_lowerband` as a feature to the model,
and has therefore not prepended it with `%`. The user does, however, wish to pass `bb_width` to the
model for training/prediction and has therefore prepended it with `%`.
The `include_timeframes` from the example config above are the timeframes (`tf`) of each call to `populate_any_indicators()`
included metric for inclusion in the feature set. In the present case, the user is asking for the
`5m`, `15m`, and `4h` timeframes of the `rsi`, `mfi`, `roc`, and `bb_width` to be included in the feature set.
In addition, the user can ask for each of these features to be included from
informative pairs using the `include_corr_pairlist`. This means that the present feature
set will include all the features from `populate_any_indicators` on all the `include_timeframes` for each of
`ETH/USD`, `LINK/USD`, and `BNB/USD`.
`include_shifted_candles` is another user controlled parameter which indicates the number of previous
candles to include in the present feature set. In other words, `include_shifted_candles: 2`, tells
FreqAI to include the the past 2 candles for each of the features included in the dataset.
In total, the number of features the present user has created is:
length of `include_timeframes` * no. features in `populate_any_indicators()` * length of `include_corr_pairlist` * no. `include_shifted_candles` * length of `indicator_periods_candles`
$3 * 3 * 3 * 2 * 2 = 108$.
!!! Note
Features **must** be defined in `populate_any_indicators()`. Making features in `populate_indicators()`
will fail in live/dry mode. If the user wishes to add generalized features that are not associated with
a specific pair or timeframe, they should use the following structure inside `populate_any_indicators()`
(as exemplified in `freqtrade/templates/FreqaiExampleStrategy.py`:
```python
def populate_any_indicators(self, metadata, pair, df, tf, informative=None, coin="", set_generalized_indicators=False):
...
# Add generalized indicators here (because in live, it will call only this function to populate
# indicators for retraining). Notice how we ensure not to add them multiple times by associating
# these generalized indicators to the basepair/timeframe
if set_generalized_indicators:
df['%-day_of_week'] = (df["date"].dt.dayofweek + 1) / 7
df['%-hour_of_day'] = (df['date'].dt.hour + 1) / 25
# user adds targets here by prepending them with &- (see convention below)
# If user wishes to use multiple targets, a multioutput prediction model
# needs to be used such as templates/CatboostPredictionMultiModel.py
df["&-s_close"] = (
df["close"]
.shift(-self.freqai_info["feature_parameters"]["label_period_candles"])
.rolling(self.freqai_info["feature_parameters"]["label_period_candles"])
.mean()
/ df["close"]
- 1
)
```
(Please see the example script located in `freqtrade/templates/FreqaiExampleStrategy.py` for a full example of `populate_any_indicators()`)
### Deciding the sliding training window and backtesting duration
Users define the backtesting timerange with the typical `--timerange` parameter in the user
configuration file. `train_period_days` is the duration of the sliding training window, while
`backtest_period_days` is the sliding backtesting window, both in number of days (`backtest_period_days` can be
a float to indicate sub daily retraining in live/dry mode). In the present example,
the user is asking FreqAI to use a training period of 30 days and backtest the subsequent 7 days.
This means that if the user sets `--timerange 20210501-20210701`,
FreqAI will train 8 separate models (because the full range comprises 8 weeks),
and then backtest the subsequent week associated with each of the 8 training
data set timerange months. Users can think of this as a "sliding window" which
emulates FreqAI retraining itself once per week in live using the previous
month of data.
In live, the required training data is automatically computed and downloaded. However, in backtesting
the user must manually enter the required number of `startup_candles` in the config. This value
is used to increase the available data to FreqAI and should be sufficient to enable all indicators
to be NaN free at the beginning of the first training timerange. This boils down to identifying the
highest timeframe (`4h` in present example) and the longest indicator period (25 in present example)
and adding this to the `train_period_days`. The units need to be in the base candle time frame:
`startup_candles` = ( 4 hours * 25 max period * 60 minutes/hour + 30 day train_period_days * 1440 minutes per day ) / 5 min (base time frame) = 1488.
!!! Note
In dry/live, this is all precomputed and handled automatically. Thus, `startup_candle` has no influence on dry/live.
!!! Note
Although fractional `backtest_period_days` is allowed, the user should be ware that the `--timerange` is divided by this value to determine the number of models that FreqAI will need to train in order to backtest the full range. For example, if the user wants to set a `--timerange` of 10 days, and asks for a `backtest_period_days` of 0.1, FreqAI will need to train 100 models per pair to complete the full backtest. This is why it is physically impossible to truly backtest FreqAI adaptive training. The best way to fully test a model is to run it dry and let it constantly train. In this case, backtesting would take the exact same amount of time as a dry run.
## Running FreqAI
### Backtesting
The FreqAI backtesting module can be executed with the following command:
```bash
freqtrade backtesting --strategy FreqaiExampleStrategy --config config_freqai.example.json --freqaimodel LightGBMRegressor --timerange 20210501-20210701
```
Backtesting mode requires the user to have the data pre-downloaded (unlike dry/live, where FreqAI automatically downloads the necessary data). The user should be careful to consider that the range of the downloaded data is more than the backtesting range. This is because FreqAI needs data prior to the desired backtesting range in order to train a model to be ready to make predictions on the first candle of the user set backtesting range. More details on how to calculate the data download timerange can be found [here](#deciding-the-sliding-training-window-and-backtesting-duration).
If this command has never been executed with the existing config file, then it will train a new model
for each pair, for each backtesting window within the bigger `--timerange`.
!!! Note "Model reuse"
Once the training is completed, the user can execute this again with the same config file and
FreqAI will find the trained models and load them instead of spending time training. This is useful
if the user wants to tweak (or even hyperopt) buy and sell criteria inside the strategy. IF the user
*wants* to retrain a new model with the same config file, then he/she should simply change the `identifier`.
This way, the user can return to using any model they wish by simply changing the `identifier`.
---
### Building a freqai strategy
The FreqAI strategy requires the user to include the following lines of code in the strategy:
```python
def informative_pairs(self):
whitelist_pairs = self.dp.current_whitelist()
corr_pairs = self.config["freqai"]["feature_parameters"]["include_corr_pairlist"]
informative_pairs = []
for tf in self.config["freqai"]["feature_parameters"]["include_timeframes"]:
for pair in whitelist_pairs:
informative_pairs.append((pair, tf))
for pair in corr_pairs:
if pair in whitelist_pairs:
continue # avoid duplication
informative_pairs.append((pair, tf))
return informative_pairs
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# All indicators must be populated by populate_any_indicators() for live functionality
# to work correctly.
# the model will return all labels created by user in `populate_any_indicators`
# (& appended targets), an indication of whether or not the prediction should be accepted,
# the target mean/std values for each of the labels created by user in
# `populate_any_indicators()` for each training period.
dataframe = self.freqai.start(dataframe, metadata, self)
return dataframe
def populate_any_indicators(
self, pair, df, tf, informative=None, set_generalized_indicators=False
):
"""
Function designed to automatically generate, name and merge features
from user indicated timeframes in the configuration file. User controls the indicators
passed to the training/prediction by prepending indicators with `'%-' + coin `
(see convention below). I.e. user should not prepend any supporting metrics
(e.g. bb_lowerband below) with % unless they explicitly want to pass that metric to the
model.
:param pair: pair to be used as informative
:param df: strategy dataframe which will receive merges from informatives
:param tf: timeframe of the dataframe which will modify the feature names
:param informative: the dataframe associated with the informative pair
:param coin: the name of the coin which will modify the feature names.
"""
coin = pair.split('/')[0]
if informative is None:
informative = self.dp.get_pair_dataframe(pair, tf)
# first loop is automatically duplicating indicators for time periods
for t in self.freqai_info["feature_parameters"]["indicator_periods_candles"]:
t = int(t)
informative[f"%-{coin}rsi-period_{t}"] = ta.RSI(informative, timeperiod=t)
informative[f"%-{coin}mfi-period_{t}"] = ta.MFI(informative, timeperiod=t)
informative[f"%-{coin}adx-period_{t}"] = ta.ADX(informative, window=t)
indicators = [col for col in informative if col.startswith("%")]
# This loop duplicates and shifts all indicators to add a sense of recency to data
for n in range(self.freqai_info["feature_parameters"]["include_shifted_candles"] + 1):
if n == 0:
continue
informative_shift = informative[indicators].shift(n)
informative_shift = informative_shift.add_suffix("_shift-" + str(n))
informative = pd.concat((informative, informative_shift), axis=1)
df = merge_informative_pair(df, informative, self.config["timeframe"], tf, ffill=True)
skip_columns = [
(s + "_" + tf) for s in ["date", "open", "high", "low", "close", "volume"]
]
df = df.drop(columns=skip_columns)
# Add generalized indicators here (because in live, it will call this
# function to populate indicators during training). Notice how we ensure not to
# add them multiple times
if set_generalized_indicators:
# user adds targets here by prepending them with &- (see convention below)
# If user wishes to use multiple targets, a multioutput prediction model
# needs to be used such as templates/CatboostPredictionMultiModel.py
df["&-s_close"] = (
df["close"]
.shift(-self.freqai_info["feature_parameters"]["label_period_candles"])
.rolling(self.freqai_info["feature_parameters"]["label_period_candles"])
.mean()
/ df["close"]
- 1
)
return df
```
Notice how the `populate_any_indicators()` is where the user adds their own features and labels ([more information](#feature-engineering)). See a full example at `templates/FreqaiExampleStrategy.py`.
### Setting classifier targets
FreqAI includes a the `CatboostClassifier` via the flag `--freqaimodel CatboostClassifier`. Typically, the user would set the targets using strings:
```python
df['&s-up_or_down'] = np.where( df["close"].shift(-100) > df["close"], 'up', 'down')
```
### Running the model live
FreqAI can be run dry/live using the following command
```bash
freqtrade trade --strategy FreqaiExampleStrategy --config config_freqai.example.json --freqaimodel LightGBMRegressor
```
By default, FreqAI will not find any existing models and will start by training a new one
given the user configuration settings. Following training, it will use that model to make predictions on incoming candles until a new model is available. New models are typically generated as often as possible, with FreqAI managing an internal queue of the pairs to try and keep all models equally "young." FreqAI will always use the newest trained model to make predictions on incoming live data. If users do not want FreqAI to retrain new models as often as possible, they can set `live_retrain_hours` to tell FreqAI to wait at least that number of hours before retraining a new model. Additionally, users can set `expired_hours` to tell FreqAI to avoid making predictions on models aged over this number of hours.
If the user wishes to start dry/live from a backtested saved model, the user only needs to reuse
the same `identifier` parameter
```json
"freqai": {
"identifier": "example",
"live_retrain_hours": 1
}
```
In this case, although FreqAI will initiate with a
pre-trained model, it will still check to see how much time has elapsed since the model was trained,
and if a full `live_retrain_hours` has elapsed since the end of the loaded model, FreqAI will self retrain.
## Data analysis techniques
### Controlling the model learning process
Model training parameters are unique to the ML library used by the user. FreqAI allows users to set any parameter for any library using the `model_training_parameters` dictionary in the user configuration file. The example configuration files show some of the example parameters associated with `Catboost` and `LightGBM`, but users can add any parameters available in those libraries.
Data split parameters are defined in `data_split_parameters` which can be any parameters associated with `Sklearn`'s `train_test_split()` function. FreqAI includes some additional parameters such `weight_factor` which allows the user to weight more recent data more strongly
than past data via an exponential function:
$$ W_i = \exp(\frac{-i}{\alpha*n}) $$
where $W_i$ is the weight of data point $i$ in a total set of $n$ data points.
![weight-factor](assets/weights_factor.png)
`train_test_split()` has a parameters called `shuffle`, which users also have access to in FreqAI, that allows them to keep the data unshuffled. This is particularly useful to avoid biasing training with temporally auto-correlated data.
Finally, `label_period_candles` defines the offset used for the `labels`. In the present example,
the user is asking for `labels` that are 24 candles in the future.
### Removing outliers with the Dissimilarity Index
The Dissimilarity Index (DI) aims to quantify the uncertainty associated with each
prediction by the model. To do so, FreqAI measures the distance between each training
data point and all other training data points:
$$ d_{ab} = \sqrt{\sum_{j=1}^p(X_{a,j}-X_{b,j})^2} $$
where $d_{ab}$ is the distance between the normalized points $a$ and $b$. $p$
is the number of features i.e. the length of the vector $X$.
The characteristic distance, $\overline{d}$ for a set of training data points is simply the mean
of the average distances:
$$ \overline{d} = \sum_{a=1}^n(\sum_{b=1}^n(d_{ab}/n)/n) $$
$\overline{d}$ quantifies the spread of the training data, which is compared to
the distance between the new prediction feature vectors, $X_k$ and all the training
data:
$$ d_k = \arg \min d_{k,i} $$
which enables the estimation of a Dissimilarity Index:
$$ DI_k = d_k/\overline{d} $$
Equity and crypto markets suffer from a high level of non-patterned noise in the
form of outlier data points. The dissimilarity index allows predictions which
are outliers and not existent in the model feature space, to be thrown out due
to low levels of certainty. Activating the Dissimilarity Index can be achieved with:
```json
"freqai": {
"feature_parameters" : {
"DI_threshold": 1
}
}
```
The user can tweak the DI with `DI_threshold` to increase or decrease the extrapolation of the trained model.
### Reducing data dimensionality with Principal Component Analysis
Users can reduce the dimensionality of their features by activating the `principal_component_analysis`:
```json
"freqai": {
"feature_parameters" : {
"principal_component_analysis": true
}
}
```
Which will perform PCA on the features and reduce the dimensionality of the data so that the explained
variance of the data set is >= 0.999.
### Removing outliers using a Support Vector Machine (SVM)
The user can tell FreqAI to remove outlier data points from the training/test data sets by setting:
```json
"freqai": {
"feature_parameters" : {
"use_SVM_to_remove_outliers": true
}
}
```
FreqAI will train an SVM on the training data (or components if the user activated
`principal_component_analysis`) and remove any data point that it deems to be sitting beyond the feature space.
### Clustering the training data and removing outliers with DBSCAN
The user can configure FreqAI to use DBSCAN to cluster training data and remove outliers from the training data set. The user activates `use_DBSCAN_to_remove_outliers` to cluster training data for identification of outliers. Also used to detect incoming outliers for prediction data points.
```json
"freqai": {
"feature_parameters" : {
"use_DBSCAN_to_remove_outliers": true
}
}
```
### Stratifying the data
The user can stratify the training/testing data using:
```json
"freqai": {
"feature_parameters" : {
"stratify_training_data": 3
}
}
```
which will split the data chronologically so that every Xth data points is a testing data point. In the
present example, the user is asking for every third data point in the dataframe to be used for
testing, the other points are used for training.
## Setting up a follower
The user can define:
```json
"freqai": {
"follow_mode": true,
"identifier": "example"
}
```
to indicate to the bot that it should not train models, but instead should look for models trained
by a leader with the same `identifier`. In this example, the user has a leader bot with the
`identifier: "example"` already running or launching simultaneously as the present follower.
The follower will load models created by the leader and inference them to obtain predictions.
## Purging old model data
FreqAI stores new model files each time it retrains. These files become obsolete as new models
are trained and FreqAI adapts to the new market conditions. Users planning to leave FreqAI running
for extended periods of time with high frequency retraining should set `purge_old_models` in their
config:
```json
"freqai": {
"purge_old_models": true,
}
```
which will automatically purge all models older than the two most recently trained ones.
## Defining model expirations
During dry/live, FreqAI trains each pair sequentially (on separate threads/GPU from the main
Freqtrade bot). This means there is always an age discrepancy between models. If a user is training
on 50 pairs, and each pair requires 5 minutes to train, the oldest model will be over 4 hours old.
This may be undesirable if the characteristic time scale (read trade duration target) for a strategy
is much less than 4 hours. The user can decide to only make trade entries if the model is less than
a certain number of hours in age by setting the `expiration_hours` in the config file:
```json
"freqai": {
"expiration_hours": 0.5,
}
```
In the present example, the user will only allow predictions on models that are less than 1/2 hours
old.
## Choosing the calculation of the `target_roi`
As shown in `templates/FreqaiExampleStrategy.py`, the `target_roi` is based on two metrics computed
by FreqAI: `label_mean` and `label_std`. These are the statistics associated with the labels used
*during the most recent training*.
This allows the model to know what magnitude of a target to be expecting since it is directly stemming from the training data.
By default, FreqAI computes this based on training data and it assumes the labels are Gaussian distributed.
These are big assumptions that the user should consider when creating their labels. If the user wants to consider the population
of *historical predictions* for creating the dynamic target instead of the trained labels, the user
can do so by setting `fit_live_prediction_candles` to the number of historical prediction candles
the user wishes to use to generate target statistics.
```json
"freqai": {
"fit_live_prediction_candles": 300,
}
```
If the user sets this value, FreqAI will initially use the predictions from the training data set
and then subsequently begin introducing real prediction data as it is generated. FreqAI will save
this historical data to be reloaded if the user stops and restarts with the same `identifier`.
## Extra returns per train
Users may find that there are some important metrics that they'd like to return to the strategy at the end of each retrain.
Users can include these metrics by assigning them to `dk.data['extra_returns_per_train']['my_new_value'] = XYZ` inside their custom prediction
model class. FreqAI takes the `my_new_value` assigned in this dictionary and expands it to fit the return dataframe to the strategy.
The user can then use the value in the strategy with `dataframe['my_new_value']`. An example of how this is already used in FreqAI is
the `&*_mean` and `&*_std` values, which indicate the mean and standard deviation of that particular label during the most recent training.
Another example is shown below if the user wants to use live metrics from the trade database.
The user needs to set the standard dictionary in the config so FreqAI can return proper dataframe shapes:
```json
"freqai": {
"extra_returns_per_train": {"total_profit": 4}
}
```
These values will likely be overridden by the user prediction model, but in the case where the user model has yet to set them, or needs
a default initial value - this is the value that will be returned.
## Building an IFreqaiModel
FreqAI has multiple example prediction model based libraries such as `Catboost` regression (`freqai/prediction_models/CatboostRegressor.py`) and `LightGBM` regression.
However, users can customize and create their own prediction models using the `IFreqaiModel` class.
Users are encouraged to inherit `train()` and `predict()` to let them customize various aspects of their training procedures.
## Additional information
### Common pitfalls
FreqAI cannot be combined with `VolumePairlists` (or any pairlist filter that adds and removes pairs dynamically).
This is for performance reasons - FreqAI relies on making quick predictions/retrains. To do this effectively,
it needs to download all the training data at the beginning of a dry/live instance. FreqAI stores and appends
new candles automatically for future retrains. But this means that if new pairs arrive later in the dry run due
to a volume pairlist, it will not have the data ready. FreqAI does work, however, with the `ShufflePairlist`.
### Feature normalization
The feature set created by the user is automatically normalized to the training data only.
This includes all test data and unseen prediction data (dry/live/backtest).
### File structure
`user_data_dir/models/` contains all the data associated with the trainings and backtests.
This file structure is heavily controlled and read by the `FreqaiDataKitchen()`
and should therefore not be modified.
## Credits
FreqAI was developed by a group of individuals who all contributed specific skillsets to the project.
Conception and software development:
Robert Caulk @robcaulk
Theoretical brainstorming:
Elin Törnquist @thorntwig
Code review, software architecture brainstorming:
@xmatthias
Beta testing and bug reporting:
@bloodhunter4rc, Salah Lamkadem @ikonx, @ken11o2, @longyu, @paranoidandy, @smidelis, @smarm
Juha Nykänen @suikula, Wagner Costa @wagnercosta

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -4,36 +4,47 @@ Pairlist Handlers define the list of pairs (pairlist) that the bot should trade.
In your configuration, you can use Static Pairlist (defined by the [`StaticPairList`](#static-pair-list) Pairlist Handler) and Dynamic Pairlist (defined by the [`VolumePairList`](#volume-pair-list) Pairlist Handler).
Additionally, [`AgeFilter`](#agefilter), [`PrecisionFilter`](#precisionfilter), [`PriceFilter`](#pricefilter), [`ShuffleFilter`](#shufflefilter) and [`SpreadFilter`](#spreadfilter) act as Pairlist Filters, removing certain pairs and/or moving their positions in the pairlist.
Additionally, [`AgeFilter`](#agefilter), [`PrecisionFilter`](#precisionfilter), [`PriceFilter`](#pricefilter), [`ShuffleFilter`](#shufflefilter), [`SpreadFilter`](#spreadfilter) and [`VolatilityFilter`](#volatilityfilter) act as Pairlist Filters, removing certain pairs and/or moving their positions in the pairlist.
If multiple Pairlist Handlers are used, they are chained and a combination of all Pairlist Handlers forms the resulting pairlist the bot uses for trading and backtesting. Pairlist Handlers are executed in the sequence they are configured. You should always configure either `StaticPairList` or `VolumePairList` as the starting Pairlist Handler.
Inactive markets are always removed from the resulting pairlist. Explicitly blacklisted pairs (those in the `pair_blacklist` configuration setting) are also always removed from the resulting pairlist.
### Pair blacklist
The pair blacklist (configured via `exchange.pair_blacklist` in the configuration) disallows certain pairs from trading.
This can be as simple as excluding `DOGE/BTC` - which will remove exactly this pair.
The pair-blacklist does also support wildcards (in regex-style) - so `BNB/.*` will exclude ALL pairs that start with BNB.
You may also use something like `.*DOWN/BTC` or `.*UP/BTC` to exclude leveraged tokens (check Pair naming conventions for your exchange!)
### Available Pairlist Handlers
* [`StaticPairList`](#static-pair-list) (default, if not configured differently)
* [`VolumePairList`](#volume-pair-list)
* [`AgeFilter`](#agefilter)
* [`OffsetFilter`](#offsetfilter)
* [`PerformanceFilter`](#performancefilter)
* [`PrecisionFilter`](#precisionfilter)
* [`PriceFilter`](#pricefilter)
* [`ShuffleFilter`](#shufflefilter)
* [`SpreadFilter`](#spreadfilter)
* [`RangeStabilityFilter`](#rangestabilityfilter)
* [`VolatilityFilter`](#volatilityfilter)
!!! Tip "Testing pairlists"
Pairlist configurations can be quite tricky to get right. Best use the [`test-pairlist`](utils.md#test-pairlist) utility sub-command to test your configuration quickly.
#### Static Pair List
By default, the `StaticPairList` method is used, which uses a statically defined pair whitelist from the configuration.
By default, the `StaticPairList` method is used, which uses a statically defined pair whitelist from the configuration. The pairlist also supports wildcards (in regex-style) - so `.*/BTC` will include all pairs with BTC as a stake.
It uses configuration from `exchange.pair_whitelist` and `exchange.pair_blacklist`.
```json
"pairlists": [
{"method": "StaticPairList"}
],
],
```
By default, only currently enabled pairs are allowed.
@@ -41,49 +52,184 @@ To skip pair validation against active markets, set `"allow_inactive": true` wit
This can be useful for backtesting expired pairs (like quarterly spot-markets).
This option must be configured along with `exchange.skip_pair_validation` in the exchange configuration.
When used in a "follow-up" position (e.g. after VolumePairlist), all pairs in `'pair_whitelist'` will be added to the end of the pairlist.
#### Volume Pair List
`VolumePairList` employs sorting/filtering of pairs by their trading volume. It selects `number_assets` top pairs with sorting based on the `sort_key` (which can only be `quoteVolume`).
When used in the chain of Pairlist Handlers in a non-leading position (after StaticPairList and other Pairlist Filters), `VolumePairList` considers outputs of previous Pairlist Handlers, adding its sorting/selection of the pairs by the trading volume.
When used on the leading position of the chain of Pairlist Handlers, it does not consider `pair_whitelist` configuration setting, but selects the top assets from all available markets (with matching stake-currency) on the exchange.
When used in the leading position of the chain of Pairlist Handlers, the `pair_whitelist` configuration setting is ignored. Instead, `VolumePairList` selects the top assets from all available markets with matching stake-currency on the exchange.
The `refresh_period` setting allows to define the period (in seconds), at which the pairlist will be refreshed. Defaults to 1800s (30 minutes).
The pairlist cache (`refresh_period`) on `VolumePairList` is only applicable to generating pairlists.
Filtering instances (not the first position in the list) will not apply any cache and will always use up-to-date data.
`VolumePairList` is based on the ticker data from exchange, as reported by the ccxt library:
`VolumePairList` is per default based on the ticker data from exchange, as reported by the ccxt library:
* The `quoteVolume` is the amount of quote (stake) currency traded (bought or sold) in last 24 hours.
```json
"pairlists": [{
"pairlists": [
{
"method": "VolumePairList",
"number_assets": 20,
"sort_key": "quoteVolume",
"min_value": 0,
"refresh_period": 1800
}],
}
],
```
You can define a minimum volume with `min_value` - which will filter out pairs with a volume lower than the specified value in the specified timerange.
### VolumePairList Advanced mode
`VolumePairList` can also operate in an advanced mode to build volume over a given timerange of specified candle size. It utilizes exchange historical candle data, builds a typical price (calculated by (open+high+low)/3) and multiplies the typical price with every candle's volume. The sum is the `quoteVolume` over the given range. This allows different scenarios, for a more smoothened volume, when using longer ranges with larger candle sizes, or the opposite when using a short range with small candles.
For convenience `lookback_days` can be specified, which will imply that 1d candles will be used for the lookback. In the example below the pairlist would be created based on the last 7 days:
```json
"pairlists": [
{
"method": "VolumePairList",
"number_assets": 20,
"sort_key": "quoteVolume",
"min_value": 0,
"refresh_period": 86400,
"lookback_days": 7
}
],
```
!!! Warning "Range look back and refresh period"
When used in conjunction with `lookback_days` and `lookback_timeframe` the `refresh_period` can not be smaller than the candle size in seconds. As this will result in unnecessary requests to the exchanges API.
!!! Warning "Performance implications when using lookback range"
If used in first position in combination with lookback, the computation of the range based volume can be time and resource consuming, as it downloads candles for all tradable pairs. Hence it's highly advised to use the standard approach with `VolumeFilter` to narrow the pairlist down for further range volume calculation.
??? Tip "Unsupported exchanges (Bittrex, Gemini)"
On some exchanges (like Bittrex and Gemini), regular VolumePairList does not work as the api does not natively provide 24h volume. This can be worked around by using candle data to build the volume.
To roughly simulate 24h volume, you can use the following configuration.
Please note that These pairlists will only refresh once per day.
```json
"pairlists": [
{
"method": "VolumePairList",
"number_assets": 20,
"sort_key": "quoteVolume",
"min_value": 0,
"refresh_period": 86400,
"lookback_days": 1
}
],
```
More sophisticated approach can be used, by using `lookback_timeframe` for candle size and `lookback_period` which specifies the amount of candles. This example will build the volume pairs based on a rolling period of 3 days of 1h candles:
```json
"pairlists": [
{
"method": "VolumePairList",
"number_assets": 20,
"sort_key": "quoteVolume",
"min_value": 0,
"refresh_period": 3600,
"lookback_timeframe": "1h",
"lookback_period": 72
}
],
```
!!! Note
`VolumePairList` does not support backtesting mode.
#### AgeFilter
Removes pairs that have been listed on the exchange for less than `min_days_listed` days (defaults to `10`).
Removes pairs that have been listed on the exchange for less than `min_days_listed` days (defaults to `10`) or more than `max_days_listed` days (defaults `None` mean infinity).
When pairs are first listed on an exchange they can suffer huge price drops and volatility
in the first few days while the pair goes through its price-discovery period. Bots can often
be caught out buying before the pair has finished dropping in price.
This filter allows freqtrade to ignore pairs until they have been listed for at least `min_days_listed` days.
This filter allows freqtrade to ignore pairs until they have been listed for at least `min_days_listed` days and listed before `max_days_listed`.
#### OffsetFilter
Offsets an incoming pairlist by a given `offset` value.
As an example it can be used in conjunction with `VolumeFilter` to remove the top X volume pairs. Or to split a larger pairlist on two bot instances.
Example to remove the first 10 pairs from the pairlist, and takes the next 20 (taking items 10-30 of the initial list):
```json
"pairlists": [
// ...
{
"method": "OffsetFilter",
"offset": 10,
"number_assets": 20
}
],
```
!!! Warning
When `OffsetFilter` is used to split a larger pairlist among multiple bots in combination with `VolumeFilter`
it can not be guaranteed that pairs won't overlap due to slightly different refresh intervals for the
`VolumeFilter`.
!!! Note
An offset larger than the total length of the incoming pairlist will result in an empty pairlist.
#### PerformanceFilter
Sorts pairs by past trade performance, as follows:
1. Positive performance.
2. No closed trades yet.
3. Negative performance.
Trade count is used as a tie breaker.
You can use the `minutes` parameter to only consider performance of the past X minutes (rolling window).
Not defining this parameter (or setting it to 0) will use all-time performance.
The optional `min_profit` (as ratio -> a setting of `0.01` corresponds to 1%) parameter defines the minimum profit a pair must have to be considered.
Pairs below this level will be filtered out.
Using this parameter without `minutes` is highly discouraged, as it can lead to an empty pairlist without a way to recover.
```json
"pairlists": [
// ...
{
"method": "PerformanceFilter",
"minutes": 1440, // rolling 24h
"min_profit": 0.01 // minimal profit 1%
}
],
```
As this Filter uses past performance of the bot, it'll have some startup-period - and should only be used after the bot has a few 100 trades in the database.
!!! Warning "Backtesting"
`PerformanceFilter` does not support backtesting mode.
#### PrecisionFilter
Filters low-value coins which would not allow setting stoplosses.
!!! Warning "Backtesting"
`PrecisionFilter` does not support backtesting mode using multiple strategies.
#### PriceFilter
The `PriceFilter` allows filtering of pairs by price. Currently the following price filters are supported:
* `min_price`
* `max_price`
* `max_value`
* `low_price_ratio`
The `min_price` setting removes pairs where the price is below the specified price. This is useful if you wish to avoid trading very low-priced pairs.
@@ -92,10 +238,15 @@ This option is disabled by default, and will only apply if set to > 0.
The `max_price` setting removes pairs where the price is above the specified price. This is useful if you wish to trade only low-priced pairs.
This option is disabled by default, and will only apply if set to > 0.
The `max_value` setting removes pairs where the minimum value change is above a specified value.
This is useful when an exchange has unbalanced limits. For example, if step-size = 1 (so you can only buy 1, or 2, or 3, but not 1.1 Coins) - and the price is pretty high (like 20\$) as the coin has risen sharply since the last limit adaption.
As a result of the above, you can only buy for 20\$, or 40\$ - but not for 25\$.
On exchanges that deduct fees from the receiving currency (e.g. FTX) - this can result in high value coins / amounts that are unsellable as the amount is slightly below the limit.
The `low_price_ratio` setting removes pairs where a raise of 1 price unit (pip) is above the `low_price_ratio` ratio.
This option is disabled by default, and will only apply if set to > 0.
For `PriceFiler` at least one of its `min_price`, `max_price` or `low_price_ratio` settings must be applied.
For `PriceFilter` at least one of its `min_price`, `max_price` or `low_price_ratio` settings must be applied.
Calculation example:
@@ -109,7 +260,7 @@ Min price precision for SHITCOIN/BTC is 8 decimals. If its price is 0.00000011 -
Shuffles (randomizes) pairs in the pairlist. It can be used for preventing the bot from trading some of the pairs more frequently then others when you want all pairs be treated with the same priority.
!!! Tip
You may set the `seed` value for this Pairlist to obtain reproducible results, which can be useful for repeated backtesting sessions. If `seed` is not set, the pairs are shuffled in the non-repeatable random order.
You may set the `seed` value for this Pairlist to obtain reproducible results, which can be useful for repeated backtesting sessions. If `seed` is not set, the pairs are shuffled in the non-repeatable random order. ShuffleFilter will automatically detect runmodes and apply the `seed` only for backtesting modes - if a `seed` value is set.
#### SpreadFilter
@@ -121,10 +272,10 @@ If `DOGE/BTC` maximum bid is 0.00000026 and minimum ask is 0.00000027, the ratio
#### RangeStabilityFilter
Removes pairs where the difference between lowest low and highest high over `lookback_days` days is below `min_rate_of_change`. Since this is a filter that requires additional data, the results are cached for `refresh_period`.
Removes pairs where the difference between lowest low and highest high over `lookback_days` days is below `min_rate_of_change` or above `max_rate_of_change`. Since this is a filter that requires additional data, the results are cached for `refresh_period`.
In the below example:
If the trading range over the last 10 days is <1%, remove the pair from the whitelist.
If the trading range over the last 10 days is <1% or >99%, remove the pair from the whitelist.
```json
"pairlists": [
@@ -132,6 +283,7 @@ If the trading range over the last 10 days is <1%, remove the pair from the whit
"method": "RangeStabilityFilter",
"lookback_days": 10,
"min_rate_of_change": 0.01,
"max_rate_of_change": 0.99,
"refresh_period": 1440
}
]
@@ -139,10 +291,34 @@ If the trading range over the last 10 days is <1%, remove the pair from the whit
!!! Tip
This Filter can be used to automatically remove stable coin pairs, which have a very low trading range, and are therefore extremely difficult to trade with profit.
Additionally, it can also be used to automatically remove pairs with extreme high/low variance over a given amount of time.
#### VolatilityFilter
Volatility is the degree of historical variation of a pairs over time, it is measured by the standard deviation of logarithmic daily returns. Returns are assumed to be normally distributed, although actual distribution might be different. In a normal distribution, 68% of observations fall within one standard deviation and 95% of observations fall within two standard deviations. Assuming a volatility of 0.05 means that the expected returns for 20 out of 30 days is expected to be less than 5% (one standard deviation). Volatility is a positive ratio of the expected deviation of return and can be greater than 1.00. Please refer to the wikipedia definition of [`volatility`](https://en.wikipedia.org/wiki/Volatility_(finance)).
This filter removes pairs if the average volatility over a `lookback_days` days is below `min_volatility` or above `max_volatility`. Since this is a filter that requires additional data, the results are cached for `refresh_period`.
This filter can be used to narrow down your pairs to a certain volatility or avoid very volatile pairs.
In the below example:
If the volatility over the last 10 days is not in the range of 0.05-0.50, remove the pair from the whitelist. The filter is applied every 24h.
```json
"pairlists": [
{
"method": "VolatilityFilter",
"lookback_days": 10,
"min_volatility": 0.05,
"max_volatility": 0.50,
"refresh_period": 86400
}
]
```
### Full example of Pairlist Handlers
The below example blacklists `BNB/BTC`, uses `VolumePairList` with `20` assets, sorting pairs by `quoteVolume` and applies both [`PrecisionFilter`](#precisionfilter) and [`PriceFilter`](#price-filter), filtering all assets where 1 price unit is > 1%. Then the `SpreadFilter` is applied and pairs are finally shuffled with the random seed set to some predefined value.
The below example blacklists `BNB/BTC`, uses `VolumePairList` with `20` assets, sorting pairs by `quoteVolume` and applies [`PrecisionFilter`](#precisionfilter) and [`PriceFilter`](#pricefilter), filtering all assets where 1 price unit is > 1%. Then the [`SpreadFilter`](#spreadfilter) and [`VolatilityFilter`](#volatilityfilter) is applied and pairs are finally shuffled with the random seed set to some predefined value.
```json
"exchange": {
@@ -153,7 +329,7 @@ The below example blacklists `BNB/BTC`, uses `VolumePairList` with `20` assets,
{
"method": "VolumePairList",
"number_assets": 20,
"sort_key": "quoteVolume",
"sort_key": "quoteVolume"
},
{"method": "AgeFilter", "min_days_listed": 10},
{"method": "PrecisionFilter"},
@@ -165,6 +341,13 @@ The below example blacklists `BNB/BTC`, uses `VolumePairList` with `20` assets,
"min_rate_of_change": 0.01,
"refresh_period": 1440
},
{
"method": "VolatilityFilter",
"lookback_days": 10,
"min_volatility": 0.05,
"max_volatility": 0.50,
"refresh_period": 86400
},
{"method": "ShuffleFilter", "seed": 42}
],
],
```

146
docs/includes/pricing.md Normal file
View File

@@ -0,0 +1,146 @@
## Prices used for orders
Prices for regular orders can be controlled via the parameter structures `entry_pricing` for trade entries and `exit_pricing` for trade exits.
Prices are always retrieved right before an order is placed, either by querying the exchange tickers or by using the orderbook data.
!!! Note
Orderbook data used by Freqtrade are the data retrieved from exchange by the ccxt's function `fetch_order_book()`, i.e. are usually data from the L2-aggregated orderbook, while the ticker data are the structures returned by the ccxt's `fetch_ticker()`/`fetch_tickers()` functions. Refer to the ccxt library [documentation](https://github.com/ccxt/ccxt/wiki/Manual#market-data) for more details.
!!! Warning "Using market orders"
Please read the section [Market order pricing](#market-order-pricing) section when using market orders.
### Entry price
#### Enter price side
The configuration setting `entry_pricing.price_side` defines the side of the orderbook the bot looks for when buying.
The following displays an orderbook.
``` explanation
...
103
102
101 # ask
-------------Current spread
99 # bid
98
97
...
```
If `entry_pricing.price_side` is set to `"bid"`, then the bot will use 99 as entry price.
In line with that, if `entry_pricing.price_side` is set to `"ask"`, then the bot will use 101 as entry price.
Depending on the order direction (_long_/_short_), this will lead to different results. Therefore we recommend to use `"same"` or `"other"` for this configuration instead.
This would result in the following pricing matrix:
| direction | Order | setting | price | crosses spread |
|------ |--------|-----|-----|-----|
| long | buy | ask | 101 | yes |
| long | buy | bid | 99 | no |
| long | buy | same | 99 | no |
| long | buy | other | 101 | yes |
| short | sell | ask | 101 | no |
| short | sell | bid | 99 | yes |
| short | sell | same | 101 | no |
| short | sell | other | 99 | yes |
Using the other side of the orderbook often guarantees quicker filled orders, but the bot can also end up paying more than what would have been necessary.
Taker fees instead of maker fees will most likely apply even when using limit buy orders.
Also, prices at the "other" side of the spread are higher than prices at the "bid" side in the orderbook, so the order behaves similar to a market order (however with a maximum price).
#### Entry price with Orderbook enabled
When entering a trade with the orderbook enabled (`entry_pricing.use_order_book=True`), Freqtrade fetches the `entry_pricing.order_book_top` entries from the orderbook and uses the entry specified as `entry_pricing.order_book_top` on the configured side (`entry_pricing.price_side`) of the orderbook. 1 specifies the topmost entry in the orderbook, while 2 would use the 2nd entry in the orderbook, and so on.
#### Entry price without Orderbook enabled
The following section uses `side` as the configured `entry_pricing.price_side` (defaults to `"same"`).
When not using orderbook (`entry_pricing.use_order_book=False`), Freqtrade uses the best `side` price from the ticker if it's below the `last` traded price from the ticker. Otherwise (when the `side` price is above the `last` price), it calculates a rate between `side` and `last` price based on `entry_pricing.price_last_balance`.
The `entry_pricing.price_last_balance` configuration parameter controls this. A value of `0.0` will use `side` price, while `1.0` will use the `last` price and values between those interpolate between ask and last price.
#### Check depth of market
When check depth of market is enabled (`entry_pricing.check_depth_of_market.enabled=True`), the entry signals are filtered based on the orderbook depth (sum of all amounts) for each orderbook side.
Orderbook `bid` (buy) side depth is then divided by the orderbook `ask` (sell) side depth and the resulting delta is compared to the value of the `entry_pricing.check_depth_of_market.bids_to_ask_delta` parameter. The entry order is only executed if the orderbook delta is greater than or equal to the configured delta value.
!!! Note
A delta value below 1 means that `ask` (sell) orderbook side depth is greater than the depth of the `bid` (buy) orderbook side, while a value greater than 1 means opposite (depth of the buy side is higher than the depth of the sell side).
### Exit price
#### Exit price side
The configuration setting `exit_pricing.price_side` defines the side of the spread the bot looks for when exiting a trade.
The following displays an orderbook:
``` explanation
...
103
102
101 # ask
-------------Current spread
99 # bid
98
97
...
```
If `exit_pricing.price_side` is set to `"ask"`, then the bot will use 101 as exiting price.
In line with that, if `exit_pricing.price_side` is set to `"bid"`, then the bot will use 99 as exiting price.
Depending on the order direction (_long_/_short_), this will lead to different results. Therefore we recommend to use `"same"` or `"other"` for this configuration instead.
This would result in the following pricing matrix:
| Direction | Order | setting | price | crosses spread |
|------ |--------|-----|-----|-----|
| long | sell | ask | 101 | no |
| long | sell | bid | 99 | yes |
| long | sell | same | 101 | no |
| long | sell | other | 99 | yes |
| short | buy | ask | 101 | yes |
| short | buy | bid | 99 | no |
| short | buy | same | 99 | no |
| short | buy | other | 101 | yes |
#### Exit price with Orderbook enabled
When exiting with the orderbook enabled (`exit_pricing.use_order_book=True`), Freqtrade fetches the `exit_pricing.order_book_top` entries in the orderbook and uses the entry specified as `exit_pricing.order_book_top` from the configured side (`exit_pricing.price_side`) as trade exit price.
1 specifies the topmost entry in the orderbook, while 2 would use the 2nd entry in the orderbook, and so on.
#### Exit price without Orderbook enabled
The following section uses `side` as the configured `exit_pricing.price_side` (defaults to `"ask"`).
When not using orderbook (`exit_pricing.use_order_book=False`), Freqtrade uses the best `side` price from the ticker if it's above the `last` traded price from the ticker. Otherwise (when the `side` price is below the `last` price), it calculates a rate between `side` and `last` price based on `exit_pricing.price_last_balance`.
The `exit_pricing.price_last_balance` configuration parameter controls this. A value of `0.0` will use `side` price, while `1.0` will use the last price and values between those interpolate between `side` and last price.
### Market order pricing
When using market orders, prices should be configured to use the "correct" side of the orderbook to allow realistic pricing detection.
Assuming both entry and exits are using market orders, a configuration similar to the following must be used
``` jsonc
"order_types": {
"entry": "market",
"exit": "market"
// ...
},
"entry_pricing": {
"price_side": "other",
// ...
},
"exit_pricing":{
"price_side": "other",
// ...
},
```
Obviously, if only one side is using limit orders, different pricing combinations can be used.

View File

@@ -0,0 +1,198 @@
## Protections
!!! Warning "Beta feature"
This feature is still in it's testing phase. Should you notice something you think is wrong please let us know via Discord or via Github Issue.
Protections will protect your strategy from unexpected events and market conditions by temporarily stop trading for either one pair, or for all pairs.
All protection end times are rounded up to the next candle to avoid sudden, unexpected intra-candle buys.
!!! Note
Not all Protections will work for all strategies, and parameters will need to be tuned for your strategy to improve performance.
!!! Tip
Each Protection can be configured multiple times with different parameters, to allow different levels of protection (short-term / long-term).
!!! Note "Backtesting"
Protections are supported by backtesting and hyperopt, but must be explicitly enabled by using the `--enable-protections` flag.
!!! Warning "Setting protections from the configuration"
Setting protections from the configuration via `"protections": [],` key should be considered deprecated and will be removed in a future version.
It is also no longer guaranteed that your protections apply to the strategy in cases where the strategy defines [protections as property](hyperopt.md#optimizing-protections).
### Available Protections
* [`StoplossGuard`](#stoploss-guard) Stop trading if a certain amount of stoploss occurred within a certain time window.
* [`MaxDrawdown`](#maxdrawdown) Stop trading if max-drawdown is reached.
* [`LowProfitPairs`](#low-profit-pairs) Lock pairs with low profits
* [`CooldownPeriod`](#cooldown-period) Don't enter a trade right after selling a trade.
### Common settings to all Protections
| Parameter| Description |
|------------|-------------|
| `method` | Protection name to use. <br> **Datatype:** String, selected from [available Protections](#available-protections)
| `stop_duration_candles` | For how many candles should the lock be set? <br> **Datatype:** Positive integer (in candles)
| `stop_duration` | how many minutes should protections be locked. <br>Cannot be used together with `stop_duration_candles`. <br> **Datatype:** Float (in minutes)
| `lookback_period_candles` | Only trades that completed within the last `lookback_period_candles` candles will be considered. This setting may be ignored by some Protections. <br> **Datatype:** Positive integer (in candles).
| `lookback_period` | Only trades that completed after `current_time - lookback_period` will be considered. <br>Cannot be used together with `lookback_period_candles`. <br>This setting may be ignored by some Protections. <br> **Datatype:** Float (in minutes)
| `trade_limit` | Number of trades required at minimum (not used by all Protections). <br> **Datatype:** Positive integer
!!! Note "Durations"
Durations (`stop_duration*` and `lookback_period*` can be defined in either minutes or candles).
For more flexibility when testing different timeframes, all below examples will use the "candle" definition.
#### Stoploss Guard
`StoplossGuard` selects all trades within `lookback_period` in minutes (or in candles when using `lookback_period_candles`).
If `trade_limit` or more trades resulted in stoploss, trading will stop for `stop_duration` in minutes (or in candles when using `stop_duration_candles`).
This applies across all pairs, unless `only_per_pair` is set to true, which will then only look at one pair at a time.
Similarly, this protection will by default look at all trades (long and short). For futures bots, setting `only_per_side` will make the bot only consider one side, and will then only lock this one side, allowing for example shorts to continue after a series of long stoplosses.
`required_profit` will determine the required relative profit (or loss) for stoplosses to consider. This should normally not be set and defaults to 0.0 - which means all losing stoplosses will be triggering a block.
The below example stops trading for all pairs for 4 candles after the last trade if the bot hit stoploss 4 times within the last 24 candles.
``` python
@property
def protections(self):
return [
{
"method": "StoplossGuard",
"lookback_period_candles": 24,
"trade_limit": 4,
"stop_duration_candles": 4,
"required_profit": 0.0,
"only_per_pair": False,
"only_per_side": False
}
]
```
!!! Note
`StoplossGuard` considers all trades with the results `"stop_loss"`, `"stoploss_on_exchange"` and `"trailing_stop_loss"` if the resulting profit was negative.
`trade_limit` and `lookback_period` will need to be tuned for your strategy.
#### MaxDrawdown
`MaxDrawdown` uses all trades within `lookback_period` in minutes (or in candles when using `lookback_period_candles`) to determine the maximum drawdown. If the drawdown is below `max_allowed_drawdown`, trading will stop for `stop_duration` in minutes (or in candles when using `stop_duration_candles`) after the last trade - assuming that the bot needs some time to let markets recover.
The below sample stops trading for 12 candles if max-drawdown is > 20% considering all pairs - with a minimum of `trade_limit` trades - within the last 48 candles. If desired, `lookback_period` and/or `stop_duration` can be used.
``` python
@property
def protections(self):
return [
{
"method": "MaxDrawdown",
"lookback_period_candles": 48,
"trade_limit": 20,
"stop_duration_candles": 12,
"max_allowed_drawdown": 0.2
},
]
```
#### Low Profit Pairs
`LowProfitPairs` uses all trades for a pair within `lookback_period` in minutes (or in candles when using `lookback_period_candles`) to determine the overall profit ratio.
If that ratio is below `required_profit`, that pair will be locked for `stop_duration` in minutes (or in candles when using `stop_duration_candles`).
For futures bots, setting `only_per_side` will make the bot only consider one side, and will then only lock this one side, allowing for example shorts to continue after a series of long losses.
The below example will stop trading a pair for 60 minutes if the pair does not have a required profit of 2% (and a minimum of 2 trades) within the last 6 candles.
``` python
@property
def protections(self):
return [
{
"method": "LowProfitPairs",
"lookback_period_candles": 6,
"trade_limit": 2,
"stop_duration": 60,
"required_profit": 0.02,
"only_per_pair": False,
}
]
```
#### Cooldown Period
`CooldownPeriod` locks a pair for `stop_duration` in minutes (or in candles when using `stop_duration_candles`) after selling, avoiding a re-entry for this pair for `stop_duration` minutes.
The below example will stop trading a pair for 2 candles after closing a trade, allowing this pair to "cool down".
``` python
@property
def protections(self):
return [
{
"method": "CooldownPeriod",
"stop_duration_candles": 2
}
]
```
!!! Note
This Protection applies only at pair-level, and will never lock all pairs globally.
This Protection does not consider `lookback_period` as it only looks at the latest trade.
### Full example of Protections
All protections can be combined at will, also with different parameters, creating a increasing wall for under-performing pairs.
All protections are evaluated in the sequence they are defined.
The below example assumes a timeframe of 1 hour:
* Locks each pair after selling for an additional 5 candles (`CooldownPeriod`), giving other pairs a chance to get filled.
* Stops trading for 4 hours (`4 * 1h candles`) if the last 2 days (`48 * 1h candles`) had 20 trades, which caused a max-drawdown of more than 20%. (`MaxDrawdown`).
* Stops trading if more than 4 stoploss occur for all pairs within a 1 day (`24 * 1h candles`) limit (`StoplossGuard`).
* Locks all pairs that had 4 Trades within the last 6 hours (`6 * 1h candles`) with a combined profit ratio of below 0.02 (<2%) (`LowProfitPairs`).
* Locks all pairs for 2 candles that had a profit of below 0.01 (<1%) within the last 24h (`24 * 1h candles`), a minimum of 4 trades.
``` python
from freqtrade.strategy import IStrategy
class AwesomeStrategy(IStrategy)
timeframe = '1h'
@property
def protections(self):
return [
{
"method": "CooldownPeriod",
"stop_duration_candles": 5
},
{
"method": "MaxDrawdown",
"lookback_period_candles": 48,
"trade_limit": 20,
"stop_duration_candles": 4,
"max_allowed_drawdown": 0.2
},
{
"method": "StoplossGuard",
"lookback_period_candles": 24,
"trade_limit": 4,
"stop_duration_candles": 2,
"only_per_pair": False
},
{
"method": "LowProfitPairs",
"lookback_period_candles": 6,
"trade_limit": 2,
"stop_duration_candles": 60,
"required_profit": 0.02
},
{
"method": "LowProfitPairs",
"lookback_period_candles": 24,
"trade_limit": 4,
"stop_duration_candles": 2,
"required_profit": 0.01
}
]
# ...
```

View File

@@ -1,20 +1,17 @@
# Freqtrade
![freqtrade](assets/freqtrade_poweredby.svg)
[![Freqtrade CI](https://github.com/freqtrade/freqtrade/workflows/Freqtrade%20CI/badge.svg)](https://github.com/freqtrade/freqtrade/actions/)
[![Coverage Status](https://coveralls.io/repos/github/freqtrade/freqtrade/badge.svg?branch=develop&service=github)](https://coveralls.io/github/freqtrade/freqtrade?branch=develop)
[![Maintainability](https://api.codeclimate.com/v1/badges/5737e6d668200b7518ff/maintainability)](https://codeclimate.com/github/freqtrade/freqtrade/maintainability)
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/freqtrade/freqtrade" data-icon="octicon-star" data-size="large" aria-label="Star freqtrade/freqtrade on GitHub">Star</a>
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/freqtrade/freqtrade/fork" data-icon="octicon-repo-forked" data-size="large" aria-label="Fork freqtrade/freqtrade on GitHub">Fork</a>
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/freqtrade/freqtrade/archive/stable.zip" data-icon="octicon-cloud-download" data-size="large" aria-label="Download freqtrade/freqtrade on GitHub">Download</a>
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/freqtrade" data-size="large" aria-label="Follow @freqtrade on GitHub">Follow @freqtrade</a>
## Introduction
Freqtrade is a crypto-currency algorithmic trading software developed in python (3.6+) and supported on Windows, macOS and Linux.
Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all major exchanges and be controlled via Telegram or webUI. It contains backtesting, plotting and money management tools as well as strategy optimization by machine learning.
!!! Danger "DISCLAIMER"
This software is for educational purposes only. Do not risk money which you are afraid to lose. USE THE SOFTWARE AT YOUR OWN RISK. THE AUTHORS AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR TRADING RESULTS.
@@ -23,6 +20,8 @@ Freqtrade is a crypto-currency algorithmic trading software developed in python
We strongly recommend you to have basic coding skills and Python knowledge. Do not hesitate to read the source code and understand the mechanisms of this bot, algorithms and techniques implemented in it.
![freqtrade screenshot](assets/freqtrade-screenshot.png)
## Features
- Develop your Strategy: Write your strategy in python, using [pandas](https://pandas.pydata.org/). Example strategies to inspire you are available in the [strategy repository](https://github.com/freqtrade/freqtrade-strategies).
@@ -32,9 +31,37 @@ Freqtrade is a crypto-currency algorithmic trading software developed in python
- Select markets: Create your static list or use an automatic one based on top traded volumes and/or prices (not available during backtesting). You can also explicitly blacklist markets you don't want to trade.
- Run: Test your strategy with simulated money (Dry-Run mode) or deploy it with real money (Live-Trade mode).
- Run using Edge (optional module): The concept is to find the best historical [trade expectancy](edge.md#expectancy) by markets based on variation of the stop-loss and then allow/reject markets to trade. The sizing of the trade is based on a risk of a percentage of your capital.
- Control/Monitor: Use Telegram or a REST API (start/stop the bot, show profit/loss, daily summary, current open trades results, etc.).
- Control/Monitor: Use Telegram or a WebUI (start/stop the bot, show profit/loss, daily summary, current open trades results, etc.).
- Analyse: Further analysis can be performed on either Backtesting data or Freqtrade trading history (SQL database), including automated standard plots, and methods to load the data into [interactive environments](data-analysis.md).
## Supported exchange marketplaces
Please read the [exchange specific notes](exchanges.md) to learn about eventual, special configurations needed for each exchange.
- [X] [Binance](https://www.binance.com/)
- [X] [Bittrex](https://bittrex.com/)
- [X] [FTX](https://ftx.com/#a=2258149)
- [X] [Gate.io](https://www.gate.io/ref/6266643)
- [X] [Huobi](http://huobi.com/)
- [X] [Kraken](https://kraken.com/)
- [X] [OKX](https://okx.com/) (Former OKEX)
- [ ] [potentially many others through <img alt="ccxt" width="30px" src="assets/ccxt-logo.svg" />](https://github.com/ccxt/ccxt/). _(We cannot guarantee they will work)_
### Supported Futures Exchanges (experimental)
- [X] [Binance](https://www.binance.com/)
- [X] [Gate.io](https://www.gate.io/ref/6266643)
- [X] [OKX](https://okx.com/).
Please make sure to read the [exchange specific notes](exchanges.md), as well as the [trading with leverage](leverage.md) documentation before diving in.
### Community tested
Exchanges confirmed working by the community:
- [X] [Bitvavo](https://bitvavo.com/)
- [X] [Kucoin](https://www.kucoin.com/)
## Requirements
### Hardware requirements
@@ -51,7 +78,7 @@ To run this bot we recommend you a linux cloud instance with a minimum of:
Alternatively
- Python 3.6.x
- Python 3.8+
- pip (pip3)
- git
- TA-Lib
@@ -59,14 +86,10 @@ Alternatively
## Support
### Help / Discord / Slack
### Help / Discord
For any questions not covered by the documentation or for further information about the bot, or to simply engage with like-minded individuals, we encourage you to join our slack channel.
Please check out our [discord server](https://discord.gg/MA9v74M).
You can also join our [Slack channel](https://join.slack.com/t/highfrequencybot/shared_invite/zt-jaut7r4m-Y17k4x5mcQES9a9swKuxbg).
For any questions not covered by the documentation or for further information about the bot, or to simply engage with like-minded individuals, we encourage you to join the Freqtrade [discord server](https://discord.gg/p7nuUNVfP7).
## Ready to try?
Begin by reading our installation guide [for docker](docker_quickstart.md) (recommended), or for [installation without docker](installation.md).
Begin by reading the installation guide [for docker](docker_quickstart.md) (recommended), or for [installation without docker](installation.md).

View File

@@ -2,116 +2,83 @@
This page explains how to prepare your environment for running the bot.
Please consider using the prebuilt [docker images](docker.md) to get started quickly while trying out freqtrade evaluating how it operates.
The freqtrade documentation describes various ways to install freqtrade
## Prerequisite
* [Docker images](docker_quickstart.md) (separate page)
* [Script Installation](#script-installation)
* [Manual Installation](#manual-installation)
* [Installation with Conda](#installation-with-conda)
### Requirements
Please consider using the prebuilt [docker images](docker_quickstart.md) to get started quickly while evaluating how freqtrade works.
Click each one for install guide:
------
* [Python >= 3.6.x](http://docs.python-guide.org/en/latest/starting/installation/)
* [pip](https://pip.pypa.io/en/stable/installing/)
* [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
* [virtualenv](https://virtualenv.pypa.io/en/stable/installation.html) (Recommended)
* [TA-Lib](https://mrjbq7.github.io/ta-lib/install.html) (install instructions below)
## Information
We also recommend a [Telegram bot](telegram-usage.md#setup-your-telegram-bot), which is optional but recommended.
For Windows installation, please use the [windows installation guide](windows_installation.md).
The easiest way to install and run Freqtrade is to clone the bot Github repository and then run the `./setup.sh` script, if it's available for your platform.
!!! Note "Version considerations"
When cloning the repository the default working branch has the name `develop`. This branch contains all last features (can be considered as relatively stable, thanks to automated tests).
The `stable` branch contains the code of the last release (done usually once per month on an approximately one week old snapshot of the `develop` branch to prevent packaging bugs, so potentially it's more stable).
!!! Note
Python3.8 or higher and the corresponding `pip` are assumed to be available. The install-script will warn you and stop if that's not the case. `git` is also needed to clone the Freqtrade repository.
Also, python headers (`python<yourversion>-dev` / `python<yourversion>-devel`) must be available for the installation to complete successfully.
!!! Warning "Up-to-date clock"
The clock on the system running the bot must be accurate, synchronized to a NTP server frequently enough to avoid problems with communication to the exchanges.
## Quick start
Freqtrade provides the Linux/MacOS Easy Installation script to install all dependencies and help you configure the bot.
!!! Note
Windows installation is explained [here](#windows).
The easiest way to install and run Freqtrade is to clone the bot Github repository and then run the Easy Installation script, if it's available for your platform.
!!! Note "Version considerations"
When cloning the repository the default working branch has the name `develop`. This branch contains all last features (can be considered as relatively stable, thanks to automated tests). The `stable` branch contains the code of the last release (done usually once per month on an approximately one week old snapshot of the `develop` branch to prevent packaging bugs, so potentially it's more stable).
!!! Note
Python3.6 or higher and the corresponding `pip` are assumed to be available. The install-script will warn you and stop if that's not the case. `git` is also needed to clone the Freqtrade repository.
This can be achieved with the following commands:
```bash
git clone https://github.com/freqtrade/freqtrade.git
cd freqtrade
# git checkout stable # Optional, see (1)
./setup.sh --install
```
(1) This command switches the cloned repository to the use of the `stable` branch. It's not needed if you wish to stay on the `develop` branch. You may later switch between branches at any time with the `git checkout stable`/`git checkout develop` commands.
## Easy Installation Script (Linux/MacOS)
If you are on Debian, Ubuntu or MacOS Freqtrade provides the script to install, update, configure and reset the codebase of your bot.
```bash
$ ./setup.sh
usage:
-i,--install Install freqtrade from scratch
-u,--update Command git pull to update.
-r,--reset Hard reset your develop/stable branch.
-c,--config Easy config generator (Will override your existing file).
```
** --install **
With this option, the script will install the bot and most dependencies:
You will need to have git and python3.6+ installed beforehand for this to work.
* Mandatory software as: `ta-lib`
* Setup your virtualenv under `.env/`
This option is a combination of installation tasks, `--reset` and `--config`.
** --update **
This option will pull the last version of your current branch and update your virtualenv. Run the script with this option periodically to update your bot.
** --reset **
This option will hard reset your branch (only if you are on either `stable` or `develop`) and recreate your virtualenv.
** --config **
DEPRECATED - use `freqtrade new-config -c config.json` instead.
### Activate your virtual environment
Each time you open a new terminal, you must run `source .env/bin/activate`.
------
## Custom Installation
## Requirements
We've included/collected install instructions for Ubuntu 16.04, MacOS, and Windows. These are guidelines and your success may vary with other distros.
These requirements apply to both [Script Installation](#script-installation) and [Manual Installation](#manual-installation).
!!! Note "ARM64 systems"
If you are running an ARM64 system (like a MacOS M1 or an Oracle VM), please use [docker](docker_quickstart.md) to run freqtrade.
While native installation is possible with some manual effort, this is not supported at the moment.
### Install guide
* [Python >= 3.8.x](http://docs.python-guide.org/en/latest/starting/installation/)
* [pip](https://pip.pypa.io/en/stable/installing/)
* [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
* [virtualenv](https://virtualenv.pypa.io/en/stable/installation.html) (Recommended)
* [TA-Lib](https://mrjbq7.github.io/ta-lib/install.html) (install instructions [below](#install-ta-lib))
### Install code
We've included/collected install instructions for Ubuntu, MacOS, and Windows. These are guidelines and your success may vary with other distros.
OS Specific steps are listed first, the [Common](#common) section below is necessary for all systems.
!!! Note
Python3.6 or higher and the corresponding pip are assumed to be available.
Python3.8 or higher and the corresponding pip are assumed to be available.
=== "Ubuntu 16.04"
=== "Debian/Ubuntu"
#### Install necessary dependencies
```bash
# update repository
sudo apt-get update
sudo apt-get install build-essential git
# install packages
sudo apt install -y python3-pip python3-venv python3-dev python3-pandas git curl
```
=== "RaspberryPi/Raspbian"
The following assumes the latest [Raspbian Buster lite image](https://www.raspberrypi.org/downloads/raspbian/) from at least September 2019.
This image comes with python3.7 preinstalled, making it easy to get freqtrade up and running.
The following assumes the latest [Raspbian Buster lite image](https://www.raspberrypi.org/downloads/raspbian/).
This image comes with python3.9 preinstalled, making it easy to get freqtrade up and running.
Tested using a Raspberry Pi 3 with the Raspbian Buster lite image, all updates applied.
``` bash
sudo apt-get install python3-venv libatlas-base-dev
```bash
sudo apt-get install python3-venv libatlas-base-dev cmake curl
# Use pywheels.org to speed up installation
sudo echo "[global]\nextra-index-url=https://www.piwheels.org/simple" > tee /etc/pip.conf
git clone https://github.com/freqtrade/freqtrade.git
cd freqtrade
@@ -120,16 +87,113 @@ OS Specific steps are listed first, the [Common](#common) section below is neces
!!! Note "Installation duration"
Depending on your internet speed and the Raspberry Pi version, installation can take multiple hours to complete.
Due to this, we recommend to use the pre-build docker-image for Raspberry, by following the [Docker quickstart documentation](docker_quickstart.md)
!!! Note
The above does not install hyperopt dependencies. To install these, please use `python3 -m pip install -e .[hyperopt]`.
We do not advise to run hyperopt on a Raspberry Pi, since this is a very resource-heavy operation, which should be done on powerful machine.
### Common
------
#### 1. Install TA-Lib
## Freqtrade repository
Use the provided ta-lib installation script
Freqtrade is an open source crypto-currency trading bot, whose code is hosted on `github.com`
```bash
# Download `develop` branch of freqtrade repository
git clone https://github.com/freqtrade/freqtrade.git
# Enter downloaded directory
cd freqtrade
# your choice (1): novice user
git checkout stable
# your choice (2): advanced user
git checkout develop
```
(1) This command switches the cloned repository to the use of the `stable` branch. It's not needed, if you wish to stay on the (2) `develop` branch.
You may later switch between branches at any time with the `git checkout stable`/`git checkout develop` commands.
??? Note "Install from pypi"
An alternative way to install Freqtrade is from [pypi](https://pypi.org/project/freqtrade/). The downside is that this method requires ta-lib to be correctly installed beforehand, and is therefore currently not the recommended way to install Freqtrade.
``` bash
pip install freqtrade
```
------
## Script Installation
First of the ways to install Freqtrade, is to use provided the Linux/MacOS `./setup.sh` script, which install all dependencies and help you configure the bot.
Make sure you fulfill the [Requirements](#requirements) and have downloaded the [Freqtrade repository](#freqtrade-repository).
### Use /setup.sh -install (Linux/MacOS)
If you are on Debian, Ubuntu or MacOS, freqtrade provides the script to install freqtrade.
```bash
# --install, Install freqtrade from scratch
./setup.sh -i
```
### Activate your virtual environment
Each time you open a new terminal, you must run `source .env/bin/activate` to activate your virtual environment.
```bash
# then activate your .env
source ./.env/bin/activate
```
### Congratulations
[You are ready](#you-are-ready), and run the bot
### Other options of /setup.sh script
You can as well update, configure and reset the codebase of your bot with `./script.sh`
```bash
# --update, Command git pull to update.
./setup.sh -u
# --reset, Hard reset your develop/stable branch.
./setup.sh -r
```
```
** --install **
With this option, the script will install the bot and most dependencies:
You will need to have git and python3.8+ installed beforehand for this to work.
* Mandatory software as: `ta-lib`
* Setup your virtualenv under `.env/`
This option is a combination of installation tasks and `--reset`
** --update **
This option will pull the last version of your current branch and update your virtualenv. Run the script with this option periodically to update your bot.
** --reset **
This option will hard reset your branch (only if you are on either `stable` or `develop`) and recreate your virtualenv.
```
-----
## Manual Installation
Make sure you fulfill the [Requirements](#requirements) and have downloaded the [Freqtrade repository](#freqtrade-repository).
### Install TA-Lib
#### TA-Lib script installation
```bash
sudo ./build_helpers/install_ta-lib.sh
@@ -150,81 +214,209 @@ sed -i.bak "s|0.00000001|0.000000000000000001 |g" src/ta_func/ta_utility.h
./configure --prefix=/usr/local
make
sudo make install
# On debian based systems (debian, ubuntu, ...) - updating ldconfig might be necessary.
sudo ldconfig
cd ..
rm -rf ./ta-lib*
```
!!! Note
An already downloaded version of ta-lib is included in the repository, as the sourceforge.net source seems to have problems frequently.
#### Setup Python virtual environment (virtualenv)
#### 2. Setup your Python virtual environment (virtualenv)
!!! Note
This step is optional but strongly recommended to keep your system organized
You will run freqtrade in separated `virtual environment`
```bash
# create virtualenv in directory /freqtrade/.env
python3 -m venv .env
# run virtualenv
source .env/bin/activate
```
#### 3. Install Freqtrade
Clone the git repository:
#### Install python dependencies
```bash
git clone https://github.com/freqtrade/freqtrade.git
cd freqtrade
git checkout stable
```
#### 4. Install python dependencies
``` bash
python3 -m pip install --upgrade pip
python3 -m pip install -e .
```
#### 5. Initialize the configuration
### Congratulations
```bash
# Initialize the user_directory
freqtrade create-userdir --userdir user_data/
[You are ready](#you-are-ready), and run the bot
# Create a new configuration file
freqtrade new-config --config config.json
```
#### (Optional) Post-installation Tasks
> *To edit the config please refer to [Bot Configuration](configuration.md).*
!!! Note
If you run the bot on a server, you should consider using [Docker](docker_quickstart.md) or a terminal multiplexer like `screen` or [`tmux`](https://en.wikipedia.org/wiki/Tmux) to avoid that the bot is stopped on logout.
#### 6. Run the Bot
If this is the first time you run the bot, ensure you are running it in Dry-run `"dry_run": true,` otherwise it will start to buy and sell coins.
```bash
freqtrade trade -c config.json
```
*Note*: If you run the bot on a server, you should consider using [Docker](docker.md) or a terminal multiplexer like `screen` or [`tmux`](https://en.wikipedia.org/wiki/Tmux) to avoid that the bot is stopped on logout.
#### 7. (Optional) Post-installation Tasks
On Linux, as an optional post-installation task, you may wish to setup the bot to run as a `systemd` service or configure it to send the log messages to the `syslog`/`rsyslog` or `journald` daemons. See [Advanced Logging](advanced-setup.md#advanced-logging) for details.
On Linux with software suite `systemd`, as an optional post-installation task, you may wish to setup the bot to run as a `systemd service` or configure it to send the log messages to the `syslog`/`rsyslog` or `journald` daemons. See [Advanced Logging](advanced-setup.md#advanced-logging) for details.
------
### Anaconda
## Installation with Conda
Freqtrade can also be installed using Anaconda (or Miniconda).
Freqtrade can also be installed with Miniconda or Anaconda. We recommend using Miniconda as it's installation footprint is smaller. Conda will automatically prepare and manage the extensive library-dependencies of the Freqtrade program.
!!! Note
This requires the [ta-lib](#1-install-ta-lib) C-library to be installed first. See below.
### What is Conda?
``` bash
conda env create -f environment.yml
Conda is a package, dependency and environment manager for multiple programming languages: [conda docs](https://docs.conda.io/projects/conda/en/latest/index.html)
### Installation with conda
#### Install Conda
[Installing on linux](https://conda.io/projects/conda/en/latest/user-guide/install/linux.html#install-linux-silent)
[Installing on windows](https://conda.io/projects/conda/en/latest/user-guide/install/windows.html)
Answer all questions. After installation, it is mandatory to turn your terminal OFF and ON again.
#### Freqtrade download
Download and install freqtrade.
```bash
# download freqtrade
git clone https://github.com/freqtrade/freqtrade.git
# enter downloaded directory 'freqtrade'
cd freqtrade
```
#### Freqtrade install: Conda Environment
Prepare conda-freqtrade environment, using file `environment.yml`, which exist in main freqtrade directory
```bash
conda env create -n freqtrade-conda -f environment.yml
```
!!! Note "Creating Conda Environment"
The conda command `create -n` automatically installs all nested dependencies for the selected libraries, general structure of installation command is:
```bash
# choose your own packages
conda env create -n [name of the environment] [python version] [packages]
# point to file with packages
conda env create -n [name of the environment] -f [file]
```
#### Enter/exit freqtrade-conda environment
To check available environments, type
```bash
conda env list
```
Enter installed environment
```bash
# enter conda environment
conda activate freqtrade-conda
# exit conda environment - don't do it now
conda deactivate
```
Install last python dependencies with pip
```bash
python3 -m pip install --upgrade pip
python3 -m pip install -e .
```
Patch conda libta-lib (Linux only)
```bash
# Ensure that the environment is active!
conda activate freqtrade-conda
cd build_helpers
bash install_ta-lib.sh ${CONDA_PREFIX} nosudo
```
### Congratulations
[You are ready](#you-are-ready), and run the bot
### Important shortcuts
```bash
# list installed conda environments
conda env list
# activate base environment
conda activate
# activate freqtrade-conda environment
conda activate freqtrade-conda
#deactivate any conda environments
conda deactivate
```
### Further info on anaconda
!!! Info "New heavy packages"
It may happen that creating a new Conda environment, populated with selected packages at the moment of creation takes less time than installing a large, heavy library or application, into previously set environment.
!!! Warning "pip install within conda"
The documentation of conda says that pip should NOT be used within conda, because internal problems can occur.
However, they are rare. [Anaconda Blogpost](https://www.anaconda.com/blog/using-pip-in-a-conda-environment)
Nevertheless, that is why, the `conda-forge` channel is preferred:
* more libraries are available (less need for `pip`)
* `conda-forge` works better with `pip`
* the libraries are newer
Happy trading!
-----
## Troubleshooting
## You are ready
You've made it this far, so you have successfully installed freqtrade.
### Initialize the configuration
```bash
# Step 1 - Initialize user folder
freqtrade create-userdir --userdir user_data
# Step 2 - Create a new configuration file
freqtrade new-config --config config.json
```
You are ready to run, read [Bot Configuration](configuration.md), remember to start with `dry_run: True` and verify that everything is working.
To learn how to setup your configuration, please refer to the [Bot Configuration](configuration.md) documentation page.
### Start the Bot
```bash
freqtrade trade --config config.json --strategy SampleStrategy
```
!!! Warning
You should read through the rest of the documentation, backtest the strategy you're going to use, and use dry-run before enabling trading with real money.
-----
## Troubleshooting
### Common problem: "command not found"
If you used (1)`Script` or (2)`Manual` installation, you need to run the bot in virtual environment. If you get error as below, make sure venv is active.
```bash
# if:
bash: freqtrade: command not found
# then activate your .env
source ./.env/bin/activate
```
### MacOS installation error
@@ -233,13 +425,8 @@ Newer versions of MacOS may have installation failed with errors like `error: co
This error will require explicit installation of the SDK Headers, which are not installed by default in this version of MacOS.
For MacOS 10.14, this can be accomplished with the below command.
``` bash
```bash
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
```
If this file is inexistent, then you're probably on a different version of MacOS, so you may need to consult the internet for specific resolution details.
-----
Now you have an environment ready, the next step is
[Bot Configuration](configuration.md).

View File

@@ -9,4 +9,4 @@ window.MathJax = {
ignoreHtmlClass: ".*|",
processHtmlClass: "arithmatex"
}
};
};

136
docs/leverage.md Normal file
View File

@@ -0,0 +1,136 @@
# Trading with Leverage
!!! Warning "Beta feature"
This feature is still in it's testing phase. Should you notice something you think is wrong please let us know via Discord or via Github Issue.
!!! Note "Multiple bots on one account"
You can't run 2 bots on the same account with leverage. For leveraged / margin trading, freqtrade assumes it's the only user of the account, and all liquidation levels are calculated based on this assumption.
!!! Danger "Trading with leverage is very risky"
Do not trade with a leverage > 1 using a strategy that hasn't shown positive results in a live run using the spot market. Check the stoploss of your strategy. With a leverage of 2, a stoploss of 0.5 (50%) would be too low, and these trades would be liquidated before reaching that stoploss.
We do not assume any responsibility for eventual losses that occur from using this software or this mode.
Please only use advanced trading modes when you know how freqtrade (and your strategy) works.
Also, never risk more than what you can afford to lose.
Please read the [strategy migration guide](strategy_migration.md#strategy-migration-between-v2-and-v3) to migrate your strategy from a freqtrade v2 strategy, to v3 strategy that can short and trade futures.
## Shorting
Shorting is not possible when trading with [`trading_mode`](#understand-tradingmode) set to `spot`. To short trade, `trading_mode` must be set to `margin`(currently unavailable) or [`futures`](#futures), with [`margin_mode`](#margin-mode) set to `cross`(currently unavailable) or [`isolated`](#isolated-margin-mode)
For a strategy to short, the strategy class must set the class variable `can_short = True`
Please read [strategy customization](strategy-customization.md#entry-signal-rules) for instructions on how to set signals to enter and exit short trades.
## Understand `trading_mode`
The possible values are: `spot` (default), `margin`(*Currently unavailable*) or `futures`.
### Spot
Regular trading mode (low risk)
- Long trades only (No short trades).
- No leverage.
- No Liquidation.
- Profits gained/lost are equal to the change in value of the assets (minus trading fees).
### Leverage trading modes
With leverage, a trader borrows capital from the exchange. The capital must be re-payed fully to the exchange (potentially with interest), and the trader keeps any profits, or pays any losses, from any trades made using the borrowed capital.
Because the capital must always be re-payed, exchanges will **liquidate** (forcefully sell the traders assets) a trade made using borrowed capital when the total value of assets in the leverage account drops to a certain point (a point where the total value of losses is less than the value of the collateral that the trader actually owns in the leverage account), in order to ensure that the trader has enough capital to pay the borrowed assets back to the exchange. The exchange will also charge a **liquidation fee**, adding to the traders losses.
For this reason, **DO NOT TRADE WITH LEVERAGE IF YOU DON'T KNOW EXACTLY WHAT YOUR DOING. LEVERAGE TRADING IS HIGH RISK, AND CAN RESULT IN THE VALUE OF YOUR ASSETS DROPPING TO 0 VERY QUICKLY, WITH NO CHANCE OF INCREASING IN VALUE AGAIN.**
#### Margin (currently unavailable)
Trading occurs on the spot market, but the exchange lends currency to you in an amount equal to the chosen leverage. You pay the amount lent to you back to the exchange with interest, and your profits/losses are multiplied by the leverage specified.
#### Futures
Perpetual swaps (also known as Perpetual Futures) are contracts traded at a price that is closely tied to the underlying asset they are based off of (ex.). You are not trading the actual asset but instead are trading a derivative contract. Perpetual swap contracts can last indefinitely, in contrast to futures or option contracts.
In addition to the gains/losses from the change in price of the futures contract, traders also exchange _funding fees_, which are gains/losses worth an amount that is derived from the difference in price between the futures contract and the underlying asset. The difference in price between a futures contract and the underlying asset varies between exchanges.
To trade in futures markets, you'll have to set `trading_mode` to "futures".
You will also have to pick a "margin mode" (explanation below) - with freqtrade currently only supporting isolated margin.
``` json
"trading_mode": "futures",
"margin_mode": "isolated"
```
### Margin mode
On top of `trading_mode` - you will also have to configure your `margin_mode`.
While freqtrade currently only supports one margin mode, this will change, and by configuring it now you're all set for future updates.
The possible values are: `isolated`, or `cross`(*currently unavailable*).
#### Isolated margin mode
Each market(trading pair), keeps collateral in a separate account
``` json
"margin_mode": "isolated"
```
#### Cross margin mode (currently unavailable)
One account is used to share collateral between markets (trading pairs). Margin is taken from total account balance to avoid liquidation when needed.
``` json
"margin_mode": "cross"
```
## Set leverage to use
Different strategies and risk profiles will require different levels of leverage.
While you could configure one static leverage value - freqtrade offers you the flexibility to adjust this via [strategy leverage callback](strategy-callbacks.md#leverage-callback) - which allows you to use different leverages by pair, or based on some other factor benefitting your strategy result.
If not implemented, leverage defaults to 1x (no leverage).
!!! Warning
Higher leverage also equals higher risk - be sure you fully understand the implications of using leverage!
## Understand `liquidation_buffer`
*Defaults to `0.05`*
A ratio specifying how large of a safety net to place between the liquidation price and the stoploss to prevent a position from reaching the liquidation price.
This artificial liquidation price is calculated as:
`freqtrade_liquidation_price = liquidation_price ± (abs(open_rate - liquidation_price) * liquidation_buffer)`
- `±` = `+` for long trades
- `±` = `-` for short trades
Possible values are any floats between 0.0 and 0.99
**ex:** If a trade is entered at a price of 10 coin/USDT, and the liquidation price of this trade is 8 coin/USDT, then with `liquidation_buffer` set to `0.05` the minimum stoploss for this trade would be $8 + ((10 - 8) * 0.05) = 8 + 0.1 = 8.1$
!!! Danger "A `liquidation_buffer` of 0.0, or a low `liquidation_buffer` is likely to result in liquidations, and liquidation fees"
Currently Freqtrade is able to calculate liquidation prices, but does not calculate liquidation fees. Setting your `liquidation_buffer` to 0.0, or using a low `liquidation_buffer` could result in your positions being liquidated. Freqtrade does not track liquidation fees, so liquidations will result in inaccurate profit/loss results for your bot. If you use a low `liquidation_buffer`, it is recommended to use `stoploss_on_exchange` if your exchange supports this.
## Unavailable funding rates
For futures data, exchanges commonly provide the futures candles, the marks, and the funding rates. However, it is common that whilst candles and marks might be available, the funding rates are not. This can affect backtesting timeranges, i.e. you may only be able to test recent timeranges and not earlier, experiencing the `No data found. Terminating.` error. To get around this, add the `futures_funding_rate` config option as listed in [configuration.md](configuration.md), and it is recommended that you set this to `0`, unless you know a given specific funding rate for your pair, exchange and timerange. Setting this to anything other than `0` can have drastic effects on your profit calculations within strategy, e.g. within the `custom_exit`, `custom_stoploss`, etc functions.
!!! Warning "This will mean your backtests are inaccurate."
This will not overwrite funding rates that are available from the exchange, but bear in mind that setting a false funding rate will mean backtesting results will be inaccurate for historical timeranges where funding rates are not available.
### Developer
#### Margin mode
For shorts, the currency which pays the interest fee for the `borrowed` currency is purchased at the same time of the closing trade (This means that the amount purchased in short closing trades is greater than the amount sold in short opening trades).
For longs, the currency which pays the interest fee for the `borrowed` will already be owned by the user and does not need to be purchased. The interest is subtracted from the `close_value` of the trade.
All Fees are included in `current_profit` calculations during the trade.
#### Futures mode
Funding fees are either added or subtracted from the total amount of a trade

68
docs/overrides/main.html Normal file
View File

@@ -0,0 +1,68 @@
{% extends "base.html" %}
<!-- Navigation -->
{% block site_nav %}
<!-- Main navigation -->
{% if nav %}
{% if page and page.meta and page.meta.hide %}
{% set hidden = "hidden" if "navigation" in page.meta.hide %}
{% endif %}
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" {{ hidden }}>
<div class="md-sidebar__scrollwrap">
<div id="widget-wrapper">
</div>
<div class="md-sidebar__inner">
{% include "partials/nav.html" %}
</div>
</div>
</div>
{% endif %}
<!-- Table of contents -->
{% if page.toc and not "toc.integrate" in features %}
{% if page and page.meta and page.meta.hide %}
{% set hidden = "hidden" if "toc" in page.meta.hide %}
{% endif %}
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" {{ hidden }}>
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
{% include "partials/toc.html" %}
</div>
</div>
</div>
{% endif %}
{% endblock %}
{% block footer %}
{{ super() }}
<!-- Place this tag in your head or just before your close body tag. -->
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<!-- Load binance SDK -->
<script async defer src="https://public.bnbstatic.com/static/js/broker-sdk/broker-sdk@1.0.0.min.js"></script>
<script>
window.onload = function () {
var sidebar = document.getElementById('widget-wrapper')
var newDiv = document.createElement("div");
newDiv.id = "widget";
try {
sidebar.prepend(newDiv);
window.binanceBrokerPortalSdk.initBrokerSDK('#widget', {
apiHost: 'https://www.binance.com',
brokerId: 'R4BD3S82',
slideTime: 4e4,
});
} catch(err) {
console.log(err)
}
}
</script>
{% endblock %}

View File

@@ -1,54 +0,0 @@
<header class="md-header" data-md-component="header">
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="{{ config.site_url | default(nav.homepage.url, true) | url }}" title="{{ config.site_name }}"
class="md-header-nav__button md-logo">
{% if config.theme.logo.icon %}
<i class="md-icon">{{ config.theme.logo.icon }}</i>
{% else %}
<img src="{{ config.theme.logo | url }}" width="24" height="24">
{% endif %}
</a>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
</div>
<div class="md-flex__cell md-flex__cell--stretch">
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
{% block site_name %}
{% if config.site_name == page.title %}
{{ config.site_name }}
{% else %}
<span class="md-header-nav__topic">
{{ config.site_name }}
</span>
<span class="md-header-nav__topic">
{{ page.title }}
</span>
{% endif %}
{% endblock %}
</div>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
{% block search_box %}
{% if "search" in config["plugins"] %}
<label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
{% include "partials/search.html" %}
{% endif %}
{% endblock %}
</div>
{% if config.repo_url %}
<div class="md-flex__cell md-flex__cell--shrink">
<div class="md-header-nav__source">
{% include "partials/source.html" %}
</div>
</div>
{% endif %}
</div>
</nav>
<!-- Place this tag in your head or just before your close body tag. -->
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
</header>

View File

@@ -14,7 +14,7 @@ pip install -U -r requirements-plot.txt
The `freqtrade plot-dataframe` subcommand shows an interactive graph with three subplots:
* Main plot with candlestics and indicators following price (sma/ema)
* Main plot with candlesticks and indicators following price (sma/ema)
* Volume bars
* Additional indicators as specified by `--indicators2`
@@ -37,7 +37,7 @@ usage: freqtrade plot-dataframe [-h] [-v] [--logfile FILE] [-V] [-c PATH]
optional arguments:
-h, --help show this help message and exit
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
Show profits for only these pairs. Pairs are space-
Limit command to these pairs. Pairs are space-
separated.
--indicators1 INDICATORS1 [INDICATORS1 ...]
Set indicators from your strategy you want in the
@@ -65,9 +65,8 @@ optional arguments:
_today.json`
--timerange TIMERANGE
Specify what timerange of data to use.
-i TIMEFRAME, --timeframe TIMEFRAME, --ticker-interval TIMEFRAME
Specify ticker interval (`1m`, `5m`, `30m`, `1h`,
`1d`).
-i TIMEFRAME, --timeframe TIMEFRAME
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
--no-trades Skip using trades from backtesting file and DB.
Common arguments:
@@ -91,12 +90,13 @@ Strategy arguments:
Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
```
Example:
``` bash
freqtrade plot-dataframe -p BTC/ETH
freqtrade plot-dataframe -p BTC/ETH --strategy AwesomeStrategy
```
The `-p/--pairs` argument can be used to specify pairs you would like to plot.
@@ -107,9 +107,6 @@ The `-p/--pairs` argument can be used to specify pairs you would like to plot.
Specify custom indicators.
Use `--indicators1` for the main plot and `--indicators2` for the subplot below (if values are in a different range than prices).
!!! Tip
You will almost certainly want to specify a custom strategy! This can be done by adding `-s Classname` / `--strategy ClassName` to the command.
``` bash
freqtrade plot-dataframe --strategy AwesomeStrategy -p BTC/ETH --indicators1 sma ema --indicators2 macd
```
@@ -164,42 +161,117 @@ The resulting plot will have the following elements:
An advanced plot configuration can be specified in the strategy in the `plot_config` parameter.
Additional features when using plot_config include:
Additional features when using `plot_config` include:
* Specify colors per indicator
* Specify additional subplots
* Specify indicator pairs to fill area in between
The sample plot configuration below specifies fixed colors for the indicators. Otherwise consecutive plots may produce different colorschemes each time, making comparisons difficult.
The sample plot configuration below specifies fixed colors for the indicators. Otherwise, consecutive plots may produce different color schemes each time, making comparisons difficult.
It also allows multiple subplots to display both MACD and RSI at the same time.
Plot type can be configured using `type` key. Possible types are:
* `scatter` corresponding to `plotly.graph_objects.Scatter` class (default).
* `bar` corresponding to `plotly.graph_objects.Bar` class.
Extra parameters to `plotly.graph_objects.*` constructor can be specified in `plotly` dict.
Sample configuration with inline comments explaining the process:
``` python
plot_config = {
'main_plot': {
# Configuration for main plot indicators.
# Specifies `ema10` to be red, and `ema50` to be a shade of gray
'ema10': {'color': 'red'},
'ema50': {'color': '#CCCCCC'},
# By omitting color, a random color is selected.
'sar': {},
@property
def plot_config(self):
"""
There are a lot of solutions how to build the return dictionary.
The only important point is the return value.
Example:
plot_config = {'main_plot': {}, 'subplots': {}}
"""
plot_config = {}
plot_config['main_plot'] = {
# Configuration for main plot indicators.
# Assumes 2 parameters, emashort and emalong to be specified.
f'ema_{self.emashort.value}': {'color': 'red'},
f'ema_{self.emalong.value}': {'color': '#CCCCCC'},
# By omitting color, a random color is selected.
'sar': {},
# fill area between senkou_a and senkou_b
'senkou_a': {
'color': 'green', #optional
'fill_to': 'senkou_b',
'fill_label': 'Ichimoku Cloud', #optional
'fill_color': 'rgba(255,76,46,0.2)', #optional
},
'subplots': {
# Create subplot MACD
"MACD": {
'macd': {'color': 'blue'},
'macdsignal': {'color': 'orange'},
},
# Additional subplot RSI
"RSI": {
'rsi': {'color': 'red'},
}
# plot senkou_b, too. Not only the area to it.
'senkou_b': {}
}
plot_config['subplots'] = {
# Create subplot MACD
"MACD": {
'macd': {'color': 'blue', 'fill_to': 'macdhist'},
'macdsignal': {'color': 'orange'},
'macdhist': {'type': 'bar', 'plotly': {'opacity': 0.9}}
},
# Additional subplot RSI
"RSI": {
'rsi': {'color': 'red'}
}
}
return plot_config
```
??? Note "As attribute (former method)"
Assigning plot_config is also possible as Attribute (this used to be the default way).
This has the disadvantage that strategy parameters are not available, preventing certain configurations from working.
``` python
plot_config = {
'main_plot': {
# Configuration for main plot indicators.
# Specifies `ema10` to be red, and `ema50` to be a shade of gray
'ema10': {'color': 'red'},
'ema50': {'color': '#CCCCCC'},
# By omitting color, a random color is selected.
'sar': {},
# fill area between senkou_a and senkou_b
'senkou_a': {
'color': 'green', #optional
'fill_to': 'senkou_b',
'fill_label': 'Ichimoku Cloud', #optional
'fill_color': 'rgba(255,76,46,0.2)', #optional
},
# plot senkou_b, too. Not only the area to it.
'senkou_b': {}
},
'subplots': {
# Create subplot MACD
"MACD": {
'macd': {'color': 'blue', 'fill_to': 'macdhist'},
'macdsignal': {'color': 'orange'},
'macdhist': {'type': 'bar', 'plotly': {'opacity': 0.9}}
},
# Additional subplot RSI
"RSI": {
'rsi': {'color': 'red'}
}
}
}
```
!!! Note
The above configuration assumes that `ema10`, `ema50`, `macd`, `macdsignal` and `rsi` are columns in the DataFrame created by the strategy.
The above configuration assumes that `ema10`, `ema50`, `senkou_a`, `senkou_b`,
`macd`, `macdsignal`, `macdhist` and `rsi` are columns in the DataFrame created by the strategy.
!!! Warning
`plotly` arguments are only supported with plotly library and will not work with freq-ui.
!!! Note "Trade position adjustments"
If `position_adjustment_enable` / `adjust_trade_position()` is used, the trade initial buy price is averaged over multiple orders and the trade start price will most likely appear outside the candle range.
## Plot profit
@@ -211,6 +283,8 @@ The `plot-profit` subcommand shows an interactive graph with three plots:
* The summarized profit made by backtesting.
Note that this is not the real-world profit, but more of an estimate.
* Profit for each individual pair.
* Parallelism of trades.
* Underwater (Periods of drawdown).
The first graph is good to get a grip of how the overall market progresses.
@@ -220,6 +294,8 @@ This graph will also highlight the start (and end) of the Max drawdown period.
The third graph can be useful to spot outliers, events in pairs that cause profit spikes.
The forth graph can help you analyze trade parallelism, showing how often max_open_trades have been maxed out.
Possible options for the `freqtrade plot-profit` subcommand:
```
@@ -233,14 +309,14 @@ usage: freqtrade plot-profit [-h] [-v] [--logfile FILE] [-V] [-c PATH]
optional arguments:
-h, --help show this help message and exit
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
Show profits for only these pairs. Pairs are space-
Limit command to these pairs. Pairs are space-
separated.
--timerange TIMERANGE
Specify what timerange of data to use.
--export EXPORT Export backtest results, argument are: trades.
Example: `--export=trades`
--export-filename PATH
Save backtest results to the file with this filename.
--export-filename PATH, --backtest-filename PATH
Use backtest results from this filename.
Requires `--export` to be set as well. Example:
`--export-filename=user_data/backtest_results/backtest
_today.json`
@@ -251,9 +327,9 @@ optional arguments:
--trade-source {DB,file}
Specify the source for trades (Can be DB or file
(backtest file)) Default: file
-i TIMEFRAME, --timeframe TIMEFRAME, --ticker-interval TIMEFRAME
Specify ticker interval (`1m`, `5m`, `30m`, `1h`,
`1d`).
-i TIMEFRAME, --timeframe TIMEFRAME
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
--auto-open Automatically open generated plot.
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
@@ -276,6 +352,7 @@ Strategy arguments:
Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
```
The `-p/--pairs` argument, can be used to limit the pairs that are considered for this calculation.

3
docs/plugins.md Normal file
View File

@@ -0,0 +1,3 @@
# Plugins
--8<-- "includes/pairlists.md"
--8<-- "includes/protections.md"

View File

@@ -1,3 +1,6 @@
mkdocs-material==6.1.6
mdx_truly_sane_lists==1.2
pymdown-extensions==8.0.1
markdown==3.3.7
mkdocs==1.3.1
mkdocs-material==8.4.0
mdx_truly_sane_lists==1.3
pymdown-extensions==9.5
jinja2==3.1.2

View File

@@ -1,4 +1,19 @@
# REST API Usage
# REST API & FreqUI
## FreqUI
Freqtrade provides a builtin webserver, which can serve [FreqUI](https://github.com/freqtrade/frequi), the freqtrade UI.
By default, the UI is not included in the installation (except for docker images), and must be installed explicitly with `freqtrade install-ui`.
This same command can also be used to update freqUI, should there be a new release.
Once the bot is started in trade / dry-run mode (with `freqtrade trade`) - the UI will be available under the configured port below (usually `http://127.0.0.1:8080`).
!!! info "Alpha release"
FreqUI is still considered an alpha release - if you encounter bugs or inconsistencies please open a [FreqUI issue](https://github.com/freqtrade/frequi/issues/new/choose).
!!! Note "developers"
Developers should not use this method, but instead use the method described in the [freqUI repository](https://github.com/freqtrade/frequi) to get the source-code of freqUI.
## Configuration
@@ -11,7 +26,8 @@ Sample configuration:
"enabled": true,
"listen_ip_address": "127.0.0.1",
"listen_port": 8080,
"verbosity": "info",
"verbosity": "error",
"enable_openapi": false,
"jwt_secret_key": "somethingrandom",
"CORS_origins": [],
"username": "Freqtrader",
@@ -22,8 +38,10 @@ Sample configuration:
!!! Danger "Security warning"
By default, the configuration listens on localhost only (so it's not reachable from other systems). We strongly recommend to not expose this API to the internet and choose a strong, unique password, since others will potentially be able to control your bot.
!!! Danger "Password selection"
Please make sure to select a very strong, unique password to protect your bot from unauthorized access.
??? Note "API/UI Access on a remote servers"
If you're running on a VPS, you should consider using either a ssh tunnel, or setup a VPN (openVPN, wireguard) to connect to your bot.
This will ensure that freqUI is not directly exposed to the internet, which is not recommended for security reasons (freqUI does not support https out of the box).
Setup of these tools is not part of this tutorial, however many good tutorials can be found on the internet.
You can then access the API by going to `http://127.0.0.1:8080/api/v1/ping` in a browser to check if the API is running correctly.
This should return the response:
@@ -34,16 +52,22 @@ This should return the response:
All other endpoints return sensitive info and require authentication and are therefore not available through a web browser.
To generate a secure password, either use a password manager, or use the below code snipped.
### Security
To generate a secure password, best use a password manager, or use the below code.
``` python
import secrets
secrets.token_hex()
```
!!! Hint
!!! Hint "JWT token"
Use the same method to also generate a JWT secret key (`jwt_secret_key`).
!!! Danger "Password selection"
Please make sure to select a very strong, unique password to protect your bot from unauthorized access.
Also change `jwt_secret_key` to something random (no need to remember this, but it'll be used to encrypt your session, so it better be something unique!).
### Configuration with docker
If you run your bot using docker, you'll need to have the bot listen to incoming connections. The security is then handled by docker.
@@ -52,32 +76,27 @@ If you run your bot using docker, you'll need to have the bot listen to incoming
"api_server": {
"enabled": true,
"listen_ip_address": "0.0.0.0",
"listen_port": 8080
"listen_port": 8080,
"username": "Freqtrader",
"password": "SuperSecret1!",
//...
},
```
Add the following to your docker command:
Make sure that the following 2 lines are available in your docker-compose file:
``` bash
-p 127.0.0.1:8080:8080
```
A complete sample-command may then look as follows:
```bash
docker run -d \
--name freqtrade \
-v ~/.freqtrade/config.json:/freqtrade/config.json \
-v ~/.freqtrade/user_data/:/freqtrade/user_data \
-v ~/.freqtrade/tradesv3.sqlite:/freqtrade/tradesv3.sqlite \
-p 127.0.0.1:8080:8080 \
freqtrade trade --db-url sqlite:///tradesv3.sqlite --strategy MyAwesomeStrategy
```yml
ports:
- "127.0.0.1:8080:8080"
```
!!! Danger "Security warning"
By using `-p 8080:8080` the API is available to everyone connecting to the server under the correct port, so others may be able to control your bot.
By using `8080:8080` in the docker port mapping, the API will be available to everyone connecting to the server under the correct port, so others may be able to control your bot.
## Consuming the API
## Rest API
### Consuming the API
You can consume the API by using the script `scripts/rest_client.py`.
The client script only requires the `requests` module, so Freqtrade does not need to be installed on the system.
@@ -88,14 +107,17 @@ python3 scripts/rest_client.py <command> [optional parameters]
By default, the script assumes `127.0.0.1` (localhost) and port `8080` to be used, however you can specify a configuration file to override this behaviour.
### Minimalistic client config
#### Minimalistic client config
``` json
{
"api_server": {
"enabled": true,
"listen_ip_address": "0.0.0.0",
"listen_port": 8080
"listen_port": 8080,
"username": "Freqtrader",
"password": "SuperSecret1!",
//...
}
}
```
@@ -104,7 +126,7 @@ By default, the script assumes `127.0.0.1` (localhost) and port `8080` to be use
python3 scripts/rest_client.py --config rest_config.json <command> [optional parameters]
```
## Available endpoints
### Available endpoints
| Command | Description |
|----------|-------------|
@@ -113,20 +135,24 @@ python3 scripts/rest_client.py --config rest_config.json <command> [optional par
| `stop` | Stops the trader.
| `stopbuy` | Stops the trader from opening new trades. Gracefully closes open trades according to their rules.
| `reload_config` | Reloads the configuration file.
| `trades` | List last trades.
| `trades` | List last trades. Limited to 500 trades per call.
| `trade/<tradeid>` | Get specific trade.
| `delete_trade <trade_id>` | Remove trade from the database. Tries to close open orders. Requires manual handling of this trade on the exchange.
| `show_config` | Shows part of the current configuration with relevant settings to operation.
| `logs` | Shows last log messages.
| `status` | Lists all open trades.
| `count` | Displays number of trades used and available.
| `locks` | Displays currently locked pairs.
| `delete_lock <lock_id>` | Deletes (disables) the lock by id.
| `profit` | Display a summary of your profit/loss from close trades and some stats about your performance.
| `forcesell <trade_id>` | Instantly sells the given trade (Ignoring `minimum_roi`).
| `forcesell all` | Instantly sells all open trades (Ignoring `minimum_roi`).
| `forcebuy <pair> [rate]` | Instantly buys the given pair. Rate is optional. (`forcebuy_enable` must be set to True)
| `forceexit <trade_id>` | Instantly exits the given trade (Ignoring `minimum_roi`).
| `forceexit all` | Instantly exits all open trades (Ignoring `minimum_roi`).
| `forceenter <pair> [rate]` | Instantly enters the given pair. Rate is optional. (`force_entry_enable` must be set to True)
| `forceenter <pair> <side> [rate]` | Instantly longs or shorts the given pair. Rate is optional. (`force_entry_enable` must be set to True)
| `performance` | Show performance of each finished trade grouped by pair.
| `balance` | Show account balance per currency.
| `daily <n>` | Shows profit or loss per day, over the last n days (n defaults to 7).
| `stats` | Display a summary of profit / loss reasons as well as average holding times.
| `whitelist` | Show the current whitelist.
| `blacklist [pair]` | Show the current blacklist, or adds a pair to the blacklist.
| `edge` | Show validated pairs by Edge if it is enabled.
@@ -168,7 +194,12 @@ count
Return the amount of open trades.
daily
Return the amount of open trades.
Return the profits for each day, and amount of trades.
delete_lock
Delete (disable) lock from the database.
:param lock_id: ID for the lock to delete
delete_trade
Delete trade from the database.
@@ -185,15 +216,25 @@ forcebuy
:param pair: Pair to buy (ETH/BTC)
:param price: Optional - price to buy
forcesell
Force-sell a trade.
forceenter
Force entering a trade
:param pair: Pair to buy (ETH/BTC)
:param side: 'long' or 'short'
:param price: Optional - price to buy
forceexit
Force-exit a trade.
:param tradeid: Id of the trade (can be received via status command)
locks
Return current locks
logs
Show latest logs.
:param limit: Limits log messages to the last <limit> logs. No limit to get all the trades.
:param limit: Limits log messages to the last <limit> logs. No limit to get the entire log.
pair_candles
Return live dataframe for <pair><timeframe>.
@@ -213,6 +254,9 @@ pair_history
performance
Return the performance of the different coins.
ping
simple ping
plot_config
Return plot configuration if the strategy defines one.
@@ -229,6 +273,9 @@ show_config
start
Start the bot if it's in the stopped state.
stats
Return the stats report (durations, sell-reasons).
status
Get the status of open trades.
@@ -246,20 +293,33 @@ strategy
:param strategy: Strategy class name
trades
Return trades history.
sysinfo
Provides system information (CPU, RAM usage)
:param limit: Limits trades to the X last trades. No limit to get all the trades.
trade
Return specific trade
:param trade_id: Specify which trade to get.
trades
Return trades history, sorted by id
:param limit: Limits trades to the X last trades. Max 500 trades.
:param offset: Offset by this amount of trades.
version
Return the version of the bot.
whitelist
Show the current whitelist.
```
## Advanced API usage using JWT tokens
### OpenAPI interface
To enable the builtin openAPI interface (Swagger UI), specify `"enable_openapi": true` in the api_server configuration.
This will enable the Swagger UI at the `/docs` endpoint. By default, that's running at http://localhost:8080/docs/ - but it'll depend on your settings.
### Advanced API usage using JWT tokens
!!! Note
The below should be done in an application (a Freqtrade REST API client, which fetches info via API), and is not intended to be used on a regular basis.
@@ -284,14 +344,17 @@ Since the access token has a short timeout (15 min) - the `token/refresh` reques
{"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODkxMTk5NzQsIm5iZiI6MTU4OTExOTk3NCwianRpIjoiMDBjNTlhMWUtMjBmYS00ZTk0LTliZjAtNWQwNTg2MTdiZDIyIiwiZXhwIjoxNTg5MTIwODc0LCJpZGVudGl0eSI6eyJ1IjoiRnJlcXRyYWRlciJ9LCJmcmVzaCI6ZmFsc2UsInR5cGUiOiJhY2Nlc3MifQ.1seHlII3WprjjclY6DpRhen0rqdF4j6jbvxIhUFaSbs"}
```
## CORS
### CORS
All web-based frontends are subject to [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) - Cross-Origin Resource Sharing.
Since most of the requests to the Freqtrade API must be authenticated, a proper CORS policy is key to avoid security problems.
Also, the standard disallows `*` CORS policies for requests with credentials, so this setting must be set appropriately.
This whole section is only necessary in cross-origin cases (where you multiple bot API's running on `localhost:8081`, `localhost:8082`, ...), and want to combine them into one FreqUI instance.
Users can configure this themselves via the `CORS_origins` configuration setting.
It consists of a list of allowed sites that are allowed to consume resources from the bot's API.
??? info "Technical explanation"
All web-based front-ends are subject to [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) - Cross-Origin Resource Sharing.
Since most of the requests to the Freqtrade API must be authenticated, a proper CORS policy is key to avoid security problems.
Also, the standard disallows `*` CORS policies for requests with credentials, so this setting must be set appropriately.
Users can allow access from different origin URL's to the bot API via the `CORS_origins` configuration setting.
It consists of a list of allowed URL's that are allowed to consume resources from the bot's API.
Assuming your application is deployed as `https://frequi.freqtrade.io/home/` - this would mean that the following configuration becomes necessary:
@@ -304,5 +367,19 @@ Assuming your application is deployed as `https://frequi.freqtrade.io/home/` - t
}
```
In the following (pretty common) case, FreqUI is accessible on `http://localhost:8080/trade` (this is what you see in your navbar when navigating to freqUI).
![freqUI url](assets/frequi_url.png)
The correct configuration for this case is `http://localhost:8080` - the main part of the URL including the port.
```jsonc
{
//...
"jwt_secret_key": "somethingrandom",
"CORS_origins": ["http://localhost:8080"],
//...
}
```
!!! Note
We strongly recommend to also set `jwt_secret_key` to something random and known only to yourself to avoid unauthorized access to your bot.

View File

@@ -6,6 +6,10 @@ With some configuration, freqtrade (in combination with ccxt) provides access to
This document is an overview to configure Freqtrade to be used with sandboxes.
This can be useful to developers and trader alike.
!!! Warning
Sandboxes usually have very low volume, and either a very wide spread, or no orders available at all.
Therefore, sandboxes will usually not do a good job of showing you how a strategy would work in real trading.
## Exchanges known to have a sandbox / testnet
* [binance](https://testnet.binance.vision/)
@@ -100,16 +104,16 @@ To mitigate this, you can try to match the first order on the opposite orderbook
``` jsonc
"order_types": {
"buy": "limit",
"sell": "limit"
"entry": "limit",
"exit": "limit"
// ...
},
"bid_strategy": {
"price_side": "ask",
"entry_pricing": {
"price_side": "other",
// ...
},
"ask_strategy":{
"price_side": "bid",
"exit_pricing":{
"price_side": "other",
// ...
},
```

View File

@@ -19,7 +19,7 @@ The freqtrade docker image does contain sqlite3, so you can edit the database wi
``` bash
docker-compose exec freqtrade /bin/bash
sqlite3 <databasefile>.sqlite
sqlite3 <database-file>.sqlite
```
## Open the DB
@@ -49,14 +49,14 @@ sqlite3
SELECT * FROM trades;
```
## Fix trade still open after a manual sell on the exchange
## Fix trade still open after a manual exit on the exchange
!!! Warning
Manually selling a pair on the exchange will not be detected by the bot and it will try to sell anyway. Whenever possible, forcesell <tradeid> should be used to accomplish the same thing.
Manually selling a pair on the exchange will not be detected by the bot and it will try to sell anyway. Whenever possible, /forceexit <tradeid> should be used to accomplish the same thing.
It is strongly advised to backup your database file before making any manual changes.
!!! Note
This should not be necessary after /forcesell, as forcesell orders are closed automatically by the bot on the next iteration.
This should not be necessary after /forceexit, as force_exit orders are closed automatically by the bot on the next iteration.
```sql
UPDATE trades
@@ -65,7 +65,7 @@ SET is_open=0,
close_rate=<close_rate>,
close_profit = close_rate / open_rate - 1,
close_profit_abs = (amount * <close_rate> * (1 - fee_close) - (amount * (open_rate * (1 - fee_open)))),
sell_reason=<sell_reason>
exit_reason=<exit_reason>
WHERE id=<trade_ID_to_update>;
```
@@ -78,7 +78,7 @@ SET is_open=0,
close_rate=0.19638016,
close_profit=0.0496,
close_profit_abs = (amount * 0.19638016 * (1 - fee_close) - (amount * (open_rate * (1 - fee_open)))),
sell_reason='force_sell'
exit_reason='force_exit'
WHERE id=31;
```
@@ -89,13 +89,50 @@ WHERE id=31;
If you'd still like to remove a trade from the database directly, you can use the below query.
```sql
DELETE FROM trades WHERE id = <tradeid>;
```
!!! Danger
Some systems (Ubuntu) disable foreign keys in their sqlite3 packaging. When using sqlite - please ensure that foreign keys are on by running `PRAGMA foreign_keys = ON` before the above query.
```sql
DELETE FROM trades WHERE id = <tradeid>;
DELETE FROM trades WHERE id = 31;
```
!!! Warning
This will remove this trade from the database. Please make sure you got the correct id and **NEVER** run this query without the `where` clause.
## Use a different database system
Freqtrade is using SQLAlchemy, which supports multiple different database systems. As such, a multitude of database systems should be supported.
Freqtrade does not depend or install any additional database driver. Please refer to the [SQLAlchemy docs](https://docs.sqlalchemy.org/en/14/core/engines.html#database-urls) on installation instructions for the respective database systems.
The following systems have been tested and are known to work with freqtrade:
* sqlite (default)
* PostgreSQL)
* MariaDB
!!! Warning
By using one of the below database systems, you acknowledge that you know how to manage such a system. The freqtrade team will not provide any support with setup or maintenance (or backups) of the below database systems.
### PostgreSQL
Installation:
`pip install psycopg2-binary`
Usage:
`... --db-url postgresql+psycopg2://<username>:<password>@localhost:5432/<database>`
Freqtrade will automatically create the tables necessary upon startup.
If you're running different instances of Freqtrade, you must either setup one database per Instance or use different users / schemas for your connections.
### MariaDB / MySQL
Freqtrade supports MariaDB by using SQLAlchemy, which supports multiple different database systems.
Installation:
`pip install pymysql`
Usage:
`... --db-url mysql+pymysql://<username>:<password>@localhost:3306/<database>`

View File

@@ -2,6 +2,7 @@
The `stoploss` configuration parameter is loss as ratio that should trigger a sale.
For example, value `-0.10` will cause immediate sell if the profit dips below -10% for a given trade. This parameter is optional.
Stoploss calculations do include fees, so a stoploss of -10% is placed exactly 10% below the entry point.
Most of the strategy files already include the optimal `stoploss` value.
@@ -16,21 +17,21 @@ Those stoploss modes can be *on exchange* or *off exchange*.
These modes can be configured with these values:
``` python
'emergencysell': 'market',
'emergency_exit': 'market',
'stoploss_on_exchange': False
'stoploss_on_exchange_interval': 60,
'stoploss_on_exchange_limit_ratio': 0.99
```
!!! Note
Stoploss on exchange is only supported for Binance (stop-loss-limit), Kraken (stop-loss-market, stop-loss-limit) and FTX (stop limit and stop-market) as of now.
Stoploss on exchange is only supported for Binance (stop-loss-limit), Huobi (stop-limit), Kraken (stop-loss-market, stop-loss-limit), FTX (stop limit and stop-market) Gateio (stop-limit), and Kucoin (stop-limit and stop-market) as of now.
<ins>Do not set too low/tight stoploss value if using stop loss on exchange!</ins>
If set to low/tight then you have greater risk of missing fill on the order and stoploss will not work.
### stoploss_on_exchange and stoploss_on_exchange_limit_ratio
Enable or Disable stop loss on exchange.
If the stoploss is *on exchange* it means a stoploss limit order is placed on the exchange immediately after buy order happens successfully. This will protect you against sudden crashes in market as the order will be in the queue immediately and if market goes down then the order has more chance of being fulfilled.
If the stoploss is *on exchange* it means a stoploss limit order is placed on the exchange immediately after buy order fills. This will protect you against sudden crashes in market, as the order execution happens purely within the exchange, and has no potential network overhead.
If `stoploss_on_exchange` uses limit orders, the exchange needs 2 prices, the stoploss_price and the Limit price.
`stoploss` defines the stop-price where the limit order is placed - and limit should be slightly below this.
@@ -51,22 +52,30 @@ The bot cannot do these every 5 seconds (at each iteration), otherwise it would
So this parameter will tell the bot how often it should update the stoploss order. The default value is 60 (1 minute).
This same logic will reapply a stoploss order on the exchange should you cancel it accidentally.
### emergencysell
### force_exit
`emergencysell` is an optional value, which defaults to `market` and is used when creating stop loss on exchange orders fails.
`force_exit` is an optional value, which defaults to the same value as `exit` and is used when sending a `/forceexit` command from Telegram or from the Rest API.
### force_entry
`force_entry` is an optional value, which defaults to the same value as `entry` and is used when sending a `/forceentry` command from Telegram or from the Rest API.
### emergency_exit
`emergency_exit` is an optional value, which defaults to `market` and is used when creating stop loss on exchange orders fails.
The below is the default which is used if not changed in strategy or configuration file.
Example from strategy file:
``` python
order_types = {
'buy': 'limit',
'sell': 'limit',
'emergencysell': 'market',
'stoploss': 'market',
'stoploss_on_exchange': True,
'stoploss_on_exchange_interval': 60,
'stoploss_on_exchange_limit_ratio': 0.99
"entry": "limit",
"exit": "limit",
"emergency_exit": "market",
"stoploss": "market",
"stoploss_on_exchange": True,
"stoploss_on_exchange_interval": 60,
"stoploss_on_exchange_limit_ratio": 0.99
}
```
@@ -78,6 +87,7 @@ At this stage the bot contains the following stoploss support modes:
2. Trailing stop loss.
3. Trailing stop loss, custom positive loss.
4. Trailing stop loss only once the trade has reached a certain offset.
5. [Custom stoploss function](strategy-advanced.md#custom-stoploss)
### Static Stop Loss
@@ -120,7 +130,7 @@ In summary: The stoploss will be adjusted to be always be -10% of the highest ob
### Trailing stop loss, custom positive loss
It is also possible to have a default stop loss, when you are in the red with your buy (buy - fee), but once you hit positive result the system will utilize a new stop loss, which can have a different value.
You could also have a default stop loss when you are in the red with your buy (buy - fee), but once you hit a positive result (or an offset you define) the system will utilize a new stop loss, which can have a different value.
For example, your default stop loss is -10%, but once you have more than 0% profit (example 0.1%) a different trailing stoploss will be used.
!!! Note
@@ -132,6 +142,8 @@ Both values require `trailing_stop` to be set to true and `trailing_stop_positiv
stoploss = -0.10
trailing_stop = True
trailing_stop_positive = 0.02
trailing_stop_positive_offset = 0.0
trailing_only_offset_is_reached = False # Default - not necessary for this example
```
For example, simplified math:
@@ -146,11 +158,31 @@ For example, simplified math:
The 0.02 would translate to a -2% stop loss.
Before this, `stoploss` is used for the trailing stoploss.
!!! Tip "Use an offset to change your stoploss"
Use `trailing_stop_positive_offset` to ensure that your new trailing stoploss will be in profit by setting `trailing_stop_positive_offset` higher than `trailing_stop_positive`. Your first new stoploss value will then already have locked in profits.
Example with simplified math:
``` python
stoploss = -0.10
trailing_stop = True
trailing_stop_positive = 0.02
trailing_stop_positive_offset = 0.03
```
* the bot buys an asset at a price of 100$
* the stop loss is defined at -10%, so the stop loss would get triggered once the asset drops below 90$
* assuming the asset now increases to 102$
* the stoploss will now be at 91.8$ - 10% below the highest observed rate
* assuming the asset now increases to 103.5$ (above the offset configured)
* the stop loss will now be -2% of 103.5$ = 101.43$
* now the asset drops in value to 102\$, the stop loss will still be 101.43$ and would trigger once price breaks below 101.43$
### Trailing stop loss only once the trade has reached a certain offset
It is also possible to use a static stoploss until the offset is reached, and then trail the trade to take profits once the market turns.
You can also keep a static stoploss until the offset is reached, and then trail the trade to take profits once the market turns.
If `"trailing_only_offset_is_reached": true` then the trailing stoploss is only activated once the offset is reached. Until then, the stoploss remains at the configured `stoploss`.
If `trailing_only_offset_is_reached = True` then the trailing stoploss is only activated once the offset is reached. Until then, the stoploss remains at the configured `stoploss`.
This option can be used with or without `trailing_stop_positive`, but uses `trailing_stop_positive_offset` as offset.
``` python
@@ -173,7 +205,7 @@ For example, simplified math:
* the bot buys an asset at a price of 100$
* the stop loss is defined at -10%
* the stop loss would get triggered once the asset drops below 90$
* stoploss will remain at 90$ unless asset increases to or above our configured offset
* stoploss will remain at 90$ unless asset increases to or above the configured offset
* assuming the asset now increases to 103$ (where we have the offset configured)
* the stop loss will now be -2% of 103$ = 100.94$
* now the asset drops in value to 101\$, the stop loss will still be 100.94$ and would trigger at 100.94$
@@ -181,6 +213,18 @@ For example, simplified math:
!!! Tip
Make sure to have this value (`trailing_stop_positive_offset`) lower than minimal ROI, otherwise minimal ROI will apply first and sell the trade.
## Stoploss and Leverage
Stoploss should be thought of as "risk on this trade" - so a stoploss of 10% on a 100$ trade means you are willing to lose 10$ (10%) on this trade - which would trigger if the price moves 10% to the downside.
When using leverage, the same principle is applied - with stoploss defining the risk on the trade (the amount you are willing to lose).
Therefore, a stoploss of 10% on a 10x trade would trigger on a 1% price move.
If your stake amount (own capital) was 100$ - this trade would be 1000$ at 10x (after leverage).
If price moves 1% - you've lost 10$ of your own capital - therfore stoploss will trigger in this case.
Make sure to be aware of this, and avoid using too tight stoploss (at 10x leverage, 10% risk may be too little to allow the trade to "breath" a little).
## Changing stoploss on open trades
A stoploss on an open trade can be changed by changing the value in the configuration or strategy and use the `/reload_config` command (alternatively, completely stopping and restarting the bot also works).

View File

@@ -8,203 +8,145 @@ If you're just getting started, please be familiar with the methods described in
!!! Note
All callback methods described below should only be implemented in a strategy if they are actually used.
## Custom order timeout rules
!!! Tip
You can get a strategy template containing all below methods by running `freqtrade new-strategy --strategy MyAwesomeStrategy --template advanced`
Simple, timebased order-timeouts can be configured either via strategy or in the configuration in the `unfilledtimeout` section.
## Storing information
However, freqtrade also offers a custom callback for both ordertypes, which allows you to decide based on custom criteria if a order did time out or not.
Storing information can be accomplished by creating a new dictionary within the strategy class.
The name of the variable can be chosen at will, but should be prefixed with `cust_` to avoid naming collisions with predefined strategy variables.
```python
class AwesomeStrategy(IStrategy):
# Create custom dictionary
custom_info = {}
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# Check if the entry already exists
if not metadata["pair"] in self.custom_info:
# Create empty entry for this pair
self.custom_info[metadata["pair"]] = {}
if "crosstime" in self.custom_info[metadata["pair"]]:
self.custom_info[metadata["pair"]]["crosstime"] += 1
else:
self.custom_info[metadata["pair"]]["crosstime"] = 1
```
!!! Warning
The data is not persisted after a bot-restart (or config-reload). Also, the amount of data should be kept smallish (no DataFrames and such), otherwise the bot will start to consume a lot of memory and eventually run out of memory and crash.
!!! Note
Unfilled order timeouts are not relevant during backtesting or hyperopt, and are only relevant during real (live) trading. Therefore these methods are only called in these circumstances.
If the data is pair-specific, make sure to use pair as one of the keys in the dictionary.
### Custom order timeout example
## Dataframe access
A simple example, which applies different unfilled-timeouts depending on the price of the asset can be seen below.
It applies a tight timeout for higher priced assets, while allowing more time to fill on cheap coins.
The function must return either `True` (cancel order) or `False` (keep order alive).
You may access dataframe in various strategy functions by querying it from dataprovider.
``` python
from datetime import datetime, timedelta
from freqtrade.persistence import Trade
from freqtrade.exchange import timeframe_to_prev_date
class Awesomestrategy(IStrategy):
class AwesomeStrategy(IStrategy):
def confirm_trade_exit(self, pair: str, trade: 'Trade', order_type: str, amount: float,
rate: float, time_in_force: str, exit_reason: str,
current_time: 'datetime', **kwargs) -> bool:
# Obtain pair dataframe.
dataframe, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe)
# ... populate_* methods
# Obtain last available candle. Do not use current_time to look up latest candle, because
# current_time points to current incomplete candle whose data is not available.
last_candle = dataframe.iloc[-1].squeeze()
# <...>
# Set unfilledtimeout to 25 hours, since our maximum timeout from below is 24 hours.
unfilledtimeout = {
'buy': 60 * 25,
'sell': 60 * 25
}
# In dry/live runs trade open date will not match candle open date therefore it must be
# rounded.
trade_date = timeframe_to_prev_date(self.timeframe, trade.open_date_utc)
# Look up trade candle.
trade_candle = dataframe.loc[dataframe['date'] == trade_date]
# trade_candle may be empty for trades that just opened as it is still incomplete.
if not trade_candle.empty:
trade_candle = trade_candle.squeeze()
# <...>
```
def check_buy_timeout(self, pair: str, trade: 'Trade', order: dict, **kwargs) -> bool:
if trade.open_rate > 100 and trade.open_date < datetime.utcnow() - timedelta(minutes=5):
return True
elif trade.open_rate > 10 and trade.open_date < datetime.utcnow() - timedelta(minutes=3):
return True
elif trade.open_rate < 1 and trade.open_date < datetime.utcnow() - timedelta(hours=24):
return True
return False
!!! Warning "Using .iloc[-1]"
You can use `.iloc[-1]` here because `get_analyzed_dataframe()` only returns candles that backtesting is allowed to see.
This will not work in `populate_*` methods, so make sure to not use `.iloc[]` in that area.
Also, this will only work starting with version 2021.5.
***
## Enter Tag
When your strategy has multiple buy signals, you can name the signal that triggered.
Then you can access you buy signal on `custom_exit`
```python
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[
(
(dataframe['rsi'] < 35) &
(dataframe['volume'] > 0)
),
['enter_long', 'enter_tag']] = (1, 'buy_signal_rsi')
return dataframe
def custom_exit(self, pair: str, trade: Trade, current_time: datetime, current_rate: float,
current_profit: float, **kwargs):
dataframe, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe)
last_candle = dataframe.iloc[-1].squeeze()
if trade.enter_tag == 'buy_signal_rsi' and last_candle['rsi'] > 80:
return 'sell_signal_rsi'
return None
def check_sell_timeout(self, pair: str, trade: 'Trade', order: dict, **kwargs) -> bool:
if trade.open_rate > 100 and trade.open_date < datetime.utcnow() - timedelta(minutes=5):
return True
elif trade.open_rate > 10 and trade.open_date < datetime.utcnow() - timedelta(minutes=3):
return True
elif trade.open_rate < 1 and trade.open_date < datetime.utcnow() - timedelta(hours=24):
return True
return False
```
!!! Note
For the above example, `unfilledtimeout` must be set to something bigger than 24h, otherwise that type of timeout will apply first.
`enter_tag` is limited to 100 characters, remaining data will be truncated.
### Custom order timeout example (using additional data)
## Exit tag
Similar to [Buy Tagging](#buy-tag), you can also specify a sell tag.
``` python
from datetime import datetime
from freqtrade.persistence import Trade
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[
(
(dataframe['rsi'] > 70) &
(dataframe['volume'] > 0)
),
['exit_long', 'exit_tag']] = (1, 'exit_rsi')
class Awesomestrategy(IStrategy):
# ... populate_* methods
# Set unfilledtimeout to 25 hours, since our maximum timeout from below is 24 hours.
unfilledtimeout = {
'buy': 60 * 25,
'sell': 60 * 25
}
def check_buy_timeout(self, pair: str, trade: Trade, order: dict, **kwargs) -> bool:
ob = self.dp.orderbook(pair, 1)
current_price = ob['bids'][0][0]
# Cancel buy order if price is more than 2% above the order.
if current_price > order['price'] * 1.02:
return True
return False
def check_sell_timeout(self, pair: str, trade: Trade, order: dict, **kwargs) -> bool:
ob = self.dp.orderbook(pair, 1)
current_price = ob['asks'][0][0]
# Cancel sell order if price is more than 2% below the order.
if current_price < order['price'] * 0.98:
return True
return False
return dataframe
```
## Bot loop start callback
The provided exit-tag is then used as sell-reason - and shown as such in backtest results.
A simple callback which is called once at the start of every bot throttling iteration.
This can be used to perform calculations which are pair independent (apply to all pairs), loading of external data, etc.
!!! Note
`exit_reason` is limited to 100 characters, remaining data will be truncated.
## Strategy version
You can implement custom strategy versioning by using the "version" method, and returning the version you would like this strategy to have.
``` python
import requests
class Awesomestrategy(IStrategy):
# ... populate_* methods
def bot_loop_start(self, **kwargs) -> None:
"""
Called at the start of the bot iteration (one loop).
Might be used to perform pair-independent tasks
(e.g. gather some remote resource for comparison)
:param **kwargs: Ensure to keep this here so updates to this won't break your strategy.
"""
if self.config['runmode'].value in ('live', 'dry_run'):
# Assign this to the class by using self.*
# can then be used by populate_* methods
self.remote_data = requests.get('https://some_remote_source.example.com')
def version(self) -> str:
"""
Returns version of the strategy.
"""
return "1.1"
```
## Bot order confirmation
### Trade entry (buy order) confirmation
`confirm_trade_entry()` can be used to abort a trade entry at the latest second (maybe because the price is not what we expect).
``` python
class Awesomestrategy(IStrategy):
# ... populate_* methods
def confirm_trade_entry(self, pair: str, order_type: str, amount: float, rate: float,
time_in_force: str, **kwargs) -> bool:
"""
Called right before placing a buy order.
Timing for this function is critical, so avoid doing heavy computations or
network requests in this method.
For full documentation please go to https://www.freqtrade.io/en/latest/strategy-advanced/
When not implemented by a strategy, returns True (always confirming).
:param pair: Pair that's about to be bought.
:param order_type: Order type (as configured in order_types). usually limit or market.
:param amount: Amount in target (quote) currency that's going to be traded.
:param rate: Rate that's going to be used when using limit orders
:param time_in_force: Time in force. Defaults to GTC (Good-til-cancelled).
:param **kwargs: Ensure to keep this here so updates to this won't break your strategy.
:return bool: When True is returned, then the buy-order is placed on the exchange.
False aborts the process
"""
return True
```
### Trade exit (sell order) confirmation
`confirm_trade_exit()` can be used to abort a trade exit (sell) at the latest second (maybe because the price is not what we expect).
``` python
from freqtrade.persistence import Trade
class Awesomestrategy(IStrategy):
# ... populate_* methods
def confirm_trade_exit(self, pair: str, trade: Trade, order_type: str, amount: float,
rate: float, time_in_force: str, sell_reason: str, **kwargs) -> bool:
"""
Called right before placing a regular sell order.
Timing for this function is critical, so avoid doing heavy computations or
network requests in this method.
For full documentation please go to https://www.freqtrade.io/en/latest/strategy-advanced/
When not implemented by a strategy, returns True (always confirming).
:param pair: Pair that's about to be sold.
:param order_type: Order type (as configured in order_types). usually limit or market.
:param amount: Amount in quote currency.
:param rate: Rate that's going to be used when using limit orders
:param time_in_force: Time in force. Defaults to GTC (Good-til-cancelled).
:param sell_reason: Sell reason.
Can be any of ['roi', 'stop_loss', 'stoploss_on_exchange', 'trailing_stop_loss',
'sell_signal', 'force_sell', 'emergency_sell']
:param **kwargs: Ensure to keep this here so updates to this won't break your strategy.
:return bool: When True is returned, then the sell-order is placed on the exchange.
False aborts the process
"""
if sell_reason == 'force_sell' and trade.calc_profit_ratio(rate) < 0:
# Reject force-sells with negative profit
# This is just a sample, please adjust to your needs
# (this does not necessarily make sense, assuming you know when you're force-selling)
return False
return True
```
!!! Note
You should make sure to implement proper version control (like a git repository) alongside this, as freqtrade will not keep historic versions of your strategy, so it's up to the user to be able to eventually roll back to a prior version of the strategy.
## Derived strategies
The strategies can be derived from other strategies. This avoids duplication of your custom strategy code. You can use this technique to override small parts of your main strategy, leaving the rest untouched:
``` python
``` python title="user_data/strategies/myawesomestrategy.py"
class MyAwesomeStrategy(IStrategy):
...
stoploss = 0.13
@@ -213,10 +155,74 @@ class MyAwesomeStrategy(IStrategy):
# should be in any custom strategy...
...
```
``` python title="user_data/strategies/MyAwesomeStrategy2.py"
from myawesomestrategy import MyAwesomeStrategy
class MyAwesomeStrategy2(MyAwesomeStrategy):
# Override something
stoploss = 0.08
trailing_stop = True
```
Both attributes and methods may be overriden, altering behavior of the original strategy in a way you need.
Both attributes and methods may be overridden, altering behavior of the original strategy in a way you need.
While keeping the subclass in the same file is technically possible, it can lead to some problems with hyperopt parameter files, we therefore recommend to use separate strategy files, and import the parent strategy as shown above.
## Embedding Strategies
Freqtrade provides you with an easy way to embed the strategy into your configuration file.
This is done by utilizing BASE64 encoding and providing this string at the strategy configuration field,
in your chosen config file.
### Encoding a string as BASE64
This is a quick example, how to generate the BASE64 string in python
```python
from base64 import urlsafe_b64encode
with open(file, 'r') as f:
content = f.read()
content = urlsafe_b64encode(content.encode('utf-8'))
```
The variable 'content', will contain the strategy file in a BASE64 encoded form. Which can now be set in your configurations file as following
```json
"strategy": "NameOfStrategy:BASE64String"
```
Please ensure that 'NameOfStrategy' is identical to the strategy name!
## Performance warning
When executing a strategy, one can sometimes be greeted by the following in the logs
> PerformanceWarning: DataFrame is highly fragmented.
This is a warning from [`pandas`](https://github.com/pandas-dev/pandas) and as the warning continues to say:
use `pd.concat(axis=1)`.
This can have slight performance implications, which are usually only visible during hyperopt (when optimizing an indicator).
For example:
```python
for val in self.buy_ema_short.range:
dataframe[f'ema_short_{val}'] = ta.EMA(dataframe, timeperiod=val)
```
should be rewritten to
```python
frames = [dataframe]
for val in self.buy_ema_short.range:
frames.append(DataFrame({
f'ema_short_{val}': ta.EMA(dataframe, timeperiod=val)
}))
# Append columns to existing dataframe
merged_frame = pd.concat(frames, axis=1)
```
Freqtrade does however also counter this by running `dataframe.copy()` on the dataframe right after the `populate_indicators()` method - so performance implications of this should be low to non-existant.

872
docs/strategy-callbacks.md Normal file
View File

@@ -0,0 +1,872 @@
# Strategy Callbacks
While the main strategy functions (`populate_indicators()`, `populate_entry_trend()`, `populate_exit_trend()`) should be used in a vectorized way, and are only called [once during backtesting](bot-basics.md#backtesting-hyperopt-execution-logic), callbacks are called "whenever needed".
As such, you should avoid doing heavy calculations in callbacks to avoid delays during operations.
Depending on the callback used, they may be called when entering / exiting a trade, or throughout the duration of a trade.
Currently available callbacks:
* [`bot_start()`](#bot-start)
* [`bot_loop_start()`](#bot-loop-start)
* [`custom_stake_amount()`](#stake-size-management)
* [`custom_exit()`](#custom-exit-signal)
* [`custom_stoploss()`](#custom-stoploss)
* [`custom_entry_price()` and `custom_exit_price()`](#custom-order-price-rules)
* [`check_entry_timeout()` and `check_exit_timeout()`](#custom-order-timeout-rules)
* [`confirm_trade_entry()`](#trade-entry-buy-order-confirmation)
* [`confirm_trade_exit()`](#trade-exit-sell-order-confirmation)
* [`adjust_trade_position()`](#adjust-trade-position)
* [`adjust_entry_price()`](#adjust-entry-price)
* [`leverage()`](#leverage-callback)
!!! Tip "Callback calling sequence"
You can find the callback calling sequence in [bot-basics](bot-basics.md#bot-execution-logic)
## Bot start
A simple callback which is called once when the strategy is loaded.
This can be used to perform actions that must only be performed once and runs after dataprovider and wallet are set
``` python
import requests
class AwesomeStrategy(IStrategy):
# ... populate_* methods
def bot_start(self, **kwargs) -> None:
"""
Called only once after bot instantiation.
:param **kwargs: Ensure to keep this here so updates to this won't break your strategy.
"""
if self.config['runmode'].value in ('live', 'dry_run'):
# Assign this to the class by using self.*
# can then be used by populate_* methods
self.cust_remote_data = requests.get('https://some_remote_source.example.com')
```
During hyperopt, this runs only once at startup.
## Bot loop start
A simple callback which is called once at the start of every bot throttling iteration (roughly every 5 seconds, unless configured differently).
This can be used to perform calculations which are pair independent (apply to all pairs), loading of external data, etc.
``` python
import requests
class AwesomeStrategy(IStrategy):
# ... populate_* methods
def bot_loop_start(self, **kwargs) -> None:
"""
Called at the start of the bot iteration (one loop).
Might be used to perform pair-independent tasks
(e.g. gather some remote resource for comparison)
:param **kwargs: Ensure to keep this here so updates to this won't break your strategy.
"""
if self.config['runmode'].value in ('live', 'dry_run'):
# Assign this to the class by using self.*
# can then be used by populate_* methods
self.remote_data = requests.get('https://some_remote_source.example.com')
```
### Stake size management
Called before entering a trade, makes it possible to manage your position size when placing a new trade.
```python
class AwesomeStrategy(IStrategy):
def custom_stake_amount(self, pair: str, current_time: datetime, current_rate: float,
proposed_stake: float, min_stake: Optional[float], max_stake: float,
leverage: float, entry_tag: Optional[str], side: str,
**kwargs) -> float:
dataframe, _ = self.dp.get_analyzed_dataframe(pair=pair, timeframe=self.timeframe)
current_candle = dataframe.iloc[-1].squeeze()
if current_candle['fastk_rsi_1h'] > current_candle['fastd_rsi_1h']:
if self.config['stake_amount'] == 'unlimited':
# Use entire available wallet during favorable conditions when in compounding mode.
return max_stake
else:
# Compound profits during favorable conditions instead of using a static stake.
return self.wallets.get_total_stake_amount() / self.config['max_open_trades']
# Use default stake amount.
return proposed_stake
```
Freqtrade will fall back to the `proposed_stake` value should your code raise an exception. The exception itself will be logged.
!!! Tip
You do not _have_ to ensure that `min_stake <= returned_value <= max_stake`. Trades will succeed as the returned value will be clamped to supported range and this action will be logged.
!!! Tip
Returning `0` or `None` will prevent trades from being placed.
## Custom exit signal
Called for open trade every throttling iteration (roughly every 5 seconds) until a trade is closed.
Allows to define custom exit signals, indicating that specified position should be sold. This is very useful when we need to customize exit conditions for each individual trade, or if you need trade data to make an exit decision.
For example you could implement a 1:2 risk-reward ROI with `custom_exit()`.
Using `custom_exit()` signals in place of stoploss though *is not recommended*. It is a inferior method to using `custom_stoploss()` in this regard - which also allows you to keep the stoploss on exchange.
!!! Note
Returning a (none-empty) `string` or `True` from this method is equal to setting exit signal on a candle at specified time. This method is not called when exit signal is set already, or if exit signals are disabled (`use_exit_signal=False`). `string` max length is 64 characters. Exceeding this limit will cause the message to be truncated to 64 characters.
`custom_exit()` will ignore `exit_profit_only`, and will always be called unless `use_exit_signal=False`, even if there is a new enter signal.
An example of how we can use different indicators depending on the current profit and also exit trades that were open longer than one day:
``` python
class AwesomeStrategy(IStrategy):
def custom_exit(self, pair: str, trade: 'Trade', current_time: 'datetime', current_rate: float,
current_profit: float, **kwargs):
dataframe, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe)
last_candle = dataframe.iloc[-1].squeeze()
# Above 20% profit, sell when rsi < 80
if current_profit > 0.2:
if last_candle['rsi'] < 80:
return 'rsi_below_80'
# Between 2% and 10%, sell if EMA-long above EMA-short
if 0.02 < current_profit < 0.1:
if last_candle['emalong'] > last_candle['emashort']:
return 'ema_long_below_80'
# Sell any positions at a loss if they are held for more than one day.
if current_profit < 0.0 and (current_time - trade.open_date_utc).days >= 1:
return 'unclog'
```
See [Dataframe access](strategy-advanced.md#dataframe-access) for more information about dataframe use in strategy callbacks.
## Custom stoploss
Called for open trade every iteration (roughly every 5 seconds) until a trade is closed.
The usage of the custom stoploss method must be enabled by setting `use_custom_stoploss=True` on the strategy object.
The stoploss price can only ever move upwards - if the stoploss value returned from `custom_stoploss` would result in a lower stoploss price than was previously set, it will be ignored. The traditional `stoploss` value serves as an absolute lower level and will be instated as the initial stoploss (before this method is called for the first time for a trade), and is still mandatory.
The method must return a stoploss value (float / number) as a percentage of the current price.
E.g. If the `current_rate` is 200 USD, then returning `0.02` will set the stoploss price 2% lower, at 196 USD.
The absolute value of the return value is used (the sign is ignored), so returning `0.05` or `-0.05` have the same result, a stoploss 5% below the current price.
To simulate a regular trailing stoploss of 4% (trailing 4% behind the maximum reached price) you would use the following very simple method:
``` python
# additional imports required
from datetime import datetime
from freqtrade.persistence import Trade
class AwesomeStrategy(IStrategy):
# ... populate_* methods
use_custom_stoploss = True
def custom_stoploss(self, pair: str, trade: 'Trade', current_time: datetime,
current_rate: float, current_profit: float, **kwargs) -> float:
"""
Custom stoploss logic, returning the new distance relative to current_rate (as ratio).
e.g. returning -0.05 would create a stoploss 5% below current_rate.
The custom stoploss can never be below self.stoploss, which serves as a hard maximum loss.
For full documentation please go to https://www.freqtrade.io/en/latest/strategy-advanced/
When not implemented by a strategy, returns the initial stoploss value
Only called when use_custom_stoploss is set to True.
:param pair: Pair that's currently analyzed
:param trade: trade object.
:param current_time: datetime object, containing the current datetime
:param current_rate: Rate, calculated based on pricing settings in exit_pricing.
:param current_profit: Current profit (as ratio), calculated based on current_rate.
:param **kwargs: Ensure to keep this here so updates to this won't break your strategy.
:return float: New stoploss value, relative to the current rate
"""
return -0.04
```
Stoploss on exchange works similar to `trailing_stop`, and the stoploss on exchange is updated as configured in `stoploss_on_exchange_interval` ([More details about stoploss on exchange](stoploss.md#stop-loss-on-exchange-freqtrade)).
!!! Note "Use of dates"
All time-based calculations should be done based on `current_time` - using `datetime.now()` or `datetime.utcnow()` is discouraged, as this will break backtesting support.
!!! Tip "Trailing stoploss"
It's recommended to disable `trailing_stop` when using custom stoploss values. Both can work in tandem, but you might encounter the trailing stop to move the price higher while your custom function would not want this, causing conflicting behavior.
### Custom stoploss examples
The next section will show some examples on what's possible with the custom stoploss function.
Of course, many more things are possible, and all examples can be combined at will.
#### Time based trailing stop
Use the initial stoploss for the first 60 minutes, after this change to 10% trailing stoploss, and after 2 hours (120 minutes) we use a 5% trailing stoploss.
``` python
from datetime import datetime, timedelta
from freqtrade.persistence import Trade
class AwesomeStrategy(IStrategy):
# ... populate_* methods
use_custom_stoploss = True
def custom_stoploss(self, pair: str, trade: 'Trade', current_time: datetime,
current_rate: float, current_profit: float, **kwargs) -> float:
# Make sure you have the longest interval first - these conditions are evaluated from top to bottom.
if current_time - timedelta(minutes=120) > trade.open_date_utc:
return -0.05
elif current_time - timedelta(minutes=60) > trade.open_date_utc:
return -0.10
return 1
```
#### Different stoploss per pair
Use a different stoploss depending on the pair.
In this example, we'll trail the highest price with 10% trailing stoploss for `ETH/BTC` and `XRP/BTC`, with 5% trailing stoploss for `LTC/BTC` and with 15% for all other pairs.
``` python
from datetime import datetime
from freqtrade.persistence import Trade
class AwesomeStrategy(IStrategy):
# ... populate_* methods
use_custom_stoploss = True
def custom_stoploss(self, pair: str, trade: 'Trade', current_time: datetime,
current_rate: float, current_profit: float, **kwargs) -> float:
if pair in ('ETH/BTC', 'XRP/BTC'):
return -0.10
elif pair in ('LTC/BTC'):
return -0.05
return -0.15
```
#### Trailing stoploss with positive offset
Use the initial stoploss until the profit is above 4%, then use a trailing stoploss of 50% of the current profit with a minimum of 2.5% and a maximum of 5%.
Please note that the stoploss can only increase, values lower than the current stoploss are ignored.
``` python
from datetime import datetime, timedelta
from freqtrade.persistence import Trade
class AwesomeStrategy(IStrategy):
# ... populate_* methods
use_custom_stoploss = True
def custom_stoploss(self, pair: str, trade: 'Trade', current_time: datetime,
current_rate: float, current_profit: float, **kwargs) -> float:
if current_profit < 0.04:
return -1 # return a value bigger than the initial stoploss to keep using the initial stoploss
# After reaching the desired offset, allow the stoploss to trail by half the profit
desired_stoploss = current_profit / 2
# Use a minimum of 2.5% and a maximum of 5%
return max(min(desired_stoploss, 0.05), 0.025)
```
#### Stepped stoploss
Instead of continuously trailing behind the current price, this example sets fixed stoploss price levels based on the current profit.
* Use the regular stoploss until 20% profit is reached
* Once profit is > 20% - set stoploss to 7% above open price.
* Once profit is > 25% - set stoploss to 15% above open price.
* Once profit is > 40% - set stoploss to 25% above open price.
``` python
from datetime import datetime
from freqtrade.persistence import Trade
from freqtrade.strategy import stoploss_from_open
class AwesomeStrategy(IStrategy):
# ... populate_* methods
use_custom_stoploss = True
def custom_stoploss(self, pair: str, trade: 'Trade', current_time: datetime,
current_rate: float, current_profit: float, **kwargs) -> float:
# evaluate highest to lowest, so that highest possible stop is used
if current_profit > 0.40:
return stoploss_from_open(0.25, current_profit, is_short=trade.is_short)
elif current_profit > 0.25:
return stoploss_from_open(0.15, current_profit, is_short=trade.is_short)
elif current_profit > 0.20:
return stoploss_from_open(0.07, current_profit, is_short=trade.is_short)
# return maximum stoploss value, keeping current stoploss price unchanged
return 1
```
#### Custom stoploss using an indicator from dataframe example
Absolute stoploss value may be derived from indicators stored in dataframe. Example uses parabolic SAR below the price as stoploss.
``` python
class AwesomeStrategy(IStrategy):
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# <...>
dataframe['sar'] = ta.SAR(dataframe)
use_custom_stoploss = True
def custom_stoploss(self, pair: str, trade: 'Trade', current_time: datetime,
current_rate: float, current_profit: float, **kwargs) -> float:
dataframe, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe)
last_candle = dataframe.iloc[-1].squeeze()
# Use parabolic sar as absolute stoploss price
stoploss_price = last_candle['sar']
# Convert absolute price to percentage relative to current_rate
if stoploss_price < current_rate:
return (stoploss_price / current_rate) - 1
# return maximum stoploss value, keeping current stoploss price unchanged
return 1
```
See [Dataframe access](strategy-advanced.md#dataframe-access) for more information about dataframe use in strategy callbacks.
### Common helpers for stoploss calculations
#### Stoploss relative to open price
Stoploss values returned from `custom_stoploss()` always specify a percentage relative to `current_rate`. In order to set a stoploss relative to the *open* price, we need to use `current_profit` to calculate what percentage relative to the `current_rate` will give you the same result as if the percentage was specified from the open price.
The helper function [`stoploss_from_open()`](strategy-customization.md#stoploss_from_open) can be used to convert from an open price relative stop, to a current price relative stop which can be returned from `custom_stoploss()`.
#### Stoploss percentage from absolute price
Stoploss values returned from `custom_stoploss()` always specify a percentage relative to `current_rate`. In order to set a stoploss at specified absolute price level, we need to use `stop_rate` to calculate what percentage relative to the `current_rate` will give you the same result as if the percentage was specified from the open price.
The helper function [`stoploss_from_absolute()`](strategy-customization.md#stoploss_from_absolute) can be used to convert from an absolute price, to a current price relative stop which can be returned from `custom_stoploss()`.
---
## Custom order price rules
By default, freqtrade use the orderbook to automatically set an order price([Relevant documentation](configuration.md#prices-used-for-orders)), you also have the option to create custom order prices based on your strategy.
You can use this feature by creating a `custom_entry_price()` function in your strategy file to customize entry prices and `custom_exit_price()` for exits.
Each of these methods are called right before placing an order on the exchange.
!!! Note
If your custom pricing function return None or an invalid value, price will fall back to `proposed_rate`, which is based on the regular pricing configuration.
### Custom order entry and exit price example
``` python
from datetime import datetime, timedelta, timezone
from freqtrade.persistence import Trade
class AwesomeStrategy(IStrategy):
# ... populate_* methods
def custom_entry_price(self, pair: str, current_time: datetime, proposed_rate: float,
entry_tag: Optional[str], side: str, **kwargs) -> float:
dataframe, last_updated = self.dp.get_analyzed_dataframe(pair=pair,
timeframe=self.timeframe)
new_entryprice = dataframe['bollinger_10_lowerband'].iat[-1]
return new_entryprice
def custom_exit_price(self, pair: str, trade: Trade,
current_time: datetime, proposed_rate: float,
current_profit: float, exit_tag: Optional[str], **kwargs) -> float:
dataframe, last_updated = self.dp.get_analyzed_dataframe(pair=pair,
timeframe=self.timeframe)
new_exitprice = dataframe['bollinger_10_upperband'].iat[-1]
return new_exitprice
```
!!! Warning
Modifying entry and exit prices will only work for limit orders. Depending on the price chosen, this can result in a lot of unfilled orders. By default the maximum allowed distance between the current price and the custom price is 2%, this value can be changed in config with the `custom_price_max_distance_ratio` parameter.
**Example**:
If the new_entryprice is 97, the proposed_rate is 100 and the `custom_price_max_distance_ratio` is set to 2%, The retained valid custom entry price will be 98, which is 2% below the current (proposed) rate.
!!! Warning "Backtesting"
Custom prices are supported in backtesting (starting with 2021.12), and orders will fill if the price falls within the candle's low/high range.
Orders that don't fill immediately are subject to regular timeout handling, which happens once per (detail) candle.
`custom_exit_price()` is only called for sells of type exit_signal and Custom exit. All other exit-types will use regular backtesting prices.
## Custom order timeout rules
Simple, time-based order-timeouts can be configured either via strategy or in the configuration in the `unfilledtimeout` section.
However, freqtrade also offers a custom callback for both order types, which allows you to decide based on custom criteria if an order did time out or not.
!!! Note
Backtesting fills orders if their price falls within the candle's low/high range.
The below callbacks will be called once per (detail) candle for orders that don't fill immediately (which use custom pricing).
### Custom order timeout example
Called for every open order until that order is either filled or cancelled.
`check_entry_timeout()` is called for trade entries, while `check_exit_timeout()` is called for trade exit orders.
A simple example, which applies different unfilled-timeouts depending on the price of the asset can be seen below.
It applies a tight timeout for higher priced assets, while allowing more time to fill on cheap coins.
The function must return either `True` (cancel order) or `False` (keep order alive).
``` python
from datetime import datetime, timedelta
from freqtrade.persistence import Trade, Order
class AwesomeStrategy(IStrategy):
# ... populate_* methods
# Set unfilledtimeout to 25 hours, since the maximum timeout from below is 24 hours.
unfilledtimeout = {
'entry': 60 * 25,
'exit': 60 * 25
}
def check_entry_timeout(self, pair: str, trade: 'Trade', order: 'Order',
current_time: datetime, **kwargs) -> bool:
if trade.open_rate > 100 and trade.open_date_utc < current_time - timedelta(minutes=5):
return True
elif trade.open_rate > 10 and trade.open_date_utc < current_time - timedelta(minutes=3):
return True
elif trade.open_rate < 1 and trade.open_date_utc < current_time - timedelta(hours=24):
return True
return False
def check_exit_timeout(self, pair: str, trade: Trade, order: 'Order',
current_time: datetime, **kwargs) -> bool:
if trade.open_rate > 100 and trade.open_date_utc < current_time - timedelta(minutes=5):
return True
elif trade.open_rate > 10 and trade.open_date_utc < current_time - timedelta(minutes=3):
return True
elif trade.open_rate < 1 and trade.open_date_utc < current_time - timedelta(hours=24):
return True
return False
```
!!! Note
For the above example, `unfilledtimeout` must be set to something bigger than 24h, otherwise that type of timeout will apply first.
### Custom order timeout example (using additional data)
``` python
from datetime import datetime
from freqtrade.persistence import Trade, Order
class AwesomeStrategy(IStrategy):
# ... populate_* methods
# Set unfilledtimeout to 25 hours, since the maximum timeout from below is 24 hours.
unfilledtimeout = {
'entry': 60 * 25,
'exit': 60 * 25
}
def check_entry_timeout(self, pair: str, trade: 'Trade', order: 'Order',
current_time: datetime, **kwargs) -> bool:
ob = self.dp.orderbook(pair, 1)
current_price = ob['bids'][0][0]
# Cancel buy order if price is more than 2% above the order.
if current_price > order.price * 1.02:
return True
return False
def check_exit_timeout(self, pair: str, trade: 'Trade', order: 'Order',
current_time: datetime, **kwargs) -> bool:
ob = self.dp.orderbook(pair, 1)
current_price = ob['asks'][0][0]
# Cancel sell order if price is more than 2% below the order.
if current_price < order.price * 0.98:
return True
return False
```
---
## Bot order confirmation
Confirm trade entry / exits.
This are the last methods that will be called before an order is placed.
### Trade entry (buy order) confirmation
`confirm_trade_entry()` can be used to abort a trade entry at the latest second (maybe because the price is not what we expect).
``` python
class AwesomeStrategy(IStrategy):
# ... populate_* methods
def confirm_trade_entry(self, pair: str, order_type: str, amount: float, rate: float,
time_in_force: str, current_time: datetime, entry_tag: Optional[str],
side: str, **kwargs) -> bool:
"""
Called right before placing a entry order.
Timing for this function is critical, so avoid doing heavy computations or
network requests in this method.
For full documentation please go to https://www.freqtrade.io/en/latest/strategy-advanced/
When not implemented by a strategy, returns True (always confirming).
:param pair: Pair that's about to be bought/shorted.
:param order_type: Order type (as configured in order_types). usually limit or market.
:param amount: Amount in target (base) currency that's going to be traded.
:param rate: Rate that's going to be used when using limit orders
or current rate for market orders.
:param time_in_force: Time in force. Defaults to GTC (Good-til-cancelled).
:param current_time: datetime object, containing the current datetime
:param entry_tag: Optional entry_tag (buy_tag) if provided with the buy signal.
:param side: 'long' or 'short' - indicating the direction of the proposed trade
:param **kwargs: Ensure to keep this here so updates to this won't break your strategy.
:return bool: When True is returned, then the buy-order is placed on the exchange.
False aborts the process
"""
return True
```
### Trade exit (sell order) confirmation
`confirm_trade_exit()` can be used to abort a trade exit (sell) at the latest second (maybe because the price is not what we expect).
`confirm_trade_exit()` may be called multiple times within one iteration for the same trade if different exit-reasons apply.
The exit-reasons (if applicable) will be in the following sequence:
* `exit_signal` / `custom_exit`
* `stop_loss`
* `roi`
* `trailing_stop_loss`
``` python
from freqtrade.persistence import Trade
class AwesomeStrategy(IStrategy):
# ... populate_* methods
def confirm_trade_exit(self, pair: str, trade: Trade, order_type: str, amount: float,
rate: float, time_in_force: str, exit_reason: str,
current_time: datetime, **kwargs) -> bool:
"""
Called right before placing a regular exit order.
Timing for this function is critical, so avoid doing heavy computations or
network requests in this method.
For full documentation please go to https://www.freqtrade.io/en/latest/strategy-advanced/
When not implemented by a strategy, returns True (always confirming).
:param pair: Pair for trade that's about to be exited.
:param trade: trade object.
:param order_type: Order type (as configured in order_types). usually limit or market.
:param amount: Amount in base currency.
:param rate: Rate that's going to be used when using limit orders
or current rate for market orders.
:param time_in_force: Time in force. Defaults to GTC (Good-til-cancelled).
:param exit_reason: Exit reason.
Can be any of ['roi', 'stop_loss', 'stoploss_on_exchange', 'trailing_stop_loss',
'exit_signal', 'force_exit', 'emergency_exit']
:param current_time: datetime object, containing the current datetime
:param **kwargs: Ensure to keep this here so updates to this won't break your strategy.
:return bool: When True, then the exit-order is placed on the exchange.
False aborts the process
"""
if exit_reason == 'force_exit' and trade.calc_profit_ratio(rate) < 0:
# Reject force-sells with negative profit
# This is just a sample, please adjust to your needs
# (this does not necessarily make sense, assuming you know when you're force-selling)
return False
return True
```
!!! Warning
`confirm_trade_exit()` can prevent stoploss exits, causing significant losses as this would ignore stoploss exits.
`confirm_trade_exit()` will not be called for Liquidations - as liquidations are forced by the exchange, and therefore cannot be rejected.
## Adjust trade position
The `position_adjustment_enable` strategy property enables the usage of `adjust_trade_position()` callback in the strategy.
For performance reasons, it's disabled by default and freqtrade will show a warning message on startup if enabled.
`adjust_trade_position()` can be used to perform additional orders, for example to manage risk with DCA (Dollar Cost Averaging) or to increase or decrease positions.
`max_entry_position_adjustment` property is used to limit the number of additional buys per trade (on top of the first buy) that the bot can execute. By default, the value is -1 which means the bot have no limit on number of adjustment buys.
The strategy is expected to return a stake_amount (in stake currency) between `min_stake` and `max_stake` if and when an additional buy order should be made (position is increased).
If there are not enough funds in the wallet (the return value is above `max_stake`) then the signal will be ignored.
Additional orders also result in additional fees and those orders don't count towards `max_open_trades`.
This callback is **not** called when there is an open order (either buy or sell) waiting for execution.
`adjust_trade_position()` is called very frequently for the duration of a trade, so you must keep your implementation as performant as possible.
Additional Buys are ignored once you have reached the maximum amount of extra buys that you have set on `max_entry_position_adjustment`, but the callback is called anyway looking for partial exits.
Position adjustments will always be applied in the direction of the trade, so a positive value will always increase your position (negative values will decrease your position), no matter if it's a long or short trade. Modifications to leverage are not possible.
!!! Note "About stake size"
Using fixed stake size means it will be the amount used for the first order, just like without position adjustment.
If you wish to buy additional orders with DCA, then make sure to leave enough funds in the wallet for that.
Using 'unlimited' stake amount with DCA orders requires you to also implement the `custom_stake_amount()` callback to avoid allocating all funds to the initial order.
!!! Warning
Stoploss is still calculated from the initial opening price, not averaged price.
Regular stoploss rules still apply (cannot move down).
While `/stopbuy` command stops the bot from entering new trades, the position adjustment feature will continue buying new orders on existing trades.
!!! Warning "Backtesting"
During backtesting this callback is called for each candle in `timeframe` or `timeframe_detail`, so run-time performance will be affected.
``` python
from freqtrade.persistence import Trade
class DigDeeperStrategy(IStrategy):
position_adjustment_enable = True
# Attempts to handle large drops with DCA. High stoploss is required.
stoploss = -0.30
# ... populate_* methods
# Example specific variables
max_entry_position_adjustment = 3
# This number is explained a bit further down
max_dca_multiplier = 5.5
# This is called when placing the initial order (opening trade)
def custom_stake_amount(self, pair: str, current_time: datetime, current_rate: float,
proposed_stake: float, min_stake: Optional[float], max_stake: float,
leverage: float, entry_tag: Optional[str], side: str,
**kwargs) -> float:
# We need to leave most of the funds for possible further DCA orders
# This also applies to fixed stakes
return proposed_stake / self.max_dca_multiplier
def adjust_trade_position(self, trade: Trade, current_time: datetime,
current_rate: float, current_profit: float,
min_stake: Optional[float], max_stake: float,
current_entry_rate: float, current_exit_rate: float,
current_entry_profit: float, current_exit_profit: float,
**kwargs) -> Optional[float]:
"""
Custom trade adjustment logic, returning the stake amount that a trade should be
increased or decreased.
This means extra buy or sell orders with additional fees.
Only called when `position_adjustment_enable` is set to True.
For full documentation please go to https://www.freqtrade.io/en/latest/strategy-advanced/
When not implemented by a strategy, returns None
:param trade: trade object.
:param current_time: datetime object, containing the current datetime
:param current_rate: Current buy rate.
:param current_profit: Current profit (as ratio), calculated based on current_rate.
:param min_stake: Minimal stake size allowed by exchange (for both entries and exits)
:param max_stake: Maximum stake allowed (either through balance, or by exchange limits).
:param current_entry_rate: Current rate using entry pricing.
:param current_exit_rate: Current rate using exit pricing.
:param current_entry_profit: Current profit using entry pricing.
:param current_exit_profit: Current profit using exit pricing.
:param **kwargs: Ensure to keep this here so updates to this won't break your strategy.
:return float: Stake amount to adjust your trade,
Positive values to increase position, Negative values to decrease position.
Return None for no action.
"""
if current_profit > 0.05 and trade.nr_of_successful_exits == 0:
# Take half of the profit at +5%
return -(trade.stake_amount / 2)
if current_profit > -0.05:
return None
# Obtain pair dataframe (just to show how to access it)
dataframe, _ = self.dp.get_analyzed_dataframe(trade.pair, self.timeframe)
# Only buy when not actively falling price.
last_candle = dataframe.iloc[-1].squeeze()
previous_candle = dataframe.iloc[-2].squeeze()
if last_candle['close'] < previous_candle['close']:
return None
filled_entries = trade.select_filled_orders(trade.entry_side)
count_of_entries = trade.nr_of_successful_entries
# Allow up to 3 additional increasingly larger buys (4 in total)
# Initial buy is 1x
# If that falls to -5% profit, we buy 1.25x more, average profit should increase to roughly -2.2%
# If that falls down to -5% again, we buy 1.5x more
# If that falls once again down to -5%, we buy 1.75x more
# Total stake for this trade would be 1 + 1.25 + 1.5 + 1.75 = 5.5x of the initial allowed stake.
# That is why max_dca_multiplier is 5.5
# Hope you have a deep wallet!
try:
# This returns first order stake size
stake_amount = filled_entries[0].cost
# This then calculates current safety order size
stake_amount = stake_amount * (1 + (count_of_entries * 0.25))
return stake_amount
except Exception as exception:
return None
return None
```
### Position adjust calculations
* Entry rates are calculated using weighted averages.
* Exits will not influence the average entry rate.
* Partial exit relative profit is relative to the average entry price at this point.
* Final exit relative profit is calculated based on the total invested capital. (See example below)
??? example "Calculation example"
*This example assumes 0 fees for simplicity, and a long position on an imaginary coin.*
* Buy 100@8\$
* Buy 100@9\$ -> Avg price: 8.5\$
* Sell 100@10\$ -> Avg price: 8.5\$, realized profit 150\$, 17.65%
* Buy 150@11\$ -> Avg price: 10\$, realized profit 150\$, 17.65%
* Sell 100@12\$ -> Avg price: 10\$, total realized profit 350\$, 20%
* Sell 150@14\$ -> Avg price: 10\$, total realized profit 950\$, 40%
The total profit for this trade was 950$ on a 3350$ investment (`100@8$ + 100@9$ + 150@11$`). As such - the final relative profit is 28.35% (`950 / 3350`).
## Adjust Entry Price
The `adjust_entry_price()` callback may be used by strategy developer to refresh/replace limit orders upon arrival of new candles.
Be aware that `custom_entry_price()` is still the one dictating initial entry limit order price target at the time of entry trigger.
Orders can be cancelled out of this callback by returning `None`.
Returning `current_order_rate` will keep the order on the exchange "as is".
Returning any other price will cancel the existing order, and replace it with a new order.
The trade open-date (`trade.open_date_utc`) will remain at the time of the very first order placed.
Please make sure to be aware of this - and eventually adjust your logic in other callbacks to account for this, and use the date of the first filled order instead.
!!! Warning "Regular timeout"
Entry `unfilledtimeout` mechanism (as well as `check_entry_timeout()`) takes precedence over this.
Entry Orders that are cancelled via the above methods will not have this callback called. Be sure to update timeout values to match your expectations.
```python
from freqtrade.persistence import Trade
from datetime import timedelta
class AwesomeStrategy(IStrategy):
# ... populate_* methods
def adjust_entry_price(self, trade: Trade, order: Optional[Order], pair: str,
current_time: datetime, proposed_rate: float, current_order_rate: float,
entry_tag: Optional[str], side: str, **kwargs) -> float:
"""
Entry price re-adjustment logic, returning the user desired limit price.
This only executes when a order was already placed, still open (unfilled fully or partially)
and not timed out on subsequent candles after entry trigger.
When not implemented by a strategy, returns current_order_rate as default.
If current_order_rate is returned then the existing order is maintained.
If None is returned then order gets canceled but not replaced by a new one.
:param pair: Pair that's currently analyzed
:param trade: Trade object.
:param order: Order object
:param current_time: datetime object, containing the current datetime
:param proposed_rate: Rate, calculated based on pricing settings in entry_pricing.
:param current_order_rate: Rate of the existing order in place.
:param entry_tag: Optional entry_tag (buy_tag) if provided with the buy signal.
:param side: 'long' or 'short' - indicating the direction of the proposed trade
:param **kwargs: Ensure to keep this here so updates to this won't break your strategy.
:return float: New entry price value if provided
"""
# Limit orders to use and follow SMA200 as price target for the first 10 minutes since entry trigger for BTC/USDT pair.
if pair == 'BTC/USDT' and entry_tag == 'long_sma200' and side == 'long' and (current_time - timedelta(minutes=10) > trade.open_date_utc:
# just cancel the order if it has been filled more than half of the amount
if order.filled > order.remaining:
return None
else:
dataframe, _ = self.dp.get_analyzed_dataframe(pair=pair, timeframe=self.timeframe)
current_candle = dataframe.iloc[-1].squeeze()
# desired price
return current_candle['sma_200']
# default: maintain existing order
return current_order_rate
```
## Leverage Callback
When trading in markets that allow leverage, this method must return the desired Leverage (Defaults to 1 -> No leverage).
Assuming a capital of 500USDT, a trade with leverage=3 would result in a position with 500 x 3 = 1500 USDT.
Values that are above `max_leverage` will be adjusted to `max_leverage`.
For markets / exchanges that don't support leverage, this method is ignored.
``` python
class AwesomeStrategy(IStrategy):
def leverage(self, pair: str, current_time: datetime, current_rate: float,
proposed_leverage: float, max_leverage: float, entry_tag: Optional[str], side: str,
**kwargs) -> float:
"""
Customize leverage for each new trade. This method is only called in futures mode.
:param pair: Pair that's currently analyzed
:param current_time: datetime object, containing the current datetime
:param current_rate: Rate, calculated based on pricing settings in exit_pricing.
:param proposed_leverage: A leverage proposed by the bot.
:param max_leverage: Max leverage allowed on this pair
:param entry_tag: Optional entry_tag (buy_tag) if provided with the buy signal.
:param side: 'long' or 'short' - indicating the direction of the proposed trade
:return: A leverage amount, which is between 1.0 and max_leverage.
"""
return 1.0
```
All profit calculations include leverage. Stoploss / ROI also include leverage in their calculation.
Defining a stoploss of 10% at 10x leverage would trigger the stoploss with a 1% move to the downside.

View File

@@ -4,40 +4,30 @@ This page explains how to customize your strategies, add new indicators and set
Please familiarize yourself with [Freqtrade basics](bot-basics.md) first, which provides overall info on how the bot operates.
## Install a custom strategy file
This is very simple. Copy paste your strategy file into the directory `user_data/strategies`.
Let assume you have a class called `AwesomeStrategy` in the file `AwesomeStrategy.py`:
1. Move your file into `user_data/strategies` (you should have `user_data/strategies/AwesomeStrategy.py`
2. Start the bot with the param `--strategy AwesomeStrategy` (the parameter is the class name)
```bash
freqtrade trade --strategy AwesomeStrategy
```
## Develop your own strategy
The bot includes a default strategy file.
Also, several other strategies are available in the [strategy repository](https://github.com/freqtrade/freqtrade-strategies).
You will however most likely have your own idea for a strategy.
This document intends to help you develop one for yourself.
This document intends to help you convert your strategy idea into your own strategy.
To get started, use `freqtrade new-strategy --strategy AwesomeStrategy`.
To get started, use `freqtrade new-strategy --strategy AwesomeStrategy` (you can obviously use your own naming for your strategy).
This will create a new strategy file from a template, which will be located under `user_data/strategies/AwesomeStrategy.py`.
!!! Note
This is just a template file, which will most likely not be profitable out of the box.
??? Hint "Different template levels"
`freqtrade new-strategy` has an additional parameter, `--template`, which controls the amount of pre-build information you get in the created strategy. Use `--template minimal` to get an empty strategy without any indicator examples, or `--template advanced` to get a template with most callbacks defined.
### Anatomy of a strategy
A strategy file contains all the information needed to build a good strategy:
- Indicators
- Buy strategy rules
- Sell strategy rules
- Entry strategy rules
- Exit strategy rules
- Minimal ROI recommended
- Stoploss strongly recommended
@@ -45,7 +35,7 @@ The bot also include a sample strategy called `SampleStrategy` you can update: `
You can test it with the parameter: `--strategy SampleStrategy`
Additionally, there is an attribute called `INTERFACE_VERSION`, which defines the version of the strategy interface the bot should use.
The current version is 2 - which is also the default when it's not set explicitly in the strategy.
The current version is 3 - which is also the default when it's not set explicitly in the strategy.
Future versions will require this to be set.
@@ -67,11 +57,51 @@ file as reference.**
needs to take care to avoid having the strategy utilize data from the future.
Some common patterns for this are listed in the [Common Mistakes](#common-mistakes-when-developing-strategies) section of this document.
### Dataframe
Freqtrade uses [pandas](https://pandas.pydata.org/) to store/provide the candlestick (OHLCV) data.
Pandas is a great library developed for processing large amounts of data.
Each row in a dataframe corresponds to one candle on a chart, with the latest candle always being the last in the dataframe (sorted by date).
``` output
> dataframe.head()
date open high low close volume
0 2021-11-09 23:25:00+00:00 67279.67 67321.84 67255.01 67300.97 44.62253
1 2021-11-09 23:30:00+00:00 67300.97 67301.34 67183.03 67187.01 61.38076
2 2021-11-09 23:35:00+00:00 67187.02 67187.02 67031.93 67123.81 113.42728
3 2021-11-09 23:40:00+00:00 67123.80 67222.40 67080.33 67160.48 78.96008
4 2021-11-09 23:45:00+00:00 67160.48 67160.48 66901.26 66943.37 111.39292
```
Pandas provides fast ways to calculate metrics. To benefit from this speed, it's advised to not use loops, but use vectorized methods instead.
Vectorized operations perform calculations across the whole range of data and are therefore, compared to looping through each row, a lot faster when calculating indicators.
As a dataframe is a table, simple python comparisons like the following will not work
``` python
if dataframe['rsi'] > 30:
dataframe['enter_long'] = 1
```
The above section will fail with `The truth value of a Series is ambiguous. [...]`.
This must instead be written in a pandas-compatible way, so the operation is performed across the whole dataframe.
``` python
dataframe.loc[
(dataframe['rsi'] > 30)
, 'enter_long'] = 1
```
With this section, you have a new column in your dataframe, which has `1` assigned whenever RSI is above 30.
### Customize Indicators
Buy and sell strategies need indicators. You can add more indicators by extending the list contained in the method `populate_indicators()` from your strategy file.
Buy and sell signals need indicators. You can add more indicators by extending the list contained in the method `populate_indicators()` from your strategy file.
You should only add the indicators used in either `populate_buy_trend()`, `populate_sell_trend()`, or to populate another indicator, otherwise performance may suffer.
You should only add the indicators used in either `populate_entry_trend()`, `populate_exit_trend()`, or to populate another indicator, otherwise performance may suffer.
It's important to always return the dataframe without removing/modifying the columns `"open", "high", "low", "close", "volume"`, otherwise these fields would contain something unexpected.
@@ -122,9 +152,19 @@ def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame
Look into the [user_data/strategies/sample_strategy.py](https://github.com/freqtrade/freqtrade/blob/develop/freqtrade/templates/sample_strategy.py).
Then uncomment indicators you need.
#### Indicator libraries
Out of the box, freqtrade installs the following technical libraries:
* [ta-lib](http://mrjbq7.github.io/ta-lib/)
* [pandas-ta](https://twopirllc.github.io/pandas-ta/)
* [technical](https://github.com/freqtrade/technical/)
Additional technical libraries can be installed as necessary, or custom indicators may be written / invented by the strategy author.
### Strategy startup period
Most indicators have an instable startup period, in which they are either not available, or the calculation is incorrect. This can lead to inconsistencies, since Freqtrade does not know how long this instable period should be.
Most indicators have an instable startup period, in which they are either not available (NaN), or the calculation is incorrect. This can lead to inconsistencies, since Freqtrade does not know how long this instable period should be.
To account for this, the strategy can be assigned the `startup_candle_count` attribute.
This should be set to the maximum number of candles that the strategy requires to calculate stable indicators.
@@ -136,8 +176,14 @@ In this example strategy, this should be set to 100 (`startup_candle_count = 100
By letting the bot know how much history is needed, backtest trades can start at the specified timerange during backtesting and hyperopt.
!!! Warning "Using x calls to get OHLCV"
If you receive a warning like `WARNING - Using 3 calls to get OHLCV. This can result in slower operations for the bot. Please check if you really need 1500 candles for your strategy` - you should consider if you really need this much historic data for your signals.
Having this will cause Freqtrade to make multiple calls for the same pair, which will obviously be slower than one network request.
As a consequence, Freqtrade will take longer to refresh candles - and should therefore be avoided if possible.
This is capped to 5 total calls to avoid overloading the exchange, or make freqtrade too slow.
!!! Warning
`startup_candle_count` should be below `ohlcv_candle_limit` (which is 500 for most exchanges) - since only this amount of candles will be available during Dry-Run/Live Trade operations.
`startup_candle_count` should be below `ohlcv_candle_limit * 5` (which is 500 * 5 for most exchanges) - since only this amount of candles will be available during Dry-Run/Live Trade operations.
#### Example
@@ -147,24 +193,24 @@ Let's try to backtest 1 month (January 2019) of 5m candles using an example stra
freqtrade backtesting --timerange 20190101-20190201 --timeframe 5m
```
Assuming `startup_candle_count` is set to 100, backtesting knows it needs 100 candles to generate valid buy signals. It will load data from `20190101 - (100 * 5m)` - which is ~2019-12-31 15:30:00.
Assuming `startup_candle_count` is set to 100, backtesting knows it needs 100 candles to generate valid buy signals. It will load data from `20190101 - (100 * 5m)` - which is ~2018-12-31 15:30:00.
If this data is available, indicators will be calculated with this extended timerange. The instable startup period (up to 2019-01-01 00:00:00) will then be removed before starting backtesting.
!!! Note
If data for the startup period is not available, then the timerange will be adjusted to account for this startup period - so Backtesting would start at 2019-01-01 08:30:00.
### Buy signal rules
### Entry signal rules
Edit the method `populate_buy_trend()` in your strategy file to update your buy strategy.
Edit the method `populate_entry_trend()` in your strategy file to update your entry strategy.
It's important to always return the dataframe without removing/modifying the columns `"open", "high", "low", "close", "volume"`, otherwise these fields would contain something unexpected.
This will method will also define a new column, `"buy"`, which needs to contain 1 for buys, and 0 for "no action".
This method will also define a new column, `"enter_long"` (`"enter_short"` for shorts), which needs to contain 1 for entries, and 0 for "no action". `enter_long` is a mandatory column that must be set even if the strategy is shorting only.
Sample from `user_data/strategies/sample_strategy.py`:
```python
def populate_buy_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
"""
Based on TA indicators, populates the buy signal for the given dataframe
:param dataframe: DataFrame populated with indicators
@@ -178,29 +224,58 @@ def populate_buy_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
(dataframe['tema'] > dataframe['tema'].shift(1)) & # Guard
(dataframe['volume'] > 0) # Make sure Volume is not 0
),
'buy'] = 1
['enter_long', 'enter_tag']] = (1, 'rsi_cross')
return dataframe
```
??? Note "Enter short trades"
Short-entries can be created by setting `enter_short` (corresponds to `enter_long` for long trades).
The `enter_tag` column remains identical.
Short-trades need to be supported by your exchange and market configuration!
Please make sure to set [`can_short`]() appropriately on your strategy if you intend to short.
```python
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[
(
(qtpylib.crossed_above(dataframe['rsi'], 30)) & # Signal: RSI crosses above 30
(dataframe['tema'] <= dataframe['bb_middleband']) & # Guard
(dataframe['tema'] > dataframe['tema'].shift(1)) & # Guard
(dataframe['volume'] > 0) # Make sure Volume is not 0
),
['enter_long', 'enter_tag']] = (1, 'rsi_cross')
dataframe.loc[
(
(qtpylib.crossed_below(dataframe['rsi'], 70)) & # Signal: RSI crosses below 70
(dataframe['tema'] > dataframe['bb_middleband']) & # Guard
(dataframe['tema'] < dataframe['tema'].shift(1)) & # Guard
(dataframe['volume'] > 0) # Make sure Volume is not 0
),
['enter_short', 'enter_tag']] = (1, 'rsi_cross')
return dataframe
```
!!! Note
Buying requires sellers to buy from - therefore volume needs to be > 0 (`dataframe['volume'] > 0`) to make sure that the bot does not buy/sell in no-activity periods.
### Sell signal rules
### Exit signal rules
Edit the method `populate_sell_trend()` into your strategy file to update your sell strategy.
Please note that the sell-signal is only used if `use_sell_signal` is set to true in the configuration.
Edit the method `populate_exit_trend()` into your strategy file to update your exit strategy.
Please note that the exit-signal is only used if `use_exit_signal` is set to true in the configuration.
It's important to always return the dataframe without removing/modifying the columns `"open", "high", "low", "close", "volume"`, otherwise these fields would contain something unexpected.
This will method will also define a new column, `"sell"`, which needs to contain 1 for sells, and 0 for "no action".
This method will also define a new column, `"exit_long"` (`"exit_short"` for shorts), which needs to contain 1 for exits, and 0 for "no action".
Sample from `user_data/strategies/sample_strategy.py`:
```python
def populate_sell_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
"""
Based on TA indicators, populates the sell signal for the given dataframe
Based on TA indicators, populates the exit signal for the given dataframe
:param dataframe: DataFrame populated with indicators
:param metadata: Additional information, like the currently traded pair
:return: DataFrame with buy column
@@ -212,13 +287,39 @@ def populate_sell_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame
(dataframe['tema'] < dataframe['tema'].shift(1)) & # Guard
(dataframe['volume'] > 0) # Make sure Volume is not 0
),
'sell'] = 1
['exit_long', 'exit_tag']] = (1, 'rsi_too_high')
return dataframe
```
??? Note "Exit short trades"
Short-exits can be created by setting `exit_short` (corresponds to `exit_long`).
The `exit_tag` column remains identical.
Short-trades need to be supported by your exchange and market configuration!
```python
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[
(
(qtpylib.crossed_above(dataframe['rsi'], 70)) & # Signal: RSI crosses above 70
(dataframe['tema'] > dataframe['bb_middleband']) & # Guard
(dataframe['tema'] < dataframe['tema'].shift(1)) & # Guard
(dataframe['volume'] > 0) # Make sure Volume is not 0
),
['exit_long', 'exit_tag']] = (1, 'rsi_too_high')
dataframe.loc[
(
(qtpylib.crossed_below(dataframe['rsi'], 30)) & # Signal: RSI crosses below 30
(dataframe['tema'] < dataframe['bb_middleband']) & # Guard
(dataframe['tema'] > dataframe['tema'].shift(1)) & # Guard
(dataframe['volume'] > 0) # Make sure Volume is not 0
),
['exit_short', 'exit_tag']] = (1, 'rsi_too_low')
return dataframe
```
### Minimal ROI
This dict defines the minimal Return On Investment (ROI) a trade should reach before selling, independent from the sell signal.
This dict defines the minimal Return On Investment (ROI) a trade should reach before exiting, independent from the exit signal.
It is of the following format, with the dict key (left side of the colon) being the minutes passed since the trade opened, and the value (right side of the colon) being the percentage.
@@ -233,10 +334,10 @@ minimal_roi = {
The above configuration would therefore mean:
- Sell whenever 4% profit was reached
- Sell when 2% profit was reached (in effect after 20 minutes)
- Sell when 1% profit was reached (in effect after 30 minutes)
- Sell when trade is non-loosing (in effect after 40 minutes)
- Exit whenever 4% profit was reached
- Exit when 2% profit was reached (in effect after 20 minutes)
- Exit when 1% profit was reached (in effect after 30 minutes)
- Exit when trade is non-loosing (in effect after 40 minutes)
The calculation does include fees.
@@ -248,7 +349,7 @@ minimal_roi = {
}
```
While technically not completely disabled, this would sell once the trade reaches 10000% Profit.
While technically not completely disabled, this would exit once the trade reaches 10000% Profit.
To use times based on candle duration (timeframe), the following snippet can be handy.
This will allow you to change the timeframe for the strategy, and ROI times will still be set as candles (e.g. after 3 candles ...)
@@ -271,69 +372,51 @@ class AwesomeStrategy(IStrategy):
Setting a stoploss is highly recommended to protect your capital from strong moves against you.
Sample:
Sample of setting a 10% stoploss:
``` python
stoploss = -0.10
```
This would signify a stoploss of -10%.
For the full documentation on stoploss features, look at the dedicated [stoploss page](stoploss.md).
If your exchange supports it, it's recommended to also set `"stoploss_on_exchange"` in the order_types dictionary, so your stoploss is on the exchange and cannot be missed due to network problems, high load or other reasons.
For more information on order_types please look [here](configuration.md#understand-order_types).
### Timeframe (formerly ticker interval)
### Timeframe
This is the set of candles the bot should download and use for the analysis.
Common values are `"1m"`, `"5m"`, `"15m"`, `"1h"`, however all values supported by your exchange should work.
Please note that the same buy/sell signals may work well with one timeframe, but not with the others.
Please note that the same entry/exit signals may work well with one timeframe, but not with the others.
This setting is accessible within the strategy methods as the `self.timeframe` attribute.
### Can short
To use short signals in futures markets, you will have to let us know to do so by setting `can_short=True`.
Strategies which enable this will fail to load on spot markets.
Disabling of this will have short signals ignored (also in futures markets).
### Metadata dict
The metadata-dict (available for `populate_buy_trend`, `populate_sell_trend`, `populate_indicators`) contains additional information.
The metadata-dict (available for `populate_entry_trend`, `populate_exit_trend`, `populate_indicators`) contains additional information.
Currently this is `pair`, which can be accessed using `metadata['pair']` - and will return a pair in the format `XRP/BTC`.
The Metadata-dict should not be modified and does not persist information across multiple calls.
Instead, have a look at the section [Storing information](#Storing-information)
Instead, have a look at the [Storing information](strategy-advanced.md#Storing-information) section.
### Storing information
## Strategy file loading
Storing information can be accomplished by creating a new dictionary within the strategy class.
By default, freqtrade will attempt to load strategies from all `.py` files within `user_data/strategies`.
The name of the variable can be chosen at will, but should be prefixed with `cust_` to avoid naming collisions with predefined strategy variables.
Assuming your strategy is called `AwesomeStrategy`, stored in the file `user_data/strategies/AwesomeStrategy.py`, then you can start freqtrade with `freqtrade trade --strategy AwesomeStrategy`.
Note that we're using the class-name, not the file name.
```python
class Awesomestrategy(IStrategy):
# Create custom dictionary
cust_info = {}
You can use `freqtrade list-strategies` to see a list of all strategies Freqtrade is able to load (all strategies in the correct folder).
It will also include a "status" field, highlighting potential problems.
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# Check if the entry already exists
if not metadata["pair"] in self._cust_info:
# Create empty entry for this pair
self._cust_info[metadata["pair"]] = {}
??? Hint "Customize strategy directory"
You can use a different directory by using `--strategy-path user_data/otherPath`. This parameter is available to all commands that require a strategy.
if "crosstime" in self.cust_info[metadata["pair"]:
self.cust_info[metadata["pair"]]["crosstime"] += 1
else:
self.cust_info[metadata["pair"]]["crosstime"] = 1
```
!!! Warning
The data is not persisted after a bot-restart (or config-reload). Also, the amount of data should be kept smallish (no DataFrames and such), otherwise the bot will start to consume a lot of memory and eventually run out of memory and crash.
!!! Note
If the data is pair-specific, make sure to use pair as one of the keys in the dictionary.
***
## Additional data (informative_pairs)
## Informative Pairs
### Get data for non-tradeable pairs
@@ -360,8 +443,150 @@ A full sample can be found [in the DataProvider section](#complete-data-provider
It is however better to use resampling to longer timeframes whenever possible
to avoid hammering the exchange with too many requests and risk being blocked.
??? Note "Alternative candle types"
Informative_pairs can also provide a 3rd tuple element defining the candle type explicitly.
Availability of alternative candle-types will depend on the trading-mode and the exchange. Details about this can be found in the exchange documentation.
``` python
def informative_pairs(self):
return [
("ETH/USDT", "5m", ""), # Uses default candletype, depends on trading_mode
("ETH/USDT", "5m", "spot"), # Forces usage of spot candles
("BTC/TUSD", "15m", "futures"), # Uses futures candles
("BTC/TUSD", "15m", "mark"), # Uses mark candles
]
```
***
### Informative pairs decorator (`@informative()`)
In most common case it is possible to easily define informative pairs by using a decorator. All decorated `populate_indicators_*` methods run in isolation,
not having access to data from other informative pairs, in the end all informative dataframes are merged and passed to main `populate_indicators()` method.
When hyperopting, use of hyperoptable parameter `.value` attribute is not supported. Please use `.range` attribute. See [optimizing an indicator parameter](hyperopt.md#optimizing-an-indicator-parameter)
for more information.
??? info "Full documentation"
``` python
def informative(timeframe: str, asset: str = '',
fmt: Optional[Union[str, Callable[[KwArg(str)], str]]] = None,
*,
candle_type: Optional[CandleType] = None,
ffill: bool = True) -> Callable[[PopulateIndicators], PopulateIndicators]:
"""
A decorator for populate_indicators_Nn(self, dataframe, metadata), allowing these functions to
define informative indicators.
Example usage:
@informative('1h')
def populate_indicators_1h(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['rsi'] = ta.RSI(dataframe, timeperiod=14)
return dataframe
:param timeframe: Informative timeframe. Must always be equal or higher than strategy timeframe.
:param asset: Informative asset, for example BTC, BTC/USDT, ETH/BTC. Do not specify to use
current pair.
:param fmt: Column format (str) or column formatter (callable(name, asset, timeframe)). When not
specified, defaults to:
* {base}_{quote}_{column}_{timeframe} if asset is specified.
* {column}_{timeframe} if asset is not specified.
Format string supports these format variables:
* {asset} - full name of the asset, for example 'BTC/USDT'.
* {base} - base currency in lower case, for example 'eth'.
* {BASE} - same as {base}, except in upper case.
* {quote} - quote currency in lower case, for example 'usdt'.
* {QUOTE} - same as {quote}, except in upper case.
* {column} - name of dataframe column.
* {timeframe} - timeframe of informative dataframe.
:param ffill: ffill dataframe after merging informative pair.
:param candle_type: '', mark, index, premiumIndex, or funding_rate
"""
```
??? Example "Fast and easy way to define informative pairs"
Most of the time we do not need power and flexibility offered by `merge_informative_pair()`, therefore we can use a decorator to quickly define informative pairs.
``` python
from datetime import datetime
from freqtrade.persistence import Trade
from freqtrade.strategy import IStrategy, informative
class AwesomeStrategy(IStrategy):
# This method is not required.
# def informative_pairs(self): ...
# Define informative upper timeframe for each pair. Decorators can be stacked on same
# method. Available in populate_indicators as 'rsi_30m' and 'rsi_1h'.
@informative('30m')
@informative('1h')
def populate_indicators_1h(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['rsi'] = ta.RSI(dataframe, timeperiod=14)
return dataframe
# Define BTC/STAKE informative pair. Available in populate_indicators and other methods as
# 'btc_rsi_1h'. Current stake currency should be specified as {stake} format variable
# instead of hard-coding actual stake currency. Available in populate_indicators and other
# methods as 'btc_usdt_rsi_1h' (when stake currency is USDT).
@informative('1h', 'BTC/{stake}')
def populate_indicators_btc_1h(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['rsi'] = ta.RSI(dataframe, timeperiod=14)
return dataframe
# Define BTC/ETH informative pair. You must specify quote currency if it is different from
# stake currency. Available in populate_indicators and other methods as 'eth_btc_rsi_1h'.
@informative('1h', 'ETH/BTC')
def populate_indicators_eth_btc_1h(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['rsi'] = ta.RSI(dataframe, timeperiod=14)
return dataframe
# Define BTC/STAKE informative pair. A custom formatter may be specified for formatting
# column names. A callable `fmt(**kwargs) -> str` may be specified, to implement custom
# formatting. Available in populate_indicators and other methods as 'rsi_upper'.
@informative('1h', 'BTC/{stake}', '{column}')
def populate_indicators_btc_1h_2(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['rsi_upper'] = ta.RSI(dataframe, timeperiod=14)
return dataframe
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# Strategy timeframe indicators for current pair.
dataframe['rsi'] = ta.RSI(dataframe, timeperiod=14)
# Informative pairs are available in this method.
dataframe['rsi_less'] = dataframe['rsi'] < dataframe['rsi_1h']
return dataframe
```
!!! Note
Do not use `@informative` decorator if you need to use data of one informative pair when generating another informative pair. Instead, define informative pairs
manually as described [in the DataProvider section](#complete-data-provider-sample).
!!! Note
Use string formatting when accessing informative dataframes of other pairs. This will allow easily changing stake currency in config without having to adjust strategy code.
``` python
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
stake = self.config['stake_currency']
dataframe.loc[
(
(dataframe[f'btc_{stake}_rsi_1h'] < 35)
&
(dataframe['volume'] > 0)
),
['enter_long', 'enter_tag']] = (1, 'buy_signal_rsi')
return dataframe
```
Alternatively column renaming may be used to remove stake currency from column names: `@informative('1h', 'BTC/{stake}', fmt='{base}_{column}_{timeframe}')`.
!!! Warning "Duplicate method names"
Methods tagged with `@informative()` decorator must always have unique names! Re-using same name (for example when copy-pasting already defined informative method)
will overwrite previously defined method and not produce any errors due to limitations of Python programming language. In such cases you will find that indicators
created in earlier-defined methods are not available in the dataframe. Carefully review method names and make sure they are unique!
## Additional data (DataProvider)
The strategy provides access to the `DataProvider`. This allows you to get additional data to use in your strategy.
@@ -392,22 +617,21 @@ Please always check the mode of operation to select the correct method to get da
### *available_pairs*
``` python
if self.dp:
for pair, timeframe in self.dp.available_pairs:
print(f"available {pair}, {timeframe}")
for pair, timeframe in self.dp.available_pairs:
print(f"available {pair}, {timeframe}")
```
### *current_whitelist()*
Imagine you've developed a strategy that trades the `5m` timeframe using signals generated from a `1d` timeframe on the top 10 volume pairs by volume.
Imagine you've developed a strategy that trades the `5m` timeframe using signals generated from a `1d` timeframe on the top 10 volume pairs by volume.
The strategy might look something like this:
*Scan through the top 10 pairs by volume using the `VolumePairList` every 5 minutes and use a 14 day RSI to buy and sell.*
Due to the limited available data, it's very difficult to resample our `5m` candles into daily candles for use in a 14 day RSI. Most exchanges limit us to just 500 candles which effectively gives us around 1.74 daily candles. We need 14 days at least!
Due to the limited available data, it's very difficult to resample `5m` candles into daily candles for use in a 14 day RSI. Most exchanges limit us to just 500-1000 candles which effectively gives us around 1.74 daily candles. We need 14 days at least!
Since we can't resample our data we will have to use an informative pair; and since our whitelist will be dynamic we don't know which pair(s) to use.
Since we can't resample the data we will have to use an informative pair; and since the whitelist will be dynamic we don't know which pair(s) to use.
This is where calling `self.dp.current_whitelist()` comes in handy.
@@ -418,17 +642,19 @@ This is where calling `self.dp.current_whitelist()` comes in handy.
pairs = self.dp.current_whitelist()
# Assign tf to each pair so they can be downloaded and cached for strategy.
informative_pairs = [(pair, '1d') for pair in pairs]
return informative_pairs
return informative_pairs
```
??? Note "Plotting with current_whitelist"
Current whitelist is not supported for `plot-dataframe`, as this command is usually used by providing an explicit pairlist - and would therefore make the return values of this method misleading.
### *get_pair_dataframe(pair, timeframe)*
``` python
# fetch live / historical candle (OHLCV) data for the first informative pair
if self.dp:
inf_pair, inf_timeframe = self.informative_pairs()[0]
informative = self.dp.get_pair_dataframe(pair=inf_pair,
timeframe=inf_timeframe)
inf_pair, inf_timeframe = self.informative_pairs()[0]
informative = self.dp.get_pair_dataframe(pair=inf_pair,
timeframe=inf_timeframe)
```
!!! Warning "Warning about backtesting"
@@ -443,9 +669,9 @@ It can also be used in specific callbacks to get the signal that caused the acti
``` python
# fetch current dataframe
if self.dp:
if self.dp.runmode.value in ('live', 'dry_run'):
dataframe, last_updated = self.dp.get_analyzed_dataframe(pair=metadata['pair'],
timeframe=self.timeframe)
timeframe=self.timeframe)
```
!!! Note "No data available"
@@ -455,25 +681,43 @@ if self.dp:
### *orderbook(pair, maximum)*
``` python
if self.dp:
if self.dp.runmode.value in ('live', 'dry_run'):
ob = self.dp.orderbook(metadata['pair'], 1)
dataframe['best_bid'] = ob['bids'][0][0]
dataframe['best_ask'] = ob['asks'][0][0]
if self.dp.runmode.value in ('live', 'dry_run'):
ob = self.dp.orderbook(metadata['pair'], 1)
dataframe['best_bid'] = ob['bids'][0][0]
dataframe['best_ask'] = ob['asks'][0][0]
```
!!! Warning
The order book is not part of the historic data which means backtesting and hyperopt will not work correctly if this method is used.
The orderbook structure is aligned with the order structure from [ccxt](https://github.com/ccxt/ccxt/wiki/Manual#order-book-structure), so the result will look as follows:
``` js
{
'bids': [
[ price, amount ], // [ float, float ]
[ price, amount ],
...
],
'asks': [
[ price, amount ],
[ price, amount ],
//...
],
//...
}
```
Therefore, using `ob['bids'][0][0]` as demonstrated above will result in using the best bid price. `ob['bids'][0][1]` would look at the amount at this orderbook position.
!!! Warning "Warning about backtesting"
The order book is not part of the historic data which means backtesting and hyperopt will not work correctly if this method is used, as the method will return uptodate values.
### *ticker(pair)*
``` python
if self.dp:
if self.dp.runmode.value in ('live', 'dry_run'):
ticker = self.dp.ticker(metadata['pair'])
dataframe['last_price'] = ticker['last']
dataframe['volume24h'] = ticker['quoteVolume']
dataframe['vwap'] = ticker['vwap']
if self.dp.runmode.value in ('live', 'dry_run'):
ticker = self.dp.ticker(metadata['pair'])
dataframe['last_price'] = ticker['last']
dataframe['volume24h'] = ticker['quoteVolume']
dataframe['vwap'] = ticker['vwap']
```
!!! Warning
@@ -483,7 +727,24 @@ if self.dp:
data returned from the exchange and add appropriate error handling / defaults.
!!! Warning "Warning about backtesting"
This method will always return up-to-date values - so usage during backtesting / hyperopt will lead to wrong results.
This method will always return up-to-date values - so usage during backtesting / hyperopt without runmode checks will lead to wrong results.
### Send Notification
The dataprovider `.send_msg()` function allows you to send custom notifications from your strategy.
Identical notifications will only be sent once per candle, unless the 2nd argument (`always_send`) is set to True.
``` python
self.dp.send_msg(f"{metadata['pair']} just got hot!")
# Force send this notification, avoid caching (Please read warning below!)
self.dp.send_msg(f"{metadata['pair']} just got hot!", always_send=True)
```
Notifications will only be sent in trading modes (Live/Dry-run) - so this method can be called without conditions for backtesting.
!!! Warning "Spamming"
You can spam yourself pretty good by setting `always_send=True` in this method. Use this with great care and only in conditions you know will not happen throughout a candle to avoid a message every 5 seconds.
### Complete Data-provider sample
@@ -536,7 +797,7 @@ class SampleStrategy(IStrategy):
return dataframe
def populate_buy_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[
(
@@ -544,7 +805,7 @@ class SampleStrategy(IStrategy):
(dataframe['rsi_1d'] < 30) & # Ensure daily RSI is < 30
(dataframe['volume'] > 0) # Ensure this candle had volume (important for backtesting)
),
'buy'] = 1
['enter_long', 'enter_tag']] = (1, 'rsi_cross')
```
@@ -578,7 +839,7 @@ All columns of the informative dataframe will be available on the returning data
``` python
'date', 'open', 'high', 'low', 'close', 'rsi' # from the original dataframe
'date_1h', 'open_1h', 'high_1h', 'low_1h', 'close_1h', 'rsi_1h' # from the informative dataframe
'date_1h', 'open_1h', 'high_1h', 'low_1h', 'close_1h', 'rsi_1h' # from the informative dataframe
```
??? Example "Custom implementation"
@@ -613,6 +874,79 @@ All columns of the informative dataframe will be available on the returning data
***
### *stoploss_from_open()*
Stoploss values returned from `custom_stoploss` must specify a percentage relative to `current_rate`, but sometimes you may want to specify a stoploss relative to the open price instead. `stoploss_from_open()` is a helper function to calculate a stoploss value that can be returned from `custom_stoploss` which will be equivalent to the desired percentage above the open price.
??? Example "Returning a stoploss relative to the open price from the custom stoploss function"
Say the open price was $100, and `current_price` is $121 (`current_profit` will be `0.21`).
If we want a stop price at 7% above the open price we can call `stoploss_from_open(0.07, current_profit, False)` which will return `0.1157024793`. 11.57% below $121 is $107, which is the same as 7% above $100.
``` python
from datetime import datetime
from freqtrade.persistence import Trade
from freqtrade.strategy import IStrategy, stoploss_from_open
class AwesomeStrategy(IStrategy):
# ... populate_* methods
use_custom_stoploss = True
def custom_stoploss(self, pair: str, trade: 'Trade', current_time: datetime,
current_rate: float, current_profit: float, **kwargs) -> float:
# once the profit has risen above 10%, keep the stoploss at 7% above the open price
if current_profit > 0.10:
return stoploss_from_open(0.07, current_profit, is_short=trade.is_short)
return 1
```
Full examples can be found in the [Custom stoploss](strategy-advanced.md#custom-stoploss) section of the Documentation.
!!! Note
Providing invalid input to `stoploss_from_open()` may produce "CustomStoploss function did not return valid stoploss" warnings.
This may happen if `current_profit` parameter is below specified `open_relative_stop`. Such situations may arise when closing trade
is blocked by `confirm_trade_exit()` method. Warnings can be solved by never blocking stop loss sells by checking `exit_reason` in
`confirm_trade_exit()`, or by using `return stoploss_from_open(...) or 1` idiom, which will request to not change stop loss when
`current_profit < open_relative_stop`.
### *stoploss_from_absolute()*
In some situations it may be confusing to deal with stops relative to current rate. Instead, you may define a stoploss level using an absolute price.
??? Example "Returning a stoploss using absolute price from the custom stoploss function"
If we want to trail a stop price at 2xATR below current price we can call `stoploss_from_absolute(current_rate - (candle['atr'] * 2), current_rate, is_short=trade.is_short)`.
``` python
from datetime import datetime
from freqtrade.persistence import Trade
from freqtrade.strategy import IStrategy, stoploss_from_absolute
class AwesomeStrategy(IStrategy):
use_custom_stoploss = True
def populate_indicators_1h(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['atr'] = ta.ATR(dataframe, timeperiod=14)
return dataframe
def custom_stoploss(self, pair: str, trade: 'Trade', current_time: datetime,
current_rate: float, current_profit: float, **kwargs) -> float:
dataframe, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe)
candle = dataframe.iloc[-1].squeeze()
return stoploss_from_absolute(current_rate - (candle['atr'] * 2), current_rate, is_short=trade.is_short)
```
## Additional data (Wallets)
The strategy provides access to the `Wallets` object. This contains the current balances on the exchange.
@@ -653,7 +987,7 @@ The following example queries for the current pair and trades from today, howeve
if self.config['runmode'].value in ('live', 'dry_run'):
trades = Trade.get_trades([Trade.pair == metadata['pair'],
Trade.open_date > datetime.utcnow() - timedelta(days=1),
Trade.is_open == False,
Trade.is_open.is_(False),
]).order_by(Trade.close_date).all()
# Summarize profit for this pair.
curdayprofit = sum(trade.close_profit for trade in trades)
@@ -677,7 +1011,7 @@ if self.config['runmode'].value in ('live', 'dry_run'):
Sample return value: ETH/BTC had 5 trades, with a total profit of 1.5% (ratio of 0.015).
``` json
{'pair': "ETH/BTC", 'profit': 0.015, 'count': 5}
{"pair": "ETH/BTC", "profit": 0.015, "count": 5}
```
!!! Warning
@@ -696,7 +1030,8 @@ Sometimes it may be desired to lock a pair after certain events happen (e.g. mul
Freqtrade has an easy method to do this from within the strategy, by calling `self.lock_pair(pair, until, [reason])`.
`until` must be a datetime object in the future, after which trading will be re-enabled for that pair, while `reason` is an optional string detailing why the pair was locked.
Locks can also be lifted manually, by calling `self.unlock_pair(pair)`.
Locks can also be lifted manually, by calling `self.unlock_pair(pair)` or `self.unlock_reason(<reason>)` - providing reason the pair was locked with.
`self.unlock_reason(<reason>)` will unlock all pairs currently locked with the provided reason.
To verify if a pair is currently locked, use `self.is_pair_locked(pair)`.
@@ -704,7 +1039,7 @@ To verify if a pair is currently locked, use `self.is_pair_locked(pair)`.
Locked pairs will always be rounded up to the next candle. So assuming a `5m` timeframe, a lock with `until` set to 10:18 will lock the pair until the candle from 10:15-10:20 will be finished.
!!! Warning
Locking pairs is not available during backtesting.
Manually locking pairs is not available during backtesting, only locks via Protections are allowed.
#### Pair locking example
@@ -719,7 +1054,7 @@ if self.config['runmode'].value in ('live', 'dry_run'):
# fetch closed trades for the last 2 days
trades = Trade.get_trades([Trade.pair == metadata['pair'],
Trade.open_date > datetime.utcnow() - timedelta(days=2),
Trade.is_open == False,
Trade.is_open.is_(False),
]).all()
# Analyze the conditions you'd like to lock the pair .... will probably be different for every strategy
sumprofit = sum(trade.close_profit for trade in trades)
@@ -730,16 +1065,16 @@ if self.config['runmode'].value in ('live', 'dry_run'):
## Print created dataframe
To inspect the created dataframe, you can issue a print-statement in either `populate_buy_trend()` or `populate_sell_trend()`.
To inspect the created dataframe, you can issue a print-statement in either `populate_entry_trend()` or `populate_exit_trend()`.
You may also want to print the pair so it's clear what data is currently shown.
``` python
def populate_buy_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[
(
#>> whatever condition<<<
),
'buy'] = 1
['enter_long', 'enter_tag']] = (1, 'somestring')
# Print the Analyzed pair
print(f"result for {metadata['pair']}")
@@ -754,6 +1089,8 @@ Printing more than a few rows is also possible (simply use `print(dataframe)` i
## Common mistakes when developing strategies
### Peeking into the future while backtesting
Backtesting analyzes the whole time-range at once for performance reasons. Because of this, strategy authors need to make sure that strategies do not look-ahead into the future.
This is a common pain-point, which can cause huge differences between backtesting and dry/live run methods, since they all use data which is not available during dry/live runs, so these strategies will perform well during backtesting, but will fail / perform badly in real conditions.
@@ -764,9 +1101,18 @@ The following lists some common patterns which should be avoided to prevent frus
- don't use `dataframe['volume'].mean()`. This uses the full DataFrame for backtesting, including data from the future. Use `dataframe['volume'].rolling(<window>).mean()` instead
- don't use `.resample('1h')`. This uses the left border of the interval, so moves data from an hour to the start of the hour. Use `.resample('1h', label='right')` instead.
### Colliding signals
When conflicting signals collide (e.g. both `'enter_long'` and `'exit_long'` are 1), freqtrade will do nothing and ignore the entry signal. This will avoid trades that enter, and exit immediately. Obviously, this can potentially lead to missed entries.
The following rules apply, and entry signals will be ignored if more than one of the 3 signals is set:
- `enter_long` -> `exit_long`, `enter_short`
- `enter_short` -> `exit_short`, `enter_long`
## Further strategy ideas
To get additional Ideas for strategies, head over to our [strategy repository](https://github.com/freqtrade/freqtrade-strategies). Feel free to use them as they are - but results will depend on the current market situation, pairs used etc. - therefore please backtest the strategy for your exchange/desired pairs first, evaluate carefully, use at your own risk.
To get additional Ideas for strategies, head over to the [strategy repository](https://github.com/freqtrade/freqtrade-strategies). Feel free to use them as they are - but results will depend on the current market situation, pairs used etc. - therefore please backtest the strategy for your exchange/desired pairs first, evaluate carefully, use at your own risk.
Feel free to use any of them as inspiration for your own strategies.
We're happy to accept Pull Requests containing new Strategies to that repo.

View File

@@ -14,7 +14,7 @@ from freqtrade.configuration import Configuration
# Initialize empty configuration object
config = Configuration.from_files([])
# Optionally, use existing configuration file
# Optionally (recommended), use existing configuration file
# config = Configuration.from_files(["config.json"])
# Define some constants
@@ -22,19 +22,23 @@ config["timeframe"] = "5m"
# Name of the strategy class
config["strategy"] = "SampleStrategy"
# Location of the data
data_location = Path(config['user_data_dir'], 'data', 'binance')
data_location = config['datadir']
# Pair to analyze - Only use one pair here
pair = "BTC_USDT"
pair = "BTC/USDT"
```
```python
# Load data using values set above
from freqtrade.data.history import load_pair_history
from freqtrade.enums import CandleType
candles = load_pair_history(datadir=data_location,
timeframe=config["timeframe"],
pair=pair)
pair=pair,
data_format = "hdf5",
candle_type=CandleType.SPOT,
)
# Confirm success
print("Loaded " + str(len(candles)) + f" rows of data for {pair} from {data_location}")
@@ -48,7 +52,9 @@ candles.head()
```python
# Load strategy using values set above
from freqtrade.resolvers import StrategyResolver
from freqtrade.data.dataprovider import DataProvider
strategy = StrategyResolver.load_strategy(config)
strategy.dp = DataProvider(config, None, None)
# Generate buy/sell signals using strategy
df = strategy.analyze_ticker(candles, {'pair': pair})
@@ -69,7 +75,7 @@ df.tail()
```python
# Report results
print(f"Generated {df['buy'].sum()} buy signals")
print(f"Generated {df['enter_long'].sum()} entry signals")
data = df.set_index('date', drop=False)
data.tail()
```
@@ -125,7 +131,45 @@ print(stats['strategy_comparison'])
trades = load_backtest_data(backtest_dir)
# Show value-counts per pair
trades.groupby("pair")["sell_reason"].value_counts()
trades.groupby("pair")["exit_reason"].value_counts()
```
## Plotting daily profit / equity line
```python
# Plotting equity line (starting with 0 on day 1 and adding daily profit for each backtested day)
from freqtrade.configuration import Configuration
from freqtrade.data.btanalysis import load_backtest_data, load_backtest_stats
import plotly.express as px
import pandas as pd
# strategy = 'SampleStrategy'
# config = Configuration.from_files(["user_data/config.json"])
# backtest_dir = config["user_data_dir"] / "backtest_results"
stats = load_backtest_stats(backtest_dir)
strategy_stats = stats['strategy'][strategy]
dates = []
profits = []
for date_profit in strategy_stats['daily_profit']:
dates.append(date_profit[0])
profits.append(date_profit[1])
equity = 0
equity_daily = []
for daily_profit in profits:
equity_daily.append(equity)
equity += float(daily_profit)
df = pd.DataFrame({'dates': dates,'equity_daily': equity_daily})
fig = px.line(df, x="dates", y="equity_daily")
fig.show()
```
### Load live trading results into a pandas dataframe
@@ -140,7 +184,7 @@ from freqtrade.data.btanalysis import load_trades_from_db
trades = load_trades_from_db("sqlite:///tradesv3.sqlite")
# Display results
trades.groupby("pair")["sell_reason"].value_counts()
trades.groupby("pair")["exit_reason"].value_counts()
```
## Analyze the loaded trades for trade parallelism
@@ -193,4 +237,18 @@ graph.show(renderer="browser")
```
## Plot average profit per trade as distribution graph
```python
import plotly.figure_factory as ff
hist_data = [trades.profit_ratio]
group_labels = ['profit_ratio'] # name of the dataset
fig = ff.create_distplot(hist_data, group_labels, bin_size=0.01)
fig.show()
```
Feel free to submit an issue or Pull Request enhancing this document if you would like to share ideas on how to best analyze the data.

Some files were not shown because too many files have changed in this diff Show More