Alpa.MarketData.Bars (AlpaEx v1.0.3)

View Source

Historical bar (OHLCV) data from the Alpaca Market Data API v2.

Summary

Functions

Get historical bars for a single symbol.

Get historical bars for multiple symbols.

Get the latest bar for a symbol.

Get latest bars for multiple symbols.

Functions

get(symbol, opts \\ [])

@spec get(
  String.t(),
  keyword()
) :: {:ok, [Alpa.Models.Bar.t()]} | {:error, Alpa.Error.t()}

Get historical bars for a single symbol.

Required Parameters

  • symbol - Stock symbol (e.g., "AAPL")

Options

  • :timeframe - Bar timeframe: "1Min", "5Min", "15Min", "30Min", "1Hour", "4Hour", "1Day", "1Week", "1Month"
  • :start - Start time (DateTime or ISO 8601 string)
  • :end - End time (DateTime or ISO 8601 string)
  • :limit - Max bars to return (default 1000, max 10000)
  • :adjustment - Price adjustment: "raw", "split", "dividend", "all" (default: "raw")
  • :feed - Data feed: "iex", "sip" (default depends on subscription)
  • :page_token - Pagination token

Examples

iex> Alpa.MarketData.Bars.get("AAPL", timeframe: "1Day", start: ~U[2024-01-01 00:00:00Z])
{:ok, [%Alpa.Models.Bar{...}]}

get_multi(symbols, opts \\ [])

@spec get_multi(
  [String.t()],
  keyword()
) ::
  {:ok, %{required(String.t()) => [Alpa.Models.Bar.t()]}}
  | {:error, Alpa.Error.t()}

Get historical bars for multiple symbols.

Required Parameters

  • symbols - List of stock symbols (e.g., ["AAPL", "MSFT", "GOOGL"])

Options

Same as get/2.

Examples

iex> Alpa.MarketData.Bars.get_multi(["AAPL", "MSFT"], timeframe: "1Day", start: ~U[2024-01-01 00:00:00Z])
{:ok, %{"AAPL" => [%Alpa.Models.Bar{...}], "MSFT" => [%Alpa.Models.Bar{...}]}}

latest(symbol, opts \\ [])

@spec latest(
  String.t(),
  keyword()
) :: {:ok, Alpa.Models.Bar.t()} | {:error, Alpa.Error.t()}

Get the latest bar for a symbol.

Options

  • :feed - Data feed: "iex", "sip"

Examples

iex> Alpa.MarketData.Bars.latest("AAPL")
{:ok, %Alpa.Models.Bar{...}}

latest_multi(symbols, opts \\ [])

@spec latest_multi(
  [String.t()],
  keyword()
) ::
  {:ok, %{required(String.t()) => Alpa.Models.Bar.t()}}
  | {:error, Alpa.Error.t()}

Get latest bars for multiple symbols.

Examples

iex> Alpa.MarketData.Bars.latest_multi(["AAPL", "MSFT"])
{:ok, %{"AAPL" => %Alpa.Models.Bar{...}, "MSFT" => %Alpa.Models.Bar{...}}}