Skip to content

Commit

Permalink
fix: adjust option historical data client
Browse files Browse the repository at this point in the history
  • Loading branch information
hiohiohio committed Feb 6, 2024
1 parent aa5bbf5 commit 857293d
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 308 deletions.
53 changes: 0 additions & 53 deletions alpaca/data/historical/option.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,59 +72,6 @@ def __init__(
raw_data=raw_data,
)

# not implemented yet
# def get_option_quotes(
# self, request_params: OptionQuotesRequest
# ) -> Union[QuoteSet, RawData]:
# """Returns level 1 quote data over a given time period for a option or list of options.

# Args:
# request_params (GetOptionQuotesRequest): The request object for retrieving option quote data.

# Returns:
# Union[QuoteSet, RawData]: The quote data either in raw or wrapped form
# """
# params = request_params.to_request_fields()

# # paginated get request for market data api
# raw_quotes = self._data_get(
# endpoint_data_type="quotes",
# endpoint_asset_class="options",
# api_version=self._api_version,
# **params,
# )

# if self._use_raw_data:
# return raw_quotes

# return QuoteSet(raw_quotes)

# def get_option_trades(
# self, request_params: OptionTradesRequest
# ) -> Union[TradeSet, RawData]:
# """Returns the price and sales history over a given time period for a option or list of options.

# Args:
# request_params (GetOptionTradesRequest): The request object for retrieving option trade data.

# Returns:
# Union[TradeSet, RawData]: The trade data either in raw or wrapped form
# """
# params = request_params.to_request_fields()

# # paginated get request for market data api
# raw_trades = self._data_get(
# endpoint_data_type="trades",
# endpoint_asset_class="options",
# api_version=self._api_version,
# **params,
# )

# if self._use_raw_data:
# return raw_trades

# return TradeSet(raw_trades)

def get_option_latest_quote(
self, request_params: OptionLatestQuoteRequest
) -> Union[Dict[str, Quote], RawData]:
Expand Down
255 changes: 0 additions & 255 deletions tests/data/test_historical_option_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,261 +14,6 @@
OptionTradesRequest,
)

# TODO: waiting for the API to be available
# def test_get_quotes(reqmock, option_client: OptionHistoricalDataClient):
# # Test single symbol request

# symbol = "AAPL240126P00050000"
# start = datetime(2024, 1, 24)
# limit = 2

# _start_in_url = urllib.parse.quote_plus(
# start.replace(tzinfo=timezone.utc).isoformat()
# )

# reqmock.get(
# f"https://data.alpaca.markets/v1beta1/options/quotes?symbols={symbol}&start={_start_in_url}&limit={limit}",
# text="""
# TBD
# """,
# )
# request = OptionQuotesRequest(symbol_or_symbols=symbol, start=start, limit=limit)

# quoteset = option_client.get_option_quotes(request_params=request)

# assert isinstance(quoteset, QuoteSet)

# assert quoteset[symbol][0].ask_price == 158.65
# assert quoteset[symbol][0].bid_size == 4

# assert quoteset[symbol][0].ask_exchange == "K"

# assert quoteset.df.index.nlevels == 2

# assert reqmock.called_once


# def test_multisymbol_quotes(reqmock, option_client: OptionHistoricalDataClient):
# # test multisymbol request
# symbols = ["AAPL240126P00050000", "AAPL240126P00100000"]
# start = datetime(2024, 1, 24)
# _symbols_in_url = "%2C".join(s for s in symbols)

# _start_in_url = urllib.parse.quote_plus(
# start.replace(tzinfo=timezone.utc).isoformat()
# )

# reqmock.get(
# f"https://data.alpaca.markets/v1beta1/options/quotes?start={_start_in_url}&symbols={_symbols_in_url}",
# text="""
# TBD
# """,
# )

# request = OptionQuotesRequest(symbol_or_symbols=symbols, start=start)

# quoteset = option_client.get_option_quotes(request_params=request)

# assert isinstance(quoteset, QuoteSet)

# assert quoteset["AAPL240126P00050000"][0].ask_size == 1
# assert quoteset["AAPL240126P00100000"][0].bid_price == 840.75

# assert quoteset["AAPL240126P00050000"][0].bid_exchange == "Q"

# assert quoteset.df.index.nlevels == 2

# assert reqmock.called_once


# def test_get_quotes_single_empty_response(
# reqmock, option_client: OptionHistoricalDataClient
# ):
# symbol = "AAPL240126P00050000"
# start = datetime(2024, 1, 24)
# limit = 2

# _start_in_url = urllib.parse.quote_plus(
# start.replace(tzinfo=timezone.utc).isoformat()
# )

# reqmock.get(
# f"https://data.alpaca.markets/v1beta1/options/quotes?symbols={symbol}&start={_start_in_url}&limit={limit}",
# text="""
# TBD
# """,
# )
# request = OptionQuotesRequest(symbol_or_symbols=symbol, start=start, limit=limit)

# quoteset = option_client.get_option_quotes(request_params=request)

# assert isinstance(quoteset, QuoteSet)

