Adding 30 minutes, 1 hour, 1 day tickers

This commit is contained in:
Jean-Baptiste LE STANG
2018-01-12 17:02:35 +01:00
parent 5a82d99482
commit e2e2005567
12 changed files with 160 additions and 95 deletions

View File

@@ -54,7 +54,7 @@ def refresh_whitelist(whitelist: List[str]) -> List[str]:
return final_list
def _process(nb_assets: Optional[int] = 0) -> bool:
def _process(interval: int, nb_assets: Optional[int] = 0) -> bool:
"""
Queries the persistence layer for open trades and handles them,
otherwise a new trade is created.
@@ -79,7 +79,7 @@ def _process(nb_assets: Optional[int] = 0) -> bool:
if len(trades) < _CONF['max_open_trades']:
try:
# Create entity and execute trade
state_changed = create_trade(float(_CONF['stake_amount']))
state_changed = create_trade(float(_CONF['stake_amount']), interval)
if not state_changed:
logger.info(
'Checked all whitelisted currencies. '
@@ -97,7 +97,7 @@ def _process(nb_assets: Optional[int] = 0) -> bool:
if trade.is_open and trade.open_order_id is None:
# Check if we can sell our current pair
state_changed = handle_trade(trade) or state_changed
state_changed = handle_trade(trade, interval) or state_changed
if 'unfilledtimeout' in _CONF:
# Check and handle any timed out open orders
@@ -236,7 +236,7 @@ def min_roi_reached(trade: Trade, current_rate: float, current_time: datetime) -
return False
def handle_trade(trade: Trade) -> bool:
def handle_trade(trade: Trade, interval: int) -> bool:
"""
Sells the current pair if the threshold is reached and updates the trade record.
:return: True if trade has been sold, False otherwise
@@ -261,7 +261,7 @@ def handle_trade(trade: Trade) -> bool:
if trade.calc_profit(rate=current_rate) <= 0:
return False
logger.debug('Checking sell_signal ...')
if get_signal(trade.pair, SignalType.SELL):
if get_signal(trade.pair, SignalType.SELL, interval):
logger.debug('Executing sell due to sell signal ...')
execute_sell(trade, current_rate)
return True
@@ -277,7 +277,7 @@ def get_target_bid(ticker: Dict[str, float]) -> float:
return ticker['ask'] + balance * (ticker['last'] - ticker['ask'])
def create_trade(stake_amount: float) -> bool:
def create_trade(stake_amount: float, interval: int) -> bool:
"""
Checks the implemented trading indicator(s) for a randomly picked pair,
if one pair triggers the buy_signal a new trade record gets created
@@ -305,7 +305,7 @@ def create_trade(stake_amount: float) -> bool:
# Pick pair based on StochRSI buy signals
for _pair in whitelist:
if get_signal(_pair, SignalType.BUY):
if get_signal(_pair, SignalType.BUY, interval):
pair = _pair
break
else:
@@ -458,6 +458,7 @@ def main(sysargv=sys.argv[1:]) -> None:
_process,
min_secs=_CONF['internals'].get('process_throttle_secs', 10),
nb_assets=args.dynamic_whitelist,
interval=_CONF.get('ticker_interval', 5)
)
old_state = new_state
except KeyboardInterrupt: