developersajidbashir commited on
Commit
d53ebfb
·
verified ·
1 Parent(s): 163c577

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -24
app.py CHANGED
@@ -54,33 +54,28 @@ class TradingEnv(gym.Env):
54
 
55
  return self._get_observation(), reward, done, {}
56
 
57
- def fetch_data(symbol='ETHUSDT', interval='1h', start_date='2021-01-01'):
58
- end_date = datetime.utcnow()
59
  start_date = datetime.strptime(start_date, '%Y-%m-%d')
60
- klines = []
 
61
 
62
- while start_date < end_date:
63
- url = f'https://api.binance.com/api/v3/klines?symbol={symbol}&interval={interval}&startTime={int(start_date.timestamp() * 1000)}'
64
- response = requests.get(url)
65
- if response.status_code != 200:
66
- print(f"Error fetching data: {response.status_code} {response.text}")
67
- break
68
- data = response.json()
69
- if not data:
70
- print("Fetched data is empty. Please check the API request and parameters.")
71
- break
72
- else:
73
- print("Fetched data successfully.")
74
- klines += data
75
- #start_date = datetime.fromtimestamp(data[-1][6] / 1000, timezone.utc) + timedelta(milliseconds=1)
76
- start_date = datetime.utcfromtimestamp(data[-1][6] / 1000)
77
 
78
- df = pd.DataFrame(klines, columns=['timestamp', 'Open', 'High', 'Low', 'Close', 'Volume', 'Close_time', 'Quote_asset_volume', 'Number_of_trades', 'Taker_buy_base_asset_volume', 'Taker_buy_quote_asset_volume', 'Ignore'])
79
- df['Close'] = df['Close'].astype(float)
80
- df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
81
- df.set_index('timestamp', inplace=True)
82
- print("completed function")
83
- return df[['Close']]
 
 
 
 
 
 
 
84
 
85
  def calculate_ema(data, span=20):
86
  data['EMA'] = data['Close'].ewm(span=span, adjust=False).mean()
 
54
 
55
  return self._get_observation(), reward, done, {}
56
 
57
+ def fetch_data(symbol='ETH', tsym='USD', start_date='2021-01-01', api_key='66bc686cb714fadda1fad0320704c98869d4b31ce7d9d27560c6c574b4d04c54'):
 
58
  start_date = datetime.strptime(start_date, '%Y-%m-%d')
59
+ end_date = datetime.utcnow()
60
+ to_ts = int(end_date.timestamp())
61
 
62
+ url = f'https://min-api.cryptocompare.com/data/v2/histohour?fsym={symbol}&tsym={tsym}&toTs={to_ts}&api_key={api_key}'
63
+ response = requests.get(url)
64
+ data = response.json()
 
 
 
 
 
 
 
 
 
 
 
 
65
 
66
+ if data['Response'] == 'Success':
67
+ data_points = data['Data']['Data']
68
+ df = pd.DataFrame(data_points)
69
+ df['time'] = pd.to_datetime(df['time'], unit='s')
70
+ df.set_index('time', inplace=True)
71
+
72
+ # Filter data based on start_date
73
+ df = df[df.index >= start_date]
74
+
75
+ return df[['close']]
76
+ else:
77
+ print(f"Error fetching data: {data['Message']}")
78
+ return None
79
 
80
  def calculate_ema(data, span=20):
81
  data['EMA'] = data['Close'].ewm(span=span, adjust=False).mean()