هذه الرسالة تفيد بأنك غير مشترك في منتديات فوركساوي. لتسجيل الرجاء اضغط هنـا
بحث
 

العودة   منتديات فوركساوي - forex -تقرير يومى - تحليل فنى - تحليل اساسى - تحليل موجى - تحليل يومى > منتدي المؤشرات والاكسبيرتات

منتدي المؤشرات والاكسبيرتات احدث المؤشرات والاكسبيرتات مع الشرح تجدها فقط علي صفحات فوركساوي

آخر 10 مشاركات التقرير الاخبارى اليومى Fr 13 Nov (الكاتـب : التحليلات والاخبار - آخر مشاركة : paymnGomjoync - )           »          قبيل الجلسة الأوروبية: بانتظار بيانات قطاع العمالة البريطاني (الكاتـب : التحليلات والاخبار - آخر مشاركة : Unlanyenlaf - )           »          العملات الرئيسية تفقد العزم أمام الدولار (الكاتـب : التحليلات والاخبار - آخر مشاركة : Engammapoob - )           »          التقرير الاخبارى اليومى Mon 16 Nov (الكاتـب : التحليلات والاخبار - آخر مشاركة : Jekalelsspers - )           »          التقرير الاخبارى اليومى We 11 Nov (الكاتـب : التحليلات والاخبار - آخر مشاركة : undulpglype - )           »          صعود الذهب من ادنى مستوى له في 4 أشهر مع صعود اليورو (الكاتـب : ecostatusat - )           »          مؤشر اسعار المنتجين لابد ان يؤكد نظرة البنك الفدرالي لمعدلات تضخم متدنية (الكاتـب : التحليلات والاخبار - آخر مشاركة : owenpaywoke - )           »          التقرير الاخبارى اليومى Thu 19 Nov (الكاتـب : التحليلات والاخبار - آخر مشاركة : gellaRemlix - )           »          البنك المركزي الأوروبي يخفض توقعاته بشأن انكماش منطقة اليورو خلال العام الحالي (الكاتـب : التحليلات والاخبار - آخر مشاركة : TampAidemia - )           »          ارتفاع مفاجئ للعجز التجاري الأمريكي في شهر مارس الماضي (الكاتـب : ecostatusat - )

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
قديم 29-06-2009, 05:12 PM   #1 (permalink)
المدير التنفيذي للموقع الالكتروني
 
الصورة الرمزية متداول-متميز
 

افتراضي دورة تعليم لغة MQL4 (المحاضرة السابعة )

بسم الله الرحمن الرحيم

مرحبا بكم في الدرس السادس ... عالم الدوال في لغة MQL4
الدوال في اي لغة برمجية هي عصب البرنامج وقارب النجاة لكل مبرمج.

الدوال functions هي عبارة عن جمل statements متجمعة (هناك جمل مستقلة ولا تحتاج للتجمع لتكوين دالة مثل الحلقات والقرارات)

دعونا نبدأ الدرس .

* ماذا نعني بالدوال functions ?

الدالة تشبه في طريقة عملها طريقة عمل مشواة اللحم , فأنت عليك ان تضع اللحم والبهارات وهي عليها ان تخرج لك الكباب المشوي

اللحم والبهارت هما المعرفات والتغيرات واسم الدالة , والكباب هو ناتج الدالة والذي يمثل بقيمة return , اما المشواة ذاتها فهي جسد الدلة .

هناك اختلاف وحيد بين المشواة والدالة وهو ان بعض الدوال لها ناتج خالي (لاشئ) (ويمثلها في لغة MQL4 بالكلمة المحجوزة void)

دعونا نأخذ بعض الأمثلة :
كود PHP:
double                                  
 
