عرض مشاركة واحدة
قديم 10-07-2010, 05:07 AM   #5
nermine
مشرفة منتدى الأعمال
الصورة الرمزية nermine

المعلومات





آحدث المواضيع


الاتصال

nermine غير متصل

nermine is on a distinguished road
افتراضي رد: بالتطبيق المباشر تعلم برمجة الإكسبرتات من البدايه حتى الإحتراف

بسم الله الرحمن الرحيم

تحدثنا في الدرس السابق عن العمليات الحسابيه وكيفية إستخدامها وغالبا لا يخلوا أي إكسبرت أو مؤشر من بعض هذه العمليات الحسابيه

وصلنا في الإكسبرت إلى السطر البرمجي التالي
كود PHP:
if (ma22<ma11&&ma2>ma1 ){

فماذا يعني هذا السطر ومتى نستخدمه ؟
الجمل الشرطيه ( if )
تستخدم الجمل الشرطيه للتحقق من شرط ما فإذا تحقق الشرط يقوم بتنفيذ جسد الشرط وإذا لم يتحقق الشرط لا ينفذه وينتقل إلى السطر الذي يليه
ويتم كتابتها بالشكل التالي
كود PHP:
if(------)
{--------;}

يتم كتابة الشروط التي يتحقق منها بين القوسين ( )
ثم يلي ذلك جسد الشرط وهو ما سيتم تنيفذه عند تحقق الشرط ويكتب بين القوسين { } ولا ننسى في نهاية الأمر وضع الفاصله المنقوطه ;

فمثلا لو قلت إذا كان A أكبر من 80 قم بإظهار رساله فسيكون الشرط كالتالي
كود PHP:
if( A > 80 )
{
Alert(" A above 80 "
); }

ملحوظه :
إذا كان جسد الشرط يتكون من جمله واحد يمكن الإستغناء عن الأقواس { } ويمكن كتابة الشرط بالشكال التالي
كود PHP:
if( A > 80 )
Alert(" A above 80 "
);

ملحوظه :
يمكن وضع أكثر من أمر في جسد الجمله الشرطيه يتم تنفيذه عند تحقق شرط معين كما في المثال التالي
كود PHP:
if( A > 80 )
{
Alert(" A above 80 "
);
PlaySound("Alert.wav"
);
}

في الجمله الشرطيه السابقه فيتم التحقق من الشرط هل A أكبر من 80 فإذا كان الناتج هو ترو ينفذ جسد الشرط ولكن إذا لم يتحقق أن A أكبر من 80 فلن ينفذ شيء ولكن ماذا إذا أردت تنفيذ أمر آخر إذا لم يتحقق أن A أكبر من 80
في هذه الحاله يمكننا إستخدام الجمله الشرطيه if .....else

الجمله الشرطيه if .....else
إذا قلت إذا كان A =50 إطبع A تساوي 50 وإلا إطبع A لا تساوي 50 في هذه الحاله يمكننا إستخدام الجمله الشرطيه if ....... else
وسيتم كتابتها بالشكل التالي
كود PHP:
if( A==50){
Print(
"A = 50"
);}
else{
Print(
"A != 50"
);}

نعود الآن إلى الإكسبرت الذي نعمل على دراسته
كود PHP:
if (ma22<ma11&&ma2>ma1 )

ويتم فيها التحقق من شروط الدخول وهو إذا كان ma22 وهو ما قمنا تعريفه سابقا على أنه يأخذ قيمة الموفينج أفريج 9 للشمعة رقم 2 أقل من ma11
و ma2 أكبر من ma1
أي إذا كان موفينج 9 للشمعة قبل السابقه الشمعة رقم 2 أقل من موفينج 30 للشمعة قبل السابقه ثم أصبح موفينج 9 للشمعة السابقه الشمعة رقم 1 أكبر من موفينج 30 للشمعة السابقه
عندها يتأكد التقاطع ثم يتم تنفيذ جسد جملة الشرط وهو ما تم وضعه بين القوسين { }

ثم الجزء الخاص بتعريف الأستوب لوز والهدف
كود PHP:
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
if(
TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point
;}

واستخدم فيها الجمله الشرطيه if.............else
وهي إذا كان StopLoss يساوي 0 وهو ما نقوم بتحديده من المتغيرات الخارجيه للإكسبرت فاجعل SL =0
وإلا فإنه ينفذ الأمر الآخر وهو
SL=Ask-StopLoss*Point
حيث Ask هو سعر الدخول شراء
StopLoss وهو عدد نقاط الأستوب لوز
فمثلا إذا كان سعر الدخول شراء هو 1.3077 وجعلت الأستوب لوز يساوي 20 نقطة
Point وهي قيمة النقطة للزوج الحالي
فسيكون SL=1.3077-20*Point
فيصبح الأستوب لوز 1.3057
ونفس الشيء بالنسبه للهدف

وبعد ذلك ينفذ الأمر OrderSend
كود PHP:
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"MR.dollar EA",MagicNumber,0,Blue);

ويقوم بإصدار تنبيه صوتي
كود PHP:
PlaySound("Alert.wav");

ثم بعد ذلك نغلق الجمله الشرطيه بإستخدام القوس {

ويتم كتابة الأمر OrderSend بالشكل التالي
كود PHP:
OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment, int magic, datetime expiration, color arrow_color);

حيث
symbol هو إسم العمله
cmd وهو نوع الصفقه شراء أو بيع او غير ذلك
volume وهو حجم اللوت
price وهو سعر الدخول بالنسبة للشراء فيكون سعر الدخول هو سعر Ask وبالنسبه للبيع فيكون سعر الدخول هو سعر Bid
إذا كانت الأوامر معلقه فيكون سعر الدخول هو مكان وضع الأمر المعلق
slippage أقصى تغير في السعر يسمح به فمثلا إذا وضعته 3 وكان سعر الدخول 90.15 فسوف يسمح الإكسبرت بتحرك أقصى حد 3 نقاط ويمكن الدخول في الصفقه
stoploss الأستوب لوز
takeprofit الهدف
comment التعليق الذي يتم كتابته بجوار الصفقه
magic الماجيك نمبر
expiration تاريخ إنتهاء الصفقه وهو خاص بالأوامر المعلقه
arrow_color لون السهم الذي سيظهر على الشاشه عند فتح الصفقه

بعد ذلك نضع شروط الدخول بيع
كود PHP:
if (ma22>ma11&&ma2<ma1 ){

if(
StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point
;}
if(
TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point
;}

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"MR.dollar EA",MagicNumber,0,Red
);
PlaySound("Alert.wav"
);


}

وأخيرا نغلق الداله start بإستخدام القوس {
ونكون قد أنهينا بفضل الله تصميم أول إكسبرت لك قد يكون الموضوع صعب في البدايه بسبب كثرة الأوامر والأكواد ولكن مع الإستمرار في التعلم ستجد الأمر بسيط

وفي الدرس القادم سنحاول نضيف بعض الخصائص الإضافيه للإكسبرت مثل أقصى عدد للصفقات ودالة إغلاق الأمر ونصعب الأمر قليلا

أي إستفسار يرجى إضافة في الموضوع التالي
مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر


يتبع






رد مع اقتباس