Spaces:
Sleeping
Sleeping
Update services/market.py
Browse files- services/market.py +7 -29
services/market.py
CHANGED
@@ -1,36 +1,14 @@
|
|
1 |
import time
|
2 |
-
from typing import Dict, List, Optional, Any
|
3 |
from api.kucoin import KuCoinClient
|
4 |
-
from models.market_data import MarketData
|
5 |
|
6 |
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
self, symbol: str, granularity: int, days: int = 2
|
14 |
-
) -> MarketData:
|
15 |
-
now = int(time.time() * 1000)
|
16 |
-
before = now - (days * 86400000)
|
17 |
-
return self.kucoin.get_kline_data(
|
18 |
-
symbol, granularity, from_time=before, to_time=now
|
19 |
-
)
|
20 |
-
|
21 |
-
def get_current_price(self, symbol: str) -> float:
|
22 |
-
if symbol in self.cache and time.time() - self.cache[symbol]["timestamp"] < 10:
|
23 |
-
return self.cache[symbol]["price"]
|
24 |
-
data = self.kucoin.get_ticker(symbol)
|
25 |
-
self.cache[symbol] = {"price": float(data["price"]), "timestamp": time.time()}
|
26 |
-
return self.cache[symbol]["price"]
|
27 |
-
|
28 |
-
|
29 |
-
def get_market_data(symbol: str, timeframe: str, session) -> MarketData:
|
30 |
-
tf_map = {"15m": 15, "1h": 60, "4h": 240, "1d": 1440}
|
31 |
-
ms = MarketService()
|
32 |
-
return ms.get_market_data(symbol, tf_map.get(timeframe, 15))
|
33 |
|
34 |
|
35 |
def get_current_price(symbol: str, session) -> float:
|
36 |
-
return
|
|
|
1 |
import time
|
|
|
2 |
from api.kucoin import KuCoinClient
|
|
|
3 |
|
4 |
|
5 |
+
def get_market_data(symbol: str, timeframe: str, session) -> "MarketData":
|
6 |
+
granularity_map = {"15m": 15, "1h": 60, "4h": 240, "1d": 1440}
|
7 |
+
granularity = granularity_map.get(timeframe, 15)
|
8 |
+
now = int(time.time() * 1000)
|
9 |
+
start = now - (2 * 24 * 60 * 60 * 1000)
|
10 |
+
return KuCoinClient(session).get_kline_data(symbol, granularity, start, now)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
|
13 |
def get_current_price(symbol: str, session) -> float:
|
14 |
+
return KuCoinClient(session).get_current_price(symbol)
|