my_func 
(double adouble bdouble c// المعرفات والمتغيرات ( اللحم والبهارت) 
  
{                                  
 
   return (
a*c);                  //  ناتج الدالة (الكباب) 
 
  

كما نرى في المثال اعلاه , الدالة بدأت بتحديد نوع الناتج (الكلمة المحجوزة double) , وبعدها اسم الدالة متبوعة بالقوسين ( ) .

بداخل تلك الأقواس ( ) سنضع اللحم والبهارات . اسف اقصد المعرفات ومتغيراتهم

هنا عندنا 3 معرفات double a , double b , double c .

تبدأ الدالة عملها وتنتهي داخل القوسين { }

الكلمة المحجوزة ( return ) هي المسئولة عن اخراج الناتج النهائي للدالة .

* الكلمة المحجوزة ( Return ) :

الكلمة المحجوزة ( return ) كما قلنا هي المسئولة عن انهاء الدالة ( مثل الكلمة المحجوزة Break في الحلقات والقرارات) , كما تعطينا التحكم في نداء الدالة function call (سنعرفها بعد قليل)

الكلمة المحجوزة ( return ) يمكن ان تحتوي على تعبير ما بين اقواسها ( ) كما في مثالنا هنا ( التعبير هو اتحاد العمليات والمعرفات , راجع درس العمليات والتعبيرات ) وهنا وظيفتها ان تنهي الدالة وتخرج لنا نتائج العمليات بداخلها (كما في المثال (a*b + c);

ويمكن ايضا ان لا تحتوي على تعبير ما وهنا تكون وظيفتها فقط انهاء الدالة .

ملاحظة : ليس كل الدوال تنتهي بالكلمة المحجوزة ( return ) خاصة لو لم يكن هناك اي قيمة ناتجة عن عمليات او ما شابه .

مثال عن ذلك :
كود PHP:
void                                 // void mean there’s no sausage – returned value.  
 
my_func (string s// function name and parameters list (meat & spices) 
 
  
{                                  
 
       Print(
s); 
 
  } 
تذكروا هنا ان الكلمة المحجوزة void معناها انه لا يوجد هناك نتيجة للمعطيات.

في هذا المثال لم تخرج لنا الدالة قيمة الناتج بل فقط أخرجت لنا المعرف ( s ) كما ادخلناه دون تغيير

متى لم تستخدم الدالة الكلمة المحجوزة ( return ) يجب علينا استخدام الكلمة المحجوزة ( void ) لنحدد طبيعة الدالة .

هذه الأنواع من الدوال تسمى في بعض اللغات البرمجية بالطرق (methods) ولكنها في لغة MQL4 تسمى دوال functions

* استدعاء الدالة function call :

كلنا عرفنا ماهي الدالة functin ( كما اتمنى ) , حسنا كيف نقوم باستدعاء واستخدام الدالة في لغة MQL4 ؟

هناك عدة طرق بعد كتابة الدالة الخاصة بك تمكنك من استخدامها (استدعائها) في برنامجك .

افترض معي انك كتبت دالة تقوم بجمع عددين صحيحين ( integers )

هذه هي الدالة :
كود PHP:
int collect (int first_numberint second_number)  
 
  {                                  
 
       return(
first_numbersecond_number); 
 
  } 
انت تعرف كيف تعمل هذه الدالة , لكنك تريد استخدامها في البرنامج .

يمكنك استخدامها ( استدعائها ) هكذا :
كود PHP:
int a 10
 
int b 15
 
int sum collect(a,b); 
 
Print (
sum); 
في المثال السابق سيخرج البرنامج والكومبيوتر الناتج 25 ( نتيجة جمع العددين 10 , 15 ) داخل الدالة التي كتبتها. !!

هل هذا سحر ام خيال !! كيف قامت السطور السابقة باستخدام ( باستدعاء ) الدالة الخاصة بك ؟؟؟

لا حظ انك سميت الدالة الخاصة بك بالأسم collect , وقيمة الكلمة المحجوزة ( return ) بها عملية الجمع .

السطر الخيالي ( int sum = collect(a,b); ) هو من قام باستخدام الدالة ( استدعائها ) بإضافة القيمة ( collelct ) اسم الدالة الى المتغير ( sum ) وأعطى الدالة القيمتين 10 و 15 .

فعند طباعة المتغير sum ستقوم بأستداء الدالة واخراج نتيجتها .

بمعنى شامل : انك كتبت الدالة وأعطيتها اسما ما , ثم كتبت امر استخدامها بكتابة اسمها داخل الأمر فقط (وتم تعريف اسم الدالة كمتغير ) , انت هكذا اساسا استدعيت الدالة الخاصة بك .

لغة MQL4 حين ترى اسم الدالة الخاصة بك ستقوم بأخذ القيم ( 10 و 15 في المثال ) وتذهب بهم الى الدالة تبعك وتقوم بمعالجتهم حسب قيمة الكلمة المحجوزة ( return ) وتعود بالقيمة الناتجة الى السطور السابقة لتقوم بطبعها او اخراجها في المكان السابق .

هذه العملية تماما كأنك نسخت سطور الدالة داخل كلمة collect في سطور البرنامج في المثال . سهلة العملية , اليس كذلك ؟

* تداخل دالة في دالة أخرى Nesting.

يمكننا ان ندخل دالة ما بداخل دالة جديدة وذلك بمعالجة سطر استدعاء الدالة برمجيا كجملة برمجية statement ( في الحقيقة كلهم يعتبروا سطور برمجية )

لنرى مثالا يوضح ذلك :
كود PHP:
void print_collection (int first_numberint second_number)  
 
  {                                  
 
       
int sum collect(first_numbersecond_number); 
 
       Print(
sum); 
 
  } 
في المثال نحن استخدمنا دالة collect ووضعناها داخل دالة جديدة والناتج هو خلاصة الدالتين .

تفصيلا نحن وضعنا الدالة collect داخل جسد الدالة print_collect وطبعنا نتيجتهما , void في المثال معناها انه لا توجد ( return ) , هل لازلت تتذكرها ؟

** دوال لغة MQL4 الأساسية ( ()init() , deinit() , start ):

كل برنامج في لغة MQL4 سواء كان مؤشر , اكسبرت او اسكربت فهو يبدا دائما بالدالة " ()init " اختصار كلمة بدأ (initialize) وهي تعمل بمجرد وضع البرنامج ( اكسبرت او مؤشر او اسكربت) على شارت الميتاتريدر , ووظيفتها بدء عمل المتغيرات الرئيسية بالبرنامج ( سنعرف الكثير عن المتغيرات في الدرس القادم ان شاء الله )

متى انتهى عمل البرنامج بأغلاق الشارت او مسح المؤشر او الكسبرت او اغلاق الميتا تريدر تقوم الدالة " ()deinit " بعملها لأنهاء البرنامج .

الدالة الثالثة " ()start " ( اهم الدوال على الإطلاق ) تعمل بصفة دائمة كلما استقبلت معطيات وقيم جديدة في متغيراتها ( تحرك السعر يعطي قيم جديدة للهاي واللو والكلوز وقيم المؤشرات المختلفة هي قيم تتغير طوال الوقت ) , احب ان اخبرك هنا انك ستقضي 90% من حياتك البرمجية داخل هذه الدالة .

سنعرف الكثير عن هذه الدوال الأساسية في حياتنا العملية عندما نبرمج ونكتب المؤشرات والإكسبرتات الخاصة بنا ان شاء الله .


في الدرس القادم بأذن الله سنتكلم عن المتغيرات في لغة MQL4

التوقيع:
(الْلَّهُم انّي اسْتَوْدَعْتُك قَلْبِي فَلَا تَجْعَل فِيْه أَحَد غَيْرُك،،،وَأَسْتَوَدَّعَتك لَا إِلَه إِلَّا الْلَّه فْلَقِنِيُّهَا عِنْد مَوْتِي)



متداول-متميز غير متواجد حالياً   رد مع اقتباس
قديم 14-07-2009, 03:40 PM   #2 (permalink)
فوركساوي جديد
 

افتراضي رد: دورة تعليم لغة MQL4 (المحاضرة السابعة )

سبحان الله والحمد لله ولااله الا الله والله أكبر ولاحول ولاقوة الا بالله العلى العظيم

khalidaalmasry غير متواجد حالياً   رد مع اقتباس
قديم 24-12-2009, 12:15 AM   #3 (permalink)
فوركساوي جديد
 

افتراضي رد: دورة تعليم لغة MQL4 (المحاضرة السابعة )

مشكوررررر على هذا المجهود العظيم

زهور احمد غير متواجد حالياً   رد مع اقتباس
قديم 19-02-2010, 10:33 AM   #4 (permalink)
فوركساوي جديد
 

افتراضي رد: دورة تعليم لغة MQL4 (المحاضرة السابعة )

اقتباس:
** دوال لغة MQL4 الأساسية ( ()init() , deinit() , start ):

كل برنامج في لغة MQL4 سواء كان مؤشر , اكسبرت او اسكربت فهو يبدا دائما بالدالة " ()init " اختصار كلمة بدأ (initialize) وهي تعمل بمجرد وضع البرنامج ( اكسبرت او مؤشر او اسكربت) على شارت الميتاتريدر , ووظيفتها بدء عمل المتغيرات الرئيسية بالبرنامج ( سنعرف الكثير عن المتغيرات في الدرس القادم ان شاء الله )

متى انتهى عمل البرنامج بأغلاق الشارت او مسح المؤشر او الكسبرت او اغلاق الميتا تريدر تقوم الدالة " ()deinit " بعملها لأنهاء البرنامج .

الدالة الثالثة " ()start " ( اهم الدوال على الإطلاق ) تعمل بصفة دائمة كلما استقبلت معطيات وقيم جديدة في متغيراتها ( تحرك السعر يعطي قيم جديدة للهاي واللو والكلوز وقيم المؤشرات المختلفة هي قيم تتغير طوال الوقت ) , احب ان اخبرك هنا انك ستقضي 90% من حياتك البرمجية داخل هذه الدالة .
ممكن التفصيل في هذه الدوال الثلاثة و وضع أمثلة ،، لو تكرمت

M!Ss.Do3n غير متواجد حالياً   رد مع اقتباس
إضافة رد


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

(عرض الكل الاعضاء الذين شاهدو هذا الموضوع: 37
ماهر العمر, ADHAM, محمد القلعاوى, algerianman, alshreef2005, مكحل عيون الذيب, cadecortx, العابد7, بسام صندوقه, ghost-egypt, gooogle70, hany_elkoptan, hasan, hitman, hluvr, حسين الصائغ, khalidaalmasry, king alx, laith_r, M!Ss.Do3n, Mandour, mazennafee, mohamed fawzy, mohands_moslim, Monostar, MR.S, msa, oudathothefa, زهور احمد, pghdad_1, raid, ralph kabota, sam_samir3, soma1970, فيجيتا, هاشمية
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
دورة تعليم لغة MQL4 (المحاضرة العاشرة ) متداول-متميز منتدي المؤشرات والاكسبيرتات 4 21-02-2010 07:30 PM
دورة تعليم لغة MQL4 (المحاضرة التاسعة ) متداول-متميز منتدي المؤشرات والاكسبيرتات 2 24-12-2009 12:17 AM
دورة تعليم لغة MQL4 (المحاضرة الثامنة ) متداول-متميز منتدي المؤشرات والاكسبيرتات 2 24-12-2009 12:16 AM
دورة تعليم لغة MQL4 (المحاضرة السادسة ) متداول-متميز منتدي المؤشرات والاكسبيرتات 3 24-12-2009 12:08 AM
دورة تعليم لغة MQL4 (المحاضرة الاولي ) متداول-متميز منتدي المؤشرات والاكسبيرتات 11 23-12-2009 11:45 PM


عزيزي العضو/الزائر.. نحيطك علماً بأن مواضيع المنتدى لاتمثل رأي الإدارة وإنما تمثل رأي كاتبها.


الساعة الآن 04:24 PM.


Powered by vBulletin Version 3.8.2
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd

تنسيق المواضيع بواسطة برامج
جميع الحقوق الملكيه محفوظه لــ فوركساوي

- AJ-TEAM : SEO by vBSEO 3.3.0