Packages

Elixir client library for the Alpaca Trading API. Supports trading, market data, and account management.

Current section

4 Versions

Jump to

Compare versions

16 files changed
+132 additions
-128 deletions
  @@ -377,3 +377,4 @@ MIT License - see [LICENSE](https://github.com/phiat/alpa_ex/blob/main/LICENSE)
377 377 - [Hex Docs](https://hexdocs.pm/alpa_ex)
378 378 - [Alpaca API Documentation](https://docs.alpaca.markets/)
379 379 - [Previous version (alpa)](https://github.com/phiat/alpa)
380 + - [Task Tracking with Beads](https://github.com/steveyegge/beads) — AI-native issue tracker used for project planning
unknownassets/alpa_ex.png
File is too large to be displayed (1 MiB limit).
  @@ -2,43 +2,44 @@
2 2 [{<<"Alpaca API Docs">>,<<"https://docs.alpaca.markets">>},
3 3 {<<"GitHub">>,<<"https://github.com/phiat/alpa_ex">>}]}.
4 4 {<<"name">>,<<"alpa_ex">>}.
5 - {<<"version">>,<<"1.0.1">>}.
5 + {<<"version">>,<<"1.0.2">>}.
6 6 {<<"description">>,
7 7 <<"Elixir client library for the Alpaca Trading API.\nSupports trading, market data, and account management.">>}.
8 8 {<<"elixir">>,<<"~> 1.14">>}.
9 9 {<<"app">>,<<"alpa_ex">>}.
10 10 {<<"licenses">>,[<<"MIT">>]}.
11 11 {<<"files">>,
12 - [<<"lib">>,<<"lib/alpa">>,<<"lib/alpa/helpers.ex">>,<<"lib/alpa/crypto">>,
13 - <<"lib/alpa/crypto/market_data.ex">>,<<"lib/alpa/crypto/trading.ex">>,
14 - <<"lib/alpa/crypto/funding.ex">>,<<"lib/alpa/client.ex">>,
15 - <<"lib/alpa/market_data">>,<<"lib/alpa/market_data/bars.ex">>,
16 - <<"lib/alpa/market_data/trades.ex">>,
17 - <<"lib/alpa/market_data/snapshots.ex">>,
18 - <<"lib/alpa/market_data/quotes.ex">>,<<"lib/alpa/config.ex">>,
19 - <<"lib/alpa/application.ex">>,<<"lib/alpa/pagination.ex">>,
20 - <<"lib/alpa/stream">>,<<"lib/alpa/stream/trade_updates.ex">>,
21 - <<"lib/alpa/stream/market_data.ex">>,<<"lib/alpa/models">>,
22 - <<"lib/alpa/models/trade.ex">>,<<"lib/alpa/models/asset.ex">>,
23 - <<"lib/alpa/models/crypto_wallet.ex">>,<<"lib/alpa/models/clock.ex">>,
24 - <<"lib/alpa/models/account.ex">>,<<"lib/alpa/models/crypto_transfer.ex">>,
25 - <<"lib/alpa/models/calendar.ex">>,<<"lib/alpa/models/quote.ex">>,
26 - <<"lib/alpa/models/position.ex">>,<<"lib/alpa/models/activity.ex">>,
27 - <<"lib/alpa/models/order.ex">>,<<"lib/alpa/models/portfolio_history.ex">>,
28 - <<"lib/alpa/models/account_config.ex">>,<<"lib/alpa/models/snapshot.ex">>,
29 - <<"lib/alpa/models/watchlist.ex">>,<<"lib/alpa/models/option_contract.ex">>,
30 - <<"lib/alpa/models/corporate_action.ex">>,<<"lib/alpa/models/bar.ex">>,
31 - <<"lib/alpa/resource.ex">>,<<"lib/alpa/trading">>,
32 - <<"lib/alpa/trading/orders.ex">>,<<"lib/alpa/trading/positions.ex">>,
33 - <<"lib/alpa/trading/account.ex">>,<<"lib/alpa/trading/market.ex">>,
34 - <<"lib/alpa/trading/watchlists.ex">>,
12 + [<<"lib">>,<<"lib/alpa">>,<<"lib/alpa/application.ex">>,
13 + <<"lib/alpa/crypto">>,<<"lib/alpa/crypto/market_data.ex">>,
14 + <<"lib/alpa/crypto/trading.ex">>,<<"lib/alpa/crypto/funding.ex">>,
15 + <<"lib/alpa/helpers.ex">>,<<"lib/alpa/client.ex">>,<<"lib/alpa/trading">>,
16 + <<"lib/alpa/trading/positions.ex">>,<<"lib/alpa/trading/market.ex">>,
17 + <<"lib/alpa/trading/assets.ex">>,<<"lib/alpa/trading/account.ex">>,
18 + <<"lib/alpa/trading/orders.ex">>,
35 19 <<"lib/alpa/trading/corporate_actions.ex">>,
36 - <<"lib/alpa/trading/assets.ex">>,<<"lib/alpa/error.ex">>,
37 - <<"lib/alpa/options">>,<<"lib/alpa/options/contracts.ex">>,
38 - <<"lib/alpa.ex">>,<<"config">>,<<"config/prod.exs">>,<<"config/dev.exs">>,
39 - <<"config/test.exs">>,<<"config/config.exs">>,<<"config/runtime.exs">>,
40 - <<"assets">>,<<"assets/alpa_ex.png">>,<<"mix.exs">>,<<"README.md">>,
41 - <<"CHANGELOG.md">>,<<"LICENSE">>]}.
20 + <<"lib/alpa/trading/watchlists.ex">>,<<"lib/alpa/options">>,
21 + <<"lib/alpa/options/contracts.ex">>,<<"lib/alpa/resource.ex">>,
22 + <<"lib/alpa/config.ex">>,<<"lib/alpa/stream">>,
23 + <<"lib/alpa/stream/market_data.ex">>,<<"lib/alpa/stream/trade_updates.ex">>,
24 + <<"lib/alpa/error.ex">>,<<"lib/alpa/models">>,
25 + <<"lib/alpa/models/account_config.ex">>,<<"lib/alpa/models/watchlist.ex">>,
26 + <<"lib/alpa/models/position.ex">>,
27 + <<"lib/alpa/models/portfolio_history.ex">>,
28 + <<"lib/alpa/models/crypto_transfer.ex">>,
29 + <<"lib/alpa/models/corporate_action.ex">>,<<"lib/alpa/models/quote.ex">>,
30 + <<"lib/alpa/models/account.ex">>,<<"lib/alpa/models/activity.ex">>,
31 + <<"lib/alpa/models/snapshot.ex">>,<<"lib/alpa/models/trade.ex">>,
32 + <<"lib/alpa/models/order.ex">>,<<"lib/alpa/models/option_contract.ex">>,
33 + <<"lib/alpa/models/crypto_wallet.ex">>,<<"lib/alpa/models/asset.ex">>,
34 + <<"lib/alpa/models/clock.ex">>,<<"lib/alpa/models/bar.ex">>,
35 + <<"lib/alpa/models/calendar.ex">>,<<"lib/alpa/pagination.ex">>,
36 + <<"lib/alpa/market_data">>,<<"lib/alpa/market_data/snapshots.ex">>,
37 + <<"lib/alpa/market_data/trades.ex">>,<<"lib/alpa/market_data/quotes.ex">>,
38 + <<"lib/alpa/market_data/bars.ex">>,<<"lib/alpa.ex">>,<<"config">>,
39 + <<"config/prod.exs">>,<<"config/runtime.exs">>,<<"config/test.exs">>,
40 + <<"config/config.exs">>,<<"config/dev.exs">>,<<"assets">>,
41 + <<"assets/alpa_ex.png">>,<<"mix.exs">>,<<"README.md">>,<<"CHANGELOG.md">>,
42 + <<"LICENSE">>]}.
42 43 {<<"requirements">>,
43 44 [[{<<"name">>,<<"req">>},
44 45 {<<"app">>,<<"req">>},
  @@ -153,6 +153,7 @@ defmodule Alpa.Client do
153 153
154 154 defp maybe_add_body(opts, body) do
155 155 headers = Keyword.get(opts, :headers, [])
156 +
156 157 opts
157 158 |> Keyword.put(:json, body)
158 159 |> Keyword.put(:headers, headers ++ [{"Content-Type", "application/json"}])
  @@ -65,10 +65,10 @@ defmodule Alpa.Config do
65 65 trading_url = get_trading_url(opts)
66 66
67 67 use_paper =
68 - if Keyword.has_key?(opts, :trading_url) do
69 - String.contains?(trading_url, "paper")
70 - else
71 - get_opt(opts, :use_paper, true)
68 + cond do
69 + Keyword.has_key?(opts, :use_paper) -> Keyword.get(opts, :use_paper)
70 + Keyword.has_key?(opts, :trading_url) -> String.contains?(trading_url, "paper")
71 + true -> get_opt(opts, :use_paper, true)
72 72 end
73 73
74 74 %__MODULE__{
Loading more files…