Commit Graph

1213 Commits

Author SHA1 Message Date
xmatthias
aff1ede46b Fix last backtesting test 2018-06-10 13:25:52 +02:00
xmatthias
322a528c12 fix bug with backtestResult 2018-06-10 13:25:16 +02:00
xmatthias
17c0ceec04 adjust tests for backtestresult type 2018-06-10 13:22:24 +02:00
xmatthias
c9476fade8 adjust tests for forcesell 2018-06-10 13:20:41 +02:00
xmatthias
7b5a2946e5 adjust for forcesell backtesting 2018-06-10 13:19:32 +02:00
xmatthias
9c57d3aa8b add BacktestresultTuple 2018-06-10 13:15:46 +02:00
xmatthias
c1b2e06eda simplify return from _get_sell_trade_entry 2018-06-10 09:07:04 +02:00
xmatthias
3094acc7fb update comment 2018-06-10 08:58:28 +02:00
xmatthias
24a875ed46 remove experimental parameters - they are read by analyze.py anyway 2018-06-09 21:44:57 +02:00
xmatthias
5623ea3ac6 Add forcesell at end of backtest period 2018-06-09 21:44:20 +02:00
Janne Sinivirta
8db3dfa8c6
Merge pull request #880 from freqtrade/fix/636
Fixes issue 636
2018-06-09 08:59:12 +03:00
Samuel Husso
38c32f0e10 flake8 fix 2018-06-09 08:40:32 +03:00
Samuel Husso
62b4efb881 freqtradebot: fstrings in use 2018-06-09 08:27:39 +03:00
Samuel Husso
b5c200f6c4 Fiat_converter: fstrings into use 2018-06-09 08:27:39 +03:00
Samuel Husso
18e3090379 Exchange: f-strings into use 2018-06-09 08:27:39 +03:00
Samuel Husso
1e1be6bc3f arguments,configuration: fstring in use 2018-06-09 08:24:45 +03:00
gcarq
61da7f63b2 Merge branch 'develop' of freqtrade into feature/reload-conf 2018-06-09 04:30:23 +02:00
gcarq
0b5d21f32a implement bot reconfiguration and expose it to telegram 2018-06-09 04:29:48 +02:00
gcarq
74db82d759 main: don't touch freqbot state in cleanup()
cleanup() should be only called after the main loop has been exited.
At that point the state shouldn't be modified.
2018-06-09 01:19:42 +02:00
gcarq
5851cc70a7 Merge branch 'develop' of freqtrade into fix/636 2018-06-09 00:37:46 +02:00
Michael Egger
faeda0e70c
Merge pull request #878 from freqtrade/fix_timeframe_issue
fix windows-specific init issue with named tuple
2018-06-08 22:44:06 +02:00
Michael Egger
73c5f0ec90
Merge pull request #872 from freqtrade/feature/improve-error-handling
improve error handling
2018-06-08 22:43:37 +02:00
Michael Egger
66f6e71e7e
Merge pull request #827 from freqtrade/fix/pylint_and_coverage
Increase code coverage and improve Pylint
2018-06-08 22:32:04 +02:00
xmatthias
8effc5f929 fix windows-specific init issue with named tuple 2018-06-08 19:46:07 +02:00
Samuel Husso
980172a55a
Merge pull request #865 from freqtrade/partial_candle_removal
Partial candle removal
2018-06-08 18:10:21 +03:00
Gerald Lonlas
5ca84acb6d Fix Flake8 2018-06-07 23:12:03 -07:00
Gerald Lonlas
50852136ef Increase FreqtradeBot.get_real_amount() coverage 2018-06-07 22:13:50 -07:00
Gerald Lonlas
20082f52a2 Increase code coverage for FreqtradeBot.process_maybe_execute_sell() 2018-06-07 22:13:50 -07:00
Gerald Lonlas
5ec3eb76eb Cover a edge case of CryptoToFiatConverter::_find_price() 2018-06-07 22:13:50 -07:00
Gerald Lonlas
dfbc94c05b Add missing test for CryptoToFiatConverter::convert_amount() 2018-06-07 22:13:50 -07:00
Gerald Lonlas
81ce7d720d Add missing unit test for Arguments::testdata_dl_options() 2018-06-07 22:13:50 -07:00
Gerald Lonlas
1db0f2bd55 Increase pylint to 10 for freqtrade/arguments.py 2018-06-07 22:13:50 -07:00
gcarq
10e12ec1b9 fix flake8 warning 2018-06-08 02:37:12 +02:00
gcarq
61b2373dd1 flush db connection after forcesell 2018-06-08 02:35:10 +02:00
gcarq
7f881cce85 add additional None check for trade.open_order_id 2018-06-08 02:34:44 +02:00
gcarq
95d6c9c678 adapt tests 2018-06-08 02:01:38 +02:00
gcarq
a2a1a517da fix flake8 warning 2018-06-08 02:01:18 +02:00
gcarq
27f83b511f raise OperationalException if config is missing 2018-06-08 02:00:42 +02:00
Anton
b1b87731b1 Support case when _get_trade_stake_amount returns None 2018-06-08 00:54:46 +03:00
Anton
b4138f29c8 Merge with develop 2018-06-08 00:29:44 +03:00
gcarq
dd3a53fb5f fix tests for main.py 2018-06-07 22:28:21 +02:00
Matthias
d23bcc435a
Merge pull request #864 from freqtrade/feature/overhaul-db-handling
Allow custom sqlite database path
2018-06-07 22:18:10 +02:00
gcarq
d41f71bc34 handle sqlalchemy NoSuchModuleError 2018-06-07 21:35:57 +02:00
xmatthias
f5fe9a4b1c fix rpc tests (add a test with multiple trades
without this, sum/percentage cannot be properly tested.
2018-06-07 20:52:03 +02:00
xmatthias
0e699b87af don't sum percentage, but use mean instead (aligned to backtesting) 2018-06-07 20:43:28 +02:00
gcarq
3f5efef6e5 tests: add proper asserts 2018-06-07 20:41:52 +02:00
gcarq
d4f8704a4c arguments: implement tests for db_url 2018-06-07 20:30:13 +02:00
gcarq
526cb1ea20 fix db-url handling if passed via CLI args 2018-06-07 20:15:31 +02:00
Janne Sinivirta
f5b47fbd86 flake8 fixes 2018-06-07 20:23:09 +03:00
Janne Sinivirta
3cee04fb8c bot should not repaint: do not include last partial candle in analysis 2018-06-07 20:23:09 +03:00
gcarq
ac602ed5a9 persistence: adapt checks to detect in-memory db 2018-06-07 19:10:26 +02:00
Samuel Husso
ad510b8b5f
Merge pull request #855 from freqtrade/fix-look-ahead
Avoid look-ahead in backtesting
2018-06-07 20:00:46 +03:00
gcarq
17742df591 Merge branch 'develop' of freqtrade into feature/overhaul-db-handling 2018-06-07 17:33:37 +02:00
gcarq
5b1ff6675f define constants.DEFAULT_DB_DRYRUN_URL and fix StaticPool conditions 2018-06-07 17:29:43 +02:00
Michael Egger
867145cd09
Merge pull request #859 from freqtrade/readd_ticker_caching
Re-add ticker caching for rpc operations
2018-06-07 17:15:59 +02:00
Janne Sinivirta
b4ae5a36a8 use .copy() to avoid Pandas mistake. drop first row because of shifting 2018-06-07 17:29:40 +03:00
Janne Sinivirta
7f8e0ba25f use buy/sell signal from previous candle, not current to avoid seeing to the future 2018-06-07 17:28:40 +03:00
gcarq
c3d0980763 test_persistence: fix reference before assignment 2018-06-07 06:06:21 +02:00
gcarq
4ee5271de7 fix failing dynamic-whitelist test 2018-06-07 05:50:07 +02:00
gcarq
a29ac44d64 adapt tests 2018-06-07 05:27:55 +02:00
gcarq
e2aa78c11b remove obsolete param 2018-06-07 05:27:27 +02:00
gcarq
58a6f21705 remove dry_run_db and replace it with db_url in config 2018-06-07 05:26:39 +02:00
gcarq
8583e89550 persistence: simplify init and pass db_url via config dict 2018-06-07 05:25:53 +02:00
xmatthias
7714490530 Test keyerror exception 2018-06-06 21:24:57 +02:00
xmatthias
4a17671f45 improve log message 2018-06-06 20:30:42 +02:00
xmatthias
a901f21bcd test ticker caching 2018-06-06 20:24:47 +02:00
xmatthias
e690003621 reinstate caching for get_ticker 2018-06-06 20:18:16 +02:00
xmatthias
cac6e0d715 Add docstring to TimeRange class 2018-06-06 00:10:18 +02:00
xmatthias
f37c5b70ba Fix tests - read optional argument 2018-06-05 23:53:49 +02:00
xmatthias
270ccbb0da fix args test 2018-06-05 23:41:50 +02:00
xmatthias
7a34578b4d refactor timerange to named tuple 2018-06-05 23:34:26 +02:00
Anton
12d8a8b1a3 Fix review comments 2018-06-06 00:14:28 +03:00
Gerald Lonlas
c29c13dfd7 Fix a typo in Arguments() comment 2018-06-04 22:42:24 -07:00
Gerald Lonlas
947462e134 Add back 'import os' in Arguments() 2018-06-04 21:29:53 -07:00
Gerald Lonlas
3778bcda24 Ok! you won Flake8 2018-06-04 21:18:03 -07:00
Gerald Lonlas
662436acd2 Fix typo in Argument() 2018-06-04 21:18:03 -07:00
Gerald Lonlas
5683f9e10e Remove hardcoded backtest-result.json in Plot scripts 2018-06-04 21:17:20 -07:00
Matthias
15fb81da92
Merge pull request #844 from creslinux/Constants_usdt
To be able to start with USDT in fiat_display_currency in config.json
2018-06-04 21:56:34 +02:00
creslinux
a44978a068 Per steer from project core member, add other valid coinmarketcap
listed crypto base currencies that are valid during conversion lookup

Here is the test of USDT working:
https://api.coinmarketcap.com/v2/ticker/1027/?convert=USDT&limit=10

CMK page lists: "BTC", "ETH" "XRP", "LTC", and "BCH" as valid.
2018-06-04 21:48:15 +03:00
creslinux
7c8bf95f8f To be able to start bot with USDT in fiat_display_currency in config.json
There are use case that build the base pair to consider price of whitelist pairs.
On Binance this is USDT not USD.
2018-06-04 16:45:47 +03:00
Janne Sinivirta
7df77b1b28 match timeframes to arguments 2018-06-04 16:35:34 +03:00
Janne Sinivirta
0f3dc821f2 add missing timeframes to allowed values 2018-06-04 15:08:45 +03:00
Janne Sinivirta
5ff405b0b0 allow defining of timeframes to download 2018-06-04 15:08:45 +03:00
Janne Sinivirta
639b6bc4f6 set and create default datadir based on used exchange 2018-06-04 14:27:42 +03:00
Janne Sinivirta
6891054b84 use folder user_data/data/exchangename by default and pick pairs.json from that folder by default 2018-06-04 12:37:06 +03:00
Janne Sinivirta
e10279b7b4 show default exchange in download_backtest_data.py 2018-06-04 11:50:33 +03:00
Janne Sinivirta
a0c79bd727 make --pairs-file required 2018-06-04 11:47:27 +03:00
Anton
3030bf9778 Fix types 2018-06-04 01:52:54 +03:00
Anton
87f750da35 Merge with develop 2018-06-04 01:50:10 +03:00
Anton
daa9c0c026 Fix review comments 2018-06-04 01:48:26 +03:00
xmatthias
e3227a741c add --export-filename for backtesting 2018-06-03 19:36:53 +02:00
Gerald Lonlas
43696eff5c Add __main__.py to improve how to launch the bot 2018-06-03 08:57:13 -07:00
Janne Sinivirta
20815771ab
Merge pull request #817 from gcarq/feature/gdax
Enable Backtesting with GDAX and allow trading with EUR/USD
2018-06-03 17:49:20 +03:00
xmatthias
3a158faa30 Refactor fiat-list to constants 2018-06-03 13:47:36 +02:00
xmatthias
50fc5f91ca Merge branch 'develop' into mypy_typecheck 2018-06-03 10:35:56 +02:00
Gerald Lonlas
e8a59f4c20 Add a test to check the behavior when converting two FIAT 2018-06-03 00:13:48 -07:00
Gerald Lonlas
638d98735f Allow fiat_convert to use same symbol for Crypto and FIAT 2018-06-03 00:13:48 -07:00
Gerald Lonlas
c9e49ed7b4 Sort ticker_history
CCXT does not sort the ticker history from exchanges.
Bittrex and Binance are sorted ASC (oldest first, newest last) when
GDAX is sorted DESC (newest first, oldest last).

Because of that the get_ticker_history() fall in a very long loop
when the tickers are sorted DESC. Means it downloads more than
needed.

This commit enable exhanges like GDAX and unify the ticker_history
list across all exchanges.
2018-06-03 00:13:48 -07:00
Gerald Lonlas
acbfe91f13 Allow EUR / USD as stake_currency
It will enable to trade with FIAT on exhanges like GDAX or Kraken.
2018-06-03 00:13:48 -07:00
Janne Sinivirta
7edafbb772
Merge pull request #823 from creslinux/timerange_unixtime_argument
Timerange unixtime argument
2018-06-03 07:22:41 +03:00
Janne Sinivirta
a657e3d24a
Merge pull request #826 from gcarq/fix/hyperopt-stake_currency
Fix stake_currency returned by Hyperopt  …
2018-06-03 07:19:24 +03:00
Janne Sinivirta
2cd8782a88
Merge pull request #825 from gcarq/fix/hyperopt-in-progress
Fix the in-progress dot that does not show up during a Hyperopt run
2018-06-03 07:16:39 +03:00
Gerald Lonlas
fe8ff1b929 Fix stake_currency return by Hyperopt
Hyperopt had BTC hard coded in the result. This commit  will display
the real stake_currency used.

If you used `"stake_currency": "USDT",` in your config file.
Before this commit you saw a message like:
"2 trades. Avg profit  0.13%. Total profit  0.00002651 BTC (0.0027Σ%). Avg duration 142.5 mins."

Now with the commit, we fix the wrong BTC currency:
"2 trades. Avg profit  0.13%. Total profit  0.00002651 USDT (0.0027Σ%). Avg duration 142.5 mins."
2018-06-02 14:07:31 -07:00
Gerald Lonlas
127cf5d619 Backtesting: Add the Interval required when data is missing
Change the message:
"No data for pair ETH/BTC, use --refresh-pairs-cached to download the data"
for:
"No data for pair: "ETH/BTC", Interval: 5m. Use --refresh-pairs-cached to download the data"

The message structure is unified with the download message:
"Download the pair: "ETH/BTC", Interval: 5m"
2018-06-02 13:55:05 -07:00
creslinux
94e586c049 Added unit test to check posix time arguments passed to timerange
Here is the pass report:
freqtrade_new creslin$ pytest freqtrade/tests/test_arguments.py
==================================================================== test session starts =====================================================================
platform darwin -- Python 3.6.5, pytest-3.6.0, py-1.5.3, pluggy-0.6.0
rootdir: /Users/creslin/PycharmProjects/freqtrade_new, inifile:
plugins: mock-1.10.0, cov-2.5.1
collected 19 items

freqtrade/tests/test_arguments.py ...................                                                                                                  [100%]

================================================================= 19 passed in 2.37 seconds ==================================================================
2018-06-02 22:46:54 +03:00
Gerald Lonlas
dc65753a64 Fix the in-progress dot that does not show up during a Hyperopt run 2018-06-02 12:35:07 -07:00
creslin
43ba02afc6 Per feed back, kept the stype as date.
Use a tuple to keep as epoch int or process via arrow to timestamp.

I'll look at the test file also.
2018-06-02 21:59:18 +03:00
xmatthias
9537f17dd4 Fix test 2018-06-02 20:06:29 +02:00
Raymond Luo
2791d543ea Make backtesting report markdown shareable
Small tweak to make the backtesting report markdown ready and much easier to share reports on many markdown publishing tools and editors that already support Markdown Extra with just a copy and paste

Example:
![Example](https://i.imgur.com/HXlNkfm.png)
2018-06-02 19:52:16 +02:00
creslin
6ca375a397 Extend timerange to accept unix timestamps.
This gives greater granularity over backtest, parsing tickerfiles.

Example runs using date and unix time below.

/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/creslin/PycharmProjects/freqtrade/scripts/report_correlation.py --timerange=20180528-20180529
2018-06-02 18:44:58,829 - freqtrade.configuration - INFO - Log level set to INFO
2018-06-02 18:44:58,830 - freqtrade.configuration - INFO - Using max_open_trades: 200 ...
2018-06-02 18:44:58,831 - freqtrade.configuration - INFO - Parameter --timerange detected: 20180528-20180529 ...
2018-06-02 18:44:58,831 - freqtrade.configuration - INFO - Parameter --datadir detected: freqtrade/tests/testdata ...
   BasePair      Pair  Correlation  BTC % Change  Pair % USD Ch  Pair % BTC Ch  Gain % on BTC        Start         Stop  BTC Volume
1  BTC_USDT   ETC_USD        0.965        -2.942         -4.070         -1.163      -1.128585  05-28 00:00  05-29 00:00      335.19
0  BTC_USDT   SNT_USD        0.943        -2.942         -5.857         -3.004      -2.915585  05-28 00:00  05-29 00:00      496.01
3  BTC_USDT  DASH_USD        0.902        -2.942         -9.034         -6.277      -6.092432  05-28 00:00  05-29 00:00      751.41
2  BTC_USDT   MTH_USD        0.954        -2.942         -9.290         -6.541      -6.348708  05-28 00:00  05-29 00:00       23.00
4  BTC_USDT   TRX_USD        0.951        -2.942        -13.647        -11.029     -10.704957  05-28 00:00  05-29 00:00    14544.57

Process finished with exit code 0

/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/creslin/PycharmProjects/freqtrade/scripts/report_correlation.py --timerange=1527595200-1527618600
2018-06-02 18:47:40,382 - freqtrade.configuration - INFO - Log level set to INFO
2018-06-02 18:47:40,382 - freqtrade.configuration - INFO - Using max_open_trades: 200 ...
2018-06-02 18:47:40,383 - freqtrade.configuration - INFO - Parameter --timerange detected: 1527595200-1527618600 ...
2018-06-02 18:47:40,383 - freqtrade.configuration - INFO - Parameter --datadir detected: freqtrade/tests/testdata ...
   BasePair      Pair  Correlation  BTC % Change  Pair % USD Ch  Pair % BTC Ch  Gain % on BTC        Start         Stop  BTC Volume
0  BTC_USDT   SNT_USD        0.680           NaN            NaN            NaN            NaN  05-29 12:00  05-29 18:30    68866.30
1  BTC_USDT   ETC_USD        0.857           NaN            NaN            NaN            NaN  05-29 12:00  05-29 18:30   227514.17
2  BTC_USDT   MTH_USD        0.790           NaN            NaN            NaN            NaN  05-29 12:00  05-29 18:30    12103.96
3  BTC_USDT  DASH_USD        0.862           NaN            NaN            NaN            NaN  05-29 12:00  05-29 18:30    72982.78
4  BTC_USDT   TRX_USD        0.178           NaN            NaN            NaN            NaN  05-29 12:00  05-29 18:30  1258316.95

Process finished with exit code 0
2018-06-02 19:45:08 +03:00
Matthias
81bb128cf7
Merge pull request #822 from gcarq/fix/misleading_log
change misleading logging for datadir
2018-06-02 14:50:27 +02:00
xmatthias
a8bf5092e8 add ignore explanation 2018-06-02 14:18:57 +02:00
xmatthias
f88729f0e8 add ignore comment 2018-06-02 14:14:28 +02:00
xmatthias
3447e4bb97 comment on ignore hint 2018-06-02 14:13:17 +02:00
xmatthias
884395415f remove type:ignore 2018-06-02 14:10:15 +02:00
xmatthias
0007002c80 fix test failure 2018-06-02 14:07:54 +02:00
xmatthias
0a595190a3 fix last typechecks 2018-06-02 13:59:35 +02:00
xmatthias
32300f6d5f don't initialize with None where it's not necessary 2018-06-02 13:55:06 +02:00
xmatthias
d9e951447f remove _init function in backtesting (and according test) 2018-06-02 13:54:22 +02:00
xmatthias
6fc21e30e5 remove unused import 2018-06-02 13:52:55 +02:00
xmatthias
6106822d10 typing 2018-06-02 13:44:41 +02:00
xmatthias
4a322abd4d Typecheck improvements 2018-06-02 13:44:05 +02:00
Janne Sinivirta
b5c41ca0fc
Merge pull request #820 from gcarq/fix/backtesting_hint
Fix wrong hint '--update-pairs-cached' from Backtesting/Hyperopt
2018-06-02 11:39:09 +03:00
Janne Sinivirta
a82a31341b change misleading logging for datadir 2018-06-02 11:32:05 +03:00
Gérald LONLAS
0980e7e82d
Merge pull request #766 from pan-long/forcesell-amount
Sell filled amount or an open limit buy order in forcesell.
2018-06-01 19:51:38 -07:00
Gerald Lonlas
792dd556a1 Fix wrong hint '--update-pairs-cached' from Backtesting/Hyperopt 2018-06-01 19:46:53 -07:00
xmatthias
e28973c50a fix flake8 2018-05-31 22:17:46 +02:00
xmatthias
3fb1dd02f1 add typehints and type: ignores 2018-05-31 22:00:46 +02:00
xmatthias
cf34b84cf1 add attributes with typehints 2018-05-31 21:59:22 +02:00
xmatthias
f4f821e88e add typehints 2018-05-31 21:44:18 +02:00
xmatthias
c0cef7250d typing - avoid variable reuse with differen ttype 2018-05-31 21:22:46 +02:00
xmatthias
2976a50c58 fix typing 2018-05-31 21:10:15 +02:00
xmatthias
69006b8fe8 flake8 2018-05-31 21:08:26 +02:00
xmatthias
4eb55acdbc fix typing 2018-05-31 21:04:10 +02:00
xmatthias
1352f135d0 typing 2018-05-31 20:55:45 +02:00
xmatthias
0d251cbfdd rpc type hints 2018-05-31 20:55:26 +02:00
xmatthias
4733aad7ff mypy_typing 2018-05-31 20:54:37 +02:00
xmatthias
48516e6e1e Add typehint 2018-05-31 20:41:05 +02:00
xmatthias
45909af7e0 type anotation fixes 2018-05-30 22:38:09 +02:00
xmatthias
88755fcded fix typing 2018-05-30 22:09:20 +02:00
xmatthias
0d6dffdc7e fix typehinting 2018-05-30 22:09:03 +02:00
xmatthias
9aa468adda fix for typehint 2018-05-30 22:01:29 +02:00
Samuel Husso
c471ccb2db
Merge pull request #734 from arudov/fix/pair-downloads
Do not download pairs if --refresh-pairs-cached isn't set
2018-05-29 08:05:10 +03:00
Pan Long
a98fcee4f9 Sell filled amount or an open limit buy order in forcesell.
Currently forcesell only cancels an open limit buy order and doesn't sell the filled amount.

After this change, forcesell will also update trade's amount to filled amount and sell the filled amount.
2018-05-26 09:55:31 +08:00
xmatthias
1ba5c5d9c6 set ccxt loglevel to info 2018-05-25 21:23:15 +02:00
Anton
3427c7eb54 Use constants 2018-05-25 17:04:08 +03:00
Anton
cf5d691950 Clean the tests 2018-05-25 00:46:08 +03:00
Anton
9be98cd8f7 Add ability to set unlimited stake_amount 2018-05-23 13:15:03 +03:00
Anton
8c22cfce37 Fix tests; fix codestyle 2018-05-21 23:15:01 +03:00
Anton
e1cb0dbf28 Do not try to redownload pair data if --refresh-pairs-cached is not set 2018-05-21 22:31:08 +03:00