استفسار كيفية قراءة بيانات الشموع من الاحدث الى الاقدم
النتائج 1 إلى 12 من 12
  1. #1
    تاريخ التسجيل
    Jul 2017
    الإقامة
    السعودية
    العمر
    36
    المشاركات
    18

    افتراضي كيفية قراءة بيانات الشموع من الاحدث الى الاقدم

    السلام علكيم

    لو سمحتم اخواني للاسف واجهتني مشكلة اخرى وانا اعمل على المؤشر وهي كيف اجعل الكود اللي اكتبه يقرأ البيانات من الشموع الاقدم الى الاحدث
    كود:
       for(int i=0; i<n; i++)
    
         {
    
          Y[i]=(iHigh(NULL,0,i)+iLow(NULL,0,i))/2;
    
          //Print(Y[i]);
         }
    بحيث يجيب المتوسط للشمعه الاقدم الى الاحدث وهكذا

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

    وانا جربت اني انقص من المتغير i-- ولكن ماحلت المشكلة وتعمل فقط على عكس المصفوفة



    شكراً لكم وارجو اغلاق الموضوع لان طلع سبب المشكلة ليس عكس المصفوفه ولا اعلم اين المشكلة
    آخر تعديل بواسطة Hussam_FX ، 26-09-2019 الساعة 01:46 PM

  2. #2
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,039

    افتراضي

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

    لو سمحتم اخواني للاسف واجهتني مشكلة اخرى وانا اعمل على المؤشر وهي كيف اجعل الكود اللي اكتبه يقرأ البيانات من الشموع الاقدم الى الاحدث
    كود:
       for(int i=0; i<n; i++)
     
         {
     
          Y[i]=(iHigh(NULL,0,i)+iLow(NULL,0,i))/2;
     
          //Print(Y[i]);
         }
    بحيث يجيب المتوسط للشمعه الاقدم الى الاحدث وهكذا

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

    وانا جربت اني انقص من المتغير i-- ولكن ماحلت المشكلة وتعمل فقط على عكس المصفوفة



    شكراً لكم وارجو اغلاق الموضوع لان طلع سبب المشكلة ليس عكس المصفوفه ولا اعلم اين المشكلة
    وعليكم السلام ورحمة الله وبركاته
    إبدأ البحث من الأقدم للأحدث
    مثال
    كود PHP:
    int bars=iBars(Symbol(),PERIOD_CURRENT);
    for(
    int i=bars-1;i>=0;i--)
    {
     
    //your code here

    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  3. #3
    تاريخ التسجيل
    Jul 2017
    الإقامة
    السعودية
    العمر
    36
    المشاركات
    18

    افتراضي

    للاسف استاذي الفاضل الكود لم يعمل معي ممكن يكون لجهلي بالشئ

    ارجو حضرتك انك تتقبل اعرضلك الفكرة لعلى وعسى تقدر تفيدني

    ده الكود بالكامل هعرضه لحضرتك
    كود:
    input int t;
    
    double sum_x=0,sum_y=0,sum_xy=0,sum_x2=0;
    double b1,b0,yy;
    //+------------------------------------------------------------------+
    int OnInit()
      {
       double x[];ArrayResize(x,t);
       double y[];ArrayResize(y,t);
       double xy[];ArrayResize(xy,t);
       double x2[];ArrayResize(x2,t);
    
    //-------------------------Elements of X------------------------------
    
       for(i=0; i<t; i++)
         {
          x[i]=i;
          //Print(x[i]);
         }
    //-----------------------Calculation Sum X-----------------------------
    
       for(i=0; i<t; i++)
    
         {
          sum_x=sum_x+x[i];
          //Print(sum_x);
         }
    //-------------------------Elements of X2------------------------------
    
       for(i=0; i<t; i++)
    
         {
          x2[i]=MathPow(x[i],2);
          //Print(x2[i]);
         }
    
    //-----------------------Calculation Sum X2-----------------------------
    
       for(i=0; i<t; i++)
    
         {
          sum_x2=sum_x2+x2[i];
          //Print(sum_x2);
         }
    
    //-------------------------Elements of Y------------------------------ 
       for(i=0; i<t; i++)
         {
          y[i]=((iHigh(NULL,0,i)+iLow(NULL,0,i))/2);
    
          //Print(y[i]);
         }
    
    //-----------------------Calculation Sum Y-----------------------------
    
       for(i=0; i<t; i++)
    
         {
          sum_y=sum_y+y[i];
          //Print(sum_y);
         }
    //-------------------------Elements of X*Y------------------------------
    
       for(i=0; i<t; i++)
    
         {
          xy[i]=(x[i]*y[i]);
          //Print(xy[i]);
         }
    //-----------------------Calculation Sum X*Y-----------------------------
    
       for(i=0; i<t; i++)
    
         {
          sum_xy=sum_xy+xy[i];
          //Print(sum_xy);
         }
    
       b1=((t*sum_xy)-(sum_x*sum_y))/((t*sum_x2)-(MathPow(sum_x,2)));
    
       b0=(sum_y/t)-((sum_x/t)*(b1));
    
       yy=(b1*t)+b0;
       Print(yy);


    اضغط على الصورة لعرض أكبر

الاســـم:	1.png
المشاهدات:	27
الحجـــم:	7.4 كيلوبايت
الرقم:	516146

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

    المفروض ان يكون ترتيب X وال Y بالمنظر ده

    المهم اني لما بعمل كود ضرب المصفوفتين في بعض بيقوم الكود بضرب المصفوفه بتاعت ال X في ال Y

    ولكن المشكلة انه بيتم قراءة مصفوفة ال Y من الأسفل وبالتالي الناتج بيتغير تغيير كبير

    وانا يمكن بقالي 4 أيام بحاول ادول على حل وحاولت اني اعكس قراءة مصفوفة ال Y واعمل لوب تاني زي ماحضرتك وضحت ولكن برده بتكون نفس النتيجه


    وارجو من حضرتك او اي احد من الاخوة مساعدتي لان يمكن دي اخر خطوة عندي فارجو من حضراتك الاهتمام ومساعدتي فيه واخير اسف للاطالة

    وشكراً

  4. #4
    تاريخ التسجيل
    Jul 2017
    الإقامة
    السعودية
    العمر
    36
    المشاركات
    18

    افتراضي

    UP.........................

  5. #5
    تاريخ التسجيل
    Feb 2016
    الإقامة
    المغرب
    المشاركات
    68

    افتراضي

    كود PHP:
    ضع متغير خارجي
    int bars
    =iBars(Symbol(),PERIOD_CURRENT);
    ثم

    //-------------------------Elements of Y------------------------------ 
    for(i=bars-1i>=oi--) 
         {
          
    y[i]=((iHigh(NULL,0,i)+iLow(NULL,0,i))/2);

          
    //Print(y[i]);

    آخر تعديل بواسطة elassari ، 29-09-2019 الساعة 12:16 AM

  6. #6
    تاريخ التسجيل
    Jul 2017
    الإقامة
    السعودية
    العمر
    36
    المشاركات
    18

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة elassari مشاهدة المشاركة
    كود PHP:
    ضع متغير خارجي
    int bars
    =iBars(Symbol(),PERIOD_CURRENT);
    ثم

    //-------------------------Elements of Y------------------------------ 
    for(i=bars-1i>=oi--) 
         {
          
    y[i]=((iHigh(NULL,0,i)+iLow(NULL,0,i))/2);

          
    //Print(y[i]);

    اخي الفاضل اشكرك على المتابعه مع كل التقدير

    ولكن للاسف لم يعمل الكود وحاولت به كثيراً فأرجو التصحيح لي

    اضغط على الصورة لعرض أكبر

الاســـم:	2.png
المشاهدات:	1
الحجـــم:	23.6 كيلوبايت
الرقم:	516184

    اضغط على الصورة لعرض أكبر

الاســـم:	3.png
المشاهدات:	0
الحجـــم:	36.1 كيلوبايت
الرقم:	516185


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

  7. #7
    تاريخ التسجيل
    Feb 2016
    الإقامة
    المغرب
    المشاركات
    68

    افتراضي

    جرب هذا الكود
    كود PHP:

    input int t
    ;
    int bars=iBars(Symbol(),PERIOD_CURRENT);

    double sum_x=0,sum_y=0,sum_xy=0,sum_x2=0;
    double b1,b0,yy;
    //+------------------------------------------------------------------+
    int OnInit()
      {
       
    double x[];ArrayResize(x,t);
       
    double y[];ArrayResize(y,t);
       
    double xy[];ArrayResize(xy,t);
       
    double x2[];ArrayResize(x2,t);

    //-------------------------Elements of X------------------------------

       
    for(int i=bars;i>=0;i--)
         {
          
    x[i]=i;
          
    //Print(x[i]);
         
    }
    //-----------------------Calculation Sum X-----------------------------

       
    for(i=0i<ti++)

         {
          
    sum_x=sum_x+x[i];
          
    //Print(sum_x);
         
    }
    //-------------------------Elements of X2------------------------------

       
    for(i=0i<ti++)

         {
          
    x2[i]=MathPow(x[i],2);
          
    //Print(x2[i]);
         
    }

    //-----------------------Calculation Sum X2-----------------------------

       
    for(i=0i<ti++)

         {
          
    sum_x2=sum_x2+x2[i];
          
    //Print(sum_x2);
         
    }

    //-------------------------Elements of Y------------------------------ 
       
    for(int i=bars;i>=0;i--)
         {
          
    y[i]=((iHigh(NULL,0,i)+iLow(NULL,0,i))/2);

          
    //Print(y[i]);
         
    }

    //-----------------------Calculation Sum Y-----------------------------

       
    for(i=0i<ti++)

         {
          
    sum_y=sum_y+y[i];
          
    //Print(sum_y);
         
    }
    //-------------------------Elements of X*Y------------------------------

       
    for(i=0i<ti++)

         {
          
    xy[i]=(x[i]*y[i]);
          
    //Print(xy[i]);
         
    }
    //-----------------------Calculation Sum X*Y-----------------------------

       
    for(i=0i<ti++)

         {
          
    sum_xy=sum_xy+xy[i];
          
    //Print(sum_xy);
         
    }

       
    b1=((t*sum_xy)-(sum_x*sum_y))/((t*sum_x2)-(MathPow(sum_x,2)));

       
    b0=(sum_y/t)-((sum_x/t)*(b1));

       
    yy=(b1*t)+b0;
       Print(
    yy); 

  8. #8
    تاريخ التسجيل
    Jul 2017
    الإقامة
    السعودية
    العمر
    36
    المشاركات
    18

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة elassari مشاهدة المشاركة
    جرب هذا الكود
    كود PHP:

    input int t
    ;
    int bars=iBars(Symbol(),PERIOD_CURRENT);

    double sum_x=0,sum_y=0,sum_xy=0,sum_x2=0;
    double b1,b0,yy;
    //+------------------------------------------------------------------+
    int OnInit()
      {
       
    double x[];ArrayResize(x,t);
       
    double y[];ArrayResize(y,t);
       
    double xy[];ArrayResize(xy,t);
       
    double x2[];ArrayResize(x2,t);

    //-------------------------Elements of X------------------------------

       
    for(int i=bars;i>=0;i--)
         {
          
    x[i]=i;
          
    //Print(x[i]);
         
    }
    //-----------------------Calculation Sum X-----------------------------

       
    for(i=0i<ti++)

         {
          
    sum_x=sum_x+x[i];
          
    //Print(sum_x);
         
    }
    //-------------------------Elements of X2------------------------------

       
    for(i=0i<ti++)

         {
          
    x2[i]=MathPow(x[i],2);
          
    //Print(x2[i]);
         
    }

    //-----------------------Calculation Sum X2-----------------------------

       
    for(i=0i<ti++)

         {
          
    sum_x2=sum_x2+x2[i];
          
    //Print(sum_x2);
         
    }

    //-------------------------Elements of Y------------------------------ 
       
    for(int i=bars;i>=0;i--)
         {
          
    y[i]=((iHigh(NULL,0,i)+iLow(NULL,0,i))/2);

          
    //Print(y[i]);
         
    }

    //-----------------------Calculation Sum Y-----------------------------

       
    for(i=0i<ti++)

         {
          
    sum_y=sum_y+y[i];
          
    //Print(sum_y);
         
    }
    //-------------------------Elements of X*Y------------------------------

       
    for(i=0i<ti++)

         {
          
    xy[i]=(x[i]*y[i]);
          
    //Print(xy[i]);
         
    }
    //-----------------------Calculation Sum X*Y-----------------------------

       
    for(i=0i<ti++)

         {
          
    sum_xy=sum_xy+xy[i];
          
    //Print(sum_xy);
         
    }

       
    b1=((t*sum_xy)-(sum_x*sum_y))/((t*sum_x2)-(MathPow(sum_x,2)));

       
    b0=(sum_y/t)-((sum_x/t)*(b1));

       
    yy=(b1*t)+b0;
       Print(
    yy); 


    اخي العزيز شكراً لك ولكن نفس الخطأ يظهر معي وذلك بسبب ان المتغير bars لا توجد له قيمه يقرأ منه اللوب

    بمعنى تحديد فترة معينه يتم القراءة منها فكيف اذا سمحت بقدر اضيف قيمة له ؟

  9. #9
    تاريخ التسجيل
    Jul 2017
    الإقامة
    السعودية
    العمر
    36
    المشاركات
    18

    افتراضي

    اخواني الاعزاء المثال بصورة اوضح

    كود:
    //double x[6]={7,10,4,3,2,9};
    double x[6]={9,2,3,4,10,7};
    
    double y[6]={10,15,5,4,3,13};
    //+------------------------------------------------------------------+
    int OnInit()
    
      {
    
       for(int i=0; i<ArraySize(x); i++)
         {
    
          x[i]=i;
          Print(x[i]);
         }
    //-------------------------------------------------------------
       for(int i=0; i<ArraySize(y); i++)
    
         {
          Print(y[i]);
         }
    //----------------------------------------------------------------
       for(int i=0; i<ArraySize(xy); i++)
    
         {
          xy[i]=(x[i]*y[i]);
          Print(xy[i]);
         }



    المثال بصورة اوضح بالارقام اني عندي مصفوفة ولتكن x كما في الكود السابق يتم قراءتها من اليسار الى اليمين

    وانا حابب انها يتم قراءتها من اليمين الى الشمال لان بعد ذلك اقوم بضربهم في بعض وبالتالي الناتج بيكون غير صحيح لو المصفوفه مقلوبة
    حاولت اني اعمل اقلب القراءة بهذة الطريقة

    for(int i=x[5];i>=0;i--)

    ولكن تبقى المشكلة كما هي والمصفوفة ايضاً تقراء من اليسار الى اليمين

    هنا في هذا المثال باماكاني تبديل الارقام ولكن اذا تم وضع متغير بيكون الموضوع شبه مستحيل

    فارجو منكم مساعدتي في حلها ولكم جزيل الشكر
    آخر تعديل بواسطة Hussam_FX ، 30-09-2019 الساعة 02:29 AM

  10. #10
    تاريخ التسجيل
    Feb 2016
    الإقامة
    المغرب
    المشاركات
    68

    افتراضي

    كود PHP:

    //double x[6]={7,10,4,3,2,9};
    double x[6]={9,2,3,4,10,7};

    double y[6]={10,15,5,4,3,13};
    //+------------------------------------------------------------------+
    int OnInit()

      {

       for(
    int i=6i>=0i--)
         {

          
    x[i]=i;
          Print(
    x[i]);
         }
    //-------------------------------------------------------------
          
    for(int i=6i>=0i--)

         {
          Print(
    y[i]);
         }
    //----------------------------------------------------------------
       
    for(int i=6i>=0i--)

         {
          
    xy[i]=(x[i]*y[i]);
          Print(
    xy[i]);
         } 

  11. #11
    تاريخ التسجيل
    Jul 2017
    الإقامة
    السعودية
    العمر
    36
    المشاركات
    18

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة elassari مشاهدة المشاركة
    كود PHP:

    //double x[6]={7,10,4,3,2,9};
    double x[6]={9,2,3,4,10,7};

    double y[6]={10,15,5,4,3,13};
    //+------------------------------------------------------------------+
    int OnInit()

      {

       for(
    int i=6i>=0i--)
         {

          
    x[i]=i;
          Print(
    x[i]);
         }
    //-------------------------------------------------------------
          
    for(int i=6i>=0i--)

         {
          Print(
    y[i]);
         }
    //----------------------------------------------------------------
       
    for(int i=6i>=0i--)

         {
          
    xy[i]=(x[i]*y[i]);
          Print(
    xy[i]);
         } 
    استاذي الفاضل


    النتيجة نفسها ولو حابب تعرف كيف نفسها جرب انك تعمل Print(xy[i]); في الحالتين


    في الحالة الاولى كما ترى
    اضغط على الصورة لعرض أكبر

الاســـم:	1.png
المشاهدات:	0
الحجـــم:	42.4 كيلوبايت
الرقم:	516259
    اضغط على الصورة لعرض أكبر

الاســـم:	2.png
المشاهدات:	0
الحجـــم:	29.9 كيلوبايت
الرقم:	516261

    في الحلة الثانية وهي اني اعكس المصفوفة داخل ال Loop

    اضغط على الصورة لعرض أكبر

الاســـم:	3.png
المشاهدات:	0
الحجـــم:	43.4 كيلوبايت
الرقم:	516262
    اضغط على الصورة لعرض أكبر

الاســـم:	2.png
المشاهدات:	0
الحجـــم:	29.9 كيلوبايت
الرقم:	516261

    نفس النتيجة


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

الاســـم:	4.png
المشاهدات:	0
الحجـــم:	37.5 كيلوبايت
الرقم:	516263

    ستكون هذه النتيجة الصحيحة كما يظهر بالاسفل
    اضغط على الصورة لعرض أكبر

الاســـم:	5.png
المشاهدات:	0
الحجـــم:	20.4 كيلوبايت
الرقم:	516264


    اتمنى اني اكون وصلت لحضرتك وللاعضاء الفكرة بصورة افضل

    انا ابحث عن طريقة عملية اني اقرااء مصفوفة متغيرة واقدر اتحكم في اتجاه القراءة لان النظام يقوم بقراءتها وتخزينها من اليسار الى اليمين
    حتى لو عكسنا ال Loop يظل النظام يقراءها بتلك الصورة

    وبانتظار حل من باقي الاعضاء لمن له المقدرة على المساعدة


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

  12. #12
    تاريخ التسجيل
    Jul 2017
    الإقامة
    السعودية
    العمر
    36
    المشاركات
    18

    افتراضي

    تم حل المشكلة ولله الحمد

    للمعلومية حل المشكلة من خلال ArrayReverse

    شكراً لكل من ساهم في المشاركة والمساعدة