farquasar commited on
Commit
880a4aa
·
verified ·
1 Parent(s): 92ffe23

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -15
app.py CHANGED
@@ -17,28 +17,52 @@ def fetch_binance_data(symbol, timeframe, limit=2000):
17
  df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
18
  return df
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  def fetch_yfinance_data(pair: str, period: str, interval: str) -> pd.DataFrame:
21
  """
22
- pair: e.g. "BCH/USDT" or "BTC/USDT"
23
  period: e.g. "100d"
24
- interval: e.g. "1d", "60m", "90m", "1h"
25
  """
26
- # Yahoo uses e.g. "BCH-USD" for BCH/USDT
27
  ticker = pair.replace("/USDT", "-USD")
28
  df = yf.download(ticker, period=period, interval=interval)
29
- df = df.reset_index().rename(columns={
30
- 'Datetime': 'timestamp',
31
- 'Date': 'timestamp',
32
- 'Open': 'open',
33
- 'High': 'high',
34
- 'Low': 'low',
35
- 'Close': 'close',
36
- 'Volume': 'volume'
37
- })
38
- # ensure we have a timestamp column in datetime
39
- df['timestamp'] = pd.to_datetime(df['timestamp'])
40
- return df
41
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  # Rolling Window Normalizer
43
  class RollingWindowNormalizer:
44
  def __init__(self, window=24):
 
17
  df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
18
  return df
19
 
20
+ # def fetch_yfinance_data(pair: str, period: str, interval: str) -> pd.DataFrame:
21
+ # """
22
+ # pair: e.g. "BCH/USDT" or "BTC/USDT"
23
+ # period: e.g. "100d"
24
+ # interval: e.g. "1d", "60m", "90m", "1h"
25
+ # """
26
+ # # Yahoo uses e.g. "BCH-USD" for BCH/USDT
27
+ # ticker = pair.replace("/USDT", "-USD")
28
+ # df = yf.download(ticker, period=period, interval=interval)
29
+ # df = df.reset_index().rename(columns={
30
+ # 'Datetime': 'timestamp',
31
+ # 'Date': 'timestamp',
32
+ # 'Open': 'open',
33
+ # 'High': 'high',
34
+ # 'Low': 'low',
35
+ # 'Close': 'close',
36
+ # 'Volume': 'volume'
37
+ # })
38
+ # # ensure we have a timestamp column in datetime
39
+ # df['timestamp'] = pd.to_datetime(df['timestamp'])
40
+ # return df
41
+
42
  def fetch_yfinance_data(pair: str, period: str, interval: str) -> pd.DataFrame:
43
  """
44
+ pair: e.g. "BCH/USDT"
45
  period: e.g. "100d"
46
+ interval: e.g. "1d", "1h", "4h"
47
  """
 
48
  ticker = pair.replace("/USDT", "-USD")
49
  df = yf.download(ticker, period=period, interval=interval)
 
 
 
 
 
 
 
 
 
 
 
 
50
 
51
+ # bring the DateTimeIndex into a column, whatever its name was
52
+ df = df.reset_index()
53
+ df.rename(columns={df.columns[0]: 'timestamp'}, inplace=True)
54
+
55
+ # standardize OHLCV
56
+ df.rename(columns={
57
+ 'Open': 'open',
58
+ 'High': 'high',
59
+ 'Low': 'low',
60
+ 'Close': 'close',
61
+ 'Volume': 'volume'
62
+ }, inplace=True)
63
+
64
+ return df
65
+
66
  # Rolling Window Normalizer
67
  class RollingWindowNormalizer:
68
  def __init__(self, window=24):