![]() |
رد: دورة تعلم البرمجة باحتراف
فنكتب التالي
[PHP] if(fasterEMAprevious<slowerEMAprevious&&fasterEMAp revious1>slowerEMAprevious1) { السهم } if(fasterEMAprevious>slowerEMAprevious&&fasterEMAp revious1<slowerEMAprevious1) { السهم } [/PHP] وكما تم تعريف سابقا السهم الصاعد هو [PHP] CrossUp1 [/PHP] السهم النازل هو [PHP] CrossDown1 [/PHP] الان لكي يقوم البرنامج برسم السهم لابد ان نعطيه قيمة معينة لكي يرسم لنا السهم في هذه القيمة مثلا السهم النازل نرسمه اعلي الشمعة والسهم الصاعد نرسمه اسفل الشمعة |
رد: دورة تعلم البرمجة باحتراف
نترجم ما سبق فتكون الكتابة كالتالي
[PHP] if(fasterEMAprevious<slowerEMAprevious&&fasterEMAp revious1>slowerEMAprevious1) { CrossDown1[i+1]=High[i+1]; } if(fasterEMAprevious>slowerEMAprevious&&fasterEMAp revious1<slowerEMAprevious1) { CrossUp1[i+1]=Low[i+1]; } [/PHP]حيث السهم يضهر علي الشمعة السابقة اما فوق الهاي او تحت اللو لاكن هذا الاضهار للسهم لن يكون واضح جدا لان ممكن الهاي او اللو تكون قريبة جدا من جسم الشمعة فيصبح منضر السهم غير جميل |
رد: دورة تعلم البرمجة باحتراف
شرح ما سبق بالصور
http://www.fx-arabia.com/vb/uploaded...1361537666.jpg نعتبر ان الخط الازرق هو خط الشمعة الحالية يعني الشموع التي خلفه لم تتشكل بعد الشمعة رقم 1 كما موضح والحلقة التكرارية هي i+1 الشمعة رقم 2 كما موضح والحلقة التكرارية هي i+2 اذا لما تتكون اخر شمعة ولم تغلق يقوم المؤشر بالمقارنة بين الشمعة 1 والشمعة 2 حيث يقارن بين الموفينجين في الشمعة 1 والموفينجين في الشمعة 2 اذا تحقق شروط التقاطع سيرسم لنا سهم علي الشمعة رقم 1 هذا هو شرح العمل الذي قمنا به الي الان |
رد: دورة تعلم البرمجة باحتراف
السهم في الرسم للشمعة 1 غير مكتمل للاسف انا اقصد الشمعة
http://www.fx-arabia.com/vb/uploaded...1361538060.jpg |
رد: دورة تعلم البرمجة باحتراف
ماهو الحل لكي يكون اضهار السهم اكثر وضوح
|
رد: دورة تعلم البرمجة باحتراف
سنستخدم متغير اخر هو متوسط قيمة الرنج ل 10 شمعات
ونضهر السهم بدلالته لكي نحسب متوسط الرنج ل 10 شمعات نستخدم التالي [PHP] Range=0; AvgRange=0; for (counter=i ;counter<=i+9;counter++) { AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]); } Range=AvgRange/10; [/PHP] وهذه الحلقة باختصار هي اضافة قيمة الرنج كل مرة الي المتغير AvgRange ثم عند انتهاء اضافة 10 قيم نقسم المجموع علي 10 ونعطي قيمة القسمة الي Range ونستخدمه لاضهار السهم بطريقة جميلة ومتناسقة مع الشموع نغير من سمك السهم كما فعلنا مع الخط والكود النهائي حتي الان سيكون [PHP] #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 Red #property indicator_color2 Blue #property indicator_color3 Yellow #property indicator_color4 Lime #property indicator_width1 2 #property indicator_width2 2 #property indicator_width3 2 #property indicator_width4 2 extern bool showMA=true; double CrossUp1[]; double CrossDown1[]; double FastMA[]; double SlowMA[]; extern int ExtPeriodFastMA = 7; extern int ExtPeriodSlowMA = 15; extern int ExtModeFastMA = 1; extern int ExtModeSlowMA = 1; extern int ExtPriceFastMA = 0; extern int ExtPriceSlowMA = 0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0, DRAW_ARROW, EMPTY); SetIndexArrow(0, 234); SetIndexBuffer(0, CrossDown1); SetIndexStyle(1, DRAW_ARROW, EMPTY); SetIndexArrow(1, 233); SetIndexBuffer(1, CrossUp1); SetIndexStyle( 2, DRAW_LINE ); SetIndexBuffer( 2, FastMA ); SetIndexStyle( 3, DRAW_LINE ); SetIndexBuffer( 3, SlowMA ); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int x,i, counter; double Range, AvgRange; 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++) { if(showMA==true) { FastMA[i] = iMA( NULL, 0, ExtPeriodFastMA, 0, ExtModeFastMA, ExtPriceFastMA, i ); SlowMA[i] = iMA( NULL, 0, ExtPeriodSlowMA, 0, ExtModeSlowMA, ExtPriceSlowMA, i ); } Range=0; AvgRange=0; for (counter=i ;counter<=i+9;counter++) { AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]); } Range=AvgRange/10; double fasterEMAprevious=iMA( NULL, 0, ExtPeriodFastMA, 0, ExtModeFastMA, ExtPriceFastMA, i+1 ); double fasterEMAprevious1=iMA( NULL, 0, ExtPeriodFastMA, 0, ExtModeFastMA, ExtPriceFastMA, i+2 ); double slowerEMAprevious =iMA( NULL, 0, ExtPeriodSlowMA, 0, ExtModeSlowMA, ExtPriceSlowMA, i+1 ); double slowerEMAprevious1 =iMA( NULL, 0, ExtPeriodSlowMA, 0, ExtModeSlowMA, ExtPriceSlowMA, i+2 ); if(fasterEMAprevious<slowerEMAprevious&&fasterEMAp revious1>slowerEMAprevious1) { CrossDown1[i+1]=High[i+1]+ Range*0.5; } if(fasterEMAprevious>slowerEMAprevious&&fasterEMAp revious1<slowerEMAprevious1) { CrossUp1[i+1]=Low[i+1]- Range*0.5; } } return(0); } [/PHP] |
رد: دورة تعلم البرمجة باحتراف
1 مرفق
الان نضيف توقيع بسيط علي المؤشر
وتم التطرق لكيفية اضهار كتابة علي الشارت في الدروس السابقة ونرفقه ex4 لكي نحتفظ بالحقوق الفكرية للمبرمج وهذا تطبيقي للمؤشر الاول http://www.fx-arabia.com/vb/uploaded...1361539811.jpg اتمني ان اري تطبيقاتكم شباب واي استفسار |
رد: دورة تعلم البرمجة باحتراف
نكمل الدورة ان شاء الله
اذا كانت هناك فكرة اي مؤشر لكي ننفذها في الدورة فتفضلوا اخواني بطرحها |
رد: دورة تعلم البرمجة باحتراف
ربى يبارك فيك اخى موفينج
ولى استفسار هل ممكن عمل مؤشر رينج يومى فى نافذة مستقله عن الشارت ويظهر لنا الرينج اليومى لعشر ازاوج مثلا ؟ |
رد: دورة تعلم البرمجة باحتراف
نعم ممكن عمل ذلك
|
الساعة الآن 03:23 PM |
Powered by vBulletin® Copyright ©2000 - 2025
جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com