استفسار كيف نحدد نغلق سعر محدد وليس نقاط
النتائج 1 إلى 7 من 7
  1. #1
    تاريخ التسجيل
    Aug 2018
    الإقامة
    الجزائر
    المشاركات
    116

    افتراضي كيف نحدد نغلق سعر محدد وليس نقاط

    السلام عليكم
    هل توجد طريقة لعمل اكسبيرت يقوم بتحديد التيك برفيل عن الطريق السعر وليس النقاط لصفقات مفتوحة ( المفعلة و ليس المعلقة ) سابقا فغير لها سعر التيك بروفيل مثلا انا فاتح يدويا 20 صفقة شراء على زوج واحد كيف لي ان احدد اتوماتكيا انو يكون الغلق على سعر 1.15200 لكل عمليات الشارء ونفس الشي للبيع ان تغلق جميع الصفقات المفعلة المفتوحة وليس المعلقة.
    يحتوي الاكسبيرت مايلي :

    سعر وليس نقاط TP_SELL : 1.10540
    سعر وليس نقاط TP_Buy : 1.11540

    و افضل لو يكون المخفي لو امكن بالطبع..... فقط

  2. #2
    تاريخ التسجيل
    Aug 2018
    الإقامة
    الجزائر
    المشاركات
    116

    افتراضي

    5 مواضيع ولا رد واحد

  3. #3
    تاريخ التسجيل
    Aug 2018
    الإقامة
    الجزائر
    المشاركات
    116

    افتراضي

    لقد وجدت اكسبيرت مستر دولار MR.dollar_Trailing Stop EA v3 يضع هدف لكل صفقات BuyTakeProfit الهدف لجميع صفقات لكن يوجد مشكل في وضع هدف لصفقات sell فهو يضع SellTakeProfit السعر المحدد كستوب لوز لصفقات buy وليس هدف لجميع صفقات sell

    المطلوب وضع هدف لكل صفقات buy المفتوحة عن طريق BuyTakeProfit , وضع هدف لكل صفقات Sell المفتوحة عن طريق SellTakeProfit

    الغاء stop loss نهائيا

    كود PHP:
      extern int Ticket=0;
     
    extern string S1=" Set Target As Price";       
     
    extern double BuyTakeProfit=0;
     
    extern double SellTakeProfit=0;
     
    extern string S2=" Set Trailing For Orders";
     
    extern int TrailingDistance=0;
     

     
    double point;
     
    int digits;
                              
     
    int init()
    {
     
        if(
    Digits<4)
       {
          
    point=0.01;
          
    digits=2;
       }
       else
       {
          
    point=0.0001;
          
    digits=4;
       }
    return(
    0);
    }

     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS    deinitialization function                |
     //+------------------------------------------------------------------+

     
    void deinit() {
        
    Comment("");
      }

     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS   Start function                            |
     //+------------------------------------------------------------------+

     
    int start()
       {
        
    Comment("Programmed by MR.dollar"+"\n"+"أ£أ¤أٹأڈأ¬ أ‡أ،أ£أٹأڈأ‡أ¦أ، أ‡أ،أڑأ‘أˆأ*"+"\n"+"www.arabictrader.com/vb");
     
       if(
    TrailingDistance>0)MoveTrailing();
      
               
    //////////////////////////////////////
              
          //////////////////////////////////////////////////
          
    for(int i=0;i<OrdersTotal();i++){
          
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderSymbol()==Symbol()&&(OrderTicket()==Ticket||Ticket==0)){
          
    int tick=OrderTicket();int type=OrderType();double take=OrderTakeProfit();double open=OrderOpenPrice();
          if(
    take!=BuyTakeProfit&&BuyTakeProfit!=0&&type==OP_BUY){
          
    OrderModify(tick,OrderOpenPrice(),OrderStopLoss(),BuyTakeProfit,0,0);}
          if(
    take!=SellTakeProfit&&SellTakeProfit!=0&&type==OP_SELL){
           
    OrderModify(tick,OrderOpenPrice(),OrderStopLoss(),SellTakeProfit,0,0);
         }
          }
           }
          }
       
     
    void MoveTrailing()
    {
        for(
    int cnt=0;cnt<=OrdersTotal();cnt++)
       {
          
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
         
          
    int tick1=OrderTicket();double open1=OrderOpenPrice();int type1=OrderType();double stop=OrderStopLoss();double prof=OrderTakeProfit();
          if(
    type1<=OP_SELL&&OrderSymbol()==Symbol()&&(tick1==Ticket||Ticket==0))
          {
             if(
    type1==OP_BUY)
             {
                if(
    TrailingDistance>0)  
                {                 
                   if(((
    MathAbs(NormalizeDouble(stop,digits)-NormalizeDouble(Bid,digits)))/point!=TrailingDistance)||(stop==0))
                   {
                      
    OrderModify(tick1,open1,NormalizeDouble(Bid-TrailingDistance*point,digits),prof,0,Blue);
                     
                   }
                }
             }
             else 
             {
                if(
    TrailingDistance>0)  
                {                 
                   if(((
    MathAbs(NormalizeDouble(stop,digits)-NormalizeDouble(Ask,digits)))/point!=TrailingDistance)||(stop==0))
                   {
                      
    OrderModify(tick1,open1,NormalizeDouble(Ask+TrailingDistance*point,digits),prof,0,Red);
                     
                   }
                }
             }
          }
       }


  4. #4
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,039

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة nirvano مشاهدة المشاركة
    السلام عليكم
    هل توجد طريقة لعمل اكسبيرت يقوم بتحديد التيك برفيل عن الطريق السعر وليس النقاط لصفقات مفتوحة ( المفعلة و ليس المعلقة ) سابقا فغير لها سعر التيك بروفيل مثلا انا فاتح يدويا 20 صفقة شراء على زوج واحد كيف لي ان احدد اتوماتكيا انو يكون الغلق على سعر 1.15200 لكل عمليات الشارء ونفس الشي للبيع ان تغلق جميع الصفقات المفعلة المفتوحة وليس المعلقة.
    يحتوي الاكسبيرت مايلي :

    سعر وليس نقاط TP_SELL : 1.10540
    سعر وليس نقاط TP_Buy : 1.11540

    و افضل لو يكون المخفي لو امكن بالطبع..... فقط
    وعليكم السلام ورحمة الله وبركاته
    نعم يمكن بنفس الطريقة التي تضع بها السعر بالنقاط
    مثال
    كود PHP:
    void TakeProfitByPrice()
    {
      for(
    int cnt=OrdersTotal()-1;cnt>=0;cnt--)
         {

          
    bool select=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
         
          if(
    symbol==Symbol())
            {
         
                if(
    type==OP_BUY||type==OP_BUYLIMIT||type==OP_BUYSTOP)
                  {
                  
                   if(
    BuyTakeProfit!=OrderTakeProfit())
                     {
                      
    bool modify=OrderModify(ticket,OrderOpenPrice(),OrderStopLoss(),BuyTakeProfit,0,Blue);
                     }
                  }
                else if(
    type==OP_SELL||type==OP_SELLLIMIT||type==OP_SELLSTOP)
                  {
                    if(
    SellTakeProfit!=OrderTakeProfit())
                     {
                      
    bool modify=OrderModify(ticket,OrderOpenPrice(),OrderStopLoss(),SellTakeProfit,0,Blue);
                     }
                  }
              
            }
         }

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

  5. #5
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,039

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة nirvano مشاهدة المشاركة
    لقد وجدت اكسبيرت مستر دولار MR.dollar_Trailing Stop EA v3 يضع هدف لكل صفقات BuyTakeProfit الهدف لجميع صفقات لكن يوجد مشكل في وضع هدف لصفقات sell فهو يضع SellTakeProfit السعر المحدد كستوب لوز لصفقات buy وليس هدف لجميع صفقات sell

    المطلوب وضع هدف لكل صفقات buy المفتوحة عن طريق BuyTakeProfit , وضع هدف لكل صفقات Sell المفتوحة عن طريق SellTakeProfit

    الغاء stop loss نهائيا

    كود PHP:
      extern int Ticket=0;
     
    extern string S1=" Set Target As Price";       
     
    extern double BuyTakeProfit=0;
     
    extern double SellTakeProfit=0;
     
    extern string S2=" Set Trailing For Orders";
     
    extern int TrailingDistance=0;
     
     
     
    double point;
     
    int digits;
                              
     
    int init()
    {
     
        if(
    Digits<4)
       {
          
    point=0.01;
          
    digits=2;
       }
       else
       {
          
    point=0.0001;
          
    digits=4;
       }
    return(
    0);
    }
     
     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS    deinitialization function                |
     //+------------------------------------------------------------------+
     
     
    void deinit() {
        
    Comment("");
      }
     
     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS   Start function                            |
     //+------------------------------------------------------------------+
     
     
    int start()
       {
        
    Comment("Programmed by MR.dollar"+"\n"+"أ£أ¤أٹأڈأ¬ أ‡أ،أ£أٹأڈأ‡أ¦أ، أ‡أ،أڑأ‘أˆأ*"+"\n"+"www.arabictrader.com/vb");
     
       if(
    TrailingDistance>0)MoveTrailing();
      
               
    //////////////////////////////////////
              
          //////////////////////////////////////////////////
          
    for(int i=0;i<OrdersTotal();i++){
          
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderSymbol()==Symbol()&&(OrderTicket()==Ticket||Ticket==0)){
          
    int tick=OrderTicket();int type=OrderType();double take=OrderTakeProfit();double open=OrderOpenPrice();
          if(
    take!=BuyTakeProfit&&BuyTakeProfit!=0&&type==OP_BUY){
          
    OrderModify(tick,OrderOpenPrice(),OrderStopLoss(),BuyTakeProfit,0,0);}
          if(
    take!=SellTakeProfit&&SellTakeProfit!=0&&type==OP_SELL){
           
    OrderModify(tick,OrderOpenPrice(),OrderStopLoss(),SellTakeProfit,0,0);
         }
          }
           }
          }
       
     
    void MoveTrailing()
    {
        for(
    int cnt=0;cnt<=OrdersTotal();cnt++)
       {
          
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
         
          
    int tick1=OrderTicket();double open1=OrderOpenPrice();int type1=OrderType();double stop=OrderStopLoss();double prof=OrderTakeProfit();
          if(
    type1<=OP_SELL&&OrderSymbol()==Symbol()&&(tick1==Ticket||Ticket==0))
          {
             if(
    type1==OP_BUY)
             {
                if(
    TrailingDistance>0)  
                {                 
                   if(((
    MathAbs(NormalizeDouble(stop,digits)-NormalizeDouble(Bid,digits)))/point!=TrailingDistance)||(stop==0))
                   {
                      
    OrderModify(tick1,open1,NormalizeDouble(Bid-TrailingDistance*point,digits),prof,0,Blue);
                     
                   }
                }
             }
             else 
             {
                if(
    TrailingDistance>0)  
                {                 
                   if(((
    MathAbs(NormalizeDouble(stop,digits)-NormalizeDouble(Ask,digits)))/point!=TrailingDistance)||(stop==0))
                   {
                      
    OrderModify(tick1,open1,NormalizeDouble(Ask+TrailingDistance*point,digits),prof,0,Red);
                     
                   }
                }
             }
          }
       }

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

  6. #6
    تاريخ التسجيل
    Aug 2018
    الإقامة
    الجزائر
    المشاركات
    116

    افتراضي

    شكرا لك الاخ الكريم MR.dollar على الرد السريع وتدخلك في اثراء الموضوع بتقديم حلان

    مع فائق تحياتي


  7. #7
    تاريخ التسجيل
    Aug 2018
    الإقامة
    الجزائر
    المشاركات
    116

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وعليكم السلام ورحمة الله وبركاته
    نعم يمكن بنفس الطريقة التي تضع بها السعر بالنقاط
    مثال
    كود PHP:
    void TakeProfitByPrice()
    {
      for(
    int cnt=OrdersTotal()-1;cnt>=0;cnt--)
         {

          
    bool select=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
         
          if(
    symbol==Symbol())
            {
         
                if(
    type==OP_BUY||type==OP_BUYLIMIT||type==OP_BUYSTOP)
                  {
                  
                   if(
    BuyTakeProfit!=OrderTakeProfit())
                     {
                      
    bool modify=OrderModify(ticket,OrderOpenPrice(),OrderStopLoss(),BuyTakeProfit,0,Blue);
                     }
                  }
                else if(
    type==OP_SELL||type==OP_SELLLIMIT||type==OP_SELLSTOP)
                  {
                    if(
    SellTakeProfit!=OrderTakeProfit())
                     {
                      
    bool modify=OrderModify(ticket,OrderOpenPrice(),OrderStopLoss(),SellTakeProfit,0,Blue);
                     }
                  }
              
            }
         }

    هل يمكن ادراج الكود في الاكسبيرت الاول Mr.dollar.Trailing_stop_V3 لانه رائع وسرع جدا كانه سكريبت وليس اكسبيرت
    لان الاكسبيرت اللذي وضعته MR.dollar_Order Management EA OnlySL_TP TrailingStop V3.2.mq4‏

    يتم تحديد الهدف عن طريق النقاط و ليس السعر
    شكرا
    آخر تعديل بواسطة nirvano ، 01-11-2019 الساعة 03:59 PM