منتدى الفوركس لاحتراف تجارة الفوركس وتداول العملات في سوق البورصة الالكتروني عن طريق اتقان التحليل الفني والتداول المتميز بواسطة دروس ودورات تكوينية
منتدى الفوركس General
twitter forexu facebook forexu

خبراء الاموال - القناة الاقتصادية السعودية


العودة   تداول | اسعار العملات | هوامير البورصة | الفوركس > تداول العملات > منتدى المؤشرات والاكسبريتات

إنشاء موضوع جديد إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
قديم 03-23-2008, 11:14 AM   #1 (permalink)

مراقب عام

 
تاريخ التسجيل: Mar 2008
المشاركات: 3,034
إرسال رسالة عبر مراسل MSN إلى asklo
افتراضي الدرس الثاني عشر .. برمجة الإكسبرت الأول (جزء 1)

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

مرحبا بكم في الدرس الثاني عشر ... برمجة الإكسبرت الأول (جزء 1)

ما هو الإكسبرت ؟

هو برنامج مكتوب بلغة MQL4 يستخدم مؤشراتك المفضلة وطرق التجارة التي تستخدمها ليقوم بفتح صفقاتك اوتوماتيكيا على اساسها .

يستطيع ان يبيع ويشتري ويعدل في عقودك كما برمجته .

اليوم سنتكلم عن برمجة إكسبرتنا الأول , دعونا نبدأ على بركة الله ,

أول خطوتين :

* الخطوة 1 :

قم بتشغيل الميتاتريدر ومن ثم اضغط على F4 .. او اذهب الى قائمة Tools واختر MetaEditor .

نضغط على قائمة الملفات file ونختار New ( او نضغط CTRL+N ) ليفتح لنا محرر الميتا برنامج التوجيه والذي إخترنا من قبل منه المؤشر الأول .

اليوم سنقوم بإختيار الخيار الأول “Expert Advisor program” ومن ثم نضغط التالي Next كما في الصورة 1


صورة 1

* الخطوة 2 :

متى ضغطت على Next , سينقلك برنامج التوجيه الى الصفحة الثانية والتي يمكنك من خلالها ان تكتب الخصائص العامة للإكسبرت ( صورة 2 )

هذه الصفحة يمكنك من خلالها ان تكتب خصائص الإكسبرت كما قلنا والمتغيرات الخارجية التي ستستخدمها فيه .

وهذه هي الخصائص التي يمكنك كتابتها في هذه الخطوة :

a- اسم برنامجك ( الإكسبرت ) Name : وهو الأسم الذي سيظهر لمستخدمي الإكسبرت وسيعرف به .

b- اسم المبرمج Auther : صانع الإكسبرت ( اسم المبرمج ) .

c- رابط لموقعك الخاص Link .

d- قائمة المتغيرات الخارجية External variables list : وهي المتغيرات التي تسمح لمستخدم الإكسبرت بالتعديل فيها من خلال نافذة خصائص الإكسبرت .

لإضافة متغير جديد قم بالضغط على زر ( Add ) , وبالضغط عليه سيضيف سطرا من البيانات في قائمة المتغيرات الخارجية , وكل سطر يحتوي على 3 مجالات :

* الإسم ( name ) : ضغطتان بالماوس على هذا المجال لتقوم بكتابة اسم ( معرف ) للمتغير .

* النوع ( type ) : ضغطتان بالماوس على هذا المجال لتقوم بتحديد نوع المتغير .

* قيمة المتغير ( initial vale ) : ضغطتان بالماوس على هذا المجال لتقوم بتحديد القيمة التي سيعمل عليها المتغير .
(هذا المجال إختياري , اي انك ممكن تركه فارغا )

في نموذج الأكسبرت هذا قمنا بإضافة 3 متغيرات :

اسم المتغير -----> نوعه -----> القيمة المبدئية
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

هدف الربح (الليمت) -----> النوع ( عدد ) -----> 350

عدد العقود( باللوت ) -----> النوع ( عدد ) -----> 0.1

الوقف المتحرك -----> النوع ( عدد ) -----> 35



صورة 2

الأن إضغط زر Finish لتغلق برنامج التوجيه , وسيحضر لك برنامج الميتا اديتور الأكواد الناتجة من برنامج التوجيه , وسيحفظ ملف ( My_First_EA.mq4 ) في الميتاتريدر في الأمتداد ( MetaTrader 4\experts ).

