صفحة 278 من 686 الأولىالأولى ... 178228268272273274275276277278279280281282283284288328378 ... الأخيرةالأخيرة
النتائج 4,156 إلى 4,170 من 10285
  1. #4156
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    للأسف لم تنجح الدالة المعدلة بالباكتيست فقط خدعت حيث الكائن trendline الذي يتكون بعد الاغلاق عكست ألوانها فقط
    ويتم الاغلاق كما كان سابقا وكأنه لا يوجد مقارنة عدد النقاط بالشراء والبيع
    توقيع العضو
    متداول فوركس، ومبرمج mql

  2. #4157
    الصورة الرمزية W A V E R
    W A V E R غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2013
    الإقامة
    المملكة العربية السعودية
    المشاركات
    277

    افتراضي

    موضوع مميز بارك الله فيك

  3. #4158
    الصورة الرمزية توفيق
    توفيق غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Dec 2007
    الإقامة
    اجادير جوهرة المغرب
    العمر
    37
    المشاركات
    1,402

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    السلام عليكم اخي ماستر دولار
    استأجرت سيرفر بالموصفات التالية

    • 1 GB RAM
    • 2 CPU Core 3.6 GHz
    • 60 GB RAID Storage
    • 10 TB Premium Traffic


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

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

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

    • 1 GB RAM
    • 2 CPU Core 3.6 GHz
    • 60 GB RAID Storage
    • 10 TB Premium Traffic


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

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

    إذا كان الإكسبرت يعتمد على فتح الصفقات في نفس الوقت تقريبا على جميع الأزواج فقد كتبت مشاركه سابقه تشرح هذه المشكله

    https://forum.arabictrader.com/t3761...ml#post2682758
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة tsaheel مشاهدة المشاركة
    شكرا لجهود الاخوة في هذا الموضوع
    بالنسبة للميتاتريدر في قسم فحص الاكسبريت
    يوجد :
    أمر " حدود الاختبار " ما هي ميزة هذا الزر وكيف يمكن الاستفادة منه ؟؟
    وشكرا جزيلا
    خاصية الأوبتمايز أو optimization تسمح لك بدلا من أن تجرب الإعدادات يدويا للوصول إلى أفضل إعدادات فيجعل الميتاتريدر أوتوماتيكيا يبث لك عن أفضل إعدادات للإكسبرت بناء على مجال نقاط البحث التي تحددها له

    راجع هذا الموضوع

    https://forum.arabictrader.com/t84237.html
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة zzeyani مشاهدة المشاركة
    مرحبا أيها الاصدقاء . أحتاج تعديل لهدا السكريبت منفضلكم.
    مهمت السكربت 1 : عدم إقفال أي صفقة رابحة من " 0 إلى 40 نقطة"
    مهمت السكربت 2 : عدم إقفال أي صفقة خاسرة من " 0 إلى 39 نقطة"
    وشكرا على المساعدة مسبقا .

    كود PHP:
    //+------------------------------------------------------------------+   
    //| This MQL is generated by Expert Advisor Builder                  |   
    //|                http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/ |   
    //|                                                                  |   
    //|  In no event will author be liable for any damages whatsoever.   |   
    //|                      Use at your own risk.                       |   
    //|                                                                  |   
    //+------------------- DO NOT REMOVE THIS HEADER --------------------+   

    #define SIGNAL_NONE 0   
    #define SIGNAL_BUY   1   
    #define SIGNAL_SELL  2   
    #define SIGNAL_CLOSEBUY 3   
    #define SIGNAL_CLOSESELL 4   

    #property copyright "Expert Advisor Builder"   
    #property link      "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"   

    extern int MagicNumber 0;   
    extern bool SignalMail False;   
    extern bool EachTickMode True;   
    extern double Lots 1.0;   
    extern int Slippage 3;   
    extern bool UseStopLoss True;   
    extern int StopLoss 40;   
    extern bool UseTakeProfit False;   
    extern int TakeProfit 60;   
    extern bool UseTrailingStop False;   
    extern int TrailingStop 30;   

    int BarCount;   
    int Current;   
    bool TickCheck False;   
    //+------------------------------------------------------------------+   
    //| expert initialization function                                   |   
    //+------------------------------------------------------------------+   
    int init() {   
       
    BarCount Bars;   

       if (
    EachTickModeCurrent 0; else Current 1;   

       return(
    0);   
    }   
    //+------------------------------------------------------------------+   
    //| expert deinitialization function                                 |   
    //+------------------------------------------------------------------+   
    int deinit() {   
       return(
    0);   
    }   
    //+------------------------------------------------------------------+   
    //| expert start function                                            |   
    //+------------------------------------------------------------------+   
    int start() {   
       
    int Order SIGNAL_NONE;   
       
    int TotalTicket;   
       
    double StopLossLevelTakeProfitLevel;   



       if (
    EachTickMode && Bars != BarCountTickCheck False;   
       
    Total OrdersTotal();   
       
    Order SIGNAL_NONE;   

       
    //+------------------------------------------------------------------+   
       //| Variable Begin                                                   |   
       //+------------------------------------------------------------------+   


    double Buy1_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 1);   
    double Buy1_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 1);   
    double Buy2_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 2);   
    double Buy2_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 2);   

    double Sell1_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 1);   
    double Sell1_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 1);   
    double Sell2_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 2);   
    double Sell2_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 2);   

    double CloseBuy1_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 1);   
    double CloseBuy1_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 1);   

    double CloseSell1_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 1);   
    double CloseSell1_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 1);   

          
       
    //+------------------------------------------------------------------+   
       //| Variable End                                                     |   
       //+------------------------------------------------------------------+   

       //Check position   
       
    bool IsTrade False;   

       for (
    int i 0Total++) {   
          
    OrderSelect(iSELECT_BY_POSMODE_TRADES);   
          if(
    OrderType() <= OP_SELL &&  OrderSymbol() == Symbol()) {   
             
    IsTrade True;   
             if(
    OrderType() == OP_BUY) {   
                
    //Close   

                //+------------------------------------------------------------------+   
                //| Signal Begin(Exit Buy)                                           |   
                //+------------------------------------------------------------------+   

                        
    if (CloseBuy1_1 CloseBuy1_2Order SIGNAL_CLOSEBUY;   


                
    //+------------------------------------------------------------------+   
                //| Signal End(Exit Buy)                                             |   
                //+------------------------------------------------------------------+   

                
    if (Order == SIGNAL_CLOSEBUY&&(OrderProfit()<0||OrderProfit()>=TakeProfit)&&(  
                (
    EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {   
                   
    OrderClose(OrderTicket(), OrderLots(), BidSlippageMediumSeaGreen);   
                   if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(BidDigits) + " Close Buy");   
                   if (!
    EachTickModeBarCount Bars;   
                   
    IsTrade False;   
                   continue;   
                }   
                
    //Trailing stop   
                
    if(UseTrailingStop && TrailingStop 0) {                    
                   if(
    Bid OrderOpenPrice() > Point TrailingStop) {   
                      if(
    OrderStopLoss() < Bid Point TrailingStop) {   
                         
    OrderModify(OrderTicket(), OrderOpenPrice(), Bid Point TrailingStopOrderTakeProfit(), 0MediumSeaGreen);   
                         if (!
    EachTickModeBarCount Bars;   
                         continue;   
                      }   
                   }   
                }   
             } else {   
                
    //Close   

                //+------------------------------------------------------------------+   
                //| Signal Begin(Exit Sell)                                          |   
                //+------------------------------------------------------------------+   

                         
    if (CloseSell1_1 CloseSell1_2Order SIGNAL_CLOSESELL;   


                
    //+------------------------------------------------------------------+   
                //| Signal End(Exit Sell)                                            |   
                //+------------------------------------------------------------------+   

                
    if (Order == SIGNAL_CLOSESELL&&(OrderProfit()<0||OrderProfit()>=TakeProfit)&&  
                ((
    EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {   
                   
    OrderClose(OrderTicket(), OrderLots(), AskSlippageDarkOrange);   
                   if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(AskDigits) + " Close Sell");   
                   if (!
    EachTickModeBarCount Bars;   
                   
    IsTrade False;   
                   continue;   
                }   
                
    //Trailing stop   
                
    if(UseTrailingStop && TrailingStop 0) {                    
                   if((
    OrderOpenPrice() - Ask) > (Point TrailingStop)) {   
                      if((
    OrderStopLoss() > (Ask Point TrailingStop)) || (OrderStopLoss() == 0)) {   
                         
    OrderModify(OrderTicket(), OrderOpenPrice(), Ask Point TrailingStopOrderTakeProfit(), 0DarkOrange);   
                         if (!
    EachTickModeBarCount Bars;   
                         continue;   
                      }   
                   }   
                }   
             }   
          }   
       }   

       
    //+------------------------------------------------------------------+   
       //| Signal Begin(Entry)                                              |   
       //+------------------------------------------------------------------+   

       
    if (Buy1_1 Buy1_2 && Buy2_1 <= Buy2_2Order SIGNAL_BUY;   

       if (
    Sell1_1 Sell1_2 && Sell2_1 >= Sell2_2Order SIGNAL_SELL;   


       
    //+------------------------------------------------------------------+   
       //| Signal End                                                       |   
       //+------------------------------------------------------------------+   

       //Buy   
       
    if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {   
          if(!
    IsTrade) {   
             
    //Check free margin   
             
    if (AccountFreeMargin() < (1000 Lots)) {   
                Print(
    "We have no money. Free Margin = "AccountFreeMargin());   
                return(
    0);   
             }   

             if (
    UseStopLossStopLossLevel Ask StopLoss Point; else StopLossLevel 0.0;   
             if (
    UseTakeProfitTakeProfitLevel Ask TakeProfit Point; else TakeProfitLevel 0.0;   

             
    Ticket OrderSend(Symbol(), OP_BUYLotsAskSlippageStopLossLevelTakeProfitLevel"Buy(#" MagicNumber ")"MagicNumber0DodgerBlue);   
             if(
    Ticket 0) {   
                if (
    OrderSelect(TicketSELECT_BY_TICKETMODE_TRADES)) {   
                    Print(
    "BUY order opened : "OrderOpenPrice());   
                    if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(AskDigits) + " Open Buy");   
                } else {   
                    Print(
    "Error opening BUY order : "GetLastError());   
                }   
             }   
             if (
    EachTickModeTickCheck True;   
             if (!
    EachTickModeBarCount Bars;   
             return(
    0);   
          }   
       }   

       
    //Sell   
       
    if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {   
          if(!
    IsTrade) {   
             
    //Check free margin   
             
    if (AccountFreeMargin() < (1000 Lots)) {   
                Print(
    "We have no money. Free Margin = "AccountFreeMargin());   
                return(
    0);   
             }   

             if (
    UseStopLossStopLossLevel Bid StopLoss Point; else StopLossLevel 0.0;   
             if (
    UseTakeProfitTakeProfitLevel Bid TakeProfit Point; else TakeProfitLevel 0.0;   

             
    Ticket OrderSend(Symbol(), OP_SELLLotsBidSlippageStopLossLevelTakeProfitLevel"Sell(#" MagicNumber ")"MagicNumber0DeepPink);   
             if(
    Ticket 0) {   
                if (
    OrderSelect(TicketSELECT_BY_TICKETMODE_TRADES)) {   
                    Print(
    "SELL order opened : "OrderOpenPrice());   
                    if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(BidDigits) + " Open Sell");   
                } else {   
                    Print(
    "Error opening SELL order : "GetLastError());   
                }   
             }   
             if (
    EachTickModeTickCheck True;   
             if (!
    EachTickModeBarCount Bars;   
             return(
    0);   
          }   
       }   

       if (!
    EachTickModeBarCount Bars;   

       return(
    0);   
    }   
    //+------------------------------------------------------------------+ 
    بالنسبه لهذا الإكسبرت فهو يوجد فيه شرطين لإغلاق الصفقات
    لإغلاق الشراء
    كود PHP:
      if (CloseBuy1_1 CloseBuy1_2Order SIGNAL_CLOSEBUY
    ولإغلاق البيع
    كود PHP:
    if (CloseSell1_1 CloseSell1_2Order SIGNAL_CLOSESELL
    فسوف تقوم بتعديل أوامر إغلاق البيع والشراء وتضيف الشرط
    كود PHP:
      if(OrderClosePrice()-OrderOpenPrice()>=40*Point||OrderOpenPrice()-OrderClosePrice()>=39*Point)continue; 
    ليصبح
    كود PHP:
      if (Order == SIGNAL_CLOSEBUY&&(OrderProfit()<0||OrderProfit()>=TakeProfit)&&(  
                (
    EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {  
                if(
    OrderClosePrice()-OrderOpenPrice()>=40*Point||OrderOpenPrice()-OrderClosePrice()>=39*Point)continue; 
                   
    OrderClose(OrderTicket(), OrderLots(), BidSlippageMediumSeaGreen);   
                   if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(BidDigits) + " Close Buy");   
                   if (!
    EachTickModeBarCount Bars;   
                   
    IsTrade False;   
                   continue;   
                } 
    وبالنسبه للبيع نفس الطريقه
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة daod مشاهدة المشاركة
    السلام عليكم ورحمة الله.

    اريد كود المناقصات

    يعني اذا كان العقد الاول 8 يكون العقد الثاني 7 والثالث 6 والرابع 5وهكذا ؟

    او

    يعني اذا كان العقد الاول 8 يكون العقد الثاني 4 والثالث 2 والرابع 1وهكذا؟
    وعليكم السلام ورحمة الله وبركاته
    نفس فكرة المضاعفات لكن بدلا من أن تضرب حجم اللوت في 2 مثلا سوف تقسمه على 2 أو تطرح من 1 و هكذا
    مثال
    كود PHP:
    double NextLot()
     {
      for(
    int i=OrdersHistoryTotal()-1;i>=0;i--)
      {
       
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
       if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
       {
        return(
    OrderLots());
       }
      }
      return(
    0);
     } 
    بالتالي حجم لوت الصفقة التاليه سيكون
    كود PHP:
    newlot=NextLot()/2
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    السلام عليكم ورحمة الله وبركاته
    تحياتي أستاذ مستر دولار
    كنت أنتظر الرد على المشاركة رقم 4149 لكن الان لنتركها فيما بعد لأنها مسألة ثانوية فقط
    الان لدي مشكلة أعظم!!!
    كنت أظن أن دالة الاغلاق كلوزباي لمستويين أنها تفي بالغرض لكن الظاهر العكس لكن الخطأ مني حيث لم أشرح بالتفصيل ما أريد
    هذه الدالة للتذكير قمنا باضفتها باكسبيرت الأوامر المعلقة النسخة 4.6
    والتي قمت بتعديلها بحدف Break حيث لا يستطيع الاكسبيرت إغلاق كلوزباي للهيدج الموالي
    لكن النتيجة أنها تعمل عكس ما أريد
    كود:
    void CheckPipsB()
    {
    for(int i=0;i<OrdersTotal();i++)
     {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      double openprice_B=OrderOpenPrice();int ticket_B=OrderTicket();
      if(OrderSymbol()==Symbol())
      {
       if(OrderType()==OP_BUY)
       {
        double ProfitPips_B=(Bid-openprice_B)/Point;
        for(int j=0;j<OrdersTotal();j++)
        {
         OrderSelect(j,SELECT_BY_POS,MODE_TRADES);
         double openprice_S=OrderOpenPrice();int ticket_S=OrderTicket();
         if(OrderSymbol()==Symbol())
         {
          if(OrderType()==OP_SELL)
          {
           double ProfitPips_S=(openprice_S-Ask)/Point;
           if(ProfitPips_B>=PipProfit)
           {
           if(ProfitPips_B+ProfitPips_S>TotalProfit)
           {
            OrderCloseBy(ticket_B,ticket_S);
           }
           }
          }
         }
        }
       }
      }
     }  
    }
    void CheckPipsS()
    {
    for(int i=0;i<OrdersTotal();i++)
     {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      double openprice_S=OrderOpenPrice();int ticket_S=OrderTicket();
      if(OrderSymbol()==Symbol())
      {
       if(OrderType()==OP_SELL)
       {
        double ProfitPips_S=(openprice_S-Ask)/Point;
        for(int j=0;j<OrdersTotal();j++)
        {
         OrderSelect(j,SELECT_BY_POS,MODE_TRADES);
         double openprice_B=OrderOpenPrice();int ticket_B=OrderTicket();
         if(OrderSymbol()==Symbol())
         {
          if(OrderType()==OP_BUY)
          {
           double ProfitPips_B=(Bid-openprice_B)/Point;
           if(ProfitPips_S>=PipProfit)
           {
           if(ProfitPips_S+ProfitPips_B>TotalProfit)
           {
            OrderCloseBy(ticket_S,ticket_B);
           }
           }
          }
         }
        }
       }
      }
     }  
    }
    سأشرح بالتفصيل الدالة التي أريد وهي في الحقيقة تحتاج إلى موضوع طلب تعديل لكن والله يا أستاذي أفضل طرح التساؤلات هنا وأرتاح لهذا الموضوع الرائع وحتى أطمع في الاستجابة السريعة من شخصكم الكريم
    سابقا كنا عملنا دالة تحقق الاغلاق بعد تحقق ربح إجمالي للهيدج فقط
    ما احتاجة بالصورة بالمرفقات مع الشرح :
    لاحظ معي فضلا أستاذي
    عند حدوث الحركة من a إلى b يتم الحصول على هيدج رابح (بيع2+شراء3)
    الدالة التي قمنا باستخدامها تقوم بالاغلاق منباشرة بعد الحصول على هذا الربح
    ما أريده هو ان لا يتم هذا الاغلاق إلا عند حدوث الحركة من b إلى c بمعنى بمجرد عودة السعر إلى مستوى الشراء2 يتم إغلاق كلوزباي للهيدج (بيع2+شراء3)

    لاحظ معي الحركة من d إلى e سيتم جني ربح الهيدج (شراء2+بيع1) عند مستوى البيع2

    عملت محاولة قد تكون هي الحل ونجحت بالفعل بالباكتيست لكنني أريد ضمان تأكيد المقارنة بجعل البروفيت والخسارة محاصرين بين قيمتين
    مثلا ربح الشراء بين 100 نقطة و 120 نقطة وخسارة البيع بين 40- و 30- فكيف يمكن ذلك؟
    الدالة المعدلة وأرجو التصحيح

    كود PHP:
    void CheckPipsS()
    {
    for(
    int i=0;i<OrdersTotal();i++)
     {
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      
    double openprice_S=OrderOpenPrice();int ticket_S=OrderTicket();
      if(
    OrderSymbol()==Symbol())
      {
       if(
    OrderType()==OP_SELL)
       {
        
    double ProfitPips_S=(openprice_S-Ask)/Point;
        for(
    int j=0;j<OrdersTotal();j++)
        {
         
    OrderSelect(j,SELECT_BY_POS,MODE_TRADES);
         
    double openprice_B=OrderOpenPrice();int ticket_B=OrderTicket();
         if(
    OrderSymbol()==Symbol())
         {
          if(
    OrderType()==OP_BUY)
          {
           
    double ProfitPips_B=(Bid-openprice_B)/Point;
           if((
    ProfitPips_S<=PipLoss)&&(ProfitPips_B>=PipProfit))
           {
           if(
    ProfitPips_S+ProfitPips_B>TotalProfit)
           {
            
    OrderCloseBy(ticket_S,ticket_B);
           }
           }
          }
         }
        }
       }
      }
     }  

    مستني ردك الكريم أستاذي فضلا لا أمرا


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

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

  9. #4164
    الصورة الرمزية aliphy
    aliphy غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2009
    الإقامة
    تركيا
    المشاركات
    147

    افتراضي

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

  10. #4165
    الصورة الرمزية توفيق
    توفيق غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Dec 2007
    الإقامة
    اجادير جوهرة المغرب
    العمر
    37
    المشاركات
    1,402

    افتراضي

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

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

    إذا كان الإكسبرت يعتمد على فتح الصفقات في نفس الوقت تقريبا على جميع الأزواج فقد كتبت مشاركه سابقه تشرح هذه المشكله

    https://forum.arabictrader.com/t3761...ml#post2682758
    بارك الله فيك اخي الكريم
    قمت بوضع الحل المرفق
    وسأرى النتيجة

  11. #4166
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وعليكم السلام ورحمة الله وبركاته

    الداله صحيحه و الشروط صحيحه لكن هل تأكدت من إستخدام point بدلا من Point أي مراعاة الفواصل 5 أرقام أو 4 أرقام أم لا فربما هي سبب المشكله
    نعم كانت عندي مشكلة في الـ point لكن كنت أتعامل معها بإضافة 0 بالمتغيرات الخارجية... منصة الخمس أرقام...
    وتم تعديلها وعملت الباكتيست و نفس المشكلة
    وهي فقط في مكان الاغلاق
    لنعود إلى الصورة


    عند حدوث الحركة [ab] تم تحقق الشرط
    كود:
    ProfitPips_S+ProfitPips_B>TotalProfit
    وعندما أضفت الشرط
    كود:
     (ProfitPips_S<PipLoss)&&(ProfitPips_B>PipProfit)
    معناه أن ينتظر الاكسبيرت حدوث الحركة [bc] أي أن تصبح الصفقة شراء3 رابحة بقيمة PipProfit والصفقة بيع2 خاسرة بقيمة PipLoss
    PipProfit هي المسافة بين المستويين شراء3 و شراء2 (أو بصفة عامة هي المسافة بين مستويين )
    PipLoss هي المسافة بين شراء2 و بيع2 (أو بصفة عامة مسافة المستوى)
    إذن حسب الشروط يجب أن يغلق الهيدج بهذا الترتيب إغلاق بيع2 مع شراء3 عند مستوى شراء2
    لكن بالباكتيست يتم غلق هذا الهيدج عند مستوى بيع3 !!! وهذا خطأ قاتل
    أرجو أن تكون المشكلة وضحت
    وجزاك الله خيرا وتقبل الله الطاعات في هذا الشهر المبارك
    آخر تعديل بواسطة kira-h ، 17-07-2013 الساعة 06:08 PM
    توقيع العضو
    متداول فوركس، ومبرمج mql

  12. #4167
    الصورة الرمزية zzeyani
    zzeyani غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2012
    الإقامة
    المغرب
    المشاركات
    67

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    بالنسبه لهذا الإكسبرت فهو يوجد فيه شرطين لإغلاق الصفقات
    لإغلاق الشراء
    كود PHP:
      if (CloseBuy1_1 CloseBuy1_2Order SIGNAL_CLOSEBUY
    ولإغلاق البيع
    كود PHP:
    if (CloseSell1_1 CloseSell1_2Order SIGNAL_CLOSESELL
    فسوف تقوم بتعديل أوامر إغلاق البيع والشراء وتضيف الشرط
    كود PHP:
      if(OrderClosePrice()-OrderOpenPrice()>=40*Point||OrderOpenPrice()-OrderClosePrice()>=39*Point)continue; 
    ليصبح
    كود PHP:
      if (Order == SIGNAL_CLOSEBUY&&(OrderProfit()<0||OrderProfit()>=TakeProfit)&&(  
                (
    EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {  
                if(
    OrderClosePrice()-OrderOpenPrice()>=40*Point||OrderOpenPrice()-OrderClosePrice()>=39*Point)continue; 
                   
    OrderClose(OrderTicket(), OrderLots(), BidSlippageMediumSeaGreen);   
                   if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(BidDigits) + " Close Buy");   
                   if (!
    EachTickModeBarCount Bars;   
                   
    IsTrade False;   
                   continue;   
                } 
    وبالنسبه للبيع نفس الطريقه
    أخي الفضال شكرا على تعاونك معي و على إستجابتك لطلبي .
    لقد قمت بتعديلات الازمة التي قلت لكن لم تفلح , هل يمكنك أن تقوم بتعديلها لي على السكربت . و شكرا لكم جميعا

    وهدا تدكير بسكريبت
    كود PHP:
    //+------------------------------------------------------------------+   
    //| This MQL is generated by Expert Advisor Builder                  |   
    //|                http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/ |   
    //|                                                                  |   
    //|  In no event will author be liable for any damages whatsoever.   |   
    //|                      Use at your own risk.                       |   
    //|                                                                  |   
    //+------------------- DO NOT REMOVE THIS HEADER --------------------+   

    #define SIGNAL_NONE 0   
    #define SIGNAL_BUY   1   
    #define SIGNAL_SELL  2   
    #define SIGNAL_CLOSEBUY 3   
    #define SIGNAL_CLOSESELL 4   

    #property copyright "Expert Advisor Builder"   
    #property link      "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"   

    extern int MagicNumber 0;   
    extern bool SignalMail False;   
    extern bool EachTickMode True;   
    extern double Lots 1.0;   
    extern int Slippage 3;   
    extern bool UseStopLoss True;   
    extern int StopLoss 40;   
    extern bool UseTakeProfit False;   
    extern int TakeProfit 60;   
    extern bool UseTrailingStop False;   
    extern int TrailingStop 30;   

    int BarCount;   
    int Current;   
    bool TickCheck False;   
    //+------------------------------------------------------------------+   
    //| expert initialization function                                   |   
    //+------------------------------------------------------------------+   
    int init() {   
       
    BarCount Bars;   

       if (
    EachTickModeCurrent 0; else Current 1;   

       return(
    0);   
    }   
    //+------------------------------------------------------------------+   
    //| expert deinitialization function                                 |   
    //+------------------------------------------------------------------+   
    int deinit() {   
       return(
    0);   
    }   
    //+------------------------------------------------------------------+   
    //| expert start function                                            |   
    //+------------------------------------------------------------------+   
    int start() {   
       
    int Order SIGNAL_NONE;   
       
    int TotalTicket;   
       
    double StopLossLevelTakeProfitLevel;   



       if (
    EachTickMode && Bars != BarCountTickCheck False;   
       
    Total OrdersTotal();   
       
    Order SIGNAL_NONE;   

       
    //+------------------------------------------------------------------+   
       //| Variable Begin                                                   |   
       //+------------------------------------------------------------------+   


    double Buy1_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 1);   
    double Buy1_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 1);   
    double Buy2_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 2);   
    double Buy2_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 2);   

    double Sell1_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 1);   
    double Sell1_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 1);   
    double Sell2_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 2);   
    double Sell2_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 2);   

    double CloseBuy1_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 1);   
    double CloseBuy1_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 1);   

    double CloseSell1_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 1);   
    double CloseSell1_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 1);   

          
       
    //+------------------------------------------------------------------+   
       //| Variable End                                                     |   
       //+------------------------------------------------------------------+   

       //Check position   
       
    bool IsTrade False;   

       for (
    int i 0Total++) {   
          
    OrderSelect(iSELECT_BY_POSMODE_TRADES);   
          if(
    OrderType() <= OP_SELL &&  OrderSymbol() == Symbol()) {   
             
    IsTrade True;   
             if(
    OrderType() == OP_BUY) {   
                
    //Close   

                //+------------------------------------------------------------------+   
                //| Signal Begin(Exit Buy)                                           |   
                //+------------------------------------------------------------------+   

                        
    if (CloseBuy1_1 CloseBuy1_2Order SIGNAL_CLOSEBUY;   


                
    //+------------------------------------------------------------------+   
                //| Signal End(Exit Buy)                                             |   
                //+------------------------------------------------------------------+   

                
    if (Order == SIGNAL_CLOSEBUY&&(OrderProfit()<0||OrderProfit()>=TakeProfit)&&(  
                (
    EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {   
                   
    OrderClose(OrderTicket(), OrderLots(), BidSlippageMediumSeaGreen);   
                   if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(BidDigits) + " Close Buy");   
                   if (!
    EachTickModeBarCount Bars;   
                   
    IsTrade False;   
                   continue;   
                }   
                
    //Trailing stop   
                
    if(UseTrailingStop && TrailingStop 0) {                    
                   if(
    Bid OrderOpenPrice() > Point TrailingStop) {   
                      if(
    OrderStopLoss() < Bid Point TrailingStop) {   
                         
    OrderModify(OrderTicket(), OrderOpenPrice(), Bid Point TrailingStopOrderTakeProfit(), 0MediumSeaGreen);   
                         if (!
    EachTickModeBarCount Bars;   
                         continue;   
                      }   
                   }   
                }   
             } else {   
                
    //Close   

                //+------------------------------------------------------------------+   
                //| Signal Begin(Exit Sell)                                          |   
                //+------------------------------------------------------------------+   

                         
    if (CloseSell1_1 CloseSell1_2Order SIGNAL_CLOSESELL;   


                
    //+------------------------------------------------------------------+   
                //| Signal End(Exit Sell)                                            |   
                //+------------------------------------------------------------------+   

                
    if (Order == SIGNAL_CLOSESELL&&(OrderProfit()<0||OrderProfit()>=TakeProfit)&&  
                ((
    EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {   
                   
    OrderClose(OrderTicket(), OrderLots(), AskSlippageDarkOrange);   
                   if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(AskDigits) + " Close Sell");   
                   if (!
    EachTickModeBarCount Bars;   
                   
    IsTrade False;   
                   continue;   
                }   
                
    //Trailing stop   
                
    if(UseTrailingStop && TrailingStop 0) {                    
                   if((
    OrderOpenPrice() - Ask) > (Point TrailingStop)) {   
                      if((
    OrderStopLoss() > (Ask Point TrailingStop)) || (OrderStopLoss() == 0)) {   
                         
    OrderModify(OrderTicket(), OrderOpenPrice(), Ask Point TrailingStopOrderTakeProfit(), 0DarkOrange);   
                         if (!
    EachTickModeBarCount Bars;   
                         continue;   
                      }   
                   }   
                }   
             }   
          }   
       }   

       
    //+------------------------------------------------------------------+   
       //| Signal Begin(Entry)                                              |   
       //+------------------------------------------------------------------+   

       
    if (Buy1_1 Buy1_2 && Buy2_1 <= Buy2_2Order SIGNAL_BUY;   

       if (
    Sell1_1 Sell1_2 && Sell2_1 >= Sell2_2Order SIGNAL_SELL;   


       
    //+------------------------------------------------------------------+   
       //| Signal End                                                       |   
       //+------------------------------------------------------------------+   

       //Buy   
       
    if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {   
          if(!
    IsTrade) {   
             
    //Check free margin   
             
    if (AccountFreeMargin() < (1000 Lots)) {   
                Print(
    "We have no money. Free Margin = "AccountFreeMargin());   
                return(
    0);   
             }   

             if (
    UseStopLossStopLossLevel Ask StopLoss Point; else StopLossLevel 0.0;   
             if (
    UseTakeProfitTakeProfitLevel Ask TakeProfit Point; else TakeProfitLevel 0.0;   

             
    Ticket OrderSend(Symbol(), OP_BUYLotsAskSlippageStopLossLevelTakeProfitLevel"Buy(#" MagicNumber ")"MagicNumber0DodgerBlue);   
             if(
    Ticket 0) {   
                if (
    OrderSelect(TicketSELECT_BY_TICKETMODE_TRADES)) {   
                    Print(
    "BUY order opened : "OrderOpenPrice());   
                    if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(AskDigits) + " Open Buy");   
                } else {   
                    Print(
    "Error opening BUY order : "GetLastError());   
                }   
             }   
             if (
    EachTickModeTickCheck True;   
             if (!
    EachTickModeBarCount Bars;   
             return(
    0);   
          }   
       }   

       
    //Sell   
       
    if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {   
          if(!
    IsTrade) {   
             
    //Check free margin   
             
    if (AccountFreeMargin() < (1000 Lots)) {   
                Print(
    "We have no money. Free Margin = "AccountFreeMargin());   
                return(
    0);   
             }   

             if (
    UseStopLossStopLossLevel Bid StopLoss Point; else StopLossLevel 0.0;   
             if (
    UseTakeProfitTakeProfitLevel Bid TakeProfit Point; else TakeProfitLevel 0.0;   

             
    Ticket OrderSend(Symbol(), OP_SELLLotsBidSlippageStopLossLevelTakeProfitLevel"Sell(#" MagicNumber ")"MagicNumber0DeepPink);   
             if(
    Ticket 0) {   
                if (
    OrderSelect(TicketSELECT_BY_TICKETMODE_TRADES)) {   
                    Print(
    "SELL order opened : "OrderOpenPrice());   
                    if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(BidDigits) + " Open Sell");   
                } else {   
                    Print(
    "Error opening SELL order : "GetLastError());   
                }   
             }   
             if (
    EachTickModeTickCheck True;   
             if (!
    EachTickModeBarCount Bars;   
             return(
    0);   
          }   
       }   

       if (!
    EachTickModeBarCount Bars;   

       return(
    0);   
    }   
    //+------------------------------------------------------------------+ 

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة aliphy مشاهدة المشاركة
    السلام عليكم ورحمة الله
    عند اغلاق الشمعة وافتتاح شمعة ثانية كيف تكتب تعليمة شراء اذا كانت الشمعة السابقة صاعدة او تعليمة بيع اذا كانت الشمعة السابقة هابطة
    وعليكم السلام ورحمة الله وبركاته
    هذا الشرط بسيط
    فمثلا في الشمعه الصاعده سوف تضع الشرط إذا كان الإغلاق أكبر من الإفتتاح يتم فتح شراء
    مثال
    كود PHP:
     if(Close[1]>Open[1])
            {
             
    OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,0,"ea",Magic,0,Green);
            } 
    العكس في صفقة البيع سيكون الشرط إذا كان الإغلاق أقل من الإفتتاح يتم فتح بيع
    كود PHP:
     if(Close[1]<Open[1])
            {
             
    OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,0,"ea",Magic,0,Green);
            } 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    نعم كانت عندي مشكلة في الـ point لكن كنت أتعامل معها بإضافة 0 بالمتغيرات الخارجية... منصة الخمس أرقام...
    وتم تعديلها وعملت الباكتيست و نفس المشكلة
    وهي فقط في مكان الاغلاق
    لنعود إلى الصورة


    عند حدوث الحركة [ab] تم تحقق الشرط
    كود:
    ProfitPips_S+ProfitPips_B>TotalProfit
    وعندما أضفت الشرط
    كود:
     (ProfitPips_S<PipLoss)&&(ProfitPips_B>PipProfit)
    معناه أن ينتظر الاكسبيرت حدوث الحركة [bc] أي أن تصبح الصفقة شراء3 رابحة بقيمة PipProfit والصفقة بيع2 خاسرة بقيمة PipLoss
    PipProfit هي المسافة بين المستويين شراء3 و شراء2 (أو بصفة عامة هي المسافة بين مستويين )
    PipLoss هي المسافة بين شراء2 و بيع2 (أو بصفة عامة مسافة المستوى)
    إذن حسب الشروط يجب أن يغلق الهيدج بهذا الترتيب إغلاق بيع2 مع شراء3 عند مستوى شراء2
    لكن بالباكتيست يتم غلق هذا الهيدج عند مستوى بيع3 !!! وهذا خطأ قاتل
    أرجو أن تكون المشكلة وضحت
    وجزاك الله خيرا وتقبل الله الطاعات في هذا الشهر المبارك
    طيب بعيدا عن هذا الشرط تماما
    يمكنك إضافة شرط آخر بحيث لن يغلق هيدج الشراء مع البيع إلا إذا كان السعر الحالي أكبر من سعر إفتتاح صفقة أكبر من أو يساوي سعر الأمر المعلق شراء 2

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

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

    افتراضي

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

    وهدا تدكير بسكريبت
    كود PHP:
    //+------------------------------------------------------------------+   
    //| This MQL is generated by Expert Advisor Builder                  |   
    //|                http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/ |   
    //|                                                                  |   
    //|  In no event will author be liable for any damages whatsoever.   |   
    //|                      Use at your own risk.                       |   
    //|                                                                  |   
    //+------------------- DO NOT REMOVE THIS HEADER --------------------+   

    #define SIGNAL_NONE 0   
    #define SIGNAL_BUY   1   
    #define SIGNAL_SELL  2   
    #define SIGNAL_CLOSEBUY 3   
    #define SIGNAL_CLOSESELL 4   

    #property copyright "Expert Advisor Builder"   
    #property link      "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"   

    extern int MagicNumber 0;   
    extern bool SignalMail False;   
    extern bool EachTickMode True;   
    extern double Lots 1.0;   
    extern int Slippage 3;   
    extern bool UseStopLoss True;   
    extern int StopLoss 40;   
    extern bool UseTakeProfit False;   
    extern int TakeProfit 60;   
    extern bool UseTrailingStop False;   
    extern int TrailingStop 30;   

    int BarCount;   
    int Current;   
    bool TickCheck False;   
    //+------------------------------------------------------------------+   
    //| expert initialization function                                   |   
    //+------------------------------------------------------------------+   
    int init() {   
       
    BarCount Bars;   

       if (
    EachTickModeCurrent 0; else Current 1;   

       return(
    0);   
    }   
    //+------------------------------------------------------------------+   
    //| expert deinitialization function                                 |   
    //+------------------------------------------------------------------+   
    int deinit() {   
       return(
    0);   
    }   
    //+------------------------------------------------------------------+   
    //| expert start function                                            |   
    //+------------------------------------------------------------------+   
    int start() {   
       
    int Order SIGNAL_NONE;   
       
    int TotalTicket;   
       
    double StopLossLevelTakeProfitLevel;   



       if (
    EachTickMode && Bars != BarCountTickCheck False;   
       
    Total OrdersTotal();   
       
    Order SIGNAL_NONE;   

       
    //+------------------------------------------------------------------+   
       //| Variable Begin                                                   |   
       //+------------------------------------------------------------------+   


    double Buy1_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 1);   
    double Buy1_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 1);   
    double Buy2_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 2);   
    double Buy2_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 2);   

    double Sell1_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 1);   
    double Sell1_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 1);   
    double Sell2_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 2);   
    double Sell2_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 2);   

    double CloseBuy1_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 1);   
    double CloseBuy1_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 1);   

    double CloseSell1_1 iMA(NULL050MODE_SMAPRICE_CLOSECurrent 1);   
    double CloseSell1_2 iMA(NULL050MODE_SMAPRICE_OPENCurrent 1);   

          
       
    //+------------------------------------------------------------------+   
       //| Variable End                                                     |   
       //+------------------------------------------------------------------+   

       //Check position   
       
    bool IsTrade False;   

       for (
    int i 0Total++) {   
          
    OrderSelect(iSELECT_BY_POSMODE_TRADES);   
          if(
    OrderType() <= OP_SELL &&  OrderSymbol() == Symbol()) {   
             
    IsTrade True;   
             if(
    OrderType() == OP_BUY) {   
                
    //Close   

                //+------------------------------------------------------------------+   
                //| Signal Begin(Exit Buy)                                           |   
                //+------------------------------------------------------------------+   

                        
    if (CloseBuy1_1 CloseBuy1_2Order SIGNAL_CLOSEBUY;   


                
    //+------------------------------------------------------------------+   
                //| Signal End(Exit Buy)                                             |   
                //+------------------------------------------------------------------+   

                
    if (Order == SIGNAL_CLOSEBUY&&(OrderProfit()<0||OrderProfit()>=TakeProfit)&&(  
                (
    EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {   
                   
    OrderClose(OrderTicket(), OrderLots(), BidSlippageMediumSeaGreen);   
                   if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(BidDigits) + " Close Buy");   
                   if (!
    EachTickModeBarCount Bars;   
                   
    IsTrade False;   
                   continue;   
                }   
                
    //Trailing stop   
                
    if(UseTrailingStop && TrailingStop 0) {                    
                   if(
    Bid OrderOpenPrice() > Point TrailingStop) {   
                      if(
    OrderStopLoss() < Bid Point TrailingStop) {   
                         
    OrderModify(OrderTicket(), OrderOpenPrice(), Bid Point TrailingStopOrderTakeProfit(), 0MediumSeaGreen);   
                         if (!
    EachTickModeBarCount Bars;   
                         continue;   
                      }   
                   }   
                }   
             } else {   
                
    //Close   

                //+------------------------------------------------------------------+   
                //| Signal Begin(Exit Sell)                                          |   
                //+------------------------------------------------------------------+   

                         
    if (CloseSell1_1 CloseSell1_2Order SIGNAL_CLOSESELL;   


                
    //+------------------------------------------------------------------+   
                //| Signal End(Exit Sell)                                            |   
                //+------------------------------------------------------------------+   

                
    if (Order == SIGNAL_CLOSESELL&&(OrderProfit()<0||OrderProfit()>=TakeProfit)&&  
                ((
    EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {   
                   
    OrderClose(OrderTicket(), OrderLots(), AskSlippageDarkOrange);   
                   if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(AskDigits) + " Close Sell");   
                   if (!
    EachTickModeBarCount Bars;   
                   
    IsTrade False;   
                   continue;   
                }   
                
    //Trailing stop   
                
    if(UseTrailingStop && TrailingStop 0) {                    
                   if((
    OrderOpenPrice() - Ask) > (Point TrailingStop)) {   
                      if((
    OrderStopLoss() > (Ask Point TrailingStop)) || (OrderStopLoss() == 0)) {   
                         
    OrderModify(OrderTicket(), OrderOpenPrice(), Ask Point TrailingStopOrderTakeProfit(), 0DarkOrange);   
                         if (!
    EachTickModeBarCount Bars;   
                         continue;   
                      }   
                   }   
                }   
             }   
          }   
       }   

       
    //+------------------------------------------------------------------+   
       //| Signal Begin(Entry)                                              |   
       //+------------------------------------------------------------------+   

       
    if (Buy1_1 Buy1_2 && Buy2_1 <= Buy2_2Order SIGNAL_BUY;   

       if (
    Sell1_1 Sell1_2 && Sell2_1 >= Sell2_2Order SIGNAL_SELL;   


       
    //+------------------------------------------------------------------+   
       //| Signal End                                                       |   
       //+------------------------------------------------------------------+   

       //Buy   
       
    if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {   
          if(!
    IsTrade) {   
             
    //Check free margin   
             
    if (AccountFreeMargin() < (1000 Lots)) {   
                Print(
    "We have no money. Free Margin = "AccountFreeMargin());   
                return(
    0);   
             }   

             if (
    UseStopLossStopLossLevel Ask StopLoss Point; else StopLossLevel 0.0;   
             if (
    UseTakeProfitTakeProfitLevel Ask TakeProfit Point; else TakeProfitLevel 0.0;   

             
    Ticket OrderSend(Symbol(), OP_BUYLotsAskSlippageStopLossLevelTakeProfitLevel"Buy(#" MagicNumber ")"MagicNumber0DodgerBlue);   
             if(
    Ticket 0) {   
                if (
    OrderSelect(TicketSELECT_BY_TICKETMODE_TRADES)) {   
                    Print(
    "BUY order opened : "OrderOpenPrice());   
                    if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(AskDigits) + " Open Buy");   
                } else {   
                    Print(
    "Error opening BUY order : "GetLastError());   
                }   
             }   
             if (
    EachTickModeTickCheck True;   
             if (!
    EachTickModeBarCount Bars;   
             return(
    0);   
          }   
       }   

       
    //Sell   
       
    if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {   
          if(!
    IsTrade) {   
             
    //Check free margin   
             
    if (AccountFreeMargin() < (1000 Lots)) {   
                Print(
    "We have no money. Free Margin = "AccountFreeMargin());   
                return(
    0);   
             }   

             if (
    UseStopLossStopLossLevel Bid StopLoss Point; else StopLossLevel 0.0;   
             if (
    UseTakeProfitTakeProfitLevel Bid TakeProfit Point; else TakeProfitLevel 0.0;   

             
    Ticket OrderSend(Symbol(), OP_SELLLotsBidSlippageStopLossLevelTakeProfitLevel"Sell(#" MagicNumber ")"MagicNumber0DeepPink);   
             if(
    Ticket 0) {   
                if (
    OrderSelect(TicketSELECT_BY_TICKETMODE_TRADES)) {   
                    Print(
    "SELL order opened : "OrderOpenPrice());   
                    if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(BidDigits) + " Open Sell");   
                } else {   
                    Print(
    "Error opening SELL order : "GetLastError());   
                }   
             }   
             if (
    EachTickModeTickCheck True;   
             if (!
    EachTickModeBarCount Bars;   
             return(
    0);   
          }   
       }   

       if (!
    EachTickModeBarCount Bars;   

       return(
    0);   
    }   
    //+------------------------------------------------------------------+ 
    أرفق الجزء الذي قمت بعمله وسوف أوضح لك أين الخطأ وأصححه لك
    و حاول إرفاقه كملف mq4 سيكون أفضل لسهولة تحميله
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

  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