اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex

اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex (https://fx-arabia.com/vb/index.php)
-   منتدى المؤشرات و الاكسبيرتات (https://fx-arabia.com/vb/forumdisplay.php?f=6)
-   -   موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4 (https://fx-arabia.com/vb/showthread.php?t=34302)

ابو سمر 05-01-2014 04:27 PM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

المشاركة الأصلية كتبت بواسطة العوامى (المشاركة 648282)


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

انا عملت مؤشر للرينج يجمع اكثر من فريم من الشهرى الى الساعه
وجعلت لكل فريم اعداد من النوع بولين للاختيار بين اظهاره او اخفاءه
واضفت المتغير شيفت لتحديد رقم الشمعه من اعدادات المؤشر
فعند اختيار شمعه ولتكن
رقم 2 على الفريم الشهرى سيكون التاريخ 1/11/2013
عندما اغير الفريم الى اسبوعى او يومى فانا اريد ان يظهر الخط عند تاريخ 1/11/2013
ولكنه يظهر على الشمعه رقم 2 للاسبوعى او اليومى
اما بالنسبه للمستطيل
اريد رسمه على رينج الفتره كامله
فمثلا
عند اختيار الشمعه 3 لفريم اسبوعى
يرسم مستطيل على هذه الفتره لفريم 4 ساعات
وعند اختيار شمعه 3 لفريم يومى
يرسم مستطيل على فترة فريم الساعه





ابو سمر 05-01-2014 04:57 PM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
استفسار اخر
كيف احدد اعلى هاى واقل لو لفتره معينه على فريم معين
مع عدم معرفتنا لرقم شمعة اعلى هاى او اقل لو
كما موضح بالصوره

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

GBPJPY 05-01-2014 05:47 PM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

المشاركة الأصلية كتبت بواسطة العوامى (المشاركة 648286)


،،،مثلا اذا اردت معرفة عدد النقاط التى تحركها السعر فى خلال الخمس دقائق الماضية ، ستقوم بطرح هاى شمعة الخمس دقائق من اللو والناتج هو حركة السعر،،،

كود:


  double h = iHigh(Symbol(),PERIOD_M5,1);
  double l = iLow(Symbol(),PERIOD_M5,1);
 
  double t = MathAbs(h-l);
 
  Comment(t);


شكرا لك استاذى الكريم

اسلام العوامى 05-01-2014 06:20 PM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

المشاركة الأصلية كتبت بواسطة ابو سمر (المشاركة 648298)
انا عملت مؤشر للرينج يجمع اكثر من فريم من الشهرى الى الساعه
وجعلت لكل فريم اعداد من النوع بولين للاختيار بين اظهاره او اخفاءه
واضفت المتغير شيفت لتحديد رقم الشمعه من اعدادات المؤشر
فعند اختيار شمعه ولتكن
رقم 2 على الفريم الشهرى سيكون التاريخ 1/11/2013
عندما اغير الفريم الى اسبوعى او يومى فانا اريد ان يظهر الخط عند تاريخ 1/11/2013
ولكنه يظهر على الشمعه رقم 2 للاسبوعى او اليومى
اما بالنسبه للمستطيل
اريد رسمه على رينج الفتره كامله
فمثلا
عند اختيار الشمعه 3 لفريم اسبوعى
يرسم مستطيل على هذه الفتره لفريم 4 ساعات
وعند اختيار شمعه 3 لفريم يومى
يرسم مستطيل على فترة فريم الساعه





،،،بالنسبة للخطوط فيكون الكود الخاص بها كالتالى،،،

كود:


  for  (i=Bars-1;i>=0;i--) {
 
          int StartCandle=(iBarShift(Symbol(),PERIOD_MN1,Time[i],false)+1);
datetime ff =      iTime(Symbol(),PERIOD_MN1,StartCandle);
     
     
        {           
            ObjectCreate("VLine"+i, OBJ_VLINE, 0,ff, 0);
            ObjectSet("VLine"+i, OBJPROP_STYLE,Style);
            ObjectSet("VLine"+i, OBJPROP_COLOR, Color);
            ObjectSet("VLine"+i, OBJPROP_WIDTH,Width);
        }         
     

  }

،،،اما بالنسبة لرسم المستطيل فيكون مثل الكود التالى ولكن تقوم بعمل متغير وتضعه فى مكان الرقم 3 ،،،

كود:


 datetime  Time1 = iTime(Symbol(),PERIOD_W1,3);
 double    pric1 = iHigh(Symbol(),PERIOD_W1,3);
 datetime  Time2 = iTime(Symbol(),PERIOD_W1,3-1);
 double  pric2 = iLow(Symbol(),PERIOD_W1,3);
   
    ObjectCreate("V"+i, OBJ_RECTANGLE, 0,Time1, pric1,Time2,pric2);
            ObjectSet("V", OBJPROP_STYLE,Style);
            ObjectSet("V", OBJPROP_COLOR, Color);
            ObjectSet("V", OBJPROP_WIDTH,Width);


valantinolala 05-01-2014 06:23 PM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

المشاركة الأصلية كتبت بواسطة العوامى (المشاركة 648241)


،،،وعليكم السلام ورحمة الله وبركاتة،،،

،،،اهلا بك اخى الكريم ، اولا ستحتاج الى وظيفة لمسح الاوامر المعلقة كالتالى،،،

كود:


void Delete(int type){
for(int a=0;a<OrdersTotal();a++){
if(OrderSelect(a,SELECT_BY_POS,MODE_TRADES))
if(OrderType()==type && OrderMagicNumber()==Magicnumber){
OrderDelete(OrderTicket());
  }
  }
 }


،،،ودالة اخرى لحساب عدد الصفقات المفتوحة حسب النوع،،،

كود:


 int ordercount(int type){
 int x=0;
  for(int i =0;i<OrdersTotal();i++){
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
      if(OrderSymbol()==Symbol() && Magicnumber==OrderMagicNumber()&& OrderType()==type){
        x++;
      }
    }
  }
    return(x);
  }


،،،بعد ذلك فى ستارت تقوم بكتابة جملة شرطية اذا كان عدد صفقات الشراء المفتوحة تساوى واحد وتقوم باستدعاء وظيفة مسح الاوامر المعلقة وتضع بها نوع الصفقة سيل ستوب والعكس للبيع فيكون الكود كالتالى،،،

كود:


if(ordercount(OP_BUY)==1){Delete(OP_SELLSTOP);}
if(ordercount(OP_SELL)==1){Delete(OP_BUYSTOP);}



الف شكر لك اخي علي الساعده

اسلام العوامى 05-01-2014 06:33 PM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

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

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

،،،يجب ان تعرف الرينج الذى تريد ان تبحث فيه ، وتستخدم الكود التالى،،،

كود:


 int StartCandle=(iBarShift(Symbol(),PERIOD_W1,Time[0],false)+1);
double  high = High[iHighest(Symbol(),PERIOD_W1,MODE_HIGH,30,StartCandle)];
double  low = Low[iLowest(Symbol(),PERIOD_W1,MODE_LOW,30,StartCandle)];


،،،فى هذا المثال قمت بالبحث عن اعلى هاى واقل لو لفترة 30 شمعة على فريم الويكلى تبدأ من الشمعه رقم صفر،،،

GBPJPY 06-01-2014 12:49 PM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
السلام عليكم استاذى العوامى
طيب انا عايز طريقة التوقيت
بمعنى
فى وقت مثلا 20 دقيقة تحرك السعر 40 نقطة
يتم فتح صفقة بيع ا وشراء
وبعد فتح الصفقة
يتم العمل من جديد
ويحسب التوقيت مع السعر النقاط
ولك الشكر والعرفان

sunegypt 06-01-2014 02:31 PM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

المشاركة الأصلية كتبت بواسطة اسلام العوامى (المشاركة 648243)


،،،وعليكم السلام ورحمة الله وبركاتة،،،

،،،اولا سوف تحتاج الى دالة لمعرفة اكبر ربح موجود،،،

كود:


double MaxProfit()
{
    for(int i = OrdersTotal() - 1; i >= 0; i--)
      {                                                     
      if( OrderSelect(i, SELECT_BY_POS) &&  OrderMagicNumber()== MagicNumber &&  OrderSymbol()== Symbol()  )
        {
        if( iBarShift(NULL,0,OrderOpenTime(),false) > 1 )
            {
            double Max_Profit = MathMax(Max_Profit,OrderProfit() );
            }
        else
            {
            Max_Profit = OrderProfit();
            }
       
        }
        }
        return(Max_Profit);
}

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

كود:


void CloseMaxProfit()
{
  int ticket;
 
  double profit = MaxProfit();
 
 
        for (int i =1 ;i>0;i--) 
 
          {
 
            for (int x = OrdersTotal()-1;x>0;x--)
             
       
                {
 
                OrderSelect(x,SELECT_BY_POS);
 
                if (OrderProfit() >= profit) ticket = OrderTicket();
                     
 
                }
                   
                           
            OrderSelect(ticket,SELECT_BY_TICKET);
 
            if (OrderType() == OP_BUY)
            OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),NULL);
            if (OrderType() == OP_SELL)
            OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),NULL);   
           
                 
          }
     
  }



