كيفية بناء وتحسين استراتيجية تتبع الاتجاه لتداول العقود الآجلة للقهوة

في هذه المقالة، سنستكشف تطوير نظام تداول عقود القهوة الآجلة (@KC)، المدرجة في بورصة إنتركونتيننتال (ICE) بنيويورك. الهدف هو تنويع محفظتنا الاستثمارية من خلال دمج أدوات أقل شهرة مقارنةً بالعقود الآجلة الأكثر تداولًا.

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

لتحليل هذا السوق بعمق، سنعتمد نهج تتبع الاتجاهات، الذي يُحقق نتائج جيدة في معظم السلع. سنختبر مدى فعالية هذا النهج عند تطبيقه على عقود القهوة الآجلة.

منطق استراتيجية عقود القهوة الآجلة: إعداد تتبع الاتجاه مع قواعد الدخول والخروج

إن الاستراتيجية التي سنقوم بتطويرها تتبع منطق اتباع الاتجاه الكلاسيكي، استنادًا إلى اختراق الارتفاعات والانخفاضات الكبيرة.

على وجه التحديد، سوف يتجه النظام إلى الشراء عندما يكسر السعر أعلى مستوى مرتفع مسجل على مدى عدد معين من الجلسات- "Highest(High,n_sessions)" - وسوف يتجه إلى البيع عندما يكسر السعر أدنى مستوى منخفض على مدى عدد معين من الجلسات- "Lowest(Low,n_sessions)" .

سيُسمح للنظام بالتداول طوال الجلسة الكاملة، والتي تمتد لعقود القهوة الآجلة من الساعة 4:15 صباحًا حتى 1:30 ظهرًا (بتوقيت البورصة)، من الاثنين إلى الجمعة. سيتم الدخول والخروج في نفس يوم التداول، مما يعني إغلاق جميع المراكز بنهاية الجلسة كحد أقصى، ما لم يتم الوصول إلى مستوى إيقاف الخسارة قبل ذلك. في هذا التحليل الأولي، سيتم تحديد مستوى إيقاف الخسارة عند 1,500 دولار أمريكي.

سوف نقوم باختبار نظام التداول الخاص بنا على إطار زمني مدته 15 دقيقة ( البيانات 1 )، في حين سيتم حساب مستويات الدخول على إطار زمني يومي ( البيانات 2 )، باستخدام البيانات التاريخية من بداية عام 2010 حتى مارس 2025.

يمكن ترجمة هذا المفهوم إلى بضعة أسطر من التعليمات البرمجية:

