النتائج 1 إلى 6 من 6
  1. #1
    الصورة الرمزية بهجت الريس
    بهجت الريس غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2011
    المشاركات
    314

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

    السلام عليكم اخوانى
    كود الدالة الأتى لمعرفة اخر سعر لعملية البيع او لعملية الشراء حسب ما هو محدد
    كود:
    double last_price(int op)
       {
        double c;
        for (int cnt=0; cnt<OrdersTotal(); cnt++)
          {
              OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES) ;  
              if(OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==op)                                       
              c=OrderOpenPrice(); 
         }
         return(c);
       }
    قمت بالتعديل علية لمعرفة اول سعر لول صفقة تم فتحها وأصبح كالتالى
    كود:
    double price1(int op)
       { 
        double c;                 
              OrderSelect(0,SELECT_BY_POS,MODE_TRADES) ;  
              if(OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==op)                                        
              c=OrderOpenPrice();
              
         return(c);
       }
    وأيضا قمت بالتعديل هكذا للحصول على سعر ثانى صفقة
    كود:
    double price2(int op)
       { 
        
        double c;
              OrderSelect(1,SELECT_BY_POS,MODE_TRADES) ; 
              if(OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==op)                                         
              c=OrderOpenPrice();
    
      
         return(c);
       }
    ونفس الحال للحصول على سعر ثالث ورابع صفقة
    المشكلة الأن هى ان الكود بيشتغل تمام فى حالة وجود صفقات بيع فقط او شراء فقط اما فى وجود الصفقتين بيع وشراء لا يعطينى النتيجة مظبوطة مع انى محددله price1(op_sell)or price1(op_buy)1 ومع ذالك الخانة اللتى بها الأرقام 0 , 1 , 2 فى الكود المرفق بتحسب اخر صفقة تم فتحها وتعد الصفقات بيع وشراء مجتمعين
    حاولت افصل بينهم ولكن دون جدوى
    من يعرف لنا مخرج لهذه المشكلة فليطرحها
    وجزاكم الله خيرا

  2. #2
    الصورة الرمزية المبرمج
    المبرمج غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2012
    الإقامة
    الجزائر
    المشاركات
    274

    افتراضي رد:طلب مساعده من اخواننا المبرجين

    انا لم اطلع على المطلوب من معرفة اخر سعر لعمية البيع او الشراء
    لكن انت تستعمل نفس المتغير للبيع و الشراء
    اظن لازم تعمل الدوال بالشكل التالى

    كود PHP:
    double price1buy(int op)
       { 
        
    double cb;                 
              
    OrderSelect(0,SELECT_BY_POS,MODE_TRADES) ;  
              if(
    OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==op)                                        
              
    cb=OrderOpenPrice();
              
         return(
    cb);
       }

    double price2buy(int op)
       { 
        
        
    double cb;
              
    OrderSelect(1,SELECT_BY_POS,MODE_TRADES) ; 
              if(
    OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==op)                                         
              
    cb=OrderOpenPrice();

      
         return(
    cb);
       }

    double price1sell(int op)
       { 
        
    double cs;                 
              
    OrderSelect(0,SELECT_BY_POS,MODE_TRADES) ;  
              if(
    OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==op)                                        
              
    cs=OrderOpenPrice();
              
         return(
    cs);
       }

    double price2sell(int op)
       { 
        
        
    double cs;
              
    OrderSelect(1,SELECT_BY_POS,MODE_TRADES) ; 
              if(
    OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==op)                                         
              
    cs=OrderOpenPrice(); 
    حيث اننا نستعمل متغير double cs للبيع
    و double cb للشراء

  3. #3
    الصورة الرمزية xcv114
    xcv114 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2010
    الإقامة
    مصر
    المشاركات
    1,022

    افتراضي رد:طلب مساعده من اخواننا المبرجين

    اقتباس المشاركة الأصلية كتبت بواسطة بهجت الريس مشاهدة المشاركة
    السلام عليكم اخوانى
    كود الدالة الأتى لمعرفة اخر سعر لعملية البيع او لعملية الشراء حسب ما هو محدد
    كود:
    double last_price(int op)
       {
        double c;
        for (int cnt=0; cnt<OrdersTotal(); cnt++)
          {
              OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES) ;  
              if(OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==op)                                       
              c=OrderOpenPrice(); 
         }
         return(c);
       }
    قمت بالتعديل علية لمعرفة اول سعر لول صفقة تم فتحها وأصبح كالتالى
    كود:
    double price1(int op)
       { 
        double c;                 
              OrderSelect(0,SELECT_BY_POS,MODE_TRADES) ;  
              if(OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==op)                                        
              c=OrderOpenPrice();
              
         return(c);
       }
    وأيضا قمت بالتعديل هكذا للحصول على سعر ثانى صفقة
    كود:
    double price2(int op)
       { 
        
        double c;
              OrderSelect(1,SELECT_BY_POS,MODE_TRADES) ; 
              if(OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==op)                                         
              c=OrderOpenPrice();
    
      
         return(c);
       }
    ونفس الحال للحصول على سعر ثالث ورابع صفقة
    المشكلة الأن هى ان الكود بيشتغل تمام فى حالة وجود صفقات بيع فقط او شراء فقط اما فى وجود الصفقتين بيع وشراء لا يعطينى النتيجة مظبوطة مع انى محددله price1(op_sell)or price1(op_buy)1 ومع ذالك الخانة اللتى بها الأرقام 0 , 1 , 2 فى الكود المرفق بتحسب اخر صفقة تم فتحها وتعد الصفقات بيع وشراء مجتمعين
    حاولت افصل بينهم ولكن دون جدوى
    من يعرف لنا مخرج لهذه المشكلة فليطرحها
    وجزاكم الله خيرا
    إنت بتستخدم OrdersTotal () ودي بتعود بقيمة كل العقود المفتوحة سواء بيع أو شراء
    -------------
    المفروض إنك هتعمل دالة تعود بعدد عقود الشراء
    كود PHP:
    int Buyorderstotal(){
     
    int cnt=0;
       for(
    int i =0;i<=OrdersTotal();i++){
         
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(
    OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==OP_BUY){
             
    cnt++;
           }
         }
        return(
    cnt);
      } 
    وتقوم بعمل دالة أخرى تعود بعدد عقود البيع
    كود PHP:
    int Sellorderstotal(){
     
    int cnt=0;
       for(
    int i =0;i<=OrdersTotal();i++){
         
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(
    OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==OP_SELL){
             
    cnt++;
           }
         }
        return(
    cnt);
      } 
    ثم تقوم بعمل دالة تعود بقيمة إفتتاح العقد المطلوب ( بدل ما تعمل دالة لكل عقد ) هتعمل دالة واحدة بالشكل ده

    كود PHP:
    double PriceOf(int op int OrderNumber){
        
    double c;
          if(
    op=OP_SELL){
              for (
    int s=0s<Sellorderstotal()(); s++){
              
    OrderSelect(s,SELECT_BY_POS,MODE_TRADES);  
              if(
    s==OrderNumber && OrderSymbol()==Symbol() && OrderMagicNumber()== magic1)                                       
              
    c=OrderOpenPrice(); 
            }
          }
         
        if(
    op=OP_BUY){
        for (
    int b=0b<Buyorderstotal()(); b++){
              
    OrderSelect(b,SELECT_BY_POS,MODE_TRADES);  
              if(
    b==OrderNumber && OrderSymbol()==Symbol() && OrderMagicNumber()== magic1)                                       
              
    c=OrderOpenPrice(); 
            }
         }
       return(
    c); 
    ولما تحتاج تستدعي أي إفتتاح لعقد تستخدمها بالشكل ده في إستارت مثلا

    لو عايز قيمة العقد الأول للشراء
    (PriceOf(OP_BUY , 1
    لو عايز قيمة العقد الثاني بيع
    (PriceOf(OP_SELL, 2
    -----------------------------------------

  4. #4
    الصورة الرمزية بهجت الريس
    بهجت الريس غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2011
    المشاركات
    314

    افتراضي

    مشكور اخى على تعبك ولكن مازالت المشكلة قائمة
    مرفق لك صوتين لتوضيح المشكلة اكثر
    الصورة الأولى تم فتح عمليات شراء فقط وكانت النتيجة سليمة 100%100
    الصورة الثانية بعد فتح عمليات بيع وشراء معا
    ستجد ان اول سعر للشراء موجود فى price2buy والثانى موجود فى الثالث والثالث موجود فى الرابع وستجد السعر الثانى للبيع موجود فى price6sell
    مرفق الأكسبيرت للتجربة
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 1.jpg‏   2.jpg‏  
    الملفات المرفقة الملفات المرفقة

  5. #5
    الصورة الرمزية بهجت الريس
    بهجت الريس غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2011
    المشاركات
    314

    افتراضي

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


    إنت بتستخدم OrdersTotal () ودي بتعود بقيمة كل العقود المفتوحة سواء بيع أو شراء
    -------------
    المفروض إنك هتعمل دالة تعود بعدد عقود الشراء
    كود PHP:
    int Buyorderstotal(){
     
    int cnt=0;
       for(
    int i =0;i<=OrdersTotal();i++){
         
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(
    OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==OP_BUY){
             
    cnt++;
           }
         }
        return(
    cnt);
      } 
    وتقوم بعمل دالة أخرى تعود بعدد عقود البيع
    كود PHP:
    int Sellorderstotal(){
     
    int cnt=0;
       for(
    int i =0;i<=OrdersTotal();i++){
         
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(
    OrderSymbol()==Symbol() && OrderMagicNumber()== magic1 && OrderType()==OP_SELL){
             
    cnt++;
           }
         }
        return(
    cnt);
      } 
    ثم تقوم بعمل دالة تعود بقيمة إفتتاح العقد المطلوب ( بدل ما تعمل دالة لكل عقد ) هتعمل دالة واحدة بالشكل ده

    كود PHP:
    double PriceOf(int op int OrderNumber){
        
    double c;
          if(
    op=OP_SELL){
              for (
    int s=0s<Sellorderstotal()(); s++){
              
    OrderSelect(s,SELECT_BY_POS,MODE_TRADES);  
              if(
    s==OrderNumber && OrderSymbol()==Symbol() && OrderMagicNumber()== magic1)                                       
              
    c=OrderOpenPrice(); 
            }
          }
         
        if(
    op=OP_BUY){
        for (
    int b=0b<Buyorderstotal()(); b++){
              
    OrderSelect(b,SELECT_BY_POS,MODE_TRADES);  
              if(
    b==OrderNumber && OrderSymbol()==Symbol() && OrderMagicNumber()== magic1)                                       
              
    c=OrderOpenPrice(); 
            }
         }
       return(
    c); 
    ولما تحتاج تستدعي أي إفتتاح لعقد تستخدمها بالشكل ده في إستارت مثلا

    لو عايز قيمة العقد الأول للشراء
    (PriceOf(OP_BUY , 1
    لو عايز قيمة العقد الثاني بيع
    (PriceOf(OP_SELL, 2
    -----------------------------------------
    شكرا أخى على تعبك وعجبتنى فكرة PriceOf(int op , int OrderNumber)
    ولكن المعادلة محتاجة تتوزن اكتر
    مرفق صورة بعد اضافة الدوال اللتى ارفقتها حيث ما زالت المشكلة قائمة فعند فتح بيع فقط او شراء فقط تكون القيم سليمة وعند فتح بيع وشراء معا يحدث لخبطة فى القيم
    مرفق صورة والأكسبيرت بعد اضافة الدوال اللتى ارفقتها
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 3.jpg‏  
    الملفات المرفقة الملفات المرفقة

  6. #6
    الصورة الرمزية بهجت الريس
    بهجت الريس غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2011
    المشاركات
    314

    افتراضي

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


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