Commit Graph

682 Commits

Author SHA1 Message Date
Matthias d13cb4c055 Introduce safe_value_fallback_2 2020-07-15 19:50:09 +02:00
Matthias 5cebc9f39d Move stoploss_on_exchange_limit_ratio to configuration schema 2020-07-15 19:28:40 +02:00
Matthias 6ee6e51ab4 Merge branch 'develop' into pr/hroff-1902/3478 2020-07-13 07:22:43 +02:00
gambcl 2e45859aef Added range checks to min_days_listed in AgeFilter 2020-07-08 18:06:30 +01:00
Matthias b95065d701 Log backoff 2020-06-29 20:00:42 +02:00
Matthias 4d9ecf137b Fix failing test in python 3.7
can't use Magicmock in 3.7 (works in 3.8 though).
2020-06-28 20:38:28 +02:00
Matthias c6124180fe Fix bug when fetching orders fails 2020-06-28 19:45:42 +02:00
Matthias 6362bfc36e Fix calculate_backoff implementation 2020-06-28 19:41:21 +02:00
Matthias cbcbb4bdb5 Rename get_stoploss_order to fetch_stoploss_order (align with fetch_order) 2020-06-28 16:30:24 +02:00
Matthias 92c70fb903 Rename get_order to fetch_order (to align to ccxt naming) 2020-06-28 16:27:35 +02:00
Matthias e040c518ca Dynamic backoff on DDos errors 2020-06-28 16:19:12 +02:00
Matthias bf61bc9d83 Introduce ExchangeError 2020-06-28 16:01:40 +02:00
Matthias 5bd4798ed0 Add retrier to stoploss calls (but without retrying) 2020-06-28 11:56:29 +02:00
Matthias 2c45114a64 Implement DDos backoff (1s) 2020-06-28 11:17:06 +02:00
Matthias f976905728 Fix more exchange message typos 2020-06-18 20:00:18 +02:00
Matthias 45ffb26910 Merge branch 'develop' into pr/hroff-1902/3478 2020-06-18 19:54:46 +02:00
Matthias d4fb5af456 Also reload async markets
fixes #2876 - Logs and Empty ticker history  for new pair
2020-06-17 07:23:20 +02:00
Matthias a3506f4d8e Merge branch 'develop' into timeframe 2020-06-15 06:35:55 +02:00
Matthias f80b5f9410
Merge pull request #3438 from freqtrade/ftx_stoploss
Ftx stoploss
2020-06-14 07:02:15 +02:00
Matthias f6f7c99b9c
Adjust typography and add missing space
Co-authored-by: hroff-1902 <47309513+hroff-1902@users.noreply.github.com>
2020-06-14 06:31:05 +02:00
hroff-1902 4660909e95 Validate stoploss_on_exchange_limit_ratio at startup time 2020-06-14 01:07:00 +03:00
hroff-1902 be03c22dba Minor: Fix exception message 2020-06-14 00:35:58 +03:00
hroff-1902 37bc2d28ad Revert "Remove _load_async_markets"
This reverts commit 6744f8f052.
2020-06-13 13:34:29 +03:00
hroff-1902 0067a3ab7c Change logging level 2020-06-10 06:30:29 +03:00
hroff-1902 7d451638a8 Make _reload_markets() public 2020-06-10 01:39:23 +03:00
hroff-1902 6744f8f052 Remove _load_async_markets 2020-06-10 01:22:55 +03:00
Matthias f0eb0bc350 Support limit orders 2020-06-03 06:11:34 +02:00
Matthias 77a62b845a Fix some comments 2020-06-03 06:11:34 +02:00
Matthias b58fd179f2 Don't hardcode pair ... 2020-06-03 06:11:34 +02:00
Matthias 11ebdefd09 Fix bug after rebase 2020-06-03 06:11:34 +02:00
Matthias f83c1c5abf Use get_stoploss_order and cancel_stoploss_order
This allows exchanges to use stoploss which don't have the same
endpoints
2020-06-03 06:11:34 +02:00
Matthias 68a59fd26d Add Hint to suggest this is still broken 2020-06-03 06:11:34 +02:00
Matthias 78dea19ffb Implement first version of FTX stop 2020-06-03 06:11:34 +02:00
hroff-1902 04a2fb16aa
Merge pull request #3433 from freqtrade/fix/cost_calc_crash
Free trades should not crash the bot
2020-06-02 22:20:29 +03:00
Matthias a2551daf12 Fix ZeroDivision problem where cost is 0.0 2020-06-02 20:55:12 +02:00
Matthias 08049d23b4 Use "market_is_tradable" for whitelist validation 2020-06-02 20:41:29 +02:00
Matthias b74a3addc6 Update tests 2020-06-02 20:30:31 +02:00
Matthias b22e3a67d8 rename symbol_is_pair to market_is_tradable
Make it part of the exchange class, so subclasses can override this
2020-06-02 20:29:50 +02:00
Matthias 8550c3e43f
Merge pull request #3409 from hroff-1902/exchange_logging
Minor: Better exchange debug logging
2020-06-02 20:27:53 +02:00
hroff-1902 48117666fe
Update freqtrade/exchange/exchange.py
Co-authored-by: Matthias <xmatthias@outlook.com>
2020-06-02 21:09:23 +03:00
hroff-1902 85fedf95e8 Make mypy happy 2020-06-02 18:43:37 +03:00
Matthias 898def7f6c Remove ticker_interval from exchange 2020-06-01 20:39:01 +02:00
hroff-1902 123a556ec8 Better exchange logging 2020-05-31 13:05:58 +03:00
Matthias f187753f8f Add ccxt_sync_config to simplify ccxt configuration 2020-05-30 10:45:50 +02:00
Matthias f3824d970b Use dict for symbol_is_pair 2020-05-29 20:20:06 +02:00
Matthias 16cd1f06b2 Rename get_order_book to fetch_l2_order_book (aligning to ccxt) 2020-05-26 20:27:35 +02:00
Matthias 046202fdda Fix typing circular dependency 2020-05-22 20:56:34 +02:00
Matthias 76bd97d510
Merge pull request #3317 from hroff-1902/refactor-informative
Refactor informative pairs
2020-05-18 21:57:16 +02:00
hroff-1902 115586a50f Introduce freqtrade.typing 2020-05-18 21:59:50 +03:00
Matthias 839ca28604
Merge pull request #3334 from hroff-1902/retrier-dependency-exceptions
Do not throttle with DependencyException in Exchange retrier
2020-05-18 19:49:24 +02:00
hroff-1902 6951b20aa0 Do not throttle with DependencyException in retrier 2020-05-18 17:31:34 +03:00
hroff-1902 8bdd5e7121 Minor: correct import of retrier 2020-05-18 15:20:51 +03:00
hroff-1902 6fa8750fea
Merge branch 'develop' into refactor-informative 2020-05-18 14:00:09 +03:00
hroff-1902 627c5059f0 Move create_pair_list to pairlistmanager 2020-05-18 13:54:21 +03:00
Matthias 5a9a31351a Adjust empty f-strings to be non-fstrings 2020-05-18 11:40:25 +02:00
hroff-1902 bf25746965 Introduce datatype for informative pairs 2020-05-16 12:27:56 +03:00
Matthias ba68c42aae
Merge pull request #3297 from bmoulkaf/develop
Fix stoploss on binance bug
2020-05-15 08:23:18 +02:00
hroff-1902 8e4ffea52b
Merge pull request #3239 from freqtrade/feat/fee_handling
Improve fee handling
2020-05-14 18:48:48 +03:00
Matthias d86855f2f3
Merge pull request #3129 from freqtrade/trades_to_list
convert dl-trades datadownload to list
2020-05-13 09:41:26 +02:00
bmoulkaf fe3ea8e7ec Fix stoploss on binance bug 2020-05-13 05:15:18 +00:00
hroff-1902 d4362ed357 Minor: improve exception handling in exchange 2020-05-09 09:29:40 +03:00
Matthias 021e2b58ca Support partially cancelled orders for fee calculation 2020-05-01 20:24:26 +02:00
Matthias 6b33d5af1e Fix fee-calculation for dry-run orders 2020-05-01 19:51:35 +02:00
Matthias 59bafc8d02 Implement fee rate calculation 2020-05-01 15:50:02 +02:00
Matthias 45c97fde2d Use correct typehint for extract_cost_curr_rate 2020-05-01 15:50:02 +02:00
Matthias e74ed0ba7b Add tests for fee extraction methods 2020-04-30 20:05:27 +02:00
Matthias 2e4dc6c253 Exchange should return fee dict for dry-run orders 2020-04-30 19:56:48 +02:00
Matthias a867d40eac Move fee_methods to exchange 2020-04-30 19:33:27 +02:00
Matthias c775d65126 Update typehint for cancel_order 2020-04-18 06:55:25 +02:00
Matthias 5e3e0e819f Add tests for cancel_order_with_result 2020-04-17 17:53:18 +02:00
Matthias 800891a475 Add tests for cancel_order_with_result 2020-04-17 07:18:46 +02:00
hroff-1902 df79011aba
Merge pull request #3112 from freqtrade/trade_state_updates
Trade state updates
2020-04-16 12:05:19 +03:00
Matthias 33b6c7de5b Add tests for price_one_pip 2020-04-15 07:53:31 +02:00
Matthias 36e714a7b2 Add price_get_one_pip filter 2020-04-15 07:19:27 +02:00
Matthias cfe1e4876a Improve testcase for cancel_order_empty 2020-04-14 19:20:47 +02:00
Matthias d76bb1ccf4 Use List of Lists instead of list of Dicts for trades data 2020-04-01 19:45:21 +02:00
Matthias 270ac2e8c1 Add check_order_cancelled_empty method to exchange 2020-03-25 09:43:04 +01:00
hroff-1902 3208faf7ed Do not use ticker where it's not a ticker 2020-03-08 20:47:02 +03:00
hroff-1902 8475baba4e
Merge pull request #2995 from freqtrade/stake_curr_empty
Allow Stake currency empty when using download-data
2020-03-02 00:53:09 +03:00
Matthias 60f04cff4d Simplify expression 2020-02-29 20:41:03 +01:00
Matthias d7373be553 Add official support for Kraken 2020-02-29 16:58:22 +01:00
Matthias 60579485e5 fix empty stake currency problem 2020-02-29 14:56:36 +01:00
hroff-1902 e6d003f8f2
Merge pull request #2973 from freqtrade/support_non_pairs
Support non pairs
2020-02-26 12:20:45 +03:00
Matthias f38accb77b Return empty string if no quote / base currency can be found 2020-02-26 07:09:54 +01:00
Matthias 4e218be51d Don't use markets[pair]['quote'] 2020-02-26 07:08:09 +01:00
Matthias 31ac4598ba Fix last occurances of pair splitting 2020-02-25 07:16:37 +01:00
Matthias 61037ab7b8 Implement get_pair_base_curr and get_pair_quote_curr 2020-02-24 21:50:27 +01:00
Matthias 3e4f663418 Move pairlist validation to exchange (we need to use .quote) from
markets
2020-02-24 21:33:42 +01:00
Matthias f5b4a6d3d7 Remove fetch_ticker caching 2020-02-22 11:10:05 +01:00
Matthias 3787ac7b98 increment limit to adjust to FTX defaults (1500 candles) 2020-02-16 13:20:11 +01:00
hroff-1902 d457d43999
Merge pull request #2833 from hroff-1902/type-hints
Add some type hints
2020-02-03 23:24:26 +03:00
hroff-1902 684cb54992 Add pair to exception msg 2020-02-03 17:17:46 +03:00
hroff-1902 df249c7c03
Remove unclear comment 2020-02-03 09:37:50 +03:00
Matthias d64751687b Fix link and lowercase variable 2020-02-02 10:47:44 +01:00
hroff-1902 f3d500085c Add some type hints 2020-02-02 07:00:40 +03:00
Matthias cf9331919f move exchange-specific order-parsing to exchange class
Related to stoploss_on_exchange in combination with trailing stoploss.

