![]() |
رد: دورة تعلم البرمجة باحتراف
اقتباس:
حسب المؤشر اخي ان كنت تستخدم حلقة تكرارية للمرور بجميع الشموع هنا لن تضع رقم الشمعة بل ستضع قيمة الشمعة 2- لديك خطئ في التحليل [PHP]High[0][/PHP] و [PHP]Low[0][/PHP] تعني هاي الشمعة الاخيرة ولو الشمعة الاخيرة وهي متغيرة مع الوقت الي حد انتهاء الشمعة فمن الافضل عدم استخدام الشمعة الاخيرة وبصفة عامة تفضل الكود مع تغير الشمعة 0 ب 1 و الشمعة 1 ب 2 [PHP] double spread2=High[2]-Low[2]; double spread1=High[1]-Low[1]; double vol2=Volume[2]; double vol1=Volume[1]; if(spread1<spread2&&vol1>vol2) Alert("Hello"); [/PHP] |
رد: دورة تعلم البرمجة باحتراف
شكرا استاذ موفينج افريج علي سرعة رد حضرتك
عندي استفسار تقصد ايه حضرتك بقيمة الشمعة انا كنت عايز احدد انه لو الشمعة الحالية الاغلاق اعلي من السابقة تتم المقارنة او الاغلاق اسفل من السابقة تتم المقارنة...يعني عايز اقارن شمعتين او بارين من نفس الاتجاه ...يعني اقارن اتنين شمعتين صاعدين او اتنين شمعتين هابطين لكن مقارنش شمعة صاعدة بشمعة هابطة.....يا ريت لو بالكود |
رد: دورة تعلم البرمجة باحتراف
اقتباس:
|
رد: دورة تعلم البرمجة باحتراف
moving average
جزاك الله خير سأبدأ من بداية الدروس الى ان اصل للدروس الجديدة |
رد: دورة تعلم البرمجة باحتراف
اقتباس:
علي كل تابعنا في الدروس القادمة ساضع حلقة تكرارية علي الشموع ومنها يمكنك ان تقارن اي شموع مثل ما تريد |
رد: دورة تعلم البرمجة باحتراف
اقتباس:
|
رد: دورة تعلم البرمجة باحتراف
اقتباس:
|
رد: دورة تعلم البرمجة باحتراف
السلام عليكم هد تطبيق بسيط علي الحلقة ولكن عندي استفسار كل ما يتحرك السعر تتكرر الحلقة الاسم ثلاتة مرات؟
[PHP]string A="AYOOB"; string B=""; extern int h=3;[/PHP] [PHP] { for(int i=0;i<h;i++) { B=B+A; } Comment(B); return(0); }[/PHP] http://www.fx-arabia.com/vb/uploaded...1358957251.png |
رد: دورة تعلم البرمجة باحتراف
اقتباس:
نعم اخي كل ما يتحرك السعر تعيد الدالة نفسها |
رد: دورة تعلم البرمجة باحتراف
اقتباس:
http://i.istockimg.com/file_thumbvie...rt-student.jpg الواجب الأول :1 (77): [PHP] //+------------------------------------------------------------------+ //| moe.mq4 | //| Copyright 2013, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2013, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_chart_window //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { comment("thanks for your efforts"); return(0); } //+------------------------------------------------------------------+ [/PHP] اللهم ارزق والد ووالدة اخينا moving average الفردوس الاعلى انك على كل شيئ قدير |
رد: دورة تعلم البرمجة باحتراف
ندخل في اهم شئ في برمجة المؤشرات
دالة تكرار علي كل الشموع تكتب هذه الدالة داخل الدالة start وهي دالة for ولاكن باعددات معينة |
رد: دورة تعلم البرمجة باحتراف
هذه الدالة ستار
[PHP] int start() { return(0); } [/PHP] كل عملنا سيكون هنا لما نقول نعرف متغير خارج الدالة start يعني خارج هذه الدالة بالنسبة للحلقة for التي ستمر علي كل الشموع سنكتبها داخل الدالة ستار نكتبها بدون قيمة ابتدائية ولا نهائية تكون كالتالي [PHP] int start() { for(i = ; i ; i) { } return(0); } [/PHP] |
رد: دورة تعلم البرمجة باحتراف
سؤال قبل كتابة الكود
كيف ستمر for علي كل الشموع ياريت نسمع ارائكم |
رد: دورة تعلم البرمجة باحتراف
يتم اخد قيمة الشمعة رقم 0 الي اخر شمعة موجودة علي الشارت
|
رد: دورة تعلم البرمجة باحتراف
اقتباس:
القيمة النهائية ل i هي عدد شموع الشارت والزيادة في i هي 1 اخذنا الزيادة في i هي 1 لان الشموع تاخذ الترتيب 0 1 2 3 4 5 6 7 وهكذا |
رد: دورة تعلم البرمجة باحتراف
تصبح الكتابة السابقة للحلقة كالتالي
[PHP] int start() { for(i=0;i<x;i++) { // حيث x //تمثل عدد الشموع علي الشارت } } [/PHP] |
رد: دورة تعلم البرمجة باحتراف
كيف نعرف عدد الشموع علي الشارت ؟؟؟؟
لمعرفة عدد الشموع علي الشارت نستخدم دالة تحسب لنا عدد الشموع الموجودة تلقائيا هذه الدالة هي [PHP] Bars [/PHP] اذا نحسن الكتابة السابقة فتصبح [PHP] int start() { int x=Bars; int i; For(i=0;i<=x;i++) { } return(0); } [/PHP] |
رد: دورة تعلم البرمجة باحتراف
لاكن لكي تصبح اللحلقة سريعة لا نعيد العمليات التي قمنا بها من قبل
قنستخدم معرف اخر يضهر لنا الشمعات التي حسبت من قبل هذا المعرف يكتب كالتالي [PHP] int counted_bars=IndicatorCounted(); [/PHP] ولكي تبقي الحلقة فور سريعة وسلسة خصوصا اننا نتعامل مع تغيرات سريعة جدا للسعر سنمررها فقط علي الشموع الجديدة وبما ان لدينا كل الشموع والشموع التي حسبت من قبل فالشموع الجديدة هي نتيجة الطرح نحسن الكتابة السابقة فتصبح [PHP] int start() { int counted_bars=IndicatorCounted(); int x=Bars-counted_bars; int i; For(i=0;i<=x;i++) { } return(0); } [/PHP] قربنا من كتابة النواة لاي مؤشر |
رد: دورة تعلم البرمجة باحتراف
هنا بقي لنا نناقش حلات الخطئ التي ممكن ان تصادفنا
اهم حالة هي عدد الشموع المحسوبة غير موجود هنا نخرج لا ننفذ شئ ونترجم هذه الكتابة الي [PHP] if(counted_bars<0) return(-1); [/PHP] واذا كانت عدد الشموع المحسوبة اكبر من 0 و تشكلة شمعة جديدة هنا يعني ان اخر شمعة قد حسبت فننقص 1 لكي نتعامل مع الجديد فقط الترجمة البرمجية [PHP] if(counted_bars>0) counted_bars--; [/PHP] نحسن الكتابة النهائية للحلقة for التي تمر علي كل الشموع فتصبح [PHP] int start() { int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; int x=Bars-counted_bars; For(int i=0;i<=x;i++) { } return(0); } [/PHP] هذه الكتابة الاخيرة مهمة جدا ولن نجد مؤشر لا يحتوي عليها وهي اساس كل العمل وكل ما سياتي بعدها سهل اذا فهمنا كيف تتنقل هذه الحلقة بين الشموع في التالي شرح كيف تتنقل الحلقة وماهي العلاقة بين i والشمعة الضاهرة علي الشارت |
رد: دورة تعلم البرمجة باحتراف
ناتي الي اهم دروس الدورة
كيف نمثل افتتاح واغلاق وهاي ولو الشمعة الحالية + الشمعة السابقة في داخل الحلقة التكرارية for اتفقنا علي الشكل النهائي للحلقة التكرارية وسنستخدمه كما سبق لنا وكتبناه الان للشمعة الحالية 4 متغيرات نريد ان نعرفها الشمعة السابقة 4 متغيرات نريد ان نعرفها اذن يلزمني 8 متغيرات خارجية لاضع فيها القيم المختلفة كيف احدد نوع هذه المتغيرات يحدد نوع هذه المتغيرات خسب المتغير الاساسي الذي سنضعه فيها مثلا الافتتاح هو متغير من اللنوع [PHP] double [/PHP] فيلزمني تعريف المتغير الذي ساضع فيه الافتتاح علي انه [PHP] double [/PHP] وهكذا بالنسبة للبقية كما سبق وذكرنا يمكن التصريح بالافتتاح بطريقتين اما [PHP] Open[0] [/PHP] او [PHP] iOpen(0,0,0) [/PHP] وشرحنا كل الارقام داخل الكتابه الان نحن في داخل حلقة تكرارية بدون اي تعقيدات سنعمل كالتالي الشمعة الحالية هي في الترقيم الطبيعي تساوي 0 داخل الحلقة سنكتبها بدلالة i فقط الشمعة السابقة هي في الترقيم الطبيعي تساوي 01 داخل الحلقة سنكتبها بدلالة i+1 فقط وهكذا تمرين اكتب المتغيرات 4 للشمعة الحالية والسابقة بدلالة i بطريقة التصريح 1 و 2 |
رد: دورة تعلم البرمجة باحتراف
حل التمرين السابق
الطريقة 1 [PHP] int start() { int x,i; int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; x=Bars-counted_bars; for(i =0 ; i<x ; i++) { //من اجل الشمعة 0 double open0=Open[i]; double close0=Close[i]; double high0=High[i]; double low0=Low[i]; //من اجل الشمعة 1 double open1=Open[i+1]; double close1=Close[i+1]; double high1=High[i+1]; double low1=Low[i+1]; } return(0); } [/PHP] الطريقة 2 [PHP] int start() { int x,i; int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; x=Bars-counted_bars; for(i =0 ; i<x ; i++) { //من اجل الشمعة 0 double open0=iOpen(0,0,i); double close0=iClose(0,0,i); double high0=iHigh(0,0,i); double low0=iLow(0,0,i); //من اجل الشمعة 1 double open1=iOpen(0,0,i+1); double close1=iClose(0,0,i+1); double high1=iHigh(0,0,i+1); double low1=iLow(0,0,i+1); } return(0); } [/PHP] |
رد: دورة تعلم البرمجة باحتراف
بعد ان عرفنا كيف نكتب الشمعة الحالية والسابقة واي شمعة نريد العمل عليها
سناتي الي مقارنة الشموع ونستعمل في هذه الحالة طرق المقارنة التي تطرقنا الها سابقا مثلا نريد مقارنة الحجم الكلي للشمعة السابقة التي تحمل الرقم 1 يعني high - low نقارنة بالشمعة التي تحمل الرقم 2 انتضر مشاركة اكثر منكم شباب |
رد: دورة تعلم البرمجة باحتراف
حل المطلوب السابق يكون كالتالي
1 الحل باستخدام كتابة علي الشارت فقط [PHP] int start() { int x,i; int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; x=Bars-counted_bars; for(i =0 ; i<x ; i++) { //من اجل الشمعة 1 double spread1=iHigh(0,0,i+1)-iLow(0,0,i+1); //من اجل الشمعة 2 double spread2=iHigh(0,0,i+2)-iLow(0,0,i+2); // نقارن هنا بين حجم الشمعتين if(spread1>spread2) Comment(" bar1 > bar2"); else if(spread1<spread2) Comment(" bar1 < bar2"); else Comment("bar1 = bar2"); } return(0); } [/PHP] |
رد: دورة تعلم البرمجة باحتراف
وصلنا الي استخدام تنبيه بواسطة الدالة
[PHP] Alert [/PHP] الصيغة الهامة للدالة هي [PHP] Alert(); [/PHP] يمكننا وضع داخل الدالة متغير او متغيرين او اكثر يفصل بين كل متغير والاخر فاصلة يمكن ان ياخذ المتخير اي نوع من الانواع المذكورة سابقا مثال للدالة مع تنبيه [PHP] Alert("hello"); [/PHP] |
رد: دورة تعلم البرمجة باحتراف
حل المثال السابق باستخدام الدالة
[PHP] for(i =0 ; i<x ; i++) { //من اجل الشمعة 1 double spread1=iHigh(0,0,i+1)-iLow(0,0,i+1); //من اجل الشمعة 2 double spread2=iHigh(0,0,i+2)-iLow(0,0,i+2); // نقارن هنا بين حجم الشمعتين if(spread1>spread2) Alert(" bar1 > bar2"); else if(spread1<spread2) Alert(" bar1 < bar2"); else Alert("bar1 = bar2"); } return(0); } [/PHP] لاكن هنا يبقي لدينا مشكل وهو تكرار التنبيه طالما الشرط محقق وسيسبب لنا ازعاج كبير ماهو العمل برايكم شباب |
رد: دورة تعلم البرمجة باحتراف
الله ينورك عليك استاذنا الحبيب
|
رد: دورة تعلم البرمجة باحتراف
جزاك الله كل خير أخي موفنج عل هذا الموضوع المهم
يقول نبينا عليه الصلاة والسلام : من سلك طريقا يلتمس فيه علما سهل الله له به طريقا إلى الجنة فأنت مأجور إن شاء الله فلا تزعل لو لم تجد مشاركة واسعة من الأعضاء وخصوصا في مواضيع البرمجيات لا تيأس من قلة المشاركات وواصل فطالب العلم سيبحث عن موضوعك اليوم وغدا لأنه يحتاجه وأنت جعلك الله سببا في حاجة أخيك هذا أنا شخصيا كنت أنفر من البرمجة إجمالا لأني كنت أضنها متعبة وطريقها طويل وهي تهم المتخصصون في البرامج فقط لكن لما قرأت موضوعك وطريقتك السلسة في إيصال المعلومة وصبرك في انتضار تطبيقات الإخوة بدأت أستأنس بالموضوع وأتابع عبر الصفحات فكلمة شكرا لا تفيك حقك فجزاك الله خير عن الجميع و فتح لك أبواب الخير وغفر لك ولوالديك ولجميع المسلمين وعذرا علي الاطالة وتقبل تحياتي |
رد: دورة تعلم البرمجة باحتراف
اقتباس:
اقتباس:
بارك الله فيكم اخواني |
رد: دورة تعلم البرمجة باحتراف
كيف نتخلص من التنبيه المستمر
نفكر كمبرمجين لابد ان يتحقق الشرط مرة واحدة فقط يعمل تنبيه ثم يراجع الشرط فيجده غير محقق لا يعمل تنبيه حتي يتحقق مرة اخري فيعيد التنبيه من الوسائل المستخدمة لهذا الغرض والتي استخدمها شخصيا الربط بوقت الشمعة كيف ذلك يعني اضع متغير ما ولا اعطيه اي قيمة اضيف في شروط تنفيذ التنبيه ان قيمة هذ المتغير لا تساوي قيمة وقت الشمعة في اول الامر سينفذ لنا التنبيه لان قيمة المتغير 0 لم نعطه قيمة من قبل بعد عمل اول تنبيه نعطي هذا المتغير قيمة تساوي وقت الشمعة الحالي تعيد الحلقة نفسها وتراجع الشروط تجد ان المتغير اصبح يملك نفس قيمة وقت الشمعة الحالي فلا تنفذ التنبيه مرة اخري واجب لو فهمت الكتابة فوق ترجمها الي لغة MQL4 |
رد: دورة تعلم البرمجة باحتراف
بارك الله فيك وغفر لك ولوالديك هذه المرة الاولى التي انتبه للموضوع فيها عمل ممتاز انا مازلت في الصفحة الخامسة لكن ان شاء اله ستجدني هنا واياك ان تتوقف عن الشرح قبل ان تعطي كل ما عندك بالتوفيق وساحضر مجموعة استفسارات لاني كذلك غير محترف برمجة رغم اني اقوم بعمل برمجة لبعض الاكواد لكن اطمح للاحتراف لاستطيع تطبيق كل ما يدور في راسي بشكل حرفي بالتوفيق يا صديقي |
رد: دورة تعلم البرمجة باحتراف
ننتقل الي البرمجة الفعلية للمؤشرات
ونبدء علي بركة الله بمؤشر تقاطع الموفينج مع اضهار سهم لحضة التقاطع + تنبيه صوتي مع امكانية التحكم بكل اعدادات الموفينج |
رد: دورة تعلم البرمجة باحتراف
أخي الكريم , متى تبدأ بموضوع برمجة الاكسبرت؟ تحياتي |
رد: دورة تعلم البرمجة باحتراف
اقتباس:
ارجو لك التوفيق |
رد: دورة تعلم البرمجة باحتراف
اقتباس:
اقتباس:
|
رد: دورة تعلم البرمجة باحتراف
نبدء علي بركة الله
اولا كيف يمكننا منادات خط الموفينج افريج في MQL4 الموفينج هو خطئ تمثل قيمته متوسط السعر لدور نختاره من اعدادات الموفينج يعني هذا المتوسط بالضررورة سيكون عدد من نوع double اول شئ نحجز متغير من نوع double لنضع فيه الموفينج الذي نريده ويكون التصريح بالموفينج كالتالي [PHP] double mov=iMA( string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift) [/PHP] وفيما يلي سنشرح كل برمتر وحده |
رد: دورة تعلم البرمجة باحتراف
الحد الاول
[PHP] string symbol [/PHP] ويعني متغير من توع string وهنا يمكننا وضع اسم الشارت الذي نريد العمل عليه اذا كنا نريد عمل مؤشر يشتغل علي EURUSD ساضع مكان اول حد الكتابة التالية [PHP] double mov=iMA( "EURUSD", int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift) [/PHP] اذا كنت اريد عمل مؤشر يقرء البينات من اي شارت يوضع علية ساجع اول حد = 0 او NULL كما شرحت في اول الدروس [PHP] double mov=iMA( NULL, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift); [/PHP] |
رد: دورة تعلم البرمجة باحتراف
الحد الثاني
[PHP] int timeframe [/PHP] وهو متغير من نوع صحيح تحمل قيمته الوقت الذي نريد العمل عليه وهو مشروح في اول الدروس نفضل دائما وضعه 0 لكي يعمل علي اي شارت يوضع عليه |
رد: دورة تعلم البرمجة باحتراف
الحد الثالث
[PHP] int period [/PHP]متغير من نوع صحيح وهذا الحد نقصد به الدور الذي نريد العمل به مثلا موفينج 50 يعني الدور هنا 50 ونضعه في هذا المكان لكي نجعل الدور متغير خارجي يمكن التحكم به من اعددات نعرفه خارج الدالة start كالتالي [PHP] extern int PErioD=50; [/PHP]ونضعه في دالة مندات الموفينج كالتالي [PHP] double mov=iMA( NULL, 0, PErioD, int ma_shift, int ma_method, int applied_price, int shift); [/PHP]هل كل شئ واضح الي الان ؟؟؟؟ |
رد: دورة تعلم البرمجة باحتراف
نكمل علي بركة الله
|
رد: دورة تعلم البرمجة باحتراف
الحد الرابع
[PHP] int ma_shift [/PHP] متغير من نوع int هذا المتغير نقصد به الازاحة لخط الموفينج في اغلب الاحيان نتركه 0 اذا وضعنا مثلا 2 سنجد ان خط الموفينج تحرك بمسافة شمعتين الي الامام واذا وضعناه -3 مثلا نجد ان الموفينج تحرك الي الخلف بمسافة 3 شنعات في اغلب الاحيان لا نحتاج تعريف خارجي لهذا المتغير وهو ياخذ الرقم 0 ويصبح الكود السابق كالتالي [PHP] double mov=iMA( NULL, 0, PErioD, 0, int ma_method, int applied_price, int shift); [/PHP] |
الساعة الآن 05:40 PM |
Powered by vBulletin® Copyright ©2000 - 2025
جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com