from datetime import datetime, time, timedelta
from alpaca.trading.client import TradingClient
from alpaca.trading.requests import MarketOrderRequest, LimitOrderRequest, StopLimitOrderRequest, StopLossRequest, TrailingStopOrderRequest, GetOrdersRequest
from alpaca.trading.enums import OrderSide, TimeInForce, OrderType, QueryOrderStatus
from alpaca.data import StockHistoricalDataClient
from alpaca.data.requests import StockBarsRequest, StockLatestBarRequest
from alpaca.data.timeframe import TimeFrame
from alpaca.data.models.bars import Bar, BarSet
# Variables required for trading with Alpaca API
API_KEY = "PKFQ83SMC9BBSLD0AHE8"
API_SECRET = "8BaacD3BIvnYbDF9l62c8LtWIv008ToyecfNYv8t"
ENDPOINT = "https://paper-api.alpaca.markets/v2"
trading_client = TradingClient(API_KEY, API_SECRET)
data_client = StockHistoricalDataClient(API_KEY, API_SECRET, raw_data = True)
# Trigger variables
MACD = 0
# Market open and close times
market_open = time(9, 30, 0)
market_close = time(16, 0, 0)
# if((datetime.now().time() >= market_open) and (datetime.now().time() <= market_close)):
# print()
# trading_client.submit_order(
# order_data = MarketOrderRequest(
# symbol = "TSLA",
# qty = 1,
# side = OrderSide.BUY,
# time_in_force = TimeInForce.GTC
# )
# )
# trading_client.close_all_positions()
day = datetime(2024, 6, 3, 0, 0)
request = StockBarsRequest(symbol_or_symbols = "TSLA", start = day, end = (day + timedelta(days = 1)), timeframe = TimeFrame.Day, limit = 1)
data1 = data_client.get_stock_bars(request)
print(data1.getclose())
The way the method works doesn’t allow to get specific data on closing prices. How can I do this?
I’m trying to get specific historical closing prices for TSLA using the Alpaca API. I tried getting stock bars for TSLA and specifically targeting closing price but it is only able to print all bar data at once rather then separating the data.
New contributor
Melville Spencer is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.