النتائج 1 إلى 2 من 2
  1. #1
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي كيفية إستخدام الكيبورد في لغة MQL4

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

    أهلا بكم في موضوع تعليمي آخر مع الداله OnChartEvent وإمتداد للموضوع الرئيسي

    https://forum.arabictrader.com/t195197.html

    أحد الإضافات الجديده للغة MQL4 وهو كيفية إستخدام الكيبورد في لغة MQL4 مثلا عند الضغط على زر معين على الكيبورد تريد فتح صفقه أو إغلاق صفقه أو تريد التحكم مهما كان نوع التحكم الذي تريده في الشارت

    سنبدأ بمثال بسيط

    أولا نستخدم الداله OnChartEvent ونوع الحدث في هذه الحاله هو
    كود PHP:
    CHARTEVENT_KEYDOWN 
    مثال
    كود PHP:
    void OnChartEvent(const int id,
                      const 
    long &lparam,
                      const 
    double &dparam,
                      const 
    string &sparam)
    {
     
       if(
    id==CHARTEVENT_KEYDOWN)
       {
        
    // write action type
        
    Print(sparam);
       }
     

    في البداية كل زر في الكيبورد يأخذ رقم معين في المثال السابقه المتغير sparam هو الذي يحمل رقم الزر الذي تم الضغط عليه
    فمثلا حرف a يحمل الرقم 30
    بالتالي عندما أريد وضع الشرط فيمكن أن يكون
    كود PHP:
     if(id==CHARTEVENT_KEYDOWN)
       {
        if(
    sparam==30)Print("A button is pressed");
       } 
    وهكذا مع باقي الأحرف

    في هذا المثال سوف اقوم بعمل إكسبرت بسيط يفتح صفقات بيع وشراء عند الضغط على أحرف B و S ويغلق الصفقه عند الضغط على حرف C
    بالنسبه لأمر الشراء فحرف b يأخذ الرقم 48
    كود PHP:
     if(sparam==48)
        {
         
    //b
          
    if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;}
          if(
    TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}      
          
    ticket=OrderSend(Symbol(),OP_BUY,NormalizeDouble(Lots,Lot_Decimal),NormalizeDouble(Ask,Digits),3*P,SL,TP,"EA",0,0,Blue);
          
    PlaySound("Alert.wav");
        } 
    أمر البيع حرف s يأخذ الرقم 31
    كود PHP:
     else if(sparam==31)
        {
         
    //s
         
    if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;}
         if(
    TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
         
    ticket=OrderSend(Symbol(),OP_SELL,NormalizeDouble(Lots,Lot_Decimal),NormalizeDouble(Bid,Digits),3*P,SL,TP,"EA",0,0,Red); 
         
    PlaySound("Alert.wav");
        } 
    أخيرا أمر إغلاق الصفقه حرف c يأخذ الرقم 46
    كود PHP:
      else if(sparam==46)
        {
         
    //c
         
    CloseOrders();
        } 
    أخيرا مرفق الإكسبرت
    الملفات المرفقة الملفات المرفقة

  2. #2
    الصورة الرمزية msh3al
    msh3al غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2012
    الإقامة
    الكويت
    المشاركات
    410

    افتراضي

    باااااااارك الله فيك وفي جهودك
    وزادك الله علماً ونفع بك اخي مستر


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17