اف اكس ارابيا..الموقع الرائد فى تعليم فوركس 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=29378)

MOVING_AVERAGE 25-02-2013 01:22 PM

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

المشاركة الأصلية كتبت بواسطة magdyzaki (المشاركة 470500)
استاذى الكريم حاولت اضيف الدالة ولكن فشلت لذلك انا ارفقت الاسكربت واتمنى من حضرتك تساعدنى وتضيف اليه المطلوب
اولا انه يعمل على المنصتين 4 و 5 ارقام
ثانيا عايز الخروج من البيع يكون بظهور سهم الفرى ريكومندشن ونقاط الباربوليك اسفل اخر شمعة مع اختراق خط 7 لخط 14 من فوق لتحت
والعكس بالنسبة للشراء
ويكون التبريد كل 50 نقطة
انا عارف انى هتعبك ولكن هذه الاستراتيجية تعتبر انجح استراتيجية انا جربتها

ياريت اخي ترفق المؤشر الذي يضهر الاسهم

magdyzaki 25-02-2013 01:52 PM

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

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE (المشاركة 470502)
ياريت اخي ترفق المؤشر الذي يضهر الاسهم

اتفضل

magdyzaki 25-02-2013 04:03 PM

رد: دورة تعليم برمجة الاكسبريت
 
بارك الله فيك استاذى الكريم

المؤشرات التى سنستخدمها

7 موفنج افريج اكسبونينشال
14 موفنج افريج سيمبل
21 موفنج اكسبونينشال
55 موفنج سيمبل
100 موفنج سيمبل
100 موفنج اكسبونينشال
200 موفنج سيمبل
200 موفنج كسبونينشال
365 موفينج سمبل
1000 موفنج اكسبونينشال

فرى ريكومندشن
نقاط الباربوليك

الاستراتيجية عبارة عن
فتح الشراء عندما يتوفر 3 شروط
1- اختراق خط ال 21 و 7 لجميع الخطوط من تحت لفوق
2- ظهور السهم فرى ريكومندشن من تحت الشمعة الحالية
3- ظهور نقاط الباربوليك من تحت الشمعه الحالية
الخروج من الشراء عند حدوث 4 شروط
1- اختراق خط 7 لخط 14 من فوق لتحت
2- اختراق خط 7 لخط 14 و 21 من فوق لتحت
3- ظهور سهم الفرى ريكومندشن من فوق الشمعة
4- ظهور نقاط الباربوليك من فوق الشمعة

وطبعا العكس فى البيع


هذه فرصة شراء

http://www.borsaat.com/vb/uploaded/58410_1361796209.png

والعكس بيع

http://www.borsaat.com/vb/uploaded/58410_1361796766.png

MOVING_AVERAGE 25-02-2013 11:53 PM

رد: دورة تعليم برمجة الاكسبريت
 
اخي لم اجد هذا المؤشر

فرى ريكومندشن



forex 2012 25-02-2013 11:58 PM

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

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE (المشاركة 470900)
اخي لم اجد هذا المؤشر

فرى ريكومندشن



اتفضل يا اخى ... بالمرفقات

رغم ان الموضوع تحول الى قسم طلبات اكسبرتات بعيد عن الدورة

MOVING_AVERAGE 26-02-2013 12:00 AM

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

المشاركة الأصلية كتبت بواسطة forex 2012 (المشاركة 470904)
اتفضل يا اخى ... بالمرفقات

رغم ان الموضوع تحول الى قسم طلبات اكسبرتات بعيد عن الدورة

ان شاء الله ستحذف المشارات التي ليس لها علاقة بالدورة

magdyzaki 26-02-2013 01:27 AM

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

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE (المشاركة 470900)
اخي لم اجد هذا المؤشر

فرى ريكومندشن



اتفضل استاذى الكريم فى المرفقات

abou fares 27-02-2013 04:19 PM

رد: دورة تعليم برمجة الاكسبريت
 
استاذ موفينج انا بانتظار تكملت الموضوع لان طلبي هو اكسبيرت لهذا امؤشر

MOVING_AVERAGE 27-02-2013 05:16 PM

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

المشاركة الأصلية كتبت بواسطة abou fares (المشاركة 471875)
استاذ موفينج انا بانتظار تكملت الموضوع لان طلبي هو اكسبيرت لهذا امؤشر

