Этот репозиторий содержит PHP SDK для использования с API API ALPACA.
Отказ от ответственности: это не официальный SDK, он никоим образом не связан с и не одобренным Alpaca.
С выпуском v3.0.0 этой библиотеки мы используем API V2 API API ALPACA. Методы getLastTrade и getLastQuote совместимы с обратно и не требуют изменений в вашей кодовой базе.
getBars не совместим с обратной задачей, поэтому вам нужно будет обновить кодовую базу для использования новой подписи метода, найденной в разделе «Рыночные данные ниже».
С выпуском v2.0.0 этой библиотеки мы используем V2 API API ALPACA. Тем не менее, все методы обратно совместимы с V1.0.0 этой библиотеки и V1 API API Alpaca, поэтому обновление должно быть таким же простым, как обновление версии пакета в вашем файле composer.json и установка. Все должно работать, как это было раньше, но теперь у вас будет доступ к новым методам и новым параметрам метода.
Примечание : этот пакет в настоящее время требует PHP> = 7.2.5
$ composer require jeffreyhyer/alpaca-trade-api-phpИз вашего приложения PHP вы можете получить доступ к API ALPACA всего лишь парой строк:
<?php
require ' ./vendor/autoload.php ' ;
use Alpaca Alpaca ;
$ alpaca = new Alpaca ( " --KEY-- " , " --SECRET-- " );
$ positions = $ alpaca -> getPositions (); От v2.1.0 Этот пакет поддерживает аутентификацию пользователей через OAuth до API ALPACA. Подробное объяснение по потоку OAuth см. В документах Alpaca.
Следующие методы могут использоваться для запроса авторизации для доступа к учетной записи внешней пользователи Alpaca и получения токена доступа для вызова API от их имени.
getOauthAuthorizeUrl($client_id, $redirect_uri, $scope = "", $state = null)
Предоставьте свои приложения $client_id и авторизованный/белый список $redirect_uri , а также ваш желаемый $scope и случайная стоимость $state . Эта функция вернет URL -адрес, на который вы должны перенаправить пользователя, чтобы разрешить ваше приложение для доступа к своей учетной записи.
getOauthAccessToken($code, $client_id, $client_secret, $redirect_uri)
Как только пользователь разрешил вашу приложение для доступа к своей учетной записи, Alpaca перенаправляет пользователя обратно в ваше приложение ( $redirect_uri ). В URL -адресу будет параметр code , вы передадите это в качестве параметра $code в эту функцию вместе с вашей $client_id и $client_secret и вашей оригинальной $redirect_url . Эта функция вернет токен доступа, который затем можно использовать для вызова API API ALPACA от имени этого пользователя/учетной записи.
Чтобы начать использование токена доступа, вызовите setAccessToken($token) со значением токена.
После аутентификации вы можете позвонить в getOauthAccessTokenDetails() чтобы получить детали токена доступа (статус, достоверность и т. Д.).
Чтобы начать инициализировать класс Alpaca с вашим ключом Alpaca и секретом. Вы также можете установить третий параметр для включения или отключения торговли бумагой. По умолчанию true , чтобы позволить вызову против конечной точки бумаги.
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 ();Вы можете изменить эти значения после инициализации при необходимости, используя следующие методы:
setKey($key)
Установите свой ключ Alpaca
setSecret($secret)
Установите свой секрет альпаки
setPaper(true)
Включить или отключить бумажную торговлю. true = Paper Trading, false = живая торговля.
Все методы возвращают экземпляр класса AlpacaResponse который имеет ряд удобных методов для работы с ответом API.
getCode()
Возвращает код состояния HTTP запроса (например, 200 , 403 и т. Д.).
getReason()
Возвращает причина запроса HTTP (например, OK , Forbidden и т. Д.).
getResponse()
Возвращает ответ JSON. Например:
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] =>
)
*/? Альпака Документы
getAccount()
Возвращает учетную запись, связанную с ключом API.
? Альпака Документы
getOrders($status = null, $limit = null, $after = null, $until = null, $direction = null, $nested = null)
Получает список заказов на учетную запись, необязательно отфильтрованные по предоставленным параметрам запроса.
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 = [])
Размещает новый заказ на данную учетную запись. Запрос на заказ может быть отклонен, если учетная запись не разрешена для торговли, или если торговый баланс недостаточен для выполнения заказа.
getOrder($order_id)
Получает один заказ на заданный $order_id .
getOrderByClientId($client_order_id)
Получает один заказ для данного $client_order_id .
replaceOrder($order_id, $qty, $time_in_force, $limit_price = null, $stop_price = null, $client_order_id = null)
Заменяет один заказ с обновленными параметрами. Каждый параметр переопределяет соответствующий атрибут существующего порядка. Другие атрибуты остаются такими же, как и существующий заказ.
cancelOrder($order_id)
Попытки отменить открытый заказ. Если заказ больше не отменяется (пример: status=order_filled ), сервер ответит на состояние 422 и отклонит запрос.
cancelAllOrders()
Попытки отменить все открытые заказы. Ответ будет предоставлен для каждого заказа, который пытается отменить. Если заказ больше не отменяется, сервер ответит состоянием 500 и отклонит запрос.
? Альпака Документы
getPositions()
Получает список открытых позиций аккаунта.
getPosition($symbol)
Получает открытую позицию аккаунта для данного $symbol .
closeAllPositions()
Закрывает (ликвидирует) все открытые длинные и короткие позиции аккаунта. Ответ будет предоставлен для каждого заказа, который пытается отменить. Если заказ больше не отменяется, сервер ответит состоянием 500 и отклонит запрос.
closePosition($symbol)
Закрывает (ликвидирует) открытое положение учетной записи для данного $symbol . Работает как для длинных, так и для коротких позиций.
? Альпака Документы
getAssets($status = null, $asset_class = null)
Получите список активов
getAsset($symbol)
Получите актив для данного $symbol .
getAssetById($id)
Получите актив для данного $id .
? Альпака Документы
getWatchlists()
Возвращает список списков наблюдения, зарегистрированных в рамках учетной записи.
createWatchlist($name, $symbols = [])
Создайте новый список наблюдения с начальным набором активов ( $symbols ). $name используется для идентификации списка наблюдения в любом из методов *WatchlistByName() ниже.
getWatchlist($id)
Возвращает список наблюдения, идентифицированный $id .
getWatchlistByName($name)
Возвращает список наблюдения, идентифицированный $name .
updateWatchlist($id, $name, $symbols = [])
Обновите имя и/или контент WatchList, идентифицированного $id .
updateWatchlistByName($name, $symbols = [])
Обновите имя и/или содержимое списка наблюдения, идентифицированное $name .
addAssetToWatchlist($id, $symbol)
Добавьте активу для $symbol к окончанию списка активов.
addAssetToWatchlistByName($name, $symbol)
Добавьте активу для $symbol к окончанию списка активов.
deleteWatchlist($id)
Удалить список наблюдения. Это постоянное удаление.
deleteWatchlistByName($name)
Удалить список наблюдения. Это постоянное удаление.
? Альпака Документы
getCalendar($start = null, $end = null)
Возвращает календарь рынка.
? Альпака Документы
getClock()
Возвращает рыночные часы.
? Альпака Документы
getAccountConfigurations()
Возвращает текущие значения конфигурации учетной записи.
updateAccountConfigurations($config = [])
Обновляет и возвращает текущие значения конфигурации учетной записи. $config -это массив пар клавишных значений (например ["key" => "value"] .
? Альпака Документы
getAccountActivitiesOfType($type, $date = null, $until = null, $after = null, $direction = null, $page_size = null, $page_token = null)
Возвращает записи активности учетной записи для определенного типа деятельности.
getAccountActivities($types = [])
Возвращает учетные записи для многих видов деятельности.
? Альпака Документы
getPortfolioHistory($period = null, $timeframe = null, $date_end = null, $extended_hours = null)
Возвращает данные TimeSeries о справедливости и прибыли/убытках (P/L) учетной записи в запрошенном временном пространстве.
? Альпака Документы
getTrades($symbol, $start, $end, $limit = null, $page_token = null)
Возвращает торговые исторические данные для запрошенной безопасности.
getLastTrade($symbol)
Получить последнюю сделку для запрошенного символа.
getQuotes($symbol, $start, $end, $limit = null, $page_token = null)
Возвращает цитату (NBBO) исторические данные для запрошенной безопасности.
getLastQuote($symbol)
Получает последнюю цитату для запрошенного символа.
getBars($timeframe, $symbol, $start, $end, $limit = null, $page_token = null)
Возвращает совокупные исторические данные для запрошенной безопасности.
getMultiSnapshot($symbols)
Возвращает снимки для запрошенных ценных бумаг.
getSnapshot($symbol)
Возвращает снимок для запрошенной безопасности.