Binance contains stopPrice in the info, while kraken returns the same
value as "price".
2020-01-19 19:54:30 +01:00
Matthias f1629c907a Implement stoploss for kraken 2020-01-19 14:40:09 +01:00
Matthias e6f1912443 Use named arguments for stoploss create_order call 2020-01-19 14:40:09 +01:00
Matthias 16b34e11ca Complete rename of stoploss_limit to stoploss 2020-01-19 14:40:09 +01:00
Matthias 256fc2e78c Rename stoploss_limit to stoploss 2020-01-19 13:30:56 +01:00
Matthias 8d2e0bfd62 Move rate-calcuation for stoploss-limit order to exchange 2020-01-19 13:13:09 +01:00
hroff-1902 2f82122fc4
Merge pull request #2763 from freqtrade/fix/precision_rounding
Fix/precision rounding
2020-01-17 01:25:30 +03:00
Matthias 4c823f12e3 Sort imports 2020-01-14 20:25:58 +01:00
Matthias bea4ad8eff Revert price_to_precision to rounding up 2020-01-14 20:16:20 +01:00
Matthias 5fcab1eee8 Align method names to internal ccxt names
These methods are reimplemented from ccxt so we can test their behaviour.
2020-01-12 14:55:05 +01:00
Matthias b60d7ad42f Use ccxt.decimal_to_precision instead of our own calculation 2020-01-12 14:41:09 +01:00
Matthias fa1f9bcdbd expose precisionMode from exchange class 2020-01-12 14:37:45 +01:00
Matthias 53abfdbcbf Use sorted on set instead of explicit list conversion 2020-01-12 12:48:29 +01:00
Matthias 3519cebf66 Add test for failing stake_validation 2020-01-11 13:14:19 +01:00
Matthias 60b47b6eec Add tests for get_quote_currencies 2020-01-11 12:01:34 +01:00
Matthias 13274964a9 Implement validation for valid stake currency 2020-01-11 11:54:00 +01:00
Matthias 235a10ab86 Don't suppport <1m timeframes 2020-01-11 11:36:28 +01:00
Matthias 1ffda29fd2 Adjust improts to new exception location 2019-12-30 15:02:17 +01:00
Matthias cadde3ab6d Check if markets.info is a dict before using it 2019-12-27 16:15:44 +01:00
Matthias 21622ac313 Rename get_ticker to fetch_ticker 2019-12-18 16:34:30 +01:00
hroff-1902 39197458f4
Merge pull request #2661 from freqtrade/wallet_dry
Introduce Dry-Run Wallet
2019-12-16 14:00:11 +03:00
Matthias c741b67c3c Adjust tests for dry_run wallet simulation 2019-12-15 10:39:52 +01:00
Matthias 931d24b5a8 Have dry_run_wallet default to 1000 2019-12-15 09:26:17 +01:00
Matthias 2275a1539e Remove default symbol from get_fee() 2019-12-14 13:22:42 +01:00
Matthias b69f5afaaf Round amount to precision also for dry-runs 2019-12-13 06:59:10 +01:00
hroff-1902 6174a5dd55 Reimplement adjustment of ccxt 'has' with more generic ccxt_config class attribute 2019-11-13 20:22:23 +03:00
hroff-1902 e26bbc7de8 Add fix for bibox exchange 2019-11-13 19:50:54 +03:00
Matthias 08aedc18e1 Exchange ticker_interval with timeframe in some more places 2019-11-12 15:13:06 +01:00
Matthias da57396d07 Fix UTC handling of timestamp() conversation in fetch_my_trades 2019-11-08 06:55:07 +01:00
Matthias 9a42afe0be Move exchange-constants and retriers to exchange.common 2019-10-31 10:59:17 +01:00
Matthias 132a4da7cf Small style fixes and adjusted tests 2019-10-27 10:56:38 +01:00
Matthias 73f5bff9c5 Add validation to make sure strategies work on that exchange 2019-10-27 10:38:21 +01:00
hroff-1902 b26faa13bd Call validate_timeframe only when validate is True 2019-10-22 13:51:36 +03:00
hroff-1902 ad5f7e1581 Merge remote-tracking branch 'origin/develop' into list-pairs2 2019-10-22 12:30:39 +03:00
hroff-1902 3cf95f9f6c
Merge pull request #2369 from freqtrade/disable_exchangevalidate
Allow skipping of exchange validation
2019-10-22 12:22:48 +03:00
hroff-1902 1bc63288a3
Merge branch 'develop' into list-pairs2 2019-10-20 23:22:45 +03:00
hroff-1902 47fabca1d9
Merge pull request #2372 from xmatthias/kraken_ohlcv_emulate
download tick-based data to emulate candles
2019-10-19 19:32:37 +03:00
Matthias fd22c87295 Some minor cleanups to trades download methods and docs 2019-10-19 10:05:30 +02:00
hroff-1902 8564affdf0 Add tests for Exchange.get_markets() 2019-10-17 22:45:20 +03:00
hroff-1902 b6e26c82ea Replace market_is_pair() by symbol_is_pair() 2019-10-17 18:44:25 +03:00
hroff-1902 1e61263a28 More sofisticated market_is_pair(), taken from #1989 2019-10-17 17:49:04 +03:00
hroff-1902 92fda0f76c Allow --base and --quote be lists of currencies 2019-10-17 02:09:19 +03:00
hroff-1902 6e27c47dee Handle properly exchanges with no active flag set for markets 2019-10-14 13:32:39 +03:00
Matthias 76ad5bea0e Load correct exchange class
closes #2371
2019-10-14 11:36:42 +02:00
Matthias 13e80e449c cleanup and better docstring 2019-10-14 06:22:10 +02:00
Matthias 762ae3a598 Extend tests 2019-10-13 13:15:22 +02:00
Matthias 640d58eb13 Remove unneeded checks 2019-10-13 13:15:22 +02:00
Matthias fa8c61382b Remove unneeded exception handlers 2019-10-13 13:15:22 +02:00
Matthias 16d6914b15 Add test to cover missing line 2019-10-13 13:15:22 +02:00
Matthias 05e473642b Small adjustments to get_trade_history 2019-10-13 13:15:22 +02:00
Matthias 0d592f6c55 Refactor trade downloading to handle exceptions only once 2019-10-13 13:15:22 +02:00
Matthias 9584629f50 Rename argument from dl_path to datadir 2019-10-13 13:15:22 +02:00
Matthias 1f79ca9539 Remove duplicate check 2019-10-13 13:15:22 +02:00
Matthias 1d8fc97053 Fix duplicate trade error, rename some methods 2019-10-13 13:15:22 +02:00
Matthias 57dee794d1 Fix end-reached for id-based trade-download 2019-10-13 13:15:22 +02:00
Matthias 2c0bb71a6e Add download_trades_history() 2019-10-13 13:15:22 +02:00
Matthias ab8f638e44 Move id/time detection to get_historic_trades method 2019-10-13 13:15:22 +02:00
Matthias 77c367ad1d First draft of async get_trade methods 2019-10-13 13:15:22 +02:00
Matthias 26b3148904 Add build_ohlcv wrapper 2019-10-13 13:15:22 +02:00
Matthias 27dc9ca799 Add trades_pagination attributes 2019-10-13 13:15:22 +02:00
Matthias baad1a5166 Explain _params element 2019-10-13 13:15:22 +02:00
hroff-1902 7cf7982565 Add list-pairs and list-markets subcommands 2019-10-13 13:12:20 +03:00
Matthias f3f6e9d365 Allow skipping of exchange validation 2019-10-13 10:33:22 +02:00
hroff-1902 946b8c29d7
Merge pull request #2317 from hroff-1902/list-timeframes
Add list-timeframes subcommand
2019-10-06 16:28:15 +03:00
hroff-1902 d1fa5f307b Add --all option to list-exchanges 2019-10-01 00:33:33 +03:00
hroff-1902 7617dd5029 Add separate message for `hitbtc` exchange 2019-09-30 20:01:55 +03:00
hroff-1902 272c977d08 Add exchanges to the list of bad exchanges 2019-09-30 03:55:55 +03:00
hroff-1902 75446d8195 Refactor list-timeframes command with the use of the Exchange class methods 2019-09-29 23:18:04 +03:00
hroff-1902 c5f455d660
Merge pull request #2256 from freqtrade/kraken_balance
fix Kraken balance calculation
2019-09-12 23:12:55 +03:00
Matthias 6c5eff4a7c Use List of Tuples, remove unused columns 2019-09-12 07:03:52 +02:00
hroff-1902 849d694c27 Don't inherit from object 2019-09-12 04:39:52 +03:00
Matthias 3b4bbe7a18 Implement get_balances which uses open_orders 2019-09-11 19:43:16 +02:00
Matthias c01953daf2 Remove kraken block 2019-09-11 06:57:58 +02:00
Matthias 48ac37a1b8 BLock kraken trading - it's not working at the moment 2019-09-05 20:16:09 +02:00
hroff-1902 caec5ac941
Merge pull request #2206 from freqtrade/sloe_handling
Improve stoploss on exchange handling
2019-09-04 10:00:53 +03:00
Matthias aae9c3194f Reenable stoploss_on_exchange for dry-run 2019-09-01 17:48:06 +02:00
Matthias f91557f549 Add space to exception message 2019-09-01 10:17:17 +02:00
Matthias 9f53e9f5dd Raise InvalidOrder error when stoploss-creation fails 2019-09-01 09:08:35 +02:00
Matthias b5789203f2
Merge branch 'develop' into timeframe_use_ccxt 2019-08-26 19:48:58 +02:00
Matthias 565a543b7b Use ccxt base methods to round timeframe 2019-08-25 10:34:56 +02:00
Matthias a4c8b5bf5d Move binance-specific test to test_binance.py 2019-08-25 10:08:06 +02:00
Matthias 2c66b33fd1 Adapt some tests to use Binance subclass for stoplosslimit 2019-08-25 09:57:21 +02:00
Matthias defa1c027d Move stoploss_limit to binance subclass 2019-08-25 09:50:37 +02:00
Matthias ea179a8e38 stoploss_limit shall not use `create_order()`
It needs to handle exceptions differently
2019-08-25 09:43:10 +02:00
Matthias 8a17615b5a move exceptionhandling from create_order() to calling functions 2019-08-25 09:42:02 +02:00
hroff-1902 d19b11a00f exchange cosmetics 2019-08-22 20:01:41 +03:00
Matthias dc35a8022b
Merge pull request #2157 from freqtrade/fix/create_order_crash
create market order crash if exchange raises an exception
2019-08-20 06:22:43 +02:00
Matthias a4ede02ced Gracefully handle problems with dry-run orders 2019-08-18 19:38:23 +02:00
Matthias 045ac1019e Split test for buy-orders too 2019-08-18 15:58:53 +02:00
Matthias ee7ba96e85 Don't do calculations in exception handlers when one element can be None
fixes #2011
2019-08-18 15:46:38 +02:00
Matthias 93cf2cd19b
Merge pull request #2135 from freqtrade/ohlcv_docstring
[minor] Improve docstring for some downloading methods
2019-08-15 16:23:42 +02:00
Matthias 14c4854987 Merge branch 'develop' into lock_pairs 2019-08-15 06:56:39 +02:00
Matthias 9f26c4ebdc Merge branch 'develop' into fix/sell_order_hanging 2019-08-15 06:46:12 +02:00
Matthias 11790fbf01 Fix typos in docstrings 2019-08-15 06:37:26 +02:00
Matthias 84baef922c Rename get_history to get_historic_ohlcv 2019-08-14 10:14:54 +02:00
Matthias 4da2bfefb7 Improve docstring for some downloading methods 2019-08-14 09:37:17 +02:00
Matthias 3c589bb877 fail if known bad exchanges are detcted 2019-08-13 08:27:46 +02:00
Matthias d8dbea9d5b Add exchange_reasons to bad exchanges 2019-08-13 08:20:35 +02:00
Matthias ca739f71fb Fix default argument handling for timeframe_to_nextdate 2019-08-12 20:39:24 +02:00
Matthias 2600cb7b64 simplify timeframe_next_date calculation 2019-08-12 20:04:19 +02:00
Matthias 444ee274d7 close dry-run orders in case of market orders 2019-08-12 16:46:45 +02:00
Matthias 1ce63b5b42 Reformat tests to be easier readable 2019-08-12 16:25:01 +02:00
Matthias dd0ba183f8 Add timeframe_to_prev_candle 2019-08-12 16:11:43 +02:00
Matthias 933a553dd4 Convert timeframe to next date 2019-08-12 16:08:23 +02:00
Matthias a90ced1f38 Since arguments are in milliseconds integer throughout ccxt.
Explained here: https://github.com/ccxt/ccxt/issues/5636

fixes #2093
2019-08-06 20:09:09 +02:00