شهادة المحلل الفنى المعتمد CFTe1 - مستوى أول

إعلانات تجارية اعلن معنا

النتائج 1 إلى 9 من 9

الموضوع: موضوع تعليمي (5) : صنع اكسبيرت لاغلاق صفقات الشراء فقط او البيع فقط

  1. #1

    افتراضي موضوع تعليمي (5) : صنع اكسبيرت لاغلاق صفقات الشراء فقط او البيع فقط

    موضوع تعليمي (5) : صنع اكسبيرت لاغلاق صفقات الشراء فقط او البيع فقط نادي خبراء المال

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

    موضوع طلب الاكسبيرت

    http://forum.m-e-c.biz/t33796.html


    ملاحظة :
    هذا الموضوع مفيد فقط لمن لديه خبرة في البرمجة بلغة mql4

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

    أهم مواضيع تعليم لغة MQL4

    بالتوفيق ان شاء الله


  2. #2

    افتراضي رد: موضوع تعليمي (5) : صنع اكسبيرت لاغلاق صفقات الشراء فقط او البيع فقط

    نبدأ على بركة الله

    أولاً
    قم يفتح برنامج MetaEditor

    ثانياً
    من القائمة العلوية
    File
    New

    or

    Ctrl+N

    ثم

    Expert Advisor

    Name : m-e-c biz Close_Buy_Orders_or_Sell_Orders_V1

    Auther: Copyright © 2009 m-e-c.biz

    Link : ملتقى نادي خبراء المال


    ثم

    Finsh

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

    m-e-c biz Close_Buy_Orders_or_Sell_Orders_V1

    الكود سيكون كالتالي

    [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"

    //+------------------------------------------------------------------+
    //| expert initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    //----

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

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

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    [/PHP]
    يتبع ....

  3. #3

    افتراضي رد: موضوع تعليمي (5) : صنع اكسبيرت لاغلاق صفقات الشراء فقط او البيع فقط

    تسجيل حضور و متابع معك اخي

  4. #4

    افتراضي رد: موضوع تعليمي (5) : صنع اكسبيرت لاغلاق صفقات الشراء فقط او البيع فقط

    اقتباس المشاركة الأصلية كتبت بواسطة nawef_h مشاهدة المشاركة
    تسجيل حضور و متابع معك اخي
    اهلا بك اخي الكريم

  5. #5

    افتراضي رد: موضوع تعليمي (5) : صنع اكسبيرت لاغلاق صفقات الشراء فقط او البيع فقط

    الآن يجب ان نضيف له متغيرات خارجية مثل

    متغير خاص بعدد النقاط المسموح تجاوزها عند اغلاق الصفقات

    متغير منطقي لاختيار اغلاق صفقات الشراء او البيع فقط

    --------------

    قم باضافة هذا الكود

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

    int t1,t2;

    [/PHP]
    تحت هذين السطرين
    [PHP]
    #property copyright "Copyright © 2009 m-e-c.biz"
    #property link "http://m-e-c.biz"
    [/PHP]

    --------------

    ثم نضع هذه الدالة والخاصة بمعرفة عدد صفقات الشراء المفتوحة في آخر الكود

    [PHP]
    // وظيفة لحساب عدد صفقات الشراء الحالية
    int MyBuyRealOrdersTotal(int Count)
    {
    int c=0;
    int total = OrdersTotal();
    t1=-1;
    t2=-1;

    for (int cnt = 0 ; 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);
    }

    [/PHP]
    --------------

    ثم نضع هذه الدالة والخاصة بمعرفة عدد صفقات البيع المفتوحة في آخر الكود

    [PHP]
    // وظيفة لحساب عدد صفقات البيع الحالية
    int MySellRealOrdersTotal(int Count)
    {
    int c=0;
    int total = OrdersTotal();
    t1=-1;
    t2=-1;

    for (int cnt = 0 ; 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);
    }

    [/PHP]--------------

    ليصبح الكود حتى هذه اللحظة كالتالي

    [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()
    {
    //----

    //----
    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 = 0 ; 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 = 0 ; 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);
    }

    [/PHP]
    يتبع

  6. #6

    افتراضي رد: موضوع تعليمي (5) : صنع اكسبيرت لاغلاق صفقات الشراء فقط او البيع فقط

    نتابع على بركة الله

    يجب الآن ان نضيف الدالة التالية والخاصة باغلاق عقود الشراء فقط في آخر الكود

    [PHP]
    // وظيفة لاغلاق جميع صفقات الشراء المفتوحة
    //+------------------------------------------------------------------+
    int CloseBuyOrders()
    {
    int total = OrdersTotal();

    for (int cnt = 0 ; cnt < total ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderSymbol()==Symbol())
    {
    if (OrderType()==OP_BUY)
    {
    if(OrderClose(OrderTicket(),OrderLots(),Bid,3)==fa lse)
    {
    RefreshRates();
    }
    else
    {
    cnt=0;
    total=OrdersTotal();
    }
    }

    }
    }
    return(0);
    }


    [/PHP]

    -------------------

    ونضيف الدالة التالية والخاصة باغلاق عقود البيع فقط في آخر الكود

    [PHP]
    // وظيفة لاغلاق جميع صفقات البيع المفتوحة
    //+------------------------------------------------------------------+
    int CloseSellOrders()
    {
    int total = OrdersTotal();

    for (int cnt = 0 ; cnt < total ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderSymbol()==Symbol())
    {
    if (OrderType()==OP_SELL)
    {
    if(OrderClose(OrderTicket(),OrderLots(),Ask,3)==fa lse)
    {
    RefreshRates();
    }
    else
    {
    cnt=0;
    total=OrdersTotal();
    }
    }

    }
    }
    return(0);
    }

    [/PHP]

    ---------------

    ويصبح الكود حتى هذه اللحظة كما يلي

    [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()
    {
    //----

    //----
    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 = 0 ; 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 = 0 ; 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 = 0 ; cnt < total ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderSymbol()==Symbol())
    {
    if (OrderType()==OP_BUY)
    {
    if(OrderClose(OrderTicket(),OrderLots(),Bid,3)==fa lse)
    {
    RefreshRates();
    }
    else
    {
    cnt=0;
    total=OrdersTotal();
    }
    }

    }
    }
    return(0);
    }


    // وظيفة لاغلاق جميع صفقات البيع المفتوحة
    //+------------------------------------------------------------------+
    int CloseSellOrders()
    {
    int total = OrdersTotal();

    for (int cnt = 0 ; cnt < total ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderSymbol()==Symbol())
    {
    if (OrderType()==OP_SELL)
    {
    if(OrderClose(OrderTicket(),OrderLots(),Ask,3)==fa lse)
    {
    RefreshRates();
    }
    else
    {
    cnt=0;
    total=OrdersTotal();
    }
    }

    }
    }
    return(0);
    }

    [/PHP]

    يتبع


  7. #7

    افتراضي رد: موضوع تعليمي (5) : صنع اكسبيرت لاغلاق صفقات الشراء فقط او البيع فقط

    نتابع على بركة الله

    الخطوة الأخيرة

    نأتي الآن للدالة
    [PHP]
    int init()
    [/PHP]

    ونضيف فيها هذا الكود

    [PHP]
    if (Close_Buy_or_Sell)
    {
    while(MyBuyRealOrdersTotal(0)>0) CloseBuyOrders();
    }

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

    [/PHP]

    وبهذا يكون الاكسبيرت جاهز
    (في المرفقات)

    ----------------------

    الكود النهائي

    [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)>0) CloseBuyOrders();
    }

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



    //----
    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 = 0 ; 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 = 0 ; 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 = 0 ; cnt < total ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderSymbol()==Symbol())
    {
    if (OrderType()==OP_BUY)
    {
    if(OrderClose(OrderTicket(),OrderLots(),Bid,3)==fa lse)
    {
    RefreshRates();
    }
    else
    {
    cnt=0;
    total=OrdersTotal();
    }
    }

    }
    }
    return(0);
    }


    // وظيفة لاغلاق جميع صفقات البيع المفتوحة
    //+------------------------------------------------------------------+
    int CloseSellOrders()
    {
    int total = OrdersTotal();

    for (int cnt = 0 ; cnt < total ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderSymbol()==Symbol())
    {
    if (OrderType()==OP_SELL)
    {
    if(OrderClose(OrderTicket(),OrderLots(),Ask,3)==fa lse)
    {
    RefreshRates();
    }
    else
    {
    cnt=0;
    total=OrdersTotal();
    }
    }

    }
    }
    return(0);
    }

    [/PHP]

    بالتوفيق ان شاء الله
    الملفات المرفقة الملفات المرفقة

  8. #8

    افتراضي رد: موضوع تعليمي (5) : صنع اكسبيرت لاغلاق صفقات الشراء فقط او البيع فقط

    مشكور اخي مجدي جاري تجربته و اعطيك نتائجه
    مرفقة صوره للطريقة اللى احكي لك عليها خلال اليومين اللى راحت
    الصور المرفقة الصور المرفقة
    • نوع الملف: jpg 2222.JPG‏ (136.8 كيلوبايت, 39 مشاهدات)

  9. #9

    افتراضي رد: موضوع تعليمي (5) : صنع اكسبيرت لاغلاق صفقات الشراء فقط او البيع فقط

    اقتباس المشاركة الأصلية كتبت بواسطة nawef_h مشاهدة المشاركة
    مشكور اخي وجدي جاري تجربته و اعطيك نتائجه
    مرفقة صوره للطريقة اللى احكي لك عليها خلال اليومين اللى راحت

    هذه الطريقة جيدة عند التذبذب

    ولكن يجب الحذر منها عند الرالي

    بالتوفيق ان شاء الله


معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

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

  1. موضوع تعليمي (7) : اكسبيرت وضع اوامر معلقة في وقت معين
    بواسطة مهندس وجدي في المنتدى نادي خبراء الأستراتيجيات والاكسبيرتات والبرمجة Strategies & Experts Advisors
    مشاركات: 46
    آخر مشاركة: 16-02-2019, 11:52 AM
  2. اكسبيرت خدمي لاغلاق جميع الصفقات
    بواسطة mohamed adel el3reef في المنتدى نادي خبراء الأستراتيجيات والاكسبيرتات والبرمجة Strategies & Experts Advisors
    مشاركات: 2
    آخر مشاركة: 09-02-2015, 09:59 AM
  3. اكسبيرت wajdyss لاغلاق وحذف جميع الصفقات (عند الوقت المطلوب)
    بواسطة مهندس وجدي في المنتدى نادي خبراء الأستراتيجيات والاكسبيرتات والبرمجة Strategies & Experts Advisors
    مشاركات: 6
    آخر مشاركة: 30-06-2011, 04:59 PM
  4. موضوع تعليمي (6) : اكسبيرت فتح صفقات على زوج آخر
    بواسطة مهندس وجدي في المنتدى نادي خبراء الأستراتيجيات والاكسبيرتات والبرمجة Strategies & Experts Advisors
    مشاركات: 7
    آخر مشاركة: 09-03-2010, 08:38 PM
  5. موضوع تعليمي : (3) التعديل على اكسبيرت MACD
    بواسطة مهندس وجدي في المنتدى نادي خبراء الأستراتيجيات والاكسبيرتات والبرمجة Strategies & Experts Advisors
    مشاركات: 5
    آخر مشاركة: 25-11-2009, 08:18 PM

الكلمات الدلالية لهذا الموضوع

مواقع النشر (المفضلة)

مواقع النشر (المفضلة)

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

يعد " نادى خبراء المال" واحدا من أكبر وأفضل المواقع العربية والعالمية التى تقدم خدمات التدريب الرائدة فى مجال الإستثمار فى الأسواق المالية ابتداء من عملية التعريف بأسواق المال والتدريب على آلية العمل بها ومرورا بالتعريف بمزايا ومخاطر التداول فى كل قطاع من هذه الأسواق إلى تعليم مهارات التداول وإكساب المستثمرين الخبرات وتسليحهم بالأدوات والمعارف اللازمة للحد من المخاطر وتوضيح طرق بناء المحفظة الاستثمارية وفقا لأسس علمية وباستخدام الطرق التعليمية الحديثة في تدريب وتأهيل العاملين في قطاع المال والأعمال .

الدعم الفني المباشر
دورات تدريبية
اتصل بنا