Commit Graph

5679 Commits

Author SHA1 Message Date
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
ad746627b3 Fix lock-loop 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
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
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
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
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
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
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
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
36b7edc342 Update typing errors 2020-12-01 19:57:09 +01:00
Matthias
dda5bcbc8d
Merge pull request #4009 from mrsegen/patch-4
[Pairlist] Add PerformanceFilter
2020-11-30 07:48:15 +01:00
Leif Segen
e7a035eefe Lint 2020-11-28 12:29:31 -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
a47d8dbe56 Small refactor, avoiding duplicate calculation of profits 2020-11-28 11:35:29 +01:00
Leif Segen
37d2e476df isort imports 2020-11-28 01:59:30 -06:00
Leif Segen
966c6b308f Satisfy linter. 2020-11-28 01:34:18 -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
91b4c80d35 Remove unused parameters 2020-11-27 22:18:49 -06:00
Leif Segen
380cca2252 Remove unused imports 2020-11-27 22:00:48 -06:00
Leif Segen
7cbd89657f Initial step towards implementing proposed code 2020-11-27 21:24:40 -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
Matthias
fefb4b23d0 revise logic in should_sell 2020-11-27 09:24:53 +01:00
Matthias
81d08c4def Add detailed backtest test verifying the ROI / trailing stop collision 2020-11-27 08:24:56 +01:00
Matthias
dddbc799f9 have kraken stoploss-limit support trailing stop 2020-11-26 19:40:36 +01:00
Matthias
1d56c87a34 Fully support kraken limit stoploss 2020-11-25 21:40:39 +01:00
Matthias
53231d94a9
Merge pull request #3975 from freqtrade/volatility_filter
RangeStabilityFilter filter - filter for pairs without much movement
2020-11-25 19:17:06 +01:00
Matthias
c14c0f60a1 Add Support for kraken stoploss-limit 2020-11-25 16:27:27 +01:00
Matthias
6810192992 Update docstring for new filter 2020-11-25 15:14:36 +01:00
Matthias
8ae604d473 Ensure we're not running off of empty dataframes 2020-11-25 15:14:36 +01:00
Matthias
0d349cb355 Small finetuning 2020-11-25 15:14:36 +01:00
Matthias
8f1d2ff070 Renamd volatilityFilter to RangeStabilityFilter 2020-11-25 15:14:29 +01:00
Matthias
0104c9fde6 Fix double logging 2020-11-25 14:31:34 +01:00
Matthias
ceb50a7807 use exception handler when downloading data
closes #3992
2020-11-25 07:57:27 +01:00
Matthias
bd98ff6332 Update docstring in all pairlists 2020-11-24 20:24:51 +01:00
Matthias
006436a18d Require use_sell_signal to be true for edge
Otherwise edge will have strange results, as
edge runs with sell signal, while the bot runs without sell signal,
causing results to be invalid

