![]() |
رد: دورة تعليم برمجة الاكسبريت
اقتباس:
|
رد: دورة تعليم برمجة الاكسبريت
1 مرفق
اقتباس:
|
رد: دورة تعليم برمجة الاكسبريت
بارك الله فيك استاذى الكريم
المؤشرات التى سنستخدمها 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 |
رد: دورة تعليم برمجة الاكسبريت
اخي لم اجد هذا المؤشر
فرى ريكومندشن |
رد: دورة تعليم برمجة الاكسبريت
1 مرفق
اقتباس:
اتفضل يا اخى ... بالمرفقات رغم ان الموضوع تحول الى قسم طلبات اكسبرتات بعيد عن الدورة |
رد: دورة تعليم برمجة الاكسبريت
اقتباس:
|
رد: دورة تعليم برمجة الاكسبريت
1 مرفق
اقتباس:
|
رد: دورة تعليم برمجة الاكسبريت
استاذ موفينج انا بانتظار تكملت الموضوع لان طلبي هو اكسبيرت لهذا امؤشر
|
رد: دورة تعليم برمجة الاكسبريت
اقتباس:
كل الوقت اخذه عمل الاكسبريتات |
رد: دورة تعليم برمجة الاكسبريت
اقتباس:
|
رد: دورة تعليم برمجة الاكسبريت
[PHP]
int slippage [/PHP] وهي التسامح الذي يمكن للاكسبريت فتح صفقة في حدوده يعني مثلا لوكان لدينا التسامح 4 نقاط فهنا ممكن الاكسبريت يفتح صفقة علي اقصي بعد قدره 4 نقاط نحن نستخدم دائما التسامح 3 نقاط علي اكثر تقدير |
رد: دورة تعليم برمجة الاكسبريت
الخانتين التاليتين
[PHP] double stoploss [/PHP] نضع فيها الاستوب لوز [PHP] double takeprofit [/PHP] نضع فيها التيك بروفيت سؤال : هل يعني هذه الخانة اضع فيها في التيك بروفيت عدد النقاط التي اريد ربحها وفي الستوب لوز عدد النقاط التي مستعد لخسارتها الجواب لا في هذه الخانة نضع السعر الذي نريد اغلاق الصفقة لما يصل الي السعر الحالي سؤال اخر وكيف تكون الطريقة لتحديد السعر الذي يغلق فيه الصفقة الجواب نحن نعرف مسبقا السعر الذي تتفعل الصفقة عنده وهو [PHP] Ask [/PHP] او [PHP] Bid [/PHP] لذا لحساب سعر اغلاق الصفقة سنعتمد علي سعر الدخول سنشرح مثلا علي عملية Buy |
رد: دورة تعليم برمجة الاكسبريت
في عملية
[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 |
رد: دورة تعليم برمجة الاكسبريت
هته الدالة تكتب قبل تنفيذ الدالة ستارت يعني في الدالة 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] بالنسبة للعملات الرئسية علي اربع ارقام |
رد: دورة تعليم برمجة الاكسبريت
بعد ان حللنا مشكلة النقطة في منصت 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] |
رد: دورة تعليم برمجة الاكسبريت
اخر عملية مقارنة سنعملها لوجود فرق في كتابة التسامح علي منصة 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] |
رد: دورة تعليم برمجة الاكسبريت
الان ننتقل الي كتابة التيك بروفيت والاستوب لوز لعملية Buy مثلا
نضع متغير خارجي من نوع int لتحديد نقاط الهدف مثلا ومتغير اخر خارج الدالة ستار من نوع int لتحديد الخسارة وضعنا المتغير من نوع int [PHP] extern int StopLoss=0; extern int TakeProfit=0; [/PHP] |
رد: دورة تعليم برمجة الاكسبريت
تحديد الهدف
الهدف كما قلنا هو قيمة 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] وبهذا نكون حددنا الهدف والخسارة |
رد: دورة تعليم برمجة الاكسبريت
الله يفتح عليك اخى موفينج
وربى يزيدك علم ولى استفسار هل ممكن عمل اكسبريت يعتمد على الرينج اليومى مع امكانيه التحكم من اعداد الاكسبريت بتحديد الرينج يدوى ان كان ممكن سوف اضع طلب مع الشرح وربى يبارك فيك |
رد: دورة تعليم برمجة الاكسبريت
بالنسبة لل 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] |
رد: دورة تعليم برمجة الاكسبريت
اقتباس:
بالطبع يمكنك وضع اوامر اعتمادا عليه |
رد: دورة تعليم برمجة الاكسبريت
اقتباس:
وبالتوفيق دائما ياغالى |
رد: دورة تعليم برمجة الاكسبريت
الخانة الموالية
[PHP] int magic=0 [/PHP] في هذه الخانة نضع رقم يمز الاكسبريت عن بقية الاكسبريتات خارج الدالة start نضع متغير خارجي فيه رقم لكي نستعمله في هذه الخانة [PHP] extern int MagicNumber=1234; [/PHP] |
رد: دورة تعليم برمجة الاكسبريت
[PHP]
datetime expiration=0 [/PHP] هذه الخانة تتعلق بالاوامر المعلقة سنضعها = 0 [PHP] color arrow_color=CLR_NONE [/PHP] هذه الخانة تضهر لون السهم عند تنفيذ الامر |
رد: دورة تعليم برمجة الاكسبريت
وبكتابة كل ما تعلمناه من قبل
سنجد [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] وهذا الكود لامرين مباشرين بالشراء والبيع |
رد: دورة تعليم برمجة الاكسبريت
ننتقل الي المؤشر الذي عملناه ونحاول تطبيق امر الشراء والبيع علي المؤشر
اولا نعيد شرح مكان الدخول |
رد: دورة تعليم برمجة الاكسبريت
سنعتمد علي اشارات المؤشر في الدخول
http://www.fx-arabia.com/vb/uploaded...1362084047.jpg والدخول يكون بعد شمعة ضهور السهم |
رد: دورة تعليم برمجة الاكسبريت
كل ما شرحناه عن الاكسبريت
[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] سنستعمل هذا القالب الجاهز في اي اكسبريت مع اضافة في كل اكسبريت متطلبات اخري |
رد: دورة تعليم برمجة الاكسبريت
اولا نحتاج الي اشرات المؤشر الخارجي لكي يتم المتاجرة علي اساسها
لكي نستدعي اشرات المرشر الخارجي نستعمل الدالة [PHP] iCustom [/PHP] لمندات المؤشر الخارجي وتكتب الدالة بالشكل التالي [PHP] double iCustom( string symbol, int timeframe, string name, ... [/PHP] الخانتين الاوليتين تم شرحهم اكثر من مرة الخانة 3 [PHP] string name [/PHP] نضع فيها اسم المؤشر الذي نريد استدعائه |
رد: دورة تعليم برمجة الاكسبريت
الله عليك متابع معاك لانى عندى مؤشر شبيه ونفسى فى اكسبريت ليه
من كل قلبى ربنا يفتح عليك ويزيدك |
رد: دورة تعليم برمجة الاكسبريت
اولا يجب انن نحدد الاشرات التي نريدها
نحن نريد سهم اما صاعد او نازل اذن سنستدعي المؤشر للسهم الصاعد ونستدعي المؤشر للسهم النازل |
رد: دورة تعليم برمجة الاكسبريت
وبطبيعة الحال الاستدعاء يجب ان نضعه في متغير اخر
|
رد: دورة تعليم برمجة الاكسبريت
اسم المؤشر الذي برمجناه في الدورة هو
[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 معناها السهم ضهر وفي هذه الحالة نعطي امر مباشر للدخول في صفقة |
رد: دورة تعليم برمجة الاكسبريت
الكود الكامل للاستدعاء سيكون
[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] |
رد: دورة تعليم برمجة الاكسبريت
اشرات الدخول للاوامر ستكون
[PHP] if(indigreen<4000) { //امر شراء } if(indired<4000) { //امر بيع } [/PHP] لاكن لو نحلل قليلا هنا سيقارن الاكسبريت الشمعة السابقة اذا وجد ضهور السهم سيفتح عقد عند تحرك السعر سيعيد المقارنة ويفتح عقد اخر اذا العقود التي سيفتحها ستكون كثيرة جدا لتجنب هذه المشكلة نحدد له اقصي حد للمتاجرة |
رد: دورة تعليم برمجة الاكسبريت
نضع خارج الدالة start
متغير خارجي فيه اقصي حد للمتاجرة مثلا انا اريد صفقة واحدة فقط هنا اقصي حد للمتاجرة هو واحد اذا سنعمل التالي [PHP] extern int MaxTrades = 1; [/PHP]وانا كتبتها في القالب الجاهز لكي لا نعيد كتابتها |
رد: دورة تعليم برمجة الاكسبريت
ساضيف شرط ان عدد الصفقات المفتوحة يكون اقل من اقصي حد للمتاجرة
ولكي نعرف عدد الصفقات المفتوحة سنحتاج تعريف معتي الدالة وكيف نكتبها وكيف نستدعيها وهي تحتاج تركيز عالي لفهمها بالنسبة لنا حاليا سنضيفها و نشرح عملها لاكن لن نشرح كيف كتابتها لان الكتابة ليست غايتنا في هذا الاكسبريت دالة حساب الصفقات هي الدالة التي تراجع الصفقات علي المنصة اذا كانت وتعطينا عدد الصفقات المفتوحة سواء اوامر مباشرة او اوامر معلقة تكتب دالة حساب الصفقات خارج الدالة 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] |
رد: دورة تعليم برمجة الاكسبريت
وعند اضافة شرط فتح اقصي صفقة سيكون
[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] ببقي فقط اضافة اوامر البيع والشراء انتضر مشاركاتكم ولا يهم ان كانت صحيحة او خاطئة المهم المشاركة للتعلم |
رد: دورة تعليم برمجة الاكسبريت
اقتباس:
اقتباس:
ارجوا المساعدة |
رد: دورة تعليم برمجة الاكسبريت
مشكوووور اخي علي الموضوع :1 (105):
|
الساعة الآن 03:54 PM |
Powered by vBulletin® Copyright ©2000 - 2025
جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com