النتائج 1 إلى 2 من 2
  1. #1
    الصورة الرمزية Al-Mosuli
    Al-Mosuli غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2007
    المشاركات
    245

    افتراضي طلب مساعدة في صناعة اكسبيرت

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

    الكود مرفق
    المطلوب فضلا لا امرا
    1- اضافة خاصية المضاعفة .
    2-اضافة خاصية ايقاف الاكسبيرت عن العمل في فترة زمنية يتم تحديدها من الخارج مثلا من الساعة كذا الى الساعة كذا(لعدم زيادة المضاعفات في فترة التذبذب (الفترة الاسيوية ونهاية الامريكية))


    والشكر مقدما مع خالص الدعاء


    كود:
    extern double TakeProfit = 30;
    extern double StopLoss = 30;
    extern double Lots = 0.1;
    extern double TrailingStop = 20;
    extern double MACDByeLevel = 0.001;
    extern double MACDSellLevel = -0.001;
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    int start()
      {
       double MacdCurrent, MacdPrevious;
       int cnt, ticket, total;
       // initial data checks
    // it is important to make sure that the expert works with a normal
    // chart and the user did not make any mistakes setting external 
    // variables (Lots, StopLoss, TakeProfit, 
    // TrailingStop) in our case, we check TakeProfit
    // on a chart of less than 100 bars
       if(Bars<100)
         {
          Print("bars less than 100");
          return(0);  
         }
       if(TakeProfit<10)
         {
          Print("TakeProfit less than 10");
          return(0);  // check TakeProfit
         }
         // to simplify the coding and speed up access
    // data are put into internal variables
       MacdCurrent=iMACD(NULL,0,5,13,1,PRICE_CLOSE,MODE_MAIN,0);
       MacdPrevious=iMACD(NULL,0,5,13,1,PRICE_CLOSE,MODE_MAIN,1);
       total=OrdersTotal();
       if(total<1) 
         {
          // no opened orders identified
          if(AccountFreeMargin()<(1000*Lots))
            {
             Print("We have no money. Free Margin = ", AccountFreeMargin());
             return(0);  
            }
             if(MacdCurrent>MACDByeLevel && MacdPrevious<MacdCurrent)
            {
             ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
             if(ticket>0)
               {
                if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
               }
             else Print("Error opening BUY order : ",GetLastError()); 
             return(0); 
            }
            // check for short position (SELL) possibility
          if(MacdCurrent<MACDSellLevel && MacdPrevious>MacdCurrent)
            {
             ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
             if(ticket>0)
               {
                if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
               }
             else Print("Error opening SELL order : ",GetLastError()); 
             return(0); 
            }
          return(0);
         }
          // it is important to enter the market correctly, 
       // but it is more important to exit it correctly...   
       for(cnt=0;cnt<total;cnt++)
         {
          OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
          if(OrderType()<=OP_SELL &&   // check for opened position 
             OrderSymbol()==Symbol())  // check for symbol
            {
             if(OrderType()==OP_BUY)   // long position is opened
               {
               // should it be closed?
                  if(Bid < OrderOpenPrice()-Point*StopLoss)
                {
                     OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
                     return(0); // exit
                    }
                // check for trailing stop
                 // check for trailing stop
                if(TrailingStop>0)  
                  {                 
                   if(Bid-OrderOpenPrice()>Point*TrailingStop)
                     {
                      if(OrderStopLoss()<Bid-Point*TrailingStop)
                        {
                         OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                         return(0);
                        }
                     }
                  }
               }
             else // go to short position
               {
                // should it be closed?
                   if(Ask > OrderOpenPrice()+ Point*StopLoss)
                   {
                   OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
                   return(0); // exit
                  }
                // check for trailing stop
                if(TrailingStop>0)  
                  {                 
                   if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                     {
                      if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                        {
                         OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                         return(0);
                        }
                     }
                  }
               }
            }
         }
       return(0);
      }
    // the end

  2. #2
    الصورة الرمزية Al-Mosuli
    Al-Mosuli غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2007
    المشاركات
    245

    افتراضي رد: طلب مساعدة في صناعة اكسبيرت

    للرفع

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

  1. مساعدة من خبراء البرمجة في صنع اكسبيرت ناجح ان شاء الله
    By r3ad in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 8
    آخر مشاركة: 06-09-2010, 04:31 AM
  2. طلب مساعدة بخصوص اكسبيرت
    By م . فارس in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 4
    آخر مشاركة: 09-07-2009, 12:53 PM
  3. مساعدة في اكسبيرت
    By VaNaDess in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 2
    آخر مشاركة: 06-07-2009, 10:34 PM
  4. )))مساعدة من الاخوة المبرمجين اريد اكسبيرت رقمى والمعلومات بالداخل&&&&
    By ahmed8lv in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 3
    آخر مشاركة: 31-12-2008, 07:17 AM
  5. طلب مساعدة في صناعة اكسبيرت
    By taravolta in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 4
    آخر مشاركة: 12-07-2008, 04:07 AM

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


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