يصبح البرنامج هكذا
تستطيع تعريف المتغيرين تيك بروفت TP وستوب لوس SL اما في البرنامج الاصلي او في البرنامج التضميني D.mqh
صممناه باسم sma4expert.mq4 يحفظ تحت ملف expert
وقبله صممنا المؤشر sma4indicator.mq4 يحفظ تحت ملف expert/indicator
معه صممنا برنامج دي D.mqh يحفظ تحت ملف expert/include
تستطيع تحميل البرامج الثلاثة من اسفل - الرد القادم إن شاء الله.
انقل اوامر الاغلاق المضللة التي اععدنا في موضوع Functional Trding الى خبيرنا sma4expert.mq4 قبل قوس الاغلاق (يعني في اخر البرنامج) -- الخط الاحمر على الصورة.
وغير مايلزم
اي اجعل شرط فتح صفقة شراء - الصورة يسار- هو شرط اغلاق صفقة البيع - الخط الازرق على الصورة
واجعل شرط فتح صفقة بيع - الصورة يسار- هو شرط اغلاق صفقة الشراء- الخط البني على الصورة
D.mq4 غيره الى D.mqh واحفظه في المكان المناسب (رفض المنتدى معي تحميل امتداد mqh)
جعلنا الهدف والوقف 500 - لكي نضمن عدم تنفيذه -او تنفيذ اقلها - ويكون اغلاق الصفقات فنيا على التقاطعات
5000 = تعني 500 نقطة (منصتي خمس خانات) - اذا منصتك اربع خانات - غير 5000 الى 500
تستطيع ان تضع 0 في خانة المعطى السادس والسابع تحت امر OrderSend لكي تكون دون وقف او هدف مسبق! - او تضع هدف ووقف 20000 (2000 نقطة)
GetLastError يفترض ان لاينفذ البرنامج السابق معك أي صفقة - رغم عدم وجود اخطاء فيه
سويت حركة بسيطة؟ اذا اكتشفتها فارج من نفسك الخير. ماذا يعني الخطأ 4002 ؟ وهل له علاقة باللغز الذي يجعل البرنامج يعمل دون تنفيذ صفقات؟ ام ليس له علاقة؟
لا اعتقد ان زملائي المبرمجين هنا او هناك سيعرفون حل المشكلة-والله اعلم- ولكن اعتقد ان sigmostri قد يعرفها, لاننا تحدثنا عن المصفوفات, وتابع الصور معي هنا.
من ارواع الاشياء في لغة امكيول4, هو ترقيم الاخطاء
حيث ان كل خطا يحدث اثناء الباكتست, له رقم معين وهذا الرقم تجد تفسيره في موقعهم التعليمي, ممايساعدك علىى سرعة اكتشاف الخطأ وإصلاحه (او على الاقل تقريب الخطأ)
[عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط ]
اضغط على الرابط, وابحث عن الرقم 4002 - ستجد ان له علاقة بالمصفوفات arrays
4002: Array index is out of range.
فيوجد هناك حلان:
1) اما تحديد عناصر المصفوفة ونحن هنا استخدمنا عنصرين للشمعة 0 والشمعة 1 لكل متوسط
2) او الغائها ووضع متغيرات احادية,