Gerald Lonlas
722ed48d9d
Merge commit 'e3d222912dfd775b7456a44d6d6055430711f251' into feature/objectify
2018-03-04 00:51:22 -08:00
Gerald Lonlas
38510d4b03
Merge commit '1134c81aad049d4357c8f299ffc801218f3d9574' into feature/objectify
2018-03-03 17:26:06 -08:00
Gerald Lonlas
84759073d9
Refactor Configuration() to apply common configurations all the time and to remove show_info
2018-03-03 13:43:14 -08:00
Gerald Lonlas
0632cf0f44
Merge commit 'aa7aeb046ef72412cadd094666efc8e4c503ef2d' into feature/objectify
2018-03-02 23:28:36 -08:00
Gerald Lonlas
bbb1a31fda
Merge commit 'c5400b6c37c7de64a86c9db39a4d0fa9169b35f6' into feature/objectify
2018-03-03 10:01:06 +08:00
Gerald Lonlas
390501bac0
Make Pylint Happy chapter 1
2018-03-03 09:33:54 +08:00
Gerald Lonlas
d274f13480
Remove Memory profiler in Backtesting
2018-03-03 09:33:54 +08:00
Gerald Lonlas
8bd0f4d0d7
Remove ugly pprints
2018-03-03 09:33:54 +08:00
Gerald Lonlas
6ef7b7d93d
Complete Backtesting and Hyperopt unit tests
2018-03-03 09:33:54 +08:00
Gerald Lonlas
1d251d6151
Move Backtesting to a class and add unit tests
2018-03-03 09:33:54 +08:00
Samuel Husso
35c51c73f7
Merge pull request #518 from gcarq/cleaning_up_backtesting
...
Cleaning up backtesting/hyperopt
2018-02-18 10:18:00 +02:00
Janne Sinivirta
fac122891f
remove stoploss parameter from backtest, it is loaded from strategy
2018-02-17 11:14:03 +02:00
Janne Sinivirta
d1bdbcd273
Fix wrong duration calculation in hyperopting
2018-02-16 22:08:20 +02:00
Janne Sinivirta
bf72b5bc37
make args available for optimizer and use them instead of guessing from params
2018-02-16 14:00:12 +02:00
Janne Sinivirta
f64c8cc9ce
realistic should be False by default and enabled with a --realistic-simulation flag
2018-02-15 13:11:17 +02:00
Janne Sinivirta
a1ba57186b
correctly join paths and debug log the found results
2018-02-15 08:59:02 +02:00
Samuel Husso
e3d222912d
Merge pull request #511 from gcarq/hyperopt_selectable_spaces
...
Allow selecting Hyperopt search space
2018-02-12 08:28:24 +02:00
Janne Sinivirta
3e07d41fa9
remove mention of sell space
2018-02-12 07:01:51 +02:00
Janne Sinivirta
2ce03ab1b5
make Strategy store roi and stoploss values as numbers to avoid later casting
2018-02-11 15:25:30 +02:00
Janne Sinivirta
2dd2f31431
remove repeated condition
2018-02-11 14:31:37 +02:00
Janne Sinivirta
dc105d5eae
better names for row variables
2018-02-11 14:24:19 +02:00
Janne Sinivirta
c62356438a
loop over arrays instead of dataframes
2018-02-11 14:18:57 +02:00
Janne Sinivirta
f14d6249e0
allow selecting hyperopt searchspace
2018-02-09 20:59:06 +02:00
kryofly
12a19e400f
tests: more backtesting testing ( #496 )
...
* tests: more backtesting testing
* tests: hyperopt
* tests: document kludge
* tests: improve test_dataframe_correct_length
* tests: remove remarks
2018-02-08 21:49:43 +02:00
Janne Sinivirta
a28ffcbcf7
remove slow unnecessary table scan
2018-02-06 21:21:47 +02:00
Janne Sinivirta
a071571eac
switch to faster short circuiting condition
2018-02-06 12:13:12 +02:00
Janne Sinivirta
5cf2dd79f2
don't reset index if not needed
2018-02-06 11:34:01 +02:00
Janne Sinivirta
cf7c6d2e9c
switch to properly using dates as indexes, makes date based searching and slicing a lot faster
2018-02-06 11:34:00 +02:00
Janne Sinivirta
8c7b29734e
use date info to calculate trade durations
2018-02-06 11:34:00 +02:00
Janne Sinivirta
0a42a0e814
Merge pull request #479 from gcarq/fix/issue-478
...
Fix Backtesting / Hyperopt ticker_interval download
2018-01-31 17:15:47 +02:00
Jean-Baptiste LE STANG
07b7828f39
Fixing bug in backtesting causing to much sells
2018-01-31 07:59:45 +01:00
Gerald Lonlas
d313eb812d
Forgot one args.ticker_interval
2018-01-29 23:07:54 -08:00
Gerald Lonlas
321e3ede30
Fix hyperopt ticker interval download
2018-01-29 22:53:28 -08:00
Gerald Lonlas
524290d678
Fix backtesting ticker interval download
2018-01-29 22:51:29 -08:00
Jean-Baptiste LE STANG
94172091ae
Refactoring the sell conditions evaluation to share the function with backtesting
2018-01-29 10:10:19 +01:00
Janne Sinivirta
a5155b3b20
Merge pull request #465 from gcarq/fix/increase_test_coverage
...
Fix/increase test coverage
2018-01-29 08:47:26 +02:00
Gerald Lonlas
2bccaa31c9
Increase pylint score on misc.py
2018-01-28 14:28:28 -08:00
Michael Smith
f66958c34f
optimize/__init__.py:
...
Added support for gzip ticker data files if they exist.
2018-01-28 21:57:25 +08:00
Michael Smith
b44adaa5ab
Added support in /optimize for gzip ticker data files if they exist.
2018-01-28 21:52:27 +08:00
Janne Sinivirta
a6a479f7aa
balances to min roi hyperopt settings
2018-01-28 10:46:22 +02:00
Janne Sinivirta
67ddb2e7f8
lower precision for most search space variables
2018-01-27 09:51:06 +02:00
Janne Sinivirta
95ab7c84bc
remove unnecessary else
2018-01-26 18:41:41 +02:00
Janne Sinivirta
f33923c784
fix typings for hyperopt code
2018-01-26 18:32:45 +02:00
Janne Sinivirta
a7a7c37121
add day counter to timeframe
2018-01-26 18:32:45 +02:00
Janne Sinivirta
b7e297ebda
remove unused loop variable
2018-01-26 11:50:00 +02:00
Janne Sinivirta
4fe6ae0bae
fix search space for min ROI
2018-01-25 22:32:46 +02:00
Janne Sinivirta
42087c9bfe
let hyperopt optimize ROI table
2018-01-25 11:12:00 +02:00
Janne Sinivirta
5007165908
add search space for ROI table
2018-01-25 09:34:26 +02:00
Janne Sinivirta
7dc63c06e7
Merge pull request #356 from kryofly/test_coverage
...
Test coverage
2018-01-25 09:31:06 +02:00
Janne Sinivirta
c400d15ed1
rip out hyperopt things from strategy, add indicator populating to hyperopt
2018-01-23 16:56:12 +02:00
Janne Sinivirta
a6cbc1ba16
Merge pull request #400 from gcarq/feature/custom_strategy
...
Allow custom strategy files
2018-01-23 15:25:18 +02:00
Gerald Lonlas
e220ad5389
Remove useless USDT_BTC filename conversion
2018-01-22 21:40:07 -08:00
Gerald Lonlas
eac6e05392
Fix error when config does not have stoploss
2018-01-22 20:51:39 -08:00
Gerald Lonlas
1c7da95fed
Move hyperopt_trials.pickle to user_data/
2018-01-22 20:51:39 -08:00
Gerald Lonlas
baae374899
Move hyperopt_conf.py into user_data/
2018-01-22 20:51:39 -08:00
Gerald Lonlas
be75522507
Fix flake8
2018-01-22 20:51:39 -08:00
Gerald Lonlas
c46d78b4b9
Decouple strategy from analyse.py
2018-01-22 20:51:39 -08:00
Gerald Lonlas
ad2a5f1717
Remove optimize.load_data() that is called twice
2018-01-20 15:35:13 -08:00
kryofly
e94e6292e9
Merge branch 'develop' into test_coverage
2018-01-20 22:01:03 +01:00
Jean-Baptiste LE STANG
36797cda30
Merge branch 'develop' into support_multiple_ticker
2018-01-20 19:25:47 +01:00
kryofly
cf266a67ad
Merge branch 'develop' into test_coverage
2018-01-20 10:06:53 +01:00
kryofly
e3088647fc
Merge branch 'develop' into test_coverage
2018-01-19 08:40:40 +01:00
kryofly
4a9e1cb345
Merge branch 'develop' into backtest-export
2018-01-19 07:02:38 +01:00
Gérald LONLAS
14d16f2574
Merge pull request #357 from kryofly/timeperiod
...
Timeperiod
2018-01-18 20:26:44 -08:00
Jean-Baptiste LE STANG
c9e1fd3fc4
Merge branch 'develop' into support_multiple_ticker
2018-01-17 21:29:36 +01:00
Jean-Baptiste LE STANG
7b292d5ca3
backtesting takes its ticker_interval from the config file, else from the command line options
2018-01-17 13:52:14 +01:00
Jean-Baptiste LE STANG
2509ce030d
Refreshing pair of only selected ticker_interval
2018-01-17 13:52:14 +01:00
Jean-Baptiste LE STANG
e2e2005567
Adding 30 minutes, 1 hour, 1 day tickers
2018-01-17 13:52:14 +01:00
Janne Sinivirta
c670ccfd37
add trigger +DI crossed above -DI
2018-01-16 18:52:06 +02:00
Janne Sinivirta
8896b39231
add heikenashi reversal bullish trigger to hyperopt
2018-01-16 18:52:06 +02:00
Janne Sinivirta
ce963aae58
add macd < 0 guard to hyperopt
2018-01-16 18:52:06 +02:00
Janne Sinivirta
dc01807b3c
switch ema5 trigger to ema3 cross trigger
2018-01-16 18:52:06 +02:00
Janne Sinivirta
fadac5fe4a
remove too aggressive trigger
2018-01-16 18:52:06 +02:00
Janne Sinivirta
99260735ae
remove broken bbands trigger from hyperopt. add two working bbands triggers
2018-01-16 18:52:06 +02:00
Janne Sinivirta
501be8a3bc
adjust the hyperopt objective function to emphasize profit and allow more variation in trade counts
2018-01-16 16:36:50 +02:00
Janne Sinivirta
38fe7ec7cd
adjust default target values for hyperopt
2018-01-16 16:35:48 +02:00
kryofly
0e58ab7e01
more advanced use of --timerange
2018-01-16 00:15:49 +01:00
kryofly
71bb348698
rename --timeperiod to --timerange
2018-01-15 21:49:06 +01:00
Janne Sinivirta
ec7bfba8df
add comment about checking the new total profit logging
2018-01-14 13:11:19 +02:00
Janne Sinivirta
f1e176d35c
log total profit in percentages also
2018-01-14 13:10:25 +02:00
Janne Sinivirta
92241baade
log the loss value
2018-01-14 13:09:39 +02:00
kryofly
d4008374f6
backtest export: include enter,exit dates
2018-01-12 22:12:00 +01:00
kryofly
05f5a1b0ee
Merge branch 'develop' into test_coverage
2018-01-11 19:49:33 +01:00
kryofly
153e11f045
Merge branch 'develop' into timeperiod
2018-01-11 19:45:47 +01:00
kryofly
4781a23809
Merge branch 'develop' into backtest-export
2018-01-11 19:40:42 +01:00
kryofly
ed47ee4e29
backtest export json2
2018-01-11 19:14:11 +01:00
kryofly
27769f0301
uncomplex backtest
2018-01-11 17:45:41 +01:00
kryofly
feb5da0c35
file_dump_json
2018-01-11 15:49:04 +01:00
Janne Sinivirta
c11102cf4a
another run of autopep8
2018-01-11 07:08:56 +02:00
Janne Sinivirta
86db6c9084
sort imports
2018-01-11 07:08:56 +02:00
Janne Sinivirta
1b6b0ad9d2
autopep8
2018-01-11 06:50:36 +02:00
kryofly
b0f3fd7ffb
timeperiod argument to backtesting and hyperopt
2018-01-10 23:48:59 +01:00
kryofly
feca87345f
refactor
2018-01-10 23:00:40 +01:00
kryofly
f848a5c87d
tests optimize load_data
2018-01-10 13:43:03 +01:00
Samuel Husso
e67c652988
use os.path.join, fix docstrings
2018-01-10 11:50:00 +02:00
Samuel Husso
ffae0b2cd5
hyperopt: prettyfie best values when receiving SIGINT, use the global TRIALS
2018-01-09 12:37:56 +02:00
Samuel Husso
1647e7a0c1
update fix failing tests, unitest that resume hyperopt functionality works
2018-01-09 12:26:52 +02:00
Samuel Husso
b35fa4c9f6
hyperopt: show the best results so far
2018-01-09 12:25:58 +02:00
Samuel Husso
a48840509b
Hyperopt: use results from previous runs
2018-01-09 12:25:58 +02:00
Samuel Husso
ca8cab0ce9
Hyperopt to handle SIGINT by saving/reading the trials file
2018-01-09 12:25:58 +02:00
Janne Sinivirta
dd2ccea6e5
fix wrong range in stoploss search space
2018-01-08 21:59:46 +02:00
Janne Sinivirta
9dd38aebe0
add stoploss to the hyperopt parameters
2018-01-07 21:08:12 -08:00
Gerald Lonlas
9c21077dc1
Fix hypeopt issue when no result found
2018-01-07 17:53:21 -08:00
kryofly
890083ce7f
Merge branch 'develop' into datadir
2018-01-07 10:00:35 +01:00
Gerald Lonlas
b3ea0f4ec5
Make readable hyperopt best parameters result
2018-01-06 17:19:48 -08:00
kryofly
60ed4b9d1e
--datadir <path> argument
...
This argument enables usage of different backtesting directories.
Useful if one wants compare backtesting performance over time.
2018-01-06 23:24:35 +01:00
Janne Sinivirta
41933c31ca
Merge pull request #315 from kryofly/tests_jan05
...
tests cover more backtesting
2018-01-06 09:26:20 +02:00
kryofly
79fcd0b06c
tests cover more backtesting
2018-01-05 10:44:10 +01:00
kryofly
421ccb23d3
split load tickerdata function
2018-01-05 10:20:48 +01:00
Gerald Lonlas
7fd6d089c0
Fix Backtesting header alignment
2018-01-04 23:14:10 -08:00
Gerald Lonlas
90017998fc
Use named argument for backtest()
2018-01-04 22:27:55 -08:00
Jean-Baptiste LE STANG
ea6a1c629d
fixing pep8 compliance
2018-01-03 11:50:30 +01:00
Jean-Baptiste LE STANG
eb53a796e2
pep8 compliance
2018-01-03 11:35:54 +01:00
Jean-Baptiste LE STANG
45f2d01895
- add a profit/loss counter
...
- the use of the sell_signal is conditional now (taken from the config)
2018-01-03 11:19:46 +01:00
Jean-Baptiste LE STANG
c176ace889
Adding sell_profit_only and stoploss in hyperopt
2018-01-03 10:56:18 +01:00
Janne Sinivirta
fed3024302
rewrite get_timeframe in backtesting
2018-01-02 21:54:31 +02:00
Janne Sinivirta
dc2f048c98
make tuples smaller in backtesting loops
2018-01-02 21:52:47 +02:00
Janne Sinivirta
82e9ed2ac2
shorten table title to match table length
2018-01-02 17:53:47 +02:00
Janne Sinivirta
ae52880f81
improve backtesting result formatting
2018-01-02 17:39:02 +02:00
Gerald Lonlas
0d605d2396
Refactor Optimize tests, and add more unit tests
2017-12-28 22:32:48 -08:00
Janne Sinivirta
a36fd00f6a
also print dot when hyperopt eval result is fail
2017-12-28 06:40:11 +02:00
Janne Sinivirta
7f44ba6df4
unit tests for optimize.hyperopt
2017-12-28 06:39:56 +02:00
Janne Sinivirta
7b0beb0afa
cleanups
2017-12-28 06:36:18 +02:00
Janne Sinivirta
de33d69eed
Lint fixes ( #236 )
...
* correct docstring
* add type annotation to trade_count_lock
* fix indentations
* allow globals in hyperopt.py
* fix import order
* simplify asserts
* use proper variable name
* simplify condition
* fix path operation that fails on windows
2017-12-25 12:07:50 +01:00
Janne Sinivirta
9959d53f5e
Logging improvements to Hyperopt ( #235 )
...
* make log texts go on new line
* remove unnecessary fields from hyperopt log messages
* shorten log text in hyperopt
* consider making zero trades a failed hyperopt eval
* only log from hyperopt when result improves
* remove unnecessary temp variables
* remove unused result data variables
* remove unused import
* fix an outdated comment
2017-12-25 08:18:34 +01:00
Janne Sinivirta
353b0d2d34
balance hyperopt objective to adjusted profit calculations
2017-12-23 19:18:28 +02:00
Janne Sinivirta
e644d57dbe
log should state profit is in BTC to avoid confusion
2017-12-23 19:00:49 +02:00
Janne Sinivirta
50e7cef5f3
remove commented-out code
2017-12-23 19:00:49 +02:00
Janne Sinivirta
1058820e1b
just pass stake_amount instead of the whole config
2017-12-23 19:00:49 +02:00
Janne Sinivirta
24bc3a8390
show more digits for profits
2017-12-23 15:11:19 +02:00
Janne Sinivirta
5309ea3820
use newline for each log result for readability
2017-12-23 15:11:19 +02:00
Janne Sinivirta
a063680d32
calculate log line only if really logging
2017-12-23 15:11:19 +02:00
Janne Sinivirta
10cf2ce853
remove unnecessary confusing division
2017-12-23 15:11:19 +02:00
Janne Sinivirta
871357a2e3
just require positive results
2017-12-23 15:11:19 +02:00
Samuel Husso
8d93363655
filter nan values from total_profit and avg_profit
2017-12-23 09:21:04 +02:00
Janne Sinivirta
f300af0fe2
Merge pull request #200 from glonlas/fix_fees_calculation
...
Fix the fee calculation
2017-12-22 13:55:02 +02:00
Gerald Lonlas
41e22657e4
Fix hyperopt when using MongoDB
2017-12-21 19:20:47 -08:00
Gerald Lonlas
d258118b0a
Fix the fee calculation, backtesting, and hyperopt fee calculation and avg_profit
2017-12-20 20:18:41 -08:00
Janne Sinivirta
c8fb6c4661
More lint fixes ( #198 )
...
* autopep fixes
* remove unused imports
* fix plot_dataframe.py lint warnings
* make pep8 error fails the build
* two more line breakings
* matplotlib.use() must be called before pyplot import
2017-12-18 17:36:00 +01:00
Gerald Lonlas
d613d63fdc
Fix the fee calculation
2017-12-17 23:01:34 -08:00
Janne Sinivirta
80ef2cfed4
Merge pull request #193 from gcarq/feature/ci-enforce-pep8
...
CI: enforce PEP8 conform code
2017-12-17 07:42:23 +02:00
Gérald LONLAS
14868615d5
Add mock to improve backtesting tests ( #194 )
2017-12-17 00:24:21 +01:00
Gérald LONLAS
512fcdbcb1
Allow user to update testdata files with parameter --refresh-pairs-cached ( #174 )
2017-12-16 15:42:28 +01:00
gcarq
95fe0f4dec
fix pep8 warnings
2017-12-16 03:39:47 +01:00
Janne Sinivirta
77023c0ecf
Merge pull request #169 from jblestang/fix_ticker_interval
...
Fix ticker interval
2017-12-12 17:21:55 +02:00
Janne Sinivirta
3d532c6015
update backtest data to match pairs in config.json.example
2017-12-10 11:17:01 +02:00
toto
18f01113c2
use the CLI arguments as the ticker interval
2017-12-09 11:51:53 +01:00
toto
f7def09dec
fix for the ticker interval set by default to 5
2017-12-09 11:39:26 +01:00
Samuel Husso
a7cca4985e
omit hyperopt output if total_profit doesn't go pass threashold (3)
2017-12-02 01:32:23 +02:00
Samuel Husso
965c075362
disable info logging on hyperopt.tpe
2017-12-02 00:21:46 +02:00