اكسبيرت يغلق الصفقه بعد عدد معين من الشموع
الاخوه الاساتذه المبرمجين
كل عام وانتم بخير
هل يمكن مساعدتى بكتابه هذا الاكسبيرت وتجربته
input int MaxCandles = 5; // عدد الشموع المطلوبة للإغلاق
void OnTick() {
for (int i = OrdersTotal() - 1; i >= 0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
// حساب عدد الشموع التي مرت منذ فتح الصفقة
int candlesPassed = iBarShift(Symbol(), Period(), OrderOpenTime());
if (candlesPassed >= MaxCandles) {
bool closed = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 3);
if(closed) Print("تم إغلاق الصفقة بعد مرور ", MaxCandles, " شموع.");
}
}
}
}
شرح الإعدادات:
MaxCandles: المتغير الذي تحدد من خلاله عدد الشموع (مثلاً 5 شموع).iBarShift: دالة برمجية تقوم بحساب "كم شمعة" مرت بين وقت فتح الصفقة والوقت الحالي على نفس الفريم الزمني.التنفيذ: بمجرد وصول عدد الشموع للرقم المحدد، يرسل الإكسبيرت أمر إغلاق فوري للسوق.*
ملاحظة:*يعمل هذا الإكسبيرت على الفريم الزمني الذي تضعه عليه؛ فإذا وضعته على فريم الساعة (H1) سيغلق بعد عدد الساعات المحدد، وإذا كان على الدقيقة (M1) سيغلق بعد عدد الدقائق المحدد