يحتوي هذا المستودع على PHP SDK للاستخدام مع API الألبكة.
إخلاء المسئولية: هذا ليس SDK رسميًا ، فهو لا ينتمي إلى أو معتمد من قبل الألبكة بأي شكل من الأشكال.
مع إصدار v3.0.0 من هذه المكتبة نستخدم ALPACA Data API V2. تكون أساليب getLastTrade و getLastQuote متوافقة مع الوراء ولا تتطلب أي تغييرات على قاعدة الشفرة الخاصة بك.
getBars متوافقة مع الوراء ، لذا ستحتاج إلى تحديث قاعدة الشفرة الخاصة بك لاستخدام توقيع الطريقة الجديدة الموجودة في قسم بيانات السوق أدناه.
مع إصدار v2.0.0 من هذه المكتبة نستخدم V2 من API الألبكة. ومع ذلك ، فإن جميع الطرق متوافقة مع V1.0.0 من هذه المكتبة و V1 من واجهة برمجة تطبيقات الألباكا ، لذا يجب أن تكون الترقية بسيطة مثل تحديث إصدار الحزمة في ملف 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 الألبكة. للحصول على شرح مفصل حول تدفق 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)
بمجرد أن يصرح المستخدم بتطبيقك بالوصول إلى حسابه ، ستقوم Alpaca بإعادة توجيه المستخدم إلى التطبيق الخاص بك ( $redirect_uri ). في عنوان URL ، سيكون معلمة code ، ستقوم بتمرير ذلك كمعلمة $code إلى هذه الوظيفة إلى جانب $client_id و $client_secret و $redirect_url الأصلي. ستعود هذه الوظيفة إلى رمز الوصول الذي يمكن استخدامه بعد ذلك لاستدعاء واجهة برمجة تطبيقات Alpaca نيابة عن هذا المستخدم/الحساب.
لبدء استخدام Token Call Call 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 = Trading Paper ، false = Trading Live.
جميع الطرق تُرجع مثيلًا لفئة 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)
إرجاع اللقطة للأمن المطلوب.