![]() |
رد: دورة تعليم برمجة الاكسبريت
اولا يجب انن نحدد الاشرات التي نريدها
نحن نريد سهم اما صاعد او نازل اذن سنستدعي المؤشر للسهم الصاعد ونستدعي المؤشر للسهم النازل |
رد: دورة تعليم برمجة الاكسبريت
وبطبيعة الحال الاستدعاء يجب ان نضعه في متغير اخر
|
رد: دورة تعليم برمجة الاكسبريت
اسم المؤشر الذي برمجناه في الدورة هو
[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):
|
الساعة الآن 11:26 AM |
Powered by vBulletin® Copyright ©2000 - 2025
جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com