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

المعلومات





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


الاتصال

nermine غير متصل

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




حقيقة لطالما لم يجذبني الكلام النظري الممل وكانت أفضل الطرق التي إتخذتها للتعلم في جميع المجالات هي بالتطبيق المباشر وهذا بإذن الله ما سنلجأ إلى

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

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

فتح محرر الميتاإيديتور
قم بفتح برنامج الميتاتريدر والضغط على F4 أو إضغط على الأيقونه في الصوره التاليه وهي الخاصه بمحرر الميتاإيديتور
تم تصغير هذه الصورة تلقائياً. أبعاد الصورة الحقيقي 745*73 و بحجم 13KB.
ثم نتبع الشرح كما في الصور لإنشاء ورقة عمل جديده


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

ثم
تم تصغير هذه الصورة تلقائياً. أبعاد الصورة الحقيقي 1024*768 و بحجم 64KB.

ستظهر لنا نافذه جديده وهي التي يمكن من خلالها كتابة إسم الإكسبرت وإسم المؤلف أي حقوق الملكيه ويمكن تغييرها جميعا بعد كتابتها من داخل الإكسبرت
سوف نجد خانة Parameters وهي الخاصه بالمتغيرات الخارجية للإكسبرت أو بمعنى أوضح إعدادات الإكسبرت مثل حجم اللوت وخلافه وحاليا سنتركها بدون تعديل ولن نضيف أي متغيرات خارجيه .
بعد الضغط على Finish سيبدأ سيبدأ برنامج الميتاإيديتور بنقلنا إلى نافذة التحرير والتي سيتم فيها كتابة الأوامر البرمجية التي نريد من الإكسبرت عملها .


وما علينا سوى البدء في كتابة الأسطر البرمجية التي نريد من الإكسبرت تنفيذه

بعد فتح نافذة التحرير سوف تجد أن هناك بعض الأسطر البرمجيه المكتوبة سابقا وهي عباره عن الأسطر الرئيسيه الخاصه بلغة MQL
كما في الصوره التاليه:
تم تصغير هذه الصورة تلقائياً. أبعاد الصورة الحقيقي 1024*768 و بحجم 57KB.

سوف نجد أن نافذة التحرير مقسمة إلى عدة أقسام بالإضافة إلى قسم المتغيرات الخارجيه (سوف نتكلم عنهم بإختصار في الدروس القادمه)
القسم الأول
الداله كود PHP:
init()

وهذه الدالة يتم إستدعائها مرة واحدة فقط عند بداية عمل الإكسبرت

القسم الثاني
الداله كود PHP:
deinit()

وهذه الدالة يتم إستدعائها مرة واحدة فقط عند نهاية عمل الإكسبرت

القسم الثالث
الداله كود PHP:
start()

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

ويتم كتابة التعليقات بطريقتين
1_ أن يسبق السطر علامة كود PHP:
//

ولكن ماذا إذا كانت التعليقات أكثر من سطر هل نظل نضع في بداية كل سطر هذه العلامة
لأ . هناك طريقة أخرى لكتابة التعليقات بوضع هذه العلامة كود PHP:
/*

في بداية السطر ثم وضع هذه العلامه كود PHP:
*/

في نهاية السطر

مثال :
كود PHP:
//this is comment

أو
كود PHP:
/*
this is comment
thanks
*/

الآن نأتي للكلمات التي تأخذ ألوان مختلفة وهي تعتبر من الكلمات المحجوزه في لغة MQL
ويتم إستخدامها للتعبير عن شيء محدد ولا يمكن إستخدامها لغير ذلك

النوع الثالث هي الكلمات ذو اللون العادي أو الأسود أي ليست الملونه وهي ليست كلمات محجوزه في لغة MQL وليست تعليقات بل هي كلمات قمنا بإستخدامها وأعطيناها دلالة محدده أو قيمة معينه تعبر عنها
وسوف نتكلم عن هذه المتغيرات بالتفصيل

بالنسبه للكلام السابق لا تهتموا به أو تعتقدوا بصعوبته فلاحقا ستعلمون أن الموضوع أبسط ما يمكن عند التطبيق الحي

أما الآن سنبدأ في دراسة إكسبرت لتقاطع خطي موفينج أفريج .
كود PHP:
//+------------------------------------------------------------------+
//| |
//| Copyright, created 16 Apr 2010 |
//| Desinged by MR.dollar |
//| |
//| mrdollar.cs@gmail.com |
//+------------------------------------------------------------------+

#property copyright "MR.dollar EA"
#property link "mrdollar.cs@gmail.com"

extern string MM_Parameters = "---------- Money Management"
;
extern double Lots = 1
;


extern string S5="---------------- Order Management"
;
extern int StopLoss=50
;
extern int TakeProfit=50
;
extern int MagicNumber=2533
;

int init
()
{
//----

//----
return(0
);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS deinitialization function |
//+------------------------------------------------------------------+

int deinit
()
{
//----

//----
return(0
);
}


//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS Start function |
//+------------------------------------------------------------------+

int start
()
{
Comment("Programmed by MR.dollar"+"\n"+"منتدى المتداول العربي "+"\n"+"www.arabictrader.com/vb"
);

//////////////////////////////////////////////////

double ma1,ma2,ma11,ma22,rsi1,rsi2,ma3,ma33,ma4,ma44
;

ma1=iMA(NULL,0,30,0,MODE_EMA,PRICE_CLOSE,1
);
ma11=iMA(NULL,0,30,0,MODE_EMA,PRICE_CLOSE,2
);
ma2=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,1
);
ma22=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,2
);

////////////////////////////////////////////////////
double SL,TP
;


////////////////////////////////


if (ma22<ma11&&ma2>ma1
){

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

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"MR.dollar EA",MagicNumber,0,Blue
);
PlaySound("Alert.wav"
);

}




/////////////////////

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"
);


}
}

وسوف تجدون أيضا الإكسبرت في المرفقات

حفاظا على تسلسل الموضوع وتناسقه أي إستفسار يرجى وضعه في الموضوع المخصص للأسئله البرمجيه على هذا الرابط
موضوع مخصص للأسئلة البرمجية

يتبع






تستطيع أن تنشر الموضوع قي حسابك على  الفيس بوك وتويتر

رد مع اقتباس