Commit Graph

803 Commits

Author SHA1 Message Date
Matthias 84329ad2ca Add confirm_trade* methods to abort buying or selling 2020-06-18 06:50:06 +02:00
Matthias dea7e3db01 Use supress_errors in strategy wrapper - ensure it's called once 2020-06-18 06:50:06 +02:00
Matthias bc821c7c20 Add documentation for bot_loop_start 2020-06-18 06:50:06 +02:00
Matthias 273aaaff12 Introduce .analyze() function for Strategy
Fixing a few tests along the way
2020-06-18 06:50:05 +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
hroff-1902 de36f3d850 Cosmetics in freqtradebot 2020-06-14 01:42:45 +03:00
hroff-1902 7d451638a8 Make _reload_markets() public 2020-06-10 01:39:23 +03:00
Matthias 5f9994c9ed Reduce verbosity of sell-rate fetching 2020-06-05 20:24:21 +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
hroff-1902 64881a94e2
Merge branch 'develop' into timeframe 2020-06-02 15:56:34 +03:00
Matthias af0f29e6b7 Update persistence to use timeframe 2020-06-02 10:02:36 +02:00
Matthias 947903a4ac Use timeframe from within strategy 2020-06-02 09:36:04 +02:00
hroff-1902 4c2228a2da
Merge pull request #3399 from freqtrade/fix_sell_rate_caching
[minor] Fix sell rate caching
2020-06-02 04:04:16 +03:00
Matthias cadc50ce9b Replace more occurances of ticker_interval with timeframe 2020-06-01 20:49:40 +02:00
Matthias c35f9f8d39 Verify sell-rate got a value - otherwise downstream code does not work.
Using PricingException here will cease operation for this pair for this
iteration - postponing handling to the next iteration - where hopefully
a price is again present.
2020-06-01 19:45:37 +02:00
Matthias 57e951dbce Add orderbook sell rate to sell_rate_cache 2020-05-30 11:08:56 +02:00
Matthias f4af4cc2b2 Small formatting improvement 2020-05-27 07:11:59 +02:00
Matthias 8c87fcdae3 Rename PricingException to PricingError 2020-05-26 20:35:11 +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 7a7b26e840 Add exception handlers for orderbook logic 2020-05-26 20:14:05 +02:00
hroff-1902 6fa8750fea
Merge branch 'develop' into refactor-informative 2020-05-18 14:00:09 +03:00
hroff-1902 ba26f3a73a Merge branch 'refactor-informative' of ssh://github.com/hroff-1902/freqtrade into refactor-informative 2020-05-18 13:55:09 +03:00
hroff-1902 627c5059f0 Move create_pair_list to pairlistmanager 2020-05-18 13:54:21 +03:00
Matthias 2074d986a6 Update test to verify we're not spamming messages 2020-05-17 11:12:30 +02:00
Matthias dd55d2eea3 Reduce spammyness of parcial cancel orders 2020-05-17 10:53:07 +02:00
hroff-1902 318e435a8f
Merge branch 'develop' into refactor-informative 2020-05-16 22:14:50 +03:00
Matthias 7a11219b61
Reword some documentation strings
Co-authored-by: hroff-1902 <47309513+hroff-1902@users.noreply.github.com>
2020-05-16 13:17:48 +02:00
Matthias 2a1fcc0f06 Merge branch 'develop' into pr/jpribyl/3210-1 2020-05-16 13:09:38 +02:00
hroff-1902 facaaabc1e Rename _refresh_whitelist() 2020-05-16 12:27:56 +03:00
hroff-1902 f8b01f5a43 Make flake happy 2020-05-16 12:27:56 +03:00
hroff-1902 035a12ce61 Move _create_pair_whitelist to dataprovider 2020-05-16 12:27:56 +03: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 255ff6cd06 Should return False if it's not been cancelled empty 2020-05-13 20:52:40 +02:00
Matthias 60f26ba501 use update_trade_state also for closed stoploss orders 2020-05-13 20:25:32 +02:00
Paul D. Mendes 9fbe135790 attached pairlist manager onto dataprovider init for unified access to dynamic whitelist 2020-05-11 20:17:03 +04:00
Matthias 73a1496318 Catch exception on cancel_order 2020-05-10 17:44:45 +02:00
hroff-1902 5b92387732
Merge pull request #3259 from freqtrade/fix/filled
Fix handling of partially or non-filled timedout orders
2020-05-07 09:58:26 +03:00
Matthias 1ba2df79c6 Ause isclose for comparison, assign filled to variable
add some comments
2020-05-07 06:51:02 +02:00
hroff-1902 0340d7bf37
Merge pull request #3249 from freqtrade/increase_rate_cache
[minor] Increase cache for rate limit to avoid delays
2020-05-05 19:08:31 +03:00
Matthias 981976681a Use filled, it's the safer choice when determining the filled amount. 2020-05-05 07:09:12 +02:00
Matthias 648723fb83 Use 30min rate cache 2020-05-05 06:32:03 +02:00
Matthias b38f9ed5e7 Increase cache for rate limit to avoid delays
Helps when calling /status or /status table frequently on slowish
exchanges
2020-05-03 20:44:18 +02:00
Matthias 2a4c9bf3d3 Improve logmessage when falling back to wallet amount 2020-05-03 20:32:45 +02:00
Matthias 58168336e1 Add test for apply_fee_conditional 2020-05-03 11:13:59 +02:00
Matthias 38c4949360 Align applying of fee when comming from orders or trades 2020-05-03 10:50:59 +02:00
Matthias 78b3d8487f Add typehint 2020-05-01 20:34:58 +02:00
Matthias 021e2b58ca Support partially cancelled orders for fee calculation 2020-05-01 20:24:26 +02:00
Matthias 737fc6d198 Fix bug when querying side 2020-05-01 20:05:13 +02:00
Matthias 6d620ba1f6 Verify if fee for this side has been updated 2020-05-01 19:54:16 +02:00
jpribyl bd51cd332b Cancel all open orders after receiving /stop or ctrl+c 2020-05-01 10:36:11 -06:00
Matthias 40d4949f06 Don't handle trades if they've just been closed. 2020-05-01 17:46:01 +02:00
Matthias 7558e4bffe Split fee detection from trades from general logic 2020-05-01 16:13:07 +02:00
Matthias 371100a97c Update fee handling 2020-05-01 16:01:33 +02:00
Matthias db8fb39a38 don't use trade.update directly! 2020-05-01 15:50:02 +02:00
Matthias a867d40eac Move fee_methods to exchange 2020-04-30 19:33:27 +02:00
Matthias d3b9f4d393 Add extract_cost_curr_rate 2020-04-30 19:28:36 +02:00
Matthias 6d7a3a0cc9 Extract more logic into order-has_fee 2020-04-30 07:12:08 +02:00
Matthias b125dd3728 Extract order_has_fee method 2020-04-30 07:06:06 +02:00
Matthias 431b244f43 Merge branch 'develop' into interface_ordertimeoutcallback 2020-04-19 06:58:44 +02:00
Matthias 0273539f06 Remove exceptionhandler, this exception is handled in
cancel_with_response
2020-04-17 19:55:53 +02:00
Matthias 1069cb3616 Use cancel_order_with_result when cancelling orders after timeout 2020-04-17 17:53:56 +02:00
Matthias fc684b0091 Ensure deleting filled is not raising an error if filled does not exist 2020-04-17 06:59:52 +02:00
hroff-1902 68be239a0e
Merge pull request #3146 from freqtrade/buy_order_timeout_logging
Improve handling for buy order cancels
2020-04-16 23:41:45 +03:00
Matthias 1f70fcfa2d Update logmessage 2020-04-16 20:19:34 +02:00
Matthias f39706cabd Fix #3130 - when corder['remaining'] contains none-type 2020-04-09 19:35:27 +02:00
Matthias 5cff72a42e Improve logging to ensure which branch is used for buy order cancels 2020-04-09 09:22:38 +02:00
Matthias 95011919d3 Remove questionable handling of orders 2020-03-25 11:18:33 +01:00
Matthias 3c1b155e9f Remove filled if amount is modified to suit fee structure 2020-03-25 09:43:04 +01:00
Matthias f3103be15c Fix test 2020-03-25 09:43:04 +01:00
Matthias 700cedc573 Unify handling of open orders to update_trade_state 2020-03-25 09:43:04 +01:00
Matthias 7c47c6e3bd check for timeouts before exiting positions 2020-03-25 09:43:04 +01:00
Matthias 9c351007f5 Provide reason for cancelled sell order 2020-03-25 09:43:04 +01:00
Matthias 1817e6fbdf Combine real_amount updating into one method 2020-03-25 09:43:04 +01:00
Matthias 2c434e9b11 Add close_proit_abs column 2020-03-22 11:16:23 +01:00
hroff-1902 fb4e9b3938
Merge pull request #3025 from yazeed/minor_create_trade_optimization
minor create_trade() optimization
2020-03-21 10:36:39 +03:00
Yazeed Al Oyoun 942792f123 updated as suggested 2020-03-20 05:48:53 +01:00
Matthias 5e702f6891 Verify cancel_order returnvalue is a dictionary 2020-03-19 19:44:14 +01:00
Matthias a1bbeaa668 Merge branch 'develop' into interface_ordertimeoutcallback 2020-03-15 14:56:14 +01:00
hroff-1902 3208faf7ed Do not use ticker where it's not a ticker 2020-03-08 20:47:02 +03:00
Matthias 847df7b70c
Merge pull request #3026 from yazeed/add_default_to_ignore_roi_if_buy_signal
default for ignore_roi_if_buy_signal in freqtradebot.py
2020-03-06 19:35:41 +01:00
Yazeed Al Oyoun b8d05d8751 found instance of config get without default 2020-03-05 22:14:05 +01:00
Yazeed Al Oyoun 0587256733 minor create_trade() optimization 2020-03-05 21:57:01 +01:00
Yazeed Al Oyoun 4474482307 unifying get_sell_rate with get_buy_rate 2020-03-05 20:44:29 +01:00
hroff-1902 34093d1208
Merge branch 'develop' into no-percent-1 2020-03-05 14:27:12 +03:00
Matthias 53dcb5d5ed Fix logging expression 2020-03-03 19:36:03 +01:00
Matthias 6e2290c4f0 Allow last to be empty -
closes #3005
2020-03-02 20:05:54 +01:00
hroff-1902 e411717de9 No percent where ratio is to be used 2020-02-28 12:36:39 +03:00
Matthias 0fea3a7ea7 Some final polish to configurable_side 2020-02-26 19:50:17 +01:00
Matthias 8edc3eb5fb Use generator to generate sell price scaffold testing 2020-02-26 19:39:12 +01:00
Matthias e4b2949188 Change buy_rate calculation to use price_side 2020-02-26 19:39:12 +01:00
Matthias 5f71232038 Refactor get_buy_rate to use rate variable 2020-02-26 19:39:12 +01:00
Matthias de48a697b0 Use price_side for get_sell_rate 2020-02-26 19:39:12 +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 4e218be51d Don't use markets[pair]['quote'] 2020-02-26 07:08:09 +01:00
hroff-1902 5a900858d8
Merge branch 'develop' into rate_caching 2020-02-26 04:04:20 +03:00
Matthias a030ce9348 Reformat if condition 2020-02-25 20:22:59 +01:00
Matthias d44f6651c4 Fix small parenteses bug 2020-02-25 19:55:23 +01:00
Matthias e8eaa8920e Use get_base_currency instead of splitting by / 2020-02-25 07:01:31 +01:00
Matthias 61037ab7b8 Implement get_pair_base_curr and get_pair_quote_curr 2020-02-24 21:50:27 +01:00
Matthias 77ef3240cd Implement log messages 2020-02-22 11:20:19 +01:00
Matthias 97e6e5e976 Implement caching in the correct place 2020-02-22 11:12:33 +01:00
Matthias f5b4a6d3d7 Remove fetch_ticker caching 2020-02-22 11:10:05 +01:00
Matthias bf556c8678 Merge branch 'develop' into interface_ordertimeoutcallback 2020-02-21 20:35:07 +01:00
Matthias 6c01542fed Ad check_sell_timeout 2020-02-21 20:27:13 +01:00
hroff-1902 269a669af8 Move heartbeat to worker 2020-02-21 05:07:31 +03:00
Matthias ab27d2c720
Merge pull request #2921 from hroff-1902/adjust-buy-notification
Move rpc send to be after db session add/flash
2020-02-14 20:02:56 +01:00
hroff-1902 20c21b42d5 Move rpc send to be after db session add/flash 2020-02-14 06:23:03 +03:00
hroff-1902 36ef5c6bdf Get rid of delete_trades method in Freqtradebot 2020-02-14 04:05:17 +03:00
Yazeed Al Oyoun f09af888b1 modified get_buy/sell_rate refresh to true on notify_sell_cancel and notify_buy_cancel 2020-02-12 21:55:38 +01:00
Yazeed Al Oyoun f6db784a85 removed default to refresh argument in get_buy_rate and get_sell_rate 2020-02-12 21:50:33 +01:00
Yazeed Al Oyoun cde1b2b56c readded rpc status message for partial buys 2020-02-11 16:28:48 +01:00
Yazeed Al Oyoun 5f4c209fca fixed one more occurence of executed buy, and test 2020-02-11 16:14:49 +01:00
Yazeed Al Oyoun 4fedf1e564 default refresh TRUE on get_buy_rate and get_sell_Rate 2020-02-11 16:05:44 +01:00
Yazeed Al Oyoun 867b736b84 Fixed to Executing Buys & Sells 2020-02-11 15:50:21 +01:00
Yazeed Al Oyoun 7f4b90c68f fixed actual open_rate in notify_buy_cancel 2020-02-11 15:45:35 +01:00
Yazeed Al Oyoun f99d1c3829 fixed open_rate instead of open_rate_requested 2020-02-11 15:44:47 +01:00
Yazeed Al Oyoun 879b513822 enhanced method description 2020-02-08 21:31:36 +01:00
Yazeed Al Oyoun f3b1161640 wide notifications fixes 2020-02-08 21:02:52 +01:00
Matthias 49dcc561b7 POC for check_buy_timeout 2020-02-06 20:30:17 +01:00
Yazeed Al Oyoun 91b4c9668c More consistency changes... 2020-02-04 01:57:24 +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
Matthias e3cb5d26c0
Merge pull request #2835 from yazeed/reduce_noise_if_use_order_book_true
reduced noise without verbose mode if use_order_book is true
2020-02-02 19:42:50 +01:00
hroff-1902 e8c1abc509
Merge pull request #2799 from freqtrade/fix_stoploss_recreated
Fix stoploss recreated
2020-02-02 16:59:45 +03:00
hroff-1902 6594679e52
Merge pull request #2779 from freqtrade/stoploss_market
Stoploss on exchange for Kraken
2020-02-02 14:48:45 +03:00
Yazeed Al Oyoun aeabe1800b modified two lines from logger.info to logger.debug cause they're too spammy 2020-02-02 10:49:00 +01:00
hroff-1902 f3d500085c Add some type hints 2020-02-02 07:00:40 +03:00
hroff-1902 e1356fb80e
Merge pull request #2800 from yazeed/enhanced_check_depth_of_market_logging
better logging on check_depth_of_market_buy()
2020-01-29 10:56:14 +03:00
Yazeed Al Oyoun a0b92fe0b1 removed typo 2020-01-28 19:29:47 +01:00
Yazeed Al Oyoun 328a9ffafd fixed typo in false statement 2020-01-28 19:27:49 +01:00
hroff-1902 30e3e434ab Add notify_status() to FreqtradeBot 2020-01-27 03:34:53 +03:00
Yazeed Al Oyoun f8db7f1709 added ask price, bid price, immediate ask quantity, and immediate bid quantity to check_depth_of_market_buy. also added a line that mentions if delta condition was satisfied or not. 2020-01-25 04:17:41 +01:00
Matthias 70b9bd9c0e Verify if trade is closed before acting on Stoploss_on_exchange 2020-01-23 20:36:48 +01:00
Matthias ea5ac1efb5 Don't handle stoploss if there is an open regular order 2020-01-23 20:24:23 +01:00
Matthias a83de241e4 Check for closed stoploss-orders first 2020-01-23 19:40:31 +01:00
Matthias 1d141cd406 Merge branch 'develop' into stoploss_market 2020-01-23 19:35:05 +01:00
Matthias bc4c469797 Merge branch 'develop' into stoploss_market 2020-01-22 20:51:52 +01:00
Matthias aad10ceee3 Add threading lock object for /forcesell
Protects against stoploss_on_exchange order recreation
in case of /forcesell (it's a timing issue, so may or may not happen).
2020-01-22 20:50:09 +01:00
Matthias 8a940eb0c1 Align price finding function name on buy side with get_sell_rate 2020-01-22 14:46:28 +01:00
Matthias 1bf475fa1a Remove .get calls for dry_run - it's a mandatory property 2020-01-20 20:24:40 +01: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 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
Matthias 29a5e4fba1 Update wallets before getting amount 2020-01-15 21:52:54 +01:00
Matthias 8bcfe4a6aa Up log level of safe_sell_amount message 2020-01-15 21:01:36 +01:00
Matthias d1bf388b0e Wallet amount must be compared with >= 2020-01-15 19:56:14 +01:00
Matthias fab19ae3a7 Implement last_stake_amount_min_ratio 2020-01-10 06:36:28 +01:00
Matthias 9713dc8d94 Ensure wallets.update is called before buy
closes #2756
2020-01-09 20:09:21 +01:00
Matthias b37f34ff5b Implement amend_last_stake_amount 2020-01-05 13:25:11 +01:00
Matthias a75420f75f Merge branch 'develop' into relative_stake 2020-01-05 12:55:55 +01:00
Matthias 7daa5bc338 Don't return None from unlimited_stake - 0 handles this just as well 2020-01-05 12:50:44 +01:00
Matthias 455838648d Apply get_available_balance logic to regular trades, too 2020-01-03 10:41:10 +01:00
Matthias 3c7981160c Extract `get_available_stake_amount` 2020-01-03 10:14:23 +01:00
Matthias 560aea876e Remove fiat_currency temporary variable 2020-01-02 20:20:29 +01:00
Matthias cba156dfff Add offset calculation for relative stake maximum limit 2020-01-02 13:20:57 +01:00
hroff-1902 a47a25ca88 Refine passing msg params 2020-01-02 14:38:25 +03:00
hroff-1902 88efa4065b Align the name of a variable to be same for buy and sell parts 2020-01-02 13:56:16 +03:00
hroff-1902 f15e5e9d57 Add _notify_buy() 2020-01-02 13:51:25 +03:00
hroff-1902 e89fa44680 Arrange common section for update trade state methods 2020-01-02 11:50:54 +03:00
hroff-1902 21418e2988 Minor: fix comment 2020-01-02 03:16:18 +03:00
hroff-1902 4475110df8 Cosmetics in freqtradebot 2020-01-02 03:07:24 +03:00
Matthias 3327ebf2b1
Merge pull request #2720 from hroff-1902/refactor-create-trades
Refactor create trades
2019-12-31 15:34:12 +01:00
Matthias 26a2395aeb Include Pair name in exception log message 2019-12-31 07:11:09 +01:00
hroff-1902 fd7af587da Rename process_maybe_execute_buys() --> enter_positions() 2019-12-30 22:50:56 +03:00
hroff-1902 84918ad424 Rename process_maybe_execute_sells() --> exit_positions() 2019-12-30 22:08:36 +03:00
hroff-1902 b00406a7eb Make process_maybe_execute_*() returning integers 2019-12-30 21:09:35 +03:00
hroff-1902 4d56e3b36e Address some comments made in the review 2019-12-30 20:54:32 +03:00
Matthias 1ffda29fd2 Adjust improts to new exception location 2019-12-30 15:02:17 +01:00
Matthias 4c9295fe2d Rename Bid-strategy helpervariable to something shorter
avoids unnecessary wrapping...
2019-12-30 14:00:34 +01:00
hroff-1902 04f28ed9bc Refactor try/except: handle DependencyException for each pair separately 2019-12-29 05:03:10 +03:00
hroff-1902 762604300f Refactor create_trades() 2019-12-29 04:37:44 +03:00
hroff-1902 433fd2a7c3
Merge pull request #2652 from freqtrade/safe_sell_amount
Safe sell amount
2019-12-29 00:09:21 +03:00
hroff-1902 5c39ebd0a0 Adjust logging 2019-12-28 13:59:40 +03:00
Matthias 443fd8f7dd Merge branch 'develop' into safe_sell_amount 2019-12-28 09:42:52 +01:00
hroff-1902 d6ca562b03 Make mypy happy and handle hypothetical case when stake_amount == 0 2019-12-28 04:05:03 +03:00
hroff-1902 3dbd83e35a Introduce get_free_open_trades() method 2019-12-28 03:46:42 +03:00
hroff-1902 8eeabd2372 Move warning to create_trades() 2019-12-28 03:22:50 +03:00
hroff-1902 ed9cb4219d Make mypy happy 2019-12-28 02:58:23 +03:00
hroff-1902 ef92fd775c Align behavior: check for available in all cases: edge, unlimited and fixed 2019-12-28 02:53:41 +03:00
hroff-1902 abaeab89aa Make _calculate_unlimited_stake_amount() a separate method 2019-12-28 02:36:32 +03:00
hroff-1902 243bcb2368 Make _check_available_stake_amount() a separate method 2019-12-28 02:25:43 +03:00
hroff-1902 86f2693040 cosmetics 2019-12-28 01:54:12 +03:00
hroff-1902 b6d1c5b17a _get_trade_stake_amount() is not private 2019-12-28 01:44:51 +03:00
hroff-1902 039dfc302c No need to convert pair name 2019-12-28 01:34:31 +03:00
Matthias 6688a2c112 Merge branch 'develop' into doc/pricing_reasons 2019-12-24 06:33:51 +01:00
Matthias c6d2233978 Convert StrategyLoader to static loader 2019-12-23 10:23:48 +01:00
Matthias 560acb7cea Convert ExchangeResolver to static loader class 2019-12-23 10:03:18 +01:00
Matthias 6507a26cc1 Fix some tests after merge 2019-12-18 20:16:53 +01:00
Matthias e72c6a0d94 use only first part of the currency to get wallet-amount (!!) 2019-12-18 20:02:15 +01:00
Matthias 834a0ed620 Merge branch 'develop' into safe_sell_amount 2019-12-18 19:45:31 +01:00
Matthias 21622ac313 Rename get_ticker to fetch_ticker 2019-12-18 16:34:30 +01:00
Matthias a2964afd42 Rename profit_percent to profit_ratio to be consistent 2019-12-17 08:53:30 +01:00
Matthias 861a7834fc Call calc_open_price() whenever necessary 2019-12-17 07:08:36 +01:00
Matthias 5a5741878c Improve dry-run calculations 2019-12-15 10:26:56 +01:00
Matthias f0bbc75038 Combine dry_run wallet into original Wallets class 2019-12-15 09:48:35 +01:00
Matthias fda8f7e305 Introuce WalletDry - supporting dry-run wallets 2019-12-15 09:38:18 +01:00
Matthias 04257d8ecc Add tests for safe_sell_amount 2019-12-13 07:06:54 +01:00
Matthias 5db883906a Try to verify available amount on the exchange 2019-12-13 06:52:33 +01:00
Matthias e4655c9b07 include trade-duration with sell-notification 2019-12-08 14:07:46 +01:00
hroff-1902 a373e48939 Comment added 2019-11-27 14:53:01 +03:00