Dieses Repository enthält ein PHP -SDK zur Verwendung mit der ALPACA -API.
Haftungsausschluss: Dies ist kein offizielles SDK, es ist weder von Alpaka in irgendeiner Weise verbunden noch unterstützt.
Mit der Veröffentlichung von v3.0.0 dieser Bibliothek verwenden wir die ALPACA -Daten -API V2. Die getLastTrade und getLastQuote -Methoden sind rückwärts kompatibel und erfordern keine Änderungen an Ihrer Codebasis.
getBars -Methode ist nicht rückwärts kompatibel, sodass Sie Ihre Codebasis aktualisieren müssen, um die neue Methodensignatur im folgenden Marktdatenabschnitt zu verwenden.
Mit der Veröffentlichung von v2.0.0 dieser Bibliothek verwenden wir V2 der Alpaka -API. Die Methoden sind jedoch alle mit v1.0.0 dieser Bibliothek und V1 der ALPACA -API kompatibel, sodass das Upgrade so einfach sein sollte wie die Aktualisierung der Paketversion in Ihrer composer.json -Datei und der Installation. Alles sollte wie zuvor funktionieren, aber jetzt haben Sie Zugriff auf die neuen Methoden und die neuen Methodenparameter.
HINWEIS : Für dieses Paket ist derzeit Php> = 7.2.5 erforderlich
$ composer require jeffreyhyer/alpaca-trade-api-phpIn Ihrer PHP -Anwendung können Sie mit nur ein paar Zeilen auf die ALPACA -API zugreifen:
<?php
require ' ./vendor/autoload.php ' ;
use Alpaca Alpaca ;
$ alpaca = new Alpaca ( " --KEY-- " , " --SECRET-- " );
$ positions = $ alpaca -> getPositions (); Ab v2.1.0 unterstützt dieses Paket die Authentifizierung von Benutzern über OAuth zur ALPACA -API. Eine detaillierte Erklärung zum OAuth -Fluss finden Sie in den Alpaka -Dokumenten.
Die folgenden Methoden können verwendet werden, um die Autorisierung zu fordern, um auf ein Alpaka -Konto für externe Benutzer zuzugreifen und ein Zugriffstoken abzurufen, um API -Anrufe in ihrem Namen zu tätigen.
getOauthAuthorizeUrl($client_id, $redirect_uri, $scope = "", $state = null)
Geben Sie Ihren Anträgen $client_id und einen autorisierten/whitelistischen $redirect_uri sowie Ihren gewünschten $scope und einen zufälligen $state -Wert an. Diese Funktion gibt die URL zurück, zu der Sie Ihren Benutzer umleiten sollten, um Ihre Bewerbung für den Zugriff auf ihr Konto zu autorisieren.
getOauthAccessToken($code, $client_id, $client_secret, $redirect_uri)
Sobald der Benutzer Ihre Anwendung zum Zugriff auf sein Konto autorisiert hat, wird Alpaca den Benutzer wieder zu Ihrer Anwendung ( $redirect_uri ) umleiten. In der URL ist ein code und übergeben Sie dies als $code -Parameter für diese Funktion zusammen mit Ihrem $client_id und $client_secret und Ihrem ursprünglichen $redirect_url . Diese Funktion gibt ein Zugriffstoken zurück, mit dem dann die ALPACA -API im Namen dieses Benutzers/Kontos aufgerufen werden kann.
Verwenden Sie mit dem Access Token Call setAccessToken($token) mit dem Wert des Tokens.
Sobald Sie sich authentifiziert haben, können Sie getOauthAccessTokenDetails() aufrufen, um die Details des Zugangs -Tokens (Status, Gültigkeit usw.) zu erhalten.
Initialisieren Sie die Alpaca -Klasse mit Ihrem Alpaka -Schlüssel und Ihrem Geheimnis. Sie können auch den dritten Parameter festlegen, um den Papierhandel zu aktivieren oder zu deaktivieren. Der Standardwert ist true , um das Aufrufen des Papierhandelsendpunkts zu ermöglichen.
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 ();Sie können diese Werte nach der Initialisierung bei Bedarf mit den folgenden Methoden ändern:
setKey($key)
Stellen Sie Ihren Alpaka -Schlüssel ein
setSecret($secret)
Stellen Sie Ihr Alpaka -Geheimnis ein
setPaper(true)
Papierhandel aktivieren oder deaktivieren. true = Papierhandel, false = Live Trading.
Alle Methoden geben eine Instanz der AlpacaResponse Antwortklasse zurück, die eine Reihe bequemer Methoden zur Arbeit mit der API -Antwort aufweist.
getCode()
Gibt den HTTP -Statuscode der Anforderung zurück (z. B. 200 , 403 usw.).
getReason()
Gibt den HTTP -Statusgrund der Anfrage zurück (z. B. OK , Forbidden usw.).
getResponse()
Gibt die JSON -dekodierte Antwort zurück. Zum Beispiel:
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] =>
)
*/? Alpaka -Dokumente
getAccount()
Gibt das mit dem API -Schlüssel zugeordnete Konto zurück.
? Alpaka -Dokumente
getOrders($status = null, $limit = null, $after = null, $until = null, $direction = null, $nested = null)
Ruft eine Liste von Bestellungen für das Konto ab, die optional von den angegebenen Abfrageparametern gefiltert werden.
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 = [])
Gibt eine neue Bestellung für das angegebene Konto. Eine Bestellanforderung kann abgelehnt werden, wenn das Konto nicht für den Handel autorisiert ist oder wenn der handelbare Saldo nicht ausreicht, um die Bestellung zu besetzen.
getOrder($order_id)
Ruft eine einzelne Bestellung für das angegebene $order_id ab.
getOrderByClientId($client_order_id)
Ruft eine einzelne Bestellung für die angegebene $client_order_id ab.
replaceOrder($order_id, $qty, $time_in_force, $limit_price = null, $stop_price = null, $client_order_id = null)
Ersetzt eine einzelne Bestellung durch aktualisierte Parameter. Jeder Parameter überschreibt das entsprechende Attribut der vorhandenen Reihenfolge. Die anderen Attribute bleiben mit der vorhandenen Reihenfolge gleich.
cancelOrder($order_id)
Versuche, eine offene Bestellung zu stornieren. Wenn die Bestellung nicht mehr abgebrochen wird (Beispiel: status=order_filled ), antwortet der Server mit Status 422 und lehnt die Anforderung ab.
cancelAllOrders()
Versuche, alle offenen Bestellungen zu stornieren. Für jede Bestellung, die versucht wird, abgesagt zu werden, wird eine Antwort bereitgestellt. Wenn eine Bestellung nicht mehr storniert werden kann, antwortet der Server mit Status 500 und lehnt die Anforderung ab.
? Alpaka -Dokumente
getPositions()
Ruft eine Liste der offenen Positionen des Kontos ab.
getPosition($symbol)
Ruft die offene Position des Kontos für das angegebene $symbol ab.
closeAllPositions()
Schließt (Liquidate) alle offenen langen und kurzen Positionen des Kontos. Für jede Bestellung, die versucht wird, abgesagt zu werden, wird eine Antwort bereitgestellt. Wenn eine Bestellung nicht mehr storniert werden kann, antwortet der Server mit Status 500 und lehnt die Anforderung ab.
closePosition($symbol)
Schließt (Liquidate) die offene Position des Kontos für das angegebene $symbol . Funktioniert sowohl für lange als auch für kurze Positionen.
? Alpaka -Dokumente
getAssets($status = null, $asset_class = null)
Holen Sie sich eine Liste von Vermögenswerten
getAsset($symbol)
Holen Sie sich ein Gut für das angegebene $symbol .
getAssetById($id)
Holen Sie sich ein Gut für die angegebene $id .
? Alpaka -Dokumente
getWatchlists()
Gibt die Liste der unter dem Konto registrierten Wächter zurück.
createWatchlist($name, $symbols = [])
Erstellen Sie eine neue Beobachtungsliste mit anfänglicher Assets ( $symbols ). Der $name wird verwendet, um die Watchlist in einer der folgenden *WatchlistByName() -Methoden zu identifizieren.
getWatchlist($id)
Gibt eine von der $id identifizierte Beobachtungsliste zurück.
getWatchlistByName($name)
Gibt eine vom $name identifizierte Beobachtungsliste zurück.
updateWatchlist($id, $name, $symbols = [])
Aktualisieren Sie den Namen und/oder den Inhalt der von $id identifizierten Watchlist.
updateWatchlistByName($name, $symbols = [])
Aktualisieren Sie den Namen und/oder den Inhalt der von $name identifizierten Watchlist.
addAssetToWatchlist($id, $symbol)
Gehen Sie ein Vermögenswert für das $symbol an das Ende der Asset -Liste der Watchlist an.
addAssetToWatchlistByName($name, $symbol)
Gehen Sie ein Vermögenswert für das $symbol an das Ende der Asset -Liste der Watchlist an.
deleteWatchlist($id)
Löschen Sie eine Beobachtungsliste. Dies ist eine dauerhafte Löschung.
deleteWatchlistByName($name)
Löschen Sie eine Beobachtungsliste. Dies ist eine dauerhafte Löschung.
? Alpaka -Dokumente
getCalendar($start = null, $end = null)
Gibt den Marktkalender zurück.
? Alpaka -Dokumente
getClock()
Kehrt die Marktuhr zurück.
? Alpaka -Dokumente
getAccountConfigurations()
Gibt die Werte für die kreislaufende Kontokonfiguration zurück.
updateAccountConfigurations($config = [])
Aktualisiert und gibt die Werte für die geltenden Kontokonfiguration zurück. $config ist ein Array von Schlüsselwertpaaren (z. B. ["key" => "value"] .
? Alpaka -Dokumente
getAccountActivitiesOfType($type, $date = null, $until = null, $after = null, $direction = null, $page_size = null, $page_token = null)
Gibt Kontoaktivitätseinträge für eine bestimmte Art von Aktivität zurück.
getAccountActivities($types = [])
Gibt Kontoaktivitätseinträge für viele Arten von Aktivitäten zurück.
? Alpaka -Dokumente
getPortfolioHistory($period = null, $timeframe = null, $date_end = null, $extended_hours = null)
Gibt Timeries -Daten zu Eigenkapital und Gewinn/Verlust (P/l) des Kontos in angeforderten Timesspan zurück.
? Alpaka -Dokumente
getTrades($symbol, $start, $end, $limit = null, $page_token = null)
Gibt Handelshistorische Daten für die angeforderte Sicherheit zurück.
getLastTrade($symbol)
Abrufen Sie den letzten Handel für das angeforderte Symbol ab.
getQuotes($symbol, $start, $end, $limit = null, $page_token = null)
Gibt Historische Daten für die angeforderte Sicherheit (NBBO) zurück.
getLastQuote($symbol)
Ruft das letzte Zitat für das angeforderte Symbol ab.
getBars($timeframe, $symbol, $start, $end, $limit = null, $page_token = null)
Gibt aggregierte historische Daten für die angeforderte Sicherheit zurück.
getMultiSnapshot($symbols)
Gibt die Schnappschüsse für die angeforderten Wertpapiere zurück.
getSnapshot($symbol)
Gibt den Snapshot für die angeforderte Sicherheit zurück.