عرض مشاركة واحدة
قديم 05-01-2014, 11:28 AM   المشاركة رقم: 193
الكاتب
اسلام العوامى
عضو ذهبى
الصورة الرمزية اسلام العوامى

البيانات
تاريخ التسجيل: Apr 2012
رقم العضوية: 9148
الدولة: alexandria - egypt
المشاركات: 5,888
بمعدل : 1.24 يوميا

الإتصالات
الحالة:
اسلام العوامى غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : اسلام العوامى المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4

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

بعد اذن حضرتك

انا برمجت اكسيبرت بيعلق صفقتين واحده شراء والاخري بيع علي شمعه GMT 00

ممكت تكتبللي كود يلغي الصفقه المعلقه بعد تنفيذ الصفقه الاخري

ولك جزيل الشكر ...
،،،وعليكم السلام ورحمة الله وبركاتة،،،

،،،اهلا بك اخى الكريم ، اولا ستحتاج الى وظيفة لمسح الاوامر المعلقة كالتالى،،،

كود:
void Delete(int type){
for(int a=0;a<OrdersTotal();a++){ 
if(OrderSelect(a,SELECT_BY_POS,MODE_TRADES)) 
if(OrderType()==type && OrderMagicNumber()==Magicnumber){
OrderDelete(OrderTicket());
   }
  }
 }

،،،ودالة اخرى لحساب عدد الصفقات المفتوحة حسب النوع،،،

كود:
 int ordercount(int type){
 int x=0;
   for(int i =0;i<OrdersTotal();i++){
     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
       if(OrderSymbol()==Symbol() && Magicnumber==OrderMagicNumber()&& OrderType()==type){
         x++;
       }
     }
   }
    return(x);
  }

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

كود:
if(ordercount(OP_BUY)==1){Delete(OP_SELLSTOP);}
if(ordercount(OP_SELL)==1){Delete(OP_BUYSTOP);}



التوقيع

عرض البوم صور اسلام العوامى  
رد مع اقتباس
  #193  
قديم 05-01-2014, 11:28 AM
اسلام العوامى اسلام العوامى غير متواجد حالياً
عضو ذهبى
افتراضي رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4

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

بعد اذن حضرتك

انا برمجت اكسيبرت بيعلق صفقتين واحده شراء والاخري بيع علي شمعه GMT 00

ممكت تكتبللي كود يلغي الصفقه المعلقه بعد تنفيذ الصفقه الاخري

ولك جزيل الشكر ...
،،،وعليكم السلام ورحمة الله وبركاتة،،،

،،،اهلا بك اخى الكريم ، اولا ستحتاج الى وظيفة لمسح الاوامر المعلقة كالتالى،،،

كود:
void Delete(int type){
for(int a=0;a<OrdersTotal();a++){ 
if(OrderSelect(a,SELECT_BY_POS,MODE_TRADES)) 
if(OrderType()==type && OrderMagicNumber()==Magicnumber){
OrderDelete(OrderTicket());
   }
  }
 }

،،،ودالة اخرى لحساب عدد الصفقات المفتوحة حسب النوع،،،

كود:
 int ordercount(int type){
 int x=0;
   for(int i =0;i<OrdersTotal();i++){
     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
       if(OrderSymbol()==Symbol() && Magicnumber==OrderMagicNumber()&& OrderType()==type){
         x++;
       }
     }
   }
    return(x);
  }

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

كود:
if(ordercount(OP_BUY)==1){Delete(OP_SELLSTOP);}
if(ordercount(OP_SELL)==1){Delete(OP_BUYSTOP);}




رد مع اقتباس