ملاحظة : يجب عليك وضع الإكسبرتات في مجلد (experts) الموجود في مجلد الميتاتريدر على جهازك , والمؤشرات في الإمتداد ( MetaTrader 4\experts\indicators ) على الجهاز ,والا لن يعملوا مطلقا .

الأن هذا هو الكود الناتج من برنامج التوجيه :



كود PHP:
//+------------------------------------------------------------------+ 

//| My_First_EA.mq4 | 

//| dr_waleed | 

//| http://www.moneyexpertsclub.com | 

//+------------------------------------------------------------------+ 

#property copyright "Coders Guru" 

#property link "http://www.forex-tsd.com" 

//---- input parameters 

extern double TakeProfit=250.0

extern double Lots=0.1

extern double TrailingStop=35.0

//+------------------------------------------------------------------+ 

//| expert initialization function | 

//+------------------------------------------------------------------+ 

int init() 



//---- 

//---- 

return(0); 



//+------------------------------------------------------------------+ 

//| expert deinitialization function | 

//+------------------------------------------------------------------+ 

int deinit() 



//---- 

//---- 

return(0); 



//+------------------------------------------------------------------+ 

//| expert start function | 

//+------------------------------------------------------------------+ 

int start() 



//---- 

//---- 

return(0); 



//+------------------------------------------------------------------+ 

كما ترى اعلاه , الكود الناتج من برنامج التوجيه هو مجرد قالب لتضيف أكوادك الخاصة بدون ان يزعجك بكتابة الدوال الأساسية .

الأن نضيف أكوادنا الخاصة :



كود PHP:
//+------------------------------------------------------------------+ 

//| My_First_EA.mq4 | 

//| dr_waleed | 

//| http://www.moneyexpertsclub.com | 

//+------------------------------------------------------------------+ 

#property copyright "Coders Guru" 

#property link "http://www.forex-tsd.com" 

//---- input parameters 

extern double TakeProfit=250.0

extern double Lots=0.1

extern double TrailingStop=35.0

//+------------------------------------------------------------------+ 

//| expert initialization function | 

//+------------------------------------------------------------------+ 

int init() 



//---- 

//---- 

return(0); 



//+------------------------------------------------------------------+ 

//| expert deinitialization function | 

//+------------------------------------------------------------------+ 

int deinit() 



//---- 

//---- 

return(0); 



