النتائج 1 إلى 3 من 3
  1. #1
    الصورة الرمزية hamdouch
    hamdouch غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2011
    المشاركات
    26

    Exclamation ادارة الصفقات عن طريق مؤشر MACD

    السلام عليكم ورحمة الله

    الي اخي مستر دولار والي كافت الاخواة والاصدقاء الي ممكن يساعدوني

    تتمثل طرقاتي في المداولة في فتح صفقات يدويا اعتمادا علي التحليل بي موجات اليوت و الهرمونيك في نفس الوقت
    والاغلاق باعتماد مؤشر الماكد المرفق مع Metarader

    المشكل: هدي الطريقة جيدة لاكن تحتاج ان اكون طول الوقت امام الجهاز وهدا ما لا استطيعه نضرا لي طبيعة عملي وارتبطاتي


    الحل واتمني ان تساعدوني فيه : ان اقم بي عمل اكسبيرت ادارة صفقات يقوف فقط باغلاق الصفقات حسب نوعها بيع او شراء اعتمادا علي تقطع MACD بي بضعة شروط ساشرحها بالتفصيل :


    شروط اغلاق صفقة الشراء :




    شروط اغلاق صفقة البيع :



    ملاحضة :shift يكون بعد التقاطع بي شمعة واحدة مثلا


    الكود الي وصلت له

    كود PHP:
    //+------------------------------------------------------------------+
    //|                 m-e-c biz Close_Buy_Orders_or_Sell_Orders_V1.mq4 |
    //|                                       Copyright © 2009 m-e-c.biz |
    //|                                                 http://m-e-c.biz |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2009 m-e-c.biz"
    #property link      "http://m-e-c.biz"

    extern int slippage=3;
    extern bool Close_Buy_or_Sell=true;// true -> Close Buy Orders , false -> Close Sell Orders

    int    t1,t2;

    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
    //----
    if (Close_Buy_or_Sell
    {
    while(
    MyBuyRealOrdersTotal(0)>0CloseBuyOrders();
    }

    else
    {
    while(
    MySellRealOrdersTotal(0)>0CloseSellOrders();
    }


       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+ 

    // وظيفة لحساب عدد صفقات الشراء الحالية
    int MyBuyRealOrdersTotal(int Count)
    {
      
    int c=0;
      
    int total  OrdersTotal();
      
    t1=-1;
      
    t2=-1;
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderSymbol()==Symbol() && (OrderType()==OP_BUY))
        {
          if (
    t1==-1)
          {
            
    t1=OrderTicket();
          }
          else
          {
            if (
    t2==-1)
            {
              
    t2=OrderTicket();
            }
          }
          
    c++;
        }
      }
      return(
    c);
    }

    // وظيفة لحساب عدد صفقات البيع الحالية
    int MySellRealOrdersTotal(int Count)
    {
      
    int c=0;
      
    int total  OrdersTotal();
      
    t1=-1;
      
    t2=-1;
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderSymbol()==Symbol() && (OrderType()==OP_SELL))
        {
          if (
    t1==-1)
          {
            
    t1=OrderTicket();
          }
          else
          {
            if (
    t2==-1)
            {
              
    t2=OrderTicket();
            }
          }
          
    c++;
        }
      }
      return(
    c);
    }

    // وظيفة لاغلاق جميع صفقات الشراء المفتوحة
    //+------------------------------------------------------------------+
    int CloseBuyOrders()
    {
      
    int total  OrdersTotal();
      
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderSymbol()==Symbol())
        {
          if (
    OrderType()==OP_BUY)
          {
            if(
    OrderClose(OrderTicket(),OrderLots(),Bid,3)==false)
             {
               
    RefreshRates();
             }
             else
             {
               
    cnt=0;
               
    total=OrdersTotal();
             }
          }
          
        }
      }
      return(
    0);
    }  


    // وظيفة لاغلاق جميع صفقات البيع المفتوحة
    //+------------------------------------------------------------------+
    int CloseSellOrders()
    {
      
    int total  OrdersTotal();
      
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderSymbol()==Symbol())
        {
          if (
    OrderType()==OP_SELL)
          {
            if(
    OrderClose(OrderTicket(),OrderLots(),Ask,3)==false)
             {
               
    RefreshRates();
             }
             else
             {
               
    cnt=0;
               
    total=OrdersTotal();
             }
          }
          
        }
      }
      return(
    0);



    الرجاء مساعدتي لي اكمال ادخال شروط غلق الصفقات في الاكسبيرت...والله لا يضيع اجر المحسنين


    وان شاء الله يستفيد غيري منه
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: mq4 MACD.mq4‏ (2.4 كيلوبايت, المشاهدات 36)

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

    افتراضي

    بداية أنت أضفت شروط الخروج من الصفقه بداخل الداله init
    وهذا غير صحيح لأن عمل الإكسبرت كله يكون بداخل الداله start أما init فعملها يكون مره واحده فقط عند بداية تفعيل الإكسبرت
    الآن سوف تحتاج أولا لإستدعاء مؤشر الماكد في الإكسبرت
    كود PHP:
    double macd=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
    double macds=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);

    double macd2=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,2);
    double macds2=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,2); 
    ثم شروط الخروج من صفقة الشراء
    1_ إذا كان البار أكبر من الصفر وكان البار أكبر من خط الماكد ثم أصبح البار أصغر من خط الماكد يتم الخروج من الصفقه
    مع إضافة شرط المتغير الخارجي بإغلاق البيع أو الشراء Close_Buy_or_Sell
    بالتالي ترجمتها ستصبح كالآتي
    كود PHP:
    if (macd2>0&&macd2>macds2&&macd<macds&&Close_Buy_or_Sell
    {
    while(
    MyBuyRealOrdersTotal(0)>0CloseBuyOrders();

    العكس بالنسبه لصفقات البيع
    كود PHP:
    if(macd2<0&&macd2<macds2&&macd>macds&&Close_Buy_or_Sell)
    {
    while(
    MySellRealOrdersTotal(0)>0CloseSellOrders();

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

  3. #3
    الصورة الرمزية hamdouch
    hamdouch غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2011
    المشاركات
    26

    افتراضي

    مشكووورررر اخي MR.DOLLAR

    والله اعجز عن وصف فرحتي ...ربينا يعطيك الخير ان شاء الله ويجازيك علي مساعدتك الاخرين


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