النتائج 1 إلى 2 من 2
  1. #1
    الصورة الرمزية عبدالله الخليفي
    عبدالله الخليفي غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2006
    الإقامة
    باقي فيها سنة
    العمر
    52
    المشاركات
    575

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

    السلام عليكم ورحمة الله وبركاته
    الاكسبيرت المرفق يعتمد في الدخول على الباربوليك سار بأوامر معلقه فقط والمطلوب التعديل في الامر المعاكس من حيث حجم اللوت بناء على شروط في الامر المفعل والاوامر السابقه كما هو مشروح في صورة الشارت المرفقه
    ارجوا التعديل اخ اسامه ان امكن لاني بصراحه حاولت لما عجزت ومنكم ان شاء الله نستفيد
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة بدون عنوان.png‏  
    الملفات المرفقة الملفات المرفقة

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

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

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

    بالنسبه لفكرتك سوف أقوم بعمل دالة لحفظ قيم الصفقات التي أغلقت على خساره والربح والخساره لها
    كود PHP:
    double CurrentLoss()
    {
     
    double allloss;
     for(
    int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
      
    double lots=OrderLots();double loss=OrderProfit();
      if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
      {
       if(
    OrderProfit()<0)
        {
         
    allloss+=loss;
         
    OrdersInfo[arraysize-1][0]=lots;
         
    OrdersInfo[arraysize-1][1]=loss;
         
    arraysize++;
         
    ArrayResize(OrdersInfo,arraysize);
        }
       else return(
    allloss);
      }
     }
     return(
    allloss);

    وأقوم بعمل دالة لمعرفة الربح الحالي
    كود PHP:
    double CurrentProfit()
    {
     for(
    int i=OrdersTotal()-1;i>=0;i--)
     {
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      
    double lots=OrderLots();double loss=OrderProfit();
      if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
      {
       return(
    OrderProfit());
      }
     }
     return(
    0);

    ثم سأضع الشروط
    كود PHP:
    double LostOrders;
    for(
    int i=0;i<arraysize;i++)
    {
     
    LostOrders+=OrdersInfo[i][0];
     if(
    CurrentProfit()>LostOrders)
     {
      
    double newlot=OrdersInfo[i][1];
     }
     else break;

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


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