Alpa.Trading.Positions (AlpaEx v1.0.3)

View Source

Position operations for the Alpaca Trading API.

Summary

Functions

Close a position by symbol or asset ID.

Close all open positions.

Decline to exercise an options position.

Exercise an options position.

Get a specific position by symbol or asset ID.

Get all open positions.

Functions

close(symbol_or_asset_id, opts \\ [])

@spec close(
  String.t(),
  keyword()
) :: {:ok, Alpa.Models.Order.t() | :deleted} | {:error, Alpa.Error.t()}

Close a position by symbol or asset ID.

Options

  • :qty - Number of shares to close (partial close)
  • :percentage - Percentage of position to close (0-100)

If neither is specified, closes the entire position.

Examples

# Close entire position
iex> Alpa.Trading.Positions.close("AAPL")
{:ok, %Alpa.Models.Order{...}}

# Close 50% of position
iex> Alpa.Trading.Positions.close("AAPL", percentage: 50)
{:ok, %Alpa.Models.Order{...}}

# Close 10 shares
iex> Alpa.Trading.Positions.close("AAPL", qty: 10)
{:ok, %Alpa.Models.Order{...}}

close_all(opts \\ [])

@spec close_all(keyword()) :: {:ok, [map()]} | {:error, Alpa.Error.t()}

Close all open positions.

Options

  • :cancel_orders - Also cancel all open orders (boolean, default: false)

Examples

iex> Alpa.Trading.Positions.close_all()
{:ok, [%{"symbol" => "AAPL", "status" => 200, "body" => %{...}}, ...]}

do_not_exercise(symbol_or_asset_id, opts \\ [])

@spec do_not_exercise(
  String.t(),
  keyword()
) :: {:ok, any()} | {:error, Alpa.Error.t()}

Decline to exercise an options position.

Examples

iex> Alpa.Trading.Positions.do_not_exercise("AAPL240315C00175000")
{:ok, :declined}

exercise(symbol_or_asset_id, opts \\ [])

@spec exercise(
  String.t(),
  keyword()
) :: {:ok, any()} | {:error, Alpa.Error.t()}

Exercise an options position.

Examples

iex> Alpa.Trading.Positions.exercise("AAPL240315C00175000")
{:ok, :exercised}

get(symbol_or_asset_id, opts \\ [])

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

Get a specific position by symbol or asset ID.

Examples

iex> Alpa.Trading.Positions.get("AAPL")
{:ok, %Alpa.Models.Position{...}}

list(opts \\ [])

@spec list(keyword()) :: {:ok, [Alpa.Models.Position.t()]} | {:error, Alpa.Error.t()}

Get all open positions.

Examples

iex> Alpa.Trading.Positions.list()
{:ok, [%Alpa.Models.Position{...}]}