Michael Egger
858d2329e5
add experimental flag support and add use_sell_signal ( #143 )
...
* add use_sell_signal to config schema
* check use_sell_signal
* set use_sell_signal to false
2017-11-24 21:58:00 +01:00
Mathieu Favréaux
371ee1e457
In backtesting, ensure we don't buy the same pair again before selling ( #139 )
...
* in backtesting, ensure we don't buy before we sell
* no overlapping trades only if max_open_trades > 0
* --limit-max-trades now --realistic-simulation
2017-11-24 21:09:44 +01:00
Geka000
cfbfe90aa0
keyboard markup for telegram bot ( #142 )
2017-11-24 20:54:50 +01:00
gcarq
be6939ee8a
use 8 digits of precision for amount and rate in formatting
2017-11-23 20:52:07 +01:00
Janne Sinivirta
371e6d99c9
set stoploss to -10%
2017-11-23 18:43:19 +02:00
Janne Sinivirta
c6def418cf
Merge pull request #135 from rybolov/develop
...
Better buy and sell strategy
2017-11-23 18:25:56 +02:00
Michael Smith
5fce2c5712
Better buy and sell strategy:
...
Buy if at the low end of normal range and the price is increasing.
Buy into extreme gains regardless of if it's on the low part of the range.
Avoid buying when the price is on a long decrease even if it's low.
Sell anytime the price is above the top end of normal range and the momentum slows.
Sell on an extreme drop.
2017-11-23 22:33:41 +08:00
Janne Sinivirta
aacd7d8987
Merge pull request #131 from gcarq/feature/backtesting-max-open-trades
...
implement trade count lock for backtesting
2017-11-23 16:16:43 +02:00
gcarq
4a707d7452
add --limit-max-trades
2017-11-23 00:25:06 +01:00
gcarq
7727f2cc8f
implement test
2017-11-22 21:02:36 +01:00
gcarq
9a87dcf0a1
dont apply fees on trade creation
2017-11-22 21:01:44 +01:00
gcarq
9136e64d89
force flush in create_trade and execute_sell ( fixes #128 )
2017-11-22 20:51:25 +01:00
Samuel Husso
765a762ccf
Merge pull request #122 from gcarq/feature/fix-signal-handling
...
fix signal handling
2017-11-22 13:38:57 +02:00
gcarq
02ca2ed585
implement trade count lock for backtesting
2017-11-21 22:33:34 +01:00
gcarq
f3ba3ddd54
move buy_price and sell_price to plotting script
2017-11-21 20:41:49 +01:00
gcarq
65ce948b0b
catch ValueErrors from analyze_ticker ( fixes #123 )
2017-11-21 20:37:29 +01:00
gcarq
383a9f6eeb
catch BaseException to force stdout flush when process dies
2017-11-21 20:24:52 +01:00
gcarq
5d934cd5b6
enhance open order formatting in status handle
2017-11-20 23:33:52 +01:00
gcarq
788cda4925
add missing import
2017-11-20 22:26:32 +01:00
gcarq
55a69e4a45
use normal program flow to handle interrupts
2017-11-20 22:15:19 +01:00
gcarq
86b6c6f334
version bump
2017-11-20 20:01:10 +01:00
gcarq
cd5afd6ff4
use jsonschema regex pattern for whitelist format and enhance validation error messages ( closes #120 )
2017-11-20 19:37:25 +01:00
Janne Sinivirta
d88cc084e6
align numbers in hyperopt print out ( #119 )
2017-11-20 10:22:11 +01:00
Jeff Pipas
5deaebf0c2
Tests now use UTC time with arrow instead of datetime ( #117 )
...
* fixing tests to use arrow-utc
* removing datetime import
2017-11-19 04:58:35 +01:00
gcarq
19734ad863
set bootstrap_retries to infinite ( fixes #113 )
2017-11-18 22:23:05 +01:00
gcarq
b16ccb9919
handle requests exception in validate_pairs
2017-11-18 22:22:45 +01:00
gcarq
d41837817c
move logging to freqtrade.rpc
2017-11-18 21:43:21 +01:00
gcarq
3ab14dfe39
add middleware to expose common functionality for multiple rpc implementations
2017-11-18 21:30:31 +01:00
Michael Egger
4a91ecd91a
Merge pull request #115 from gcarq/pylint_cleanups
...
Pylint cleanups
2017-11-18 16:00:21 +01:00
Samuel Husso
a3da2911e8
Merge pull request #114 from gcarq/new_algo
...
New buy strategy
2017-11-18 13:09:40 +02:00
Janne Sinivirta
6f5b418f0b
small balancing to hyperopt objective
2017-11-18 10:24:18 +02:00
Janne Sinivirta
37a74b38ba
more little pylint fixes
2017-11-18 10:09:19 +02:00
Janne Sinivirta
9ab81a987d
fix pylint warnings in test_main.py
2017-11-18 09:58:55 +02:00
Janne Sinivirta
4b08e3d571
fix pylint warnings in __init__ files
2017-11-18 09:58:29 +02:00
Janne Sinivirta
187fea0c28
disable bunch of meaningless pylint warnings
2017-11-18 09:45:01 +02:00
Janne Sinivirta
4e54b27398
use parentheses for multiline string instead of backslash
2017-11-18 09:44:28 +02:00
Janne Sinivirta
aced5cc3ba
rename variable to remove Mypy warning of type error
2017-11-18 09:43:42 +02:00
Janne Sinivirta
669ec30413
remove unused import
2017-11-18 09:34:57 +02:00
Janne Sinivirta
0082b7abdd
add missing module and class docstring
2017-11-18 09:34:32 +02:00
Janne Sinivirta
7903f3a546
fix test name
2017-11-18 09:19:22 +02:00
Janne Sinivirta
ec75586bdd
new buy strategy
2017-11-18 08:45:57 +02:00
Janne Sinivirta
df9902d6a4
Merge pull request #107 from gcarq/feature/add-backtesting-subcommand
...
add backtesting subcommand and refresh test data
2017-11-18 08:13:42 +02:00
Janne Sinivirta
315919cdd6
fix platform dependent bug in argparse test
2017-11-18 08:07:37 +02:00
gcarq
63c95a3546
modify trade life cycle (should fix #112 )
2017-11-17 20:17:29 +01:00
gcarq
59d04d1d0c
catch TelegramError ( fixes #113 )
2017-11-17 19:49:03 +01:00
gcarq
14de46576b
use load_backtesting_data
2017-11-17 18:23:40 +01:00
gcarq
bdff29a472
remove code duplicates
2017-11-17 18:17:59 +01:00
gcarq
8655c6c264
reduce backtest data samples to 10
2017-11-17 18:15:25 +01:00
gcarq
3f4e4a23a0
add argparse handling tests
2017-11-17 18:15:24 +01:00
gcarq
b682262486
refactor argparse handling
2017-11-17 18:15:24 +01:00
gcarq
5be7be6189
adapt tests
2017-11-17 18:15:24 +01:00
gcarq
3475a07522
fetching new testing data for oneMin and fiveMin intervals
2017-11-17 18:15:24 +01:00
gcarq
fb7ea169d4
fix some formatting issues
2017-11-17 18:13:34 +01:00
gcarq
5469293e5f
use tabulate to format backtesting result
2017-11-17 18:13:02 +01:00
gcarq
9b644b0305
add --ticker-interval
2017-11-17 18:09:55 +01:00
gcarq
0df1404d6a
fix typo
2017-11-17 18:09:55 +01:00
gcarq
bb4a9ed20f
implement backtest subcommand
2017-11-17 18:09:55 +01:00
Janne Sinivirta
d89db50465
avoid copy operation due to memory consumption
2017-11-17 12:30:54 +02:00
Janne Sinivirta
632d00e01d
move price point calculations out from populate functions
2017-11-17 12:30:03 +02:00
Janne Sinivirta
2a56031cdc
remove unnecessary line
2017-11-17 12:30:03 +02:00
Janne Sinivirta
16d412323c
add a little snippet to allow running line_profiler with hyperopt
2017-11-16 20:43:24 +02:00
Janne Sinivirta
27a6b29c80
move time diff calculation out of a loop
2017-11-16 20:43:24 +02:00
Janne Sinivirta
5d1f874041
switch ix to loc, ix is apparently deprecated
2017-11-16 20:43:24 +02:00
Janne Sinivirta
174122a09b
remove unnecessary calculation
2017-11-16 20:38:59 +02:00
Janne Sinivirta
1b6a60ecb2
refactor backtesting to avoid recalculating indicators in hyperopt
2017-11-16 20:38:46 +02:00
Janne Sinivirta
a963f1820c
rename should_sell to min_roi_reached
2017-11-16 16:53:34 +01:00
Janne Sinivirta
b9983149ef
plug sell strategy to backtesting
2017-11-16 16:53:34 +01:00
Janne Sinivirta
c1ef3f526c
remove unnecessary comparison
2017-11-16 16:53:34 +01:00
Janne Sinivirta
6b7afb80b2
fix failing test
2017-11-16 16:53:34 +01:00
Janne Sinivirta
0b8afa12e9
exit strategy after roi check
2017-11-16 16:53:34 +01:00
Janne Sinivirta
1db0a7d4ce
populate sell signal
2017-11-16 16:53:34 +01:00
Janne Sinivirta
c12a9ebd92
make signal getting parametrized
2017-11-16 16:53:34 +01:00
gcarq
d86dcc4752
check if result exists in get_ticker ( fixes #106 )
2017-11-16 16:39:06 +01:00
gcarq
0bc96241d5
rework exception handling ( fixes #108 )
2017-11-16 16:14:43 +01:00
gcarq
2e953a937d
version bump
2017-11-16 00:40:36 +01:00
gcarq
4e05691cab
check if balance list is empty ( fixes #105 )
2017-11-16 00:01:47 +01:00
gcarq
b5f58724a0
get_ticker_history: check if result is set ( fixes #103 )
2017-11-15 23:16:54 +01:00
gcarq
b83309b55d
reduce calls_per_second to 1
2017-11-15 23:16:39 +01:00
gcarq
e8101a6da5
default BaseVolume to 0.0 if null
2017-11-14 17:48:19 +01:00
gcarq
dd9cb008fb
refresh whitelist based on wallet health ( fixes #60 )
...
Refreshs the whitelist in each iteration based on the wallet health,
disabled wallets will be removed from the whitelist automatically.
2017-11-13 21:34:47 +01:00
gcarq
81f7172c4a
sanitize get_ticker_history ( fixes #100 )
2017-11-13 19:54:09 +01:00
Michael Egger
bab59fbacd
Merge pull request #99 from gcarq/more_triggers2
...
Expanding hyperopt
2017-11-13 12:11:15 +01:00
Janne Sinivirta
0f0b10b6cc
adjust search spaces
2017-11-13 07:28:56 +02:00
Janne Sinivirta
8e68c5358e
clean up prints during hyperopt
2017-11-12 09:44:31 +02:00
Janne Sinivirta
660f01b514
add hilbert transform leadsine trigger
2017-11-12 09:13:54 +02:00
Janne Sinivirta
13537e3ce4
add short ema guard to hyperopt
2017-11-12 08:45:32 +02:00
Janne Sinivirta
2963a90008
add stochastics trigger
2017-11-12 08:38:52 +02:00
Janne Sinivirta
15b20b83fa
optimize hyperopt objective function
2017-11-12 08:30:58 +02:00
gcarq
1c3c316e45
reduce calls_per_second
2017-11-11 21:29:35 +01:00
gcarq
517879382b
Add argument for dynamic-whitelist handling
...
If --dynamic-whitelist is passed the whitelist in the config file
is ignored. It gets automatically refreshed every 30 minutes and
currently selects the 20 topmost BaseVolume markets
2017-11-11 19:20:53 +01:00
gcarq
bcd3340a80
implement get_market_summaries
2017-11-11 19:20:16 +01:00
gcarq
12ae1e111e
use get_candles from python-bittrex
2017-11-11 17:14:55 +01:00
gcarq
d3b3370f23
Add configurable throttle mechanism
2017-11-11 16:47:19 +01:00
gcarq
8f817a3634
use TTLCache for get_ticker_history
2017-11-11 15:29:31 +01:00
Janne Sinivirta
cf79b15651
use discrete values for filters
2017-11-11 11:50:10 +02:00
Janne Sinivirta
a4284351e3
fix green_candle
2017-11-11 11:22:12 +02:00
Janne Sinivirta
906caf329b
remove two unused or poorly performing indicators
2017-11-11 11:22:12 +02:00
Janne Sinivirta
3db13fae13
add green_candle guard
2017-11-11 11:22:12 +02:00
Janne Sinivirta
274972f7af
make faststoch trigger use crossed_above helper
2017-11-11 11:22:11 +02:00
Janne Sinivirta
83fd27e031
add sar reversal as trigger
2017-11-11 11:22:11 +02:00
gcarq
3126dcfcea
drop sleep_time and use python-bittrex request delay
2017-11-10 23:39:49 +01:00
Michael Egger
72aec6c320
Merge pull request #96 from gcarq/feature/add-argparse
...
add argparse and implement basic arguments
2017-11-10 18:04:03 +01:00
gcarq
b709ccbf53
enhance logging messages
2017-11-10 17:56:03 +01:00
gcarq
0de211674d
version bump
2017-11-09 23:52:34 +01:00
gcarq
f7a27c156c
add /version command handler
2017-11-09 23:51:32 +01:00
gcarq
98f11fc7bb
fix sqlite threading issue
2017-11-09 23:45:22 +01:00
gcarq
013e13e546
use tabulate for /count
2017-11-09 23:45:03 +01:00
gcarq
6ff26c561a
move plot_dataframe to scripts/ folder
2017-11-09 22:29:23 +01:00
gcarq
c81358c291
remove MagicBot
2017-11-09 22:11:02 +01:00
gcarq
ed34d9f22f
add tests for /forcesell all
2017-11-09 22:08:28 +01:00
gcarq
ee05561ef3
refactor forcesellall to /forcesell all
2017-11-09 22:07:51 +01:00
Eoin
69ae99406a
add telegram handler for forcesellall
2017-11-09 21:52:08 +01:00
gcarq
0cfbb56b6c
enhance and test pair validation
2017-11-09 21:47:47 +01:00
gcarq
991b43b7e5
version bump
2017-11-09 20:55:45 +01:00
gcarq
a0fa6abcdc
use in-memory db for dry_run
2017-11-09 20:26:52 +01:00
gcarq
86501b43c0
adjust message formatting
2017-11-09 20:25:17 +01:00
gcarq
80592970e9
add more tests
2017-11-09 20:02:41 +01:00
gcarq
fafbb0abfe
update python-bittrex to 0.2.0
2017-11-09 00:31:53 +01:00
gcarq
31c03cdce1
fix linter issue
2017-11-08 22:44:32 +01:00
gcarq
e01c85bb3a
add argparse and implement basic arguments
2017-11-08 22:43:47 +01:00
gcarq
a1b91ad1ea
remove unneeded wrapper function
2017-11-08 21:17:51 +01:00
gcarq
6ce6018bb7
add more tests
2017-11-07 22:27:44 +01:00
gcarq
18eec0f4d4
catch BaseException in command_handler
2017-11-07 22:27:16 +01:00
gcarq
32327c45c2
set close_date on sell_order update
2017-11-07 22:26:44 +01:00
gcarq
ba485fe2b2
return state changes
2017-11-07 22:26:08 +01:00
gcarq
f8084b117e
apply pylint recommendations
2017-11-07 20:13:36 +01:00
gcarq
abdddd5193
define common fixtures
2017-11-07 20:12:56 +01:00
gcarq
8eeb02e592
make ticker interval configurable
2017-11-07 18:59:47 +01:00
gcarq
8555271102
remove unneeded header from get_ticker_history
2017-11-07 18:49:16 +01:00
gcarq
d921bae75e
set executable bit
2017-11-07 18:42:40 +01:00
gcarq
a1388ef296
add tick_interval to get_ticker_history as an optional parameter
2017-11-07 18:41:48 +01:00
gcarq
ddc7c94a1d
Merge branch 'develop' of https://github.com/gcarq/freqtrade into develop
2017-11-07 18:40:56 +01:00
Michael Egger
e36444df27
Merge pull request #95 from gcarq/improve_backtests
...
Share pytest fixtures. Cache testfile loading.
2017-11-07 18:40:00 +01:00
Janne Sinivirta
0395c92260
move testdata file loading to pytest fixture
2017-11-07 19:24:51 +02:00
gcarq
f03395b90d
force python3 via shebang
2017-11-07 17:54:44 +01:00
gcarq
20d5628786
catch broader RequestException instead ConnectionError
2017-11-07 17:45:13 +01:00
gcarq
57e089efd3
fix NoneType issue in status command handle
2017-11-07 17:39:57 +01:00
Janne Sinivirta
fbbde9de25
put shared fixtures to conftest.py
2017-11-07 17:29:00 +02:00
Samuel Husso
3d42b9fd75
Merge pull request #94 from gcarq/autopep
...
autoformat with autopep8
2017-11-06 19:41:57 +02:00
Janne Sinivirta
adfae9e75c
autoformat with autopep8
2017-11-06 19:17:23 +02:00
gcarq
117dfbb563
fix wording
2017-11-06 18:15:33 +01:00
Michael Egger
ae0b49f532
Merge pull request #92 from gcarq/feature/rework-dry_run-mode
...
rework dry_run
2017-11-06 16:54:55 +01:00
gcarq
a37ea13fd1
catch RuntimeError earlier
...
This makes it possible to to restart the bot, if there are temporary
server issues.
2017-11-06 01:03:37 +01:00
gcarq
cc29126d61
make download_backtest_data.py platform independent
2017-11-06 00:16:24 +01:00
gcarq
810f2f9243
drop minimum_date from get_ticker_history
2017-11-06 00:06:59 +01:00
gcarq
60e651cb4c
only return data['result'] from get_ticker_history
2017-11-05 23:47:59 +01:00
gcarq
472ce8566d
enhance bittrex exception messages
2017-11-05 22:47:55 +01:00
gcarq
d12dba16db
simplify status command
2017-11-05 18:35:32 +01:00
Sébastien Moreau
3884cfb809
Merge branch 'develop' into feature/advanced-status-command
2017-11-05 10:32:53 -05:00
Sebastien Moreau
caa6e22e53
Adds unit tests
2017-11-05 10:26:03 -05:00
gcarq
19f6ff330c
adapt float precision asserts
2017-11-05 16:21:13 +01:00
gcarq
8fdd127f72
fix float precision rendering
2017-11-05 16:13:55 +01:00
gcarq
0a5eba64e2
do not remove order from dry_run order list
2017-11-05 16:13:20 +01:00
gcarq
b82c4444b2
apply correct typehint
2017-11-05 16:12:58 +01:00
gcarq
95a17b8f98
dry_run: remove mock value notice
2017-11-05 15:35:15 +01:00
gcarq
325f72fd91
dry_run: keep list of open orders
2017-11-05 15:21:16 +01:00
Janne Sinivirta
29b173f4e7
only run four evals of hyperopt, just to check it works
2017-11-05 09:28:42 +02:00
gcarq
264d71e29e
fix some pylint warnings
2017-11-04 18:55:41 +01:00
gcarq
a873688a44
backtesting: init Trade with Bittrex fee
2017-11-04 18:43:23 +01:00
gcarq
04342acff1
fix typo
2017-11-03 21:37:20 +01:00
gcarq
c37df0e70d
inform about mocked values with dry_run
2017-11-03 21:36:55 +01:00
gcarq
460dfa1031
fix percentage formating in execute_sell
2017-11-02 19:00:25 +01:00
gcarq
08a1d3ca1d
pylint changes
2017-11-02 19:00:25 +01:00
gcarq
1daeed4a52
fix assert
2017-11-02 19:00:25 +01:00
gcarq
99724e2458
use Decimal for profit calculation
2017-11-02 19:00:25 +01:00
gcarq
cd18629433
add fee to sqlalchemy model and respecting it in calc_profit
2017-11-02 19:00:25 +01:00
gcarq
41510fdb32
add dry_run for get_balance
2017-11-02 19:00:25 +01:00
gcarq
9cb249610a
adapt dry_run return values
2017-11-02 19:00:25 +01:00
gcarq
543857ddb2
set initial open_rate and amount in create_trade
...
This is mostly needed by dry_run
2017-11-02 19:00:25 +01:00
gcarq
1e5b0e8726
adapt tests
2017-11-02 19:00:25 +01:00
gcarq
0d0d822904
bump dburl to tradesv3
2017-11-02 19:00:25 +01:00
gcarq
9ff4a7b205
refactor _process to update trade state
2017-11-02 19:00:25 +01:00
gcarq
0e96197a94
don't spend the whole coin balance when selling
2017-11-02 19:00:25 +01:00
gcarq
9b9d0250f7
replace get_open_oders() with get_order() and add property for fee
2017-11-02 18:58:55 +01:00
gcarq
4a35676794
rename and exchange instance and mark it as private
2017-11-02 18:58:55 +01:00
gcarq
465c91b9a9
telegram.cleanup: fix NoneType issue when telegram is deactivated
2017-11-02 18:56:57 +01:00
Sebastien Moreau
60249af04c
Removes long format + pylint fixes
2017-11-02 13:25:19 -04:00
gcarq
f34af0ad67
version bump
2017-11-01 01:15:06 +01:00
gcarq
e07904d436
PEP8 linting
2017-10-31 00:36:35 +01:00
gcarq
26468bef83
balance: filter currencies with 0.0 balances
2017-10-31 00:29:22 +01:00
Michael Egger
ea1b1e11ea
Merge pull request #88 from gcarq/reduce_memory_use
...
Reduce memory use in backtesting
2017-10-31 00:28:38 +01:00
Janne Sinivirta
e68e6c0a1a
reuse mock in hyperopt also
2017-10-30 22:31:28 +02:00
Janne Sinivirta
7190226c84
reuse same mock for get_ticker_history, just change return_value
2017-10-30 22:06:09 +02:00
gcarq
6f2915e25e
move qtpylib to vendor folder
...
This is necessary to distribute qtpylib with
freqtrade when you install it globally.
2017-10-30 20:41:36 +01:00
Janne Sinivirta
8da55c3742
move patching of arrow.utcnow to remove 500 unnecessary mock objects
2017-10-30 19:56:53 +02:00
Michael Egger
05111edd04
Merge pull request #87 from gcarq/more_triggers
...
More triggers and guards to hyperopt
2017-10-30 14:43:18 +01:00
Sebastien Moreau
8bdace68f6
Adds options for /status command
2017-10-29 20:51:38 -04:00
Sebastien Moreau
0e1eb20781
Adds /count command
...
Adds /count command
Adds /count command
2017-10-29 18:47:42 -04:00
Michael Egger
4c2dea83c5
Merge pull request #84 from gcarq/telegram/show-balance
...
Telegram command: /show balance
2017-10-29 22:05:10 +01:00
Janne Sinivirta
d066817d0b
removed below_sma and over_sma to wait for better implementation
2017-10-29 21:33:57 +02:00
Janne Sinivirta
a632121368
add macd cross signal trigger to hyperopt
2017-10-29 21:33:57 +02:00
Janne Sinivirta
473d09b5cd
add ema50 and ema100. add long uptrend ema guard to hyperopt
2017-10-29 21:33:57 +02:00
Janne Sinivirta
893738d6f0
add MACD to analyze
2017-10-29 21:33:57 +02:00
Janne Sinivirta
22cfef7d36
add ema5 cross ema10 trigger to hyperopt
2017-10-29 21:33:57 +02:00
Janne Sinivirta
e1bbe1d9a9
adjust indicator ranges in hyperopt
2017-10-29 21:33:57 +02:00
Janne Sinivirta
ec981b415a
add RSI to hyperopt
2017-10-29 21:33:57 +02:00
Janne Sinivirta
57a17697a0
add RSI, MOM, EMA5 and EMA10 to analyze
2017-10-29 21:33:57 +02:00
Samuel Husso
f4fe09ffbf
added get_balances as a abstract method to the interface baseclass
2017-10-29 17:57:57 +02:00
Janne Sinivirta
9b00fc3474
use .ix instead of .loc for small perf boost
2017-10-29 16:28:55 +02:00
Janne Sinivirta
3b1dc36d8a
switch to using itertuples instead of iterrows as it's a lot faster
2017-10-29 16:28:55 +02:00