Matthias
95d271ca5d
Fix ROI close-rate calculation to work with fees - adjust tests
2018-11-01 13:14:59 +01:00
Matthias
8c93760a6d
simplify some code
2018-10-30 20:23:31 +01:00
Matthias
f96f0cdea7
Add additional comment
2018-10-30 20:02:31 +01:00
Matthias
98050ff594
use all min_roi entries
2018-10-29 19:27:23 +01:00
Matthias
233c442af9
Adjust backtest so sell uses stop-loss or roi value as closerate
2018-10-29 19:27:23 +01:00
Matthias
db9a85f4a2
Merge pull request #1282 from freqtrade/feat/add_missingdata_warning
...
Show warning if part of backtest data is missing
2018-10-27 11:16:10 -04:00
Matthias
3c6d10f03e
Print missing value count too
2018-10-18 20:05:57 +02:00
Matthias
bc356c4d65
Return true/false for validation function
2018-10-18 19:48:54 +02:00
Matthias
fb52d32296
Add validate_backtest_data function
2018-10-18 19:42:54 +02:00
Matthias
d7459bbbf3
refactor get_timeframe out of backtesting class
2018-10-17 19:59:33 +02:00
Matthias
8a3272e7c5
don't copy tickerdata_to_dataframe into backtesting
...
it's used only once, so this does not make sense and hides the origin of
the function
2018-10-17 19:47:19 +02:00
Matthias
631ba464f3
Show warning if part of backtest data is missing
2018-10-14 14:40:03 +02:00
Matthias
84622dc84b
Move test for strategy out of constructor
2018-09-29 14:23:53 +02:00
Matthias
1b290ffb5d
Update hyperopt to show errors if non-supported variables are used
2018-09-29 13:49:38 +02:00
Matthias
6e66763e5f
Only load strategy once during backtesting
2018-09-27 19:23:55 +02:00
Matthias
567211e9f9
don't print "NAN" lines in "left_open_trades"
2018-09-20 20:35:26 +02:00
Matthias
54ddd908e6
Merge branch 'develop' into ccxt-async
2018-08-29 19:43:09 +02:00
Matthias
a077955efa
update json.load to json_load - followup to #1142
2018-08-19 19:58:07 +02:00
Matthias
6d1c82a5fa
Remove last refreence to get_candle_history
2018-08-19 19:50:14 +02:00
Matthias
2b37c1ff0e
Merge branch 'develop' into ujson-loader
2018-08-12 13:11:40 +02:00
Matthias
7d72e364aa
Remove broken ujson loading - replace with variable-based fix
2018-08-12 13:08:10 +02:00
Matthias
a852d2ff32
default since_ms to 30 days if no timerange is given
2018-08-10 11:15:02 +02:00
Matthias
a107c4c7b4
Download using asyncio
2018-08-10 11:08:28 +02:00
Matthias
74d6816a1a
Fix some comments
2018-08-10 11:00:07 +02:00
Janne Sinivirta
3a5b435dfa
Merge pull request #1089 from freqtrade/feat/backtest_multi_strat
...
Allow multi strategy backtest without data reload
2018-08-02 12:35:47 +03:00
creslin
a741f1144a
missing __init__.py
2018-08-02 08:58:04 +00:00
Matthias
40ee86b357
Adapt after rebase
2018-07-31 21:08:03 +02:00
Matthias
76fbb89a03
use print for backtest results to avoid odd newline-handling
2018-07-31 21:04:03 +02:00
Matthias
c648e2acfc
Adjust documentation to strategy table
2018-07-31 21:04:03 +02:00
Matthias
028589abd2
Add strategy summary table
2018-07-31 21:04:03 +02:00
Matthias
5125076f5d
Fix typo
2018-07-31 21:04:03 +02:00
Matthias
a57a2f4a75
Store backtest-result in different vars
2018-07-31 21:04:03 +02:00
Matthias
bd3563df67
Add test for new functionality
2018-07-31 21:04:03 +02:00
Matthias
644f729aea
Refactor strategy loading to __init__
2018-07-31 21:04:03 +02:00
Matthias
5f2e92ec5c
Refactor backtesting
2018-07-31 21:04:03 +02:00
Matthias
65aaa3dffd
Extract backtest strategy setting
2018-07-31 21:04:03 +02:00
Matthias
56046b3cb3
Add strategylist option to backtesting
2018-07-31 21:04:03 +02:00
Matthias
787d6042de
Switch from pair(str) to metadata(dict)
2018-07-29 20:56:23 +02:00
Matthias
5fbce13830
update hyperopt to use new methods
2018-07-29 20:55:40 +02:00
Matthias
98665dcef4
revert inadvertent wihtespace changes
2018-07-29 20:55:37 +02:00
Matthias
df8700ead0
Adapt after merge from develop
2018-07-29 20:55:37 +02:00
Gert Wohlgemuth
0dcaa82c3b
fixed test?
2018-07-29 20:55:06 +02:00
Gert Wohlgemuth
3dd7d209e9
more test fixes
2018-07-29 20:55:06 +02:00
Gert Wohlgemuth
abc55a6e6b
fixing? hyperopt
2018-07-29 20:55:06 +02:00
xmatthias
2e6e5029ba
fix mypy and tests
2018-07-29 20:55:06 +02:00
Matthias
7f27beff4b
Revert "backtesting: try to load data with ujson if it exists"
2018-07-29 13:23:11 +02:00
Samuel Husso
cb2fff8909
mypy doesn't handle common idiomacy so disable the line (see the open issue more details)
2018-07-28 22:06:26 +03:00
Samuel Husso
cdd8cc551c
backtesting: try to load data with ujson if it exists
2018-07-28 21:56:11 +03:00
Janne Sinivirta
4b38c8b11d
use pandas own min and max for column sorting
2018-07-25 17:04:25 +03:00
Janne Sinivirta
0b3190552e
Merge pull request #1018 from freqtrade/feat/sell_reason
...
Record sell reason
2018-07-24 09:09:45 +03:00
Matthias
4fb9823cfb
fix rebase problem
2018-07-19 19:50:06 +02:00
Matthias
760c79c5e9
Use .center()
to output trades header line
2018-07-19 19:39:08 +02:00
Matthias
a452864b41
Use namedtuple for sell_return
2018-07-19 19:39:08 +02:00
Matthias
506aa0e3d3
Add print_sales table and test
2018-07-19 19:34:14 +02:00
Matthias
2a61629014
Export sell_reason from backtest
2018-07-19 19:29:31 +02:00
Matthias
cbffd3650b
add sell_reason to backtesting
2018-07-19 19:29:31 +02:00
Janne Sinivirta
0cc1b66ae7
Merge pull request #1037 from freqtrade/fix/backtest-comment
...
replace --realistic with 2 separate flags
2018-07-19 17:33:19 +03:00
Janne Sinivirta
6070d819b8
Merge pull request #1040 from freqtrade/xmatthias_backtest_duration
...
Fix backtest duration calculation
2018-07-19 17:32:11 +03:00
Matthias
8f254031c6
Add short form for parameters, change default for hyperopt
2018-07-19 13:19:36 +02:00
Matthias
aa69177436
Properly check emptyness and adjust floatfmt
2018-07-19 13:14:21 +02:00
Matthias
79b1030435
output duration in a more readable way
2018-07-18 20:08:55 +02:00
Matthias
f9f6a3bd04
cast to int to keep exports constant
2018-07-18 09:29:51 +02:00
Matthias
8e4d2abd4e
Fix typo
2018-07-18 09:10:17 +02:00
Matthias
08237abe20
Fix wrong backtest duration
...
identified in #1038
2018-07-18 09:06:12 +02:00
Matthias
c82276ecbe
add --disable-max-market-positions
2018-07-17 21:05:03 +02:00
Matthias
e17618407b
Rename --realistic-simulation to --enable-position-stacking
2018-07-17 20:26:59 +02:00
Janne Sinivirta
aeb4102bcb
refactor Analyze class methods to base Strategy class
2018-07-16 08:23:39 +03:00
Janne Sinivirta
85e6c9585a
remove pass-through methods from Analyze
2018-07-16 08:23:39 +03:00
Janne Sinivirta
a74147c472
move strategy initialization outside Analyze
2018-07-16 08:23:39 +03:00
Matthias
06c9494a46
add missing s to Backtest cum results
2018-07-11 14:50:04 +02:00
Janne Sinivirta
aa2366346a
Merge pull request #1001 from xmatthias/feat/backtest_cum_profit
...
Add cumulative profit to backtest result table
2018-07-11 07:21:28 +03:00
Matthias
8b06000f0f
Use open-rates for backtesting
2018-07-08 20:03:11 +02:00
Matthias
efaa8f16e7
Improve formattiong of table
2018-07-08 20:01:33 +02:00
Matthias
1a24afef77
add cumsum to backtest-results
2018-07-08 19:55:04 +02:00
Samuel Husso
7dca3c6d03
freqtradebot,main,hyperopt: fstrings in use
2018-07-05 10:11:29 -05:00
Samuel Husso
03c112a601
config, optimize: fstrings in use
2018-07-05 10:11:29 -05:00
Samuel Husso
d8d0579c5a
Merge pull request #930 from freqtrade/skopt
...
Replace Hyperopt with scikit-optimize
2018-07-04 13:51:14 -05:00
Janne Sinivirta
bf4d0a9b70
sort imports
2018-07-04 10:31:35 +03:00
Janne Sinivirta
96bb2efe69
use joblib.dump and load for trials
2018-07-03 23:08:29 +03:00
Janne Sinivirta
c4a8435e00
change pickle file name to better suit it's current purpose
2018-07-03 22:17:43 +03:00
Janne Sinivirta
3a7056ea1b
run at least one epoch
2018-07-03 21:55:22 +03:00
Janne Sinivirta
2cde540645
remove dead code
2018-07-03 21:50:45 +03:00
Janne Sinivirta
ef59f9ad24
sort imports in hyperopt.py
2018-07-03 21:50:24 +03:00
Janne Sinivirta
ee4754cfb9
avoid re-serialization of whole dataframe
2018-07-03 14:49:58 +03:00
Janne Sinivirta
2713fdb860
use cpu count explicitly in job count
2018-07-03 11:46:56 +03:00
Janne Sinivirta
79aab4cce2
use fstring
2018-07-03 11:44:54 +03:00
Janne Sinivirta
fa8fc3e4ce
handle the case where we have zero buys
2018-07-02 11:46:55 +03:00
Janne Sinivirta
aec3f582e1
Merge branch 'develop' into skopt
2018-07-02 11:27:27 +03:00
Janne Sinivirta
0ce08932ed
mypy fixes
2018-06-30 09:54:31 +03:00
Michael Egger
6dd5f85fb6
Merge pull request #954 from freqtrade/feat/allow_backtest_plot
...
allow backtest ploting
2018-06-29 19:44:06 +02:00
Janne Sinivirta
0bddc58ec4
extract loading previous results to a method
2018-06-25 11:38:14 +03:00
xmatthias
e70cb963f7
document what to do with exported backtest results
2018-06-24 17:00:00 +02:00
Janne Sinivirta
118a43cbb8
fixing tests for hyperopt
2018-06-24 15:27:53 +03:00
Anton
f82b809fcf
Merge with develop
2018-06-23 16:50:27 +03:00
Janne Sinivirta
642ad02316
remove unused import
2018-06-23 15:56:38 +03:00
Janne Sinivirta
ab9e2fcea0
fix guard names to match search space
2018-06-23 15:47:19 +03:00
Janne Sinivirta
136456afc0
add three triggers to hyperopting
2018-06-23 15:44:51 +03:00
xmatthias
0440a19171
export open/close rate for backtesting too
...
preparation to allow plotting of backtest results
2018-06-23 14:19:50 +02:00
Janne Sinivirta
e8f2e6956d
to avoid pickle problems, get rid of reference to exchange after initialization
2018-06-23 14:37:36 +03:00
Janne Sinivirta
a525cba8e9
switch signal handler to try catch. fix pickling and formatting output
2018-06-23 14:37:36 +03:00
Janne Sinivirta
8272120c3a
convert stoploss and ROI search spaces to skopt format
2018-06-23 14:37:36 +03:00
Janne Sinivirta
8fee2e2409
move result logging out from optimizer
2018-06-23 14:37:36 +03:00
Janne Sinivirta
c415014153
use multiple jobs in acq
2018-06-23 14:37:36 +03:00
Janne Sinivirta
964cbdc262
increase initial sampling points
2018-06-23 14:37:36 +03:00
Janne Sinivirta
a46badd5c0
reuse pool workers
2018-06-23 14:37:36 +03:00
Janne Sinivirta
0cb1aedf5b
problem with pickling
2018-06-23 14:37:36 +03:00
Janne Sinivirta
b485e6e0ba
start small
2018-06-23 14:37:36 +03:00
gcarq
78f50a1471
move logic from hyperopt to freqtrade.strategy
2018-06-23 14:37:36 +03:00
gcarq
5aae215c94
wrap strategies with HyperoptStrategy for module lookups with pickle
2018-06-23 14:37:36 +03:00
Janne Sinivirta
a68c90c512
avoid calling exchange.get_fee inside loop
2018-06-23 14:37:36 +03:00
gcarq
c40e6a12d1
move logic from hyperopt to freqtrade.strategy
2018-06-23 11:13:49 +02:00
gcarq
3360bf4001
wrap strategies with HyperoptStrategy for module lookups with pickle
2018-06-23 10:42:33 +02:00
Janne Sinivirta
c73b9f5c77
avoid calling exchange.get_fee inside loop
2018-06-22 21:04:07 +03:00
xmatthias
251f7db3ca
require exchange object to delete pairs
2018-06-17 23:38:07 +02:00
xmatthias
21edcbdc27
Refactor exchange to class
2018-06-17 23:38:07 +02:00
Anton
ae94ab17f4
Merge branch 'develop' into feature-unlimited-stake_amount
2018-06-17 02:23:40 +03:00
Matthias
a5511e2e30
Merge pull request #894 from freqtrade/feature/force_close_backtest
...
Display open trades after backtest period
2018-06-16 12:49:08 +02:00
Janne Sinivirta
0c85febe76
remove all mongodb related code
2018-06-16 09:09:28 +03:00
Janne Sinivirta
c1f8f641e6
remove use of hyperopt_conf.py
2018-06-16 09:09:28 +03:00
xmatthias
c0289ad844
use list comprehension to build list
2018-06-13 19:53:12 +02:00
xmatthias
e600be4f56
Reduce force-sell verbosity
2018-06-13 19:44:00 +02:00
xmatthias
6357812743
fix backtest report able
2018-06-13 06:57:49 +02:00
xmatthias
e3ced7c15e
extract export from backtest function
2018-06-12 22:29:30 +02:00
xmatthias
bfde33c945
Use timestamp() instead of strftime
...
this will avoid a bug shifting epoch time by 1 hour:
https://stackoverflow.com/questions/11743019/convert-python-datetime-to-epoch-with-strftime
2018-06-12 21:12:55 +02:00
xmatthias
335d1fbbbc
Check if no backtest data is found and fail gracefully
2018-06-11 19:50:43 +02:00
Anton
ce663f6af5
Merge with develop
2018-06-11 16:25:05 +03:00
xmatthias
12e455cbf5
add buy/sell index to backtest result
2018-06-10 20:52:42 +02:00
xmatthias
4710210cff
fix hyperopt to use new backtesting result tuple
2018-06-10 13:56:10 +02:00
xmatthias
27ee8f7360
make flake happy
2018-06-10 13:55:48 +02:00
xmatthias
1cd7ac55a8
Added "left open trades" report
2018-06-10 13:45:16 +02:00
xmatthias
b81588307f
Add "open_at_end" parameter
2018-06-10 13:37:53 +02:00
xmatthias
31025216f9
fix type of open/close timestmap
2018-06-10 13:32:07 +02:00
xmatthias
322a528c12
fix bug with backtestResult
2018-06-10 13:25:16 +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
xmatthias
8effc5f929
fix windows-specific init issue with named tuple
2018-06-08 19:46:07 +02:00
Anton
b4138f29c8
Merge with develop
2018-06-08 00:29:44 +03: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
xmatthias
f37c5b70ba
Fix tests - read optional argument
2018-06-05 23:53:49 +02:00
xmatthias
7a34578b4d
refactor timerange to named tuple
2018-06-05 23:34:26 +02:00
Anton
87f750da35
Merge with develop
2018-06-04 01:50:10 +03:00
xmatthias
e3227a741c
add --export-filename for backtesting
2018-06-03 19:36:53 +02:00
xmatthias
50fc5f91ca
Merge branch 'develop' into mypy_typecheck
2018-06-03 10:35:56 +02: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