موضوع مخصص للأسئلة البرمجية - الصفحة 631
صفحة 631 من 631 الأولىالأولى ... 131531581621625626627628629630631
النتائج 9,451 إلى 9,460 من 9460
  1. #9451
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    12,915

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Arafou87 مشاهدة المشاركة
    شكرًا لحسن ردك مستر دولار الغالي
    هذا هو كود دالة ستارت السابق مع بعض التعديل
    كود PHP:
    /*
       //-----
       //تعديل الهدف في حال ما إذا كان قيمة الهدف أقل من قيمة الاستوب لوز
       //---------------------------------------------  
       double tp;
       double sl;
       double takeprofite;
       double stoploss;
       bool   mmodify;
       double tpMulti = 1.5;
        
        //----------------------------
        //
        //----------------------------
        if(TotalOrders2(OP_BUY)== 1){
         
          tp = LastOrderInfo2("TP")    - LastOrderInfo2("Price"); // عدد نقاط البروفيت
          sl = LastOrderInfo2("Price") - LastOrderInfo2("SL");    // عدد نقاط الاستوبلوز
         
         if (tp < sl)
         {
         takeprofite = LastOrderInfo2("Price") + (sl*tpMulti);
         stoploss    =  LastOrderInfo2("SL"); 
             
         mmodify = OrderModify(ticket,OrderOpenPrice(),stoploss,takeprofite,0);
         
         }
         }
         //----------------------------
         //
         //----------------------------
         else if(TotalOrders2(OP_SELL)==1){
          
         tp = LastOrderInfo2("TP")    - LastOrderInfo2("Price") * (-1); // عدد نقاط البروفيت
         sl = LastOrderInfo2("Price") - LastOrderInfo2("SL")    * (-1); // عدد نقاط الاستوبلوز
         if (tp < sl)
         {
         takeprofite = LastOrderInfo2("Price") - (sl*tpMulti);
         stoploss    = LastOrderInfo2("SL");
         
         mmodify = OrderModify(ticket,OrderOpenPrice(),stoploss,takeprofite,0);
         
         }
         }
         
         else {
         
         takeprofite = LastOrderInfo2("TP");
         stoploss    = LastOrderInfo2("SL");
         
         mmodify = OrderModify(ticket,OrderOpenPrice(),stoploss,takeprofite,0);
         
         
         }
        */ 
    وهذه الدوال خارج دالة ستارت
    أولا: دالة استدعاء بيانات آخر صفقة مفتوحة
    كود PHP:
    double LastOrderInfo2(string info
    {
     for(
    int i OrdersTotal(); >= 0i--)
     {
      
    bool select OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      
      if(
    OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
      {
            if (
    info=="Type")  return(OrderType());
       else if (
    info=="Lots")  return(OrderLots());
       else if (
    info=="Price") return(OrderOpenPrice());
       else if (
    info=="TP")    return(OrderTakeProfit());
       else if (
    info=="SL")    return(OrderStopLoss());
      }
     }
     return(
    0);

    ثانيا: دالة التوتال

    كود PHP:
    int TotalOrders2(int type)
     {
     
     
    int cnt=0;
     
       for(
    int i 0OrdersTotal(); i++)
       {
         if(
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         {
           if(
    OrderSymbol() == Symbol() && MagicNumber == OrderMagicNumber() && (OrderType() == type))
           {
             
    cnt++;
           }
         }
       }
        return(
    cnt);
      } 

    حاولت تجربته بهذه الطريقة مع بعض التعديلات، لكن لا أدري أين الخلل، مع ملاحظة أن الصفقة المراد تنفيذ الأمر عليها كانت صفقة معلقة (لكن تم تفعيلها)
    والهدف من هذا الكود (هناك بعض الصفقات المعلقة يحصل عليها جاب فتفتح على سعر غير السعر المحدد لتفتح عنده، وبهذا تكون قيمة نقاط البروفيت أقل من قيمة نقاط الاستوب، فأردت إضافة هذا الشرط عشان لو حصل كده يقوم الإكسبرت بتعديلها)
    أرجو التوجيه، شكرًا لحسن تعاونكم مرة أخرى..
    من أين تأتي بقيمة المتغير ticket أخي الكريم ؟
    هذا مثال لدالة ستقوم بالبحث في كل الصفقات المفتوحه وتعديل الهدف إذا كان أقل من الأستوب
    كود PHP:
      void ModifyOrders()
      {
       for(
    int i=OrdersTotal()-1;i>=0;i--)
       {
        
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
        {
         if(
    OrderType()==OP_BUY)
         {
          
    double sl=OrderOpenPrice()-OrderStopLoss();
          
    double tp=OrderTakeProfit()-OrderOpenPrice();
          if(
    tp<sl)
          {
           
    bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()+sl,0);
          }
         }
         else if(
    OrderType()==OP_SELL)
         {
           
    double sl=OrderStopLoss()-OrderOpenPrice();
          
    double tp=OrderOpenPrice()-OrderTakeProfit();
          if(
    tp<sl)
          {
           
    bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()+sl,0);
          }
         }
        }
       }
      } 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  2. #9452
    تاريخ التسجيل
    Jan 2019
    الإقامة
    السعودية
    المشاركات
    2

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وعليكم السلام ورحمة الله وبركاته
    لأ أخي الكريم, لغة mql4 و mql5 تستخدم فقط لبرمجة التطبيقات على الميتاتريد
    شكرا جزيلا على الرد

  3. #9453
    تاريخ التسجيل
    Jan 2019
    الإقامة
    فرنسا
    المشاركات
    4

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    من أين تأتي بقيمة المتغير ticket أخي الكريم ؟
    هذا مثال لدالة ستقوم بالبحث في كل الصفقات المفتوحه وتعديل الهدف إذا كان أقل من الأستوب
    كود PHP:
      void ModifyOrders()
      {
       for(
    int i=OrdersTotal()-1;i>=0;i--)
       {
        
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
        {
         if(
    OrderType()==OP_BUY)
         {
          
    double sl=OrderOpenPrice()-OrderStopLoss();
          
    double tp=OrderTakeProfit()-OrderOpenPrice();
          if(
    tp<sl)
          {
           
    bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()+sl,0);
          }
         }
         else if(
    OrderType()==OP_SELL)
         {
           
    double sl=OrderStopLoss()-OrderOpenPrice();
          
    double tp=OrderOpenPrice()-OrderTakeProfit();
          if(
    tp<sl)
          {
           
    bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()+sl,0);
          }
         }
        }
       }
      } 
    تسلم إيدك أستاذنا الغالي، لك كل الشكر

  4. #9454
    تاريخ التسجيل
    May 2007
    الإقامة
    السعودية
    المشاركات
    809

    افتراضي

    اخي مستر دولار
    انا كتبت كود افتتاح اليوم كما يلي
    كود:
    iOpen(NULL,PERIOD_D1,0)
    وكتبت كود اغلاق الربع الساعه السابقه كمايلي
    كود:
    iClose(NULL,PERIOD_M15,1)
    اولا هل كتابة الكودين صحيحه؟.
    ثانيا اريد ان اكتب مايلي
    تقاطع اغلاق ربع الساعه السابقه اعلى الافتتاح اليومي بشرط الربع ساعه تكون في نفس اليوم وليس في يوم سابق
    طبعا اغلاق اعلى الافتتاح او ادنى الافتتاح
    ==================================

    وشكرا مقدما

  5. #9455
    تاريخ التسجيل
    May 2010
    الإقامة
    القاهره
    المشاركات
    1,753

    افتراضي

    هذه الداله موجوده فى اكسبيرت يعمل فقط على الزوج الموجود عليه
    int l_ticket_108 = OrderSend(Symbol(), OP_BUYLIMIT, l_lots_60, l_price_4, 2, 0, 0, gs_mdm_160, l_datetime_0);
    اريد التعديل عليها بحيث تقوم بوضع الاوردرات على 3 ازواج دفعه واحده فاين اكتب اسم الازوج ؟

  6. #9456
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    12,915

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة النظير مشاهدة المشاركة
    اخي مستر دولار
    انا كتبت كود افتتاح اليوم كما يلي
    كود:
    iOpen(NULL,PERIOD_D1,0)
    وكتبت كود اغلاق الربع الساعه السابقه كمايلي
    كود:
    iClose(NULL,PERIOD_M15,1)
    اولا هل كتابة الكودين صحيحه؟.
    ثانيا اريد ان اكتب مايلي
    تقاطع اغلاق ربع الساعه السابقه اعلى الافتتاح اليومي بشرط الربع ساعه تكون في نفس اليوم وليس في يوم سابق
    طبعا اغلاق اعلى الافتتاح او ادنى الافتتاح
    ==================================

    وشكرا مقدما
    نعم كتابة الكودين صحيح
    بالنسبه للشروط فستكون
    كود PHP:
    if(open_15<day_open&&close_15>day_open)
    {


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

  7. #9457
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    12,915

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة a7med920 مشاهدة المشاركة
    هذه الداله موجوده فى اكسبيرت يعمل فقط على الزوج الموجود عليه
    int l_ticket_108 = OrderSend(Symbol(), OP_BUYLIMIT, l_lots_60, l_price_4, 2, 0, 0, gs_mdm_160, l_datetime_0);
    اريد التعديل عليها بحيث تقوم بوضع الاوردرات على 3 ازواج دفعه واحده فاين اكتب اسم الازوج ؟
    ستكتب إسم الأزواج بدلا من الدالة
    كود PHP:
    Symbol() 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  8. #9458
    تاريخ التسجيل
    May 2007
    الإقامة
    السعودية
    المشاركات
    809

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    نعم كتابة الكودين صحيح
    بالنسبه للشروط فستكون
    كود PHP:
    if(open_15<day_open&&close_15>day_open)
    {
     

    ساجربها وشكرا لك

  9. #9459
    تاريخ التسجيل
    May 2007
    الإقامة
    السعودية
    المشاركات
    809

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    نعم كتابة الكودين صحيح
    بالنسبه للشروط فستكون
    كود PHP:
    if(open_15<day_open&&close_15>day_open)
    {
     

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

  10. #9460
    تاريخ التسجيل
    May 2010
    الإقامة
    القاهره
    المشاركات
    1,753

    افتراضي

    السلام عليكم
    الكود ده بيقفل كل الاوردرات على بروفيت

    عاوز اضف كمان سطر يقفل على لوس بالدولار

    يعنى بروقيت 100 مثلا
    او لوس سالب 100

    كود:
    //+------------------------------------------------------------------+
    //|                                       CloseAllOrdersIfProfit.mq4 |
    //|                                    Copyright © 2007, fxtrader625 |
    //|                                  http://www.forexampletrades.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2007, fxtrader625"
    #property link      "http://www.forexampletrades.com"
    
    //---- input parameters
    extern int       TotalProfitLimit = 100;
    
    int start()
    {
       // Close all trades if profit limit exceeded
       if (AccountProfit() >= TotalProfitLimit)
       {
          for (int i = OrdersTotal(); i > 0; i--)
          {
             OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES);
             if (OrderType() == OP_BUY)
             {
                OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3);
             }
             else if (OrderType() == OP_SELL)
             {
                OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3);
             }
             else if (OrderType() >= 2)
             {
                OrderDelete(OrderTicket());
             }
          }
       }
       
       return(0);
    }
    //+------------------------------------------------------------------+

صفحة 631 من 631 الأولىالأولى ... 131531581621625626627628629630631

المواضيع المتشابهه

  1. موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
    By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 10
    آخر مشاركة: 03-08-2012, 06:54 PM
  2. عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
    By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملات
    مشاركات: 280
    آخر مشاركة: 27-08-2009, 10:30 PM

الاوسمة لهذا الموضوع