مطلوب تعديل بسيط على هذا الاكسبيرت
النتائج 1 إلى 5 من 5
  1. #1
    تاريخ التسجيل
    Sep 2006
    الإقامة
    المملكة العربية السعودية
    المشاركات
    2,924

    افتراضي مطلوب تعديل بسيط على هذا الاكسبيرت

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

    هذا اكسبيرت يقوم بالشراء من ادنى سعر للامس ويبيع من اعلى سعر للامس ولا يقفل الصفقات الا عندما تصل للهدف او الوقف، وتم صنعه عن طريق موقع :

    ###sufx.core.t3-ism#

    وهذا هو الكود

    كود 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 1;
    extern bool UseStopLoss True;
    extern int StopLoss 50;
    extern bool UseTakeProfit True;
    extern int TakeProfit 100;
    extern bool UseTrailingStop False;
    extern int TrailingStop 0;
    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 iClose(NULL0Current 0);
    double Buy1_2 iLow(NULL0Current 1);
    double Sell1_1 iClose(NULL0Current 0);
    double Sell1_2 iHigh(NULL0Current 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)                                           |
                //+------------------------------------------------------------------+
     
                //+------------------------------------------------------------------+
                //| Signal End(Exit Buy)                                             |
                //+------------------------------------------------------------------+
                
    if (Order == SIGNAL_CLOSEBUY && ((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)                                          |
                //+------------------------------------------------------------------+
     
                //+------------------------------------------------------------------+
                //| Signal End(Exit Sell)                                            |
                //+------------------------------------------------------------------+
                
    if (Order == SIGNAL_CLOSESELL && ((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_2Order SIGNAL_BUY;
       if (
    Sell1_1 == Sell1_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);
    }
    //+------------------------------------------------------------------+ 
    المطلوب اضافة متغير منطقي خارجي (اذا كان falce فيبقى الاكسبيرت في الوضع الحالي ، واذا كان true فيقفل جميع الصفقات المفتوحة في نهاية اليوم سواءً رابحة او خاسرة ويبدأ من جديد)

    ارجو ان يكون المطلوب واضح

    وارجو ان تكون الاضافة بلون مختلف لنعرف ما هي الاضافات (لكي نتعلم)
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: mq4 udate.mq4‏ (9.1 كيلوبايت, المشاهدات 114)
    آخر تعديل بواسطة wajdyss ، 13-12-2007 الساعة 05:26 PM

  2. #2
    تاريخ التسجيل
    Apr 2006
    الإقامة
    السعودية
    العمر
    47
    المشاركات
    6,555

    افتراضي رد: مطلوب تعديل بسيط على هذا الاكسبيرت

    أهلا بك أخي

    سوف نضيف الوظيفة CloseOrders آخر الكود في الاكسبيرت .

    وهي تقوم بإغلاق كل العقود المفتوحة

    كود PHP:
    int CloseOrders(int Magic)
    {
      
    int total  OrdersTotal();
      
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
        {
          if (
    OrderType()==OP_BUY)
          {
            if(
    OrderClose(OrderTicket(),OrderLots(),Bid,3)==false)
             {
               
    RefreshRates();
             }
             else
             {
               
    cnt=0;
               
    total=OrdersTotal();
             }
          }
          
          if (
    OrderType()==OP_SELL)
          {
            if(
    OrderClose(OrderTicket(),OrderLots(),Ask,3)==false)
             {
               
    RefreshRates();
             }
             else
             {
               
    cnt=0;
               
    total=OrdersTotal();
             }
          }
        }
      }
      return(
    0);


    وسوف نضيف في الخصائص المتحول التالي :

    كود PHP:
    extern bool AutoClose=false

    بعد ذلك في أول الوظيفة start سوف نضيف الشرط التالي :

    كود PHP:
    if (AutoClose==true && Hour()==23)
    {
       
    CloseOrders(MagicNumber);

    وبذلك سوف يتم إغلاق كل العقود المفتوحة في الساعة 23 .
    توقيع العضو
    اثنان لا يجتمعان علم وسوء خلق

  3. #3
    تاريخ التسجيل
    Sep 2006
    الإقامة
    المملكة العربية السعودية
    المشاركات
    2,924

    افتراضي رد: مطلوب تعديل بسيط على هذا الاكسبيرت

    جزاك الله كل خير

    انت
    آخر تعديل بواسطة wajdyss ، 14-12-2007 الساعة 12:05 AM

  4. #4
    تاريخ التسجيل
    Feb 2011
    الإقامة
    الجزائر
    المشاركات
    128

    افتراضي

    السلام عليكم



    بعد متابعتي لبكتست لهدا الاكسبرت من 2000 الى 2011 على EUR/USD فريم 1H و مراقبة صفقاته الخاسر 90 % منها سوف تكون رابحه ادا
    قمنا باجراء عليه بعض الاضافات و هي
    ان يقوم بفتح صفقة معاكسة ومضاعفة ( دون التغيير في TakeProfit) لكل صفقة خاسرة مرة واحدة فقط
    اي ادا عادت هده الصفقة المعاكسة مرة اخرى بالخسارة فلا يقوم بعكسها لانها سوف تخسر حتما

    مثلا لو فتح صفقة ( شراء ) بالاعدادات التالية
    Lots = 1
    TakeProfit = 10
    StopLoss = 80
    وتم ضرب الستوبلوز يقوم بفتح صفقة ( بيع ) بالاعدادات التالية
    Lots = 8
    TakeProfit = 10
    StopLoss =80
    وينتهي عمل هده الدالة
    و في هده الحالة اضن انه يجب عليه الغاء خاصية ادارة راس المال

    مثال اخر
    ادا كانت الصفقة الخاسرة بهده الاعدادات
    Lots = 1
    TakeProfit = 10
    StopLoss = 77
    يقوم بفتح صفقة معاكسة بالاعدادات التالية
    Lots = 7.7
    TakeProfit = 10
    StopLoss = 77


    اي يقوم بحساب اللوت الثاني حسب الستوبلوز الاول للصفقة الخاسرة
    و تكون هده العملية كما قلنا مرة واحدة فقط وليست متسلسل

    ادا ربحت الصفقة او خسرت يعود للعمل كما كان في الاول
    مع ادارة راس المال الرائع هدا كما كان في الاول

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

    ارجو من احد الاساتدة المبرمجين بعد ادن صاحب الاكسبرت
    ان يقوم باضافة هده التعديلات و يشاركنا الاكسبرت و النتائج
    وجزاكم الله كل الخير

  5. #5
    تاريخ التسجيل
    Dec 2010
    المشاركات
    30

    افتراضي

    لرفع

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

  1. مطلوب تعديل بسيط على هذا الإكسبيرت وجزاكم الله خيرا
    By mrmoha in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 8
    آخر مشاركة: 05-09-2010, 11:51 PM
  2. مطلوب تعديل على هذا الاكسبيرت
    By asd111 in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 8
    آخر مشاركة: 15-06-2010, 03:16 PM
  3. ممكن تعديل بسيط على هاذا الاكسبيرت الله يخليكم
    By fxpro in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 2
    آخر مشاركة: 09-06-2010, 11:18 AM
  4. ممكن تعديل ع ملف اكسل تعديل بسيط
    By 300 in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادن
    مشاركات: 3
    آخر مشاركة: 30-12-2009, 11:57 PM
  5. مطلوب تعديل الاكسبيرت
    By الـوليد in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 2
    آخر مشاركة: 09-11-2009, 05:58 PM

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