كيفية استخدام واجهة برمجة تطبيقات كراكن للتداول السلس في العملات المشفرة

@apidog

@apidog

20 يونيو 2025

كيفية استخدام واجهة برمجة تطبيقات كراكن للتداول السلس في العملات المشفرة

توفر واجهة برمجة التطبيقات (API) الخاصة بـ Kraken للمطورين واجهة قوية لأحد أبرز بورصات العملات المشفرة في العالم. سواء كنت تبني تطبيقات تداول، أو تراقب الأسواق، أو تدير محافظ العملات المشفرة، ستساعدك هذه الدليل في التنقل عبر العناصر الأساسية لقدرات واجهة برمجة التطبيقات الخاصة بـ Kraken وأساليب التنفيذ.

💡
قبل التعمق في واجهة برمجة التطبيقات الخاصة بـ Kraken، تحقق من Apidog—أداة مجانية تسهل اختبار واجهات برمجة التطبيقات ودمجها. تجعل واجهة Apidog سهلة الاستخدام من السهل تصحيح وتحسين سير عمل واجهات برمجة التطبيقات الخاصة بك، مما يوفر لك الوقت والجهد.
زر

ما هي واجهة برمجة التطبيقات (API) الخاصة بـ Kraken؟

تسمح واجهة برمجة التطبيقات الخاصة بـ Kraken للمطورين بالوصول برمجياً إلى وظائف البورصة من خلال واجهة RESTful. مع هذه واجهة برمجة التطبيقات، يمكنك:

إعداد الوصول إلى واجهة برمجة التطبيقات

إنشاء حسابك في Kraken

قبل استخدام واجهة برمجة التطبيقات، ستحتاج إلى:

  1. التسجيل للحصول على حساب في Kraken على kraken.com
  2. إكمال متطلبات التحقق بناءً على احتياجات الاستخدام الخاصة بك
  3. تمكين المصادقة الثنائية (2FA) لتعزيز الأمان

إنشاء مفاتيح واجهة برمجة التطبيقات

للتفاعل مع واجهة برمجة التطبيقات، قم بإنشاء مفاتيح واجهة برمجة التطبيقات بالأذونات المناسبة:

  1. تسجيل الدخول إلى حسابك في Kraken
  2. الانتقال إلى الاتصال & واجهة برمجة التطبيقات

3. انقر على إنشاء مفتاح جديد

4. تعيين الأذونات المناسبة:

⚠️ تحذير أمان
- قم بتخزين مفاتيح واجهة برمجة التطبيقات بشكل آمن ولا تشارك مفتاحك الخاص أبداً
- قيد أذونات مفاتيح واجهة برمجة التطبيقات على ما هو ضروري فقط
- حاول تطبيق قيود على عنوان IP

فهم هيكل واجهة برمجة التطبيقات

تم تنظيم واجهة برمجة التطبيقات الخاصة بـ Kraken ضمن هيكل منطقي:

عنوان واجهة برمجة التطبيقات الأساسي ونقاط النهاية

تبدأ جميع طلبات واجهة برمجة التطبيقات بعنوان URL الأساسي: https://api.kraken.com

يتم تحديد إصدار واجهة برمجة التطبيقات الحالي بواسطة /0/ في مسار URL، ويتبعه إما:

تنسيق الاستجابة

تتبع جميع استجابات واجهة برمجة التطبيقات تنسيق JSON القياسي:

{
  "error": [],
  "result": { /* بيانات الاستجابة */ }
}

إجراء طلبات واجهة برمجة التطبيقات الأولى

طلبات واجهة برمجة التطبيقات العامة

توفر نقاط النهاية العامة بيانات السوق دون الحاجة إلى مصادقة.

مثال: الحصول على معلومات الشعار

import requests

# الحصول على معلومات الشعار لبيتكوين بالدولار الأمريكي
response = requests.get('https://api.kraken.com/0/public/Ticker?pair=XBTUSD')
ticker_data = response.json()