استاذى الغالى اسلام

اسف والله لانى بتعبك معى كثيرا

لكن الكود المكتوب هنا الان لايغلق اكبر صفقه رابحه .. ولكن يغلق اخر صفقه دائما كلما فتحت .. ( باعتبار ان اخر صفقه هى اكبر صفقه )...

وبالتالى فهو بيصفر الحساب فى اربع ساعات فقط

***** المطلوب *****

عندما يرتد السعر ويفتح صفقه شراء يشوف صفقات البيع الرابحه ويغلق اكبر صفقه رابحه فقط

وعندما يرتد السعر ويفتح صفقه بيع يشوف صفقات الشراء الرابحه ويغلق اكبر صفقه رابحه فقط

.................................................. .......................................

ومطلوب نفس الطلب السابق ولكن لاغلاق اقل صفقه رابحه اخى اسلام ..


يعنى نفس الطلب ولكن على اغلاق اقل لوت حجما رابح ..



أرجوا ان تكون فكرتى وصلتك استاذى الكريم

فأنا اجرب بعض الامور واريد ان اعرف ايهما افضل

وأسف استاذى الغالى على تعبك معنا

ربنا يزيدك من فضله وعلمه

اللهم امين

اسلام العوامى 06-01-2014 04:42 PM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

المشاركة الأصلية كتبت بواسطة GBPJPY (المشاركة 649499)
السلام عليكم استاذى العوامى
طيب انا عايز طريقة التوقيت
بمعنى
فى وقت مثلا 20 دقيقة تحرك السعر 40 نقطة
يتم فتح صفقة بيع ا وشراء
وبعد فتح الصفقة
يتم العمل من جديد
ويحسب التوقيت مع السعر النقاط
ولك الشكر والعرفان

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

