كيفية حساب DPO: الصيغة والمدخلات والتحقق
الإجابة المباشرة
يتم حساب DPO (Detrended Price Oscillator) عبر أخذ قيمة سلسلة سعرية من “الآن” وطرح قيمة متوسط متحرك مُزاحة إلى الخلف زمنيًا. تعتمد النتيجة الدقيقة على معاملين يختارهما المستخدم: طول المتوسط المتحرك وإزاحة التحويل (غالبًا ما تُستمد من طول المتوسط المتحرك).
طريقة شائعة للتعبير عن الآلية هي:
- احسب متوسطًا متحركًا للسلسلة السعرية المختارة على طول محدد، ويُرمز له بـ L.
- احسب إزاحة التحويل، ويُرمز لها بـ offset (غالبًا offset = floor(L/2) + 1 في العديد من تعريفات DPO).
- لكل فهرس زمني t احسب
- DPO(t) = Price(t) − MA(t − offset)
بعبارات بسيطة: تقارن السعر الحالي بمكان “مرجع” متوسطه المتحرك عند وقت سابق، وبذلك تقوم بإزالة (فصل) مكوّن الاتجاه طويل الأجل.
الآلية والتعريف
ماذا يعني “Detrended” هنا
لا يعني “Detrended” في DPO أنك تقوم بتشغيل انحدار اتجاه إحصائي. بدلًا من ذلك، يستخدم DPO الطرح والإزاحة الزمنية. يمثل المتوسط المتحرك نسخة سلسة من السعر على طول L. ومن خلال إزاحة قيمة المتوسط المتحرك إلى الخلف، يحاول DPO عزل مكوّن دوري حول الصفر.
المدخلات التي يجب عليك اختيارها
لحساب DPO، تحتاج إلى:
- سلسلة سعرية: على سبيل المثال، أسعار الإغلاق لكل فترة زمنية. تعتمد حساباتك على السعر الذي تستخدمه.
- طريقة متوسط متحرك: عادةً متوسط متحرك بسيط (SMA)، رغم أن بعض التطبيقات تستخدم متوسطات متحركة أخرى.
- طول متوسط متحرك (L): عدد الفترات المستخدمة لحساب المتوسط المتحرك.
- إزاحة تحويل (offset): الإزاحة الزمنية المطبقة على المتوسط المتحرك. تستخدم العديد من الوصوفات offset = floor(L/2) + 1، لكن التطبيقات تختلف، لذا يجب أن تتحقق من التعريف المستخدم في بياناتك أو منصتك.
خطوة بخطوة (مع افتراض صريح)
افترض أنك تستخدم:
- السعر = Close(t)
- المتوسط المتحرك = SMA على L فترات
- إزاحة التحويل = offset = floor(L/2) + 1
عندها:
- احسب SMA(t) لكل زمن t حيث تتوفر بيانات كافية:
- SMA(t) = (1/L) * sum_{i=0..L-1} Close(t − i)
- بالنسبة لزمن t الذي تتوفر فيه SMA(t − offset)، احسب:
- DPO(t) = Close(t) − SMA(t − offset)
يجعل ذلك شرط البيانات واضحًا: لا يمكنك حساب DPO حتى يتوفر لديك على الأقل L + offset فترات من السجل.
دليل أو مثال (قابل للتحقق ذاتيًا)
مثال مع مجموعة بيانات صغيرة افتراضية
افترض:
- L = 5
- offset = floor(5/2) + 1 = 3
- السعر هو Close
- المتوسط المتحرك هو SMA
عند فهرس الزمن t:
- تحسب SMA(t − 3) باستخدام أسعار الإغلاق من (t − 3) للخلف إلى (t − 3 − 4)، أي 5 قيم إجمالًا.
- ثم تطرح هذا الـ SMA من Close(t).
لذلك ليس DPO هو “Close(t) − SMA(t)”. الفرق هو الإزاحة: تستخدم SMA(t − offset).
كيفية التحقق بشكل مستقل من حسابك
للتحقق من تطبيق DPO الخاص بك دون الاعتماد على مخرجات أي منصة:
- اختر L وتعريف offset الذي ستستخدمه.
- احسب سلسلة المتوسط المتحرك MA(t) مباشرة من بيانات السعر لديك.
- أزح المتوسط المتحرك إلى الخلف بواسطة offset لإنشاء MA_shifted(t) = MA(t − offset).
- احسب DPO(t) = Price(t) − MA_shifted(t).
إذا تطابقت النتائج، فأنت قد أكدت آلية الحساب.
القيود والمخاطر (أنماط فشل جوهرية)
1) اختلافات التنفيذ تغيّر الناتج العددي
من السهل حساب DPO، لكن قاعدة offset وأحيانًا نوع المتوسط المتحرك قد تختلف عبر التعريفات. حتى إذا بدا أن الصيغة متشابهة، فإن تغيير offset بمقدار فترة واحدة يمكن أن يغيّر قيمة المؤشر الاهتزازي.
2) توفر البيانات يخلق فترة “تهيئة” (warm-up)
لأن DPO يستخدم متوسطًا متحركًا مُزاحًا، تحتاج إلى نقاط تاريخية كافية لحساب MA(t − offset). القيم المبكرة غير معرّفة أو تعتمد على كيفية تعامل أداتك مع السجل الناقص.
3) قد يتصرف DPO بشكل غير متوقع عندما ينكسر افتراض الدورة
غالبًا ما يُفسَّر DPO على أنه يعزل سلوكًا دوريًا حول الصفر. لكن إذا تغيّرت ديناميكيات السعر (على سبيل المثال، تغيّر أنظمة التقلب أو تغيّر سلوك الاتجاه)، فقد لا يعود الطرح والإزاحة يعزلان نفس المكوّن. قد يؤدي ذلك إلى تفسيرات مضللة لعبورات الصفر أو سعة الاهتزاز.
4) تكاليف السوق والتنفيذ يمكن أن تؤثر على أي استخدام لاحق
رغم أن هذه المقالة تتناول الحساب، فمن المهم الإشارة إلى نمط فشل عملي: إذا استخدم شخص ما DPO لاتخاذ قرارات، فإن النتائج في العالم الحقيقي تتأثر بتكاليف المعاملات، وفروق السعر بين العرض والطلب (bid/ask spreads)، والتنفيذ. هذه العوامل ليست جزءًا من رياضيات المؤشر ويمكن أن تطغى على الإشارة الظاهرة.
التحقق أو السؤال التالي
خطوة مفيدة تالية هي مقارنة تطبيقين مستقلين:
- واحد يتم حسابه يدويًا من جدول البيانات باستخدام DPO(t) = Price(t) − MA(t − offset)
- وآخر ناتج عن أداة الرسم البياني التي تختارها
ثم تحقق مما إذا كانت أداتك تستخدم نفس حقل السعر، ونفس نوع المتوسط المتحرك، ونفس تعريف offset. إذا اختلفت النتائج، فالأرجح أن السبب هو عدم تطابق التعريف وليس خطأ رياضي.
إذا رغبت، يمكنك أيضًا فحص كيفية تأثير قيم L المختلفة على توقيت المؤشر الاهتزازي وسلاسته، لأن سلوك DPO يعتمد بشكل كبير على المعاملات التي تختارها.
DOCUMENT END