الرجاء التعديل على هذا المؤشر للاستوكاستيك
النتائج 1 إلى 6 من 6
  1. #1
    تاريخ التسجيل
    Sep 2006
    الإقامة
    المملكة العربية السعودية
    المشاركات
    2,924

    افتراضي الرجاء التعديل على هذا المؤشر للاستوكاستيك

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


    هذا مؤشر للاستوكاستيك (خطين) يقوم برسم أسهم للأعلى وللأسفل حسب تقاطع الاستوكاستيك


    والمطلوب اضافة شرط آخر لهذا المؤشر (متغير خارجي منطقي bool لحرية الاختيار)


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


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



    وهذا هو الكود

    كود PHP:
    //compile//
    //+------------------------------------------------------------------+
    //|                                       Stochastic_Cross_Alert.mq4 |
    //|                         Copyright © 2006, Robert Hill            |
    //|                                                                  |
    //| Written Robert Hill for use with AIME for the stochastic cross   |
    //| to draw arrows and popup alert or send email                     |
    //+------------------------------------------------------------------+#property copyright "Copyright © 2006, Robert Hill"#property indicator_chart_window
    #property indicator_buffers 2
    #property indicator_color1 LawnGreen
    #property indicator_color2 Red
    #property indicator_width1  2
    #property indicator_width2  2extern bool SoundON=false;
    extern bool EmailON=false;
    //---- input parameters
    extern int KPeriod=5;
    extern int DPeriod=5;
    extern int Slowing=5;
    extern int MA_Method 0// SMA 0, EMA 1, SMMA 2, LWMA 3
    extern int PriceField 0// Low/High 0, Close/Close 1
    double CrossUp[];
    double CrossDown[];
    int flagval1 0;
    int flagval2 0;
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int init()
      {
    //---- indicators
       
    SetIndexStyle(0DRAW_ARROW, EMPTY);
       
    SetIndexArrow(0233);
       
    SetIndexBuffer(0CrossUp);
       
    SetIndexStyle(1DRAW_ARROW, EMPTY);
       
    SetIndexArrow(1234);
       
    SetIndexBuffer(1CrossDown);
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function                       |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //---- //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
    int start() {
       
    int limiticounter;
       
    double tmp=0;
       
    double fastMAnowslowMAnowfastMApreviousslowMAprevious;
       
    double RangeAvgRange;
       
    int counted_bars=IndicatorCounted();
    //---- check for possible errors
       
    if(counted_bars<0) return(-1);
    //---- last counted bar will be recounted
       
    if(counted_bars>0counted_bars--;   limit=Bars-counted_bars;
       
       for(
    1<= limiti++) {
       
          
    counter=i;
          
    Range=0;
          
    AvgRange=0;
          for (
    counter=;counter<=i+9;counter++)
          {
             
    AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
          }
          
    Range=AvgRange/10;
           
          
    fastMAnow iStochastic(NULL0KPeriodDPeriodSlowing,MA_MethodPriceFieldMODE_MAINi);
          
    fastMAprevious iStochastic(NULL0KPeriodDPeriodSlowing,MA_MethodPriceFieldMODE_MAINi+1);      slowMAnow iStochastic(NULL0KPeriodDPeriodSlowing,MA_MethodPriceFieldMODE_SIGNALi);
          
    slowMAprevious iStochastic(NULL0KPeriodDPeriodSlowing,MA_MethodPriceFieldMODE_SIGNALi+1);
          
          
    CrossUp[i] = 0;
          
    CrossDown[i] = 0;
          if ((
    fastMAnow slowMAnow) && (fastMAprevious slowMAprevious))
          {
             if (
    == && flagval1==0)
             {
               
    flagval1=1;
               
    flagval2=0;
               if (
    SoundONAlert("BUY signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
               if (
    EmailONSendMail("BUY signal alert","BUY signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
             }
             
    CrossUp[i] = Low[i];
          }
          else if ((
    fastMAnow slowMAnow) && (fastMAprevious slowMAprevious))
          {
             if (
    == && flagval2==0)
             {
              
    flagval2=1;
              
    flagval1=0;
             if (
    SoundONAlert("SELL signal at Ask=",Ask,"\n Bid=",Bid,"\n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
             if (
    EmailONSendMail("SELL signal alert","SELL signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
             }
             
    CrossDown[i] = High[i];
          }
       }   return(
    0);

    الرجاء توضيح ما تم اضافته للاستفادة


    والمؤشر هنا أيضاً

  2. #2
    تاريخ التسجيل
    Jan 2008
    المشاركات
    973

    افتراضي رد: الرجاء التعديل على هذا المؤشر للاستوكاستيك

    ارى الافضل في هذا المؤشر يوضع على فيرم ساعة

    ويفتح بيع عند التقاطع فوق 80 درجة

    ويفتح شراء عند التقاطع للاعلى تحت 20 درجة

  3. #3
    تاريخ التسجيل
    Sep 2006
    الإقامة
    المملكة العربية السعودية
    المشاركات
    2,924

    افتراضي رد: الرجاء التعديل على هذا المؤشر للاستوكاستيك

    بالإنتظار

  4. #4
    تاريخ التسجيل
    Jan 2005
    المشاركات
    1,476

    افتراضي رد: الرجاء التعديل على هذا المؤشر للاستوكاستيك

    اقتباس المشاركة الأصلية كتبت بواسطة wajdyss مشاهدة المشاركة
    بالإنتظار
    أخي الأمير وجدي

    كنت قد عدلت لك مؤشر الماكد ولنفس الفكرة

    قم فقط بتطبيق الكود وضع بدلا من الصفر الرقم الذي ترغب به
    وهنا بمكنك اضافة الرقمين 20 للصعود و80 للهبوط

    ماعليك الا المحاولة

    مـادرو بالانتظار

    تحيتي ومحبتي



    .

  5. #5
    تاريخ التسجيل
    Sep 2006
    الإقامة
    المملكة العربية السعودية
    المشاركات
    2,924

    افتراضي رد: الرجاء التعديل على هذا المؤشر للاستوكاستيك

    اقتباس المشاركة الأصلية كتبت بواسطة madro مشاهدة المشاركة
    أخي الأمير وجدي



    كنت قد عدلت لك مؤشر الماكد ولنفس الفكرة

    قم فقط بتطبيق الكود وضع بدلا من الصفر الرقم الذي ترغب به
    وهنا بمكنك اضافة الرقمين 20 للصعود و80 للهبوط

    ماعليك الا المحاولة

    مـادرو بالانتظار

    تحيتي ومحبتي



    .
    انا آسف جداً لهذا الخطأ الجسيم

    فقد كنت اعتقد ان هناك اختلاف كبير بين المؤشرين ، لذلك لم اقارن بينهما من ناحية الاكواد

    ولكن عندما راجعت تعديلك على مؤشر الماكد وجدت ان هناك تشابه في شرط ظهور الاسهم وقمت بالتعديل بالمطلوب

    والحمد لله كل شيء تمام و 100%

    وهاهو الكود الجديد

    كود PHP:
    //compile//
    //+------------------------------------------------------------------+
    //|                                       Stochastic_Cross_Alert.mq4 |
    //|                         Copyright © 2006, Robert Hill            |
    //|                                                                  |
    //| Written Robert Hill for use with AIME for the stochastic cross   |
    //| to draw arrows and popup alert or send email                     |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2006, Robert Hill"
    #property indicator_chart_window
    #property indicator_buffers 2
    #property indicator_color1 LawnGreen
    #property indicator_color2 Red
    #property indicator_width1  2
    #property indicator_width2  2
    extern bool SoundON=false;
    extern bool EmailON=false;
    //---- input parameters
    extern int KPeriod=5;
    extern int DPeriod=5;
    extern int Slowing=5;
    extern int MA_Method 0// SMA 0, EMA 1, SMMA 2, LWMA 3
    extern int PriceField 0// Low/High 0, Close/Close 1
     
    double CrossUp[];
    double CrossDown[];
    int flagval1 0;
    int flagval2 0;
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int init()
      {
    //---- indicators
       
    SetIndexStyle(0DRAW_ARROW, EMPTY);
       
    SetIndexArrow(0233);
       
    SetIndexBuffer(0CrossUp);
       
    SetIndexStyle(1DRAW_ARROW, EMPTY);
       
    SetIndexArrow(1234);
       
    SetIndexBuffer(1CrossDown);
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function                       |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //---- 
    //----
       
    return(0);
      }
     
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
    int start() {
       
    int limiticounter;
       
    double tmp=0;
       
    double fastMAnowslowMAnowfastMApreviousslowMAprevious;
       
    double RangeAvgRange;
       
    int counted_bars=IndicatorCounted();
    //---- check for possible errors
       
    if(counted_bars<0) return(-1);
    //---- last counted bar will be recounted
       
    if(counted_bars>0counted_bars--;
       
    limit=Bars-counted_bars;
     
       for(
    1<= limiti++) {
     
          
    counter=i;
          
    Range=0;
          
    AvgRange=0;
          for (
    counter=;counter<=i+9;counter++)
          {
             
    AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
          }
          
    Range=AvgRange/10;
     
          
    fastMAnow iStochastic(NULL0KPeriodDPeriodSlowing,MA_MethodPriceFieldMODE_MAINi);
          
    fastMAprevious iStochastic(NULL0KPeriodDPeriodSlowing,MA_MethodPriceFieldMODE_MAINi+1);
          
    slowMAnow iStochastic(NULL0KPeriodDPeriodSlowing,MA_MethodPriceFieldMODE_SIGNALi);
          
    slowMAprevious iStochastic(NULL0KPeriodDPeriodSlowing,MA_MethodPriceFieldMODE_SIGNALi+1);
     
          
    CrossUp[i] = 0;
          
    CrossDown[i] = 0;
          if ((
    fastMAnow slowMAnow) && (fastMAprevious slowMAprevious)&& fastMAnow>50)
          {
             if (
    == && flagval1==0)
             {
               
    flagval1=1;
               
    flagval2=0;
               if (
    SoundONAlert("BUY signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
               if (
    EmailONSendMail("BUY signal alert","BUY signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
             }
             
    CrossUp[i] = Low[i];
          }
          else if ((
    fastMAnow slowMAnow) && (fastMAprevious slowMAprevious)&& fastMAnow<50)
          {
             if (
    == && flagval2==0)
             {
              
    flagval2=1;
              
    flagval1=0;
             if (
    SoundONAlert("SELL signal at Ask=",Ask,"\n Bid=",Bid,"\n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
             if (
    EmailONSendMail("SELL signal alert","SELL signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
             }
             
    CrossDown[i] = High[i];
          }
       }
       return(
    0);

    شكراً جزيلاً لك يا فارسنا

    وجزاك الله عنا كل خير

  6. #6
    تاريخ التسجيل
    Jan 2008
    المشاركات
    21

    افتراضي رد: الرجاء التعديل على هذا المؤشر للاستوكاستيك

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

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

  1. الرجاء التعديل على مؤشر الفايبو
    By ayman_am76 in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 10
    آخر مشاركة: 26-05-2010, 12:59 PM
  2. ارجو التعديل على هذا المؤشر
    By $sofien$ in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 1
    آخر مشاركة: 31-01-2010, 10:45 PM
  3. الرجاء التعديل على مؤشر
    By the_king1983 in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 10
    آخر مشاركة: 01-05-2009, 09:54 PM
  4. الرجاء التعديل فى هذا الاكسبرت
    By ابو عبد الفتاح in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 13
    آخر مشاركة: 28-11-2008, 08:55 AM
  5. الرجاء التعديل على هذا المؤشر للماكد
    By wajdyss in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 6
    آخر مشاركة: 01-01-2008, 04:03 PM

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