العودة إلى المدونة

المراجحة الثلاثية في الفوركس: دليل المطور (2026)

V
Vlado Grigirov
May 16, 2026
Currency API Exchange Rates Forex Triangular Arbitrage Developer Guide Education Finexly

المراجحة الثلاثية في الفوركس: دليل المطور (2026)

المراجحة الثلاثية في الفوركس واحدة من أكثر الأفكار أناقة في سوق العملات. تقول الفكرة: إذا استطعت تحويل USD → EUR → GBP → USD وانتهيت بدولارات أكثر مما بدأت به، فإن السوق مُسعَّر بشكل خاطئ والفرق هو ربح خالٍ من المخاطر. في الواقع، تستمر هذه الفرص لأجزاء من الثانية وتعود إلى مكاتب التداول عالي التردد — لكن الرياضيات الكامنة وراءها يجب أن يفهمها كل مطور يتعامل مع بيانات العملات. تخبرك ما إذا كانت أسعار الصرف المتقاطعة التي يعيدها واجهة برمجة التطبيقات لديك متسقة داخليًا، وتتيح لك بناء مسارات تحويل متعددة القفزات أكثر ذكاءً، وتغذي فحوصات السلامة التي تلتقط الأسعار المعطوبة قبل أن تصل إلى عملائك.

يشرح هذا الدليل ما هي المراجحة الثلاثية، ويستعرض صيغة السعر المتقاطع خطوة بخطوة، ويوضح كيف تبني ماسحًا عمليًا للمراجحة الثلاثية بكود حقيقي بلغات JavaScript وPython وPHP وcURL — كل ذلك مدعوم بواجهة برمجية لأسعار العملات في الزمن الحقيقي.

ما هي المراجحة الثلاثية؟

المراجحة الثلاثية (وتسمى أيضًا مراجحة العملات المتقاطعة أو المراجحة ثلاثية النقاط) هي استغلال تباين في الأسعار بين ثلاث عملات في سوق الصرف الأجنبي. يبدّل المتداول العملة A بـ B، وB بـ C، وC مرة أخرى بـ A. إذا كانت كمية A النهائية أكبر من الكمية الأولية، فقد التقطت ربحًا خاليًا من المخاطر.

تعمل التقنية فقط عندما يختلف سعر التقاطع المُعلَن بين عملتين عن سعر التقاطع الضمني المحسوب عبر عملة ثالثة (عادةً الدولار الأمريكي). عندما يكون السوق في توازن — وهو الحال شبه الدائم — تتطابق هذه الأسعار ولا توجد مراجحة. عندما تختلف لفترة قصيرة أثناء حركة سريعة أو صدمة أخبار أو سعر قديم من وسيط بطيء، تنفتح فرصة.

في الفوركس الحديث، تهيمن على المراجحة الثلاثية شركات الخوارزميات التي تشغّل خوادم مشتركة الموقع تُقاس بالميكروثانية. لا يستطيع المتداولون الأفراد منافستها في السرعة، وبعد الفروقات السعرية والرسوم، تكاد لا تكون أي فرصة ظاهرية مربحة فعليًا. لماذا إذن ينبغي للمطورين الاهتمام؟ لأن الرياضيات نفسها التي تشغّل ماسح HFT هي الرياضيات التي تستخدمها لـ:

  • التحقق من أن أسعار التقاطع التي يعيدها مزودك متسقة داخليًا
  • توجيه التحويلات متعددة القفزات لأزواج العملات التي لا يسعرها مزودك مباشرة
  • اكتشاف البيانات القديمة قبل أن تُفسد سعرًا موجهًا للعميل
  • بناء أدوات تعليمية ومحاكيات تداول ورقي ولوحات تحليلات

تلك هي الجائزة الحقيقية. لننتقل إلى الصيغة.

الرياضيات: كيف تكتشف فرصة مراجحة ثلاثية

