Files
v2realbot/testy/archive/test.ipynb
David Brazda af9e944928 first commit
2023-04-12 21:00:03 +02:00

9.3 KiB

In [97]:
# 2 clients for historical data StockHistoricalDataClient (needs keys), CryptoHistoricalDataClient
# 2 clients for real time data CryptoDataStream, StockDataStream


# naimportuju si daneho clienta
from alpaca.data.historical import StockHistoricalDataClient, CryptoHistoricalDataClient

#pokdu pouzivam historicke data(tzn. REST) tak si naimportuju dany request object
from alpaca.data.requests import StockLatestQuoteRequest, StockBarsRequest, StockTradesRequest

#objekty se kterymi pak pracuju (jsou soucasi package výše, tady jen informačně)
from alpaca.data import Quote, Trade, Snapshot, Bar
from alpaca.data.models import BarSet, QuoteSet, TradeSet


from config import API_KEY, SECRET_KEY
import datetime
import pandas as pd

# vytvorim si clienta
stock_client = StockHistoricalDataClient(API_KEY, SECRET_KEY, raw_data=False)

sloupce=["symbol","timestamp","exchange","price","size","id","conditions","tape"]

# deklarace globalniho df s timeindexem
#gdf = pd.DataFrame(columns=sloupce, index=pd.to_datetime([]))

time_from = datetime.datetime(2023, 2, 17, 14, 50, 0, 0)
time_to = datetime.datetime(2023, 2, 17, 14, 55, 1, 0)
#print(time_from)

# vytvorim request objekt
#latestQuoteRequest = StockLatestQuoteRequest(symbol_or_symbols=["SPY", "GLD", "TLT"])
stockTradeRequest = StockTradesRequest(symbol_or_symbols=["BAC"], start=time_from,end=time_to)
stockBarRequest = StockBarsRequest(symbol_or_symbols=["BAC"], start=time_from,end=time_to, timeframe="15s")

#zavolam na clientovi metodu s request objektem, vrací se mi Dict[str, Quote] - obj.Quote pro kazdy symbol
#latestQuoteObject = stock_client.get_stock_latest_quote(latestQuoteRequest)
#tradesResponse = stock_client.get_stock_trades(stockTradeRequest).df
stocksResponse = stock_client.get_stock_bars(stockBarRequest).df

#data = [{'t': '2023-02-17T14:50:00.582845696Z', 'x': 'D', 'p': 34.83, 's': 1, 'c': [' ', 'I'], 'i': 71675642337847, 'z': 'A'}, {'t': '2023-02-17T14:50:00.948229632Z', 'x': 'D', 'p': 34.8383, 's': 10, 'c': [' ', 'I'], 'i': 79371872323411, 'z': 'A'}]
# data = [{   'conditions': [' ', 'I'],
#     'exchange': 'D',
#     'id': 71675642337847,
#     'price': 34.83,
#     'size': 1.0,
#     'symbol': 'BAC',
#     'tape': 'A',
#     'timestamp': datetime.datetime(2023, 2, 17, 14, 50, 0, 582845, tzinfo=datetime.timezone.utc)}, {   'conditions': [' ', 'I'],
#     'exchange': 'D',
#     'id': 79371872323411,
#     'price': 34.8383,
#     'size': 10.0,
#     'symbol': 'BAC',
#     'tape': 'A',
#     'timestamp': datetime.datetime(2023, 2, 17, 14, 50, 0, 948229, tzinfo=datetime.timezone.utc)}, {   'conditions': [' ', 'I'],
#     'exchange': 'D',
#     'id': 71675642400306,
#     'price': 34.835,
#     'size': 1.0,
#     'symbol': 'BAC',
#     'tape': 'A',
#     'timestamp': datetime.datetime(2023, 2, 17, 14, 50, 1, 870989, tzinfo=datetime.timezone.utc)}, {   'conditions': [' ', 'I'],
#     'exchange': 'D',
#     'id': 71675642400308,
#     'price': 34.84,
#     'size': 100.0,
#     'symbol': 'BAC',
#     'tape': 'A',
#     'timestamp': datetime.datetime(2023, 2, 17, 14, 55, 0, 88460, tzinfo=datetime.timezone.utc)}]
# datetime.datetime(2023, 2, 17, 14, 50, 0, 948229, tzinfo=datetime.timezone.utc)
#data = tradesResponse

#gdf = pd.DataFrame.from_dict(data=data, orient='index')
#gdf = pd.DataFrame(data)

#gdf = pd.DataFrame(tradesResponse.data["BAC"])

# works with raw data
#gdf = pd.DataFrame([t for t in tradesResponse["BAC"]], columns=sloupce)

#gdf = tradesResponse.df
print(stocksResponse)
# print(tradesResponse)
#print(tradesResponse["BAC"])
# print(tradesResponse.data["BAC"])

# positions_df = pd.concat((pd.DataFrame(position).set_index(0) for position in positions),axis=1)
# positions_df = positions_df.T.apply(pd.to_numeric, errors='ignore').T # convert strings to numeric
# For orders:
# orders_df = pd.concat((pd.DataFrame(order).set_index(0) for order in orders),axis=1).T
---------------------------------------------------------------------------
ValidationError                           Traceback (most recent call last)
Cell In[97], line 35
     30 #print(time_from)
     31 
     32 # vytvorim request objekt
     33 #latestQuoteRequest = StockLatestQuoteRequest(symbol_or_symbols=["SPY", "GLD", "TLT"])
     34 stockTradeRequest = StockTradesRequest(symbol_or_symbols=["BAC"], start=time_from,end=time_to)
---> 35 stockBarRequest = StockBarsRequest(symbol_or_symbols=["BAC"], start=time_from,end=time_to, timeframe="15s")
     37 #zavolam na clientovi metodu s request objektem, vrací se mi Dict[str, Quote] - obj.Quote pro kazdy symbol
     38 #latestQuoteObject = stock_client.get_stock_latest_quote(latestQuoteRequest)
     39 #tradesResponse = stock_client.get_stock_trades(stockTradeRequest).df
     40 stocksResponse = stock_client.get_stock_bars(stockBarRequest).df

File ~/Documents/Development/python/trading/.venv/lib/python3.11/site-packages/alpaca/data/requests.py:45, in BaseTimeseriesDataRequest.__init__(self, **data)
     37 if (
     38     "end" in data
     39     and data["end"] is not None
     40     and isinstance(data["end"], datetime)
     41     and data["end"].tzinfo is not None
     42 ):
     43     data["end"] = data["end"].astimezone(pytz.utc).replace(tzinfo=None)
---> 45 super().__init__(**data)

File ~/Documents/Development/python/trading/.venv/lib/python3.11/site-packages/pydantic/main.py:342, in pydantic.main.BaseModel.__init__()

ValidationError: 1 validation error for StockBarsRequest
timeframe
  instance of TimeFrame expected (type=type_error.arbitrary_type; expected_arbitrary_type=TimeFrame)