該存儲庫包含用於羊駝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)
為請求的安全性返回快照。