int Crossed (double line1 double line2



static 
int last_direction 0

static 
int current_dirction 0

if(
line1>line2)current_dirction 1//up 

if(line1<line2)current_dirction 2//down 

if(current_dirction != last_direction//changed 



last_direction current_dirction

return (
last_direction); 



else 



return (
0); 





//+------------------------------------------------------------------+ 

//| expert start function | 

//+------------------------------------------------------------------+ 

int start() 



//---- 

int cnttickettotal

double shortEmalongEma

if(
Bars<100



Print(
"bars less than 100"); 

return(
0); 



if(
TakeProfit<10



Print(
"TakeProfit less than 10"); 

return(
0); // check TakeProfit 



shortEma iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,0); 

longEma iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0); 

int isCrossed Crossed (shortEma,longEma); 

total OrdersTotal(); 

if(
total 1



if(
isCrossed == 1



ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point

"My EA",12345,0,Green); 

if(
ticket>0



if(
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 

Print(
"BUY order opened : ",OrderOpenPrice()); 



else Print(
"Error opening BUY order : ",GetLastError()); 

return(
0); 



if(
isCrossed == 2



ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0

Bid-TakeProfit*Point,"My EA",12345,0,Red); 

if(
ticket>0



if(
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 

Print(
"SELL order opened : ",OrderOpenPrice()); 



else Print(
"Error opening SELL order : ",GetLastError()); 

return(
0); 



return(
0); 



for(
cnt=0;cnt<total;cnt++) 



OrderSelect(cntSELECT_BY_POSMODE_TRADES); 

if(
OrderType()<=OP_SELL && OrderSymbol()==Symbol()) 



if(
OrderType()==OP_BUY// long position is opened 



// should it be closed? 

if(isCrossed == 2



OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); 

// close position 

return(0); // exit 



// check for trailing stop 

if(TrailingStop>0



if(
Bid-OrderOpenPrice()>Point*TrailingStop



if(
OrderStopLoss()<Bid-Point*TrailingStop



OrderModify(OrderTicket(),OrderOpenPrice(),Bid

Point*TrailingStop,OrderTakeProfit(),0,Green); 

return(
0); 









else 
// go to short position 



// should it be closed? 

if(isCrossed == 1



OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); 

// close position 

return(0); // exit 



// check for trailing stop 

if(TrailingStop>0



if((
OrderOpenPrice()-Ask)>(Point*TrailingStop)) 



if((
OrderStopLoss()>(Ask+Point*TrailingStop)) || 

(
OrderStopLoss()==0)) 



OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop

OrderTakeProfit(),0,Red); 

return(
0); 













return(
0); 



//+------------------------------------------------------------------+ 

هل أحسست بالقلق ؟

لا تقلق من ال 160 سطرا الذين رأيتهم في الأعلى , سنعرف كل شئ عن هذه الأكواد سطرا سطرا , بإذن الله ستكون سهلة ومفهومة .

* إختبار فاعلية الإكسبرت :

قبل دراسة الأكواد , علينا ان نعرف هل هو مربح ام لا ..

يمكنك إختبار الإكسبرت بإحدى طريقتين :

1- المتاجرة الحية ( Live trading ) :

في المتاجرة الحية , النتائج ستكون أكثر وضوحا ومصداقية . ولكن عيبها انك يجب ان تقضي ايام واسابيع وممكن شهور كذلك لتعرف هل الأكسبرت مربح ام لا .

عليك تفعيل الإكسبرت ليقوك بعمله بالمتاجرة وذلك بالضغط على ( Tools ) ومن ثم الخيارات ( option ) او الضغط على F5 , وهذا سيأتي اليك بنافذة الخيارات ( صورة 3 ) , اضغط على مجال ( Expert Advisors ) والقيام بتفعيل هذه الخيارات :

** تفعيل عمل الإكسبرت Enable Expert Advisors

** السماح بالمتاجرة الحية Allow live trading


ومن ثم أضغط على OK .


صورة 3

سترى وقتها وجه مبتسم بجانب اسم الإكسبرت ,مما يعني انه يعمل بإنتظام وجاهز للمتاجرة من أجلك ( صورة 4 )


صورة 4

2- مختبر الإستراتيجيات (Strategy Tester) :

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

متى ظهرت النافذة أدخل هذه الخيارات :

Symbol: EURUSD.

Period: H4 (4 Hours).

Model: Open price only.



صورة 5

الأن اضغط على Start لتبدأ عملية إختبار الإكسبرت .

بعد ذلك قم بالضغط على Report لترى ارباح الكسبرت كما هو موضح بالصورة 6 .


صورة 6

asklo غير متواجد حالياً   رد مع اقتباس
إنشاء موضوع جديد إضافة رد

الكلمات الدلالية (Tags)
الأول, الثاني, الدرس, الإكسبرت, برمجة, يصل, عصر

أدوات الموضوع
انواع عرض الموضوع

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

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الدرس الحادي عشر .. برمجة مؤشرك الأول (جزء 3) asklo منتدى المؤشرات والاكسبريتات 0 03-23-2008 11:10 AM
الدرس العاشر .. برمجة مؤشرك الأول (جزء 2) asklo منتدى المؤشرات والاكسبريتات 0 03-23-2008 11:03 AM
الدرس التاسع .. برمجة مؤشرك الأول (جزء 1) asklo منتدى المؤشرات والاكسبريتات 0 03-23-2008 10:55 AM
الدرس الثاني .. رموز البيانات في لغة Mql4 asklo منتدى المؤشرات والاكسبريتات 0 03-23-2008 10:21 AM
الدرس الأول .. قواعد لغة Mql4 asklo منتدى المؤشرات والاكسبريتات 0 03-23-2008 09:43 AM

Preview on Feedage: %D8%AA%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D8%B3%D8%B9%D8%A7%D8%B1-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D8%A7%D8%AA-%D9%87%D9%88%D8%A7%D9%85%D9%8A%D8%B1-%D8%A7%D9%84%D8%A8%D9%88%D8%B1%D8%B5%D8%A9-%D8%A7%D9%84%D9%81%D9%88%D8%B1%D9%83%D8%B3

Add to My Yahoo!

Add to Google!

Subscribe in Bloglines

iPing-it



FOREXYARD - Forex Trading Online - Currency brokers offering a forex trading system.


الساعة الآن 07:27 AM.

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


Powered by vBulletin® Version 3.8.5, Copyright ©2000 - 2010,

Search Engine Friendly URLs by vBSEO 3.3.0