该存储库包含用于羊驼API的PHP SDK。
免责声明:这不是官方的SDK,它与羊驼无关。
随着该库的v3.0.0的发布,我们使用羊驼数据API V2。 getLastTrade和getLastQuote方法是向后兼容的,并且不需要更改代码库。
getBars方法不是向后兼容的,因此您需要更新代码库,以使用下面“市场数据”部分中发现的新方法签名。
随着该库的v2.0.0发布,我们使用羊驼API的V2。但是,这些方法都与此库的v1.0.0兼容,羊驼API的V1应该像在您的composer.json文件和安装中更新包装版本一样简单。一切都应该像以前一样工作,但是现在您可以访问新方法和新方法参数。
注意:此软件包当前需要php> = 7.2.5
$ composer require jeffreyhyer/alpaca-trade-api-php从您的PHP应用程序中,您只需几行即可访问羊驼API:
<?php
require ' ./vendor/autoload.php ' ;
use Alpaca Alpaca ;
$ alpaca = new Alpaca ( " --KEY-- " , " --SECRET-- " );
$ positions = $ alpaca -> getPositions ();从v2.1.0 ,此软件包通过OAuth到羊驼API的身份验证用户。有关OAuth流量的详细说明,请参见羊驼文档。
以下方法可用于请求授权以访问外部用户羊驼帐户并检索访问令牌以代表他们进行API调用。
getOauthAuthorizeUrl($client_id, $redirect_uri, $scope = "", $state = null)
提供您的应用程序$client_id和授权/白名单的$redirect_uri以及您所需的$scope和随机$state值。此功能将返回您应该将用户重定向到的URL,以便授权您的应用程序访问其帐户。
getOauthAccessToken($code, $client_id, $client_secret, $redirect_uri)
用户授权您的应用程序访问其帐户后,羊驼将用户将用户重定向到您的应用程序( $redirect_uri )。在URL中将是code参数,您将将其作为$code参数以及您的$client_id和$client_secret以及您的原始$redirect_url传递给此功能。此功能将返回一个访问令牌,然后可以代表该用户/帐户来调用羊驼API。
要开始使用访问令牌调用setAccessToken($token)带有令牌的值。
经过身份验证后,您可以调用getOauthAccessTokenDetails()获取访问令牌的详细信息(状态,有效性等)。
首先,使用您的羊驼键和秘密初始化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)
设置羊驼密钥
setSecret($secret)
设置羊驼的秘密
setPaper(true)
启用或禁用纸质交易。 true =纸交易, 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 = [])
更新由$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)
返回所请求的时段中有关帐户的股权和损益(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)
为请求的安全性返回快照。