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

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

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

    اعتبارات أخرى
    Other Considerations

    سياق التجارة



    ميتاتريدر لديها سياق تنفيذ تداول واحد للمستشارين الخبراء. هذا يعني أن خبير واحد فقط
    يمكن للمستشار التداول في أي وقت ، بغض النظر عن عدد المستشارين الخبراء الذين يعملون في
    المنصة. قبل البدء في أي عمليات تجارية ، يجب علينا التحقق لمعرفة ما إذا كان سياق
    تنفيذ التجارة قيد الاستخدام حاليا.

    ستعود الدالة IsTradeCon****Busy () بشكل صحيح إذا كان سياق تنفيذ التجارة مشغولاً ،
    خلاف ذلك خطأ. سوف نستدعي هذه الوظيفة قبل استدعاء أي وظائف تداول ، بما في ذلك
    OrderSend () أو OrderClose () أو OrderDelete () أو OrderModify ().

    فيما يلي كيفية التحقق من سياق تنفيذ التداول باستخدام IsTradeCon****Busy ():

    كود PHP:
    while(IsTradeCon****Busy()) Sleep(10);
    int Ticket = OrderSend(Symbol(),OP_BUY,LotSize,Ask,UseSlippage, 0,0,
    "Buy Order",MagicNumber,0,Green); 
    
    نستخدم حلقة while لتقييم IsTradeCon****Busy (). إذا كانت الدالة ترجع true، فيشير إلى ذلك
    سياق تنفيذ الصفقات مشغول ، سينام المستشار الخبير لمدة 10 مللي ثانية. في حين أن
    الحلقة ستستمر في التنفيذ طالما أن IsTradeCon****Busy () ترجع true. وبمجرد ا تحرير السياق ، سيبدأ التداول.

    إذا حاول المستشار الخبير التداول تنفيذ التجارة أثناء انشغال السياق ، فسيظهر الخطأ 147:
    سينتج عنه "trade con**** busy". على الرغم من أن هذه الطريقة يمكن الاعتماد عليها إلى حد ما في تجنب "سياق التجارة
    مشغول "، فهي ليست مضمونًة ، خاصةً عندما يحاول العديد من المستشارين الخبراء التداول في
    نفس الوقت. لاحقًا ان شاء الله، سوف نستكشف طرقًا لإعادة محاولة عمليات التداول بعد خطأ معين.



    تحديث المتغيرات المحددة مسبقًا


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

    تقوم الوظيفة *******Rates () بتحديث محتويات المتغيرات المحددة مسبقًا بأحدث الأسعار
    من الخادم. يوصى باستدعاء هذه الوظيفة في كل مرة تستخدم فيها متغيرات العرض Bid أو الطلب Ask،
    خاصة بعد تنفيذ صفقة سابقة.

    لاحظ أنه إذا قمت باسترداد السعر باستخدام وظيفة MarketInfo () ، فليس من الضروري استخدام
    *******Rates (). قمنا بتغطية MarketInfo () في دروس سابقة. عندما نصل إلى الفصل الخاص بإنشاء
    الوظائف ، سنستخدم MarketInfo () لاسترداد الأسعار بدلاً من استخدام المتغيرات المحددة مسبقًا.
    ومع ذلك ، قد لا تزال ترغب في استخدام العرض Bid و الطلب Ask في وظيفة start () للإشارة إلى الوضع الحالي
    للأسعار على الرسم البياني.

يعمل...
X