# assert quoteset.dict() == {"AAPL240126P00050000": []}

# assert len(quoteset.df) == 0

# assert reqmock.called_once


# def test_get_quotes_multi_empty_response(
# reqmock, option_client: OptionHistoricalDataClient
# ):
# symbol = "AAPL240126P00050000"
# start = datetime(2024, 1, 24)
# limit = 2

# _start_in_url = urllib.parse.quote_plus(
# start.replace(tzinfo=timezone.utc).isoformat()
# )

# reqmock.get(
# f"https://data.alpaca.markets/v1beta1/options/quotes?symbols={symbol}&start={_start_in_url}&limit={limit}",
# text="""
# TBD
# """,
# )
# request = OptionQuotesRequest(symbol_or_symbols=[symbol], start=start, limit=limit)

# quoteset = option_client.get_option_quotes(request_params=request)

# assert isinstance(quoteset, QuoteSet)

# assert quoteset.dict() == {}

# assert len(quoteset.df) == 0

# assert reqmock.called_once


# def test_get_trades(reqmock, option_client: OptionHistoricalDataClient):
# # Test single symbol request
# symbol = "AAPL240112C00182500"
# start = datetime(2024, 1, 24)
# limit = 2

# _start_in_url = urllib.parse.quote_plus(
# start.replace(tzinfo=timezone.utc).isoformat()
# )

# reqmock.get(
# f"https://data.alpaca.markets/v1beta1/options/trades?symbols={symbol}&start={_start_in_url}&limit={limit}",
# text="""
# TBD
# """,
# )

# request = OptionTradesRequest(symbol_or_symbols=symbol, start=start, limit=limit)

# tradeset = option_client.get_option_trades(request_params=request)

# assert isinstance(tradeset, TradeSet)

# assert tradeset[symbol][0].price == 2.36
# assert tradeset[symbol][0].size == 2

# assert tradeset[symbol][0].exchange == Exchange.D

# assert tradeset.df.index.nlevels == 2

# assert reqmock.called_once


# def test_multisymbol_get_trades(reqmock, option_client: OptionHistoricalDataClient):
# # test multisymbol request
# symbols = ["AAPL240126P00050000", "AAPL240126P00100000"]
# start = datetime(2024, 1, 24)
# _symbols_in_url = "%2C".join(s for s in symbols)

# _start_in_url = urllib.parse.quote_plus(
# start.replace(tzinfo=timezone.utc).isoformat()
# )

# reqmock.get(
# f"https://data.alpaca.markets/v1beta1/options/trades?start={_start_in_url}&symbols={_symbols_in_url}",
# text="""
# TBD
# """,
# )

# request = OptionTradesRequest(symbol_or_symbols=symbols, start=start)

# tradeset = option_client.get_option_trades(request_params=request)

# assert isinstance(tradeset, TradeSet)

# assert tradeset["AAPL240126P00050000"][0].size == 1
# assert tradeset["AAPL240126P00100000"][0].price == 833

# assert tradeset["AAPL240126P00050000"][0].exchange == Exchange.D

# assert tradeset.df.index[0][1].day == 24
# assert tradeset.df.index.nlevels == 2

# assert reqmock.called_once


# def test_get_trades_single_empty_response(
# reqmock, option_client: OptionHistoricalDataClient
# ):
# symbol = "AAPL240126P00050000"
# start = datetime(2024, 1, 24)
# limit = 2

# _start_in_url = urllib.parse.quote_plus(
# start.replace(tzinfo=timezone.utc).isoformat()
# )

# reqmock.get(
# f"https://data.alpaca.markets/v1beta1/options/trades?symbols={symbol}&start={_start_in_url}&limit={limit}",
# text="""
# TBD
# """,
# )

# request = OptionTradesRequest(symbol_or_symbols=symbol, start=start, limit=limit)

# tradeset = option_client.get_option_trades(request_params=request)

# assert isinstance(tradeset, TradeSet)

# assert tradeset.dict() == {"AAPL240126P00050000": []}

# assert len(tradeset.df) == 0

# assert reqmock.called_once


# def test_get_trades_multi_empty_response(
# reqmock, option_client: OptionHistoricalDataClient
# ):
# symbol = "AAPL240126P00050000"
# start = datetime(2024, 1, 24)
# limit = 2

# _start_in_url = urllib.parse.quote_plus(
# start.replace(tzinfo=timezone.utc).isoformat()
# )

# reqmock.get(
# f"https://data.alpaca.markets/v1beta1/options/trades?symbols={symbol}&start={_start_in_url}&limit={limit}",
# text="""
# TBD
# """,
# )

# request = OptionTradesRequest(symbol_or_symbols=[symbol], start=start, limit=limit)

# tradeset = option_client.get_option_trades(request_params=request)

# assert isinstance(tradeset, TradeSet)

# assert tradeset.dict() == {}

# assert len(tradeset.df) == 0

# assert reqmock.called_once


def test_get_latest_trade(reqmock, option_client: OptionHistoricalDataClient):
# Test single symbol request
Expand Down

0 comments on commit 857293d

Please sign in to comment.