تحديد شروط الطلب والمؤشرات
Order Conditions and Indicators
لقد قمنا في الدروس الأخيرة بإنشاء وظائف تنفيذ آليات الطلبات التي تكون مشتركة في كل خبير مستشار. تم تصميم هذه الوظائف للاستخدام في مجموعة متنوعة من حالات التداول، ويجب أن تكون قابلة لإعادة الاستخدام ومرنة قدر الإمكان. هذا يتيح لنا التركيز على برمجة الشروط التداول الفريدة لنظام التداول الخاص بنا.
هنا ستكون معظم جهودك مركزة - تحقيق تداول الخبير المستشار لنظامك بأقصى دقة ممكنة. سنحتاج إلى تحديد الشروط الدقيقة لفتح وإغلاق الطلبات، بالإضافة إلى تحديد أسعار وقف الخسارة وأسعار جني الربح. تستخدم معظم أنظمة التداول بيانات الأسعار و/أو المؤشرات. دعنا نستعرض الطرق التي يمكننا من خلالها الوصول إلى هذه المعلومات واستخدامها في خبير المستشارات الخاص بنا.
بيانات السعر
Price Data
بالإضافة إلى سعر العرض أو الطلب الحالي (الذي تمت مناقشته في الفصول السابقة)، قد تحتاج إلى استخدام بيانات الأسعار للشريط، وتحديدًا الأعلى، الأدنى، الافتتاح أو الإغلاق لشريط معين. بالنسبة للرسم البياني الحالي، يمكنك استخدام مجموعات الأرقام المتسلسلة المحددة مسبقًا High[]، Low[]، Open[] و Close[].
المجموعة هي متغير يحتوي على قيم متعددة. يمكنك تنقل خلال القيم عن طريق تغيير الفهرس الذي يتم تضمينه في الأقواس المربعة. على سبيل المثال، فإن Open[0] هو سعر الافتتاح للشريط الحالي. العدد 0 هو الفهرس، ومن خلال تغييره يمكننا الحصول على سعر الافتتاح للأشرطة الأخرى. ستكون لدينا بشكل متكرر إما قيم الأشرطة الحالية أو السابقة للأسعار.
إذا كنت بحاجة إلى قيمة الأعلى، الأدنى، الافتتاح أو الإغلاق لرمز آخر غير الرسم البياني الحالي، أو إذا كنت بحاجة إلى بيانات الأسعار لفترة زمنية أخرى غير فترة الرسم البياني الحالية، يمكنك استخدام الوظائف iHigh()، iLow()، iOpen() و iClose(). فيما يلي بناء الجملة الخاص بتلك الوظائف، باستخدام iClose() كمثال لدينا:
Symbol- رمز زوج العملات المستخدم.
Period- فترة الرسم البياني المستخدمة، بالدقائق.
Shift- التحرك الخلفي بالنسبة للشريط الحالي.
دعنا نستخدم iClose() للحصول على سعر الإغلاق لفترة رسم بياني مختلفة. على سبيل المثال، إذا كنا نستخدم رسم بياني بفترة ساعة ولكن نرغب في التحقق من سعر الإغلاق للشريط السابق في رسم بياني بفترة 4 ساعات:
NULL يشير إلى رمز الرسم البياني الحالي. PERIOD_H4 هو ثابت عددي يشير إلى فترة الرسم البياني H4. 1 هو الانتقال الذي يمثل الشريط السابق للشريط الحالي. دعنا نستخدم مثالًا آخر يُرجع إغلاق الشريط الحالي في رسم بياني آخر:
GBPUSD هو الرمز الذي نستخدمه. لقد حددنا 0 كفترة لدينا، لذلك ستكون فترة الرسم البياني التي نقوم بالتحقق منها على GBPUSD هي نفسها كفترة الرسم البياني الحالي. الانتقال هو 0، وهو الشريط الحالي.
يمكنك استخدام مشغل حلقة مثل "for" أو "while" لزيادة معامل الانتقال والتنقل عبر تاريخ الرسم البياني. تُستخدم حلقة "for" هذه لاسترداد سعر الإغلاق لكل من آخر عشرة أشرطة، وتقوم بطباعته في السجل:
Order Conditions and Indicators
لقد قمنا في الدروس الأخيرة بإنشاء وظائف تنفيذ آليات الطلبات التي تكون مشتركة في كل خبير مستشار. تم تصميم هذه الوظائف للاستخدام في مجموعة متنوعة من حالات التداول، ويجب أن تكون قابلة لإعادة الاستخدام ومرنة قدر الإمكان. هذا يتيح لنا التركيز على برمجة الشروط التداول الفريدة لنظام التداول الخاص بنا.
هنا ستكون معظم جهودك مركزة - تحقيق تداول الخبير المستشار لنظامك بأقصى دقة ممكنة. سنحتاج إلى تحديد الشروط الدقيقة لفتح وإغلاق الطلبات، بالإضافة إلى تحديد أسعار وقف الخسارة وأسعار جني الربح. تستخدم معظم أنظمة التداول بيانات الأسعار و/أو المؤشرات. دعنا نستعرض الطرق التي يمكننا من خلالها الوصول إلى هذه المعلومات واستخدامها في خبير المستشارات الخاص بنا.
بيانات السعر
Price Data
بالإضافة إلى سعر العرض أو الطلب الحالي (الذي تمت مناقشته في الفصول السابقة)، قد تحتاج إلى استخدام بيانات الأسعار للشريط، وتحديدًا الأعلى، الأدنى، الافتتاح أو الإغلاق لشريط معين. بالنسبة للرسم البياني الحالي، يمكنك استخدام مجموعات الأرقام المتسلسلة المحددة مسبقًا High[]، Low[]، Open[] و Close[].
المجموعة هي متغير يحتوي على قيم متعددة. يمكنك تنقل خلال القيم عن طريق تغيير الفهرس الذي يتم تضمينه في الأقواس المربعة. على سبيل المثال، فإن Open[0] هو سعر الافتتاح للشريط الحالي. العدد 0 هو الفهرس، ومن خلال تغييره يمكننا الحصول على سعر الافتتاح للأشرطة الأخرى. ستكون لدينا بشكل متكرر إما قيم الأشرطة الحالية أو السابقة للأسعار.
إذا كنت بحاجة إلى قيمة الأعلى، الأدنى، الافتتاح أو الإغلاق لرمز آخر غير الرسم البياني الحالي، أو إذا كنت بحاجة إلى بيانات الأسعار لفترة زمنية أخرى غير فترة الرسم البياني الحالية، يمكنك استخدام الوظائف iHigh()، iLow()، iOpen() و iClose(). فيما يلي بناء الجملة الخاص بتلك الوظائف، باستخدام iClose() كمثال لدينا:
كود PHP:
double iClose(string Symbol, int Period, int Shift)
Symbol- رمز زوج العملات المستخدم.
Period- فترة الرسم البياني المستخدمة، بالدقائق.
Shift- التحرك الخلفي بالنسبة للشريط الحالي.
دعنا نستخدم iClose() للحصول على سعر الإغلاق لفترة رسم بياني مختلفة. على سبيل المثال، إذا كنا نستخدم رسم بياني بفترة ساعة ولكن نرغب في التحقق من سعر الإغلاق للشريط السابق في رسم بياني بفترة 4 ساعات:
كود PHP:
double H4Close = iClose(NULL,PERIOD_H4,1);
كود PHP:
double GBPClose = iClose(GBPUSD,0,0);
GBPUSD هو الرمز الذي نستخدمه. لقد حددنا 0 كفترة لدينا، لذلك ستكون فترة الرسم البياني التي نقوم بالتحقق منها على GBPUSD هي نفسها كفترة الرسم البياني الحالي. الانتقال هو 0، وهو الشريط الحالي.
يمكنك استخدام مشغل حلقة مثل "for" أو "while" لزيادة معامل الانتقال والتنقل عبر تاريخ الرسم البياني. تُستخدم حلقة "for" هذه لاسترداد سعر الإغلاق لكل من آخر عشرة أشرطة، وتقوم بطباعته في السجل:
كود PHP:
for(int Count = 0; Count <= 9; Count++)
{
double CloseShift = iClose(NULL,0,Count);
Print(Count+" "+CloseShift);
}