طريقة بسيطة لاضافة تنبيه لاي مؤشر

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • #16
    رد: طريقة بسيطة لاضافة تنبيه لاي مؤشر

    وصلنا للخانة الخامسه وارجوا الانتباه قليلا هنا

    هذه الخانة تعني ma method

    ماهو ma metod

    ببساطة نذهب للعددات موفينك كما في الصورة

    نجد في خانت ma method

    4 خيارات

    Simple نرمز لها ب 0

    Exponential نرمز لها ب 1

    Smoothed نرمز لها ب 2

    Linear weighted نرمز لها ب 3

    في اعددات موفينك 50 نجد ma method = Exponential

    فيكون الكود كالتالي

    كود PHP:
    iMA(0,0,50,0,1 
    
    وفي اعددات موفينك 200 نجد ma method = Simple

    فيكون الكود كالتالي

    كود PHP:
    iMA(0,0,200,0,0 
    
    الملفات المرفقة

    تعليق


    • #17
      رد: طريقة بسيطة لاضافة تنبيه لاي مؤشر

      الخانة السادسة وقبل الاخيرة ترمز ل

      apply to

      ومثل ما سبق نجدها في اعددات الموفينك

      حيث اول قيمة تساوي 0

      الثانية = 1 وهكذا

      بالتطبيق علي مثالنا نجد ان الموفينك 50 و 200 الاثنين

      applty to = close

      وهي تمثل اول قيمه فنرمز لها ب 0

      فيكون الكود بالنسبة لموفينك 50 كالتالي

      كود PHP:
      iMA(0,0,50,0,1,0 
      
      وبالنسبة لموفينك 200 يكون كالتالي

      كود PHP:
      iMA(0,0,200,0,0,0 
      

      تعليق


      • #18
        رد: طريقة بسيطة لاضافة تنبيه لاي مؤشر

        وصلنا الي اخر خانة

        وهي تمثل الشمعة التي نريد الاشتغال عليها

        وارجوا الانتباه جيدا هنا لان الشمعة ستكون داخل الحلقة وليست مباشره

        فيما سبق قلنا ان اخر شمعة نرمز لها بالرمز 0 والشمعة التي قبلها بالرمز 1 وهكذا

        وبما اننا في حلقة تمر علي كل الشموع

        فاننا نستخدم الحرف i والذي يدل علي الشمعة الحالية التي تمر عليها الحلقة

        والحرف i+1 يدل علي الشمعة التي قبلها

        فتكون الكتابة النهائية للموفينك 50 بدلالة الشمعة i يعني الشمعة التي تمر عليها الحلقة for

        كالتالي
        كود PHP:
        iMA(0,0,50,0,1,0,i) 
        
        والكتابة النهائية للموفينك 200 للشمعة i التي تمر عليها الحلقة

        كود PHP:
        iMA(0,0,200,0,0,0,i) 
        
        يتبع

        تعليق


        • #19
          رد: طريقة بسيطة لاضافة تنبيه لاي مؤشر

          الي هنا انتهينا من معرفة منادات الموفينك 50 و 200

          ناتي الان الي شرح التقاطع

          التقاطع الصاعد كما قلنا سابقا يتبع الموفينك 50 يعني الموفينك 50 اكبر من الموفينك 200

          ومعني تقاطع هو ان الموفينكات كانت معكوسة في الشمعة التي تسبق التقاطع

          يعني كان الموفينك 200 اكبر من الموفينك 50 في الشمعة التي تسبق التقاطع

          سنبسط هذا المفهو الي جزئين لكي يكون الشرح واضح جدا

          يتبع

          تعليق


          • #20
            رد: طريقة بسيطة لاضافة تنبيه لاي مؤشر

            التقاطع كما قلنا ينقسم الي جزئين

            قبل التقاطع بعد التقاطع


            سنترجم هذا الكلام الي البرنامج حيث نشتخدم الحلقة for للمرور علي كل الشموع والحرف i للتعبير عن

            الشمعة

            لما تمر الحلقة for علي الشمعة i ويحدث تقاطع صاعد

            نجد ان في الشمعة i كان موفينك 50 اكبر من الموفينك 200

            نترجم الي لغة البرمجه
            كود PHP:
            iMA(0,0,50,0,1,0,i)>iMA(0,0,200,0,0,0,i) 
            
            والشمعة التي قبل الشمعة i والتي نرمز لها ب i+1 الموفينك 200 اكبر من الموفينك 50

            نترجم الي لغة البرمجه

            كود PHP:
            iMA(0,0,200,0,0,0,i+1)>iMA(0,0,50,0,1,0,i+1) 
            
            ولكي نربط الشرطين نستخذم العلامة &&

            العلامة && ترمز الي الحرف "و "

            فيصبح الربط بين الترجمتين كالتالي
            كود PHP:
            iMA(0,0,200,0,0,0,i+1)>iMA(0,0,50,0,1,0,i+1)&&iMA(0,0,50,0,1,0,i)>iMA(0,0,200,0,0,0,i) 
            
            يتبع

            تعليق


            • #21
              رد: طريقة بسيطة لاضافة تنبيه لاي مؤشر

              ناتي الان الي شئ مهم في البرمجة لاكن قبله نرجع الي التقاطع

              قلنا يحدث تقاطع صاعد

              اذا كان

              في الشمعة i كان موفينك 50 اكبر من الموفينك 200

              "و"

              والشمعة التي قبل الشمعة i والتي نرمز لها ب i+1 الموفينك 200 اكبر من الموفينك 50

              لما نترجم الي لغة البرمجة الكتابة

              اذا كان نرمز لها ب الكتابة

              كود PHP:
              if() 
              
              حيث بين القوسين نضع الشرط

              وبما اننا ترجمنا كل شئ وبقي لنا فقط كلمة اذا كان

              فنضف الكلمة الدالة عليها ليصبح لنا الكود كالتالي

              كود PHP:
              if(iMA(0,0,200,0,0,0,i+1)>iMA(0,0,50,0,1,0,i+1)&&iMA(0,0,50,0,1,0,i)>iMA(0,0,200,0,0,0,i)) 
              
              والي هنا قمنا باترجمة معني التقاطع الصعودي للموفينك الي لغة البرمجة

              نفس الشئ بالنسبة للتقاطع الهبوطي مع احترام شروط التقاكع

              تعليق


              • #22
                رد: طريقة بسيطة لاضافة تنبيه لاي مؤشر

                بعدما عرفنا كيف نترجم تقاطع صعودي ناتي الي اضافة سهم يدل علي التقاطع في الشارت

                وهو بسيط جدا جدا جدا

                لاضافة السهم

                لقد عرفنا في ما سبق ووضعنا في الكود سهمين كما قلنا واحد للصعود والاخر للنزول

                السهم للصعود هو

                كود PHP:
                ExtMapBuffer1[i] 
                
                ونرسمه تحت low الشمعة i بمقدار range

                فيكون كود رسم سهم الصعود كالتالي

                كود PHP:
                if(iMA(0,0,200,0,0,0,i+1)>iMA(0,0,50,0,1,0,i+1)&&iMA(0,0,50,0,1,0,i)>iMA(0,0,200,0,0,0,i))
                      {
                      ExtMapBuffer1[i]=Low[i]-Range*0.3;
                      } 
                
                نفس الشئ بالنسبة للكود النازل

                يتبع

                تعليق


                • #23
                  رد: طريقة بسيطة لاضافة تنبيه لاي مؤشر

                  بعد اضافة السهم الصاعد والسهم النازل يصبح الكود للمؤشر كالتالي

                  كود PHP:
                  #property indicator_chart_window
                  #property indicator_buffers 2
                  #property indicator_color1 Lime
                  #property indicator_color2 Blue
                  
                  
                  
                  //--- buffers
                  double ExtMapBuffer1[];
                  double ExtMapBuffer2[];
                  
                  double alertTag;
                  
                  //+------------------------------------------------------------------+
                  //| Custom indicator initialization function                         |
                  //+------------------------------------------------------------------+
                  int init()
                    {
                  //---- indicators
                     SetIndexStyle(0,DRAW_ARROW,EMPTY,3);
                     SetIndexArrow(0,225);
                     SetIndexBuffer(0,ExtMapBuffer1);
                     SetIndexStyle(1,DRAW_ARROW,EMPTY,3);
                     SetIndexArrow(1,226);
                     SetIndexBuffer(1,ExtMapBuffer2);
                  
                  
                     
                     return(0);
                    }
                  //+------------------------------------------------------------------+
                  //| Custom indicator deinitialization function                       |
                  //+------------------------------------------------------------------+
                  int deinit()
                    {
                  //----
                     
                  //----
                     return(0);
                    }
                  //+------------------------------------------------------------------+
                  //| Custom indicator iteration function                              |
                  //+------------------------------------------------------------------+
                  int start()
                    {
                     int limit, i, counter;
                     double Range, AvgRange;
                     int counted_bars=IndicatorCounted();
                  //---- check for possible errors
                     if(counted_bars<0) return(-1);
                  //---- last counted bar will be recounted
                     if(counted_bars>0) counted_bars--;
                  
                     limit=Bars-counted_bars;
                     
                     for(i = 0; i <= limit; i++) {
                     
                        counter=i;
                        Range=0;
                        AvgRange=0;
                        for (counter=i ;counter<=i+9;counter++)
                        {
                           AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
                        }
                        Range=AvgRange/10;
                        
                        if(iMA(0,0,200,0,0,0,i+1)>iMA(0,0,50,0,1,0,i+1)&&iMA(0,0,50,0,1,0,i)>iMA(0,0,200,0,0,0,i))
                        {
                        ExtMapBuffer1[i]=Low[i]-Range*0.3;
                        }
                        
                        if(iMA(0,0,200,0,0,0,i+1)<iMA(0,0,50,0,1,0,i+1)&&iMA(0,0,50,0,1,0,i)<iMA(0,0,200,0,0,0,i))
                        {
                        ExtMapBuffer2[i]=High[i]+Range*0.3;
                        }
                       
                       
                  
                        }
                     return(0);
                    }
                  //+------------------------------------------------------------------+ 
                  
                  بقي فقط اضافة التنبيه الصوتي مع رسالة للشارت الذي حدث فيه التقاطع والفريم

                  يتبع

                  تعليق


                  • #24
                    رد: طريقة بسيطة لاضافة تنبيه لاي مؤشر

                    ملاحضة يمكن التحكم في مكان السهم بتغير القيمة المضروبة في range

                    ناتي لاضافة التنبيه وهو بسيط للغايه

                    نستخدم الدالة Alert للتنبيه وارسال رسالة

                    الان متي نستخدم الدالة alert ؟؟؟؟؟

                    نستخدمها عندما تتحقق نفس شروط السهم + نضيف شئ بسيط فقط لكي نتحكم بالتنبيه مرة واحدة فقط

                    نستخدم متغير من نوع double نسميه alertTag

                    لا نعطيه اي قيمة في البداية

                    وتكتب الكود التالي للتنبيه مرة واحدة

                    كود PHP:
                          if(alertTag!=Time[0]&&iMA(0,0,200,0,0,0,i+1)>iMA(0,0,50,0,1,0,i+1)&&iMA(0,0,50,0,1,0,i)>iMA(0,0,200,0,0,0,i))
                          {
                          Alert("Trend going Up ",Symbol()," ",Period());
                          alertTag = Time[0];
                          } 
                    
                    شرح الكود

                    وضعنا نفس شروط السهم مع اضافة

                    كود PHP:
                    alertTag!=Time[0] 
                    
                    يعني لما يكون alertTag لايساوي وقت الشمعة i

                    وهو شرط محقق دوما لاننا لم نعطي alertTag

                    اي قيمة

                    في اللحضة التي تتحقق فيها شروط السهم الصاعد تتحقق فيعا ايضا شروط التنبيه فيحدث

                    التنبيه اول مرة يكمل البرنامج مسيرته ويضع

                    alertTag يساوي وقت الشمعة i

                    فلما يتغير السعر ومازلنا في الشمعة i يعيد البرنامج نفسه وهنا لا تتحقق شروط التنبيه

                    فلا يحدث صوت

                    لما يتنقل البرنامج الي شمعة جديد يبقي alertTag اخذ وقت الشمعة i+1

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

                    تعليق


                    • #25
                      رد: طريقة بسيطة لاضافة تنبيه لاي مؤشر

                      بقي لنا فقط شرح الرسالة للدالة Alert

                      كود PHP:
                      Alert("Trend going Up ",Symbol()," ",Period()); 
                      
                      كل ما بين "..." يضهر علي الشاشة

                      الدالة
                      كود PHP:
                      Symbol() 
                      
                      تعطينا الشارت المعمول عليه

                      الدالة

                      كود PHP:
                      Period() 
                      
                      تعطينا الوقت المعمول عليه

                      ويصبح الكود النهائي للمؤشر

                      كود PHP:
                      #property indicator_chart_window
                      #property indicator_buffers 2
                      #property indicator_color1 Lime
                      #property indicator_color2 Blue
                      
                      
                      
                      //--- buffers
                      double ExtMapBuffer1[];
                      double ExtMapBuffer2[];
                      
                      double alertTag;
                      
                      //+------------------------------------------------------------------+
                      //| Custom indicator initialization function                         |
                      //+------------------------------------------------------------------+
                      int init()
                        {
                      //---- indicators
                         SetIndexStyle(0,DRAW_ARROW,EMPTY,3);
                         SetIndexArrow(0,225);
                         SetIndexBuffer(0,ExtMapBuffer1);
                         SetIndexStyle(1,DRAW_ARROW,EMPTY,3);
                         SetIndexArrow(1,226);
                         SetIndexBuffer(1,ExtMapBuffer2);
                      
                      
                         
                         return(0);
                        }
                      //+------------------------------------------------------------------+
                      //| Custom indicator deinitialization function                       |
                      //+------------------------------------------------------------------+
                      int deinit()
                        {
                      //----
                         
                      //----
                         return(0);
                        }
                      //+------------------------------------------------------------------+
                      //| Custom indicator iteration function                              |
                      //+------------------------------------------------------------------+
                      int start()
                        {
                         int limit, i, counter;
                         double Range, AvgRange;
                         int counted_bars=IndicatorCounted();
                      //---- check for possible errors
                         if(counted_bars<0) return(-1);
                      //---- last counted bar will be recounted
                         if(counted_bars>0) counted_bars--;
                      
                         limit=Bars-counted_bars;
                         
                         for(i = 0; i <= limit; i++) {
                         
                            counter=i;
                            Range=0;
                            AvgRange=0;
                            for (counter=i ;counter<=i+9;counter++)
                            {
                               AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
                            }
                            Range=AvgRange/10;
                            
                            if(iMA(0,0,200,0,0,0,i+1)>iMA(0,0,50,0,1,0,i+1)&&iMA(0,0,50,0,1,0,i)>iMA(0,0,200,0,0,0,i))
                            {
                            ExtMapBuffer1[i]=Low[i]-Range*0.3;
                            }
                            
                            if(iMA(0,0,200,0,0,0,i+1)<iMA(0,0,50,0,1,0,i+1)&&iMA(0,0,50,0,1,0,i)<iMA(0,0,200,0,0,0,i))
                            {
                            ExtMapBuffer2[i]=High[i]+Range*0.3;
                            }
                            if(alertTag!=Time[0]&&iMA(0,0,200,0,0,0,i+1)>iMA(0,0,50,0,1,0,i+1)&&iMA(0,0,50,0,1,0,i)>iMA(0,0,200,0,0,0,i))
                            {
                            Alert("Trend going Up ",Symbol()," ",Period());
                            alertTag = Time[0];
                            }
                            if(alertTag!=Time[0]&&iMA(0,0,200,0,0,0,i+1)<iMA(0,0,50,0,1,0,i+1)&&iMA(0,0,50,0,1,0,i)<iMA(0,0,200,0,0,0,i))
                            {
                            Alert("Trend going Down ",Symbol()," ",Period());
                            alertTag = Time[0];
                            }
                           
                           
                      
                            }
                         return(0);
                        }
                      //+------------------------------------------------------------------+ 
                      

                      ارجوا ان يكون الشرح مفهوم ومفيد للاخوة

                      وانا اتقبل اي نقذ او توجيه لانني جديد في البرمجة وربما اكون اخطئت

                      فارجوا التصحيح

                      تعليق

                      يعمل...
                      X