طريقتك في مقارنة حالة الشمعة السابقة جيدة ولكن هناك مشكلة وهي عندما المقارنة تنتهي ويفتح صفقة سوف يفتح من جديد ويستمر حتى تتغير الشمعة فلابد ان توقف العملية مرة واحدة يعني
اذا انت تريد مقارنة شمعة الساعة او العمل على شارت الساعة فلابد من تنفيذ الدخول في صفقة مرة واحدة
جرب مثالك باك تيست وستلاحظ ان برنامجك يفتح صفقات كثيرة
هناك نقطة وهي لا يوجد دالة تعطيك مهام مرة واحدة انت تصمم دالتك التي تفي بالغرض
فللخروج وقفل جميع الصفقات عند وقت معين لابد من عمل دالة شرطية
مثال بسيط
TimeCurrent()
هذه الدالة تعطيك الوقت الحالي للسيرفير
اعمل متغير زمني مثلا واعمل دالة شرط بمقارنة وعندما يتحقق الزمن فانه سينفذ دالة انت تصممها لقفل جميع الصفقات
بالنسبة لعكس الصفقة
هناك دالة لمعرفة وقت الاوردير المغلق
ومنها تعمل دالة لمراقبة اقرب زمن تم فيه غلق الصفقة
يعني تعمل مجموعة دوال كل لها مهمة ثم تضعهم في دالة ال start
iBarShift
هذه الدالة غير ضرورية
البديل لها
iclose
انظر لهذا الرابط
http://docs.mql4.com/series/iClose
كل الاوامر موجودة في هذا الرابط الخاص بالشركة
http://docs.mql4.com/index