if not ticker_data['error']:
    btc_data = ticker_data['result']['XXBTZUSD']
    print(f"سعر آخر صفقة بيتكوين بالدولار الأمريكي: {btc_data['c'][0]}")
    print(f"حجم بيتكوين/الدولار الأمريكي خلال 24 ساعة: {btc_data['v'][1]}")
else:
    print(f"خطأ: {ticker_data['error']}")

مثال: بيانات دفتر الطلبات

fetch('https://api.kraken.com/0/public/Depth?pair=ETHUSD&count=5')
  .then(response => response.json())
  .then(data => {
    if (data.error.length === 0) {
      const orderbook = data.result.XETHZUSD;
      console.log("أعلى 5 طلبات شراء ETH/USD:", orderbook.bids);
      console.log("أعلى 5 طلبات بيع ETH/USD:", orderbook.asks);
    }
  });

مصداقية واجهة برمجة التطبيقات الخاصة

تتطلب نقاط النهاية الخاصة مصادقة بمفاتيح واجهة برمجة التطبيقات الخاصة بك من خلال عملية تتضمن:

  1. توليد عدد غير متكرر (رقم متزايد)
  2. إنشاء توقيع طلب باستخدام HMAC-SHA512
  3. إرسال الطلب مع مفتاح واجهة برمجة التطبيقات والتوقيع الخاص بك

تنفيذ المصادقة

import time
import base64
import hashlib
import hmac
import urllib.parse
import requests

def kraken_request(api_key, api_sec, endpoint, data=None):
    """إجراء طلب موثوق إلى واجهة برمجة تطبيقات Kraken"""
    if data is None:
        data = {}
        
    api_url = "https://api.kraken.com"
    
    # إضافة عدد غير متكرر إلى البيانات
    data['nonce'] = str(int(time.time() * 1000))
    
    # تشفير البيانات للتوقيع
    encoded_data = urllib.parse.urlencode(data)
    
    # إنشاء توقيع
    signature_data = (data['nonce'] + encoded_data).encode()
    message = endpoint.encode() + hashlib.sha256(signature_data).digest()
    signature = hmac.new(base64.b64decode(api_sec), message, hashlib.sha512)
    signature_digest = base64.b64encode(signature.digest()).decode()
    
    # تعيين العناوين
    headers = {
        'API-Key': api_key,
        'API-Sign': signature_digest
    }
    
    # إرسال الطلب
    response = requests.post(api_url + endpoint, headers=headers, data=data)
    return response.json()

الوظائف الأساسية لواجهة برمجة التطبيقات

معلومات الحساب

التحقق من رصيد الحساب

balance = kraken_request(api_key, api_secret, "/0/private/Balance")

if not balance['error']:
    for asset, amount in balance['result'].items():
        print(f"{asset}: {amount}")

إدارة الأوامر

وضع أمر سوقي

# معلمات شراء 0.01 بيتكوين بالسعر الحالي للسوق
order_params = {
    'pair': 'XBTUSD',
    'type': 'buy',
    'ordertype': 'market',
    'volume': '0.01'
}

order_result = kraken_request(api_key, api_secret, "/0/private/AddOrder", order_params)

if not order_result['error']:
    print(f"تم وضع الأمر! معرف المعاملة: {order_result['result']['txid'][0]}")

وضع أمر محدد

# معلمات بيع 0.01 بيتكوين عند 50,000 دولار
limit_params = {
    'pair': 'XBTUSD',
    'type': 'sell',
    'ordertype': 'limit',
    'price': '50000',
    'volume': '0.01'
}

limit_result = kraken_request(api_key, api_secret, "/0/private/AddOrder", limit_params)

استعلام الأوامر المفتوحة

open_orders = kraken_request(api_key, api_secret, "/0/private/OpenOrders")