تتدخل ثلاثة أسعار. اختر عملة أساس (عادة USD) وعملتين أخريين — مثل EUR وGBP. ستحصل عندئذٍ على ثلاثة أسعار صرف:

  • EUR/USD — كم دولارًا يشتري يورو واحد
  • GBP/USD — كم دولارًا يشتري جنيه واحد
  • EUR/GBP — كم جنيهًا يشتري يورو واحد (هذا هو سعر التقاطع المُعلَن)

سعر التقاطع الضمني لـ EUR/GBP المشتق من EUR/USD وGBP/USD هو:

EUR/GBP الضمني = EUR/USD ÷ GBP/USD

الحدس: اليورو يساوي EUR/USD دولارًا، والجنيه يساوي GBP/USD دولارًا، إذن اليورو يجب أن يساوي EUR/USD ÷ GBP/USD جنيهًا — إذا كان السوق متسقًا.

إذا اختلف EUR/GBP المُعلَن عن EUR/GBP الضمني بأكثر من تكاليف المعاملة، فثمة مراجحة نظرية. الفجوة المئوية:

% المراجحة = (الضمني − المُعلَن) ÷ المُعلَن × 100

طريقة أبسط للتفكير: ابدأ بوحدة واحدة من العملة A، أدِر الحلقة، وانظر بكم تنتهي. إذا كانت النتيجة أكبر من 1، فقد وجدت فرصة. الفحص العام للحلقة:

نسبة الربح = السعر(A→B) × السعر(B→C) × السعر(C→A)

إذا كانت نسبة الربح > 1، فإن الدورة A → B → C → A مربحة (قبل التكاليف). إذا كانت أقل من 1، قد تكون الدورة العكسية (A → C → B → A) مربحة. إذا كانت تساوي 1، فالسوق في توازن.

هذه هي الصيغة الوحيدة التي يلزمك حفظها فعلاً. كل الباقي سباكة.

مثال محلول: USD → EUR → GBP → USD

افترض أن مزودك يعيد الأسعار الحية التالية:

الزوجالسعر
EUR/USD1.0850
GBP/USD1.2700
EUR/GBP0.8500
الخطوة 1: احسب EUR/GBP الضمني.

EUR/GBP الضمني = 1.0850 ÷ 1.2700 = 0.8543

الخطوة 2: قارن بـ EUR/GBP المُعلَن.

المُعلَن = 0.8500
الضمني = 0.8543
الفجوة = (0.8543 − 0.8500) ÷ 0.8500 × 100 = 0.51%

فجوة بمقدار 51 نقطة أساس هائلة في FX الحديث (الفرص الحقيقية عادةً 1–5 نقاط أساس وتختفي في أجزاء من الثانية). للتوضيح، لنشغّل الحلقة.

الخطوة 3: مرّر \$1,000,000 عبر الدورة.

  1. USD → EUR: 1,000,000 ÷ 1.0850 = €921,659
  2. EUR → GBP: 921,659 × 0.8500 = £783,410
  3. GBP → USD: 783,410 × 1.2700 = $994,931

هذا خسارة بحوالي $5,069. الدورة USD → EUR → GBP → USD ليست مربحة. اعكسها:

  1. USD → GBP: 1,000,000 ÷ 1.2700 = £787,402
  2. GBP → EUR: 787,402 ÷ 0.8500 = €926,355
  3. EUR → USD: 926,355 × 1.0850 = $1,005,095

العكس يعطي ربحًا قدره $5,095 على مليون دولار. الدرس: اتجاه الصفقة لا يقل أهمية عن التباين نفسه. تحقق دائمًا من كلا الاتجاهين.

لماذا ينبغي للمطورين الاهتمام (حتى لو لم تكن تتداول)

إذا كنت تبني نظام فوترة SaaS، أو سلة شراء تجارة إلكترونية، أو محرك رواتب، أو منصة حجوزات سفر، فأنت لا تهتم بـ HFT — لكنك تهتم بالرياضيات حتمًا.