كود:


Sleep(1200000);


اسلام العوامى 06-01-2014 04:44 PM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

المشاركة الأصلية كتبت بواسطة sunegypt (المشاركة 649509)
استاذى الغالى اسلام

اسف والله لانى بتعبك معى كثيرا

لكن الكود المكتوب هنا الان لايغلق اكبر صفقه رابحه .. ولكن يغلق اخر صفقه دائما كلما فتحت .. ( باعتبار ان اخر صفقه هى اكبر صفقه )...
هل يقوم باغلاق الصفقة حتى اذا كانت خاسرة؟؟
وبالتالى فهو بيصفر الحساب فى اربع ساعات فقط

***** المطلوب *****

عندما يرتد السعر ويفتح صفقه شراء يشوف صفقات البيع الرابحه ويغلق اكبر صفقه رابحه فقط

وعندما يرتد السعر ويفتح صفقه بيع يشوف صفقات الشراء الرابحه ويغلق اكبر صفقه رابحه فقط

.................................................. .......................................

ومطلوب نفس الطلب السابق ولكن لاغلاق اقل صفقه رابحه اخى اسلام ..


يعنى نفس الطلب ولكن على اغلاق اقل لوت حجما رابح ..



أرجوا ان تكون فكرتى وصلتك استاذى الكريم

فأنا اجرب بعض الامور واريد ان اعرف ايهما افضل

وأسف استاذى الغالى على تعبك معنا

ربنا يزيدك من فضله وعلمه

اللهم امين

،،،هناك استفسار بالاقتباس،،،


الساعة الآن 11:32 AM

Powered by vBulletin® Copyright ©2000 - 2024

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