if not open_orders['error']:
    orders = open_orders['result']['open']
    for order_id, details in orders.items():
        print(f"المعرف: {order_id}")
        print(f"النوع: {details['descr']['type']} {details['descr']['ordertype']}")
        print(f"الزوج: {details['descr']['pair']}")

استخدام APIdog مع واجهة برمجة التطبيقات الخاصة بـ Kraken

APIdog يوفر منصة قوية لتطوير واختبار وتوثيق تكامل واجهة برمجة التطبيقات الخاصة بـ Kraken. إليك كيفية الاستفادة من APIdog لتطوير مبسط:

إعداد واجهة برمجة التطبيقات الخاصة بـ Kraken في APIdog

إنشاء مشروع جديد

تكوين متغيرات البيئة

استيراد أو إنشاء نقاط النهاية

تنفيذ مصداقية Kraken في APIdog

يتيح APIdog إعداد مصداقية Kraken المخصصة بسهولة:

  1. إنشاء نص البرنامج التمهيدي لتوليد المصادقة اللازمة:
// نص البرنامج التمهيدي لمصداقية Kraken
const crypto = require('crypto-js');

// الحصول على متغيرات البيئة
const apiKey = pm.environment.get("API_KEY");
const apiSecret = pm.environment.get("API_SECRET");

// إضافة عدد غير متكرر إلى جسم الطلب
const nonce = Date.now() * 1000;
pm.request.body.update({
    mode: 'urlencoded',
    urlencoded: [
        ...pm.request.body.urlencoded.all(),
        {key: 'nonce', value: nonce.toString()}
    ]
});

// الحصول على مسار الطلب
const path = pm.request.url.getPathWithQuery().replace(/\?.*/, '');

// إنشاء توقيع
const postData = pm.request.body.urlencoded.toString();
const message = path + crypto.SHA256(nonce.toString() + postData).toString();
const signature = crypto.enc.Base64.stringify(
    crypto.HmacSHA512(message, crypto.enc.Base64.parse(apiSecret))
);

// تعيين العناوين
pm.request.headers.add({key: 'API-Key', value: apiKey});
pm.request.headers.add({key: 'API-Sign', value: signature});

اختبار وتوثيق مع APIdog

إنشاء طلبات اختبار

إضافة نصوص اختبار

// نص اختبار مثال لنقطة نهاية الرصيد
pm.test("حالة الاستجابة 200", () => {
  pm.response.to.have.status(200);
});

pm.test("لم يتم إرجاع أخطاء", () => {
  const response = pm.response.json();
  pm.expect(response.error).to.be.an('array').that.is.empty;
});

pm.test("بيانات الرصيد موجودة", () => {
  const response = pm.response.json();
  pm.expect(response.result).to.exist.and.to.be.an('object');
});

توليد الوثائق

مشاركة والتعاون

خوادم APIdog الوهمية للتطوير

أثناء التطوير، يمكنك استخدام خوادم APIdog الوهمية لمحاكاة استجابات واجهة برمجة التطبيقات الخاصة بـ Kraken:

  1. إنشاء استجابات مثال لكل نقطة نهاية
  2. تكوين قواعد الاستجابة بناءً على معلمات الطلب
  3. اختبار تطبيقك ضد الاستجابات الوهمية قبل الإطلاق

تسمح لك هذه الطريقة بدورات تطوير أسرع وتحميك من الوصول إلى حدود معدلات واجهة برمجة التطبيقات أثناء التطوير.

أفضل الممارسات لتكامل واجهة برمجة التطبيقات الخاصة بـ Kraken

تقييد المعدل والتحسين

تقوم Kraken بتطبيق حدود معدل محددة:

للتعامل مع ذلك بشكل فعال:

معالجة الأخطاء

تنفيذ معالجة الأخطاء بشكل قوي لتفاعلات واجهة برمجة التطبيقات:

