عرض مشاركة واحدة
قديم 03-02-2014, 02:14 PM   المشاركة رقم: 257
الكاتب
Mr.Ahmed Saleh
عضو جديد

البيانات
تاريخ التسجيل: Jan 2014
رقم العضوية: 18199
الدولة: Egypt - Alexandria
المشاركات: 18
بمعدل : 0.00 يوميا

الإتصالات
الحالة:
Mr.Ahmed Saleh غير متواجد حالياً
وسائل الإتصال:

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

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


،،،المشكلة كانت فى swich حيث ان المتغير auto period ياخذ قيمته من ضرب ناتج swich فى maperiod وانت قمت بوضع swich اسفل المعادلة او العملية الحسابية فكانت قيمة mm دائما 0،،،

،،،تم تعديل الكود ويعمل بشكل جيد،،،

كود:
#property copyright "ahmed saleh"
#property link      "facebook"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red


 int maperiod        =20;
  int mashift         =0;
  int mamethod        =0;
  int appliedpriceto  =0;

  double mm ;
  double MaCal[];
  double auto_period;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
int period = Period();
  switch(period)
       {
       case 5:  mm=12   ;break;
       case 15: mm=4    ;break;
       case 30: mm=2    ;break;
       case 60: mm=1    ;break;
       case 240:mm=0.25 ;break;
       }

   auto_period=maperiod*mm;
       SetIndexBuffer(0,MaCal);
       SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1,Red);
       SetIndexDrawBegin(0,auto_period);
       SetIndexLabel(0,"auto ma");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  
//----
   int    counted_bars=IndicatorCounted();
       
       if (counted_bars<0)
               return(-1);
       if (counted_bars>0)
               counted_bars--;
       int uncounted_bars = Bars-counted_bars;              
     for(int i=0;i<uncounted_bars;i++)
                      
       {
      MaCal[i]= iMA(NULL,0,auto_period,mashift,mamethod,appliedpriceto,i);
       }  
//----
   return(0);
  }
//+------------------------------------------------------------------+
شكرا جدا يا استاذ اسلام



عرض البوم صور Mr.Ahmed Saleh  
رد مع اقتباس
  #257  
قديم 03-02-2014, 02:14 PM
Mr.Ahmed Saleh Mr.Ahmed Saleh غير متواجد حالياً
عضو جديد
افتراضي رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4

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


،،،المشكلة كانت فى swich حيث ان المتغير auto period ياخذ قيمته من ضرب ناتج swich فى maperiod وانت قمت بوضع swich اسفل المعادلة او العملية الحسابية فكانت قيمة mm دائما 0،،،

،،،تم تعديل الكود ويعمل بشكل جيد،،،

كود:
#property copyright "ahmed saleh"
#property link      "facebook"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red


 int maperiod        =20;
  int mashift         =0;
  int mamethod        =0;
  int appliedpriceto  =0;

  double mm ;
  double MaCal[];
  double auto_period;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
int period = Period();
  switch(period)
       {
       case 5:  mm=12   ;break;
       case 15: mm=4    ;break;
       case 30: mm=2    ;break;
       case 60: mm=1    ;break;
       case 240:mm=0.25 ;break;
       }

   auto_period=maperiod*mm;
       SetIndexBuffer(0,MaCal);
       SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1,Red);
       SetIndexDrawBegin(0,auto_period);
       SetIndexLabel(0,"auto ma");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  
//----
   int    counted_bars=IndicatorCounted();
       
       if (counted_bars<0)
               return(-1);
       if (counted_bars>0)
               counted_bars--;
       int uncounted_bars = Bars-counted_bars;              
     for(int i=0;i<uncounted_bars;i++)
                      
       {
      MaCal[i]= iMA(NULL,0,auto_period,mashift,mamethod,appliedpriceto,i);
       }  
//----
   return(0);
  }
//+------------------------------------------------------------------+
شكرا جدا يا استاذ اسلام




رد مع اقتباس