Revert "Make get_signals async. This should speed up create_trade calls by at least 10x. (#223)" (#275)
This reverts commit 6768658300
.
See details in #PR266
This commit is contained in:
parent
59546b623e
commit
de68209f3b
@ -144,9 +144,6 @@ def get_signal(pair: str, signal: SignalType) -> bool:
|
|||||||
except ValueError as ex:
|
except ValueError as ex:
|
||||||
logger.warning('Unable to analyze ticker for pair %s: %s', pair, str(ex))
|
logger.warning('Unable to analyze ticker for pair %s: %s', pair, str(ex))
|
||||||
return False
|
return False
|
||||||
except Exception:
|
|
||||||
logger.exception('Unexpected error when analyzing ticker for pair %s.', pair)
|
|
||||||
return False
|
|
||||||
|
|
||||||
if dataframe.empty:
|
if dataframe.empty:
|
||||||
return False
|
return False
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
import enum
|
import enum
|
||||||
import logging
|
import logging
|
||||||
from random import randint
|
from random import randint
|
||||||
from threading import RLock
|
|
||||||
from typing import List, Dict, Any, Optional
|
from typing import List, Dict, Any, Optional
|
||||||
|
|
||||||
import arrow
|
import arrow
|
||||||
@ -15,7 +14,6 @@ from freqtrade.exchange.bittrex import Bittrex
|
|||||||
from freqtrade.exchange.interface import Exchange
|
from freqtrade.exchange.interface import Exchange
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
lock = RLock()
|
|
||||||
|
|
||||||
# Current selected exchange
|
# Current selected exchange
|
||||||
_API: Exchange = None
|
_API: Exchange = None
|
||||||
@ -140,7 +138,7 @@ def get_ticker(pair: str) -> dict:
|
|||||||
return _API.get_ticker(pair)
|
return _API.get_ticker(pair)
|
||||||
|
|
||||||
|
|
||||||
@cached(TTLCache(maxsize=100, ttl=30), lock=lock)
|
@cached(TTLCache(maxsize=100, ttl=30))
|
||||||
def get_ticker_history(pair: str, tick_interval: Optional[int] = 5) -> List[Dict]:
|
def get_ticker_history(pair: str, tick_interval: Optional[int] = 5) -> List[Dict]:
|
||||||
return _API.get_ticker_history(pair, tick_interval)
|
return _API.get_ticker_history(pair, tick_interval)
|
||||||
|
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import asyncio
|
|
||||||
import copy
|
import copy
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
from concurrent.futures import ThreadPoolExecutor
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Dict, Optional, List
|
from typing import Dict, Optional, List
|
||||||
|
|
||||||
@ -243,17 +241,8 @@ def create_trade(stake_amount: float) -> bool:
|
|||||||
raise DependencyException('No pair in whitelist')
|
raise DependencyException('No pair in whitelist')
|
||||||
|
|
||||||
# Pick pair based on StochRSI buy signals
|
# Pick pair based on StochRSI buy signals
|
||||||
with ThreadPoolExecutor() as pool:
|
for _pair in whitelist:
|
||||||
awaitable_signals = [
|
if get_signal(_pair, SignalType.BUY):
|
||||||
asyncio.wrap_future(pool.submit(get_signal, pair, SignalType.BUY))
|
|
||||||
for pair in whitelist
|
|
||||||
]
|
|
||||||
|
|
||||||
loop = asyncio.get_event_loop()
|
|
||||||
signals = loop.run_until_complete(asyncio.gather(*awaitable_signals))
|
|
||||||
|
|
||||||
for idx, _pair in enumerate(whitelist):
|
|
||||||
if signals[idx]:
|
|
||||||
pair = _pair
|
pair = _pair
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user