closes #3900
2020-11-24 07:47:35 +01:00
Matthias
730c9ce471 Add Max_open_trades to summary metrics 2020-11-24 06:57:26 +01:00
Matthias
29c6a9263d Protect against 0 values 2020-11-22 15:50:44 +01:00
Matthias
2e1551a2eb Improve tests of volatilityfilter 2020-11-21 19:57:17 +01:00
Matthias
f8fab5c4f8 Add tests for failure cases 2020-11-21 15:51:39 +01:00
Matthias
109824c9a8 Add VolatilityFilter 2020-11-21 15:39:00 +01:00
Matthias
fb86d8f8ff Add get_historic_ohlcv_as_df to support VolatilityFilter 2020-11-21 15:28:50 +01:00
Matthias
4d60a4cf4e Add warning to StochRSI in sample strategy
closes #2961
2020-11-21 11:32:46 +01:00
Matthias
e8e3ca0c3c Catch ValueError from trade_conversion
closes #3967
2020-11-21 10:57:19 +01:00
Matthias
83861fabde Fix #3967, move TradeList type to constants 2020-11-21 10:52:15 +01:00
Matthias
5ed85963a9 Allow forcebuy price to be a string by converting it to float
fix #3970
2020-11-21 10:39:49 +01:00
Matthias
fa0fcfb492
Merge pull request #3939 from drdux/historic-pair
Historic pair
2020-11-19 19:46:08 +01:00
Matthias
7a8b274a44 Merge branch 'develop' into pr/imxuwang/3799 2020-11-19 13:18:03 +01:00
Matthias
52c9a2c37f Convert np to None when loading hdf5 trades to allow duplicate detection 2020-11-19 07:31:54 +01:00
Matthias
9621734adc Allow setting datafromat via configuration
closes #3953
2020-11-17 06:53:38 +01:00
Matthias
05f0cc787c Plotting should use startup_candles too
closes #3943
2020-11-14 09:28:00 +01:00
Matthias
164105acf2 Adjust startup_candle_count of sample strategies 2020-11-14 08:25:57 +01:00
Matthias
08b52926c8 Catch asyncio.TimeoutError when reloading async markets 2020-11-13 10:43:48 +01:00
Matthias
4eb96cfc4f Allow locks to be gathered even when the bot is stopped 2020-11-13 06:51:45 +01:00
Daniel Goller
2d6bfe1592 only skip pair validation rather than all of it 2020-11-12 11:32:45 +00:00
Daniel Goller
2424ac94c2 skip the check for active markets with flag for existing StaticPairList 2020-11-12 11:29:46 +00:00
Daniel Goller
2640dfee93 Revert "Added ConstPairList handler to skip validation of pairs if you want to backtest a pair that's not live any more, e.g. expiring contracts."
This reverts commit 13da8f9368.
2020-11-12 11:27:30 +00:00
Daniel Goller
916776bb53 Option to skip exchange validation, required to backtest pairs that are not live on the exchange any more. 2020-11-09 08:37:38 +00:00
Daniel Goller
13da8f9368 Added ConstPairList handler to skip validation of pairs if you want to backtest a pair that's not live any more, e.g. expiring contracts. 2020-11-09 08:34:40 +00:00
Matthias
2af1c80fd5 Convert _rpc_show_config to static method 2020-11-08 11:26:02 +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
b58d6d38b5 Use correct fields in telegram 2020-11-03 08:59:11 +01:00
Matthias
d1dab23283 Remove deprecated api fields 2020-11-03 08:59:11 +01:00
Matthias
cf89a773da Standardize trade api outputs
there should be no difference between current_profit and close_profit
 it's always profit, and the information if it's a closed trade is available elsewhere
2020-11-03 08:58:57 +01:00
Matthias
887d78171c
Merge pull request #3857 from freqtrade/arrow_deprecation_timestamp
Convert timestamp to int_timestamp for all arrow occurances
2020-11-02 16:40:43 +01:00
Matthias
e73203acb8 FIx bug with dmmp 2020-11-01 10:51:07 +01:00
Matthias Spiller
78874fa865 informative_pairs does not honor dataformat 2020-10-31 10:53:51 +00:00
Matthias
f4d39f2a12 Improve test coverage of deploy_commands 2020-10-29 07:44:03 +01:00
Matthias
19fcbc92a7 Remove stake-currency for download-data - it's not needed 2020-10-29 07:43:40 +01:00
Matthias
5cb3735a57 Improve error when hyperopt-loss-function is missing 2020-10-28 07:58:55 +01:00
Matthias
72f61f4682 Remove optional, now is not optional 2020-10-27 10:08:24 +01:00
Matthias
5c8779b155 Sort imports 2020-10-27 08:11:57 +01:00
Matthias
6c913fa617 Fix locking - should round before storing to have a consistent picture 2020-10-27 08:01:31 +01:00
Matthias
e602ac3406 Introduce Pairlocks middleware 2020-10-27 07:06:06 +01:00
Matthias
b8c12f6576 Test if return value is an exception when downloading historic data 2020-10-23 07:50:40 +02:00
Matthias
50e7418d24 Merge branch 'develop' into pr/imxuwang/3799 2020-10-22 08:05:09 +02:00
Matthias
9999017953 Fix small bug in case of duplicate locks 2020-10-22 08:04:48 +02:00
Matthias
2f91f87ad3 Merge branch 'develop' into pr/imxuwang/3799 2020-10-22 07:55:48 +02:00
Matthias
cf1a726198 Rename table to be inline with other table naming 2020-10-22 07:35:59 +02:00
Matthias
a143f7bc43 Improve pairlock docstrings 2020-10-21 19:35:57 +02:00
Matthias
fd6018f67a Fix dependency sorting 2020-10-21 06:21:13 +02:00
Matthias
adffd402ea Replace some pointless occurances of arrow 2020-10-20 20:11:38 +02:00
Matthias
7a092271c5 Merge branch 'develop' into arrow_deprecation_timestamp 2020-10-20 20:01:54 +02:00
Matthias
5f63fdd8ad Use better lock message 2020-10-20 19:40:39 +02:00
Matthias
64e680d7ee Document new api method 2020-10-20 19:30:00 +02:00
Matthias
1156f5e686 Use constant for times 2020-10-20 19:21:13 +02:00
Matthias
0daf77f313 Don't check for lock start date 2020-10-20 19:21:13 +02:00
Matthias
cd2866eaec Add rest endpoint for /locks 2020-10-20 19:21:13 +02:00
Matthias
7a9768ffa6 Add /locks Telegram endpoint 2020-10-20 19:21:13 +02:00
Matthias
7caa6cfe31 Add tests for pairlock 2020-10-20 19:21:13 +02:00
Matthias
e513871fd5 Persist pairlocks
closes #3034
2020-10-20 19:21:13 +02:00
Matthias
6eab20e337 Use constant to format datetime 2020-10-20 19:21:13 +02:00
Matthias
2d04c2dd4f Fix small bug when cancel-order does not contain id
happens with kraken ...
2020-10-20 06:24:46 +02:00
Xu Wang
1c27aaab72 Declare type of 'dur'. 2020-10-18 20:24:13 +01:00
Matthias
cf2ae788d7 Convert backtesting rows to Tuples for performance gains 2020-10-18 17:16:57 +02:00
Matthias
5d3a67d324 Don't debug-log during backtesting.
Even though log-messages are surpressed, calling "debug" will always
have to do something.
2020-10-18 16:38:16 +02:00
Matthias
b80a219d03 Improve typehints for backtesting 2020-10-18 16:35:23 +02:00
Matthias
380e6628e0 Merge branch 'develop' into feat/backtest_speedup_serialize 2020-10-18 16:19:04 +02:00
Matthias
2591a34db4 Don't use arrow objects for backtesting 2020-10-18 16:18:52 +02:00
Matthias
8cdc795a44 Rename persistence.init to init_db 2020-10-16 08:15:18 +02:00
Matthias
ec713ff5ae Convert _rpc_analysed_history_full to static method 2020-10-16 06:26:57 +02:00
Matthias
07da21e633 Fix problem when limit is > max allowed limit 2020-10-13 20:38:02 +02:00
Matthias
8165cc11df Change get_next_limit_in_list to use list comprehension 2020-10-13 20:30:35 +02:00
Matthias
8962b6d5c9 Add Bittrex subclass to correctly handle L2 orderbook 2020-10-13 20:09:43 +02:00
Matthias
077374ac42 Implement generic solution for l2 limited limit 2020-10-13 20:02:47 +02:00
Matthias
ecddaa663b Convert timestamp to int_timestamp for all arrow occurances 2020-10-13 06:24:01 +02:00
Matthias
44e374878c Fix mypy errors due to new version 2020-10-12 19:28:14 +02:00
Matthias
23bad8fd9f Rename DefahltHyperoptLoss function to ShortTradeDurHyperOptLoss 2020-10-10 14:22:29 +02:00
Matthias
f676156ec7 Implement division/0 checks for win and loss columns in edge
closes #3839
2020-10-09 06:39:13 +02:00
Matthias
23278e52db remove obsolete logging statements 2020-10-08 20:22:59 +02:00
Matthias
e8f2c09f08 Extract handling of left open trades to seperate method 2020-10-08 20:11:45 +02:00
Matthias
52502193c4 Backtesting should not double-loop for sell signals 2020-10-07 20:59:05 +02:00
Matthias
8c2f763193 Add test to ensure --hyperopt-loss is mandatory 2020-10-05 20:36:16 +02:00
Matthias
378b214a56 Remove hyperopt-loss default option
Force users to make a concious choice on a hyperopt-loss function
2020-10-05 19:27:28 +02:00
Matthias
584d095295
Merge pull request #3835 from freqtrade/hyperopt_trailing_output
Fix Hyperopt trailing output
2020-10-05 19:09:02 +02:00
Matthias
b86a602ad4 Update typehint 2020-10-05 16:17:37 +02:00
Matthias
40b61bbfe3 Adjust trailing-stop to be python compliant 2020-10-05 07:44:12 +02:00
Matthias
301598bac9
Merge pull request #3818 from freqtrade/rpc/candlehistory
Rpc/candlehistory
2020-10-04 09:34:25 +02:00
Matthias
c9b3766fa3 Remove rest_dump
it's just a wrapper around jsonify with no benefits
2020-10-04 09:14:46 +02:00
Matthias
63e1cba597 fix some typos 2020-10-04 09:12:52 +02:00
Matthias
cb74c9bcde Fix hyperopt output 2020-10-03 13:27:06 +02:00
Matthias
176006da29 Sort imports 2020-10-02 07:00:45 +02:00
Matthias
66b77d2f53 Fix some types 2020-10-02 06:52:43 +02:00
Matthias
62110dc2fc Add buy / sell signal count to dataframe interface 2020-09-29 06:35:47 +02:00
Matthias
350fcc071e Don't use __code__
__code__ is a special method name used by python already
source:
https://docs.python.org/3/reference/datamodel.html#special-method-names
2020-09-29 06:35:47 +02:00
Matthias
b38f68b3b0 Add 404 when strategy is not found 2020-09-29 06:35:47 +02:00
Matthias
becccca3d1 Add test for __code__ loading 2020-09-29 06:35:47 +02:00
Matthias
ba10bd7756 Add strategy code to __code__ 2020-09-29 06:35:47 +02:00
Matthias
4b6b7f8343 Add timeframe to candle return values 2020-09-29 06:35:47 +02:00
Matthias
f82d39e1b0 Enhance restclient and add tests for new api methods 2020-09-29 06:35:47 +02:00
Matthias
bb4993dc20 Add new endpoints to the documentation 2020-09-29 06:35:47 +02:00
Matthias
c0654f3caf Add resiliancy against not having a analyzed dataframe yet 2020-09-29 06:35:47 +02:00
Matthias
c59a1be154 show_config should not use freqtrade object 2020-09-29 06:35:47 +02:00
Matthias
1de248fe38 add list_available_pairs endpoint 2020-09-29 06:35:47 +02:00
Matthias
6a59740f83 Strategies should be a nested object 2020-09-29 06:35:47 +02:00
Matthias
32e6ea314c Return strategy with analyzed data 2020-09-29 06:35:47 +02:00
Matthias
18bbfdd341 Add /strategies endpoint 2020-09-29 06:35:47 +02:00
Matthias
f227f6a755 Use passed in config object to allow this to work in webserver mode 2020-09-29 06:35:47 +02:00
Matthias
bf0e75e2a5 Include data start and end date in dataframe api 2020-09-29 06:35:47 +02:00
Matthias
b93ad8840a Return date column unmodified 2020-09-29 06:35:47 +02:00
Matthias
482f1faa88 Don't fail if no buy-signal is present 2020-09-29 06:35:46 +02:00
Matthias
f5dc10e4ae Add pair_history endpoint 2020-09-29 06:35:46 +02:00
Matthias
677078350f Add plot_config endpoint 2020-09-29 06:35:46 +02:00
Matthias
133ca9c770 Convert types to support valid json 2020-09-29 06:35:46 +02:00
Matthias
a38b33cd9c Support limiting analyzed history 2020-09-29 06:35:46 +02:00
Matthias
9dfbc1a7ff Add analyzed_history endpoint 2020-09-29 06:35:46 +02:00
Xu Wang
7bce2cd29d Add trade duration by win/loss. 2020-09-28 20:30:20 +01:00
Matthias
6977ffdbf9 Merge branch 'develop' into isort_config 2020-09-28 20:21:55 +02:00
Matthias
253b7b763e Apply isort to freqtrade codebase 2020-09-28 19:40:46 +02:00
Xu Wang
627e221b65 Use tabulate to create sell reason message. 2020-09-27 20:23:13 +01:00
Matthias
6e70ae6e95 Improve code quality 2020-09-27 19:40:55 +02:00
Matthias
8de9c46110 Document hyperopt-filename usage 2020-09-27 17:09:33 +02:00
Matthias
3cb1a9a5a9 Support loading results from a specific hyperopt history file 2020-09-27 17:03:30 +02:00
Matthias
c42a924df8 Load latest file 2020-09-27 16:50:42 +02:00
Matthias
ff96cf154c Keep hyperopt result history 2020-09-27 16:33:26 +02:00
Matthias
b736691e0e Remove hyperopt --continue 2020-09-27 16:18:28 +02:00
Xu Wang
44ad0f631c Summarize trade reason for telegram command /stats. 2020-09-26 22:40:54 +01:00
Matthias
bb27b236ce Remove unused arguments 2020-09-26 14:55:12 +02:00