replace get_ticker with get_orderbook

This commit is contained in:
gcarq
2017-10-13 21:09:55 +02:00
parent b3ed0151f0
commit 93b729a5d5
5 changed files with 37 additions and 25 deletions

View File

@@ -1,6 +1,6 @@
import enum
import logging
from typing import List
from typing import List, Optional, Dict
import arrow
@@ -85,8 +85,8 @@ def get_balance(currency: str) -> float:
return EXCHANGE.get_balance(currency)
def get_ticker(pair: str) -> dict:
return EXCHANGE.get_ticker(pair)
def get_orderbook(pair: str, top_most: Optional[int] = None) -> Dict[str, List[Dict]]:
return EXCHANGE.get_orderbook(pair, top_most)
def get_ticker_history(pair: str, minimum_date: arrow.Arrow):

View File

@@ -1,5 +1,5 @@
import logging
from typing import List, Optional
from typing import List, Optional, Dict
import arrow
from bittrex.bittrex import Bittrex as _Bittrex, API_V2_0
@@ -56,14 +56,13 @@ class Bittrex(Exchange):
raise RuntimeError('{}: {}'.format(self.name.upper(), data['message']))
return float(data['result']['Balance'] or 0.0)
def get_ticker(self, pair: str) -> dict:
data = _API.get_ticker(pair.replace('_', '-'))
def get_orderbook(self, pair: str, top_most: Optional[int] = None) -> Dict[str, List[Dict]]:
data = _API.get_orderbook(pair.replace('_', '-'))
if not data['success']:
raise RuntimeError('{}: {}'.format(self.name.upper(), data['message']))
return {
'bid': float(data['result']['Bid']),
'ask': float(data['result']['Ask']),
'last': float(data['result']['Last']),
'bid': data['result']['buy'][:top_most],
'ask': data['result']['sell'][:top_most],
}
def get_ticker_history(self, pair: str, minimum_date: Optional[arrow.Arrow] = None):

View File

@@ -1,5 +1,5 @@
from abc import ABC, abstractmethod
from typing import List, Optional
from typing import List, Optional, Dict
import arrow
@@ -50,14 +50,26 @@ class Exchange(ABC):
"""
@abstractmethod
def get_ticker(self, pair: str) -> dict:
def get_orderbook(self, pair: str, top_most: Optional[int] = None) -> Dict[str, List[Dict]]:
"""
Gets ticker for given pair.
Gets orderbook for given pair.
:param pair: Pair as str, format: BTC_ETC
:param top_most: only return n top_most bids/sells (optional)
:return: dict, format: {
'bid': float,
'ask': float,
'last': float
'bid': [
{
'Quantity': float,
'Rate': float,
},
...
],
'ask': [
{
'Quantity': float,
'Rate': float,
},
...
]
}
"""