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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وعليكم السلام ورحمة الله وبركاته
    لنفرض أن الإكسبرتات أغلقت على ربح والحساب الآن أصبح الربح 50% من الحساب وتم البدء بلوت جديد لكن الصفقات التاليه أغلقت على خساره فأصبح ربح الحساب 30% أي نقص في هذه الحاله الشرط
    كود PHP:
     if(AccountProfit()>=(ProfitRatio*AccountBalance()/100)
        if(
    AccountProfit()>=(ProfitRatio*AccountEquity()/100)
        {
            
    CurrentLots Lots;
        } 
    سوف يظل محقق في حين أنه المفروض سيدخل بمضاعفه لأن الصفقات أغلقت على خساره وليست على ربح فيجب أن تقوم بتعديل هذه المشكله بحيث ستحب الربح المحقق بدأ من أول صفقة جديده تم فتحها وليس الربح لكل الحساب
    تمام أستاذي الكريم
    أيضا نسيت دالة اغلاق كل أوامر الاكسبيرتات...
    إذن الدالة خاطئة
    ألا توجد دالة تعمل على الفكرة؟؟
    (عند تحقق ربح معين من الحساب أو الاكويتي يتم إغلاق الكل والبدء من جديد باللوت الابتدائي على جميع الاكسبيرتات)
    الفكرة مهمة جدا لأنها تزيد نسبة الأمان من خطر المضاعفات وهي يدويا متعبة جدا
    جزاك الله خيرا
    آخر تعديل بواسطة kira-h ، 24-06-2013 الساعة 01:43 AM
    توقيع العضو
    متداول فوركس، ومبرمج mql

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

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

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    تمام أستاذي الكريم
    أيضا نسيت دالة اغلاق كل أوامر الاكسبيرتات...
    إذن الدالة خاطئة
    ألا توجد دالة تعمل على الفكرة؟؟
    (عند تحقق ربح معين من الحساب أو الاكويتي يتم إغلاق الكل والبدء من جديد باللوت الابتدائي على جميع الاكسبيرتات)
    الفكرة مهمة جدا لأنها تزيد نسبة الأمان من خطر المضاعفات وهي يدويا متعبة جدا
    جزاك الله خيرا
    الحل الأفضل في رأيي هو ستقوم بعمل دالة ستضعها في إكسبرت واحد فقط وليس جميع الإكسبرتات وستكون هي المسئوله عن حساب الربح بالنسبه المئويه وإغلاق جميع صفقات الحساب ثم سأحفظ التوقيت الذي قمت بإغلاق جميع الصفقات فيه بإستخدام GlobalVariableSet
    مثال
    كود PHP:
    void CheckCloseAll()
    {
    if(
    AccountProfit()>(AccountBalance()*ProfitRatio)/100)
    {
     for(
    int i=0;i<OrdersTotal();i++)
     {
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderType()==OP_BUY)
      {
       
    OrderClose(OrderTicket(),OrderLots(),Bid,3);
       
    i--;
      }
      if(
    OrderType()==OP_SELL)
      {
       
    OrderClose(OrderTicket(),OrderLots(),Ask,3);
       
    i--;
      }
       
       
    GlobalVariableSet("ClosedTime",TimeCurrent());
     }
    }

    الآن التعديل الذي يجب أن تقوم بعمله هو عند البحث عن حجم لوت آخر صفقة أغلقت وآخر صفقة هل ربحت أم خسرت ستقوم بتعديل الداله
    مثال
    كود PHP:
    double LastOrderProfit()
    {
     for(
    int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
      if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
      {
       if(
    OrderCloseTime()<GlobalVariableGet("ClosedTime"))
        return(
    OrderProfit());
       else return(
    0);
      }
     }
     return(
    0);

    وحجم اللوت
    كود PHP:
    double LastOrderLot()
    {
     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:
    if(LastOrderProfit()<0)CurrentLots LastOrderLot() * LotsMpOnLoss
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    الحل الأفضل في رأيي هو ستقوم بعمل دالة ستضعها في إكسبرت واحد فقط وليس جميع الإكسبرتات وستكون هي المسئوله عن حساب الربح بالنسبه المئويه وإغلاق جميع صفقات الحساب ثم سأحفظ التوقيت الذي قمت بإغلاق جميع الصفقات فيه بإستخدام GlobalVariableSet
    مثال
    كود PHP:
    void CheckCloseAll()
    {
    if(
    AccountProfit()>(AccountBalance()*ProfitRatio)/100)
    {
     for(
    int i=0;i<OrdersTotal();i++)
     {
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderType()==OP_BUY)
      {
       
    OrderClose(OrderTicket(),OrderLots(),Bid,3);
       
    i--;
      }
      if(
    OrderType()==OP_SELL)
      {
       
    OrderClose(OrderTicket(),OrderLots(),Ask,3);
       
    i--;
      }
       
       
    GlobalVariableSet("ClosedTime",TimeCurrent());
     }
    }

    الآن التعديل الذي يجب أن تقوم بعمله هو عند البحث عن حجم لوت آخر صفقة أغلقت وآخر صفقة هل ربحت أم خسرت ستقوم بتعديل الداله
    مثال
    كود PHP:
    double LastOrderProfit()
    {
     for(
    int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
      if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
      {
       if(
    OrderCloseTime()<GlobalVariableGet("ClosedTime"))
        return(
    OrderProfit());
       else return(
    0);
      }
     }
     return(
    0);

    وحجم اللوت
    كود PHP:
    double LastOrderLot()
    {
     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:
    if(LastOrderProfit()<0)CurrentLots LastOrderLot() * LotsMpOnLoss
    أقسم بالله أني أحبك في الله وألف شكر على هذه الجهود المبذول
    ما شاء الله تبارك الله
    رائع كعادتك أستاذي، احيي فيك تفانيك وحرصك في نشر العلم وتوضيحه جزاك الله خير يا شيخ أسامة وزادك من فضله وايدك بتوفيقه، بارك الله لنا بك وبأمثالك وكثرهم ..
    اللهم امين
    توقيع العضو
    متداول فوركس، ومبرمج mql

  4. #4069
    الصورة الرمزية سمير محمد ارمان
    سمير محمد ارمان غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2009
    الإقامة
    مصر
    المشاركات
    834

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

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

  5. #4070
    الصورة الرمزية Jmeel
    Jmeel غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2008
    الإقامة
    في أرض الله
    المشاركات
    7,610

    افتراضي

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

  6. #4071
    الصورة الرمزية 300
    300
    300 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2009
    المشاركات
    873

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

    شباب حاولت بعدل على مؤشر وضعه مستر دولار هنا
    https://forum.arabictrader.com/t9652...ml#post1721989
    بس يتاقطع موفينج افريج يظهر اسهم
    لكن التعديل
    اذا قطعت 6 مؤشرات موفينج المؤشر البطيئ 55
    يظهر تقاطع

    كود:
    #property indicator_chart_window
    #property indicator_buffers 2
    #property indicator_color1 DarkGoldenrod
    #property indicator_color2 FireBrick
    
    double CrossUp[];
    double CrossDown[];
    extern string S1="0=SMA /1=EMA /2=SMMA /3=Linear";
    extern int FasterMA_Method=1;
    extern int FasterMA = 3;
    extern int FasterMA2 = 4;
    extern int FasterMA3 = 5;
    extern int FasterMA4 = 6;
    extern int FasterMA5 = 7;
    extern int FasterMA6 = 8;
    
    extern int SlowerMA = 55;
    extern int SlowerMA_Method=1;
    extern bool SoundON=true;
    double alertTag;
     double control=2147483647;
     
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int init()
      {
    //---- indicators
       SetIndexStyle(0, DRAW_ARROW, EMPTY,1);
       SetIndexArrow(0, 233);
       SetIndexBuffer(0, CrossUp);
       SetIndexStyle(1, DRAW_ARROW, EMPTY,1);
       SetIndexArrow(1, 234);
       SetIndexBuffer(1, CrossDown);
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function                       |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
    int start()
      {
       int limit, i, counter;
       double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter,fasterEMAnow2,fasterEMAprevious2,fasterEMAafter2,fasterEMAnow3,fasterEMAprevious3,fasterEMAafter3,fasterEMAnow4,fasterEMAprevious4,fasterEMAafter4,fasterEMAnow5,fasterEMAprevious5,fasterEMAafter5,fasterEMAnow6,fasterEMAprevious6,fasterEMAafter6;
       double Range, AvgRange;
       int    counted_bars=IndicatorCounted();
    //----
       //---- check for possible errors
       if(counted_bars<0) return(-1);
    //---- last counted bar will be recounted
       if(counted_bars>0) counted_bars--;
    
       limit=Bars-counted_bars;
       
          for(i = 0; i <= limit; i++) {
       
          counter=i;
          Range=0;
          AvgRange=0;
          for (counter=i ;counter<=i+9;counter++)
          {
             AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
          }
          Range=AvgRange/10;
          
          fasterEMAnow = iMA(NULL, 0, FasterMA, 0, FasterMA_Method, PRICE_CLOSE, i);
          fasterEMAprevious = iMA(NULL, 0, FasterMA, 0, FasterMA_Method, PRICE_CLOSE, i+1);
          fasterEMAafter = iMA(NULL, 0, FasterMA, 0, FasterMA_Method, PRICE_CLOSE, i-1);
    
          fasterEMAnow2 = iMA(NULL, 0, FasterMA2, 0, FasterMA_Method, PRICE_CLOSE, i);
          fasterEMAprevious2 = iMA(NULL, 0, FasterMA2, 0, FasterMA_Method, PRICE_CLOSE, i+1);
          fasterEMAafter2 = iMA(NULL, 0, FasterMA2, 0, FasterMA_Method, PRICE_CLOSE, i-1);
    
          fasterEMAnow3 = iMA(NULL, 0, FasterMA3, 0, FasterMA_Method, PRICE_CLOSE, i);
          fasterEMAprevious3 = iMA(NULL, 0, FasterMA3, 0, FasterMA_Method, PRICE_CLOSE, i+1);
          fasterEMAafter3 = iMA(NULL, 0, FasterMA3, 0, FasterMA_Method, PRICE_CLOSE, i-1);                  
    
          fasterEMAnow4 = iMA(NULL, 0, FasterMA4, 0, FasterMA_Method, PRICE_CLOSE, i);
          fasterEMAprevious4 = iMA(NULL, 0, FasterMA4, 0, FasterMA_Method, PRICE_CLOSE, i+1);
          fasterEMAafter4 = iMA(NULL, 0, FasterMA4, 0, FasterMA_Method, PRICE_CLOSE, i-1);
    
          fasterEMAnow5 = iMA(NULL, 0, FasterMA5, 0, FasterMA_Method, PRICE_CLOSE, i);
          fasterEMAprevious5 = iMA(NULL, 0, FasterMA5, 0, FasterMA_Method, PRICE_CLOSE, i+1);
          fasterEMAafter5 = iMA(NULL, 0, FasterMA5, 0, FasterMA_Method, PRICE_CLOSE, i-1);
          
          fasterEMAnow6 = iMA(NULL, 0, FasterMA6, 0, FasterMA_Method, PRICE_CLOSE, i);
          fasterEMAprevious6 = iMA(NULL, 0, FasterMA6, 0, FasterMA_Method, PRICE_CLOSE, i+1);
          fasterEMAafter6 = iMA(NULL, 0, FasterMA6, 0, FasterMA_Method, PRICE_CLOSE, i-1);   
          
          
          slowerEMAnow = iMA(NULL, 0, SlowerMA, 0, SlowerMA_Method, PRICE_CLOSE, i);
          slowerEMAprevious = iMA(NULL, 0, SlowerMA, 0, SlowerMA_Method, PRICE_CLOSE, i+1);
          slowerEMAafter = iMA(NULL, 0, SlowerMA, 0, SlowerMA_Method, PRICE_CLOSE, i-1);
          
          
          if(((fasterEMAnow&&fasterEMAnow2&&fasterEMAnow3&&fasterEMAnow4&&fasterEMAnow5&&fasterEMAnow6) > slowerEMAnow) && ((fasterEMAprevious&&fasterEMAprevious2&&fasterEMAprevious3&&fasterEMAprevious4&&fasterEMAprevious5&&fasterEMAprevious6) < slowerEMAprevious) && ((fasterEMAafter&&fasterEMAafter2&&fasterEMAafter3&&fasterEMAafter4&&fasterEMAafter5&&fasterEMAafter6) > slowerEMAafter)) {
          CrossUp[i] = Low[i] - Range*0.5;
          }   
          else if (((fasterEMAnow&&fasterEMAnow2&&fasterEMAnow3&&fasterEMAnow4&&fasterEMAnow5&&fasterEMAnow6) < slowerEMAnow) && ((fasterEMAprevious&&fasterEMAprevious2&&fasterEMAprevious3&&fasterEMAprevious4&&fasterEMAprevious5&&fasterEMAprevious6) > slowerEMAprevious) && ((fasterEMAafter&&fasterEMAafter2&&fasterEMAafter3&&fasterEMAafter4&&fasterEMAafter5&&fasterEMAafter6) < slowerEMAafter)) {
              CrossDown[i] = High[i] + Range*0.5;
          }  
          
            if (SoundON==true && i==1 && CrossUp[i] > CrossDown[i] && alertTag!=Time[0]){
             Alert("EMA Cross Trend going Down on ",Symbol()," ",Period());
            alertTag = Time[0];
          }
            if (SoundON==true && i==1 && CrossUp[i] < CrossDown[i] && alertTag!=Time[0]){
           Alert("EMA Cross Trend going Up on ",Symbol()," ",Period());
            alertTag = Time[0];
            }              
          
          
          
    }
       
       
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    ولكن لم يظهر الاسهم على شارت لا اعرف اين الخطأ .!

  7. #4072
    الصورة الرمزية سمير محمد ارمان
    سمير محمد ارمان غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2009
    الإقامة
    مصر
    المشاركات
    834

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

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


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

  8. #4073
    الصورة الرمزية Jmeel
    Jmeel غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2008
    الإقامة
    في أرض الله
    المشاركات
    7,610

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

    اقتباس المشاركة الأصلية كتبت بواسطة سمير محمد ارمان مشاهدة المشاركة
    السلام عليكم اخى الكريم جميل
    كل عام وانت بخير وصحة واحسن حال
    هو تمام كما تقول
    يكون التارجت يتحرك مع كل صفقة تعزيز جديدة ويكون التارجت هو لاخرى صفقة تم فتحه وعند ملامسة يتم الاغلاق على الكل
    وشكرا على المساعدة الكريمة
    تحياتى لك
    اهلا بك أستاذ سمير ، حنعمل دالتين الأولى للرجوع بتارجت الصفقة الأخيرة
    كود PHP:
    double LastOrderTPB(){
      for(
    int i=OrdersTotal()-1i>=0i--){
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MyMagic&&OrderType()==OP_BUY){
       return(
    OrderTakeProfit());
      }
     }
     return(
    0);

    ثم الدالة التالية لتعديل صفقات الشراء
    كود PHP:
    void BuyOrderModify()
    {
        for (
    int i=OrdersTotal()-1>= 0i--)
        if (
    OrderSelect(iSELECT_BY_POSMODE_TRADES))
        {
            if (
    OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == MyMagic)
            {
                
    bool ret OrderModify(OrderTicket(), OrderOpenPrice(), 0LastOrderTPB(), 0White);
                if (
    ret == false)
                Print(
    "OrderModify() error - "ErrorDescription(GetLastError()));
            }
        }
        

    وفي دالة ستارت حتستدعي دالة التعديل
    كود PHP:
      BuyOrderModify(); 
    وطبعا حتعمل دالتين لصفقات البيع .
    الله يوفقك أخي سمير .
    آخر تعديل بواسطة Jmeel ، 26-06-2013 الساعة 01:52 PM
    توقيع العضو
    اعتذر لمن لن أتمكن من تنفيذ طلبه بسبب عدم قناعتي بالفكرة

  9. #4074
    الصورة الرمزية سمير محمد ارمان
    سمير محمد ارمان غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2009
    الإقامة
    مصر
    المشاركات
    834

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

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


    اهلا بك أستاذ سمير ، حنعمل دالتين الأولى للرجوع بتارجت الصفقة الأخيرة
    كود PHP:
    double LastOrderTPB(){
      for(
    int i=OrdersTotal()-1i>=0i--){
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MyMagic&&OrderType()==OP_BUY){
       return(
    OrderTakeProfit());
      }
     }
     return(
    0);

    ثم الدالة التالية لتعديل صفقات الشراء
    كود PHP:
    void BuyOrderModify()
    {
        for (
    int i=OrdersTotal()-1>= 0i--)
        if (
    OrderSelect(iSELECT_BY_POSMODE_TRADES))
        {
            if (
    OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == MyMagic)
            {
                
    bool ret OrderModify(OrderTicket(), OrderOpenPrice(), 0LastOrderTPB(), 0White);
                if (
    ret == false)
                Print(
    "OrderModify() error - "ErrorDescription(GetLastError()));
            }
        }
        

    وفي دالة ستارت حتستدعي دالة التعديل
    كود PHP:
      BuyOrderModify(); 
    وطبعا حتعمل دالتين لصفقات البيع .
    الله يوفقك أخي سمير .
    كلمة شكر قليلة جدا على كرمك و معروفك معى
    بجد جزاك الله عنى كل خير
    والف مليون شكر على هذه المساعدة الكريمة
    والتحية موصولة الى استاذى مستر دولار
    وتحياتى الى الجميع وكل عام وانتم بخير وصحة واحسن حال

  10. #4075
    الصورة الرمزية waleedgadelmola
    waleedgadelmola غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2012
    الإقامة
    مصر
    المشاركات
    346

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

    السلام عليكم ورحمة الله وبركاته
    استاذ أسامة بعد التحية وايضا تحياتي للاستاذ جميل والاستاذ يوسف
    بارك الله فيكم جميعا
    في فكرة بحاول اكتب لها أكواد برمجية وللأسف عجزت مع أنها تقريبا بسيطة بس صراحة احترت فيها جدا
    احتاج أكواد لتصميم اكسبرت بالمواصفات التالية
    عندما يقوم الاكسبرت بفتح صفقة وليكن شراء طبقا لشروط الشراء الموضوعة به يتم عمل التالي
    يقوم الاكسبرت فور فتح عملية الشراء السابقة ولتكن 1 لوت ان يقوم بفتح صفقة بيع ستوب على مسافة من صفقة الشراء كمتغير خارجي Step وتكون صفقة البيع ستوب هذه بـ 3 لوت
    في حالة تحقق صفقة الشراء السابقة لهدفها يتم إغلاق صفقة البيع ستوب المعلقة والبدء من جديد
    أما في حالة عكس السعر علينا وتفعلت صفقة البيع ستوب يقوم الاكسبرت فورا بفتح صفقة شراء ستوب بلوت مضاعف للاسبق ( ضعف صفقة البيع والتي كانت بيع ستوب ) أي يقوم بفتح صفقة شراء ستوب بـ 6 لوت
    في حال تحقيق صفقة البيع لهدفها يتم إغلاق جميع الصفقات المفتوحة والمعلقة والبدء من جديد
    أما في حالة عدم تحقيق صفقة البيع المفتوحة لهدفها وعكس السعر وتفعلت صفقة الشراء ستوب وأصبحت شراء فورا يقوم الاكسبرت بفتح صفقة بيع ستوب بلوت مضاعف للسابق أي بـ 12 لوت وهكذا إلى ان يتم تحقيق الهدف بحول الله
    ملخص السابق كالتالي

    عند تحقق شروط الشراء مثلا
    يقوم الاكسبرت بفتح صفقة الشراء بلوت مبدئي وليكن1 لوت
    وفي نفس الوقت فتح صفقة بيع ستوب على مسافة Step بـ 3 لوت
    يوجد 2 سيناريو
    الأول تحقيق صفقة الشراء هدفها وهنا يتم إغلاق الصفقات جميعا بما فيها المعلقة
    الثاني عدم تحقيق صفقة الشراء هدفها وعكس السعر وتفعلت صفقة البيع ستوب
    هنا يتم فتح صفقة شراء ستوب فورا بـ 6 لوت ضعف السابق
    يعني أستاذ أسامة وأسف اطلت عليك مطلوب من الاكسبرت عندما يفتح صفقة شراء ان يضع بيع ستوب بلوت ثلاث امثال اللوت المبدئي ولو تفعلت صفقة البيع ستوب يفتح فورا شراء ستوب بضعف السابق أي 6 لوت ولو جابت صفقة البيع هدفها يغلق الجميع أما إذا لم تحقق هدفها وتفعلت صفقة الشراء ستوب يقوم فورا بفتح صفقة بيع ستوب بضعف السابقة أي 12 لوت وهكذا

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

    اسف اطلت عليك بس صدقني بحاول مع نفسي ولما بعجز بكتب ليك أستاذي الكريم
    تحياتي لشخصك الكريم
    أخيك في الله وليد
    آخر تعديل بواسطة waleedgadelmola ، 26-06-2013 الساعة 08:40 PM

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

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

    اقتباس المشاركة الأصلية كتبت بواسطة 300 مشاهدة المشاركة
    شباب حاولت بعدل على مؤشر وضعه مستر دولار هنا
    https://forum.arabictrader.com/t9652...ml#post1721989
    بس يتاقطع موفينج افريج يظهر اسهم
    لكن التعديل
    اذا قطعت 6 مؤشرات موفينج المؤشر البطيئ 55
    يظهر تقاطع

    كود:
    #property indicator_chart_window
    #property indicator_buffers 2
    #property indicator_color1 DarkGoldenrod
    #property indicator_color2 FireBrick
    
    double CrossUp[];
    double CrossDown[];
    extern string S1="0=SMA /1=EMA /2=SMMA /3=Linear";
    extern int FasterMA_Method=1;
    extern int FasterMA = 3;
    extern int FasterMA2 = 4;
    extern int FasterMA3 = 5;
    extern int FasterMA4 = 6;
    extern int FasterMA5 = 7;
    extern int FasterMA6 = 8;
    
    extern int SlowerMA = 55;
    extern int SlowerMA_Method=1;
    extern bool SoundON=true;
    double alertTag;
     double control=2147483647;
     
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int init()
      {
    //---- indicators
       SetIndexStyle(0, DRAW_ARROW, EMPTY,1);
       SetIndexArrow(0, 233);
       SetIndexBuffer(0, CrossUp);
       SetIndexStyle(1, DRAW_ARROW, EMPTY,1);
       SetIndexArrow(1, 234);
       SetIndexBuffer(1, CrossDown);
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function                       |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
    int start()
      {
       int limit, i, counter;
       double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter,fasterEMAnow2,fasterEMAprevious2,fasterEMAafter2,fasterEMAnow3,fasterEMAprevious3,fasterEMAafter3,fasterEMAnow4,fasterEMAprevious4,fasterEMAafter4,fasterEMAnow5,fasterEMAprevious5,fasterEMAafter5,fasterEMAnow6,fasterEMAprevious6,fasterEMAafter6;
       double Range, AvgRange;
       int    counted_bars=IndicatorCounted();
    //----
       //---- check for possible errors
       if(counted_bars<0) return(-1);
    //---- last counted bar will be recounted
       if(counted_bars>0) counted_bars--;
    
       limit=Bars-counted_bars;
       
          for(i = 0; i <= limit; i++) {
       
          counter=i;
          Range=0;
          AvgRange=0;
          for (counter=i ;counter<=i+9;counter++)
          {
             AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
          }
          Range=AvgRange/10;
          
          fasterEMAnow = iMA(NULL, 0, FasterMA, 0, FasterMA_Method, PRICE_CLOSE, i);
          fasterEMAprevious = iMA(NULL, 0, FasterMA, 0, FasterMA_Method, PRICE_CLOSE, i+1);
          fasterEMAafter = iMA(NULL, 0, FasterMA, 0, FasterMA_Method, PRICE_CLOSE, i-1);
    
          fasterEMAnow2 = iMA(NULL, 0, FasterMA2, 0, FasterMA_Method, PRICE_CLOSE, i);
          fasterEMAprevious2 = iMA(NULL, 0, FasterMA2, 0, FasterMA_Method, PRICE_CLOSE, i+1);
          fasterEMAafter2 = iMA(NULL, 0, FasterMA2, 0, FasterMA_Method, PRICE_CLOSE, i-1);
    
          fasterEMAnow3 = iMA(NULL, 0, FasterMA3, 0, FasterMA_Method, PRICE_CLOSE, i);
          fasterEMAprevious3 = iMA(NULL, 0, FasterMA3, 0, FasterMA_Method, PRICE_CLOSE, i+1);
          fasterEMAafter3 = iMA(NULL, 0, FasterMA3, 0, FasterMA_Method, PRICE_CLOSE, i-1);                  
    
          fasterEMAnow4 = iMA(NULL, 0, FasterMA4, 0, FasterMA_Method, PRICE_CLOSE, i);
          fasterEMAprevious4 = iMA(NULL, 0, FasterMA4, 0, FasterMA_Method, PRICE_CLOSE, i+1);
          fasterEMAafter4 = iMA(NULL, 0, FasterMA4, 0, FasterMA_Method, PRICE_CLOSE, i-1);
    
          fasterEMAnow5 = iMA(NULL, 0, FasterMA5, 0, FasterMA_Method, PRICE_CLOSE, i);
          fasterEMAprevious5 = iMA(NULL, 0, FasterMA5, 0, FasterMA_Method, PRICE_CLOSE, i+1);
          fasterEMAafter5 = iMA(NULL, 0, FasterMA5, 0, FasterMA_Method, PRICE_CLOSE, i-1);
          
          fasterEMAnow6 = iMA(NULL, 0, FasterMA6, 0, FasterMA_Method, PRICE_CLOSE, i);
          fasterEMAprevious6 = iMA(NULL, 0, FasterMA6, 0, FasterMA_Method, PRICE_CLOSE, i+1);
          fasterEMAafter6 = iMA(NULL, 0, FasterMA6, 0, FasterMA_Method, PRICE_CLOSE, i-1);   
          
          
          slowerEMAnow = iMA(NULL, 0, SlowerMA, 0, SlowerMA_Method, PRICE_CLOSE, i);
          slowerEMAprevious = iMA(NULL, 0, SlowerMA, 0, SlowerMA_Method, PRICE_CLOSE, i+1);
          slowerEMAafter = iMA(NULL, 0, SlowerMA, 0, SlowerMA_Method, PRICE_CLOSE, i-1);
          
          
          if(((fasterEMAnow&&fasterEMAnow2&&fasterEMAnow3&&fasterEMAnow4&&fasterEMAnow5&&fasterEMAnow6) > slowerEMAnow) && ((fasterEMAprevious&&fasterEMAprevious2&&fasterEMAprevious3&&fasterEMAprevious4&&fasterEMAprevious5&&fasterEMAprevious6) < slowerEMAprevious) && ((fasterEMAafter&&fasterEMAafter2&&fasterEMAafter3&&fasterEMAafter4&&fasterEMAafter5&&fasterEMAafter6) > slowerEMAafter)) {
          CrossUp[i] = Low[i] - Range*0.5;
          }   
          else if (((fasterEMAnow&&fasterEMAnow2&&fasterEMAnow3&&fasterEMAnow4&&fasterEMAnow5&&fasterEMAnow6) < slowerEMAnow) && ((fasterEMAprevious&&fasterEMAprevious2&&fasterEMAprevious3&&fasterEMAprevious4&&fasterEMAprevious5&&fasterEMAprevious6) > slowerEMAprevious) && ((fasterEMAafter&&fasterEMAafter2&&fasterEMAafter3&&fasterEMAafter4&&fasterEMAafter5&&fasterEMAafter6) < slowerEMAafter)) {
              CrossDown[i] = High[i] + Range*0.5;
          }  
          
            if (SoundON==true && i==1 && CrossUp[i] > CrossDown[i] && alertTag!=Time[0]){
             Alert("EMA Cross Trend going Down on ",Symbol()," ",Period());
            alertTag = Time[0];
          }
            if (SoundON==true && i==1 && CrossUp[i] < CrossDown[i] && alertTag!=Time[0]){
           Alert("EMA Cross Trend going Up on ",Symbol()," ",Period());
            alertTag = Time[0];
            }              
          
          
          
    }
       
       
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    ولكن لم يظهر الاسهم على شارت لا اعرف اين الخطأ .!
    وضعك للشروط بهذا الشكل خاطئه
    كود PHP:
    (fasterEMAnow&&fasterEMAnow2&&fasterEMAnow3&&fasterEMAnow4&&fasterEMAnow5&&fasterEMAnow6) > slowerEMAnow
    فيجب أن تقارن كل متغير بقيمة المتغيرات الأخرى على حده
    طبعا بعد تعديل هذه المشكله سيبقى ملاحظه أخرى
    بهذه الشروط أنت جعلت شرط التحقق أن تتقاطع جميع الخطوط في نفس الشمعه فربما هذا يكون نادرا جدا حدوثه
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  12. #4077
    الصورة الرمزية waleedgadelmola
    waleedgadelmola غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2012
    الإقامة
    مصر
    المشاركات
    346

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة waleedgadelmola مشاهدة المشاركة
    السلام عليكم ورحمة الله وبركاته
    استاذ أسامة بعد التحية وايضا تحياتي للاستاذ جميل والاستاذ يوسف
    بارك الله فيكم جميعا
    في فكرة بحاول اكتب لها أكواد برمجية وللأسف عجزت مع أنها تقريبا بسيطة بس صراحة احترت فيها جدا
    احتاج أكواد لتصميم اكسبرت بالمواصفات التالية
    عندما يقوم الاكسبرت بفتح صفقة وليكن شراء طبقا لشروط الشراء الموضوعة به يتم عمل التالي
    يقوم الاكسبرت فور فتح عملية الشراء السابقة ولتكن 1 لوت ان يقوم بفتح صفقة بيع ستوب على مسافة من صفقة الشراء كمتغير خارجي Step وتكون صفقة البيع ستوب هذه بـ 3 لوت
    في حالة تحقق صفقة الشراء السابقة لهدفها يتم إغلاق صفقة البيع ستوب المعلقة والبدء من جديد
    أما في حالة عكس السعر علينا وتفعلت صفقة البيع ستوب يقوم الاكسبرت فورا بفتح صفقة شراء ستوب بلوت مضاعف للاسبق ( ضعف صفقة البيع والتي كانت بيع ستوب ) أي يقوم بفتح صفقة شراء ستوب بـ 6 لوت
    في حال تحقيق صفقة البيع لهدفها يتم إغلاق جميع الصفقات المفتوحة والمعلقة والبدء من جديد
    أما في حالة عدم تحقيق صفقة البيع المفتوحة لهدفها وعكس السعر وتفعلت صفقة الشراء ستوب وأصبحت شراء فورا يقوم الاكسبرت بفتح صفقة بيع ستوب بلوت مضاعف للسابق أي بـ 12 لوت وهكذا إلى ان يتم تحقيق الهدف بحول الله
    ملخص السابق كالتالي

    عند تحقق شروط الشراء مثلا
    يقوم الاكسبرت بفتح صفقة الشراء بلوت مبدئي وليكن1 لوت
    وفي نفس الوقت فتح صفقة بيع ستوب على مسافة Step بـ 3 لوت
    يوجد 2 سيناريو
    الأول تحقيق صفقة الشراء هدفها وهنا يتم إغلاق الصفقات جميعا بما فيها المعلقة
    الثاني عدم تحقيق صفقة الشراء هدفها وعكس السعر وتفعلت صفقة البيع ستوب
    هنا يتم فتح صفقة شراء ستوب فورا بـ 6 لوت ضعف السابق
    يعني أستاذ أسامة وأسف اطلت عليك مطلوب من الاكسبرت عندما يفتح صفقة شراء ان يضع بيع ستوب بلوت ثلاث امثال اللوت المبدئي ولو تفعلت صفقة البيع ستوب يفتح فورا شراء ستوب بضعف السابق أي 6 لوت ولو جابت صفقة البيع هدفها يغلق الجميع أما إذا لم تحقق هدفها وتفعلت صفقة الشراء ستوب يقوم فورا بفتح صفقة بيع ستوب بضعف السابقة أي 12 لوت وهكذا

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

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

  13. #4078
    الصورة الرمزية abou fares
    abou fares  غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Aug 2012
    الإقامة
    السعودية
    المشاركات
    275

    افتراضي

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


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

    https://forum.arabictrader.com/t160746.html

    https://forum.arabictrader.com/t97056.html
    آخر تعديل بواسطة abou fares ، 28-06-2013 الساعة 01:28 PM

  14. #4079
    الصورة الرمزية waleedgadelmola
    waleedgadelmola غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2012
    الإقامة
    مصر
    المشاركات
    346

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

    اقتباس المشاركة الأصلية كتبت بواسطة abou fares مشاهدة المشاركة
    اخ وليد الاستاذ اسامة قد قام بصنع اكسبيرت لطريقتك هذه ويمكنك مراجعةهذه المواضيع :

    https://forum.arabictrader.com/t160746.html

    https://forum.arabictrader.com/t97056.html
    أشكرك جدا أخي الكريم abou fares بارك الله فيك
    يبدو أن هذا المنتدى مليء بالكنوز والتي ليس لها إلا عنوان واحد
    Made By MR.dollar
    قمت بتنزل أخر نسخة من الاكسبرت وللاسف لا يعمل معي ويظهر في الجورنال ان الاكسبرت تم ازالتة removed ولا أدري ما السبب ولا يعمل إطلاقا
    مرفق النسخة الأخيرة من الاكسبرت
    الملفات المرفقة الملفات المرفقة

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

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

    مرحبا أيها الاصدقاء أحتج مساعدتكم على تعديل هدا السكريبت .
    هو سكريبت موفينغ 5 close و open و قف الخصارة على 40 .
    المشكلة هي أريده أن "لا يغلق أي الصفقات الرابحة أقل من 40 نقطة ."
    هدا هو السكريبت وشرا لكم جميعا.
    كود 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 && ((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 && ((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);
    }
    //+------------------------------------------------------------------+ 

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

  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