الموضوع: سؤال برمجي
عرض مشاركة واحدة
قديم 27-04-2017, 01:34 PM   المشاركة رقم: 5
الكاتب
اسلام العوامى
عضو ذهبى
الصورة الرمزية اسلام العوامى

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

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

كاتب الموضوع : salamandal المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: سؤال برمجي

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

نقره لعرض الصورة في صفحة مستقلة

وقد حاولت الالتفاف على هذا الخطأ بتغيير كود إغلاق الصفقات كالتالي
بالمناسبة لم اعرف طريقتك في نسخ ولصق الاكواد (لو عملت معروف وشرحتها) والطريقة العادية للنسخ و اللصق صعبة لانها تظهر بعض الاكواد مقلوبة لهذا سادرجها عل شكل صور

نقره لعرض الصورة في صفحة مستقلة

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

نقره لعرض الصورة في صفحة مستقلة

كانت هذه الدالة في السابق تلتزم بالشروط .و تغلق الصفقات حسب الاتجاه بحيث استعملها لاغلاق الصفقات عند تشبع مؤشر RSI في الشراء او البيع
وعند وضعها بقوسين فارغين تغلق جميع صفقات البيع و الشراء لكن الان اصبحت تغلق صفقة واحدة فقط كما ذكرت سابقا

لو تفضلت استاذ اسلام و راجعت الاكواد لاعرف مكمن الخطأ
،،،اهلا بك اخي الفاضل ، اخر سطرين المقصود ب Close Buy و Close Sell هو امر او وظيفة الاغلاق فيجب انشاء وظيفة خارجية لاغلاق صفقات الشراء فقط ووظيفة اخرى لاغلاق صفقات البيع فقط،،،

كود:
void CloseBuyOrders()
{
  for (int cnt = 0 ; cnt <= OrdersTotal()-1 ; cnt++)
  {
  bool result = false;
    if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
    if (OrderSymbol()==Symbol()&&OrderType()==OP_BUY&&OrderMagicNumber()==MagicNumber)
        result = OrderClose(OrderTicket(),OrderLots(),Bid,3);
        if(result)
        cnt--;
  }
}  

void CloseSellOrders()
{
  for (int cnt = 0 ; cnt <= OrdersTotal()-1 ; cnt++)
  {
  bool result = false;
    if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
    if ( OrderSymbol()==Symbol()&&OrderType()==OP_SELL&&OrderMagicNumber()==MagicNumber)
        result = OrderClose(OrderTicket(),OrderLots(),Ask,3);
        if(result)
        cnt--;
  }
}
،،،بالنسبة لطريقة ادراج كود بالمشاركة فعن طريق الضغط على رمز الترس في اعدادات المشاركة وعند الوقوف عليه ستجد مكتوب "ادراج code"،،،

،،،تحياتي،،،



التوقيع

عرض البوم صور اسلام العوامى  
رد مع اقتباس
  #5  
قديم 27-04-2017, 01:34 PM
اسلام العوامى اسلام العوامى غير متواجد حالياً
عضو ذهبى
افتراضي رد: سؤال برمجي

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

نقره لعرض الصورة في صفحة مستقلة

وقد حاولت الالتفاف على هذا الخطأ بتغيير كود إغلاق الصفقات كالتالي
بالمناسبة لم اعرف طريقتك في نسخ ولصق الاكواد (لو عملت معروف وشرحتها) والطريقة العادية للنسخ و اللصق صعبة لانها تظهر بعض الاكواد مقلوبة لهذا سادرجها عل شكل صور

نقره لعرض الصورة في صفحة مستقلة

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

نقره لعرض الصورة في صفحة مستقلة

كانت هذه الدالة في السابق تلتزم بالشروط .و تغلق الصفقات حسب الاتجاه بحيث استعملها لاغلاق الصفقات عند تشبع مؤشر RSI في الشراء او البيع
وعند وضعها بقوسين فارغين تغلق جميع صفقات البيع و الشراء لكن الان اصبحت تغلق صفقة واحدة فقط كما ذكرت سابقا

لو تفضلت استاذ اسلام و راجعت الاكواد لاعرف مكمن الخطأ
،،،اهلا بك اخي الفاضل ، اخر سطرين المقصود ب Close Buy و Close Sell هو امر او وظيفة الاغلاق فيجب انشاء وظيفة خارجية لاغلاق صفقات الشراء فقط ووظيفة اخرى لاغلاق صفقات البيع فقط،،،

كود:
void CloseBuyOrders()
{
  for (int cnt = 0 ; cnt <= OrdersTotal()-1 ; cnt++)
  {
  bool result = false;
    if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
    if (OrderSymbol()==Symbol()&&OrderType()==OP_BUY&&OrderMagicNumber()==MagicNumber)
        result = OrderClose(OrderTicket(),OrderLots(),Bid,3);
        if(result)
        cnt--;
  }
}  

void CloseSellOrders()
{
  for (int cnt = 0 ; cnt <= OrdersTotal()-1 ; cnt++)
  {
  bool result = false;
    if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
    if ( OrderSymbol()==Symbol()&&OrderType()==OP_SELL&&OrderMagicNumber()==MagicNumber)
        result = OrderClose(OrderTicket(),OrderLots(),Ask,3);
        if(result)
        cnt--;
  }
}
،،،بالنسبة لطريقة ادراج كود بالمشاركة فعن طريق الضغط على رمز الترس في اعدادات المشاركة وعند الوقوف عليه ستجد مكتوب "ادراج code"،،،

،،،تحياتي،،،




رد مع اقتباس