1. فحوصات اتساق سعر التقاطع. إذا أعاد مزودك EUR/USD وGBP/USD وEUR/GBP، يمكنك قسمة الأولين ومقارنتهما بالثالث. فجوة أكبر من السبريد المعتاد (مثلاً 10 bps) إشارة قوية على أن أحد الأسعار قديم أو خاطئ. سجّله، ابعث تنبيهًا، تراجع إلى مصدر بديل.

2. تحويلات متعددة القفزات أكثر ذكاءً. افترض أن عميلاً يريد تحويل البات التايلاندي (THB) إلى الكرونة النرويجية (NOK)، ومزودك لا يسعّر THB/NOK مباشرة. يمكنك التوجيه عبر USD: THB → USD → NOK. الرياضيات الثلاثية تخبرك أن هذا (بعد التقريب) مكافئ رياضياً لسعر مباشر افتراضي. تشرح وثائق واجهة Finexly البرمجية كيفية ربط التحويلات بسلاسة.

3. اكتشاف البيانات السيئة قبل الإنتاج. سعر قديم واحد في فاتورة متعددة العملات قد يؤدي إلى عقود مُسعَّرة خطأ، وتسويات فاشلة، وفِرق مالية غير سعيدة. الفحوصات الثلاثية أرخص اختبار سلامة يمكنك كتابته — ثلاث استدعاءات API، وقسمتان، ومقارنة.

4. التعليم والتصور. الأدوات الداخلية التي تتصور اتساق أسعار التقاطع في الزمن الحقيقي طريقة ممتازة لكشف الشذوذ لفريق العمليات وبناء الثقة مع أصحاب المصلحة الماليين.

بناء ماسح مراجحة ثلاثية باستخدام Finexly

لنبنِ الماسح. سنجلب أسعارًا حية لسلة من العملات، ونحسب كل سعر تقاطع ضمني مقابل المُعلَن، ونكشف أي شذوذ يتجاوز عتبة قابلة للضبط.

cURL: جلب أحدث الأسعار

أبسط استدعاء ممكن. تعيد نقطة النهاية latest أسعار منتصف السوق مقابل عملة أساس لأي مجموعة فرعية من الرموز تطلبها.

curl "https://api.finexly.com/v1/latest?base=USD&symbols=EUR,GBP,JPY" \
  -H "Authorization: Bearer YOUR_API_KEY"

استجابة نموذجية:

{
  "base": "USD",
  "timestamp": 1763309480,
  "rates": {
    "EUR": 0.9217,
    "GBP": 0.7874,
    "JPY": 152.43
  }
}

تلك أسعار بـ USD: 1 USD = 0.9217 EUR، 0.7874 GBP، 152.43 JPY. لحساب EUR/GBP نستخدم العلاقة EUR/GBP = (1/EUR_per_USD) × GBP_per_USD = GBP_per_USD ÷ EUR_per_USD، أو بشكل أوضح: EUR/GBP = 0.7874 / 0.9217 ≈ 0.8543.

JavaScript / Node.js: ماسح جاهز للإنتاج

هذا التطبيق يجلب سلة عملات في طلب واحد، ويحسب سعر التقاطع الضمني لكل زوج، ويعلّم أي شيء يتجاوز عتبة قابلة للضبط.

// triangular-scanner.js
const API_KEY = process.env.FINEXLY_API_KEY;
const BASE_URL = "https://api.finexly.com/v1";

async function getRates(base, symbols) {
  const url = `${BASE_URL}/latest?base=${base}&symbols=${symbols.join(",")}`;
  const res = await fetch(url, {
    headers: { Authorization: `Bearer ${API_KEY}` },
  });
  if (!res.ok) throw new Error(`Finexly API ${res.status}`);
  const data = await res.json();
  return data.rates; // { EUR: 0.9217, GBP: 0.7874, ... }
}

function impliedCrossRate(baseToA, baseToB) {
  // If 1 USD = X EUR and 1 USD = Y GBP, then 1 EUR = Y/X GBP
  return baseToB / baseToA;
}