الإدخال: n_sessions( 5 )، mystop( 1500 )، myprofit( 0

إذا كانت EntriesToday(d)= 0 ، فقم بشراء الشريط التالي عند أعلى مستوى (ارتفاع، n_sessions)data2؛

إذا كانت EntriesToday(d)= 0 ، قم ببيع الشريط التالي على المدى القصير عند أدنى مستوى (أدنى مستوى، n_sessions)data2؛

إذا كان mystop> 0 ثم setstoploss(mystop)؛

إذا كان myprofit> 0 ثم setprofittarget(myprofit);

تعيين إيقاف العقد؛

setexitonclose؛

أولاً، لنُحسِّن ونُحدِّد العدد الأكثر ربحية للجلسات ( n_sessions ) لاستخدامه عند حساب مستويات الاختراق للارتفاعات والانخفاضات. سنُحسِّن مُدخلات n_sessions باستخدام الخطوات من 1 إلى 10.

الشكل 1 - تحسين مدخلات "n_sessions" لتحديد العدد الأمثل للجلسات لحساب الارتفاعات والانخفاضات.

يكشف التحسين أنه مع زيادة عدد الجلسات، يميل صافي الربح - ومعظم مقاييس الأداء الأخرى - إلى التدهور، باستثناء أقصى انخفاض. في حالتنا، اخترنا القيمة 2، مما يعني أننا سنحسب مستويات الدخول بناءً على الجلستين الأخيرتين. سيتم فتح صفقة عند اختراق السعر لهذه المستويات.

بالنظر إلى مقاييس الأداء من اختبارنا الأول، لاحظنا فورًا منحنى أسهم مربحًا ومنحدرًا صاعدًا، مما يُظهر استجابة جيدة لآلية تتبع الاتجاه. وبينما ستحتاج النتائج بالتأكيد إلى تحسين مع استمرارنا في التطوير، فقد بدأنا بالفعل بمتوسط تداول جيد يبلغ حوالي 60 دولارًا أمريكيًا وربح صافٍ قدره 160,800 دولار أمريكي، وهو أمر جيد لنظام خام لم يُطبق عليه أي تعديلات حتى الآن.

الشكل 2 - منحنى الأسهم التفصيلي لاستراتيجية متابعة الاتجاه في العقود الآجلة للقهوة.

الشكل 3 - ملخص أداء الاستراتيجية وتحليل التداول الإجمالي لاستراتيجية متابعة الاتجاه في العقود الآجلة للقهوة.

لتحسين نظام التداول لدينا، تتمثل الخطوة الأولى في التحقق من جدوى تشغيل النظام ضمن إطار زمني يختلف عن الجلسة الكاملة. سنُعدِّل الكود باستخدام دالة خاصة، ونضيف المُدخلَين " MyStartTrade " و" MyEndTrade "، اللذين يُحددان وقتي بدء وانتهاء نافذة التداول. ثم سنُحسّن هذه المعلمات.

var:istartofsession(خطأ)؛

بدء الجلسة=_OHLCMulti5( 0415 ، 1330 ، قيم ohlc)؛

المصفوفة:ohlcValues[ 23 ]( 0 );

الإدخال: وقف الخسارة ( 1500 )، جني الأرباح ( 0

الإدخال: MyStartTrade( 415 )،MyEndTrade( 1330

الإدخال: n_sessions( 2 );

//دخول

إذا تو (MyStartTrade، MyEndTrade)

وEntriesToday(d)= 0

ثم ابدأ

قم بشراء الشريط التالي عند أعلى مستوى (High,n_sessions)data2؛

بيع على المكشوف للشريط التالي عند أدنى مستوى (منخفض، n_sessions) data2 توقف؛

نهاية؛

إذا كان وقف الخسارة> 0 ثم setstoploss(stoploss)؛

إذا كان takeprofit> فقم بتعيين هدف الربح (takeprofit)؛

تعيين إيقاف العقد؛

setexitonclose؛

الشكل 4 - تحسين مدخلات "MyStartTrade" لتحديد أفضل وقت لبدء التداول.

الشكل 5 - تحسين مدخلات "MyEndTrade" لتحديد أفضل وقت لإيقاف التداول.

من نتائج التحسين، نلاحظ أنه بتضييق نافذة التداول - بدءًا من الساعة 5:00 صباحًا وحتى الساعة 11:00 صباحًا - نحقق تحسنًا واضحًا في الحد الأقصى للانخفاض، حيث انخفض من أكثر من 26,000 دولار أمريكي إلى أقل من 23,000 دولار أمريكي. ويرجع ذلك على الأرجح إلى أن تحركات السوق غالبًا ما تكون غير منتظمة وتفتقر إلى الاتجاه في بداية الجلسة، بينما بعد نقطة معينة من اليوم، يصبح الدخول في صفقات جديدة غير منطقي نظرًا لإغلاق جميع المراكز بنهاية الجلسة.

تعزيز أداء الاستراتيجية باستخدام أنماط الأسعار

لنواصل تحسين النظام بالتركيز على أحد أهم مقاييس الأداء: متوسط التداول. لكي يكون النظام فعالاً للتداول المباشر، نحتاج إلى تحسين هذا المؤشر بشكل كبير، خاصةً بالنظر إلى تكاليف التداول الفعلية، مثل العمولات والانزلاق السعري، والتي تتأثر أيضًا بقيمة نقرة السعر المرتفعة نسبيًا لعقود القهوة الآجلة (18.75 دولارًا لكل نقرة).

من التحسينات المحتملة إضافة مُرشِّح يعتمد على "العامل اليومي"، وهو نمط يقيس مدى تحرك سعر اليوم السابق من الافتتاح إلى الإغلاق، مقارنةً بنطاقه اليومي الكامل. لا يُعطي هذا النمط إشارات اتجاهية، ولكنه يُتيح لنا فهمًا أعمق للتقلبات: يشير انخفاض العامل اليومي إلى أن الأسعار تحركت بشكل طفيف جدًا مقارنةً بنطاقها الإجمالي، بينما يُشير ارتفاعه إلى اتجاه قوي، سواءً صعوديًا أو هبوطيًا.

بمجرد حساب العامل اليومي (" DF ")، يُمكننا مقارنته بعتبة مُحددة مُسبقًا (" DF_level ") لتحديد ما إذا كانت أعلى أو أقل من تلك القيمة. يتراوح كلٌّ من " DF " و" DF_level " بين ٠ و١.

سنقوم الآن بتنفيذ هذا المنطق في البرنامج النصي الخاص بنا باستخدام بضعة أسطر من التعليمات البرمجية والمضي قدمًا في تحسين إدخال " DF_level "، والذي يتراوح من 0.1 إلى 1 في خطوات مقدارها 0.05.

//العامل اليومي

الإدخال: DF_level( 1 );

متغير: DF( 0

إذا (الارتفاعات( 1 )-الانخفاضات( 1 ))<> 0 ، فابدأ

DF=absvalue(الفتح( 1 )-الإغلاق( 1 ))/(الارتفاعات( 1 )-الانخفاضات( 1 ));

نهاية؛

الشكل 6 - تحسين مدخلات "DF_level" لتحديد الفلتر بناءً على نمط العامل اليومي.

بناءً على نتائج التحسين، اخترنا القيمة 0.8. هذا يُحدد الشرط التالي: لن يُسمح للاستراتيجية بفتح مركز إلا إذا كان إجمالي سعر الجلسة السابقة (افتتاح - إغلاق) أقل من 80% من النطاق الكامل للجلسة (أعلى - أدنى).

يساعد هذا الفلتر على رفع متوسط تداولاتنا بمقدار ٢٠ دولارًا، ليصل إلى أكثر من ٨٥ دولارًا. كما يُسهم في خفض الحد الأقصى للانخفاض وزيادة صافي الربح.

تحيز يوم الأسبوع في عقود القهوة الآجلة: تصفية أيام التداول الأكثر ربحية

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

لتحقيق ذلك، قمنا بتحديث نصنا بإضافة مُدخلَين جديدَين: " skipdaylong" و" skipdayshort ". سيُحدد هذان المُدخلان أيام التداول التي يجب استبعادها من استراتيجيتنا، بناءً على ما إذا كانت دخولًا طويلًا أم قصيرًا.

سنعمل بعد ذلك على تحسين هذه المدخلات باستخدام نطاق يتراوح من 1 إلى 5، يتوافق مع أيام الأسبوع في لغة برمجة MultiCharts، حيث 1 = الاثنين و5 = الجمعة.

الإدخال: skipdaylong(- 1 )،skipdayshort(- 1

إذا كان dayofweek(d)<>skipdaylong، فقم بشراء الشريط التالي عند أعلى نقطة توقف (High,len)data2؛

إذا كان dayofweek(d)<>skipdayshort، قم ببيع الشريط التالي على المدى القصير عند أدنى مستوى (Low,len)data2؛

الشكل 7 - نتائج التحسين لمدخلات "skipdaylong" و"skipdayshort"، مرتبة حسب متوسط التداول.

للتحقق من صحة نتائج التحسين، نستخدم برنامجنا الخاص، والذي يسمح لنا بتحليل التحيزات الخاصة بالأداة على مستويات مختلفة - من التحيزات الساعية داخل اليوم إلى التحيزات الشهرية والسنوية.

بالنظر إلى الشكل 8، نلاحظ فورًا أن عقود القهوة الآجلة تميل إلى التحرك بشكل جانبي أيام الاثنين (الموضحة في الشكل)، دون أن تُظهر أي اتجاه واضح. من ناحية أخرى، تُظهر بقية أيام الأسبوع اتجاهات أكثر وضوحًا، وعادةً ما تكون هبوطية لهذه الأداة. علاوة على ذلك، يكون مؤشر "العامل اليومي" المُقاس أيام الجمعة أضعف عمومًا من نفس المقياس المُلاحظ في أيام أخرى.

بناءً على هذا التحليل، قررنا استبعاد يوم الاثنين من تداولاتنا. يسمح لنا هذا التعديل برفع متوسط التداول إلى ما يزيد قليلاً عن 100 دولار.

الشكل 8 - تحليل التحيز الأسبوعي لعقود القهوة الآجلة باستخدام برنامج Bias Finder الخاص.

تحسين هدف وقف الخسارة والربح لتحسين ربحية الاستراتيجية

كخطوة أخيرة في اختبارنا، نواصل - كالمعتاد - تحسين مستوى إيقاف الخسارة، الذي كان مُحددًا حتى الآن عند 1500 دولار أمريكي. وفي الوقت نفسه، نُقيّم الفائدة المُحتملة لإضافة هدف ربح. يقودنا هذا التحسين النهائي إلى تحديد كلٍّ من مستوى إيقاف الخسارة وهدف الربح عند 1700 دولار أمريكي.

إن المقاييس النهائية التي تم تحقيقها من خلال دراستنا هي ما يقرب من 189000 دولار أمريكي في صافي الربح، ومتوسط التداول 118 دولار أمريكي، وأقصى انخفاض 14756 دولار أمريكي.

الشكل 9 - تحسين وقف الخسارة لاستراتيجية متابعة الاتجاه على عقود القهوة الآجلة.

الشكل 10 - تحسين هدف الربح لاستراتيجية متابعة الاتجاه في العقود الآجلة للقهوة.

الشكل 11 - منحنى حقوق الملكية النهائي لاستراتيجية العقود الآجلة للقهوة.

الشكل 12 - ملخص الأداء النهائي وتحليل التداول الإجمالي لاستراتيجية العقود الآجلة للقهوة.

الأفكار النهائية: هل يستحق متابعة الاتجاه في عقود القهوة الآجلة العناء بالنسبة للمتداولين المنهجيين؟

باختصار، أثبت نهج تتبع الاتجاهات الذي تناولناه في هذه المقالة فعاليته عند تطبيقه على عقود القهوة الآجلة. وهذا يُعزز أهمية استكشاف الأسواق الأقل شهرة كوسيلة لتنويع محفظة التداول.

لقد قدم التحليل رؤى قوية، ولكن الاستراتيجية لا تزال بحاجة إلى مزيد من التطوير قبل أن تكون جاهزة للتداول المباشر - خاصة من حيث اختيار الصفقات الأكثر ربحية وتحسين قيمة التداول المتوسطة لجعل النظام قابلاً للتطبيق في ظروف العالم الحقيقي.

حتى المرة القادمة-تداول سعيد!

أندريا أونجر

سيتم الرد على كل الأسئلة التي سألتها
امسح رمز الاستجابة السريعة للاتصال بنا
whatsapp
يمكنك التواصل معنا أيضا من خلال