النتائج 1 إلى 4 من 4
  1. #1
    الصورة الرمزية super_rio
    super_rio غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2009
    العمر
    35
    المشاركات
    8

    افتراضي مساعدة في برمجة ماكد للـ ار اس اي

    السلام عليكم
    اني احاول برمجة مؤشر ماكد لمؤشر الار اس اي
    وقد قمت بالبحث عن كود مؤشر ماكد وعثرت عليه فعلا وغيرت فيه الخانة الخاصة بسعر الاغلاق الي دالة مؤشر الار اس اي ولكني لم احصل علي شيء رغم ان عقليا المفروض انه يعمل فارجو من الاخوة المساعدة في الكود وياريت حد يشرحلي انا غلطان في ايه لاني احاول تعلم لغة برمجة الخاصة بالميتا ترايدر
    كود PHP:
    //+------------------------------------------------------------------+
    //|                                                  Custom MACD.mq4 |
    //|                      Copyright © 2004, MetaQuotes Software Corp. |
    //|                                       http://www.metaquotes.net/ |
    //+------------------------------------------------------------------+
    #property  copyright "Copyright © 2004, MetaQuotes Software Corp."
    #property  link      "http://www.metaquotes.net/"
    //---- indicator settings
    #property  indicator_separate_window
    #property  indicator_buffers 2
    #property  indicator_color1  Lime
    #property  indicator_color2  Red

    //---- indicator parameters
    extern int FastEMA=12;
    extern int SlowEMA=26;
    extern int SignalSMA=9;
    //---- indicator buffers
    double     ind_buffer1[];
    double     ind_buffer2[];

    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int init()
      {
    //---- drawing settings
       //SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,0);
       
    SetIndexDrawBegin(1,SignalSMA);
       
    IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1);
    //---- indicator buffers mapping
       
    if(!SetIndexBuffer(0,ind_buffer1) && !SetIndexBuffer(1,ind_buffer2))
          Print(
    "cannot set indicator buffers!");
    //---- name for DataWindow and indicator subwindow label
       
    IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");
       
    SetIndexLabel(0,"MACD");
       
    SetIndexLabel(1,"Signal");
    //---- initialization done
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| Moving Averages Convergence/Divergence                           |
    //+------------------------------------------------------------------+
    int start()
      {
       
    int limit;
       
    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;
    //---- macd counted in the 1-st buffer
       
    for(int i=0i<limiti++)
          
    ind_buffer1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,iRSI(NULL,0,14,PRICE_CLOSE,i),i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,iRSI(NULL,0,14,PRICE_CLOSE,i),i);
    //---- signal line counted in the 2-nd buffer
       
    for(i=0i<limiti++)
          
    ind_buffer2[i]=iMAOnArray(ind_buffer1,Bars,SignalSMA,0,MODE_SMA,i);
    //---- done
       
    return(0);
      } 

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة super_rio مشاهدة المشاركة
    السلام عليكم
    اني احاول برمجة مؤشر ماكد لمؤشر الار اس اي
    وقد قمت بالبحث عن كود مؤشر ماكد وعثرت عليه فعلا وغيرت فيه الخانة الخاصة بسعر الاغلاق الي دالة مؤشر الار اس اي ولكني لم احصل علي شيء رغم ان عقليا المفروض انه يعمل فارجو من الاخوة المساعدة في الكود وياريت حد يشرحلي انا غلطان في ايه لاني احاول تعلم لغة برمجة الخاصة بالميتا ترايدر
    كود PHP:
    //+------------------------------------------------------------------+
    //|                                                  Custom MACD.mq4 |
    //|                      Copyright © 2004, MetaQuotes Software Corp. |
    //|                                       http://www.metaquotes.net/ |
    //+------------------------------------------------------------------+
    #property  copyright "Copyright © 2004, MetaQuotes Software Corp."
    #property  link      "http://www.metaquotes.net/"
    //---- indicator settings
    #property  indicator_separate_window
    #property  indicator_buffers 2
    #property  indicator_color1  Lime
    #property  indicator_color2  Red

    //---- indicator parameters
    extern int FastEMA=12;
    extern int SlowEMA=26;
    extern int SignalSMA=9;
    //---- indicator buffers
    double     ind_buffer1[];
    double     ind_buffer2[];

    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int init()
      {
    //---- drawing settings
       //SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,0);
       
    SetIndexDrawBegin(1,SignalSMA);
       
    IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1);
    //---- indicator buffers mapping
       
    if(!SetIndexBuffer(0,ind_buffer1) && !SetIndexBuffer(1,ind_buffer2))
          Print(
    "cannot set indicator buffers!");
    //---- name for DataWindow and indicator subwindow label
       
    IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");
       
    SetIndexLabel(0,"MACD");
       
    SetIndexLabel(1,"Signal");
    //---- initialization done
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| Moving Averages Convergence/Divergence                           |
    //+------------------------------------------------------------------+
    int start()
      {
       
    int limit;
       
    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;
    //---- macd counted in the 1-st buffer
       
    for(int i=0i<limiti++)
          
    ind_buffer1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,iRSI(NULL,0,14,PRICE_CLOSE,i),i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,iRSI(NULL,0,14,PRICE_CLOSE,i),i);
    //---- signal line counted in the 2-nd buffer
       
    for(i=0i<limiti++)
          
    ind_buffer2[i]=iMAOnArray(ind_buffer1,Bars,SignalSMA,0,MODE_SMA,i);
    //---- done
       
    return(0);
      } 
    وعليكم السلام ورحمة الله وبركاته
    لا أخي الكريم عقليا لن يعمل فطريقة كتابة الكود بهذا الشكل خاطئه
    مؤشر الموفينج أفريج عند إستدعائه
    كود PHP:
    iMAstring symbolint timeframeint periodint ma_shiftint ma_methodint applied_priceint shift
    applied_price تأخذ سعر الإغلاق أو الإفتتاح أو الهاي ... إلخ
    لكن لا يمكن إستدعاء مؤشر مكانها


    الطريقة الصحيح لبرمجة المؤشر الذي تريده
    أولا :
    عمل مؤشر خارجي آخر يعتمد على حساب الموفينج أفريج لكن ليس للشمعه لكن سيحسب الموفينج أفريج لقيم مؤشر الآر إس آي
    مثلا جزء بسيط من دالة مؤشر الموفينج أفريج سيمبل
    كود PHP:
    void sma()
      {
       
    double sum=0;
       
    int    i,pos=Bars-ExtCountedBars-1;
    //---- initial accumulation
       
    if(pos<MA_Periodpos=MA_Period;
       for(
    i=1;i<MA_Period;i++,pos--)
          
    sum+=Close[pos];
    //---- main calculation loop
       
    while(pos>=0)
         {
          
    sum+=Close[pos];
          
    ExtMapBuffer[pos]=sum/MA_Period;
           
    sum-=Close[pos+MA_Period-1];
            
    pos--;
         }
    //---- zero initial bars
       
    if(ExtCountedBars<1)
          for(
    i=1;i<MA_Period;i++) ExtMapBuffer[Bars-i]=0;
      } 
    فسوف تستخدم بدلا من سعر الإغلاق Close سوف تستخدم قيم مؤشر الآر إس آي
    ليصبح
    كود PHP:
    void sma()
      {
       
    double sum=0;
       
    int    i,pos=Bars-ExtCountedBars-1;
    //---- initial accumulation
       
    if(pos<MA_Periodpos=MA_Period;
       for(
    i=1;i<MA_Period;i++,pos--)
          
    sum+=iRSI(Symbol(),0,14,PRICE_CLOSE,pos);//Close[pos];
    //---- main calculation loop
       
    while(pos>=0)
         {
          
    sum+=iRSI(Symbol(),0,14,PRICE_CLOSE,pos);//Close[pos];
          
    ExtMapBuffer[pos]=sum/MA_Period;
           
    sum-=iRSI(Symbol(),0,14,PRICE_CLOSE,pos+MA_Period-1);//Close[pos+MA_Period-1];
            
    pos--;
         }
    //---- zero initial bars
       
    if(ExtCountedBars<1)
          for(
    i=1;i<MA_Period;i++) ExtMapBuffer[Bars-i]=0;
      } 
    ثم تستخدم هذا المؤشر لعمل مؤشر ماكد الآر إس آي الذي تريده
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  3. #3
    الصورة الرمزية super_rio
    super_rio غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2009
    العمر
    35
    المشاركات
    8

    افتراضي

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

  4. #4
    الصورة الرمزية super_rio
    super_rio غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2009
    العمر
    35
    المشاركات
    8

    افتراضي

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


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