النتائج 1 إلى 15 من 192
الموضوع: أصنع أكسبرتك بنفسك
- 07-11-2011, 09:31 AM #1
أصنع أكسبرتك بنفسك
بسم الله الرحمن الرحيم
سأقوم بهذا الموضوع بشرح طريقة صنع أكسبرت بلغة MQL4 بطريقة متدرجة من الأكواد السهلة الي الصعبة وبهذه الطريقة ستتمكن من أتقان صنع الأكسبرتات أن شاء الله
- 07-11-2011, 09:39 AM #2
- 07-11-2011, 09:50 AM #3الدرس الأول (الدوال الرئيسية)
وهذه مهمتها أن تعمل ببداية وضع الأكسبرت علي التشارت ثم تتوقف بعدهاكود:int init() { //---- //---- return(0); }
مثال : أصنع أكسبرت يظهر صندوق مكتوب به (( بدأت الدالة الأولي بالعمل)) ثم يتوقف بعدها.
كود:int init() { Alert("بدأت الدالة الأولي بالعمل"); return(0); } int start() { return(0); }
حيث نستعمل الكود
كود:Alert("");
آخر تعديل بواسطة Ram22 ، 07-11-2011 الساعة 09:55 AM
- 07-11-2011, 10:18 AM #4كود:
int deinit() { return(0); }
مثال: أصنع أكسبرت يظهر صندوق مكتوب عليه (الأكسبرت نزع من التشارت) عند نزعه.
كود:int init() { return(0); } int deinit() { Alert("الأكسبرت نزع من التشارت"); return(0); } int start() { return(0); }
كود://+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+
- 07-11-2011, 10:34 AM #5
للحين كلو واضح
- 07-11-2011, 10:36 AM #6
بارك الله فيك واتمنى ان تشرح كيف بالبرمجه نستخدم الادوات الموجوده بالميتاتريدر
- 07-11-2011, 10:51 AM #7كود:
int start() { //---- //---- return(0); }
مثال : أصنع أكسبرت يظهر لنا الأسعار بأستمرار ولا يتوقف الصندوق ويظهر رسالة بالبدية مكتوب بها ((سيبدأ الأكسبرت بمراقبة الأسعار )) وعند نزعه يظهر رسالة مكتوب بها ((نزع بنجاح))
كود:int init() { Alert("سيبدأ الأكسبرت بمراقبة الأسعار"); return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- Alert("نزع بنجاح"); //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- Alert(Bid); //---- return(0); } //+------------------------------------------------------------------+
كود:Alert(Bid);
- 07-11-2011, 11:03 AM #8
- 07-11-2011, 12:38 PM #9
ماشاء الله عليك اخ رامى
متابع معك اخى الكريم
وان شاء الله تعالى بهذه الطريقه العمليه سوف نتمكن من هذه اللغه
متابع معك اخى الكريم
تقبل ودى
- 07-11-2011, 01:52 PM #10
أنواع البيانات
عندما نريد أن نعطي بيانات للأكسبرت فتوجد عدة أنواع للبيانات مثل:
1-أعداد صحيحة.
2-أعداد حقيقية.
3-كتابة نصية.
ويمكننا أن نخزن هذه البيانات ثم نستعملها بالبرنامج ونقوم بأعطاء أمر للأكسبرت بأن يخزنها علي رمز محدد نحن نختاره بشرط الا يكون محجوز مثل الكلمة المحجوزة Bid .
حيث int أرقام صحيحة مثل 3 و 4 و 7 و555
double أرقام حقيقية مثل 2.3 و 4.154 و 4.0 و 4 و 2.3256
string كتابة مثل نصية "الأكسبرت" و "مؤشر"
datetime التاريخ مثل '24.08.2011'D
color الوان مثل 'Red' 'Green'
واذا أردنا أن نعدل علي هذه البيانات بالبداية قبل عمل الأكسبرت فنضع الرمز extern قبلهاكود:int segma=4; double G=2.3526; bool G=true; string W="الأكسبرت"; datetime R=D'20.10.2011'; color RR="Red";
كود:extern int segma=4; extern double G=2.3526; extern bool G=true; extern string W="الأكسبرت"; extern datetime R=D'20.10.2011'; extern color RR="Red"; int init() { return(0); } int deinit() { //---- //---- return(0); } int start() { //---- //---- return(0); }
- 07-11-2011, 02:39 PM #11
متابع اخى رامى
وكل شىء مفهوم الى الان
- 07-11-2011, 02:44 PM #12
- 07-11-2011, 03:05 PM #13
مثال: أعمل أكسبرت تقوم بالتحكم بأعداداته ويعطي صندوق وأنذار به جملة ببداية دخوله التشارت وعند نزعه من التشارت وتستطيع أن تكتب هذه الجملة من المتغيرات. وأن يقوم الأكسبرت بأظهار صندوق يظهر بأستمرار مكتوب به الوقت
كود:extern string R1="وضع الأكسبرت علي التشارت"; extern string R2="نزع من التشارت"; int time1; int time2; int init() { //---- Alert(R1); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { Alert(R2); //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- time1=Hour(); time2=Minute(); Alert(time1+":"+time2+":"+"الوقت الأن هو"); return(0); } //+------------------------------------------------------------------+
الوقت الأن (ساعة فقط)
كود:Hour()
كود:Minute()
آخر تعديل بواسطة Ram22 ، 07-11-2011 الساعة 03:11 PM
- 07-11-2011, 03:49 PM #14
اخي الكريم انا الان في مرحلة انتاج اكسبيرت فكرته منطقيه تعمل على المضاعفات سيكون هديه مني لكم ولكن بعد وصولي معك للمرحله التي تنقصني وهي كيف بالبرمجه استعمال الادوات الموجوده مثل القنوات الموجوده بالميتا اساسا وايضا كيف استخدم مؤشر موجود من خلال عملية import والتعامل مع مكوناته بشكل مستقل ولك شكري وتقديري على الجهد المبذول منك
كل عام وانت بالف خير وجزاك الله خيرا
- 07-11-2011, 04:13 PM #15الجملة الشرطية والعمليات الحسابية
لو أردنا أن نعطي للأكسبرت رقم حقيقي ونجعله يسأل : هل هذا الرقم أكبر من 1.3 ؟
فسنقول
كود:double G=1.1; if(G>1.3) { Alert("نعم"); } else { Alert("لا"); }
ولوأردنا أن نعطي للأكسبرت رقم حقيقي ونجعله يسأل : هل لو جمع هذا الرقم مع سعر الأغلاق للشمعة السابقة ثم قسم الناتج علي 1.1 سيكون أصغر من أو يساوي 1.7 ؟
كود:double G=0.1204; double Sum; Sum=(G+Close[1])/1.1; if(Sum<=1.7) { Alert("نعم"); } else { Alert("لا"); }
وهل p1 تساوي 7 أو 4؟
الحالة الأولي
كود:double R1=0.1204; double p1,p2; p1=((R1/4)*2) - 1; p2=(Open[0]+Close[2])/High[3]; if(p1==1.5&&p2!=8.1) { Alert("نعم"); } else { Alert("لا");}
كود:double R1=0.1204; double p1,p2; p1=((R1/4)*2) - 1; p2=(Open[0]+Close[2])/High[3]; if(p1==7||p2==4) { Alert("نعم"); } else { Alert("لا"); }