Matthias
8b9cc45f41
move test for data completeness
...
should be done before analyzing strategy
2018-12-31 15:09:50 +01:00
Matthias
429f846ad1
Switch load_data to kwargs
2018-12-15 20:31:05 +01:00
Matthias
6c02cc5993
Adjust test to pathlib
2018-12-15 14:14:38 +01:00
Matthias
21aba1620c
Replace calls to load_data
2018-12-15 14:10:33 +01:00
Matthias
407139b0e0
remove unused imports
2018-12-14 06:32:49 +01:00
Matthias
432cc00283
Adjust imports to data.history
2018-12-14 06:32:49 +01:00
Matthias
1a3fcd4771
extract data-handling methods from optimize
2018-12-14 06:32:49 +01:00
Matthias
04c330f10b
Merge pull request #1404 from freqtrade/feat/pass_df
...
keep DF instead of list
2018-12-13 20:14:32 +01:00
Matthias
7e3955b04c
Fix edge-cli comments (refer to edge, not backtest
2018-12-12 20:04:14 +01:00
Matthias
7a533de1a8
Use list ticker history for backtesting
2018-12-12 19:17:09 +01:00
Matthias
3ac2106a16
Merge pull request #1290 from freqtrade/fix/backtest_toomanyopen
...
fix backtesting not respecting max_open_trades
2018-11-30 19:17:09 +01:00
Matthias
cc7b820978
Move hyperoptresolver to resolvers package
2018-11-24 20:14:08 +01:00
Matthias
21a093bcdb
extract resolvers to IResolvers and it's own package
2018-11-24 20:00:02 +01:00
Matthias
805f509498
Merge branch 'develop' into fix/backtest_toomanyopen
2018-11-24 10:39:16 +01:00
Matthias
64028647a0
Merge pull request #571 from stephendade/userhyper
...
Separated out custom hyperopts
2018-11-21 19:14:30 +01:00
Matthias
a3b6004115
IHyperopt: all methods static, somef ixes for mypy
2018-11-20 19:41:07 +01:00
Matthias
7757c53b06
Small fixes
2018-11-20 17:43:49 +01:00
Matthias
5dd013c3b1
Rename hyperopt interface and resolver
2018-11-20 17:40:45 +01:00
misagh
f666d1596b
renaming edge to edge_cli for command line version
2018-11-15 10:31:56 +01:00
Matthias
4f800bfbc8
Fix pickling-error
2018-11-14 20:25:43 +01:00
misagh
ca22a116ad
timerange added to args
2018-11-14 17:14:37 +01:00
misagh
5d73b303fe
unnecessary libraries removed + arg help enriched
2018-11-14 16:49:16 +01:00
misagh
dd47d7adb4
cli blank line added to readability
2018-11-14 16:37:26 +01:00
misagh
b0e4aa8eff
stop loss range added to args
2018-11-14 16:31:23 +01:00
misagh
36030176bb
nb_trades and avg_trade_duration added to cli
2018-11-14 13:38:23 +01:00
misagh
5de3f1d9dd
showing result in tabular
2018-11-14 13:25:44 +01:00
misagh
95cbbf1cb5
adding edge configuration to cli
2018-11-14 12:53:20 +01:00
misagh
cf974168e9
Edge cli drafted
2018-11-14 12:37:15 +01:00
Matthias
93429a58b2
remove TODO
2018-11-09 07:13:20 +01:00
Matthias
9cd2ed5a16
fix hyperopt get_timeframe mock
2018-11-09 07:13:20 +01:00
Matthias
66487f2a13
require start/end-date argument in backtest
2018-11-09 07:13:20 +01:00
Matthias
96efd12a31
add new options to hyperopt
2018-11-09 07:12:41 +01:00
Matthias
e94da7ca41
inverse backtest logic to loop over time - not pairs (more realistic)
2018-11-09 07:12:41 +01:00
Matthias
7b62e71f23
Fix some tests and rebase issues
2018-11-07 20:45:52 +01:00
Matthias
8044846d37
Fix some refactoring problems
2018-11-07 07:05:40 +01:00
Stephen Dade
477515c4b5
Now using resolver for custom hyperopts
2018-11-07 06:58:20 +01:00
Stephen Dade
e0f420983e
Updated logger in custom_hyperopt
2018-11-07 06:55:28 +01:00
Stephen Dade
469db0d434
Decoupled custom hyperopts from hyperopt.py
2018-11-07 06:26:16 +01:00
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
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
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
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
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
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
d9e951447f
remove _init function in backtesting (and according test)
2018-06-02 13:54:22 +02:00
xmatthias
4a322abd4d
Typecheck improvements
2018-06-02 13:44:05 +02:00
Gerald Lonlas
792dd556a1
Fix wrong hint '--update-pairs-cached' from Backtesting/Hyperopt
2018-06-01 19:46:53 -07:00
xmatthias
3fb1dd02f1
add typehints and type: ignores
2018-05-31 22:00:46 +02:00
xmatthias
45909af7e0
type anotation fixes
2018-05-30 22:38:09 +02:00