والله اخي لم اجد وقت لاكمال الدورة حتي الان

كل الوقت اخذه عمل الاكسبريتات

MOVING_AVERAGE 28-02-2013 09:54 PM

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

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE (المشاركة 469330)
الخانة 4

[PHP]
double price
[/PHP]نكتب فيها سعر التنفيذ الذي ينفذ من عنده الاكسبريت الامر

وكما قلنا سعر تنفيذ buy هو

[PHP]
Ask
[/PHP]وسعر تنفيذ sell هو

[PHP]
Bid
[/PHP]وشرحتهم باستفاضة فيما سبق

اذا في هذه الخانة سنكتب سعر التنفيذ لكل عملية

[PHP]
OrderSend(Symbol(),OP_BUY,Lots,Ask,
[/PHP][PHP]
OrderSend(Symbol(),OP_SELL,Lots,Bid
[/PHP]

نكمل من هنا ان شاء الله

MOVING_AVERAGE 28-02-2013 10:00 PM

رد: دورة تعليم برمجة الاكسبريت
 
[PHP]
int slippage
[/PHP]

وهي التسامح الذي يمكن للاكسبريت فتح صفقة في حدوده

يعني مثلا

لوكان لدينا التسامح 4 نقاط فهنا ممكن الاكسبريت يفتح صفقة علي اقصي بعد قدره 4 نقاط

نحن نستخدم دائما التسامح 3 نقاط علي اكثر تقدير

MOVING_AVERAGE 28-02-2013 10:07 PM

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

[PHP]
double stoploss
[/PHP]

نضع فيها الاستوب لوز

[PHP]
double takeprofit
[/PHP]

نضع فيها التيك بروفيت

سؤال :

هل يعني هذه الخانة اضع فيها في التيك بروفيت عدد النقاط التي اريد ربحها

وفي الستوب لوز عدد النقاط التي مستعد لخسارتها

الجواب

لا

في هذه الخانة نضع السعر الذي نريد اغلاق الصفقة لما يصل الي السعر الحالي

سؤال اخر

وكيف تكون الطريقة لتحديد السعر الذي يغلق فيه الصفقة

الجواب

نحن نعرف مسبقا السعر الذي تتفعل الصفقة عنده وهو

[PHP]
Ask
[/PHP]

او

[PHP]
Bid
[/PHP]

لذا لحساب سعر اغلاق الصفقة سنعتمد علي سعر الدخول

سنشرح مثلا علي عملية Buy

MOVING_AVERAGE 28-02-2013 10:17 PM

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

[PHP]
Buy
[/PHP]سعر تفعيل الصفقة هو

[PHP]
Ask
[/PHP]الهدف سيكون فوق سعر الدخول

والستوب لوز سيكون تحت سعر الدخول

مثلا نضع الهدف 10 نقاط

والستوي لوز 7 نقاط

اذا

سعر اغلاق الصفقة علي ربح سيكون

ask
+ 10 نقاط

سعر اغلاق الصفقة علي خسارة سيكون

ask
- 7 نقاط

وهنا الاشكال الذي يطرح بين مختلف المنصات

ولدينا نوعين من المنصات

منصة ذات 4 ارقام و 2 ارقام في عملات الين

في هذه المنصة قيمة النقطة علي المنصة = 0.0001 وهي نفسها قيمة النقطة التي نتاجر عليها

وفي عملات الين قيمتها 0.01

اذا في مثالنا السابق سيكون لدينا

سعر اغلاق الصفقة علي ربح سيكون

ask
+ 10*0.0001

سعر اغلاق الصفقة علي خسارة سيكون

ask
- 7*0.0001

بالنسبة لعملات الين

سعر اغلاق الصفقة علي ربح سيكون

ask
+ 10*0.01

سعر اغلاق الصفقة علي خسارة سيكون

ask
- 7 *0.01

كيف نحل هذا المشكل اولا علي منصت 4 ارقام

سنستعمل دالة لتقارن لنا علي اي عملة نعمل

لو كنا علي عملة فيها 4 ارقام بعد الفاصلة ستستعمل 0.0001

لو كنا علي عملة فيها 2 ارقام بعد الفاصلة ستستعمل 0.01

MOVING_AVERAGE 28-02-2013 10:26 PM

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

نستعمل في هذه الدالة الكتابة

[PHP]
Digits
[/PHP]

وهذه الكتابة ترجع لنا عدد الارقام بعد الفاصلة

سنقارن علي حسب

[PHP]
Digits
[/PHP]

ونضع متغير كلما وجد Digits يضع قيم تتناسب معه

نعرف متغير خارج الدالة start

[PHP]
double point;
[/PHP]

ومتغير اخر سنستعمله في التسامح

[PHP]
int Q;
[/PHP]

داخل الدالة init سنبدء المقارنة

وتكون بالشكل التالي

[PHP]
if(Digits==2)
{
point=0.01;
}
[/PHP]

بالنسبة لعملات الين علي منصة 4 ارقام

[PHP]
if(Digits==4)
{
point=0.0001;
}
[/PHP]

بالنسبة للعملات الرئسية علي اربع ارقام

MOVING_AVERAGE 28-02-2013 10:32 PM

رد: دورة تعليم برمجة الاكسبريت
 
بعد ان حللنا مشكلة النقطة في منصت 4 ارقام ننتقل الي منصت 5 ارقام

في منصة خمس ارقام

سيكون لدينا 5 ارقام بعد الفاصلة في العملات الرئسية

اذا اصخر رقم الذي هو النقطة = 0.00001

وفي عملات الين نجد 3 ارقام بعد الفاصلة

والنقطة الافتراضية = 0.001

لاكن هذه القيم لا تخدمنا في المتاجرة

لاننا نحتاج قيمة النقطة دائما 0.0001 او 0.01

نعمل ايضا عملية مقارنة في الدالة init

وتكون كما يلي

[PHP]
if(Digits==3)
{
point=0.01;
}
if(Digits==5)
{
point=0.0001;
}
[/PHP]

اذا عملية المقارنة بالنسبة للنقطة ستكون كالتالي

[PHP]
if(Digits==2)
{
point=0.01;
}
if(Digits==4)
{
point=0.0001;
}
if(Digits==3)
{
point=0.01;
}
if(Digits==5)
{
point=0.0001;
}
[/PHP]

MOVING_AVERAGE 28-02-2013 10:37 PM

رد: دورة تعليم برمجة الاكسبريت
 
اخر عملية مقارنة سنعملها لوجود فرق في كتابة التسامح علي منصة 4 ارقام و 5 ارقام

في منصة اربع ارقام نكتب التسامح مثلا 3 نقاط 3

في منصةخمس ارقام نكتب التسامح مثلا 3 نقاط 30


ولهذا نعمل المقارنة التالية

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

[PHP]
int Q;
[/PHP]ثم المقارنة كالتالي

[PHP]
if(Digits==5||Digits==3)Q=10;
else Q=1;
[/PHP]اذا وباختصار الدالة التي نستعملها لمقارنة النقطة هي

[PHP]
if(Digits==5||Digits==3)Q=10;
else Q=1;
if(Digits==2)
{
point=0.01;
}
if(Digits==4)
{
point=0.0001;
}
if(Digits==3)
{
point=0.01;
}
if(Digits==5)
{
point=0.0001;
}
[/PHP]

MOVING_AVERAGE 28-02-2013 10:42 PM

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


نضع متغير خارجي من نوع int

لتحديد نقاط الهدف مثلا

ومتغير اخر خارج الدالة ستار من نوع int لتحديد الخسارة

وضعنا المتغير من نوع int

[PHP]

extern int StopLoss=0;

extern int TakeProfit=0;
[/PHP]

MOVING_AVERAGE 28-02-2013 10:49 PM

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

الهدف كما قلنا هو قيمة Ask زائد قيمة TakeProfit مضروبة في عدد النقاط

اذا

سنستعمل مثلا

[PHP]
double TP;
[/PHP]

ونضع فيه القيمة كالتالي

[PHP]
TP=Ask+TakeProfit*point;
[/PHP]

بالنسبة للستوب

[PHP]
double SL;
[/PHP]

[PHP]
SL=Ask-StopLoss*point;
[/PHP]

لاكن لو ننفذ الاكسبريت علي هذه الطريقة سيعطينا خلل

وهذا الخلل لو تركنا

الستوب لوز والتيك بروفيت = صفر من الاعددات الخارجية

لذا نعمل ايضا مقارمة لكي نتجنب هذا المشكل

والمقارنة ستكون كالتالي

[PHP]
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TPb=Ask+TakeProfit*po int;}
[/PHP]

وبهذا نكون حددنا الهدف والخسارة

Mohamed_Amr 28-02-2013 10:56 PM

رد: دورة تعليم برمجة الاكسبريت
 
الله يفتح عليك اخى موفينج
وربى يزيدك علم ولى استفسار هل
ممكن عمل اكسبريت يعتمد على الرينج اليومى
مع امكانيه التحكم من اعداد الاكسبريت بتحديد الرينج يدوى
ان كان ممكن سوف اضع طلب مع الشرح
وربى يبارك فيك

MOVING_AVERAGE 28-02-2013 10:56 PM

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


نرجع الي دالة الاوامر

[PHP]
OrderSend( Symbol(), OP_BUY, LOTS, Ask,3*Q,SL,TP,
OrderSend( Symbol(), OP_SELL, LOTS,Bid,3*Q,SL,TP,
[/PHP]

مع ملاحضة ان الستوب لوز والتيك مختلفة في كل امر

الخانة الموالية

[PHP]
string comment=NULL
[/PHP]

هذه الخانة ستضهر لنا كتابة التي نريد اما موقع تنفيذ الامر

انا اتركها فارغة

[PHP]
""
[/PHP]

MOVING_AVERAGE 28-02-2013 10:58 PM

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

المشاركة الأصلية كتبت بواسطة Mohamed_Amr (المشاركة 472563)
الله يفتح عليك اخى موفينج
وربى يزيدك علم ولى استفسار هل
ممكن عمل اكسبريت يعتمد على الرينج اليومى
مع امكانيه التحكم من اعداد الاكسبريت بتحديد الرينج يدوى
ان كان ممكن سوف اضع طلب مع الشرح
وربى يبارك فيك

اذا كان ممكن حساب الرنج وهذا امر بسيط

بالطبع يمكنك وضع اوامر اعتمادا عليه

Mohamed_Amr 28-02-2013 11:03 PM

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

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE (المشاركة 472566)
اذا كان ممكن حساب الرنج وهذا امر بسيط

بالطبع يمكنك وضع اوامر اعتمادا عليه

جارى طرح الفكرة واتمنى اضافه الفكرة لاكسبريت الرينكو
وبالتوفيق دائما ياغالى

MOVING_AVERAGE 28-02-2013 11:09 PM

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

[PHP]
int magic=0
[/PHP]

في هذه الخانة نضع رقم يمز الاكسبريت عن بقية الاكسبريتات

خارج الدالة start

نضع متغير خارجي فيه رقم لكي نستعمله في هذه الخانة

[PHP]
extern int MagicNumber=1234;
[/PHP]

MOVING_AVERAGE 28-02-2013 11:11 PM

رد: دورة تعليم برمجة الاكسبريت
 
[PHP]
datetime expiration=0
[/PHP]

هذه الخانة تتعلق بالاوامر المعلقة

سنضعها = 0

[PHP]
color arrow_color=CLR_NONE
[/PHP]

هذه الخانة تضهر لون السهم عند تنفيذ الامر

MOVING_AVERAGE 28-02-2013 11:14 PM

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

سنجد

[PHP]
OrderSend( Symbol(), OP_BUY, LOTS, Ask,3*Q,SL,TP,"",MagicNumber,0,Red);
OrderSend( Symbol(), OP_SELL, LOTS,Bid,3*Q,SL,TP,"",MagicNumber,0,Blue);
[/PHP]

وهذا الكود لامرين مباشرين بالشراء والبيع

MOVING_AVERAGE 28-02-2013 11:17 PM

رد: دورة تعليم برمجة الاكسبريت
 
ننتقل الي المؤشر الذي عملناه ونحاول تطبيق امر الشراء والبيع علي المؤشر

اولا نعيد شرح مكان الدخول

MOVING_AVERAGE 28-02-2013 11:42 PM

رد: دورة تعليم برمجة الاكسبريت
 
سنعتمد علي اشارات المؤشر في الدخول

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

والدخول يكون بعد شمعة ضهور السهم

MOVING_AVERAGE 28-02-2013 11:46 PM

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

[PHP]
extern int StopLoss=0;

extern int TakeProfit=0;

extern int MagicNumber=1263;

extern int MaxTrades = 1;

extern double Lots = 0.1;

double point;

int digits,Q;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
if(Digits==5||Digits==3)Q=10;
else Q=1;
if(Digits==2)
{
point=0.01;
}
if(Digits==4)
{
point=0.0001;
}
if(Digits==3)
{
point=0.01;
}
if(Digits==5)
{
point=0.0001;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
[/PHP]


سنستعمل هذا القالب الجاهز في اي اكسبريت مع اضافة في كل اكسبريت متطلبات اخري

MOVING_AVERAGE 28-02-2013 11:55 PM

رد: دورة تعليم برمجة الاكسبريت
 
اولا نحتاج الي اشرات المؤشر الخارجي لكي يتم المتاجرة علي اساسها

لكي نستدعي اشرات المرشر الخارجي

نستعمل الدالة

[PHP]
iCustom
[/PHP]

لمندات المؤشر الخارجي

وتكتب الدالة بالشكل التالي

[PHP]

double iCustom( string symbol, int timeframe, string name, ...
[/PHP]

الخانتين الاوليتين تم شرحهم اكثر من مرة

الخانة 3

[PHP]
string name
[/PHP]

نضع فيها اسم المؤشر الذي نريد استدعائه

Mohamed_Amr 28-02-2013 11:57 PM

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

MOVING_AVERAGE 01-03-2013 12:19 AM

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

نحن نريد سهم اما صاعد او نازل

اذن سنستدعي المؤشر للسهم الصاعد

ونستدعي المؤشر للسهم النازل

MOVING_AVERAGE 01-03-2013 12:20 AM

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

MOVING_AVERAGE 01-03-2013 12:31 AM

رد: دورة تعليم برمجة الاكسبريت
 
اسم المؤشر الذي برمجناه في الدورة هو

[PHP]
1 indicator
[/PHP]

فيكون الاستدعاء كالتالي

[PHP]
double indigreen=iCustom(0,0,"1 indicator ",1,1);
double indired=iCustom(0,0,"1 indicator ",0,1);
[/PHP]

1 للسهم الازرق
2 للسهم الاحمر

حيث في اعددات السهم في الالوان سنجد هذا الترقيم

ونكتبه بعد اسم المؤشر

وحتما الاستدعاء للشمعة السابقة لان السهم يضهر متاخر بشمعة

لمعرفة قيم الاسهم سنستخدم دالة الاضهار

Comment

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

بعد عمل الدالة Comment

تبين ان السهم لما يضهر تكون قيمته مقاربة للسعر

وعندما لا يضهر تكون قيمته كبيرة جدا

لذا سناخذ مثلا رقم متوسط نقارن بالنسبة له

هذا الرقم ليكن 4000

اذا قيمت السهم اصغر من 4000 معناها السهم ضهر

وفي هذه الحالة نعطي امر مباشر للدخول في صفقة

MOVING_AVERAGE 01-03-2013 12:32 AM

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

[PHP]

extern int StopLoss=0;

extern int TakeProfit=0;

extern int MagicNumber=1263;

extern int MaxTrades = 1;

extern double Lots = 0.1;

double point;

int digits,Q;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
if(Digits==5||Digits==3)Q=10;
else Q=1;
if(Digits==2)
{
point=0.01;
}
if(Digits==4)
{
point=0.0001;
}
if(Digits==3)
{
point=0.01;
}
if(Digits==5)
{
point=0.0001;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double indigreen=iCustom(0,0,"1 indicator ",1,1);
double indired=iCustom(0,0,"1 indicator ",0,1);


//----
return(0);
}
//+------------------------------------------------------------------+
[/PHP]

MOVING_AVERAGE 01-03-2013 12:37 AM

رد: دورة تعليم برمجة الاكسبريت
 
اشرات الدخول للاوامر ستكون

[PHP]
if(indigreen<4000)
{
//امر شراء
}

if(indired<4000)
{
//امر بيع
}
[/PHP]

لاكن لو نحلل قليلا هنا

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

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

اذا العقود التي سيفتحها ستكون كثيرة جدا

لتجنب هذه المشكلة نحدد له اقصي حد للمتاجرة

MOVING_AVERAGE 01-03-2013 12:40 AM

رد: دورة تعليم برمجة الاكسبريت
 
نضع خارج الدالة start

متغير خارجي فيه اقصي حد للمتاجرة

مثلا انا اريد صفقة واحدة فقط

هنا اقصي حد للمتاجرة هو واحد

اذا

سنعمل التالي

[PHP]
extern int MaxTrades = 1;
[/PHP]وانا كتبتها في القالب الجاهز لكي لا نعيد كتابتها

MOVING_AVERAGE 01-03-2013 12:47 AM

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

ولكي نعرف عدد الصفقات المفتوحة

سنحتاج تعريف معتي الدالة

وكيف نكتبها

وكيف نستدعيها

وهي تحتاج تركيز عالي لفهمها

بالنسبة لنا حاليا سنضيفها و نشرح عملها لاكن لن نشرح كيف كتابتها لان الكتابة ليست غايتنا في هذا الاكسبريت


دالة حساب الصفقات هي الدالة التي تراجع الصفقات علي المنصة

اذا كانت وتعطينا عدد الصفقات المفتوحة

سواء اوامر مباشرة او اوامر معلقة

تكتب دالة حساب الصفقات خارج الدالة start

وفي اغلب الاحيان نكتبها اسفل الدالة start

وتكون كتابتها كالاتي

[PHP]
int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
[/PHP]وعند اضافتها الي اكسبريتنا تصبح

[PHP]
extern int StopLoss=0;

extern int TakeProfit=0;

extern int MagicNumber=1263;

extern int MaxTrades = 1;

extern double Lots = 0.1;

double point;

int digits,Q;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
if(Digits==5||Digits==3)Q=10;
else Q=1;
if(Digits==2)
{
point=0.01;
}
if(Digits==4)
{
point=0.0001;
}
if(Digits==3)
{
point=0.01;
}
if(Digits==5)
{
point=0.0001;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double indigreen=iCustom(0,0,"1 indicator ",1,1);
double indired=iCustom(0,0,"1 indicator ",0,1);

if(indigreen<4000)
{
//امر شراء
}

if(indired<4000)
{
//امر بيع
}


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

int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
[/PHP]

MOVING_AVERAGE 01-03-2013 12:51 AM

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

[PHP]

extern int StopLoss=0;

extern int TakeProfit=0;

extern int MagicNumber=1263;

extern int MaxTrades = 1;

extern double Lots = 0.1;

double point;

int digits,Q;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
if(Digits==5||Digits==3)Q=10;
else Q=1;
if(Digits==2)
{
point=0.01;
}
if(Digits==4)
{
point=0.0001;
}
if(Digits==3)
{
point=0.01;
}
if(Digits==5)
{
point=0.0001;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double indigreen=iCustom(0,0,"1 indicator ",1,1);
double indired=iCustom(0,0,"1 indicator ",0,1);

if(orderstotal()<MaxTrades&&indigreen<4000)
{
//امر شراء
}

if(orderstotal()<MaxTrades&&indired<4000)
{
//امر بيع
}


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

int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
[/PHP]

ببقي فقط اضافة اوامر البيع والشراء

انتضر مشاركاتكم ولا يهم ان كانت صحيحة او خاطئة المهم المشاركة للتعلم

shelilco30 03-03-2013 06:45 PM

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

المشاركة الأصلية كتبت بواسطة shelilco30 (المشاركة 473670)
اخي الكريم موفينج كيف احدد الاعدادات يعني مثلاً هذا مؤشر عبارة عن قناة سعرية وعايز احدد للاكسبيرت الحد العلوي للقناة او الحد السفلي

http://www.fx-arabia.com/vb/uploaded...1361893661.png

وهذه هي اعداداته

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


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

وهذا رابط تحميل المؤشر

http://www.fx-arabia.com/vb/uploaded...1361901099.ex4

ولك جزيل الشكر

اقتباس:

المشاركة الأصلية كتبت بواسطة shelilco30 (المشاركة 473672)
كيف تملاء هذه الخانات
http://www.fx-arabia.com/vb/uploaded...1362323854.jpg


ارجوا المساعدة

mimo2006 03-03-2013 07:01 PM

رد: دورة تعليم برمجة الاكسبريت
 
مشكوووور اخي علي الموضوع :1 (105):


الساعة الآن 03:54 PM

Powered by vBulletin® Copyright ©2000 - 2025

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