async function scanTriangles(base, currencies, thresholdBps = 10) {
  const rates = await getRates(base, currencies);
  const opportunities = [];

  for (let i = 0; i < currencies.length; i++) {
    for (let j = i + 1; j < currencies.length; j++) {
      const a = currencies[i];
      const b = currencies[j];

      // Implied a/b cross-rate via the base
      const implied = impliedCrossRate(rates[a], rates[b]);

      // Quoted a/b — fetch directly to compare
      const quoted = await getRates(a, [b]);
      const quotedRate = quoted[b];

      const gapBps = ((implied - quotedRate) / quotedRate) * 10000;

      if (Math.abs(gapBps) > thresholdBps) {
        opportunities.push({
          triangle: `${base} → ${a} → ${b} → ${base}`,
          implied: implied.toFixed(6),
          quoted: quotedRate.toFixed(6),
          gapBps: gapBps.toFixed(2),
        });
      }
    }
  }

  return opportunities;
}

scanTriangles("USD", ["EUR", "GBP", "JPY", "CHF"], 10).then(console.log);

شغّله دوريًا (كل 5 إلى 30 ثانية أكثر من كافٍ للمراقبة) ووجّه التنبيهات إلى Slack أو PagerDuty أو حيث يقيم فريقك. لجولة تكامل أعمق، راجع دليل تكامل واجهة Node.js لأسعار العملات.

Python: ماسح برياضيات شعاعية

قوة Python في كود عددي مختصر. الفكرة نفسها، وتُكتب أسرع:

# triangular_scanner.py
import os
import itertools
import requests

API_KEY = os.environ["FINEXLY_API_KEY"]
BASE_URL = "https://api.finexly.com/v1"

def get_rates(base, symbols):
    r = requests.get(
        f"{BASE_URL}/latest",
        params={"base": base, "symbols": ",".join(symbols)},
        headers={"Authorization": f"Bearer {API_KEY}"},
        timeout=5,
    )
    r.raise_for_status()
    return r.json()["rates"]

def scan_triangles(base, currencies, threshold_bps=10):
    rates = get_rates(base, currencies)
    opportunities = []

    for a, b in itertools.combinations(currencies, 2):
        implied = rates[b] / rates[a]
        quoted = get_rates(a, [b])[b]
        gap_bps = (implied - quoted) / quoted * 10_000

        if abs(gap_bps) > threshold_bps:
            opportunities.append({
                "triangle": f"{base} → {a} → {b} → {base}",
                "implied": round(implied, 6),
                "quoted": round(quoted, 6),
                "gap_bps": round(gap_bps, 2),
            })

    return opportunities

if __name__ == "__main__":
    results = scan_triangles("USD", ["EUR", "GBP", "JPY", "CHF"], 10)
    for r in results:
        print(r)

النمط متطابق: اجلب الأسعار الأساسية باستدعاء واحد، استنتج كل تقاطع ضمني، قارنه بالمُعلَن، اكشف ما يتجاوز عتبتك. لمزيد من أنماط Python بما في ذلك التخزين المؤقت وإعادة المحاولة، راجع دليل واجهة العملات بـ Python.

PHP: الماسح نفسه، صديق للويب

تتألق PHP عند تضمينها مباشرة في لوحة فوترة أو أداة إدارة.

<?php
// triangular_scanner.php
$apiKey = getenv('FINEXLY_API_KEY');
$baseUrl = 'https://api.finexly.com/v1';

function getRates(string $base, array $symbols, string $apiKey, string $baseUrl): array {
    $url = "{$baseUrl}/latest?base={$base}&symbols=" . implode(',', $symbols);
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => ["Authorization: Bearer {$apiKey}"],
        CURLOPT_TIMEOUT => 5,
    ]);
    $response = curl_exec($ch);
    curl_close($ch);
    $data = json_decode($response, true);
    return $data['rates'] ?? [];
}

