Este repositório contém um PHP SDK para uso com a API da ALPACA.
Isenção de responsabilidade: Este não é um SDK oficial, não é afiliado a nem endossado pela Alpaca de forma alguma.
Com o lançamento do v3.0.0 desta biblioteca, usamos o ALPACA Data API V2. Os métodos getLastTrade e getLastQuote são compatíveis com versões anteriores e não requerem alterações na sua base de código.
getBars não é compatível com versões anteriores, portanto você precisará atualizar sua base de código para usar a nova assinatura do método encontrada na seção de dados do mercado abaixo.
Com o lançamento da v2.0.0 desta biblioteca, usamos V2 da API da ALPACA. No entanto, os métodos são todos compatíveis com v1.0.0 desta biblioteca e V1 da API da ALPACA, portanto a atualização deve ser tão simples quanto atualizar a versão do pacote no seu arquivo composer.json e instalar. Tudo deve funcionar como antes, mas agora você terá acesso aos novos métodos e novos parâmetros de método.
Nota : Este pacote atualmente requer php> = 7.2.5
$ composer require jeffreyhyer/alpaca-trade-api-phpDe dentro do seu aplicativo PHP, você pode acessar a API da ALPACA com apenas algumas linhas:
<?php
require ' ./vendor/autoload.php ' ;
use Alpaca Alpaca ;
$ alpaca = new Alpaca ( " --KEY-- " , " --SECRET-- " );
$ positions = $ alpaca -> getPositions (); Na v2.1.0 este pacote suporta usuários autenticando via OAuth para a API da ALPACA. Para uma explicação detalhada sobre o fluxo OAuth, consulte os documentos da Alpaca.
Os métodos a seguir podem ser usados para solicitar autorização para acessar uma conta de alpaca de usuários externos e recuperar um token de acesso para fazer chamadas de API em seu nome.
getOauthAuthorizeUrl($client_id, $redirect_uri, $scope = "", $state = null)
Forneça seus aplicativos $client_id e um $redirect_uri autorizado/de permissões, bem como o $scope desejado e um valor $state aleatório. Esta função retornará o URL para o qual você deve redirecionar seu usuário para autorizar seu aplicativo a acessar a conta deles.
getOauthAccessToken($code, $client_id, $client_secret, $redirect_uri)
Depois que o usuário tiver autorizado seu aplicativo a acessar a conta deles, a ALPACA redirecionará o usuário de volta ao seu aplicativo ( $redirect_uri ). No URL estará um parâmetro code , você passará como o parâmetro $code para esta função junto com o seu $client_id e $client_secret e seu $redirect_url original. Esta função retornará um token de acesso que pode ser usado para chamar a API da ALPACA em nome desse usuário/conta.
Para começar a usar o token de acesso setAccessToken($token) com o valor do token.
Uma vez autenticado, você pode chamar getOauthAccessTokenDetails() para obter os detalhes do token de acesso (status, validade, etc.).
Para começar, inicialize a classe Alpaca com sua chave e segredo da Alpaca. Você também pode definir o terceiro parâmetro para ativar ou desativar a negociação em papel. O padrão é true a permitir a chamada contra o terminal de negociação em papel.
use Alpaca Alpaca ;
$ alpaca = new Alpaca ( " KEY " , " SECRET " , true );
// This call will now work as expected if your KEY and SECRET are valid.
// If not, the response will contain an error explaining what went wrong.
$ resp = $ alpaca -> getAccount ();Você pode alterar esses valores após a inicialização, se necessário, usando os seguintes métodos:
setKey($key)
Defina sua chave de alpaca
setSecret($secret)
Defina seu segredo da Alpaca
setPaper(true)
Ativar ou desativar o comércio de papel. true = negociação em papel, false = comércio ao vivo.
Todos os métodos retornam uma instância da classe de AlpacaResponse que possui vários métodos convenientes para trabalhar com a resposta da API.
getCode()
Retorna o código de status HTTP da solicitação (por exemplo, 200 , 403 , etc).
getReason()
Retorna a razão do status HTTP da solicitação (por exemplo, OK , Forbidden , etc.).
getResponse()
Retorna a resposta decodificada do JSON. Por exemplo:
print_r ( $ alpaca -> getAccount ()-> getResponse ());
/*
Results in:
stdClass Object
(
[id] => null
[status] => ACTIVE
[currency] => USD
[buying_power] => 25000
[cash] => 25000
[cash_withdrawable] => 0
[portfolio_value] => 25000
[pattern_day_trader] =>
[trading_blocked] =>
[transfers_blocked] =>
[account_blocked] =>
[created_at] => 2018-11-01T18:41:35.990779Z
[trade_suspended_by_user] =>
)
*/? DOCs de Alpaca
getAccount()
Retorna a conta associada à chave da API.
? DOCs de Alpaca
getOrders($status = null, $limit = null, $after = null, $until = null, $direction = null, $nested = null)
Recupera uma lista de pedidos da conta, opcionalmente filtrada pelos parâmetros de consulta fornecidos.
createOrder($symbol, $qty, $side, $type, $time_in_force, $limit_price = null, $stop_price = null, $client_order_id = null, $extended_hours = null, $order_class = null, $additional = [])
Coloca um novo pedido para a conta especificada. Uma solicitação de pedido pode ser rejeitada se a conta não estiver autorizada para negociação ou se o saldo negociável for insuficiente para preencher o pedido.
getOrder($order_id)
Recupera um único pedido para o $order_id .
getOrderByClientId($client_order_id)
Recupera um único pedido para o $client_order_id .
replaceOrder($order_id, $qty, $time_in_force, $limit_price = null, $stop_price = null, $client_order_id = null)
Substitui um único pedido por parâmetros atualizados. Cada parâmetro substitui o atributo correspondente da ordem existente. Os outros atributos permanecem os mesmos que a ordem existente.
cancelOrder($order_id)
Tentativas de cancelar um pedido aberto. Se o pedido não for mais cancelado (exemplo: status=order_filled ), o servidor responderá com o status 422 e rejeitará a solicitação.
cancelAllOrders()
Tentativas de cancelar todos os pedidos abertos. Uma resposta será fornecida para cada pedido que tenta ser cancelado. Se um pedido não for mais cancelado, o servidor responderá com o status 500 e rejeitará a solicitação.
? DOCs de Alpaca
getPositions()
Recupera uma lista das posições abertas da conta.
getPosition($symbol)
Recupera a posição aberta da conta para o $symbol dado.
closeAllPositions()
Fecha (liquida) todas as posições longas e curtas da conta. Uma resposta será fornecida para cada pedido que tenta ser cancelado. Se um pedido não for mais cancelado, o servidor responderá com o status 500 e rejeitará a solicitação.
closePosition($symbol)
Fecha (liquida) a posição aberta da conta para o $symbol dado. Funciona para posições longas e curtas.
? DOCs de Alpaca
getAssets($status = null, $asset_class = null)
Obtenha uma lista de ativos
getAsset($symbol)
Obtenha um ativo para o $symbol dado.
getAssetById($id)
Obtenha um ativo para o $id .
? DOCs de Alpaca
getWatchlists()
Retorna a lista de listas de observação registradas na conta.
createWatchlist($name, $symbols = [])
Crie uma nova lista de observação com um conjunto inicial de ativos ( $symbols ). O $name é usado para identificar a lista de observação em qualquer um dos métodos *WatchlistByName() abaixo.
getWatchlist($id)
Retorna uma lista de observação identificada pelo $id .
getWatchlistByName($name)
Retorna uma lista de observação identificada pelo $name .
updateWatchlist($id, $name, $symbols = [])
Atualize o nome e/ou o conteúdo da lista de observação identificados por $id .
updateWatchlistByName($name, $symbols = [])
Atualize o nome e/ou o conteúdo da lista de observação identificados por $name .
addAssetToWatchlist($id, $symbol)
Anexe um ativo pelo $symbol ao final da lista de ativos da lista de observação.
addAssetToWatchlistByName($name, $symbol)
Anexe um ativo pelo $symbol ao final da lista de ativos da lista de observação.
deleteWatchlist($id)
Exclua uma lista de observação. Esta é uma exclusão permanente.
deleteWatchlistByName($name)
Exclua uma lista de observação. Esta é uma exclusão permanente.
? DOCs de Alpaca
getCalendar($start = null, $end = null)
Retorna o calendário de mercado.
? DOCs de Alpaca
getClock()
Retorna o relógio de mercado.
? DOCs de Alpaca
getAccountConfigurations()
Retorna os valores de configuração da conta corrente.
updateAccountConfigurations($config = [])
Atualiza e retorna os valores de configuração da conta corrente. $config é uma matriz de pares de valor-chave (por exemplo ["key" => "value"] .
? DOCs de Alpaca
getAccountActivitiesOfType($type, $date = null, $until = null, $after = null, $direction = null, $page_size = null, $page_token = null)
Retorna entradas de atividade da conta para um tipo específico de atividade.
getAccountActivities($types = [])
Retorna entradas de atividade da conta para muitos tipos de atividades.
? DOCs de Alpaca
getPortfolioHistory($period = null, $timeframe = null, $date_end = null, $extended_hours = null)
Retorna os dados do TimeSeries sobre patrimônio e lucro/perda (P/L) da conta no tempo solicitado.
? DOCs de Alpaca
getTrades($symbol, $start, $end, $limit = null, $page_token = null)
Retorna dados históricos comerciais para a segurança solicitada.
getLastTrade($symbol)
Recupere a última negociação para o símbolo solicitado.
getQuotes($symbol, $start, $end, $limit = null, $page_token = null)
Retorna os dados históricos da citação (NBBO) para a segurança solicitada.
getLastQuote($symbol)
Recupera a última citação para o símbolo solicitado.
getBars($timeframe, $symbol, $start, $end, $limit = null, $page_token = null)
Retorna os dados históricos agregados para a segurança solicitada.
getMultiSnapshot($symbols)
Retorna os instantâneos para os títulos solicitados.
getSnapshot($symbol)
Retorna o instantâneo para a segurança solicitada.