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


الساعة الآن 06:17 AM

Powered by vBulletin® Copyright ©2000 - 2025

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