Commit Graph

585 Commits

Author SHA1 Message Date
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 a89c67787b Replace some more occurances of 'buy' 2021-09-18 09:23:53 +02:00
Matthias 4d558879e9 Merge branch 'feat/short' into pr/samgermain/5378 2021-09-17 19:33:35 +02:00
Matthias d680fdf33a Merge branch 'develop' into feat/short 2021-09-17 11:16:37 +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
Sam Germain f5b01443ad buy/short -> entry order, sell/exit_short -> exit order 2021-09-09 02:10:12 -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 5184cc7749 Merge branch 'develop' into feat/short 2021-09-02 07:03:14 +02:00
Matthias da5f8c87ae Add stake_currency to strategy interface
allows type-completion in editors
2021-08-31 07:18:57 +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 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 9a03cb96f5 Update get_signal 2021-08-24 20:24:51 +02:00
Matthias b40f985b13 Add short-exit logic to backtesting 2021-08-24 20:02:40 +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 9add3bf808 Add enter_long compatibility layer 2021-08-23 21:12:46 +02:00
Sam Germain 0afeb269ad Removed unnecessary TODOs 2021-08-23 00:15:35 -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
Sam Germain a5be535cc9 strategy interface: removed some changes 2021-08-21 17:06:04 -06: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 c456cfc312 Merge branch 'develop' into pr/Axel-CH/5347 2021-08-14 09:13:30 +02:00
Matthias cf27968b97 Properly preserve trade's low during backtesting 2021-08-09 19:38:56 +02:00
Matthias a5f796bc97 refactor ohlcvdata_to_dataframe to advise_all_indicators 2021-08-09 14:53:18 +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
Sam Germain b9356a5564 Autopep8 formatting 2021-08-06 16:35:39 -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 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
Matthias ad0e4a8567 Add BooleanParameter 2021-08-04 20:52:56 +02:00
Matthias 3c41223333 Add test for protections-hyperopt 2021-08-04 20:01:28 +02:00
Matthias 544e0da6c2 Add protection parameter space 2021-08-04 06:50:14 +02:00
Matthias 6410a6528b Add missing methods to advanced strategy template 2021-08-04 06:46:21 +02: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 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 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 c981641441 Don't fail if strategy doesn't contain sell signal 2021-08-02 20:30:46 +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
kevinjulian aea5da0c73 changes testcase 2021-07-23 11:42:43 +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
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 235c1afd09 add buy_tag on telegram 2021-07-22 01:53:15 +07:00
kevinjulian 49886874aa rename to buy_tag 2021-07-21 20:05:35 +07:00
kevinjulian 66a7070170 run linter 2021-07-20 23:56:03 +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 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
Rokas Kupstys 0e4466ca1e Implement strategy-controlled stake sizes. Expose `self.wallet` to a strategy. 2021-07-11 12:38:58 +03:00
Matthias 898bef1837
Merge pull request #5219 from freqtrade/hyperopt_paramfile
automatic Hyperopt paramfile
2021-07-04 13:56:52 +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
Matthias 645da51b5f Add test for parameter loading 2021-06-30 06:55:10 +02:00
Matthias 55f032b18e Catch trying to read faulty parameter file 2021-06-29 20:51:29 +02:00
Matthias a2ccc1526e Load parameters from file 2021-06-29 07:07:34 +02:00
Matthias 2310deec53 Update name to get non-optimized parameters 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 158cb415a9 Add settings interface to have types available 2021-06-26 17:28:37 +02:00
Matthias 1067a9f356 Move strategy-override signals to top-level of the config
closes #2867
2021-06-26 16:06:13 +02:00
aayush-jain18 d294ef10d7 unexpected docstring params 2021-06-25 23:56:16 +05:30
aayush-jain18 a46f60bd94 spell corrections 2021-06-25 22:10:04 +05:30
Matthias 96fbb226c5 Implement better strategy checks
part of #2696
2021-06-19 19:32:29 +02:00
Matthias e1010ff592 Don't load protections from config if strategy defines a property 2021-06-18 19:55:53 +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 d4dfdf04fc Move RPCMessageType to enums 2021-06-09 20:23:17 +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 d7fdc2114a allow list-strategies to show if params are hyperoptable 2021-05-29 13:27:08 +02:00
Matthias 4bc018a456 Change rate back to "open" for custom_sell
closes #4920
2021-05-14 07:18:10 +02:00
Rokas Kupstys 6af4de8fe8 Remove dataframe parameter from docs. 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 9049d6b779 Reformat hyper to cache parameters 2021-05-02 10:45:21 +02:00
Matthias 555262b6e1 Only calculate additional indicators if the space is selected 2021-05-01 16:40:29 +02:00
Matthias e050ea8dfa Don't load parameters for other space 2021-05-01 16:21:59 +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 55faa6a84a safe_wrapper should use kwargs to call methods 2021-04-26 20:18:03 +02:00
Matthias dbf33271b5 Small doc changes 2021-04-26 19:52:26 +02:00
Rokas Kupstys 31a2285eac Fix mypy complaints. 2021-04-26 10:42:24 +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 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 90476c4287 Add "range" property to IntParameter 2021-04-24 07:00:33 +02:00
Matthias 9dc7f776d9 Improve log output when loading parameters 2021-04-23 20:35:30 +02:00
Matthias e820814809 Default-stoploss-hyperopt should use decimal space, nto real 2021-04-14 20:32:34 +02:00
Matthias 9804e20114 Don't use _set_value for autoOpt-Spaces 2021-04-10 09:53:48 +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 5f67400649 Add SKDecimal Space 2021-04-09 21:58:15 +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 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
Rokas Kupstys faf40482ef Fix parameter printing. 2021-04-03 13:49:24 +03:00
Rokas Kupstys ea43d5ba85 Implement DecimalParameter and rename FloatParameter to RealParameter. 2021-04-02 17:08:16 +03:00
Matthias 5acdc9bf42 Fix type errors by converting all hyperopt methods to instance methods 2021-04-01 06:47:23 +02:00
Rokas Kupstys 5e5b11d4d6 Split "enabled" to "load" and "optimize" parameters. 2021-03-31 12:31:28 +03: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 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
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 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
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 e32b2097f0 Use timestamp in UTC timezone for ROI comparisons 2021-02-27 09:32:59 +01:00
JoeSchr 642e3be7c5
Fix(strategy/interface.py): comment typo
`advice_buy` -> `advise_buy`
2021-02-26 23:17:59 +01:00
Matthias 3d9b4034e6 Use already calculated current_profit for sell_profit_offset comparison 2021-02-02 08:06:19 +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 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
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