النتائج 16 إلى 29 من 29
الموضوع: تعالوا نتعلم برمجة
- 05-01-2012, 01:09 PM #16
شكرا اخي الكريم و لكن الحق لازم ينسب لاهله ... دي مش ترجمتي دي ترجمة الدكتور وليد سليمان ربنا يكرمه
اما بالنسبة للاسئلة ففي الدرس الثامن هنبدأ نبرمج مؤشرات و بعدها بشويه اكسبيرتات بنفسنا و هيبدأ الشغل العملي و ده هيكون افضل اختبار لينا ( يعني تقريبا ده هيكون بداية من يوم الاثنين او الثلاثاء القادم باذن الله )
- 06-01-2012, 03:07 AM #17
Sounds great.
- 07-01-2012, 02:51 AM #18
مشكووووررررررررر ومتابع معك
- 07-01-2012, 02:40 PM #19
Where are the next lessons? We need to keep this thread alive..or to move directly to the stage of building
EAs and Indicators
- 07-01-2012, 04:17 PM #20
الشعب يريد اكمال الموضوع
- 07-01-2012, 08:05 PM #21
بارك الله فيكم اخواني و اسف لاني انقطعت شويه عشان كنت مشغول بالماركت
بس هستغل فرصة الاجازة و نكمل الموضوع
و شكرا لكل من رد على الموضوع
النهاردة هنكمل الدرس الثالث و الرابع
- 07-01-2012, 08:09 PM #22
بسم الله الرحمن الرحيم
مرحبا بكم في الدرس الثاني ... رموز البيانات في لغة MQL4.
ماذا نقصد برموز البيانات ؟
اي لغة برمجية في العالم تطلق اسماء محددة (تصنف ككلمات محجوزة)على شكل الذاكرة المناسب لرمز البيانات Data المستخدمة.
ما معنى هذا الكلام؟
لنعطي مثالا على ذلك:
لو ان الذاكرة تخزن الأرقام من -2147483648 الى 2147483648 , فمعظم لغات البرمجة العالمية ستطلق على رمز البيانات هذا اسم "Integer" اي عدد صحيح.
المتغيرات Variables ؟
هي اسماء تطلق على قطاع الذاكرة المخزن لنوع معين من البيانات.
لنفهم أكثر سنرسم صورة عامة للموضوع كمثال:
تخيل معي ان ذاكرة الكومبيوتر هي عبارة عن سلسلة من الصناديق مختلفة الأحجام , وحجم الصندوق هو مساحة التخزين بالبايت (وحدة البناء في الكومبيوتر)
* لكي نستخدم صندوقا ما لنخزن به احد البيانات يجب ان نطلق عليه اسم ما , هذه العملية تسمى اعداد declaration.
* خلال عملية الأعداد declaration نستخدم كلمة نخبر بها الكومبيوتر بنوع وحجم الصندوق المطلوب استخدامه , هذه الكلمة نطلق عليها keyword اي كلمة محجوزة تشير الى فئة معينة من البيانات .
* بعد تحديد رمز البيان بكلمة محجوزة , عليك الأن بأختيار اسم معرف خاص للصندوق (والأفضل ان تختار اسما يدل على رمز البيان ايضا لتسهيل البرنامج) ,, مثلا حددت Integer (كلمة محجوزة معتاها عدد صحيح) لتصنيف رمز البيان , وتطلق اسما من مخيلتك وليكن مثلا files (معناها ملفات وهي كلمة اخترعتها انت) وتطلقها على الصندوق , هكذا يعرف الكومبيوتر ان يخزن ارقام صحيحة(نوع البيانات) في صندوق الذاكرة المدعو files .. وهكذا ... هذه المعرفات يطلق عليها اسم ثابت المتغيرات Variables constant.
* الأن حددنا رمز البيانات واسم الصندوق , علينا الأن ان نضع هذه البيانات داخل الصندوق وذلك عن طريق ان ننسب assigning هذه البيانات الى هذا الصندوق (بكتابته برمجيا)
* الأن حددنا رمز البيان في صندوقه المناسب واطلقنا معرفا ثابتا لهذا الصندوق له قيمة افتراضية هي الصفر (هنا نقول ان عملية الأعداد declaration قد تمت) .
* عملية بدء عمل البرنامج بأدخال القيم (ادخال القيم في لغة MQL4 يكون عن طريق بيانات الأسعار القادمة من السيرفر) وتسمى هذه المرحلة ب عملية البدء initialization.
يمكن اختصار الخطوات السابقة بمعنى أخر ايضا لوضوح الفكرة هكذا:
متى انشأنا متغيرا (سمي متغير لتغير قيمه المستمر نتيجة تغير الأسعار المستمر مما يغير في النتائج ايضا) فنحن نخبر الكومبيوتر اننا نريده ان ينسب assigning حجم ذاكرة مخصصة (بوحدة البايت) لمتغيرنا هذه , ونظرا لأن الأرقام الصغيرة والحروف والأرقام الكبيرة لن تشغل نفس المساحة من الذاكرة , فسيسألنا الكومبيوتر عن رمز البيانات وحجم المساحة المطلوبة لتخزينها , ولهذا نشأ علم انواع البيانات في اللغات البرمجية.
(سنحاول ان نفهم اكثر مع كثرة الأمثلة والدروس القادمة)
على سبيل المثال , ماذا لو أخبرنا الكومبيوتر بهذا الكود :
كود PHP:
int MyVaraible=0;
معناه اننا نطلب من الكومبيوتر ان يوفر لنا حجم ذاكرة تبلغ 4 بايت(int تعني ذلك كما سيتضح في هذا الدرس) لمتغيرنا الذي اسميناه ب MyVaraibles.
في المثال السابق استخدمنا:
int ---------- Keyword
int ---------- Integer data type.
int ---------- Declaration
MyVaraible ---------- Variable’s constant.
=0 القيمة الأفتراضية
(راجع الكلمات السابقة بما سبق شرحه)
هناك انواع مختلفة من رموز البيانات :
*اعداد صحيحة int
*اعداد حقيقية(عشرية) double
*حروف char
*الوان color
*السلسلة النصية string
*قيم منطقية(صح وخطأ) bool
*التاريخ datetime
1- الأعداد الصحيحة (int) :
الأعداد الصحيحة هي اعداد يمكن ان تبدأ بأشارتي - او + وتأخذ صور الأرقام من صفر الى 9 , ويتم حجز 4 بايت للقيمة الواحدة , وتتراوح قيمها بين -2147483648 الى +2147483648
مثال:
كود PHP:
12, 3, 2134, 0, -230
ونستخدم int لننشئ متغير قيمه تكون اعداد صحيحة كما اسلفنا
مثال:
كود PHP:
int intInteger = 0;
int intAnotherIntger = -100;
2- الأعداد العشرية (double) :
وهي اعداد تحتوي على كسور عشرية مثل 1.0002 عكس الأعداد الصحيحة التي لا تحتوي على فواصل.
وهي تشبه الأعداد الصحيحة بالنسبة للأشارات ولكن اكبر في المساحة المحددة من الذاكرة لها اذ تأخذ قرابة 8 بايت.
ونستخدم double لننشئ متغيرا عشريا
3- الحروف (char) :
هذه الكلمة تحتوي على 256حرف ابجدي معروف والأشارات المختلفة ولوحة الأرقام (اي انه كل ما يمثل لوحة المفاتيح لجهازك)
القيم لهذا الرمز يجب ان توضع بين قوسين مفردين ' ' .
مثال :
كود PHP:
'a' , '$' , 'Z'
هذا الرمز لا يأتي منفردا وانما نستخدم الرمز int السابق ذكره لننشئه .
مثال:
كود PHP:
int chrA = 'A';
int chrB = '$';
(لاحظ انها حروف اي انها لن تدخل في عمليات حسابية وانما فقط تخرج اسماء او ما شابه)
لاحظ ان الكلمات المحجوزة في لغة MQL4 لا يمكن وضعها كقيمة لهذا الرمز فسيقرئها الكومبيوتر ككلمات محجوزة وليس كقيمة يتم التعامل معها , ولهذا يوجد هناك ما يسمى بالحروف الخاصة Special Characters وظيفتها اننا لو اردنا ان نطبع كلمة ما وصادف انها تشبه احدى الكلمات المحجوزة فيمكن استخدام هذه الحروف الخاصة للتمييز بينهم واخبار الكومبيوتر انها قيم وليست كلمات محجوزة.
مثال :
كود PHP:
int chrB = '\n'; //new line
هنا طبعنا سطر جديد في نتائج البرنامج
وهذه قائمة بالحروف الخاصة:
كود PHP:
carriage return r
new line n
horizontal tab t
reverse slash
single quote
double quote "
hexadecimal ASCII-code \xhh
(سيتم التعمق فيها مع الدروس القادمة لمن لم يستوعبها جيدا والكلام على كل الرموز وليس هذا فقط)
4- الألوان (color) :
رمز الألوان هو رمز خاص بلغة MQL4 فقط ووظيفته انه الرمز الذي يقوم بتخزين الألوان التي تظهر على الشارت من مؤشرات او شموع او حتى اكسبرتات ويتم تغييرها من الخصائص الخارجية لأي مؤشر او اكسبيرت.
يمكننا وضع الألوان كقيم في المتغيرات الخاصة بها بثلاثة طرق يمكنك اختيار ايا منها:
a- وضعها كأسماء الوان عادية مثل ازرق blue , احمر red ... الخ. ( وهي الطريقة الأسهل)
b- وضعها كأرقام صحيحة ( ويمكنك ان تاتي بأرقام الأوان من اي برنامج رسم على جهازك وخاصة الفوتوشوب)
c- بشفرتها الخاصة بلغة الميتا ( كل لون له شفرة خاصة به ويمكن ان تستمدها ايضا من الفوتوشوب)
أمثلة لشفرات الألوان:
كود PHP:
C'128,128,128' // gray
C'0x00,0x00,0xFF' // blue
// named color
Red
Yellow
Black
// integer-valued representation
0xFFFFFF // white
16777215 // white
0x008000 // green
32768 // green
ونستخدم الرمز color لننشئ متغيرا لونيا
مثال:
كود PHP:
color clr1= Red;
color clr1= C'128,128,128' ;
color clr1=32768;
5- التاريخ (datetime) :
هذا الرمز خاص ايضا بلغة MQL4 ويتميز بها , وهو يخزن بيانات التاريخ والوقت .
تخزن قيم هذا الرمز باستخدام الكلمة المحجوزة D ووضع التاريخ بعدها بين قوسين مفردين ' ' , وبين القوسين نكتب سطرا مكون من 6 اجزاء : السنة , الشهر , اليوم , الساعة , الدقيقة , الثانية .
مثال:
كود PHP:
D'2004.01.01 00:00' // New Year
D'1980.07.19 12:30:27'
D'19.07.1980 12:30:27'
D'19.07.1980 12' //equal to D'1980.07.19 12:00:00'
D'01.01.2004' //equal to D'01.01.2004 00:00:00'
نستخدم الرمز datetime لننشئ متغيرات التاريخ والوقت.
مثال:
كود PHP:
datetime dtMyBirthDay= D'1972.10.19 12:00:00';
datetime dt1= D'2005.10.22 04:30:00';
6- القيم المنطقية (bool) :
رمز المنطقية يأخذ قيمتين فقط هما صح (true) او خطأ (fulse). او نظرائهم الرقميين الصفر والواحد.
نستخدم bool لننشئ المتغيرات المنطقية ( مثلا لو اني اعطيت لخاصية في الكسبيرت مثل ادارة راس المال القيمة true سيقوم بتشغيلها والعكس)
مثال:
كود PHP:
bool I = true;
bool bFlag = 1;
bool bBool=FALSE;
7- السلسلة النصية (str) :
هذا الرمز عبارة عن سلسلة من الحروف او النصوص تكتب بين الأقواس الثنائية " " .
هذه السلسلة من الحروف تنفذ واحدة بعد الأخرى وبعد أخر حرف من السلسلة تأتي بعدها القيمة NULL ليتم تجاهل اي قيم تأتي بعد ذلك .
*ما هي NULL ؟
** هي قيمة خاصة يتم وضعها لتحدد نهاية هذه السلسلة النصية .
في الصورة تمثيل بسيط لسلسلة نصية " hello "
هذا الرمز محدد له 255 حرف وان زاد عن ذلك يطلق تحذير بوجود خطأ برمجي بزيادة عدد الحروف المسموح بها.
نستخدم الرمز string لننشئ متغير سلسلة نصية .
مثال:
كود PHP:
string str1 = "Hello world1, with you coders guru”;
string str2 = "Copyright © 2005, "Forex-tsd forum\"."; //Notice the use of (") character.
string str3 = "1234567890";
- 07-01-2012, 08:41 PM #23
بسم الله الرحمن الرحيم
مرحبا بكم في الدرس الثالث ... العمليات والتعبيرات في لغة MQL4 .
* ماذا نعني بكلمتي العمليات Operations والتعبيرات Expressions ؟
انتم تعرفون ماهي العمليات Operations , لو اخبرتكم ان ( + , - , * , / ) هي العمليات الرياضية الأساسية , ستتذكر على الفور ماذا نعني بالعمليات.
حسنا , الأن عرفنا ما هي العمليات Operations , فما هي التعبيرات Expressions اذن ؟
التعبيرات Expressions هي الجمل البرمجية المتكونة من العمليات Operations والمعرفات Identifiers (هل تتذكرها ؟ لو لم تتذكرها راجع الدرس الأول Syntax ).
دعونا نرى مثالا:
كود PHP:
x = (y*z)/w;
w , z , y and x معرفات identifiers
* , / , = عمليات operators
السطر كله عبارة عن تعبير expression
عندما تتحد التعبيرات expressions فهم يشكلون جملة statement
وعندما تتحد الجمل statements فهم يشكلون وظيفة function
وعندما تتحد الوظائف functions فهم يشكلون البرنامج program.
سنتكلم في هذا الدرس عن انواع العمليات المستخدمة في لغة MQl4 .
دعونا نبدأ بأهم العمليات الرياضية :
1- العمليات الحسابية Arithmetical operators :
هناك 9 عمليات حسابية في لغة MQL4 .
وهذه قائمة بهم :
+ .. عملية الجمع .. مثال ( A=B+C ) .. اجمع B مع C وانسب الناتج الى A
- .. عملية الطرح .. مثال ( A=B-C ) .. اطرح C من B وانسب الناتج الى A
* .. عملية الضرب .. مثال (A=B*C ) .. اضرب B في C وانسب الناتج الى A
/ .. عملية القسمة .. مثال (A=B/C ) .. اقسم B على C وانسب الناتج الى A
+ - .. عملية تغيير الأشارة .. مثال (A=-A ) .. حول اشارة A من الموجب الى السالب
% .. عملية باقي القسمة .. مثال ( A=B%C ) .. اقسم Bعلى C وباقي القسمة انسبه الى A
++ .. عملية الزيادة .. مثال ( ++A ) .. قم بزيادة المتغير A رقم 1 (بمعنى ان كان A يساوي 1 اجعله يساوي 2)
-- .. عملية النقصان .. مثال ( --A ) .. انقص رقم 1 من المتغير A (بمعنى ان كان A يساوي 2 اجعله يساوي 1)
ملاحظة : لا يمكن اجتماع عمليات الزيادة ++ والنقصان -- مع بقية العمليات في تعبير واحد.
مثلا لا يمكننا كتابة هذا الكود ( كود خاطئ):
كود PHP:
A=(B++)*5;
ولكن يمكنك كتابته بطريقة صحيحة هكذا :
كود PHP:
A++;
B=A*5;
2- عمليات المساواة Assignment operators :
هدف اي تعبير expression هو اخراج نتيجة ما , وعمليات المساواة هي الأداة التي تقوم بهذه الوظيفة .
مثال:
كود PHP:
A = B * C;
هنا حاصل ضرب B مع C جاء بنتيجة وتم نسبها الى المتغير A.
علامة ( = ) هنا هي عملية المساواة assignment operator.
هناك 11 عملية مساواة في لغة MQL4 سنشرح منهم اهم 6 عمليات منهم (الباقي سيتم الكلام عنهم في الدروس التالية).
وهذه قائمة بهم :
= .. عملية المساواة .. مثال (A=B) .. اجعل A تساوي B
=+ .. عملية المساواة مع الجمع .. مثال (A+=B) .. معناها ان A=A+B
=- .. عملية المساواة مع الطرح .. مثال (A-=B) .. معناها ان A=A-B
=* .. عملية المساواة مع الضرب .. مثال (A*=B) .. معناها ان A=A*B
=/ .. عملية المساواة مع القسمة .. مثال (A/=B) .. معناها ان A=A/B
=% .. عملية المساواة وباقي القسمة .. مثال (A%=B) .. معناها ان A=A%B
3- عمليات المقارنة Relational operators :
عمليات المقارنة هي عمليات تقوم بمقارنة قيمتين وتنتهي بنتيجة من اثنين اما صح TRUE او خطأ FALSE
تماما كأننا نسأل .. هل محمد أطول من علي ؟ .. النتيجة واحدة من اثنين , اما نعم و اما لا .
النتيجة خطأ FALSE ستنتج فقط في حالة ان المقارنة جائت صفر ,, اما TRUE ستنتج من في حالة ان المقارنة جائت بأي قيمة غير الصفر. (صفر معناها هنا ان البرنامج لن ينفذ عملياته وهكذا نعرف ان المعطيات لم تحقق شروط التنفيذ FALSE)
مثال :
كود PHP:
4 == 4; //true
4 < 4; //false
4 <= 4 //true;
هناك 6 عمليات مقارنة في لغة MQL4 .
وهذه قائمة بها:
== .. عملية التطابق .. مثال(A==B) .. معناها اذا تطابقت قيمتي A و B فالنتيجة TRUE والا فهي FALSE
=! .. عملية عدم التطابق .. مثال (A!=B) .. معناها اذا لم تتطابق قيمتي Aو B فالنتيجة TRUE والا FALSE
> .. عملية اصغر من .. مثال (A<B) .. معناها اذا كانت A اصغر من B فالنتيجة TRUE والا FALSE
< .. عملية اكبر من .. مثال (A>B) .. معناها اذا كانت A اكبر من B فالنتيجة TRUE والا FALSE
=> .. عملية اصغر او يساوي .. مثال (A<=B) .. اعتقد معناها واضح
=< .. عملية اكبر من او يساوي .. مثال (A>=B) .. ايضا معناها واضح
4- عمليات منطقية (ادوات العطف) Logical operators :
وهي عمليات تشترط تحقق جميع الشروط او احداها ليعمل البرنامج
لغة MQL4 تستخدم اهم 3 عمليات (هذه العمليات فهمها سهل للغاية وسترى بنفسك)
وهذه قائمة بالعمليات :
&& .. اداة العطف ( و ) .. مثال (A&&B) .. وهنا وجب تحقق قيمتي A وB مع بعضهما
|| .. اداة العطف ( أو ) .. مثال (A||B) .. وهنا يكفي تحقق اي من الشرطين لتنفيذ البرنامج
! .. ليست عملية .. مثال (A!) .. ومعناها انه لا يوجد عملية مطلوبة من المتغير A
5- عمليات أخرى Other operators :
هناك بعض العمليات في لغة MQL4 ولا تتبع اي من الفئات السابقة
a- عملية فهرسة المصفوفات arreys ([])
b- عملية استدعاء الوظائف functions (())
c- عملية ترتيب عناصر الوظيفة function (,)
(سيتم شرحهم بالتفصيل في دروس الدوال والوظائف , فقط عليك ان تتذكرهم كعمليات أخرى)
** اسبقية العمليات :
فرضنا انك وضعت عمليتين جمع وقسمة مثلا لثلاثة ارقام , اي العمليات ستنفذ اولا؟
مثلا 5+6/4 هنا سيحسبها الكومبيوتر بمزاجه الخاص .
حسنا ماذا لو كتبناها هكذا 5+(6/4) , هنا نحن اجبرنا الكومبيوتر ان يحسب داخل القواس اولا ثم يضيف الناتج للخارج.
مثال اخر :
كود PHP:
x + y / 100
x + (y / 100)
في الدرس القادم بأذن الله سنتكلم عن الحلقات والقرارات ( جزء 1)
اراكم على خير مجددا
- 08-01-2012, 01:52 AM #24
متابع بشده معاك واقوم بنقل هذا الشرح المتميز لباقي الاخوه
مشككككوووووووووووورررررررررررررررررر
- 10-01-2012, 04:54 AM #25
Done
- 10-01-2012, 06:49 AM #26
Why the thread " بالتطبيق المباشر تعلم برمجة الإكسبرتات من البدايه حتى الإحتراف" by Mr Dollar is closed. I believe it might help to also post some responses there and get answers and explanation from Mr Dollar
- 10-01-2012, 12:31 PM #27
جزاك الله خير
- 18-04-2012, 01:06 PM #28
جزاك الله كل خير أخى maasa , ولكن لماذا توقف الموضوع !!
لعل المانع خير ان شاء الله .
تقبل تحياتى وتقديـرى
- 19-04-2012, 05:35 AM #29
برنس اليالي يا تيفة
الأكثر زيارة

رد مع اقتباس