اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex

اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex (https://fx-arabia.com/vb/index.php)
-   منتدى المؤشرات و الاكسبيرتات (https://fx-arabia.com/vb/forumdisplay.php?f=6)
-   -   دورة تعلم البرمجة باحتراف (https://fx-arabia.com/vb/showthread.php?t=27491)

MOVING_AVERAGE 22-02-2013 03:41 PM

رد: دورة تعلم البرمجة باحتراف
 
فنكتب التالي

[PHP]
if(fasterEMAprevious<slowerEMAprevious&&fasterEMAp revious1>slowerEMAprevious1)
{
السهم
}

if(fasterEMAprevious>slowerEMAprevious&&fasterEMAp revious1<slowerEMAprevious1)
{
السهم
}
[/PHP]

وكما تم تعريف سابقا

السهم الصاعد هو

[PHP]
CrossUp1
[/PHP]

السهم النازل هو

[PHP]
CrossDown1
[/PHP]

الان لكي يقوم البرنامج برسم السهم لابد ان نعطيه قيمة معينة لكي يرسم لنا السهم في هذه القيمة

مثلا السهم النازل نرسمه اعلي الشمعة

والسهم الصاعد نرسمه اسفل الشمعة

MOVING_AVERAGE 22-02-2013 03:44 PM

رد: دورة تعلم البرمجة باحتراف
 
نترجم ما سبق فتكون الكتابة كالتالي

[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]حيث السهم يضهر علي الشمعة السابقة اما فوق الهاي او تحت اللو

لاكن هذا الاضهار للسهم لن يكون واضح جدا

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

MOVING_AVERAGE 22-02-2013 03:58 PM

رد: دورة تعلم البرمجة باحتراف
 
شرح ما سبق بالصور

http://www.fx-arabia.com/vb/uploaded...1361537666.jpg


نعتبر ان الخط الازرق هو خط الشمعة الحالية

يعني الشموع التي خلفه لم تتشكل بعد

الشمعة رقم 1 كما موضح والحلقة التكرارية هي i+1

الشمعة رقم 2 كما موضح والحلقة التكرارية هي i+2

اذا لما تتكون اخر شمعة ولم تغلق يقوم المؤشر بالمقارنة بين الشمعة 1 والشمعة 2

حيث يقارن بين الموفينجين في الشمعة 1 والموفينجين في الشمعة 2

اذا تحقق شروط التقاطع سيرسم لنا سهم علي الشمعة رقم 1

هذا هو شرح العمل الذي قمنا به الي الان

MOVING_AVERAGE 22-02-2013 04:01 PM

رد: دورة تعلم البرمجة باحتراف
 
السهم في الرسم للشمعة 1 غير مكتمل للاسف انا اقصد الشمعة

http://www.fx-arabia.com/vb/uploaded...1361538060.jpg

MOVING_AVERAGE 22-02-2013 04:02 PM

رد: دورة تعلم البرمجة باحتراف
 
ماهو الحل لكي يكون اضهار السهم اكثر وضوح

MOVING_AVERAGE 22-02-2013 04:12 PM

رد: دورة تعلم البرمجة باحتراف
 
سنستخدم متغير اخر هو متوسط قيمة الرنج ل 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]

MOVING_AVERAGE 22-02-2013 04:48 PM

رد: دورة تعلم البرمجة باحتراف
 
1 مرفق
الان نضيف توقيع بسيط علي المؤشر

وتم التطرق لكيفية اضهار كتابة علي الشارت في الدروس السابقة

ونرفقه ex4



لكي نحتفظ بالحقوق الفكرية للمبرمج

وهذا تطبيقي

للمؤشر الاول

http://www.fx-arabia.com/vb/uploaded...1361539811.jpg

اتمني ان اري تطبيقاتكم شباب واي استفسار

MOVING_AVERAGE 04-03-2013 04:54 PM

رد: دورة تعلم البرمجة باحتراف
 
نكمل الدورة ان شاء الله

اذا كانت هناك فكرة اي مؤشر لكي ننفذها في الدورة فتفضلوا اخواني بطرحها

Mohamed_Amr 04-03-2013 05:05 PM

رد: دورة تعلم البرمجة باحتراف
 
ربى يبارك فيك اخى موفينج
ولى استفسار هل ممكن عمل مؤشر رينج يومى
فى نافذة مستقله عن الشارت ويظهر لنا الرينج اليومى
لعشر ازاوج مثلا ؟

MOVING_AVERAGE 04-03-2013 05:08 PM

رد: دورة تعلم البرمجة باحتراف
 
نعم ممكن عمل ذلك


الساعة الآن 01:22 AM

Powered by vBulletin® Copyright ©2000 - 2024

جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com