def safe_api_call(api_function, max_retries=3):
    """ملف تغليف لاستدعاءات واجهة برمجة التطبيقات مع منطق إعادة المحاولة"""
    retries = 0
    while retries < max_retries:
        try:
            response = api_function()
            
            if 'error' in response and response['error']:
                error = response['error'][0]
                
                # معالجة تقييد المعدل
                if 'EAPI:Rate limit' in error:
                    sleep_time = (2 ** retries)  # تأخير أسي
                    time.sleep(sleep_time)
                    retries += 1
                    continue
                else:
                    return None
            
            return response['result']
            
        except Exception as e:
            time.sleep(2 ** retries)
            retries += 1
    
    return None

اعتبارات الأمان

  1. تخزين بيانات اعتماد واجهة برمجة التطبيقات بشكل آمن - لا تقم بتشفيرها في تطبيقاتك
  2. تطبيق قيود على عنوان IP في إعدادات مفتاح واجهة برمجة التطبيقات الخاصة بـ Kraken
  3. استخدم أقل الأذونات المطلوبة لكل مفتاح واجهة برمجة التطبيقات
  4. مراقبة استخدام واجهة برمجة التطبيقات للوصول غير المصرح به
  5. تدوير مفاتيح واجهة برمجة التطبيقات بشكل دوري

حالات الاستخدام الشائعة

مراقبة بيانات السوق

def monitor_price(pair, interval=60):
    """مراقبة السعر على فترات منتظمة"""
    while True:
        response = requests.get(f'https://api.kraken.com/0/public/Ticker?pair={pair}')
        data = response.json()
        
        if not data['error']:
            for p, info in data['result'].items():
                price = info['c'][0]
                print(f"{pair} السعر الحالي: {price}")
        
        time.sleep(interval)

روبوت تداول بسيط

def simple_trading_strategy(pair, api_key, api_secret):
    """مثال على استراتيجية تداول بسيطة"""
    # الحصول على رصيد الحساب
    balance = kraken_request(api_key, api_secret, "/0/private/Balance")
    
    # الحصول على السعر الحالي
    ticker = requests.get(f'https://api.kraken.com/0/public/Ticker?pair={pair}')
    ticker_data = ticker.json()
    
    if not ticker_data['error']:
        current_price = float(ticker_data['result'][pair]['c'][0])
        
        # استراتيجية بسيطة: شراء إذا انخفض السعر بنسبة 5% مقارنة بأمس
        yesterday_close = float(ticker_data['result'][pair]['o'])
        
        if current_price < yesterday_close * 0.95:
            print(f"انخفض السعر أكثر من 5% - فرصة شراء")
            # تنفيذ منطق الشراء

خاتمة

توفر واجهة برمجة التطبيقات الخاصة بـ Kraken أدوات قوية لتداول العملات المشفرة وإدارة المحافظ. لقد تناولت هذه الدليل العناصر الأساسية للوصول إلى واجهة برمجة التطبيقات ، المصادقة ، والعمليات الشائعة. من خلال الاستفادة من أدوات مثل APIdog للتطوير والاختبار، يمكنك بناء تطبيقات قوية تتفاعل بسلاسة مع بورصة Kraken.

تذكر دائماً الرجوع إلى وثائق واجهة برمجة التطبيقات الرسمية لـ Kraken للحصول على أحدث المعلومات ومراجع نقاط النهاية التفصيلية. مع زيادة راحتك مع الأساسيات، يمكنك استكشاف ميزات متقدمة مثل اتصالات WebSocket للبيانات في الوقت الحقيقي واستراتيجيات تداول أكثر تعقيداً.

سواء كنت تبني متتبعًا شخصيًا للمحافظ، أو تُنفذ تداولًا خوارزميًا، أو تُنشئ حلولاً مهنية لتداول العملات المشفرة، فإن إتقان واجهة برمجة التطبيقات الخاصة بـ Kraken يفتح أمامك إمكانيات كبيرة في نظام أصول الرقمية.

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات