صفحة 139 من 689 الأولىالأولى ... 3989129133134135136137138139140141142143144145149189239639 ... الأخيرةالأخيرة
النتائج 2,071 إلى 2,085 من 10335
  1. #2071
    الصورة الرمزية dentist_hussein
    dentist_hussein غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2011
    الإقامة
    مصر
    المشاركات
    1,827

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    إذا كنت أضفت شرط نوع العمله عند المقارنه
    كود PHP:
     if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber){ 
    فلن تحتاج إلى تغيير الماجيك نمبر عندما تقوم بتغيير العمله
    كود PHP:
        }
         
         
    int CloseBuyOrdersHiddenTP()
    {
      
    int total=OrdersTotal();

      for (
    int cnt=total;cnt>=0;cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        [
    COLOR="red"]if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
        {<
    font color="blue"

    وجدت هذا الشرط موجود في دالة الترلينج ستوب و البريك إيفين فأضفته لباقي الدوال هكذا 


    </font>
          if(
    OrderType()==OP_BUY&&Bid>(OrderOpenPrice()+TakeProfit*point))
          {
            
    OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3*D);
          }
        }
      }
     }  
         
    void CloseBuyOrdersHiddenSL()
    {
      
    int total=OrdersTotal();

      for (
    int cnt=total;cnt>=0;cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        [
    COLOR="red"]if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
        {
          if(
    OrderType()==OP_BUY&&Bid<(OrderOpenPrice()-StopLoss*point))
          {
            
    OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3*D);
          }
        }
      }
    }

    void CloseSellOrdersHiddenTP()
    {
      
    int total=OrdersTotal();

      for(
    int cnt=total;cnt>=0;cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        [
    COLOR="red"]if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
        {[/
    COLOR]
          if(
    OrderType()==OP_SELL&&Ask<(OrderOpenPrice()-TakeProfit*point))
          {
            
    OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3*D);
          }
        }
      }
    }

    void CloseSellOrdersHiddenSL()
    {
      
    int total=OrdersTotal();

      for(
    int cnt=total;cnt>=0;cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        [
    COLOR="red"]if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
        {[/
    COLOR]
          if(
    OrderType()==OP_SELL&&Ask>(OrderOpenPrice()+StopLoss*point))
          {
            
    OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3*D);
          }
        }
      }
    }
         
     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS   TrailingStop                              |
     //+------------------------------------------------------------------+
        
        //|---------trailing stop

    void MoveTrailingStop()
    {
       
       for(
    int cnt=0;cnt<OrdersTotal();cnt++)
       {
          
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderType()<=OP_SELL[COLOR="red"]&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
          {[/
    COLOR]
             if(
    OrderType()==OP_BUY)
             {
                if(
    TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,digits))  
                {                 
                   if((
    NormalizeDouble(OrderStopLoss(),digits)<NormalizeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
                   {
                      
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blue);
                    
                   }
                }
             }
             else 
             {
                if(
    TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))  
                {                 
                   if((
    NormalizeDouble(OrderStopLoss(),digits)>(NormalizeDouble(Ask+TrailingStop*point,digits)))||(OrderStopLoss()==0))
                   {
                      
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,digits),OrderTakeProfit(),0,Red);
                    
                   }
                }
             }
          }
       }
    }



    void MoveBreakEven()
    {
       
    int cnt,total=OrdersTotal();
       for(
    cnt=0;cnt<total;cnt++)
       {
          
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderType()<=OP_SELL&&OrderSymbol()==Symbol()[COLOR="red"]&&OrderMagicNumber()==MagicNumber)
          {[/
    COLOR]
             if(
    OrderType()==OP_BUY)
             {
                if(
    BreakEven>0)
                {
                   if(
    NormalizeDouble((Bid-OrderOpenPrice()),digits)>BreakEven*point)
                   {
                      if(
    NormalizeDouble((OrderStopLoss()-OrderOpenPrice()),digits)<0)
                      {
                         
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+movestopto*point,digits),OrderTakeProfit(),0,Blue);
                      
                      }
                   }
                }
             }
             else
             {
                if(
    BreakEven>0)
                {
                   if(
    NormalizeDouble((OrderOpenPrice()-Ask),digits)>BreakEven*point)
                   {
                      if(
    NormalizeDouble((OrderOpenPrice()-OrderStopLoss()),digits)<0)
                      {
                         
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-movestopto*point,digits),OrderTakeProfit(),0,Red);
                   
                      }
                   }
                }
             }
          }
       }

    فهل هكذا صحيح ؟؟
    وهل لن أحتاج إلى تغيير الماجيك نمبر حتى لو فتحت شارتين لنفس العمله بنفس الفريم ؟؟؟
    وبارك الله فيك ...
    ولدي سؤال بعد إذنك .. أحيانا عندما أقوم بتفعيل الإكسبيرت أجده قد قام بفتح صفقه مباشرة و عندما أبحث أجد أن الشروط كانت محققة في الشمعه السابقة والحالية لم تغلق لكن الحاليه مثلا قد تكون إبتعدت بعدد نقاط كثيره ... فهل أجعل رقم الشمعه في الشروط 0 بدلا من 1 حتى لا يحدث هذا أم ماذا ؟؟؟
    وجزاك الله عنا كل خير .[/COLOR]
    [/COLOR]
    آخر تعديل بواسطة dentist_hussein ، 09-05-2012 الساعة 08:27 AM
    توقيع العضو
    MetaTrader Login: 652105
    Investor Password: Z3UR9DA0

  2. #2072
    الصورة الرمزية dentist_hussein
    dentist_hussein غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2011
    الإقامة
    مصر
    المشاركات
    1,827

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    سوف تستخدم الحلقه for للبحث عن آخر شمعة ظهر عندها السهم سواء شراء أو بيع
    مثال
    كود PHP:
    int barnumber;
    for(
    int i=1;i<Bars;i++){
    double up=iCustom(Symbol(),0,"arrow",0,i);
    if(
    up<5000){
    barnumber=i;
    break;
     }

    ثم سيكون رقم الشمعة التي ظهر عندها آخر سهم هي barnumber ومنها يمكنك تحديد الشراء إذا كان الإغلاق أكبر من الهاي لهذه الشمعه
    كود PHP:
    if(Close[1]>High[barnumber])
    {
    // buy


    أستاذ أسامه و إذا أردت أن يكون من ضمن شروط الشراء أن يكون آخر سهم قد ظهر في الشموع الماضيه هو سهم شراء ,,,
    كيف أضع الشرط ضمن الشروط و كيف تكون الدالة للبحث عن سهم الشراء في الشموع الماضيه ؟؟ وهل هذه الطريقه تنفع لأي مؤشر خارجي يظهر أسهم بيع وشراء ؟
    وأين يكون مكان الداله for‏ هل لها مكان ثابت ‏؟
    توقيع العضو
    MetaTrader Login: 652105
    Investor Password: Z3UR9DA0

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة spiders101 مشاهدة المشاركة
    قمت بعمل التعديل التالى على المؤشر ولكن الاليرت يظهر مع كل شمعة جديدة وليس مع تغير الاشارة .

    ما الخطـأ ، وأرجو شرح طريقة اضافة الأليرت بشكل عام ، بارك الله فيك .
    بدايتك قريبة من الصح لكن الفكره في أنك ستبحث عن نفس الشروط كأنك تقوم بعمل إكسبرت بحيث تقارن عندما يتغير اللون في الشمعه السابقه يعطي التنبيه لذلك سوف تقارن بين الشمعه السابقه والشمعه التي قبلها

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

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة dentist_hussein مشاهدة المشاركة

    كود PHP:
        }
         
         
    int CloseBuyOrdersHiddenTP()
    {
      
    int total=OrdersTotal();

      for (
    int cnt=total;cnt>=0;cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        [
    COLOR="red"]if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
        { 

    وجدت هذا الشرط موجود في دالة الترلينج ستوب و البريك إيفين فأضفته لباقي الدوال هكذا 



          
    if(OrderType()==OP_BUY&&Bid>(OrderOpenPrice()+TakeProfit*point))
          {
            
    OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3*D);
          }
        }
      }
     }  
         
    void CloseBuyOrdersHiddenSL()
    {
      
    int total=OrdersTotal();

      for (
    int cnt=total;cnt>=0;cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        [
    COLOR="red"]if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
        {
          if(
    OrderType()==OP_BUY&&Bid<(OrderOpenPrice()-StopLoss*point))
          {
            
    OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3*D);
          }
        }
      }
    }

    void CloseSellOrdersHiddenTP()
    {
      
    int total=OrdersTotal();

      for(
    int cnt=total;cnt>=0;cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        [
    COLOR="red"]if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
        {[/
    COLOR]
          if(
    OrderType()==OP_SELL&&Ask<(OrderOpenPrice()-TakeProfit*point))
          {
            
    OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3*D);
          }
        }
      }
    }

    void CloseSellOrdersHiddenSL()
    {
      
    int total=OrdersTotal();

      for(
    int cnt=total;cnt>=0;cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        [
    COLOR="red"]if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
        {[/
    COLOR]
          if(
    OrderType()==OP_SELL&&Ask>(OrderOpenPrice()+StopLoss*point))
          {
            
    OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3*D);
          }
        }
      }
    }
         
     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS   TrailingStop                              |
     //+------------------------------------------------------------------+
        
        //|---------trailing stop

    void MoveTrailingStop()
    {
       
       for(
    int cnt=0;cnt<OrdersTotal();cnt++)
       {
          
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderType()<=OP_SELL[COLOR="red"]&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
          {[/
    COLOR]
             if(
    OrderType()==OP_BUY)
             {
                if(
    TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,digits))  
                {                 
                   if((
    NormalizeDouble(OrderStopLoss(),digits)<NormalizeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
                   {
                      
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blue);
                    
                   }
                }
             }
             else 
             {
                if(
    TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))  
                {                 
                   if((
    NormalizeDouble(OrderStopLoss(),digits)>(NormalizeDouble(Ask+TrailingStop*point,digits)))||(OrderStopLoss()==0))
                   {
                      
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,digits),OrderTakeProfit(),0,Red);
                    
                   }
                }
             }
          }
       }
    }



    void MoveBreakEven()
    {
       
    int cnt,total=OrdersTotal();
       for(
    cnt=0;cnt<total;cnt++)
       {
          
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderType()<=OP_SELL&&OrderSymbol()==Symbol()[COLOR="red"]&&OrderMagicNumber()==MagicNumber)
          {[/
    COLOR]
             if(
    OrderType()==OP_BUY)
             {
                if(
    BreakEven>0)
                {
                   if(
    NormalizeDouble((Bid-OrderOpenPrice()),digits)>BreakEven*point)
                   {
                      if(
    NormalizeDouble((OrderStopLoss()-OrderOpenPrice()),digits)<0)
                      {
                         
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+movestopto*point,digits),OrderTakeProfit(),0,Blue);
                      
                      }
                   }
                }
             }
             else
             {
                if(
    BreakEven>0)
                {
                   if(
    NormalizeDouble((OrderOpenPrice()-Ask),digits)>BreakEven*point)
                   {
                      if(
    NormalizeDouble((OrderOpenPrice()-OrderStopLoss()),digits)<0)
                      {
                         
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-movestopto*point,digits),OrderTakeProfit(),0,Red);
                   
                      }
                   }
                }
             }
          }
       }
    }

    [/
    COLOR][/COLOR
    فهل هكذا صحيح ؟؟
    وهل لن أحتاج إلى تغيير الماجيك نمبر حتى لو فتحت شارتين لنفس العمله بنفس الفريم ؟؟؟
    وبارك الله فيك ...
    ولدي سؤال بعد إذنك .. أحيانا عندما أقوم بتفعيل الإكسبيرت أجده قد قام بفتح صفقه مباشرة و عندما أبحث أجد أن الشروط كانت محققة في الشمعه السابقة والحالية لم تغلق لكن الحاليه مثلا قد تكون إبتعدت بعدد نقاط كثيره ... فهل أجعل رقم الشمعه في الشروط 0 بدلا من 1 حتى لا يحدث هذا أم ماذا ؟؟؟
    وجزاك الله عنا كل خير .
    إذا كان الشارت لنفس العمله فسوف تحتاج إلى تغيير الماجيك نمبر وهذا واضح من المقارنه التي وضعتها
    أنت تقارن بين الماجيك نمبر والعمله بالتالي إذا كانت نفس العمله ونفس الماجيك نمبر فلن تجد أي إختلاف عن إذا كان إكسرت مختلف تماما هو الذي فتح الصفقه

    بالنسبه للسؤال الثاني
    في هذه الحاله يمكنك إضافة شرط ان الشمعه الحاليه لم تتحرك عدد نقاط محدده يعني مثلا سوف تضيف إلى شروط الدخول
    كود PHP:
     if(High[0]-Low[0]<5*Point
    يعني إذا كان الهاي - اللو للشمعه الحاليه أقل من 5 نقاط أو أي عدد محدد من النقاط حتى تتأكد أن السعر لم تحرك كثيرا
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة dentist_hussein مشاهدة المشاركة



    أستاذ أسامه و إذا أردت أن يكون من ضمن شروط الشراء أن يكون آخر سهم قد ظهر في الشموع الماضيه هو سهم شراء ,,,
    كيف أضع الشرط ضمن الشروط و كيف تكون الدالة للبحث عن سهم الشراء في الشموع الماضيه ؟؟ وهل هذه الطريقه تنفع لأي مؤشر خارجي يظهر أسهم بيع وشراء ؟
    وأين يكون مكان الداله for‏ هل لها مكان ثابت ‏؟
    في هذه الحاله سوف تبحث عن سهم الشراء بأن تختار سهم الشراء في رقم الإندكس راجع موضوع كيفية إستدعاء مؤشر خارجي
    وإذا كنت تبحث عن سهم بيع سوف تختار سهم البيع في رقم الإندكس وطبعا نفس المقارنه ستكون واحده

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

  6. #2076
    الصورة الرمزية xcv114
    xcv114 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2010
    الإقامة
    مصر
    المشاركات
    1,022

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة xcv114 مشاهدة المشاركة
    ألف شكر أستاذ أسامة على إجابة السؤالين
    بس للأسف عندي سؤال كمان

    أنا عايز
    لو أخر عملية مغلقة كانت خسرانة ولو فرضا أنا داخل بلوت 1
    العملية إللي بعدها تكون بـ 2 لوت

    وسواء العملية التانية خسرت أو ربحت يعود مرة أخرى للوت الأساسي 1
    ياريت يا أستاذ أسامة إجابة السؤال ده
    عشان عامل إكسبيرت واقف عليه

  7. #2077
    الصورة الرمزية dentist_hussein
    dentist_hussein غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2011
    الإقامة
    مصر
    المشاركات
    1,827

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    إذا كان الشارت لنفس العمله فسوف تحتاج إلى تغيير الماجيك نمبر وهذا واضح من المقارنه التي وضعتها
    أنت تقارن بين الماجيك نمبر والعمله بالتالي إذا كانت نفس العمله ونفس الماجيك نمبر فلن تجد أي إختلاف عن إذا كان إكسرت مختلف تماما هو الذي فتح الصفقه

    بالنسبه للسؤال الثاني
    في هذه الحاله يمكنك إضافة شرط ان الشمعه الحاليه لم تتحرك عدد نقاط محدده يعني مثلا سوف تضيف إلى شروط الدخول
    كود PHP:
     if(High[0]-Low[0]<5*Point
    يعني إذا كان الهاي - اللو للشمعه الحاليه أقل من 5 نقاط أو أي عدد محدد من النقاط حتى تتأكد أن السعر لم تحرك كثيرا

    تمام أخي أسامه .. يعني الأكواد الماضيه صحيحه ؟؟؟.. شكرا لك .
    بالنسبه لشرط
    كود PHP:
    if(High[0]-Low[0]<5*Point
    هل إذا فعلت الإكسبيرت في الحالة التي ذكرتها وقد إبتعد السعر بعدد نقاط أكبر من المحدده في الشرط فلن يدخل إلا إذا عاد في حدود عدد النقاط المدخله ؟؟؟
    وماذا لو ادرت تفعيل خاصية كهذه ولكن ليس بإستخدام رقم الشمعه 0 و لكن إذا أغلقت الشمعه 1 بعدد نقاط أكبر من المحدد يتم الدخول غذا عاد السعر لعدد النقاط المحدد حتى لو أغلقت شمعة و إتنين بعد الكسر .
    و بارك الله فيك .

    توقيع العضو
    MetaTrader Login: 652105
    Investor Password: Z3UR9DA0

  8. #2078
    الصورة الرمزية dentist_hussein
    dentist_hussein غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2011
    الإقامة
    مصر
    المشاركات
    1,827

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    في هذه الحاله سوف تبحث عن سهم الشراء بأن تختار سهم الشراء في رقم الإندكس راجع موضوع كيفية إستدعاء مؤشر خارجي
    وإذا كنت تبحث عن سهم بيع سوف تختار سهم البيع في رقم الإندكس وطبعا نفس المقارنه ستكون واحده

    سوف تضع هذا الجزء من الكود قبل أوامر البيع والشراء
    تمام استاذي الكريم ... سوف أجرب بإذن الله و جزاك الله خيرا
    توقيع العضو
    MetaTrader Login: 652105
    Investor Password: Z3UR9DA0

  9. #2079
    الصورة الرمزية spiders101
    spiders101 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2011
    الإقامة
    مصــر
    المشاركات
    935

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    بدايتك قريبة من الصح لكن الفكره في أنك ستبحث عن نفس الشروط كأنك تقوم بعمل إكسبرت بحيث تقارن عندما يتغير اللون في الشمعه السابقه يعطي التنبيه لذلك سوف تقارن بين الشمعه السابقه والشمعه التي قبلها

    تم تعديل المؤشر

    جزاك الله خيرا على التعديل ، ولكن انا قمت بالتعديل بطريقة مختلفه كالتالى ..

    كود PHP:
          if (gd_92 gd_84){
          
    g_ibuf_100[li_4] = BoxLevel;
          
          
    ss=1;      
          }
                
          if (
    gd_92 gd_84){
          
          
    g_ibuf_104[li_4] = BoxLevel;
          
          
    ss=2;
           
           }
           
         }
      if (
    Alertsound==true && AlertMessage==true && tt!=1&& ss==){PlaySound("Alert.wav");Alert("Color Change - direction","=Down");tt=1;}
      if (
    Alertsound==true && AlertMessage==true && tt!=2&& ss==){PlaySound("Alert.wav");Alert("Color Change - direction","=Up");tt=2;} 
          
           
       return (
    0);


    مع اضافة تعريف للمتغيرات التالية ..

    كود PHP:
    int tt,ss
    ويعمـل التنبيه بشكل جيد تبعـا لتغير الاشارة ، فهـل التعديل السابق صحيح ايضـا !!

  10. #2080
    الصورة الرمزية spiders101
    spiders101 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2011
    الإقامة
    مصــر
    المشاركات
    935

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    شرط فتح الصفقات لن يكون مرتبط بأي حال بشرط إغلاق الصفقات فكل جزء سيكون منفصل
    كود PHP:

    if(up1<5000 && down2<5000 && CloseOppositeSignals==true){

    CloseSellOrders();
    }
    if(
    down1<5000 && up2<5000 && CloseOppositeSignals==true){

    CloseBuyOrders();
    }

    if(
    up1<5000 && down2<5000 ){

           
    if(
    orderstotal()<MaxTrades){
    if(
    StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
    if(
    TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}

    if(
    UseMultiplier==true)

    {
    if(
    WinorLoss()==false)Lots=lastlot()*Multiplier;
    if(
    WinorLoss()==true)Lots=Firstlot;
    }
              
    OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,digits),5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);

     }
    }

    if(
    down1<5000 && up2<5000){

           
    if(
    orderstotal()<MaxTrades){
    if(
    StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
    if(
    TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}

    if(
    UseMultiplier==true)

    {
    if(
    WinorLoss()==false)Lots=lastlot()*Multiplier;
    if(
    WinorLoss()==true)Lots=Firstlot;
    }
               
    OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,digits),5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Red); 
                      
     }


    شكرا جزيلا أستاذى العزيز ، بالفعـل شرط فتح الصفقات غير مرتبط بشرط إغلاق الصفقات وتم التعديل ، ولكن لدى سؤال ، بخصوص الطريقة التي كتبت بها الشروط سابقا واضافة شروط البيع والشراء مرتين ، هل كان
    ذلك خطـأ ، أو قد يؤثر بالسلب على نتيجة عمل الاكسيبرت !!

  11. #2081
    الصورة الرمزية spiders101
    spiders101 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2011
    الإقامة
    مصــر
    المشاركات
    935

    افتراضي

    استاذ اسامة ، لدى سؤال بخصوص بعض الأكواد مثل ...
    كود PHP:
     OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),5*Q);

    OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),5*Q);

    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-movestopto*point,digits),OrderTakeProfit(),0,Red); 
    هل يجب اضافة كل من NormalizeDouble ، digits ،، فـ جميع هذه الأكواد والتى بها كلمات مثل
    كود PHP:
    Ask ، Bid  ، OrderOpenPrice() 
    لأنى لاحظت ان بعضها لايضاف له NormalizeDouble ، digits

    ** باعتبار تم تعريف الـ digits داخل الاكسيبرت

  12. #2082
    الصورة الرمزية spiders101
    spiders101 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2011
    الإقامة
    مصــر
    المشاركات
    935

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    الطريقة السابقه سوف تصلح في حال أنك إستخدمت المضاعفات مع عدم إغلاق الصفقة الخاسره بحيث الداله
    كود PHP:
    orderstotal() 
    سوف تعود بقيمة الصفقات المفتوحه
    لكن في هذا الإكسبرت الصفقات الخاسره تغلق بالتالي هذا الشرط لن يتحقق أبدا وسوف يظل يفتح مضاعفات
    لذلك يمكنك مثلا وضع عداد مع كل صفقة مضاعفات تفتح يزيد العداد 1 بحيث تحسب عدد المضاعفات التي فتحت
    وعندما تغلق صفقة على ربح يصفر العداد حتى يبدأ من جديد

    وأيضا شرط عندما يصل إلى أقصى مضاعفه يصبح حجم اللوت هو حجم اللوت الإبتدائي
    مثال
    كود PHP:
    if(UseMultiplier&&Multi_Numbers<MaxMultiplierOrders)

    {
     if(
    WinorLoss()==false){
      
    Lots=lastlot()*Multiplier;Multi_Numbers++;}
    }
     else 
    Lots=Firstlot;  
      if(
    WinorLoss()==true){
     
    Lots=Firstlot;Multi_Numbers=0;} 
    مرفق الإكسبرت بعد التعديل
    شكرا جزيلا ، تم التعديل ويعمل كما أريد وعدلت ايضـا أمر
    كود PHP:
    else Lots=lastlot(); 
    حتى يفتح قيمة أخر عقد مضاعف فـ حالة الخسارة بدل من أول عقد تم فتحه ، ولدى سؤال بخصوص

    الكود السابق ، لماذا استخدمنا جملة شرط else بعد جملة if الأولى ، أقصد لماذا لم نضع شرط جملة if

    الثانية مباشرة بعد الأولى !!

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة xcv114 مشاهدة المشاركة


    ياريت يا أستاذ أسامة إجابة السؤال ده
    عشان عامل إكسبيرت واقف عليه
    يمكنك مثلا معرفة آخر صفقة هل فتحت على مضاعفات أم فتحت صفقة عاديه بأن تقوم بوضع كومنت مختلف لصفقة المضاعفات
    مثال
    كود PHP:
    OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),3,0,0,"Multiplier order",MagicNumber,0,Red); 
    ثم تقوم بعمل داله للبحث عن آخر صفقة فتحت وتبحث عن الكومنت الخاص بها
    كود PHP:
     bool isLastOrderMultiplied()
       {
       for(
    int i=OrdersTotal();i>=0;i--){
       
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
       if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
       if(
    OrderComment()=="Multiplier order")return(true);
       else return(
    false);
        }
       }
      return(
    false);
      } 
    ثم ستضع من ضمن شروط الدخول في المضاعفات
    كود PHP:
     if(isLastOrderMultiplied()==false
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة dentist_hussein مشاهدة المشاركة


    تمام أخي أسامه .. يعني الأكواد الماضيه صحيحه ؟؟؟.. شكرا لك .
    بالنسبه لشرط
    كود PHP:
    if(High[0]-Low[0]<5*Point
    هل إذا فعلت الإكسبيرت في الحالة التي ذكرتها وقد إبتعد السعر بعدد نقاط أكبر من المحدده في الشرط فلن يدخل إلا إذا عاد في حدود عدد النقاط المدخله ؟؟؟
    وماذا لو ادرت تفعيل خاصية كهذه ولكن ليس بإستخدام رقم الشمعه 0 و لكن إذا أغلقت الشمعه 1 بعدد نقاط أكبر من المحدد يتم الدخول غذا عاد السعر لعدد النقاط المحدد حتى لو أغلقت شمعة و إتنين بعد الكسر .
    و بارك الله فيك .

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

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة spiders101 مشاهدة المشاركة
    جزاك الله خيرا على التعديل ، ولكن انا قمت بالتعديل بطريقة مختلفه كالتالى ..

    كود PHP:
          if (gd_92 gd_84){
          
    g_ibuf_100[li_4] = BoxLevel;
          
          
    ss=1;      
          }
                
          if (
    gd_92 gd_84){
          
          
    g_ibuf_104[li_4] = BoxLevel;
          
          
    ss=2;
           
           }
           
         }
      if (
    Alertsound==true && AlertMessage==true && tt!=1&& ss==){PlaySound("Alert.wav");Alert("Color Change - direction","=Down");tt=1;}
      if (
    Alertsound==true && AlertMessage==true && tt!=2&& ss==){PlaySound("Alert.wav");Alert("Color Change - direction","=Up");tt=2;} 
          
           
       return (
    0);

    مع اضافة تعريف للمتغيرات التالية ..

    كود PHP:
    int tt,ss
    ويعمـل التنبيه بشكل جيد تبعـا لتغير الاشارة ، فهـل التعديل السابق صحيح ايضـا !!
    الكود سوف يختلف من مبرمج لآخر وحسب طريقتك التي تريد وضعها وبما أنه أعطى التنبيه بشكل صحيح فالتعديل أكيد صحيح
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

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

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


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