function scanTriangles(string $base, array $currencies, int $thresholdBps, string $apiKey, string $baseUrl): array {
    $rates = getRates($base, $currencies, $apiKey, $baseUrl);
    $opportunities = [];

    for ($i = 0; $i < count($currencies); $i++) {
        for ($j = $i + 1; $j < count($currencies); $j++) {
            $a = $currencies[$i];
            $b = $currencies[$j];
            $implied = $rates[$b] / $rates[$a];
            $quoted = getRates($a, [$b], $apiKey, $baseUrl)[$b];
            $gapBps = ($implied - $quoted) / $quoted * 10000;

            if (abs($gapBps) > $thresholdBps) {
                $opportunities[] = [
                    'triangle' => "{$base} → {$a} → {$b} → {$base}",
                    'implied'  => round($implied, 6),
                    'quoted'   => round($quoted, 6),
                    'gap_bps'  => round($gapBps, 2),
                ];
            }
        }
    }
    return $opportunities;
}

print_r(scanTriangles('USD', ['EUR', 'GBP', 'JPY', 'CHF'], 10, $apiKey, $baseUrl));

لأنماط Laravel الخاصة بما فيها وظائف الطوابير والتخزين المؤقت عبر Eloquent، راجع دليل واجهة العملات بـ Laravel.

الأخطاء الشائعة ولماذا تفشل المراجحة التجزئية

إذا كنت تميل فعلاً إلى تداول المراجحة الثلاثية، اقرأ هذا القسم مرتين.

1. السبريدات تلتهم الفرصة. كل الرياضيات أعلاه افترضت أسعار منتصف السوق. في الواقع، تشتري بـ ask وتبيع بـ bid. سبريد التجزئة المعتاد على EUR/USD 1–2 نقطة. حين تعبر ثلاثة سبريدات، تكون قد دفعت 3–6 نقاط في تكاليف المعاملة — أكثر بكثير من أي فجوة مراجحة مرئية.

2. زمن الاستجابة يقتلك. أظهرت الأبحاث الأكاديمية أن 95% من فرص المراجحة الثلاثية تستمر أقل من 5 ثوانٍ و60% أقل من ثانية. بحلول الوقت الذي يجلب فيه سكربتك ثلاثة أسعار ويرسل ثلاثة أوامر، تكون الفجوة قد ذهبت. شركات HFT تشارك الموقع مع مراكز بيانات البورصات لتوفير ميكروثانيات؛ حاسوبك المحمول لا يستطيع المنافسة.

3. الأسعار "المجانية" غير قابلة للتداول. سعر منتصف السوق الذي تراه على API هو سعر إعلامي — منتصف الـ bid والـ ask. لا تستطيع التداول به. أسعار التنفيذ الفعلية تشمل هامش الوسيط، والانزلاق، و(غالبًا) رسومًا خفية على كل ساق.

4. خطر الساق (leg risk). حتى لو رصدت فرصة حقيقية، عليك تنفيذ ثلاث صفقات ذرّيًا. إذا فشلت الثانية أو نُفذت جزئيًا، تبقى عالقًا بعملة لم ترغبها بسعر ربما تحرك ضدك.

5. الاحتكاك التنظيمي. أماكن التنفيذ عبر الحدود ومتطلبات KYC ورسوم تحويل العملة في حساب التمويل غالبًا ما تضيف طبقات تكاليف يتجاهلها متداولو التجزئة في جداولهم.

الخلاصة: عامل المراجحة الثلاثية بوصفها أداة تحليلية وهندسية، لا استراتيجية تداول. الرياضيات لا تُقدَّر بثمن في تخزين واجهة العملات المؤقت ومعالجة الأخطاء، ومراقبة جودة البيانات، وتوجيه التحويلات متعددة القفزات، والأدوات التعليمية. اترك التداول لمن يمتلكون خوادم مشتركة الموقع.

الأسئلة الشائعة

