added: disable_buy feature, this will only tell bot to sell whatever is needed to sell

added: order book buy and sell will check ticker first; for buying, if ticker is lower than buy order price, use ticker; for selling, if ticker is higher than sell order price, use ticker
This commit is contained in:
Nullart
2018-06-14 09:57:14 +08:00
parent 5ed7008933
commit dc03b41c68
6 changed files with 42 additions and 20 deletions

View File

@@ -85,7 +85,11 @@ def default_conf():
"0": 0.04
},
"stoploss": -0.10,
"unfilledtimeout": 600,
"disable_buy": False,
"unfilledtimeout": {
"buy":10,
"sell":30
},
"bid_strategy": {
"use_book_order": False,
"book_order_top": 6,
@@ -248,7 +252,8 @@ def limit_buy_order():
'price': 0.00001099,
'amount': 90.99181073,
'remaining': 0.0,
'status': 'closed'
'status': 'closed',
'filled':0.0
}
@@ -263,7 +268,8 @@ def limit_buy_order_old():
'price': 0.00001099,
'amount': 90.99181073,
'remaining': 90.99181073,
'status': 'open'
'status': 'open',
'filled':0.0
}
@@ -278,7 +284,8 @@ def limit_sell_order_old():
'price': 0.00001099,
'amount': 90.99181073,
'remaining': 90.99181073,
'status': 'open'
'status': 'open',
'filled':0.0
}
@@ -293,7 +300,8 @@ def limit_buy_order_old_partial():
'price': 0.00001099,
'amount': 90.99181073,
'remaining': 67.99181073,
'status': 'open'
'status': 'open',
'filled':0.0
}

View File

@@ -852,7 +852,7 @@ def test_check_handle_timedout_buy(default_conf, ticker, limit_buy_order_old, fe
Trade.session.add(trade_buy)
# check it does cancel buy orders over the time limit
freqtrade.check_handle_timedout(600)
freqtrade.check_handle_timedout()
assert cancel_order_mock.call_count == 1
assert rpc_mock.call_count == 1
trades = Trade.query.filter(Trade.open_order_id.is_(trade_buy.open_order_id)).all()
@@ -893,7 +893,7 @@ def test_check_handle_timedout_sell(default_conf, ticker, limit_sell_order_old,
Trade.session.add(trade_sell)
# check it does cancel sell orders over the time limit
freqtrade.check_handle_timedout(600)
freqtrade.check_handle_timedout()
assert cancel_order_mock.call_count == 1
assert rpc_mock.call_count == 1
assert trade_sell.is_open is True
@@ -933,7 +933,7 @@ def test_check_handle_timedout_partial(default_conf, ticker, limit_buy_order_old
# check it does cancel buy orders over the time limit
# note this is for a partially-complete buy order
freqtrade.check_handle_timedout(600)
freqtrade.check_handle_timedout()
assert cancel_order_mock.call_count == 1
assert rpc_mock.call_count == 1
trades = Trade.query.filter(Trade.open_order_id.is_(trade_buy.open_order_id)).all()
@@ -984,7 +984,7 @@ def test_check_handle_timedout_exception(default_conf, ticker, mocker, caplog) -
'recent call last):\n.*'
)
freqtrade.check_handle_timedout(600)
freqtrade.check_handle_timedout()
assert filter(regexp.match, caplog.record_tuples)