النتائج 1 إلى 11 من 11
  1. #1
    الصورة الرمزية stop1
    stop1 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2011
    المشاركات
    27

    03 تلميذك توقف هنا مستر دولار؟؟؟

    السلام عليكم

    الاخ مستر دولار تابعت شروحاتك لكيفيت عمل اكسبيرت والحمد لله استفدت كثيرا لك الف شكر
    لكن للاسف توقفت عند امرين وجد نفسي عاجزا على كتابتهم
    الاول =(اذا تحقق الشرط افتح طلب شراء + 4 طلبات شراء معلقة )
    الثاني=(اذا تم اخذ التك بروفت لاي طلب اغلق باقي الطلبات)
    كود PHP:
    //+------------------------------------------------------------------+
    //|                                                          v_v.mq4 |
    //|                      Copyright © 2011, MetaQuotes Software Corp. |
    //|                                        http://www.metaquotes.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2011, MetaQuotes Software Corp."
    #property link      "http://www.metaquotes.net"

    //================================//
      
    extern int    magic      8945;
      
    extern int    slipage    3;
    //--------------------------------//
      
    extern int    MA_Shift   0;
      
    extern int    MA_Period  25;
    //--------------------------------//
      
    extern int    Step       =50
      
    extern double Lots       0.01;
    //--------------------------------//
      
    extern double StopLoss   50;
      
    extern double TakeProfit 50;
    //================================//

    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
                           
    double ma_h,ma_l;
             
    //-------------------                      --------------------//
       
    ma_h=iMA(NULL,0,MA_Period,MA_Shift,MODE_SMMA,PRICE_HIGH,0);
       
    ma_l=iMA(NULL,0,MA_Period,MA_Shift,MODE_SMMA,PRICE_LOW,0);
    //=============================================================//  
                   
                   
    if( Bid>( ma_h+(Step*Point) ) && OrdersTotal()==)

     
    OrderSend(Symbol(),OP_SELL,Lots,Bid,slipage,Bid+StopLoss*Point,Bid-TakeProfit*Point,"thank",magic,0,Green);//&&
    //OrderSend(Symbol(),OP_SELLLIMIT,Lots*2,Bid+50pip,slipage,Bid+StopLoss*Point*2,Bid,"thank",magic,0,Green);//&&
    //OrderSend(Symbol(),OP_SELLLIMIT,Lots*4,Bid+100pip,slipage,Bid+StopLoss*Point*3,Bid+TakeProfit*Point,"thank",magic,0,Green);//&&
    //OrderSend(Symbol(),OP_SELLLIMIT,Lots*8,Bid+150pip,slipage,Bid+StopLoss*Point*4,Bid+TakeProfit*Point*2,"thank",magic,0,Green);//&&
    //OrderSend(Symbol(),OP_SELLLIMIT,Lots*16,Bid+200pip,slipage,Bid+StopLoss*Point*5,Bid-TakeProfit*Point*3,"thank",magic,0,Green);//&&
    }
    //---------------------------------------------------------//
    //if(اذا تم اخذ التك بروفيت للطلب الاول او الثاني او اي طلب اغلق باقي الطلبات)

    //-------------------------------------------------------------//

    if( Ask<( ma_l-(Step*Point) )&& OrdersTotal()==)
    {  
     
    OrderSend(Symbol(),OP_BUY,Lots,Ask,slipage,Ask-StopLoss*Point,Ask+TakeProfit*Point,"thank",magic,0,Red);
    }  
    //الذي اظفناه فوق للبيع نظيفه هنا للشراء
    //=============================================================//

      


  2. #2
    الصورة الرمزية stop1
    stop1 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2011
    المشاركات
    27

    افتراضي

    .

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

    افتراضي

    وعليكم السلام ورحمة الله وبركاته
    بالنسبه للجزء الأول
    فأنت كتبت الأمر بشكل صحيح
    كود PHP:
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*2,Bid+50pip,slipage,Bid+StopLoss*Point*2,Bid,"thank",magic,0,Green);//&&
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*4,Bid+100pip,slipage,Bid+StopLoss*Point*3,Bid+TakeProfit*Point,"thank",magic,0,Green);//&&
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*8,Bid+150pip,slipage,Bid+StopLoss*Point*4,Bid+TakeProfit*Point*2,"thank",magic,0,Green);//&&
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*16,Bid+200pip,slipage,Bid+StopLoss*Point*5,Bid-TakeProfit*Point*3,"thank",magic,0,Green);//&& 
    لكنك لم تحدد سعر فتح الصفقات وأخذ الهدف بشكل صحيح
    فمثلا سعر البيع سوف يصبح كالآتي مثلا لنأخذ أول أمر معلق
    كود PHP:
    Bid+50*Point 
    ثم سيكون الأستوب لوز كما تعلم هو سعر الدخول + عدد نقاط الأستوب لوز إذن سيكون لأستوب لوز
    كود PHP:
    Bid+50*Point+StopLoss*Point 
    ونفس الشيء بالنسبه للهدف فسوف يكون سعر الدخول - عدد نقاط الهدف
    كود PHP:
    Bid+50*Point-TakeProfit*Point 
    وباقي الأوامر ستكون بنفس الطريقه
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

    بالنسبه للجزء الثاني
    فسوف تحتاج أولا لعمل داله لحذف وإغلاق باقي الصفقات سوف تقوم بتعريفها خارج الداله start
    كود PHP:
    void CloseOrders()
    {
      for (
    int cnt cnt OrdersTotal() ; cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
       
          if (
    OrderType()==OP_BUY)
          {
            
    OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),30);
          }
          if(
    OrderType()==OP_SELL)
          {
           
    OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),30);
           }
          if(
    OrderType()>OP_SELL)OrderDelete(OrderTicket());
          
       
      }

    ثم يمكنك وضع مقارنه مثلا بما أن عدد الصفقات التي تفتح هي صفقة مباشرة + 4 صفقات معلقه أي 5 أوامر
    فتضع شرح إذا كان عدد الأوامر المفتوحه أقل من 5 فهذا يعني أن هناك صفقة أغلقت إذا أغلق باقي الصفقات
    فتكون
    كود PHP:
     if(OrdersTotal()<5)CloseOrders(); 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  5. #5
    الصورة الرمزية stop1
    stop1 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2011
    المشاركات
    27

    افتراضي

    شكرا لاهتامك استاذنا الكريم
    ولكن
    if(OrdersTotal()<5)CloseOrders();
    بعد التجربة وجدت ان الامر يقفل الطلبات المعلقة اذا اقفل السعر الطلب الاول مرورا بالتك بروفت او الستوب لوز
    وهكذا لم نستفد شيء من الطلبات المعلقة اي انها ستقفل بمجرد قفل الطلب الاول بربح او خسارة
    المطلوب اخي الكريم
    ان يكون اقفال الطلبات متزامن مع اختراق السعر للتك بروفت حصرا
    اي اذا تم فتح طلب بيع مباشر و4 طلبات معلقة
    اذا استمر السعر بالارتفاع فانه سيغلق الطلبات واحد تلو الاخر بمجرد المرور على الستب لوز وهنا نريد له الاستمرار اي ندعه
    اما اذا ارتد السعر هبوطا من اي طلب واخترق التك بروفت )اغلق باقي الطلبات

    ارجو ان اكون وظحت لك الامر

    لك الف شكر............

  6. #6
    الصورة الرمزية stop1
    stop1 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2011
    المشاركات
    27

    افتراضي

    .

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة stop1 مشاهدة المشاركة
    شكرا لاهتامك استاذنا الكريم
    ولكن
    if(OrdersTotal()<5)CloseOrders();
    بعد التجربة وجدت ان الامر يقفل الطلبات المعلقة اذا اقفل السعر الطلب الاول مرورا بالتك بروفت او الستوب لوز
    وهكذا لم نستفد شيء من الطلبات المعلقة اي انها ستقفل بمجرد قفل الطلب الاول بربح او خسارة
    المطلوب اخي الكريم
    ان يكون اقفال الطلبات متزامن مع اختراق السعر للتك بروفت حصرا
    اي اذا تم فتح طلب بيع مباشر و4 طلبات معلقة
    اذا استمر السعر بالارتفاع فانه سيغلق الطلبات واحد تلو الاخر بمجرد المرور على الستب لوز وهنا نريد له الاستمرار اي ندعه
    اما اذا ارتد السعر هبوطا من اي طلب واخترق التك بروفت )اغلق باقي الطلبات

    ارجو ان اكون وظحت لك الامر

    لك الف شكر............
    بالتالي سوف تحتاج إلى وضع شرط إضافي لمعرفة هل آخر صفقة حققت الهدف أم لا
    فيمكنك عمل دالة لمعرفة آخر صفقه هل أغلقت على ربح أم لا
    كود PHP:
    bool LastOrderProfit(){
    for(
    int i=OrdersHistoryTotal();i>=0;i--){
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
    if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
    if(
    OrderProfit()>0)return(true);
    else return(
    false);
      }
     }
     return(
    true);

    ثم ستضيف شرط آخر
    كود PHP:
      if(OrdersTotal()<5&&LastOrderProfit())CloseOrders(); 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  8. #8
    الصورة الرمزية stop1
    stop1 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2011
    المشاركات
    27

    افتراضي

    اخي الكريم
    وظعت الشرط الثاني
    ولكن عندما اظغط على Compile يخبرني بوجود خطء MagicNumber
    ارجو منك ان تلقي نظرة عليه وتصحح الخطء
    جزاك الله الف خير
    [PHP]//================================//
    extern int magic = 8945;
    extern int slipage = 3;
    //--------------------------------//
    extern int MA_Shift = 0;
    extern int MA_Period = 25;
    //--------------------------------//
    extern int Step =50;
    extern double Lots = 0.01;
    //--------------------------------//
    extern double StopLoss = 50;
    extern double TakeProfit = 50;
    //================================//

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

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

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert start function |
    //+------------------------------------------------------------------+
    int start()
    {
    //===//
    double ma_h,ma_l;

    //------------------- --------------------//
    ma_h=iMA(NULL,0,MA_Period,MA_Shift,MODE_SMMA,PRICE _HIGH,0);
    ma_l=iMA(NULL,0,MA_Period,MA_Shift,MODE_SMMA,PRICE _LOW,0);
    //================================================== ===========//


    if( Bid>( ma_h+(Step*Point) ) && OrdersTotal()==0 )
    {
    //===//
    OrderSend(Symbol(),OP_SELL ,Lots ,Bid ,slipage,Bid+(StopLoss*Point) ,Bid-(TakeProfit*Point) ,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 2),Bid+(StopLoss*Point) ,slipage,Bid+(StopLoss*Point)* 2,Bid ,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 3),Bid+(StopLoss*Point)*2,slipage,Bid+(StopLoss*Po int)* 3,Bid+(TakeProfit*Point) ,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 4),Bid+(StopLoss*Point)*3,slipage,Bid+(StopLoss*Po int)* 4,Bid+(TakeProfit*Point)*2,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 5),Bid+(StopLoss*Point)*4,slipage,Bid+(StopLoss*Po int)* 5,Bid+(TakeProfit*Point)*3,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 6),Bid+(StopLoss*Point)*5,slipage,Bid+(StopLoss*Po int)* 6,Bid+(TakeProfit*Point)*4,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 7),Bid+(StopLoss*Point)*6,slipage,Bid+(StopLoss*Po int)* 7,Bid+(TakeProfit*Point)*5,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 8),Bid+(StopLoss*Point)*7,slipage,Bid+(StopLoss*Po int)* 8,Bid+(TakeProfit*Point)*6,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 9),Bid+(StopLoss*Point)*8,slipage,Bid+(StopLoss*Po int)* 9,Bid+(TakeProfit*Point)*7,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*(10),Bid+(Sto pLoss*Point)*9,slipage,Bid+(StopLoss*Point)*10,Bid +(TakeProfit*Point)*8,"thank",magic,0,Red);
    //===//
    }
    //-------------------------------------------------------------//

    //================================================== ===========//
    if( Ask<( ma_l-(Step*Point) )&& OrdersTotal()==0 )
    {
    //===//
    OrderSend(Symbol(),OP_BUY ,Lots ,Ask ,slipage,Ask-(StopLoss*Point) ,Ask+(TakeProfit*Point) ,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 2),Ask-(StopLoss*Point) ,slipage,Ask-(StopLoss*Point)* 2,Ask ,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 3),Ask-(StopLoss*Point)*2,slipage,Ask-(StopLoss*Point)* 3,Ask-(TakeProfit*Point) ,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 4),Ask-(StopLoss*Point)*3,slipage,Ask-(StopLoss*Point)* 4,Ask-(TakeProfit*Point)*2,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 5),Ask-(StopLoss*Point)*4,slipage,Ask-(StopLoss*Point)* 5,Ask-(TakeProfit*Point)*3,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 6),Ask-(StopLoss*Point)*5,slipage,Ask-(StopLoss*Point)* 6,Ask-(TakeProfit*Point)*4,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 7),Ask-(StopLoss*Point)*6,slipage,Ask-(StopLoss*Point)* 7,Ask-(TakeProfit*Point)*5,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 8),Ask-(StopLoss*Point)*7,slipage,Ask-(StopLoss*Point)* 8,Ask-(TakeProfit*Point)*6,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 9),Ask-(StopLoss*Point)*8,slipage,Ask-(StopLoss*Point)* 9,Ask-(TakeProfit*Point)*7,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*(10),Ask-(StopLoss*Point)*9,slipage,Ask-(StopLoss*Point)*10,Ask-(TakeProfit*Point)*8,"thank",magic,0,Blue);
    //===//
    }
    //-------------------------------------------------------------//
    if(OrdersTotal()<5&&LastOrderProfit())CloseOrders( );

    //================================================== ===========//
    }

    void CloseOrders()
    {
    for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

    if (OrderType()==OP_BUY)
    {
    OrderClose(OrderTicket(),OrderLots(),NormalizeDoub le(Bid,Digits),30);
    }
    if(OrderType()==OP_SELL)
    {
    OrderClose(OrderTicket(),OrderLots(),NormalizeDoub le(Ask,Digits),30);
    }
    if(OrderType()>OP_SELL)OrderDelete(OrderTicket());
    }

    }
    //================================================== =============//
    bool LastOrderProfit()
    {
    for(int i=OrdersHistoryTotal();i>=0;i--)
    {
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
    if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gicNumber)
    {
    if(OrderProfit()>0)return(true);
    else return(false);
    }
    }
    return(true);
    }

    [PHP]
    آخر تعديل بواسطة stop1 ، 10-12-2011 الساعة 07:29 PM

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة stop1 مشاهدة المشاركة
    اخي الكريم
    وظعت الشرط الثاني
    ولكن عندما اظغط على Compile يخبرني بوجود خطء MagicNumber
    ارجو منك ان تلقي نظرة عليه وتصحح الخطء
    جزاك الله الف خير
    [PHP]//================================//
    extern int magic = 8945;
    extern int slipage = 3;
    //--------------------------------//
    extern int MA_Shift = 0;
    extern int MA_Period = 25;
    //--------------------------------//
    extern int Step =50;
    extern double Lots = 0.01;
    //--------------------------------//
    extern double StopLoss = 50;
    extern double TakeProfit = 50;
    //================================//

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

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

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert start function |
    //+------------------------------------------------------------------+
    int start()
    {
    //===//
    double ma_h,ma_l;

    //------------------- --------------------//
    ma_h=iMA(NULL,0,MA_Period,MA_Shift,MODE_SMMA,PRICE _HIGH,0);
    ma_l=iMA(NULL,0,MA_Period,MA_Shift,MODE_SMMA,PRICE _LOW,0);
    //================================================== ===========//


    if( Bid>( ma_h+(Step*Point) ) && OrdersTotal()==0 )
    {
    //===//
    OrderSend(Symbol(),OP_SELL ,Lots ,Bid ,slipage,Bid+(StopLoss*Point) ,Bid-(TakeProfit*Point) ,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 2),Bid+(StopLoss*Point) ,slipage,Bid+(StopLoss*Point)* 2,Bid ,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 3),Bid+(StopLoss*Point)*2,slipage,Bid+(StopLoss*Po int)* 3,Bid+(TakeProfit*Point) ,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 4),Bid+(StopLoss*Point)*3,slipage,Bid+(StopLoss*Po int)* 4,Bid+(TakeProfit*Point)*2,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 5),Bid+(StopLoss*Point)*4,slipage,Bid+(StopLoss*Po int)* 5,Bid+(TakeProfit*Point)*3,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 6),Bid+(StopLoss*Point)*5,slipage,Bid+(StopLoss*Po int)* 6,Bid+(TakeProfit*Point)*4,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 7),Bid+(StopLoss*Point)*6,slipage,Bid+(StopLoss*Po int)* 7,Bid+(TakeProfit*Point)*5,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 8),Bid+(StopLoss*Point)*7,slipage,Bid+(StopLoss*Po int)* 8,Bid+(TakeProfit*Point)*6,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*( 9),Bid+(StopLoss*Point)*8,slipage,Bid+(StopLoss*Po int)* 9,Bid+(TakeProfit*Point)*7,"thank",magic,0,Red);
    OrderSend(Symbol(),OP_SELLLIMIT,Lots*(10),Bid+(Sto pLoss*Point)*9,slipage,Bid+(StopLoss*Point)*10,Bid +(TakeProfit*Point)*8,"thank",magic,0,Red);
    //===//
    }
    //-------------------------------------------------------------//

    //================================================== ===========//
    if( Ask<( ma_l-(Step*Point) )&& OrdersTotal()==0 )
    {
    //===//
    OrderSend(Symbol(),OP_BUY ,Lots ,Ask ,slipage,Ask-(StopLoss*Point) ,Ask+(TakeProfit*Point) ,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 2),Ask-(StopLoss*Point) ,slipage,Ask-(StopLoss*Point)* 2,Ask ,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 3),Ask-(StopLoss*Point)*2,slipage,Ask-(StopLoss*Point)* 3,Ask-(TakeProfit*Point) ,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 4),Ask-(StopLoss*Point)*3,slipage,Ask-(StopLoss*Point)* 4,Ask-(TakeProfit*Point)*2,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 5),Ask-(StopLoss*Point)*4,slipage,Ask-(StopLoss*Point)* 5,Ask-(TakeProfit*Point)*3,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 6),Ask-(StopLoss*Point)*5,slipage,Ask-(StopLoss*Point)* 6,Ask-(TakeProfit*Point)*4,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 7),Ask-(StopLoss*Point)*6,slipage,Ask-(StopLoss*Point)* 7,Ask-(TakeProfit*Point)*5,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 8),Ask-(StopLoss*Point)*7,slipage,Ask-(StopLoss*Point)* 8,Ask-(TakeProfit*Point)*6,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*( 9),Ask-(StopLoss*Point)*8,slipage,Ask-(StopLoss*Point)* 9,Ask-(TakeProfit*Point)*7,"thank",magic,0,Blue);
    OrderSend(Symbol(),OP_BUYLIMIT,Lots*(10),Ask-(StopLoss*Point)*9,slipage,Ask-(StopLoss*Point)*10,Ask-(TakeProfit*Point)*8,"thank",magic,0,Blue);
    //===//
    }
    //-------------------------------------------------------------//
    if(OrdersTotal()<5&&LastOrderProfit())CloseOrders( );

    //================================================== ===========//
    }

    void CloseOrders()
    {
    for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

    if (OrderType()==OP_BUY)
    {
    OrderClose(OrderTicket(),OrderLots(),NormalizeDoub le(Bid,Digits),30);
    }
    if(OrderType()==OP_SELL)
    {
    OrderClose(OrderTicket(),OrderLots(),NormalizeDoub le(Ask,Digits),30);
    }
    if(OrderType()>OP_SELL)OrderDelete(OrderTicket());
    }

    }
    //================================================== =============//
    bool LastOrderProfit()
    {
    for(int i=OrdersHistoryTotal();i>=0;i--)
    {
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
    if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gicNumber)
    {
    if(OrderProfit()>0)return(true);
    else return(false);
    }
    }
    return(true);
    }

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

  10. #10
    الصورة الرمزية stop1
    stop1 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2011
    المشاركات
    27

    افتراضي

    اخي الكريم
    ارجو منك ان تصحح لي الخطء بالدوال...
    فعندما يتم اغلاق الطلبات المعلقة يقفل طلب ويبقي طلب؟؟؟ والمطلوب هو اقفال كل الطلبات
    if(OrdersTotal()<5&&LastOrderProfit())CloseOrders( );
    =============================================
    bool LastOrderProfit(){
    for(int i=OrdersHistoryTotal();i>=0;i--){
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
    if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gicNumber){
    if(OrderProfit()>0)return(true);
    else return(false);
    }
    }
    return(true);
    }
    ===============================
    void CloseOrders()
    {
    for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

    if (OrderType()==OP_BUY)
    {
    OrderClose(OrderTicket(),OrderLots(),NormalizeDoub le(Bid,Digits),30);
    }
    if(OrderType()==OP_SELL)
    {
    OrderClose(OrderTicket(),OrderLots(),NormalizeDoub le(Ask,Digits),30);
    }
    if(OrderType()>OP_SELL)OrderDelete(OrderTicket());


    }
    }

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة stop1 مشاهدة المشاركة
    اخي الكريم
    ارجو منك ان تصحح لي الخطء بالدوال...
    فعندما يتم اغلاق الطلبات المعلقة يقفل طلب ويبقي طلب؟؟؟ والمطلوب هو اقفال كل الطلبات
    if(OrdersTotal()<5&&LastOrderProfit())CloseOrders( );
    =============================================
    bool LastOrderProfit(){
    for(int i=OrdersHistoryTotal();i>=0;i--){
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
    if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gicNumber){
    if(OrderProfit()>0)return(true);
    else return(false);
    }
    }
    return(true);
    }
    ===============================
    void CloseOrders()
    {
    for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

    if (OrderType()==OP_BUY)
    {
    OrderClose(OrderTicket(),OrderLots(),NormalizeDoub le(Bid,Digits),30);
    }
    if(OrderType()==OP_SELL)
    {
    OrderClose(OrderTicket(),OrderLots(),NormalizeDoub le(Ask,Digits),30);
    }
    if(OrderType()>OP_SELL)OrderDelete(OrderTicket());


    }
    }
    جرب إستخدام شرط الإغلاق بهذا الشكل
    كود PHP:
    if(OrdersTotal()<5&&LastOrderProfit()){
    while(
    OrdersTotal()>0)CloseOrders();

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


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