هل المراجحة الثلاثية مربحة في 2026؟ بالنسبة لمتداولي التجزئة، لا فعليًا. السبريدات وزمن الاستجابة والمنافسة من الشركات الخوارزمية دفعت العوائد الصافية بعد التكاليف إلى الصفر تقريبًا. المراجحة الثلاثية المربحة اليوم تهيمن عليها مكاتب التداول عالي التردد التي تشغّل أنظمة مشتركة الموقع بزمن استجابة بالميكروثانية. تبقى الرياضيات أساسية لفحوصات اتساق التقاطع، والتحويل متعدد القفزات، والتحقق من البيانات في أي تطبيق يلامس FX.

ما الفرق بين المراجحة الثلاثية وحساب سعر التقاطع؟ حساب سعر التقاطع هو الرياضيات: استنتاج EUR/GBP من EUR/USD وGBP/USD. المراجحة الثلاثية هي استراتيجية التداول التي تستغل فرقًا بين السعر المتقاطع المحسوب وسعر متقاطع مُعلَن بشكل منفصل. كل فرصة مراجحة ثلاثية تنطوي على عدم تطابق في سعر التقاطع، لكن ليس كل حساب لسعر تقاطع ينطوي على مراجحة.

أي ثلاث عملات هي الأفضل للمراجحة الثلاثية؟ تاريخيًا، أكثر المثلثات مراقبةً هي USD-EUR-GBP وUSD-EUR-JPY وUSD-GBP-JPY بسبب السيولة العالية والسبريدات الضيقة. أسواق العملات المشفرة تقدم أحيانًا فرصًا أكبر بسبب السيولة المجزّأة بين البورصات، لكنها تأتي بمخاطر الحفظ والسحب والتسوية.

هل يمكنني استخدام واجهة برمجية مجانية مثل Finexly لاختبار المراجحة الثلاثية؟ نعم — للتعلّم والمراقبة والتحقق، واجهة عملات مجانية مثالية. الخطة المجانية لـ Finexly تغطي أكثر من 170 عملة وكافية تمامًا لبناء ماسح يعمل كل بضع ثوانٍ. لا تتوقع فقط ربحًا من أي فرصة تجدها؛ عاملها بوصفها هندسة وتحليلًا، لا تداولًا.

كم مرة ينبغي تشغيل ماسح المراجحة الثلاثية؟ لمراقبة جودة البيانات (السبب الحقيقي وراء بناء معظم المطورين له)، كل 30 إلى 60 ثانية كافٍ. للاكتشاف على غرار HFT، ستحتاج إلى استطلاع بأقل من ميلي ثانية وتغذية تحركًا بتحرك — وعندها لا تكون REST API الأداة الصحيحة. راجع مقارنة REST مقابل WebSocket لمعرفة متى تكون كل بنية مناسبة.

ما العلاقة بين المراجحة الثلاثية وأسعار الصرف المتقاطعة؟ سعر الصرف المتقاطع هو أي سعر بين عملتين لا ينطوي على USD. المراجحة الثلاثية هي في جوهرها فحص أن سعر التقاطع المُعلَن يساوي سعر التقاطع الضمني المشتق عبر USD. إذا كنت جديدًا على الأسعار المتقاطعة، ابدأ بدليلنا المعمق حول أسعار الصرف المتقاطعة للمطورين.

خلاصة

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

في المرة القادمة التي توصّل فيها تدفق تحويل عملات، أضف فحص اتساق ثلاثي. ثلاث استدعاءات API وعشرة أسطر كود، وستلتقط الأسعار المعطوبة قبل فريقك المالي بوقت طويل.

مستعد لدمج أسعار الصرف الحية في مشروعك؟ احصل على مفتاح Finexly API مجانًا — بدون بطاقة ائتمان. ابدأ بـ 1,000 طلب مجاني شهريًا، وتوسّع عبر خطط الأسعار مع نموك، أو جرب محوّل العملات التفاعلي لرؤية الأسعار الحية مباشرة.

Vlado Grigirov

Senior Currency Markets Analyst & Financial Strategist

Vlado Grigirov is a senior currency markets analyst and financial strategist with over 14 years of experience in foreign exchange markets, cross-border finance, and currency risk management. He has wo...

View full profile →