صفحة 277 من 689 الأولىالأولى ... 177227267271272273274275276277278279280281282283287327377 ... الأخيرةالأخيرة
النتائج 4,141 إلى 4,155 من 10335
  1. #4141
    الصورة الرمزية Jmeel
    Jmeel غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2008
    الإقامة
    في أرض الله
    المشاركات
    7,609

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    بارك الله فيك وجزاك الله عنا كل خير
    يعني عندما أقوم بوضع صفقة يدويا أكتب بالكومنت
    كود PHP:
    MR.dollar EA 
    لأن الشروط بالاكسبيرت بها هذا الكومنت
    كود PHP:
    OrderSend(Symbol(),OP_SELLLIMIT,newlot,Price,3,SL,TP,"MR.dollar EA",MagicNumberS,0,Red
    هل بهذه الطريقة الاكسبيرت سيعتبر صفقاتي اليدوية من ضمن صفقاته ؟
    اخي حسن الكومنت لربط عمليتين او اكثر ليسهل التعامل معها عبر الأكسبيرت فأذا اردت الأكسبيرت كذلك يتعرف على الصفقات اليدوية فضع الماجيك في الأكسبيرت 0 وهو نفس ماجيك الأوردر اليدوي .
    توقيع العضو
    اعتذر لمن لن أتمكن من تنفيذ طلبه بسبب عدم قناعتي بالفكرة

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

    افتراضي

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


    اخي حسن الكومنت لربط عمليتين او اكثر ليسهل التعامل معها عبر الأكسبيرت فأذا اردت الأكسبيرت كذلك يتعرف على الصفقات اليدوية فضع الماجيك في الأكسبيرت 0 وهو نفس ماجيك الأوردر اليدوي .
    نعم كلامك صحيح لكن هنا نتكلم عن اكسبيرت الأوامر المعلقة للأستاذ مستر دولار بداخله يوجد 2 ماجيك نمبر متعلقة بحسابات رياضية للأوامر المعلقة ولا بد من اختلافهما لا يمكن وضع الرقم 0 وقمت بتجربتها وحصل تفعيل أوامر معلقة كثيرة جدا في نفس السعر ...
    ومنه الحل هو الكومنت كما ذكر الأستاذ مستر دولار
    لكن كيف ؟
    هل بوضع شرط آخر للكومنت ضمن الاكسبيرت وهذا ربما يحتاج تعديل كل الكود
    أم عند وضع الصفقة يدويا أكتب فقط بكومنت الأوردر نفس الكومنت الموجود بصفقات الاكسبيرت (كما شرحت بمشاركتي السابقة) ؟؟
    جزاك الله خيرا أستاذ جميل
    توقيع العضو
    متداول فوركس، ومبرمج mql

  3. #4143
    الصورة الرمزية عبدالله الخليفي
    عبدالله الخليفي غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2006
    الإقامة
    باقي فيها سنة
    العمر
    52
    المشاركات
    575

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Jmeel مشاهدة المشاركة
    انا لاحظت خطأ في سطر ارسال الأوردر فصححته لك لكن ربما هناك اخطأ اخرى مثل هذا Mac1>High[0] فلايوجد هاي ثابت لشمعة الزيرو ، والثابت الوحيد لشمعة الزيرو هو سعر الأفتتاح ، ربما كان قصدك High[1] قم بتغييرها الى الشمعه 1 .
    تسلم اخي جميل ماقصرت بارك الله فيك انا اهوه باحاول وربنا يقدم مافيه الخير

  4. #4144
    الصورة الرمزية sameh
    sameh غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2010
    الإقامة
    مصر
    العمر
    44
    المشاركات
    501

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة sameh مشاهدة المشاركة
    كود PHP:
     //+------------------------------------------------------------------+
     //|                                                                  |
     //|                                                                  |
     //|                                      www.arabictrader.com/vb     |
     //|                                                                  |
     //|                                          [email protected]   |
     //+------------------------------------------------------------------+
     
    #property copyright "MR.dollarEA"
    #property link      "[email protected]"

            
     
    extern bool DeleteOppositePending=false;
     
    extern string S1=" Hamada Acc Settings";
     
    extern double  SL1_1=0.382;
     
    extern double Lots1_S=0.1;
     
    extern double  SL2_1 =0.691;
     
    extern double  SL3_1 =1.1;
     
    extern double Lots2_S=0.1;
     
    extern double  SL4_1=1.6;
     
    extern double Lots3_S=0.1;
     
    extern double  SL5_1=2.51;
     
    extern double Lots4_S=0.2;
     
    extern double  SL6_1=4.1;
     
    extern double  BL1_2=0.382;
     
    extern double Lots1_B=0.1;
     
    extern double  BL2_2 =0.691;
     
    extern double  BL3_2 =1.1;
     
    extern double Lots2_B=0.1;
     
    extern double  BL4_2=1.6;
     
    extern double Lots3_B=0.1;
     
    extern double  BL5_2=2.51;
     
    extern double Lots4_B=0.6;
     
    extern double  BL6_2=4.1;

     
     

     
    datetime Time0;
     
    double point;
     
    int digits,Q;
     
    extern int MagicNumber=2533;                             
     
    int init()
    {
     if(
    Digits==5||Digits==3)Q=10;
     else 
    Q=1;

     if(
    Digits<4){point=0.01;digits=2;}
     else{
    point=0.0001;digits=4;}
    return(
    0);
    }

     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS    deinitialization function                |
     //+------------------------------------------------------------------+

     
    void deinit() {
        
    Comment("");
      }

     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS   Start function                            |
     //+------------------------------------------------------------------+
    int Orderscnt(int type){
     
    int cnt=0;
       for(
    int i =0;i<OrdersTotal();i++)
       {
        
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==type)
         {
          
    cnt++;
         }
       }
      return(
    cnt);
      }

     
    int start()
       {
        
    Comment("Programmed by MR.dollar"+"\n"+"Idea Created by Hamada Acc"+"\n"+"منتدى المتداول العربي"+"\n"+"www.arabictrader.com/vb");
          
         
       
            
    double D6=iOpen(Symbol(),PERIOD_D1,6);
            
    double D5=iOpen(Symbol(),PERIOD_D1,5);
            
    double D4=iOpen(Symbol(),PERIOD_D1,4);       
            
    double D3=iOpen(Symbol(),PERIOD_D1,3);
            
    double D2=iOpen(Symbol(),PERIOD_D1,2);
            
    double D1=iOpen(Symbol(),PERIOD_D1,1);
            
    double D0=iOpen(Symbol(),PERIOD_D1,0);

            
    double DNL0 MathLog D1 /D0);  
            
    double DNL1 MathLog D1 /D2);                 
            
    double DNL2 MathLog D2 /D3); 
            
    double DNL3 MathLog D3 /D4); 
            
    double DNL4 MathLog D4 /D5) ; 
            
    double DNL5 MathLog D5 /D6);          

            
    double SQR0 DNL0 DNL0;
            
    double SQR1 DNL1 DNL1;
            
    double SQR2 DNL2 DNL2;
            
    double SQR3 DNL3 DNL3;
            
    double SQR4 DNL4 DNL4;
            
    double SQR5 DNL5 DNL5;
     
            
    double  DNLAVG = ( DNL0 DNL1 DNL2 DNL3 DNL4 +DNL5 ) / 7;
            
    double    SQRAVG = ( SQR0 SQR1 SQR2 +SQR3 +SQR4 SQR5 ) / 7;
            
    double CHR SQRAVG - (DNLAVG DNLAVG);    
            
    double Z=  MathSqrt(CHR)*D0;
            
            
    double SL1 D0+(SL1_1Z); 
             
    double SL2 D0+(SL2_1Z); 
           
            
    double SL3 D0+(SL3_1Z);
            
    double SL4 D0+(SL4_1Z); 
            
    double SL5 D0+(SL5_1);
             
    double SL6 D0+(SL6_1Z);
           
            
    double BL1 D0-(BL1_2);
            
    double BL2 D0-(BL2_2);
            
            
    double BL3 D0-(BL3_2);
            
    double BL4 D0-(BL4_2);
            
    double BL5 D0-(BL5_2);
           
    double BL6 D0-(BL6_2Z);
          
        if(
    Orderscnt(OP_BUY)>0&&DeleteOppositePending)
         {
          
    DeletePendingOrders(OP_SELLLIMIT);
         }   
        if(
    Orderscnt(OP_SELL)>0&&DeleteOppositePending)
        {
         
    DeletePendingOrders(OP_BUYLIMIT);
        }
       
    double SL,TP
             
        if(
    Time0!=iTime(Symbol(),1440,0)&&iVolume(Symbol(),1440,0)<2)
         {
          
           while(
    Orderscnt(OP_SELLLIMIT)>0)DeletePendingOrders(OP_SELLLIMIT);
           while(
    Orderscnt(OP_BUYLIMIT)>0)DeletePendingOrders(OP_BUYLIMIT);
             
    OrderSend(Symbol(),OP_BUYLIMIT,Lots1_B,NormalizeDouble(BL1,Digits),3*Q,BL6,SL1,"MR.dollar EA",MagicNumber,0,Blue);
             
             
    OrderSend(Symbol(),OP_BUYLIMIT,Lots2_B,NormalizeDouble(BL3,Digits),3*Q,BL6,BL1,"MR.dollar EA",MagicNumber,0,Blue);
              
             
    OrderSend(Symbol(),OP_BUYLIMIT,Lots3_B,NormalizeDouble(BL4,Digits),3*Q,BL6,BL2,"MR.dollar EA",MagicNumber,0,Blue);
             
             
    OrderSend(Symbol(),OP_BUYLIMIT,Lots4_B,NormalizeDouble(BL5,Digits),3*Q,BL6,BL4,"MR.dollar EA",MagicNumber,0,Blue);
            
             
    OrderSend(Symbol(),OP_SELLLIMIT,Lots1_S,NormalizeDouble(SL1,Digits),3*Q,SL6,BL1,"MR.dollar EA",MagicNumber,0,Red); 
             
             
    OrderSend(Symbol(),OP_SELLLIMIT,Lots2_S,NormalizeDouble(SL3,Digits),3*Q,SL6,SL1,"MR.dollar EA",MagicNumber,0,Red); 
             
             
    OrderSend(Symbol(),OP_SELLLIMIT,Lots3_S,NormalizeDouble(SL4,Digits),3*Q,SL6,SL2,"MR.dollar EA",MagicNumber,0,Red); 
             
             
    OrderSend(Symbol(),OP_SELLLIMIT,Lots4_S,NormalizeDouble(SL5,Digits),3*Q,SL6,SL4,"MR.dollar EA",MagicNumber,0,Red); 
              
             
    PlaySound("Alert.wav");            
           }
          
       }
         
    //+------------------------------------------------------------------+
    void DeletePendingOrders(int type)
    {
      for (
    int cnt cnt OrdersTotal() ; cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
        {
          if (
    OrderType()==type)
          {
           
    OrderDelete(OrderTicket());
          }
        }
      }
    }  
     
     
    //+---------------------------------------------------------------------------------+ 
    إخوانى وأساتذتى الأفاضل بعد السلام عليكم وكل عام وأنتم بخير
    أنا شغال بإكسيبرت يعتمد على مؤشر يرسم مستويات متجددة كل يوم وكنت عايز الكود اللى يخلى الاكسبيرت يعلق الاوامر بعد الساعة 12 مساءً مع بداية اليوم الجديد ولا يلتفت للمستويات القديمة
    ثانيا وضع امكانية اغلاق الصفقات المعلقة الخاسرة بعد نهاية اليوم ترو اور فلص


    وجزاكم الله خيرا
    من فضلك أستاذى الأخ جميل لو مافهوش تعب لحضرتك

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

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

    اقتباس المشاركة الأصلية كتبت بواسطة sameh مشاهدة المشاركة
    من فضلك أستاذى الأخ جميل لو مافهوش تعب لحضرتك
    بالنسبه لشرط وضع الأوامر في توقيت معين
    مثال
    كود PHP:
    static int timeH;
    if(
    Hour()==0&&timeH!=Time[0]))
    {
     
     
    timeH=Time[0];

    الرقم 0 هو الساعة التي سيضع عندها الأوامر يمكنك تغييرها حسب ما تريد

    طبعا الشروط سوف تقوم بوضعها مع شروط فتح الأوامر المعلقه

    وسوف تلغي الشرط القديم في هذه الحاله
    كود PHP:
     Time0!=iTime(Symbol(),1440,0
    بالنسبه لإغلاق الصفقات الخاسره مع نهاية اليوم
    فأولا سوف تقوم بعمل دالة لمعرفة الصفقات المفتوحه الخاسره حتى يتم إغلاقها
    كود PHP:
    void CloseLostOrders()
     {
      for(
    int i=0;i<OrdersTotal();i++)
      {
       
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
       if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderProfit()<0)
       {
        if(
    OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,3);
        if(
    OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,3);
       }
      }
     } 
    ثم ستضع دالة الإغلاق قبل أوامر فتح الصفقات مباشرة بحيث قبل أن يفتح الصفقات الجديده يغلق الصفقات الخاسره
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

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

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    بارك الله فيك وجزاك الله عنا كل خير
    يعني عندما أقوم بوضع صفقة يدويا أكتب بالكومنت
    كود PHP:
    MR.dollar EA 
    لأن الشروط بالاكسبيرت بها هذا الكومنت
    كود PHP:
    OrderSend(Symbol(),OP_SELLLIMIT,newlot,Price,3,SL,TP,"MR.dollar EA",MagicNumberS,0,Red
    هل بهذه الطريقة الاكسبيرت سيعتبر صفقاتي اليدوية من ضمن صفقاته ؟
    نعم يمكنك إستخدامه بهذا الشكل لكن كما أخبرتك يجب أن تحذف شروط الماجيك نمبر وتضيف شرط الكومنت أو أن تلغي جميع الشروط إذا أردت الكومنت والماجيك نمبر وفي هذه الحالة سيتعامل مع كل الصفقات

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

  7. #4147
    الصورة الرمزية sameh
    sameh غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2010
    الإقامة
    مصر
    العمر
    44
    المشاركات
    501

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    بالنسبه لشرط وضع الأوامر في توقيت معين
    مثال
    كود PHP:
    static int timeH;
    if(
    Hour()==0&&timeH!=Time[0]))
    {
     
     
    timeH=Time[0];

    الرقم 0 هو الساعة التي سيضع عندها الأوامر يمكنك تغييرها حسب ما تريد

    طبعا الشروط سوف تقوم بوضعها مع شروط فتح الأوامر المعلقه

    وسوف تلغي الشرط القديم في هذه الحاله
    كود PHP:
     Time0!=iTime(Symbol(),1440,0
    بالنسبه لإغلاق الصفقات الخاسره مع نهاية اليوم
    فأولا سوف تقوم بعمل دالة لمعرفة الصفقات المفتوحه الخاسره حتى يتم إغلاقها
    كود PHP:
    void CloseLostOrders()
     {
      for(
    int i=0;i<OrdersTotal();i++)
      {
       
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
       if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderProfit()<0)
       {
        if(
    OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,3);
        if(
    OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,3);
       }
      }
     } 
    ثم ستضع دالة الإغلاق قبل أوامر فتح الصفقات مباشرة بحيث قبل أن يفتح الصفقات الجديده يغلق الصفقات الخاسره
    عشت أخى الحبيب وبارك الله فيك وتقبل صيامك وأعمالك ليا سؤال كمان معلش أخى الحبيب
    الإكسيبرت لو وضعته على أكثر من عملة بيشتغل على عملة واحدة وباقى العملات لاء يعنى مثلا إمبارح كان واضع اوردرات على اليورو والباقى لاء انهردة لقيته شغال على الين والباقى لاء
    معلش أخى حبيبى ممكن كود يخليه يضع اوردرات للعملات الموضوع عليها ولا يكتفى بعملة واحدة
    وجزاك الله خيرا

  8. #4148
    الصورة الرمزية sameh
    sameh غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2010
    الإقامة
    مصر
    العمر
    44
    المشاركات
    501

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

    كود PHP:
    //+------------------------------------------------------------------+
    //|                                         Doda-Donchian v2 mod.mq4 |
    //|                             Copyright © 2010, Gopal Krishan Doda |
    //|                                          mod by Iwan Sulistiawan |
    //|                                        http://www.DodaCharts.com |
    //+------------------------------------------------------------------+

    #property indicator_chart_window
    #property indicator_buffers 5
    #property indicator_color1 OrangeRed
    #property indicator_color2 OrangeRed
    #property indicator_color3 DarkViolet
    #property indicator_color4 CLR_NONE
    #property indicator_color5 CLR_NONE
    #property indicator_width1 3
    #property indicator_width2 3
    #property indicator_width3 2
    #property indicator_width4 CLR_NONE
    #property indicator_width5 CLR_NONE

    extern color pivotColor Blue;
    extern color pivotlevelColor Blue;
    extern int ChannelPeriod 24;
    extern int EMAPeriod 120;
    extern int StartEMAShift 6;
    extern int EndEMAShift 0;
    extern double AngleTreshold 0.32;
    string note1="Change font colors automatically? True = Yes";
    extern bool   Bid_Ask_Colors=True;
    string note2="Default Price Font Color";
    extern color  FontColorPrice=Black;
    string note3="Font Size";
    extern int    FontSizePrice=26;
    string note4="Font Type";
    string FontType="Rockwell";
    extern int Corner=1;
    extern color CandleTimeColor Blue;

    int XDistance=1;
    int YDistance=5;
    double        Old_Price;
    int signalcondition 0;
    int CrossTime;
    double CrossPrice;
    string dbl2str;
    string str_concat;
    double UpperLine[];
    double LowerLine[];
    double MidLine[];
    double BuyBuffer[];
    double SellBuffer[];
    double s1[];
    bool BuySignal FALSE;
    bool SellSignal FALSE;

    int init() {
       
    SetIndexStyle(0DRAW_LINE);
       
    SetIndexBuffer(0UpperLine);
       
    SetIndexLabel(0"UpperLine");
       
    SetIndexStyle(1DRAW_LINE);
       
    SetIndexBuffer(1LowerLine);
       
    SetIndexLabel(1"LowerLine");
       
    SetIndexStyle(2DRAW_LINE);
       
    SetIndexBuffer(2MidLine);
       
    SetIndexLabel(2"MidLine");
       
    SetIndexStyle(3DRAW_ARROW, EMPTY);
       
    SetIndexArrow(3SYMBOL_ARROWUP);
       
    SetIndexBuffer(3BuyBuffer);
       
    SetIndexLabel(3"Buy");
       
    SetIndexStyle(4DRAW_ARROW, EMPTY);
       
    SetIndexArrow(4SYMBOL_ARROWDOWN);
       
    SetIndexBuffer(4SellBuffer);
       
    SetIndexLabel(4"Sell");
       
    ObjectCreate("myPriceLabel"OBJ_LABEL000);
       
    ObjectCreate("myPrice"OBJ_TEXT0CrossTimeCrossPrice);
       
    ObjectCreate("myPips"OBJ_LABEL000);

       
    IndicatorShortName("Doda-Donchian v2(" ChannelPeriod ")");
       
    SetIndexDrawBegin(0ChannelPeriod);
       
    SetIndexDrawBegin(1ChannelPeriod);

       
    ObjectCreate("mysl"OBJ_LABEL000);
       
    ObjectCreate("support1"OBJ_LABEL000);
       
    ObjectCreate("support2"OBJ_LABEL000);
       
    ObjectCreate("support3"OBJ_LABEL000);
       
    ObjectCreate("resistance1"OBJ_LABEL000);
       
    ObjectCreate("resistance2"OBJ_LABEL000);
       
    ObjectCreate("resistance3"OBJ_LABEL000);
       return (
    0);
    }

    int deinit() {
       
    ObjectDelete("mysl");

       
    ObjectDelete("myPips");
       
    ObjectDelete("myPriceLabel");
       
    ObjectDelete("myHline2");
       
    ObjectDelete("myVline2");
       
    ObjectDelete("S1");
       
    ObjectDelete("S2");
       
    ObjectDelete("S3");
       
    ObjectDelete("R1");
       
    ObjectDelete("R2");
       
    ObjectDelete("R3");
       
    ObjectDelete("pivot");
       
    ObjectDelete("Support 1");
       
    ObjectDelete("Support 2");
       
    ObjectDelete("Support 3");
       
    ObjectDelete("pivot level");
       
    ObjectDelete("Resistance 1");
       
    ObjectDelete("Resistance 2");
       
    ObjectDelete("Resistance 3");
       
    ObjectDelete("support1");
       
    ObjectDelete("support2");
       
    ObjectDelete("support3");
       
    ObjectDelete("resistance1");
       
    ObjectDelete("resistance2");
       
    ObjectDelete("resistance3");
       
    ObjectDelete("Market_Price_Label");
       
    ObjectDelete("time");
       return (
    0);
    }

    int start() {
       
    double barvalue[1][6];
       
    double close;
       
    double high;
       
    double low;
       
    int start;
       
    double fEndMA;
       
    double fStartMA;
       
    double fAngle;
       
    int digits;
       
    double k;
       
    int m,s,l;
       
       
    ArrayCopyRates(barvalueSymbol(), PERIOD_D1);
       if (
    DayOfWeek() == 1) {
          if (
    TimeDayOfWeek(iTime(Symbol(), PERIOD_D11)) == 5) {
             
    close barvalue[1][4];
             
    high barvalue[1][3];
             
    low barvalue[1][2];
          } else {
             for (
    int j 5>= 0j--) {
                if (
    TimeDayOfWeek(iTime(Symbol(), PERIOD_D1j)) == 5) {
                   
    close barvalue[j][4];
                   
    high barvalue[j][3];
                   
    low barvalue[j][2];
                }
             }
          }
       } else {
          
    close barvalue[1][4];
          
    high barvalue[1][3];
          
    low barvalue[1][2];
       }
       
    double rangehl high low;
       
    double pivot = (high low close) / 3.0;
       
    double R3 pivot 1.0 rangehl;
       
    double R2 pivot 0.618 rangehl;
       
    double R1 pivot rangehl 2.0;
       
    double S1 pivot rangehl 2.0;
       
    double S2 pivot 0.618 rangehl;
       
    double S3 pivot 1.0 rangehl;
       
    drawLine(R3"R3"DarkGreen0);
       
    drawLabel("Resistance 3"R3DarkGreen);
       
    drawLine(R2"R2"ForestGreen0);
       
    drawLabel("Resistance 2"R2ForestGreen);
       
    drawLine(R1"R1"Green0);
       
    drawLabel("Resistance 1"R1Green);
       
    drawLine(pivot"pivot"pivotColor0);
       
    drawLabel("Pivot level"pivotpivotlevelColor);
       
    drawLine(S1"S1"Red0);
       
    drawLabel("Support 1"S1Red);
       
    drawLine(S2"S2"Crimson0);
       
    drawLabel("Support 2"S2Crimson);
       
    drawLine(S3"S3"Maroon0);
       
    drawLabel("Support 3"S3Maroon);
       
    int counted_indicators IndicatorCounted();
       if (
    Bars <= ChannelPeriod) return (0);
       if (
    counted_indicators >= ChannelPeriodstart Bars counted_indicators 1;
       else 
    start Bars ChannelPeriod 1;
       
    BuyBuffer[0] = 0;
       
    SellBuffer[0] = 0;
       for (
    int i start>= 0i--) {
          
    UpperLine[i] = High[iHighest(NULL0MODE_HIGHChannelPeriodi)];
          
    LowerLine[i] = Low[iLowest(NULL0MODE_LOWChannelPeriodi)];
          
    MidLine[i] = (UpperLine[i] + LowerLine[i]) / 2.0;
          
    fEndMA iMA(NULL0EMAPeriod0MODE_EMAPRICE_MEDIANEndEMAShift);
          
    fStartMA iMA(NULL0EMAPeriod0MODE_EMAPRICE_MEDIANStartEMAShift);
          
    fAngle 10000.0 * (fEndMA fStartMA) / (StartEMAShift EndEMAShift);
          if (
    UpperLine[1] < High[i] && fAngle AngleTresholdBuyBuffer[i] = High[i];
          if (
    LowerLine[1] > Low[i] && fAngle < (-AngleTreshold)) SellBuffer[i] = Low[i];
          
          if (
    Close[i] > MidLine[i] && BuySignal == FALSE) {
             
    signalcondition TRUE;
             
    CrossPrice Close[i];
             
    CrossTime Time[i];
             
    BuySignal TRUE;
             
    SellSignal FALSE;
          }
          if (
    Close[i] < MidLine[i] && SellSignal == FALSE) {
             
    signalcondition FALSE;
             
    CrossPrice Close[i];
             
    CrossTime Time[i];
             
    BuySignal FALSE;
             
    SellSignal TRUE;
          }
       }
       if (
    signalcondition == TRUE) {
          
    ObjectDelete("myHline2");
          
    ObjectDelete("myVline2");
          
    ObjectCreate("myHline2"OBJ_HLINE0CrossTimeCrossPrice00);
          
    ObjectCreate("myVline2"OBJ_VLINE0CrossTimeCrossPrice00);
          
    ObjectSet("myHline2"OBJPROP_COLORLimeGreen);
          
    ObjectSet("myVline2"OBJPROP_COLORLimeGreen);
          
    ObjectSetText("myPrice"StringConcatenate(""CrossPrice), 18"Arial"LimeGreen);
          
    ObjectSetText("myPriceLabel"StringConcatenate("Buy Price @: "DoubleToStr(CrossPriceDigits)), 10"Arial"LimeGreen);
          
    ObjectSet("myPriceLabel"OBJPROP_XDISTANCE2);
          
    ObjectSet("myPriceLabel"OBJPROP_YDISTANCE40);
          
    ObjectSet("myPriceLabel"OBJPROP_CORNERCorner);
          if (
    Symbol() == "AUDNZD" || Symbol() == "GBPAUD" || Symbol() == "EURAUD" || Symbol() == "EURCAD"ObjectSetText("myPips"StringConcatenate("Profit in Pips: "NormalizeDouble(Close[0] - CrossPriceDigits) / Point), 10"Arial"LimeGreen);
          else 
    ObjectSetText("myPips"StringConcatenate("Profit in Pips: "NormalizeDouble(Close[0] - CrossPriceDigits) / Point), 10"Arial"LimeGreen);
          
    ObjectSet("myPips"OBJPROP_XDISTANCE2);
          
    ObjectSet("myPips"OBJPROP_YDISTANCE56);
          
    ObjectSet("myPips"OBJPROP_CORNERCorner);
          
    dbl2str DoubleToStr(CrossPriceDigits);
          
    str_concat StringConcatenate("Profit in Pips: "NormalizeDouble(Close[0] - CrossPriceDigits) / Point 10.0);
       }
       if (
    signalcondition == FALSE) {
          
    ObjectDelete("myHline2");
          
    ObjectDelete("myVline2");
          
    ObjectCreate("myHline2"OBJ_HLINE0CrossTimeCrossPrice00);
          
    ObjectCreate("myVline2"OBJ_VLINE0CrossTimeCrossPrice00);
          
    ObjectSet("myHline2"OBJPROP_COLORRed);
          
    ObjectSet("myVline2"OBJPROP_COLORRed);
          
    ObjectSetText("myPrice"StringConcatenate(""CrossPrice), 18"Arial"Red);
          
    ObjectSetText("myPriceLabel"StringConcatenate("Sell Price @: "DoubleToStr(CrossPriceDigits)), 10"Arial"Red);
          
    ObjectSet("myPriceLabel"OBJPROP_XDISTANCE2);
          
    ObjectSet("myPriceLabel"OBJPROP_YDISTANCE40);
          
    ObjectSet("myPriceLabel"OBJPROP_CORNERCorner);
          if (
    Symbol() == "AUDNZD" || Symbol() == "GBPAUD" || Symbol() == "EURAUD" || Symbol() == "EURCAD"ObjectSetText("myPips"StringConcatenate("Profit in Pips: "NormalizeDouble(CrossPrice Close[0], Digits) / Point), 10"Arial"Red);
          else 
    ObjectSetText("myPips"StringConcatenate("Profit in Pips: "NormalizeDouble(CrossPrice Close[0], Digits) / Point), 10"Arial"Red);
          
    ObjectSet("myPips"OBJPROP_XDISTANCE2);
          
    ObjectSet("myPips"OBJPROP_YDISTANCE56);
          
    ObjectSet("myPips"OBJPROP_CORNERCorner);
          
    dbl2str DoubleToStr(CrossPriceDigits);
          
    str_concat StringConcatenate("Profit in Pips: "NormalizeDouble(CrossPrice Close[0], Digits) / Point 10.0);
       }

       
    ObjectSetText("mysl""Stop Loss: " DoubleToStr(MidLine[0], Digits), 10"Arial"MediumBlue);
       
    ObjectSet("mysl"OBJPROP_XDISTANCE2);
       
    ObjectSet("mysl"OBJPROP_YDISTANCE70);
       
    ObjectSet("mysl"OBJPROP_CORNERCorner);
       
    ObjectSetText("support1""Support1: " DoubleToStr(S1Digits), 10"Arial"Red);
       
    ObjectSet("support1"OBJPROP_XDISTANCE2);
       
    ObjectSet("support1"OBJPROP_YDISTANCE130);
       
    ObjectSet("support1"OBJPROP_CORNERCorner);
       
    ObjectSetText("support2""Support2: " DoubleToStr(S2Digits), 10"Arial"Red);
       
    ObjectSet("support2"OBJPROP_XDISTANCE2);
       
    ObjectSet("support2"OBJPROP_YDISTANCE145);
       
    ObjectSet("support2"OBJPROP_CORNERCorner);
       
    ObjectSetText("support3""Support3: " DoubleToStr(S3Digits), 10"Arial"Red);
       
    ObjectSet("support3"OBJPROP_XDISTANCE2);
       
    ObjectSet("support3"OBJPROP_YDISTANCE160);
       
    ObjectSet("support3"OBJPROP_CORNERCorner);
       
    ObjectSetText("resistance1""Resistance1: " DoubleToStr(R1Digits), 10"Arial"ForestGreen);
       
    ObjectSet("resistance1"OBJPROP_XDISTANCE2);
       
    ObjectSet("resistance1"OBJPROP_YDISTANCE85);
       
    ObjectSet("resistance1"OBJPROP_CORNERCorner);
       
    ObjectSetText("resistance2""Resistance2: " DoubleToStr(R2Digits), 10"Arial"ForestGreen);
       
    ObjectSet("resistance2"OBJPROP_XDISTANCE2);
       
    ObjectSet("resistance2"OBJPROP_YDISTANCE100);
       
    ObjectSet("resistance2"OBJPROP_CORNERCorner);
       
    ObjectSetText("resistance3""Resistance3: " DoubleToStr(R3Digits), 10"Arial"ForestGreen);
       
    ObjectSet("resistance3"OBJPROP_XDISTANCE2);
       
    ObjectSet("resistance3"OBJPROP_YDISTANCE115);
       
    ObjectSet("resistance3"OBJPROP_CORNERCorner);
       
    Comment("Doda-Donchian v2 mod by isulistiawan");
       
       
       
    //---Market Price start

       
    if (Bid_Ask_Colors==True)
         {
          if (
    Bid Old_PriceFontColorPrice=Lime;
          if (
    Bid Old_PriceFontColorPrice=Red;
          
    Old_Price=Bid;
         }
         
       
       
    string sub=StringSubstr(Symbol(), 33);
       if(
    sub == "JPY"digits 2;
       else 
    digits 4;
       
      
       
    string Market_Price=DoubleToStr(Biddigits);
      
          
       
    ObjectCreate("Market_Price_Label"OBJ_LABEL000);
       
    ObjectSetText("Market_Price_Label"Market_PriceFontSizePriceFontTypeFontColorPrice);
       
    ObjectSet("Market_Price_Label"OBJPROP_CORNERCorner);
       
    ObjectSet("Market_Price_Label"OBJPROP_XDISTANCEXDistance+15);
       
    ObjectSet("Market_Price_Label"OBJPROP_YDISTANCEYDistance);
       
       
    //--Candle Time
       

       
    m=Time[0]+Period()*60-CurTime();
       
    k=m/60.0;
       
    s=m%60;
       
    m=(m-m%60)/60;
    //   Comment( m + " minutes " + s + " seconds left to bar end");
        
        
       
    ObjectDelete("time");
       
       if(
    ObjectFind("time") != 0)
       {
       
    ObjectCreate("time"OBJ_TEXT0Time[0], Close[0]+ 0.0005);
       
    ObjectSetText("time""                       "+m+":"+s10"Rockwell"CandleTimeColor);
       }
       else
       {
       
    ObjectMove("time"0Time[0], Close[0]+0.0005);
       }
       
       
       return (
    0);
    }

    void drawLabel(string linenamedouble a_price_8color colorline) {
       if (
    ObjectFind(linename) != 0) {
          
    ObjectCreate(linenameOBJ_TEXT0Time[10], a_price_8);
          
    ObjectSetText(linenamelinename8"Arial"CLR_NONE);
          
    ObjectSet(linenameOBJPROP_COLORcolorline);
          return;
       }
       
    ObjectMove(linename0Time[10], a_price_8);
    }

    void drawLine(double pricelinestring drawlinecolor colorlineint ai_20) {
       if (
    ObjectFind(drawline) != 0) {
          
    ObjectCreate(drawlineOBJ_HLINE0Time[0], pricelineTime[0], priceline);
          if (
    ai_20 == 1ObjectSet(drawlineOBJPROP_STYLESTYLE_SOLID);
          else 
    ObjectSet(drawlineOBJPROP_STYLESTYLE_DOT);
          
    ObjectSet(drawlineOBJPROP_COLORcolorline);
          
    ObjectSet(drawlineOBJPROP_WIDTH1);
          return;
       }
       
    ObjectDelete(drawline);
       
    ObjectCreate(drawlineOBJ_HLINE0Time[0], pricelineTime[0], priceline);
       if (
    ai_20 == 1ObjectSet(drawlineOBJPROP_STYLESTYLE_SOLID);
       else 
    ObjectSet(drawlineOBJPROP_STYLESTYLE_DOT);
       
    ObjectSet(drawlineOBJPROP_COLORcolorline);
       
    ObjectSet(drawlineOBJPROP_WIDTH1);

    معلش MR DOLLAR طلب أخير سامحنى كنت عايز أعرف كود المؤشر ده عشان أقدر أصممله إكسيبرت فأنا بحاول تعلم صنع الإكسيبرتات من سيادتكم أخى الحبيب
    أنا عارف إن طلباتى كتير بس معلش سامحنى أنا بصراحة ماصدقت لقيت حضرتك رديت على طلبى

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

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

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

    لكن طبعا كما لاحظت أن الإكسبرت يقوم بحساب الصفقات المفتوحه كل نوع عن طريق الماجيك نمبر لذلك يجب أن تراعي هذه النقطه إما أن يحسب عدد الصفقات عن طريق الكومنت أو أن تجعل لصفقات الشراء كومنت معين وصفقات البيع كومنت آخر
    وعند فتح الصفقه يدويا تراعي أيضا صفقات الشراء تضع لها كومنت صفقة الشراء وصفقات البيع تضع لها كومنت صفقة البيع
    بارك الله فيك أستاذي الحبيب
    طيب قمت بحذف كل شروط الماجيك نمبر وجعلت لصفقات الشراء كومنت "buy" وصفقات البيع كومنت "sell"
    لا يوجد أخطاء بالكمبايل لكن عند التجربة بالباكتيست لم يستطع الاكسبيرت وضع الأوامر المعلقة من جديد مكان المغلقة هذا معناه وجود خطأ حسابي بشروط الكومنت! أعتقد انه ينقصه كود ما بالدالة int init
    فأرجو التصحيح أستاذي العزيز ضمن الاكسبيرت
    وسؤال آخر فضلا أستاذي
    في حالة عمل الاكسبيرت على سلة عملات فلن يحدث خلط في الأوامر رغم تطابق الكومنت لأنه يوجد شرط
    كود PHP:
    OrderSymbol()==Symbol() 
    فهل هذا صحيح؟

    بانتظارك وآسف على كثرة الاستفسارات

    الاكسبيرت بالمرفقات

    الملفات المرفقة الملفات المرفقة
    آخر تعديل بواسطة kira-h ، 12-07-2013 الساعة 10:14 PM
    توقيع العضو
    متداول فوركس، ومبرمج mql

  10. #4150
    الصورة الرمزية tsaheel
    tsaheel غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2012
    الإقامة
    الكويت
    المشاركات
    957

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

    شكرا لجهود الاخوة في هذا الموضوع
    بالنسبة للميتاتريدر في قسم فحص الاكسبريت
    يوجد :
    أمر " حدود الاختبار " ما هي ميزة هذا الزر وكيف يمكن الاستفادة منه ؟؟
    وشكرا جزيلا
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة e9.png‏  
    توقيع العضو
    قالوا : الفوريكس أرقام وليس رسم وألوان

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

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

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

    لحل هذه المشكلة يمكنك أن تضع شرط قبل فتح الصفقه
    كود PHP:
    while(IsTradeContextBusy())Sleep(1000); 
    بحيث عندما يريد فتح الصفقة سوف يقارن إذا كان السيرفر مشغول حاليا سوف ينتظر 1 ثانيه ويظل ينتظر حتى يصبح السيرفر غير مشغول فيقوم بتنفيذ الأوامر
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

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

    مرحبا أيها الاصدقاء . أحتاج تعديل لهدا السكريبت منفضلكم.
    مهمت السكربت 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);   
    }   
    //+------------------------------------------------------------------+ 

  13. #4153
    الصورة الرمزية sameh
    sameh غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2010
    الإقامة
    مصر
    العمر
    44
    المشاركات
    501

    افتراضي

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

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

  14. #4154
    الصورة الرمزية daod
    daod غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2013
    المشاركات
    246

    افتراضي

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

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

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

    او

    يعني اذا كان العقد الاول 8 يكون العقد الثاني 4 والثالث 2 والرابع 1وهكذا؟
    آخر تعديل بواسطة daod ، 15-07-2013 الساعة 03:24 PM

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

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

    السلام عليكم ورحمة الله وبركاته
    تحياتي أستاذ مستر دولار
    كنت أنتظر الرد على المشاركة رقم 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);
           }
           }
          }
         }
        }
       }
      }
     }  

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


    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 456.png‏  
    آخر تعديل بواسطة kira-h ، 15-07-2013 الساعة 04:36 PM
    توقيع العضو
    متداول فوركس، ومبرمج mql

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

  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