Este repositorio contiene un PHP SDK para usar con la API Alpaca.
Descargo de responsabilidad: este no es un SDK oficial, no está afiliado ni respaldado por Alpaca de ninguna manera.
Con la versión de v3.0.0 de esta biblioteca, utilizamos la API de datos Alpaca V2. Los métodos getLastTrade y getLastQuote son compatibles hacia atrás y no requieren cambios en su base de código.
getBars no es compatible con versiones anteriores, por lo que deberá actualizar su base de código para usar la nueva firma del método que se encuentra en la sección de datos del mercado a continuación.
Con el lanzamiento de v2.0.0 de esta biblioteca usamos V2 de la API Alpaca. Sin embargo, todos los métodos son compatibles con versiones anteriores con V1.0.0 de esta biblioteca y V1 de la API Alpaca, por lo que la actualización debe ser tan simple como actualizar la versión del paquete en su archivo e instalación composer.json . Todo debería funcionar como lo hizo antes, pero ahora tendrá acceso a los nuevos métodos y los nuevos parámetros de métodos.
Nota : Este paquete actualmente requiere PHP> = 7.2.5
$ composer require jeffreyhyer/alpaca-trade-api-phpDesde su aplicación PHP, puede acceder a la API Alpaca con solo un par de líneas:
<?php
require ' ./vendor/autoload.php ' ;
use Alpaca Alpaca ;
$ alpaca = new Alpaca ( " --KEY-- " , " --SECRET-- " );
$ positions = $ alpaca -> getPositions (); Desde v2.1.0 Este paquete admite a los usuarios de autenticación a través de OAuth a la API Alpaca. Para una explicación detallada sobre el flujo OAuth, consulte los documentos Alpaca.
Los siguientes métodos se pueden utilizar para solicitar la autorización para acceder a una cuenta de Alpaca de usuarios externos y recuperar un token de acceso para realizar llamadas de API en su nombre.
getOauthAuthorizeUrl($client_id, $redirect_uri, $scope = "", $state = null)
Proporcione sus aplicaciones $client_id y un $redirect_uri autorizado/la lista blanca, así como su $scope deseado y un valor $state aleatorio. Esta función devolverá la URL a la que debe redirigir a su usuario para autorizar su aplicación para acceder a su cuenta.
getOauthAccessToken($code, $client_id, $client_secret, $redirect_uri)
Una vez que el usuario haya autorizado su aplicación para acceder a su cuenta, Alpaca redirigirá al usuario a su aplicación ( $redirect_uri ). En la URL habrá un parámetro code , lo aprobará como el parámetro $code a esta función junto con su $client_id y $client_secret y su $redirect_url original. Esta función devolverá un token de acceso que luego se puede usar para llamar a la API de Alpaca en nombre de ese usuario/cuenta.
Para comenzar a usar el token de acceso setAccessToken($token) con el valor del token.
Una vez autenticado, puede llamar getOauthAccessTokenDetails() para obtener los detalles del token de acceso (estado, validez, etc.).
Para comenzar, inicialice la clase Alpaca con su clave y secreto Alpaca. También puede establecer el tercer parámetro para habilitar o deshabilitar el comercio en papel. El valor predeterminado es true para habilitar llamadas contra el punto final de comercio en 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 ();Puede cambiar estos valores después de la inicialización si es necesario usar los siguientes métodos:
setKey($key)
Establezca su llave de alpaca
setSecret($secret)
Establezca su secreto de Alpaca
setPaper(true)
Habilitar o deshabilitar el comercio en papel. true = Trading en papel, false = comercio en vivo.
Todos los métodos devuelven una instancia de la clase AlpacaResponse que tiene una serie de métodos convenientes para trabajar con la respuesta API.
getCode()
Devuelve el código de estado HTTP de la solicitud (por ejemplo, 200 , 403 , etc.).
getReason()
Devuelve la razón de estado HTTP de la solicitud (por ejemplo, OK , Forbidden , etc.).
getResponse()
Devuelve la respuesta decodificada JSON. Por ejemplo:
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] =>
)
*/? Alpaca Docs
getAccount()
Devuelve la cuenta asociada con la clave API.
? Alpaca Docs
getOrders($status = null, $limit = null, $after = null, $until = null, $direction = null, $nested = null)
Recupera una lista de pedidos para la cuenta, opcionalmente filtrado por los parámetros de consulta suministrados.
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 = [])
Hace un nuevo pedido para la cuenta dada. Se puede rechazar una solicitud de pedido si la cuenta no está autorizada para la negociación, o si el saldo negociable es insuficiente para completar el pedido.
getOrder($order_id)
Recupera un solo pedido para el $order_id dado.
getOrderByClientId($client_order_id)
Recupera un solo pedido para el $client_order_id dado.
replaceOrder($order_id, $qty, $time_in_force, $limit_price = null, $stop_price = null, $client_order_id = null)
Reemplaza un solo orden con parámetros actualizados. Cada parámetro anula el atributo correspondiente del orden existente. Los otros atributos siguen siendo los mismos que el orden existente.
cancelOrder($order_id)
Intenta cancelar un pedido abierto. Si el pedido ya no se puede cancelar (ejemplo: status=order_filled ), el servidor responderá con el estado 422 y rechazará la solicitud.
cancelAllOrders()
Intentos de cancelar todos los pedidos abiertos. Se proporcionará una respuesta para cada pedido que se intente cancelarse. Si un pedido ya no se puede cancelar, el servidor responderá con el estado 500 y rechazará la solicitud.
? Alpaca Docs
getPositions()
Recupera una lista de las posiciones abiertas de la cuenta.
getPosition($symbol)
Recupera la posición abierta de la cuenta para el $symbol dado.
closeAllPositions()
Cierra (liquidados) todas las posiciones abiertas y cortas de la cuenta. Se proporcionará una respuesta para cada pedido que se intente cancelarse. Si un pedido ya no se puede cancelar, el servidor responderá con el estado 500 y rechazará la solicitud.
closePosition($symbol)
Cierra (liquidan) la posición abierta de la cuenta para el $symbol dado. Funciona para posiciones largas y cortas.
? Alpaca Docs
getAssets($status = null, $asset_class = null)
Obtenga una lista de activos
getAsset($symbol)
Obtenga un activo para el $symbol dado.
getAssetById($id)
Obtenga un activo para el $id dado.
? Alpaca Docs
getWatchlists()
Devuelve la lista de listas de observación registradas en la cuenta.
createWatchlist($name, $symbols = [])
Cree una nueva lista de observación con un conjunto inicial de activos ( $symbols ). El $name se usa para identificar la lista de vigilancia en cualquiera de los métodos *WatchlistByName() a continuación.
getWatchlist($id)
Devuelve una lista de vigilancia identificada por $id .
getWatchlistByName($name)
Devuelve una lista de vigilancia identificada por el $name .
updateWatchlist($id, $name, $symbols = [])
Actualice el nombre y/o contenido de la lista de observación identificada por $id .
updateWatchlistByName($name, $symbols = [])
Actualice el nombre y/o contenido de la lista de vigilancia identificada por $name .
addAssetToWatchlist($id, $symbol)
Agregue un activo para el $symbol hasta el final de la lista de activos de la lista de vigilancia.
addAssetToWatchlistByName($name, $symbol)
Agregue un activo para el $symbol hasta el final de la lista de activos de la lista de vigilancia.
deleteWatchlist($id)
Eliminar una lista de vigilancia. Esta es una eliminación permanente.
deleteWatchlistByName($name)
Eliminar una lista de vigilancia. Esta es una eliminación permanente.
? Alpaca Docs
getCalendar($start = null, $end = null)
Devuelve el calendario del mercado.
? Alpaca Docs
getClock()
Devuelve el reloj de mercado.
? Alpaca Docs
getAccountConfigurations()
Devuelve los valores de configuración de la cuenta corriente.
updateAccountConfigurations($config = [])
Actualiza y devuelve los valores de configuración de la cuenta corriente. $config es una matriz de pares de valor clave (por ejemplo ["key" => "value"] .
? Alpaca Docs
getAccountActivitiesOfType($type, $date = null, $until = null, $after = null, $direction = null, $page_size = null, $page_token = null)
Devuelve entradas de actividad de la cuenta para un tipo específico de actividad.
getAccountActivities($types = [])
Devuelve entradas de actividad de la cuenta para muchos tipos de actividades.
? Alpaca Docs
getPortfolioHistory($period = null, $timeframe = null, $date_end = null, $extended_hours = null)
Devuelve los datos de las fuentes de tiempo sobre el patrimonio y las ganancias/pérdidas (P/L) de la cuenta en Times -Pan solicitado.
? Alpaca Docs
getTrades($symbol, $start, $end, $limit = null, $page_token = null)
Devuelve los datos históricos comerciales para la seguridad solicitada.
getLastTrade($symbol)
Recupere la última operación para el símbolo solicitado.
getQuotes($symbol, $start, $end, $limit = null, $page_token = null)
Devuelve los datos históricos de la cita (NBBO) para la seguridad solicitada.
getLastQuote($symbol)
Recupera la última cita para el símbolo solicitado.
getBars($timeframe, $symbol, $start, $end, $limit = null, $page_token = null)
Devuelve datos históricos agregados para la seguridad solicitada.
getMultiSnapshot($symbols)
Devuelve las instantáneas para los valores solicitados.
getSnapshot($symbol)
Devuelve la instantánea para la seguridad solicitada.