![]() |
ورشة مفتوحة لطرح الاسئلة البرمجية للغة mql4
http://im38.gulfup.com/UK9b2.jpg
السلام عليكم ورحمة الله وبركاته ستكون هذه الورشة مفتوحة لطرح جميع الأسئلة المتعلقة ببرمجة الإكسبرتات والمؤشرات وأي سؤال برمجي متعلق بلغة mql4 |
الاخ والاستاذ dahmanesoft
اتشرف بأن تكون اولى مشاركاتي معكم هنا وقبل كل شئ ارجو ان لا يضيق صدرك من كثرة الاسئلة وقد تكون سطحية بالنسبة لك وهذا بسبب عدم معرفتي لغة البرمجة والسن لا يسمح بتعلم لغة البرمجة ...لقد هرمنا ولكن اسلوبك في التعليم بالبدء العملي كان مشجعا جدا لي فلا اطمع ان اكون مبرمجاً محترفا ولكن اطمع في ان اعمل اكسبيرت بسيط عندما اريده وارجو التأكيد على ان يتسع صدرك لكثرة الاسئلة المشاركات القادمة بها الاسئلة ان شاء الله خالص التحية والتقدير |
السلام عليكم
شرط عدد الاوامر المفتوحة صفر [CODE int MyRealOrdersTotal() { int c=0; int total = OrdersTotal(); for (int cnt = 0 ; cnt < total ; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL)) { c++; } } return(c); } ][/CODE] اين نضع المتغير 10 بدلا من صفر اي انه يفتح صفقة بالرغم من وجود 10 صفقات مفتوحة وما معنى الاختصارات التالية بالتفصيل الممل من فضلك حتى نفهم الاوامر ولو فهما بسيطا int MyRealOrdersTotal() { int c=0; int total = OrdersTotal(); for (int cnt = 0 ; cnt < total ; cnt++) { مع خالص الشكر والتقدير |
قمت بالتغيير التالي
for (int cnt = 10 ; cnt < total ; cnt++) وكانت النتيجة انه يفتح العدد الذي اريده بالفعل ولكن من نفس النقطة فكيف نجعل العدد صفر يكون 10 ولكن لا يتم الفتح من نفس النقطة وانما من نقاط تقاطعات متتالية اي يفتح صفقة مع كل تقاطع حتى عدد 11 صفقة عند 11 تقاطع فكيف يتم ذلك ؟؟؟ خالص تحياتي |
اخشى ان تكون استفسارتي ليست على المستوى المطلوب
ارجو ان يكون المانع خير |
اقتباس:
هههههه لا والله إسئل ماتريد بل بالعكس من خلال أسئلتك هناك أشخاص أخرين يستفيد |
اقتباس:
كود:
وبعدها نقوم بتطبيق العمليات عليها مثلا إذا أردنا أن يقوم الإكسبريت بفتح أوامر جديدة بشرط أن يكون عدد الأومر الحالية يساوي 0 يكون الشرط كالتالي كود:
if (MyRealOrdersTotal() ==0) { هنا نكتب الأوامر التي نريد تنفيدها عند حدوث الشرط}يكون الشرط كالتالي كود:
if (MyRealOrdersTotal() <=10) { هنا نكتب الأوامر التي نريد تنفيدها عند حدوث الشرط}وحتى تكون الأمور بسيطة التعامل دون أن نضطر كل مرة لتعديل في عدد الأوامر نقوم بإستبدال القيمة ( مثلا 10) بمتغير خارجي يسمح لنا بتعديلها كما نريد والطريقة كما يلي في أعلى الكود البرمجي نقوم بتعريف متغير خارجي كود:
extern int MaxOrders =10;كود:
if (MyRealOrdersTotal() <=MaxOrders) { هنا نكتب الأوامر التي نريد تنفيدها عند حدوث الشرط}http://im37.gulfup.com/FXxzZ.jpg |
شرح الوظيفة MyRealOrdersTotal
ماسنشرحه في هذه الوظيفة سنجده في عدد كبير من الوظائف التي نستعملها ولذالك ستكون هذه الوظيفة نموذج عام كود:
int MyRealOrdersTotal() و كل أمر يظهر أمامه رقم تسلسلي (OrderTicket) هذا الرقم يميز كل صفقة نقوم بفتحها عن جميع الصفقات المفتوحة على سيرفور الشركة وهو يظهر لنا على المنصة "" لذالك عندما يحدث مشكلة ما في أي صفقة يطلب منك الدعم تحديد رقم تكيت الصفقة من أجل تميزها عن جميع الصفقات المفتوحة من طرف الوسيط" اما بنسب للمنصة فكل أمر نقوم بفتحه يأحذ رقم تسلسلي يبدأ من 1 .. وهو لا يظهر على المنصة هذه الأرقام هي الوسيلة لتعرف على الصفقات المفتوحة بصفة عامة أما الأن كيف نفرق بين الأوامر التي نفتحها يدويا والأوامر التي يقوم الإكسبريت بفتحها وكيف للإكسبريت أن يتعرف للأوامر التي فتحها هو دون أن يخلطها مع أوامر قام إكسبريت أخر بفتتحها كل هذا يكون عن طريق مدخل واحد يعرف بـ الرقم السحري MagicNumber هذا الرقم هو الذي يسمح لنا التميز بين الصفقات التي تقوم الإكسبريتات بفتحها وهو وسيلتنا لتعرف على أي صفقة نريد تعديلها أو تنفيذ أي أمر عليها نعود الأن لشرح وظيفة MyRealOrdersTotal 1- إسم الوظيفة : أنت حر في التسمية التي تريد بشرط أن تكون حرفها غير مفصولة عن بعضها البعض كود:
int MyRealOrdersTotal() كود:
int MyRealOrdersTotal() |
3- الحلقة التي تمر على جميع الأوامر الموجودة على المنصة ( العداد)
بالنسبة للوظيفة OrdersTotal هي وظيفة محجوزة في لغة mql4 تعود لنا بعدد الأوامر المفتوحة على المنصة وهي تظهر باللون البنفسجي عند كتابتها كود:
int MyRealOrdersTotal() 4- تحديد الأوامر التي نحتجها عن طريق الوظيفة OrderSelect هذه الوظيفة تحتوي على 3 إعدادات هي 1- الفهرس وهي الأرقام التي تمر عليها الحلقة for 2- SELECT_BY_POS وهو الرقم التسلسلي الذي تحددنا عليه في بداية المشاركة ويمكن أو إختيار كذلك رقم التكت SELECT_BY_TICKET 3- MODE_TRADES ونقصد به الجزء TRADE الموجودة في المنصة 5- شروط تحديد الصفقة المعنية وهي أهم شيئ ويأتي على رأس هذه الشروط تحديد الرقم السحري ثم رمز زوج العملة ثم نوع الأوامر و ....و..... هنا نقوم بتحديد الأشياء الي نريد أن نحصل عليها من الوظيفة كود:
int MyRealOrdersTotal() من أجل معرفة الفرق بينهم وأي سؤال أخر أو أي نقطة غير مفهومة تفضلوا بطرح الأسئلة |
اقتباس:
يعلم الله اني اجتهد في اسئلتي لتكون عامة ولتفيد من يريد التعلم وتأكد ان ما تكتبه هو مفيد لكل من يريد الاستفادة اليوم او بعد سنوات.....ههه اسأل مجرب دعني اهضم ما تفضلت به واعود لطرح الاستفسارات جزاكم الله خير الجزاء سؤال يراودني هل انت س..ري ؟ كنت في منتدى الجيران |
| الساعة الآن 08:53 AM. |
Powered by vBulletin Version 3.8.12 by vBS
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd
دعم فني
جميع الحقوق محفوظة لـ منتديات الكندي للتدريب والإستشارات المالية -