이 저장소에는 Alpaca API와 함께 사용하기위한 PHP SDK가 포함되어 있습니다.
면책 조항 : 이것은 공식 SDK가 아니며 Alpaca와 어떤 식 으로든 승인하거나 승인하지 않습니다.
이 라이브러리의 v3.0.0 이 릴리스되면 Alpaca Data API V2를 사용합니다. getLastTrade 및 getLastQuote 메소드는 거꾸로 호환되며 코드베이스를 변경할 필요가 없습니다.
getBars 메소드는 뒤로 호환되지 않으므로 아래 시장 데이터 섹션에있는 새로운 메소드 서명을 사용하려면 코드베이스를 업데이트해야합니다.
이 라이브러리의 v2.0.0 이 출시되면 Alpaca API의 V2를 사용합니다. 그러나이 방법은 모두이 라이브러리의 V1.0.0과 Alpaca API의 V1과 호환되므로 composer.json 파일의 패키지 버전을 업데이트하고 설치하는 것만 큼 업그레이드가 간단해야합니다. 모든 것이 이전처럼 작동해야하지만 이제 새로운 메소드와 새로운 메소드 매개 변수에 액세스 할 수 있습니다.
참고 :이 패키지에는 현재 PHP> = 7.2.5가 필요합니다
$ composer require jeffreyhyer/alpaca-trade-api-phpPHP 애플리케이션 내에서 몇 줄만으로 Alpaca API에 액세스 할 수 있습니다.
<?php
require ' ./vendor/autoload.php ' ;
use Alpaca Alpaca ;
$ alpaca = new Alpaca ( " --KEY-- " , " --SECRET-- " );
$ positions = $ alpaca -> getPositions (); v2.1.0 에서이 패키지는 OAUTH를 통해 Alpaca API를 통해 사용자 인증 사용자를 지원합니다. 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 매개 변수가 있으면 $client_id 및 $client_secret 및 원래 $redirect_url 과 함께 $code 매개 변수로 전달됩니다. 이 기능은 해당 사용자/계정을 대신하여 Alpaca API를 호출하는 데 사용할 수있는 액세스 토큰을 반환합니다.
액세스 토큰을 사용하려면 토큰 값과 함께 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)
알파카 키를 설정하십시오
setSecret($secret)
알파카 비밀을 설정하십시오
setPaper(true)
종이 거래를 활성화 또는 비활성화합니다. true = 종이 거래, false = 라이브 거래.
모든 방법은 API 응답으로 작업하기위한 여러 가지 편리한 방법을 가진 AlpacaResponse 클래스의 인스턴스를 반환합니다.
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)
요청 된 Times -Span에서 계정의 지분 및 이익/손실 (P/L)에 대한 TimesSeries 데이터를 반환합니다.
? 알파카 문서
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)
요청 된 보안에 대한 스냅 샷을 반환합니다.