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

    افتراضي

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

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

    بالإضافه طبعا إلى الإنشغال بتنظيم الخطط الخاصه بالقسم للعام الجديد 2012 بإذن الله
    آخر تعديل بواسطة MR.dollar ، 13-12-2011 الساعة 09:01 PM
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة kwahab مشاهدة المشاركة
    لك جزيل الشكر اخي دولار انا اطلعت على خانة جورنال لاستكشاف الاخطاء ووجدت التالي
    الملف المرفق 299172
    الاكسبرت لما يشتغل على عدة ازواج وحسب ما فهمت تاتي مرحلة اين تغلق شمعة الخمس دقايق مثلا فييتعين على الاكسبرت غلق صفقات في ازواج وفتح اخرى في ازواج اخرى وبذلك يصبح هناك انشغال في مكان ما منه.فلا يشتري حيث يجب عليه ان يشتري مثلا..وهذا هو الخطا الذي كان يحصل فيه.
    ما الحل حسب رايك اخي الكريم.وجزاك الله كل خير
    الاكسبرت مرفق..
    الخطأ الآن هو أن الإكسبرت يريد أن يفتح صفقة مثلا على اليورو دولار وفي نفس الوقت يفتح صفقة على عمله أخرى بالتالي يتم فتح الصفقه على أحد العملات
    ثم يعطي خيار أن السيرفر مشغول على العمله الأخرى
    بالتالي يجب أن تضع شرط
    كود PHP:
    if(IsTradeContextBusy()==false
    مع شروط الدخول الأخرى
    وهو يعني إذا لم يكن السيرفر مشغول فسوف يتم تنفيذ الأمر
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة raidy مشاهدة المشاركة
    الاخ العزيز اسامه
    لدي اكسبيرت عملت عليه على الديمو يعتمد على CCI وعند معاكسة السعر 25 يبداء بفتح المضاعفات ولا يوجد اي مشكلة وبدات اليوم في تشغله على الحقيقي ولاحظت ان السعر انعكس 51 نقطه ولم يفتح مضاعفات بارغ انني استخدمت نفس الاعدادات التي تعمل على الديمو ، هل الشركة ابطلة عمل المظاعفات فيه ام ماذا حدث بالظبط.
    والله ولي التوفيق
    يجب أن تتأكد أولا إذا لم يكن يظهر خطأ في خانة Journal و Experts بالتالي العيب ليس من الإكسبرت وتكون قلصت حجم البحث عن المشكله
    ثم تتأكد من أن قوانين الشركه لا تمنع فتح الصفقه لكن لا يوجد ما يسمى أن الشركة أبطلت عمل المضاعفات فالشركه لا أتعلم أنه مضاعفات لكن الشركه يأتي لها الأمر فتح صفقة بحجم لوت كذا
    فيتم تنفيذ الأمر أو عدم تنفيذه إذا لم ينفذ فيجب أن يظهر لديك رقم الخطأ
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  4. #1429
    الصورة الرمزية Mr. Bader
    Mr. Bader غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2011
    الإقامة
    اليمن
    المشاركات
    597

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    أرفق المؤشر كامل
    كود:
    /+------------------------------------------------------------------+
    //|  SnakeForce                                   SnakeInBorders.mq4 |
    //|                                      "" |
    //|                            |
    //+------------------------------------------------------------------+
    #property copyright ""
    #property link      ""
    //+------------------------------------------------------------------+
    #property  indicator_separate_window
    #property indicator_buffers 4
    #property indicator_color1  Lime
    #property indicator_color2  Red
    #property indicator_color3  Lime
    #property indicator_color4  Red
    //----
    extern int  cPeriod=24; 
    //----
    double    ForceUp[];
    double    ForceDown[];
    double    ResistanceUp[];
    double    ResistanceDown[];
    double    Mart[];
    //----
    double Snake_Sum, Snake_Weight, Snake_Sum_Minus, Snake_Sum_Plus;
    //----
    int init()
    {
    int    draw_begin;
    double indperiod,val1,val2;
    string CommentStr;
       draw_begin=3*cPeriod;
       IndicatorBuffers(5);
       SetIndexBuffer(0,ForceUp);
       SetIndexBuffer(1,ForceDown);
       SetIndexBuffer(2,ResistanceUp);
       SetIndexBuffer(3,ResistanceDown);
       SetIndexBuffer(4,Mart);
       SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,2);
       SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,2);
       SetIndexStyle(2,DRAW_HISTOGRAM);
       SetIndexStyle(3,DRAW_HISTOGRAM);
       SetIndexStyle(4,DRAW_NONE);
       SetIndexLabel(2,NULL);
       SetIndexLabel(3,NULL);
       SetIndexLabel(4,NULL);
       SetIndexDrawBegin(0,draw_begin);
       SetIndexDrawBegin(1,draw_begin);
       SetIndexDrawBegin(2,draw_begin);
       SetIndexDrawBegin(3,draw_begin);
       SetIndexDrawBegin(4,draw_begin);
       indperiod=1.0*cPeriod*Period();
       if(indperiod<60)
       {
          CommentStr=DoubleToStr(indperiod,0);
          CommentStr=" M"+CommentStr+", FORCE UP -DOWN ";
       }
       else
       {
          indperiod=indperiod/60;
          if(indperiod>=24)
          {
             val1=MathAbs(MathRound(indperiod/24)-indperiod/24);
             if(val1<0.01)
             {
                CommentStr=DoubleToStr(indperiod/24,0);
                CommentStr=" D"+CommentStr+", FORCE UP -DOWN ";
             }
              else
             {
                CommentStr=DoubleToStr(indperiod/24,1);
                CommentStr=" D"+CommentStr+", FORCE UP -DOWN ";
             }
          }
          else
          {
             val1=MathAbs(MathRound(indperiod)-indperiod);
             if(val1<0.01)
             {
                CommentStr=DoubleToStr(indperiod,0);
                CommentStr=" H"+CommentStr+", FORCE UP -DOWN ";
             }
              else
             {
                CommentStr=DoubleToStr(indperiod,1);
                CommentStr=" H"+CommentStr+", FORCE UP -DOWN ";
             }
          }
       }
       IndicatorShortName("SnakeInBorders"+CommentStr);
       return(0);
    }
    //----
    void deinit()
    {
    }
    //----
    int start()
    {
    int FirstPos, ExtCountedBars=0,i;
       if(Bars<=50) return(0);
       if(cPeriod<21) return(0);
       ExtCountedBars=IndicatorCounted();
       if (ExtCountedBars<0) return(-1);
       if (ExtCountedBars>0) ExtCountedBars--;
       FirstPos=Bars-ExtCountedBars-1;
       if(FirstPos>Bars-cPeriod-7)
       {
          FirstPos=Bars-cPeriod-7;
          Mart[FirstPos+cPeriod]=SnakeFirstCalc(FirstPos+cPeriod);
          for(i=FirstPos+cPeriod-1;i>FirstPos;i--) SnakeNextCalc(i);
       }
       Snake(FirstPos);
       return(0);
    }
    //----
    void Snake(int Pos)
    {
    int i;
       if(Pos<6) Pos=6;
       Mart[Pos]=SnakeFirstCalc(Pos);
       Drawing(Pos);
       Pos--;
       while(Pos>=5)
       {
          Mart[Pos]=SnakeNextCalc(Pos);
          Drawing(Pos);
          Pos--;
       }
       while(Pos>0)
       {
          Mart[Pos]=SnakeFirstCalc(Pos);
          Drawing(Pos);
          Pos--;
       }
       if(Pos==0) 
       {
    //      Mart[Pos]=iMA(NULL,0,6,0,MODE_LWMA,PRICE_TYPICAL,0);
          Mart[Pos]=iMA(NULL,0,6,0,MODE_LWMA,PRICE_CLOSE,0);
          Drawing(Pos);
       }
       return;
    }
    //----
    double SnakePrice(int Shift)
    {
    //   return((2*Close[Shift]+High[Shift]+Low[Shift])/4);
       return(Close[Shift]);
    }
    //----
    double SnakeFirstCalc(int Shift)
    {
    int i, j, w;
       Snake_Sum=0.0;
       if(Shift<5)
       {
          Snake_Weight=0.0;
          i=0;
          w=Shift+5;
          while(w>=Shift)
          {
             i++;
             Snake_Sum=Snake_Sum+i*SnakePrice(w);
             Snake_Weight=Snake_Weight+i;
             w--;
          }
          while(w>=0)
          {
             i--;
             Snake_Sum=Snake_Sum+i*SnakePrice(w);
             Snake_Weight=Snake_Weight+i;
             w--;
          }
       }
       else
       {
          Snake_Sum_Minus=0.0;
          Snake_Sum_Plus=0.0;
          for(j=Shift-5,i=Shift+5,w=1; w<=5; j++,i--,w++)
          {
             Snake_Sum=Snake_Sum+w*(SnakePrice(i)+SnakePrice(j));
             Snake_Sum_Minus=Snake_Sum_Minus+SnakePrice(i);
             Snake_Sum_Plus=Snake_Sum_Plus+SnakePrice(j);
          }
          Snake_Sum=Snake_Sum+6*SnakePrice(Shift);
          Snake_Sum_Minus=Snake_Sum_Minus+SnakePrice(Shift);
          Snake_Weight=36;
       }
       return(Snake_Sum/Snake_Weight);
    }
    //----
    double SnakeNextCalc(int Shift)
    {
       Snake_Sum_Plus=Snake_Sum_Plus+SnakePrice(Shift-5);
       Snake_Sum=Snake_Sum-Snake_Sum_Minus+Snake_Sum_Plus;
       Snake_Sum_Minus=Snake_Sum_Minus-SnakePrice(Shift+6)+SnakePrice(Shift);
       Snake_Sum_Plus=Snake_Sum_Plus-SnakePrice(Shift);
       return(Snake_Sum/Snake_Weight);
    }
    //----
    void Drawing(int Shift)
    {
    double val,Dval,val1,val2,val11,val22,val3;
       val= 5*(Mart[Shift]-Mart[ArrayMinimum(Mart,cPeriod,Shift)])/9;
       Dval=5*(Mart[Shift]-
               Mart[Shift+1]+
               Mart[ArrayMinimum(Mart,cPeriod,Shift+1)]-
               Mart[ArrayMinimum(Mart,cPeriod,Shift)]   )/9;
       if(Dval>0) 
       {
          ForceUp[Shift]=val;
          ResistanceUp[Shift]=0;
       }
       else 
       {
          ForceUp[Shift]=0;
          ResistanceUp[Shift]=val;
       }
       val= 5*(Mart[Shift]-Mart[ArrayMaximum(Mart,cPeriod,Shift)])/9;
       Dval=5*(Mart[Shift]-
               Mart[Shift+1]+
               Mart[ArrayMaximum(Mart,cPeriod,Shift+1)]-
               Mart[ArrayMaximum(Mart,cPeriod,Shift)]   )/9;
       if(Dval<0) 
       {
          ForceDown[Shift]=val;
          ResistanceDown[Shift]=0;
       }
       else 
       {
          ForceDown[Shift]=0;
          ResistanceDown[Shift]=val;
       }
       return;
    }

  5. #1430
    الصورة الرمزية cher90
    cher90 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2009
    العمر
    33
    المشاركات
    550

    افتراضي

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

    أنا أحاول تعلم MQL4 بدأت بكورس الأخ وضاح عطار و مؤشر Candle Length إتبعت الخطوات كما كانت موضحة لاكن لم أفهم لماذا لا يشتغل المؤشر أرجو التوضيح وشكرا
    كود PHP:
    //+------------------------------------------------------------------+
    //|                                                Candle Length.mq4 |
    //|                                       Copyright 2011  Cher Amine |
    //|                                                [email protected] |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2011  Cher Amine"
    #property link      "[email protected]"
    #property indicator_separate_window
    #property indicator_buffers 2
    #property indicator_color1 Green
    #property indicator_color2 Red
    #property indicator_minimum 0
    #property indicator_level1 0.0020
    #property indicator_level2 0.0040
    double BufLength1[];
    double BufLength2[];
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int init()
      {
      
    SetIndexBuffer(0,BufLength1);
      
    SetIndexBuffer(1,BufLength2);
      
    SetIndexStyle(0,DRAW_HISTOGRAM);
      
    SetIndexStyle(1,DRAW_HISTOGRAM);
      return(
    0);
      }

    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function                       |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
    int start()
      {
       for(
    int i=0;i<Bars;i++)
       }
       
    BufLength1[i]=High[i]-Low[i];
       
    BufLength2[i]=MathAbs(Close[i]-Open[i]);
       {
       return(
    0);
      }
    //+------------------------------------------------------------------+ 

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة cher90 مشاهدة المشاركة
    السلام عليكم ورحمة الله

    أنا أحاول تعلم MQL4 بدأت بكورس الأخ وضاح عطار و مؤشر Candle Length إتبعت الخطوات كما كانت موضحة لاكن لم أفهم لماذا لا يشتغل المؤشر أرجو التوضيح وشكرا
    كود PHP:
    //+------------------------------------------------------------------+
    //|                                                Candle Length.mq4 |
    //|                                       Copyright 2011  Cher Amine |
    //|                                                [email protected] |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2011  Cher Amine"
    #property link      "[email protected]"
    #property indicator_separate_window
    #property indicator_buffers 2
    #property indicator_color1 Green
    #property indicator_color2 Red
    #property indicator_minimum 0
    #property indicator_level1 0.0020
    #property indicator_level2 0.0040
    double BufLength1[];
    double BufLength2[];
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int init()
      {
      
    SetIndexBuffer(0,BufLength1);
      
    SetIndexBuffer(1,BufLength2);
      
    SetIndexStyle(0,DRAW_HISTOGRAM);
      
    SetIndexStyle(1,DRAW_HISTOGRAM);
      return(
    0);
      }

    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function                       |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
    int start()
      {
       for(
    int i=0;i<Bars;i++)
       }
       
    BufLength1[i]=High[i]-Low[i];
       
    BufLength2[i]=MathAbs(Close[i]-Open[i]);
       {
       return(
    0);
      }
    //+------------------------------------------------------------------+ 
    وعليكم السلام ورحمة الله وبركاته
    الخطأ عندك في هذا الجزء
    كود PHP:
     for(int i=0;i<Bars;i++)
      }
       
    BufLength1[i]=High[i]-Low[i];
       
    BufLength2[i]=MathAbs(Close[i]-Open[i]);
      { 
    الأقواس كتبتها بشكل خاطئ
    يجب أن تكون بهذا الشكل
    كود PHP:
     for(int i=0;i<Bars;i++)
     {
       
    BufLength1[i]=High[i]-Low[i];
       
    BufLength2[i]=MathAbs(Close[i]-Open[i]);
      } 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  7. #1432
    الصورة الرمزية Mustapoiha
    Mustapoiha غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2011
    الإقامة
    الجزائر
    المشاركات
    128

    افتراضي

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

  8. #1433
    الصورة الرمزية cher90
    cher90 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2009
    العمر
    33
    المشاركات
    550

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وعليكم السلام ورحمة الله وبركاته
    الخطأ عندك في هذا الجزء
    كود PHP:
     for(int i=0;i<Bars;i++)
      }
       
    BufLength1[i]=High[i]-Low[i];
       
    BufLength2[i]=MathAbs(Close[i]-Open[i]);
      { 
    الأقواس كتبتها بشكل خاطئ
    يجب أن تكون بهذا الشكل
    كود PHP:
     for(int i=0;i<Bars;i++)
     {
       
    BufLength1[i]=High[i]-Low[i];
       
    BufLength2[i]=MathAbs(Close[i]-Open[i]);
      } 
    بارك الله فيك أستاذي المؤشر شغال 100%

    أكملت الكورس وصلت لمؤشر الإنفجار السعري في هذه المرحة بالضبط
    كود PHP:
    int    limiticounted_bars IndicatorCounted();
    //  إذا لم يكن هناك شمعات جديدة اخرج دون حساب
       
    if(counted_bars 0
           return(-
    1);
    //  إذا كان هناك شمعات جديدة احسب مقدار الشموع الجديدة فقط
       
    if(counted_bars 0
           
    counted_bars--;
       
    limit Bars counted_bars;
    //  الحلقة تكون من عدد الشموع الجديدة المكونة وحتى الشمعة الحالية رقم صفر
       
    for(limit 1>= 0i--) 
    هذا الجزء فهمته نوعا ما
    كود PHP:
    int    limiticounted_bars IndicatorCounted();
    //  إذا لم يكن هناك شمعات جديدة اخرج دون حساب
       
    if(counted_bars 0
           return(-
    1);
    //  إذا كان هناك شمعات جديدة احسب مقدار الشموع الجديدة فقط
       
    if(counted_bars 0
           
    counted_bars--; 
    لاكن هذا الجزء
    كود PHP:
       limit Bars counted_bars;
    //  الحلقة تكون من عدد الشموع الجديدة المكونة وحتى الشمعة الحالية رقم صفر
       
    for(limit 1>= 0i--) 
    لم أفهم معنى " limit " و المتغير "i"

  9. #1434
    الصورة الرمزية Mustapoiha
    Mustapoiha غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2011
    الإقامة
    الجزائر
    المشاركات
    128

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Mustapoiha مشاهدة المشاركة
    ممكن من الاساتده المبرمجين
    كود استدعاء المؤشرين المرفقين
    وجاكم الله كل الخير
    كود الخط العلوي و
    كود الخط السفلي

    وجزاكم الله كل الخير

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Mustapoiha مشاهدة المشاركة
    ممكن من الاساتده المبرمجين
    كود استدعاء المؤشرين المرفقين
    وجاكم الله كل الخير
    بالنسبه للمؤشر الأول فلا يمكنك إستخدام الداله iCustom لإستدعاء هذا المؤشر لذلك ستحتاج إلى إضافة الكود مباشرة بداخل الإكسبرت وسيكون كالآتي
    كود PHP:
    double yesterday_high=iHigh(NULLPERIOD_H1,Highest(NULLPERIOD_H1MODE_HIGHBarsBack0)); 
    double yesterday_low=iLow(NULLPERIOD_H1,Lowest(NULLPERIOD_H1MODE_LOWBarsBack0)); 
    حيث
    BarsBack سيكون متغير خارجي تقوم بتعريفه كما هو معرف في المؤشر
    كود PHP:
    extern int BarsBack=8
    بالنسبة للمؤشر الثاني سيكون كالآتي
    كود PHP:
        double UpperLine=iCustom(Symbol(),0,"NB-channel",2,0);
        
    double LowerLine=iCustom(Symbol(),0,"NB-channel",1,0); 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة cher90 مشاهدة المشاركة
    بارك الله فيك أستاذي المؤشر شغال 100%

    أكملت الكورس وصلت لمؤشر الإنفجار السعري في هذه المرحة بالضبط
    كود PHP:
    int    limiticounted_bars IndicatorCounted();
    //  إذا لم يكن هناك شمعات جديدة اخرج دون حساب
       
    if(counted_bars 0
           return(-
    1);
    //  إذا كان هناك شمعات جديدة احسب مقدار الشموع الجديدة فقط
       
    if(counted_bars 0
           
    counted_bars--;
       
    limit Bars counted_bars;
    //  الحلقة تكون من عدد الشموع الجديدة المكونة وحتى الشمعة الحالية رقم صفر
       
    for(limit 1>= 0i--) 
    هذا الجزء فهمته نوعا ما
    كود PHP:
    int    limiticounted_bars IndicatorCounted();
    //  إذا لم يكن هناك شمعات جديدة اخرج دون حساب
       
    if(counted_bars 0
           return(-
    1);
    //  إذا كان هناك شمعات جديدة احسب مقدار الشموع الجديدة فقط
       
    if(counted_bars 0
           
    counted_bars--; 
    لاكن هذا الجزء
    كود PHP:
       limit Bars counted_bars;
    //  الحلقة تكون من عدد الشموع الجديدة المكونة وحتى الشمعة الحالية رقم صفر
       
    for(limit 1>= 0i--) 
    لم أفهم معنى " limit " و المتغير "i"
    بالنسبة للجزء الأول فالفكره أننا لا نريد في كل مره يتحرك فيها السعر أن يقوم المؤشر بحساب قيم جميع الشمعات مره أخرى لذلك نحتاج إلى كود بحيث يقوم المؤشر بمعرفة عدد الشمعات التي تم حسابها سابقا ونطرح منه عدد الشموع الكلي الموجود على الشارت فينتج لنا عدد الشمعات التي لم يتم حسابها بعد فيتم حسابها
    وفائدة هذا الكود هو زيادة سرعة المؤشر
    شرح الكود كالآتي
    أولا قام بتعريف المتغيرات limit و i و counted_bars
    جعل قيمة counted_bars=indicatorCounted()
    والداله indicator_counted تقوم بمعرفة عدد الشموع التي تم قرائتها في آخر مره
    والآن لنفرض مثلا أن عدد الشموع على الشارت 20 شمعه وعدد الشموع التي تم قرائتها حتى الآن هو 19 شمعه أي أن هناك شمعه جديده إفتتحت
    فتصبح قيمة
    limit=Bars - counted_bars
    أي limit = 20 - 19 أي limit=1 وهي عدد الشموع التي لم يتم حساب قيمها بعد
    ثم يبدأ في إستخدام الحلقات وأنصحك بمراجعة هذا الموضوع لشرح الحلقات

    https://forum.arabictrader.com/t93679.html#post1698141

    ومعناه كالآتي
    أولا يعطي قيمة المتغير i قيمة مبدئية وهي المتغير limit والذي قمنا بمعرفة قيمته سابقا
    ثم يبدأ بالمقارنه هل قيمة i أكبر من أو تساوي 0 إذا كان ترو يطرح واحد من قيمة i ثم ينفذ العملية التي بداخل الحلقه for
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  12. #1437
    الصورة الرمزية محمد بن حامد
    محمد بن حامد غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Apr 2010
    المشاركات
    616

    افتراضي

    الاخ الحبيب مستر دولار اسعد الله اوقاتك بكل خير
    هل بالامكان استرجاع قيمة ادوات الميتاتريدر الموجودة في القائمة insert
    مثل gann line / gann fan / andrews pichfork
    او القنوات مثل linear regression / standard deviatioin
    انا حاولت استخدام ObjectGetValueByShift للحصول على قيمة الحد العلوي او الحد السفلي للقناة linear regression ولكنها لا ترجع بشيء

  13. #1438
    الصورة الرمزية Mr. Bader
    Mr. Bader غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2011
    الإقامة
    اليمن
    المشاركات
    597

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة sera مشاهدة المشاركة
    كود:
    /+------------------------------------------------------------------+
    //|  SnakeForce                                   SnakeInBorders.mq4 |
    //|                                      "" |
    //|                            |
    //+------------------------------------------------------------------+
    #property copyright ""
    #property link      ""
    //+------------------------------------------------------------------+
    #property  indicator_separate_window
    #property indicator_buffers 4
    #property indicator_color1  Lime
    #property indicator_color2  Red
    #property indicator_color3  Lime
    #property indicator_color4  Red
    //----
    extern int  cPeriod=24; 
    //----
    double    ForceUp[];
    double    ForceDown[];
    double    ResistanceUp[];
    double    ResistanceDown[];
    double    Mart[];
    //----
    double Snake_Sum, Snake_Weight, Snake_Sum_Minus, Snake_Sum_Plus;
    //----
    int init()
    {
    int    draw_begin;
    double indperiod,val1,val2;
    string CommentStr;
       draw_begin=3*cPeriod;
       IndicatorBuffers(5);
       SetIndexBuffer(0,ForceUp);
       SetIndexBuffer(1,ForceDown);
       SetIndexBuffer(2,ResistanceUp);
       SetIndexBuffer(3,ResistanceDown);
       SetIndexBuffer(4,Mart);
       SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,2);
       SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,2);
       SetIndexStyle(2,DRAW_HISTOGRAM);
       SetIndexStyle(3,DRAW_HISTOGRAM);
       SetIndexStyle(4,DRAW_NONE);
       SetIndexLabel(2,NULL);
       SetIndexLabel(3,NULL);
       SetIndexLabel(4,NULL);
       SetIndexDrawBegin(0,draw_begin);
       SetIndexDrawBegin(1,draw_begin);
       SetIndexDrawBegin(2,draw_begin);
       SetIndexDrawBegin(3,draw_begin);
       SetIndexDrawBegin(4,draw_begin);
       indperiod=1.0*cPeriod*Period();
       if(indperiod<60)
       {
          CommentStr=DoubleToStr(indperiod,0);
          CommentStr=" M"+CommentStr+", FORCE UP -DOWN ";
       }
       else
       {
          indperiod=indperiod/60;
          if(indperiod>=24)
          {
             val1=MathAbs(MathRound(indperiod/24)-indperiod/24);
             if(val1<0.01)
             {
                CommentStr=DoubleToStr(indperiod/24,0);
                CommentStr=" D"+CommentStr+", FORCE UP -DOWN ";
             }
              else
             {
                CommentStr=DoubleToStr(indperiod/24,1);
                CommentStr=" D"+CommentStr+", FORCE UP -DOWN ";
             }
          }
          else
          {
             val1=MathAbs(MathRound(indperiod)-indperiod);
             if(val1<0.01)
             {
                CommentStr=DoubleToStr(indperiod,0);
                CommentStr=" H"+CommentStr+", FORCE UP -DOWN ";
             }
              else
             {
                CommentStr=DoubleToStr(indperiod,1);
                CommentStr=" H"+CommentStr+", FORCE UP -DOWN ";
             }
          }
       }
       IndicatorShortName("SnakeInBorders"+CommentStr);
       return(0);
    }
    //----
    void deinit()
    {
    }
    //----
    int start()
    {
    int FirstPos, ExtCountedBars=0,i;
       if(Bars<=50) return(0);
       if(cPeriod<21) return(0);
       ExtCountedBars=IndicatorCounted();
       if (ExtCountedBars<0) return(-1);
       if (ExtCountedBars>0) ExtCountedBars--;
       FirstPos=Bars-ExtCountedBars-1;
       if(FirstPos>Bars-cPeriod-7)
       {
          FirstPos=Bars-cPeriod-7;
          Mart[FirstPos+cPeriod]=SnakeFirstCalc(FirstPos+cPeriod);
          for(i=FirstPos+cPeriod-1;i>FirstPos;i--) SnakeNextCalc(i);
       }
       Snake(FirstPos);
       return(0);
    }
    //----
    void Snake(int Pos)
    {
    int i;
       if(Pos<6) Pos=6;
       Mart[Pos]=SnakeFirstCalc(Pos);
       Drawing(Pos);
       Pos--;
       while(Pos>=5)
       {
          Mart[Pos]=SnakeNextCalc(Pos);
          Drawing(Pos);
          Pos--;
       }
       while(Pos>0)
       {
          Mart[Pos]=SnakeFirstCalc(Pos);
          Drawing(Pos);
          Pos--;
       }
       if(Pos==0) 
       {
    //      Mart[Pos]=iMA(NULL,0,6,0,MODE_LWMA,PRICE_TYPICAL,0);
          Mart[Pos]=iMA(NULL,0,6,0,MODE_LWMA,PRICE_CLOSE,0);
          Drawing(Pos);
       }
       return;
    }
    //----
    double SnakePrice(int Shift)
    {
    //   return((2*Close[Shift]+High[Shift]+Low[Shift])/4);
       return(Close[Shift]);
    }
    //----
    double SnakeFirstCalc(int Shift)
    {
    int i, j, w;
       Snake_Sum=0.0;
       if(Shift<5)
       {
          Snake_Weight=0.0;
          i=0;
          w=Shift+5;
          while(w>=Shift)
          {
             i++;
             Snake_Sum=Snake_Sum+i*SnakePrice(w);
             Snake_Weight=Snake_Weight+i;
             w--;
          }
          while(w>=0)
          {
             i--;
             Snake_Sum=Snake_Sum+i*SnakePrice(w);
             Snake_Weight=Snake_Weight+i;
             w--;
          }
       }
       else
       {
          Snake_Sum_Minus=0.0;
          Snake_Sum_Plus=0.0;
          for(j=Shift-5,i=Shift+5,w=1; w<=5; j++,i--,w++)
          {
             Snake_Sum=Snake_Sum+w*(SnakePrice(i)+SnakePrice(j));
             Snake_Sum_Minus=Snake_Sum_Minus+SnakePrice(i);
             Snake_Sum_Plus=Snake_Sum_Plus+SnakePrice(j);
          }
          Snake_Sum=Snake_Sum+6*SnakePrice(Shift);
          Snake_Sum_Minus=Snake_Sum_Minus+SnakePrice(Shift);
          Snake_Weight=36;
       }
       return(Snake_Sum/Snake_Weight);
    }
    //----
    double SnakeNextCalc(int Shift)
    {
       Snake_Sum_Plus=Snake_Sum_Plus+SnakePrice(Shift-5);
       Snake_Sum=Snake_Sum-Snake_Sum_Minus+Snake_Sum_Plus;
       Snake_Sum_Minus=Snake_Sum_Minus-SnakePrice(Shift+6)+SnakePrice(Shift);
       Snake_Sum_Plus=Snake_Sum_Plus-SnakePrice(Shift);
       return(Snake_Sum/Snake_Weight);
    }
    //----
    void Drawing(int Shift)
    {
    double val,Dval,val1,val2,val11,val22,val3;
       val= 5*(Mart[Shift]-Mart[ArrayMinimum(Mart,cPeriod,Shift)])/9;
       Dval=5*(Mart[Shift]-
               Mart[Shift+1]+
               Mart[ArrayMinimum(Mart,cPeriod,Shift+1)]-
               Mart[ArrayMinimum(Mart,cPeriod,Shift)]   )/9;
       if(Dval>0) 
       {
          ForceUp[Shift]=val;
          ResistanceUp[Shift]=0;
       }
       else 
       {
          ForceUp[Shift]=0;
          ResistanceUp[Shift]=val;
       }
       val= 5*(Mart[Shift]-Mart[ArrayMaximum(Mart,cPeriod,Shift)])/9;
       Dval=5*(Mart[Shift]-
               Mart[Shift+1]+
               Mart[ArrayMaximum(Mart,cPeriod,Shift+1)]-
               Mart[ArrayMaximum(Mart,cPeriod,Shift)]   )/9;
       if(Dval<0) 
       {
          ForceDown[Shift]=val;
          ResistanceDown[Shift]=0;
       }
       else 
       {
          ForceDown[Shift]=0;
          ResistanceDown[Shift]=val;
       }
       return;
    }
    استاذنا مستر دولار اتمنى ان تعدل المؤشر بحيث تظهر الاشارة بعد اغلاق الشمعة

  14. #1439
    الصورة الرمزية Mustapoiha
    Mustapoiha غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2011
    الإقامة
    الجزائر
    المشاركات
    128

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    بالنسبه للمؤشر الأول فلا يمكنك إستخدام الداله iCustom لإستدعاء هذا المؤشر لذلك ستحتاج إلى إضافة الكود مباشرة بداخل الإكسبرت وسيكون كالآتي
    كود PHP:
    double yesterday_high=iHigh(NULLPERIOD_H1,Highest(NULLPERIOD_H1MODE_HIGHBarsBack0)); 
    double yesterday_low=iLow(NULLPERIOD_H1,Lowest(NULLPERIOD_H1MODE_LOWBarsBack0)); 
    حيث
    BarsBack سيكون متغير خارجي تقوم بتعريفه كما هو معرف في المؤشر
    كود PHP:
    extern int BarsBack=8
    بالنسبة للمؤشر الثاني سيكون كالآتي
    كود PHP:
        double UpperLine=iCustom(Symbol(),0,"NB-channel",2,0);
        
    double LowerLine=iCustom(Symbol(),0,"NB-channel",1,0); 
    استادنا الغالي كيف ادعو لك الله يرزقك ما تتمنى ويكون في عونك

  15. #1440
    الصورة الرمزية cher90
    cher90 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2009
    العمر
    33
    المشاركات
    550

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    بالنسبة للجزء الأول فالفكره أننا لا نريد في كل مره يتحرك فيها السعر أن يقوم المؤشر بحساب قيم جميع الشمعات مره أخرى لذلك نحتاج إلى كود بحيث يقوم المؤشر بمعرفة عدد الشمعات التي تم حسابها سابقا ونطرح منه عدد الشموع الكلي الموجود على الشارت فينتج لنا عدد الشمعات التي لم يتم حسابها بعد فيتم حسابها
    وفائدة هذا الكود هو زيادة سرعة المؤشر
    شرح الكود كالآتي
    أولا قام بتعريف المتغيرات limit و i و counted_bars
    جعل قيمة counted_bars=indicatorCounted()
    والداله indicator_counted تقوم بمعرفة عدد الشموع التي تم قرائتها في آخر مره
    والآن لنفرض مثلا أن عدد الشموع على الشارت 20 شمعه وعدد الشموع التي تم قرائتها حتى الآن هو 19 شمعه أي أن هناك شمعه جديده إفتتحت
    فتصبح قيمة
    limit=Bars - counted_bars
    أي limit = 20 - 19 أي limit=1 وهي عدد الشموع التي لم يتم حساب قيمها بعد
    ثم يبدأ في إستخدام الحلقات وأنصحك بمراجعة هذا الموضوع لشرح الحلقات

    https://forum.arabictrader.com/t93679.html#post1698141

    ومعناه كالآتي
    أولا يعطي قيمة المتغير i قيمة مبدئية وهي المتغير limit والذي قمنا بمعرفة قيمته سابقا
    ثم يبدأ بالمقارنه هل قيمة i أكبر من أو تساوي 0 إذا كان ترو يطرح واحد من قيمة i ثم ينفذ العملية التي بداخل الحلقه for
    بارك الله فيك أستاذي الأن إتضحت لي الصورة إلى المرة القادمة

المواضيع المتشابهه

  1. موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
    By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 11
    آخر مشاركة: 15-12-2023, 02:03 PM
  2. عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
    By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملات
    مشاركات: 280
    آخر مشاركة: 27-08-2009, 10:30 PM

الاوسمة لهذا الموضوع


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