صفحة 158 من 689 الأولىالأولى ... 58108148152153154155156157158159160161162163164168208258658 ... الأخيرةالأخيرة
النتائج 2,356 إلى 2,370 من 10335
  1. #2356
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,864

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة spiders101 مشاهدة المشاركة
    بعد عمل التعديل لم تظهر رسالة الخطـأ ورسالة OrderSend Error 129 نادرا ماتظهر الآن على منصة FXDD ، ولكن عند العمل على منصة 4 أرقام مثل Windsor بعض الصفقات لايتم عمل مودفاى للتارجت والاستوب لها وخاصة مع زوج GBPJPY !!

    هل يوجد كود فـ الاكسيبرت يمنع عمل مودفاى للتارجت والاستوب على منصة الـ 4 أرقـام !!
    بنفس الطريقة التي إتبعتها في تحديد أخطاء أمر فتح الصفقات
    هذا أمر المودفاي في الإكسبرت
    كود PHP:
    if(TP!=OrderTakeProfit()||SL!=OrderStopLoss()&&ticket>0)
    {
    OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Red);

    الخطأ الآن إما في الشروط التي تم وضعها أو حدوث خطأ عند محاولة عمل مودفاي للأوامر
    حتى تتأكد من مكان الخطأ قم بوضع أمر آخر عند تحقق الشروط
    كود PHP:
    if(TP!=OrderTakeProfit()||SL!=OrderStopLoss()&&ticket>0)
    {
    OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Red);
    Print(
    "order shoud modified :",Symbol());

    إذا لم ينفذ أمر الطباعه فهذا يعني أن الخطأ في الشروط نفسها
    لذلك قم بطباعه الهدف والأستوب لوز ورقم التيكيت
    كود PHP:
    if(ticket<0)Alert("Order Send Error "+GetLastError(),"||","open price for the order"+Bid);}
    if(
    TP!=OrderTakeProfit()||SL!=OrderStopLoss()&&ticket>0)
    {
    OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Red);
    Print(
    "order shoud modified :",Symbol());

    Print(
    "TP =",TP," SL =",SL,"ticket =",ticket); 
    إجعل شروط المقارنه
    كود PHP:
    if(TP!=0||SL!=0&&ticket>0
    حتى تتجنب مشكلة أن يكون الخطأ من الدوال

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

  2. #2357
    الصورة الرمزية صاحب هدف
    صاحب هدف غير متواجد حالياً موقوف
    تاريخ التسجيل
    Jan 2010
    الإقامة
    سوريا
    المشاركات
    5,384

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

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

    إزيك يا أستاذ أسامة

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

    اما إقتراحي فهو إن في ناس بقى عندها شوية خبرة في البرمجة لكن لسه ماتعرفوش على كل الكلمات المحجوزة او الدوال الموجودة في الميتاإيديتور
    أنا فتحت القائمة دي لقيت إن فيها بحدود 350 كلمة او دالة

    اضغط على الصورة لعرض أكبر

الاســـم:	li.png
المشاهدات:	135
الحجـــم:	12.3 كيلوبايت
الرقم:	329594

    فإيه رأيك لو حضرتك كل يوم تشرح 10 أو 20 دالة ويوم بعد يوم نلاقي المكتبة دي إترجمت وكل الدوال بقت معروفة وإلي عندهم شوية خبرة هتزداد وهيبطلوا يسألوا على حجات صغيرة زي حالتي عشان السؤال قبل شوية دورت لقيت حاجة إسمها
    fileopen()
    لكن مش عارف بتشتغل إزاي

    وألف شكر مقدما
    تحياتي

  3. #2358
    الصورة الرمزية صاحب هدف
    صاحب هدف غير متواجد حالياً موقوف
    تاريخ التسجيل
    Jan 2010
    الإقامة
    سوريا
    المشاركات
    5,384

    افتراضي

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

    وشكرا

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

    افتراضي

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


    شكرا لك على سرعة الرد
    مرفق المؤشر والطريقة اني عاوز المؤشر يتأخر في الظهور شمعة او شمعتين او اكثر حسب الاختيار
    يعني يعطي أهمية واعتبار للتغير للأسعار القديمة واضافة متغير TextShift يمكنك منه
    تحديد مكان وضع السعر سواء جعلها للأمام أو للخلف بحيث نجعل مكان الخط مثلا 3 شمعات للأمام
    وإذا جعلتها -3 سوف يجعلها 3 شمعات إلى الخلف كي تعمل على سلسلة كل شمعه
    فإذا عاوز على 21 أعطانا متوسط 21 .. او اذا اردنا للخلف نعمل -21
    يعني يعطي اهمية اقفال الشمعة التي قبل الشمعة الحالية
    أي أن " نهاية "خط المتوسط تعطي قراءة متوسط 21 يوم قبلها

    يمكن يكون شرحي غير واضح ولكن معليش استحملني شوي ......

    كود:
    
                              
    //---- indicator settings
    #property indicator_chart_window
    #property  indicator_buffers 3 
    #property  indicator_color1 Yellow
    #property  indicator_color2 Blue
    #property  indicator_color3 Red
    #property  indicator_width1 1
    #property  indicator_width2 1
    #property  indicator_width3 1
    #property indicator_style1 STYLE_SOLID
    #property indicator_style2 STYLE_DOT
    #property indicator_style3 STYLE_DOT
    
    //---- input parameters
    extern int eintTimeframe = 0;
    extern int eintHalfLength = 56;
    extern double edblAtrMultiplier = 2.0;
    extern int eintAtrPeriod = 100;
    extern int eintBarsToProcess = 0;
    extern bool eblnAlerts = false;
    extern color gc_Mid = Yellow;
    extern color gc_Upper = Blue;
    extern color gc_Lower = Red;
    
    
    //---- indicator buffers
    double gadblMid[];
    double gadblUpper[];
    double gadblLower[];
    
    int gintTF = 0;
    datetime gdtLastAlert = 0;
    int gi_PipsDecimal;
    
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int init()
    {          
       if ( eintTimeframe == 0 )   gintTF = Period();
       else                        gintTF = eintTimeframe;
       
       gdtLastAlert = 0;
       
       IndicatorBuffers( 3 );
       IndicatorDigits( 5 );
       
       SetIndexBuffer( 0, gadblMid ); 
       SetIndexLabel( 0, "TMA Mid" );
    
       SetIndexBuffer( 1, gadblUpper );
       SetIndexLabel( 1, "TMA Upper" );
       
       SetIndexBuffer( 2, gadblLower );
       SetIndexLabel( 2, "TMA Lower" );   
           
       //---- name for DataWindow and indicator subwindow label
       IndicatorShortName( "TmaTrue(" + eintHalfLength + ",M" + gintTF + ")" );
       gi_PipsDecimal = Get_Pips_Decimal();
       
       return( 0 );
    }
    
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function                       |
    //+------------------------------------------------------------------+
    int deinit()
    {
    ObjectDelete("!Mid");
    ObjectDelete("!Upp");
    ObjectDelete("!Low");
    ObjectDelete("!Range");
       return( 0 );
    }
    
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
    int start()
    {
       int counted_bars = IndicatorCounted();
       
       if (counted_bars < 0) return (-1);
       if (counted_bars > 0) counted_bars--;
       int intLimit = Bars - counted_bars;
       double dblTma, dblUpper, dblLower, dblRange;
       int intBarShift;
          
       if ( eintBarsToProcess > 0 && intLimit > eintBarsToProcess )     intLimit = eintBarsToProcess; 
    
       for( int inx = intLimit; inx >= 0; inx-- )
       {   
          if ( gintTF == Period() ) 
          {      
             dblRange = iATR( Symbol(), gintTF, eintAtrPeriod, inx+10 );
             dblTma = calcTma( eintHalfLength, inx );
          }
          else
          {
             intBarShift = iBarShift( Symbol(), gintTF, Time[inx] );
             dblRange = iATR( Symbol(), gintTF, eintAtrPeriod, intBarShift+10 );
             dblTma = calcTmaMtf( gintTF, eintHalfLength, intBarShift, Close[inx] );
          }
                 
          gadblMid[inx] = dblTma;
          gadblUpper[inx] = dblTma + ( edblAtrMultiplier * dblRange );
          gadblLower[inx] = dblTma - ( edblAtrMultiplier * dblRange );
       }
       
       if ( eblnAlerts && gdtLastAlert < Time[1] )
       {
          if ( ( Close[1] > gadblUpper[1] ) && ( Close[2] < gadblUpper[2] ) )
          {
             Alert( Symbol(), " - M", Period(), " - ", TimeToStr( Time[1], TIME_DATE|TIME_MINUTES ), " closed above upper TMA." );
             gdtLastAlert = Time[1];
          }
          
          if ( ( Close[1] < gadblLower[1] ) && ( Close[2] > gadblLower[2] ) )
          {
             Alert( Symbol(), " - M", Period(), " - ", TimeToStr( Time[1], TIME_DATE|TIME_MINUTES ), " closed below lower TMA." );
             gdtLastAlert = Time[1];
          }
       }
       
          // Calculate the distances between bid & bands
          double ld_Dist.Pts, ld_Dist.Pips;
          
          // Distance to mid
          ld_Dist.Pts = MathAbs(Bid - gadblMid[0]);
          ld_Dist.Pips = Convert_2_Pips(ld_Dist.Pts);
          ObjectCreate("!Mid",OBJ_TEXT,0,0,0);
          ObjectSet("!Mid",OBJPROP_TIME1,Time[0]+(3*Period()*60));
          ObjectSet("!Mid",OBJPROP_PRICE1,gadblMid[0]);
          ObjectSetText("!Mid",DoubleToStr(ld_Dist.Pips,gi_PipsDecimal),8,"Arial",gc_Mid);
          
          // Distance to upper
          ld_Dist.Pts = MathAbs(Bid - gadblUpper[0]);
          ld_Dist.Pips = Convert_2_Pips(ld_Dist.Pts);
          ObjectCreate("!Upp",OBJ_TEXT,0,0,0);
          ObjectSet("!Upp",OBJPROP_TIME1,Time[0]+(3*Period()*60));
          ObjectSet("!Upp",OBJPROP_PRICE1,gadblUpper[0]);
          ObjectSetText("!Upp",DoubleToStr(ld_Dist.Pips,gi_PipsDecimal),8,"Arial",gc_Upper);
          
          // Distance to lower
          ld_Dist.Pts = MathAbs(Bid - gadblLower[0]);
          ld_Dist.Pips = Convert_2_Pips(ld_Dist.Pts);
          ObjectCreate("!Low",OBJ_TEXT,0,0,0);
          ObjectSet("!Low",OBJPROP_TIME1,Time[0]+(3*Period()*60));
          ObjectSet("!Low",OBJPROP_PRICE1,gadblLower[0]);
          ObjectSetText("!Low",DoubleToStr(ld_Dist.Pips,gi_PipsDecimal),8,"Arial",gc_Lower);
          
          // Display the total range of the bands
          ld_Dist.Pts = MathAbs(gadblUpper[0] - gadblLower[0]);
          ld_Dist.Pips = Convert_2_Pips(ld_Dist.Pts);
          Object_Create("!Range",5,5,"TMA Range: "+DoubleToStr(ld_Dist.Pips,gi_PipsDecimal),1,"Arial",gc_Mid);
    
       return( 0 );
    }
    
    //+------------------------------------------------------------------+
    //| calcTma()                                                        |
    //+------------------------------------------------------------------+
    double calcTma( int intHalfLength, int intShift )
    {
       double dblResult, dblSum, dblSumW, dblRange;
       int inx, jnx, knx;
       
       dblSumW = intHalfLength + 1;
       dblSum = dblSumW * Close[intShift];
       jnx = intHalfLength;
       
       for ( inx = 1, jnx = intHalfLength; inx <= intHalfLength; inx++, jnx-- )
       {
          dblSumW += jnx;
          dblSum += ( jnx * Close[intShift+inx] );
       } 
       
       dblResult = dblSum / dblSumW;
       
       return( dblResult );
    }
    
    //+------------------------------------------------------------------+
    //| calcTmaMtf()                                                     |
    //+------------------------------------------------------------------+
    double calcTmaMtf( int intTF, int intHalfLength, int intUpperTfShift, double dblClose )
    {
       double dblResult, dblSum, dblSumW, dblRange;
       int inx, jnx, knx;
       
       // This is the current bar
       dblSumW = intHalfLength + 1;
       dblSum = dblSumW * dblClose;
       jnx = intHalfLength;
       
       for ( inx = 1, jnx = intHalfLength; inx <= intHalfLength; inx++, jnx-- )
       {
          dblSumW += jnx;
          dblSum += ( jnx * iClose( Symbol(), intTF, intUpperTfShift+inx ) );  
       } 
       
       dblResult = dblSum / dblSumW;
       
       return( dblResult );
    }
    //+------------------------------------------------------------------+
    //| create screen objects                                            |
    //+------------------------------------------------------------------+
    void Object_Create(string ps_name,int pi_x,int pi_y,string ps_text=" ",int pi_size=12,
                      string ps_font="Arial",color pc_colour=CLR_NONE)
      {
    //----
       
    //   if (colour==CLR_NONE) colour=xcBackground;
          
       ObjectCreate(ps_name,OBJ_LABEL,0,0,0,0,0);
       ObjectSet(ps_name,OBJPROP_CORNER,3);
       ObjectSet(ps_name,OBJPROP_COLOR,pc_colour);
       ObjectSet(ps_name,OBJPROP_XDISTANCE,pi_x);
       ObjectSet(ps_name,OBJPROP_YDISTANCE,pi_y);
       
       ObjectSetText(ps_name,ps_text,pi_size,ps_font,pc_colour);
    
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| convert to points                                                |
    //+------------------------------------------------------------------+
    double Convert_2_Pts(double pd_Pips)
      {
    //----
       int pd_Points=pd_Pips;  // Default - no conversion
       
         if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY") != -1)) 
            pd_Points=pd_Pips*10;
            
         if (Digits == 6 || (Digits == 4 && StringFind(Symbol(), "JPY") != -1)) 
            pd_Points=pd_Pips*100;
    //----
       return(pd_Points);
      }
    //+------------------------------------------------------------------+
    //| convert to pips                                                  |
    //+------------------------------------------------------------------+
    double Convert_2_Pips(double pd_Points)
      {
    //----
       double pd_Pips=pd_Points/Point;  // Default - no conversion
       
         if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY") != -1)) 
            {
            pd_Pips=pd_Points/Point/10;
            }
            
         if (Digits == 6 || (Digits == 4 && StringFind(Symbol(), "JPY") != -1)) 
            {
            pd_Pips=pd_Points/Point/100;
            }
    //----
       return(pd_Pips);
      }
    //+------------------------------------------------------------------+
    //| get the pips decimal places                                      |
    //+------------------------------------------------------------------+
    int Get_Pips_Decimal()
      {
    //----
       int pi_PipsDecimal = 0;  // Default - no decimals
       
         if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY") != -1)) 
            {
            pi_PipsDecimal = 1;
            }
            
         if (Digits == 6 || (Digits == 4 && StringFind(Symbol(), "JPY") != -1)) 
            {
            pi_PipsDecimal = 2;
            }
    //----
       return(pi_PipsDecimal);
      }
    وضح على شارت لم أفهم حقيقه
    إذا كان التعديل طويل فالأفضل إجعله في موضوع مستقل ضع فيه المؤشر فهذا الموضوع للأسئله البرمجيه
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة صاحب هدف مشاهدة المشاركة
    الحمد لله رب العالمين
    فهمت الكود وإتعلمت حاجة جديدة يا أستاذ أسامة
    لكن بالنسبة للغاية ماتحققتش زي ماكنت متوقع لما يكون السعر مثلا 1.25381 وينزل للـ 1.25379 بيزود نقطة
    هحاول أعمل فكرة العداد الفرعي لكن لو حضرتك لسه موجود والفكرة جاهزة ياريت تنزلهالي عشان الوقت ربنا يكرمك
    تحياتي
    مثال :
    كود PHP:
    if (bid price){
    u++;
    d=0;
    }
    if (
    bid price){
    d++;
    u=0;
    }
    if(
    u==10){
    U=1;
    u=0;
    }
    if(
    d==10){
    D=1;
    d=0;

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

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة ابواحمد222 مشاهدة المشاركة
    مستردولار المحترم فضلا وليس امرا
    عندما اقول هذه المعادله على برنامج فكسول
    iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)
    هل المقصود هيستوجرام في الماكد حيث هو اللون الاول والشركه ليس بها خطين
    نعم صحيح وعند وضعك للمؤشر على الشارت سوف تلاحظ ذلك
    اضغط على الصورة لعرض أكبر

الاســـم:	s1.png
المشاهدات:	147
الحجـــم:	18.8 كيلوبايت
الرقم:	329596
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

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




    تمام أخي أسامه فعلا كانت الفاصله المنقوطه هي السبب .. و بارك الله فيك
    الآن أخي أنا إنتهيت من الإكسبيرت وعندما بدأت أجربه على الديمو لأضع مستويين أفقيين أحدهما أعلى السعر و الآخر أسفله لأرى كيف يضع الأوامر و جدت الإكسبيرت يفعل فقط أمر السيل ستوب و يقوم بوضع كميه كبيره من الأوامر السيل ستوب و المشكله الأخرى أنه يقوم بوضع الأمر من نقطه خاطئه ..
    فقد إستخدمت التعريفات التاليه :
    كود PHP:
         
         double line1
    =ObjectGet("buy",OBJPROP_PRICE1);
         
    double line2=ObjectGet("sell",OBJPROP_PRICE1);
         
         
    ///---
         
         
    double sp=(Spread*point);
         
    double pips=(PipsFromLine*point);
         
    double buy=(line1+sp+pips);
         
         
    double pips2=(PipsFromLine*point) ;
         
    double sell=(line2-pips2); 
    و الخطوه رقم 1 للإكسبيرت هي تعليق الأمرين عند المستويين من النقطه buy و النقطه sell و هما المستويان مضاف لهما السبريد و لمستوى الشراء عدد آخر من النقاط غير السبريد كما بالتعريفات السابقة:
    كود PHP:
              //////////// 1- put the buy sop///////////
          
          
    if (MyBuyPendingOrdersTotal(MagicNumber)==&& USE_BUYSTOP==TRUE && Time0!=Time[0]) {
          if((
    TimeCurrent()-LastClosedOrderTime())/60/60>=9999)
          {
       
        if(
    StopLoss==0||HideSL){SL=0;}else{SL=Ask-StopLoss*point;}
        if(
    TakeProfit==0||HideTP){TP=0;}else{TP=Ask+TakeProfit*point;}

           
           
           if(
    UseRecTP)TP=(Ask+TP_R);
           if(
    UseRecSL)SL=(Ask-SL_R);
               
              
                
    OrderSend(Symbol(),OP_BUYSTOP,Lots1,buy,3,SL,TP,"first",MagicNumber,0,Green);
                 
    PlaySound("Alert.wav");
                   
    Time0=Time[0];
                    
                 
            }  
           }
           
                                
        
    ///////////////////////////////////////////////////////////////////////////////////////////
        
                           ///////////////1- put the sell stop//////////////
        
           
    if (MySellPendingOrdersTotal(MagicNumber)==&& Time0!=Time[0]&& USE_SELLSTOP==TRUE ){
           if((
    TimeCurrent()-LastClosedOrderTime())/60/60>=9999)
           {
           
            if(
    StopLoss==0||HideSL){SL=0;}else{SL=Bid+StopLoss*point;}
        if(
    TakeProfit==0||HideTP){TP=0;}else{TP=Bid-TakeProfit*point;}

           
           
           
           if(
    UseRecTP)TP=(Bid-TP_R);
           if(
    UseRecSL)SL=(Bid+SL_R);
               
        
             
    OrderSend(Symbol(),OP_SELLSTOP,Lots1,sell,3,SL,TP,"first" ,MagicNumber,0,Green);
              
    PlaySound("Alert.wav");
                
    Time0=Time[0];
                 
                 
               }  
              
           } 
    وقد إستخدمت دالة معرفة توقيت إغلاق آخر صفقة و وضعت في شرط أول خطوة هذا الشرط :
    كود PHP:
    if((TimeCurrent()-LastClosedOrderTime())/60/60>=99999
    وأيضا شرط :
    كود PHP:
     Time0!=Time[0
    حتى لا يتم تكرار تعليق الأوامر و مع ذلك كان يعلق الأوامر و من مكان خاطئ ..
    رجاء الإطلاع أخي أسامه ومراجعة باقي الخطوات إذا كان هناك خطأ ..
    و بارك الله فيك .
    الإكســــــــــــــبيرت
    هذه هي شروط البيع والشراء التي وضعتها
    كود PHP:
                         ///- 2 ------------------------------------------------------------
            
            
    if(orderscnt(OP_BUY)==&& getcomment()=="first" ){ 
          
    DeleteSellPendingOrdersMagicNumber);}
          
             if(
    StopLoss==0||HideSL){SL=0;}else{SL=Bid+StopLoss*point;}
        if(
    TakeProfit==0||HideTP){TP=0;}else{TP=Bid-TakeProfit*point;}

           
           
           
           if(
    UseRecTP)TP=(sell-TP_R);
           if(
    UseRecSL)SL=(sell+SL_R);
            
            
             
    OrderSend(Symbol(),OP_SELLSTOP,Lots2,sell,3,SL,TP,"second" ,MagicNumber,0,Green);
              
    PlaySound("Alert.wav");
                
    Time0=Time[0];
                
                
                 
                 
    ///---
          
           
    if( orderscnt(OP_SELL)==&& getcomment()=="first" ){ 
          
    DeleteBuyPendingOrdersMagicNumber);}
          
             if(
    StopLoss==0||HideSL){SL=0;}else{SL=Ask-StopLoss*point;}
        if(
    TakeProfit==0||HideTP){TP=0;}else{TP=Ask+TakeProfit*point;}

           
           
           if(
    UseRecTP)TP=(buy+TP_R);
           if(
    UseRecSL)SL=(buy-SL_R);
            
            
            
    OrderSend(Symbol(),OP_BUYSTOP,Lots2,buy,3,SL,TP,"second",MagicNumber,0,Green);
                 
    PlaySound("Alert.wav");
                   
    Time0=Time[0]; 
    هل تراها صحيحه بهذا الشكل ؟ أين شروط التوقيت الذي تقول أنك وضعته

    الجمله الشرطيه if تكتب بهذا الشكل
    كود PHP:
     if(condition)
             {
             
    ////////
             

    وبين القوسين يتم كتابة الأوامر التي تنفذ مكان /////////
    أيضا الشروط هنا
    كود PHP:
      if( last=="loss" 
              
    && orderscnt(OP_BUY)==1
              
    && Last_lots==Lots1
              
    && getcomment()=="second" ){
               } 
               
    Modify_Order(SL1); 
    هل ترى أنك وضعت الشروط بشكل صحيح ؟
    أنت فتحت القوس ثم أغلقت مباشرة { } ولم تضع الشرط الذي سينفذ بداخله
    راجع كل الكود وإضبط هذه الأخطاء
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

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

    إزيك يا أستاذ أسامة

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

    اما إقتراحي فهو إن في ناس بقى عندها شوية خبرة في البرمجة لكن لسه ماتعرفوش على كل الكلمات المحجوزة او الدوال الموجودة في الميتاإيديتور
    أنا فتحت القائمة دي لقيت إن فيها بحدود 350 كلمة او دالة

    اضغط على الصورة لعرض أكبر

الاســـم:	li.png
المشاهدات:	135
الحجـــم:	12.3 كيلوبايت
الرقم:	329594

    فإيه رأيك لو حضرتك كل يوم تشرح 10 أو 20 دالة ويوم بعد يوم نلاقي المكتبة دي إترجمت وكل الدوال بقت معروفة وإلي عندهم شوية خبرة هتزداد وهيبطلوا يسألوا على حجات صغيرة زي حالتي عشان السؤال قبل شوية دورت لقيت حاجة إسمها
    fileopen()
    لكن مش عارف بتشتغل إزاي

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

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

    افتراضي

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

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

  10. #2365
    الصورة الرمزية afrandai
    afrandai غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2011
    الإقامة
    الكويت
    المشاركات
    182

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة afrandai مشاهدة المشاركة
    السلام عليكم اخي اسامة ... تم الرد على تساؤلاتك في موضوعي https://forum.arabictrader.com/t141767.html

    الله يبارك فيك
    1- هل من جديد اخ اسامة الله يبارك فيك في التعديل على الاكسبيرت ...
    2- يرجى التكرم من التأكد من اخر نسخة لانها لا تعمل على منصة 5 خانات

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

  11. #2366
    الصورة الرمزية ابواحمد222
    ابواحمد222 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2010
    المشاركات
    414

    افتراضي

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

الاســـم:	s1.png
المشاهدات:	147
الحجـــم:	18.8 كيلوبايت
الرقم:	329596
    شكرا مستر دولار وتقبل ودي

  12. #2367
    الصورة الرمزية spiders101
    spiders101 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2011
    الإقامة
    مصــر
    المشاركات
    935

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

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    بنفس الطريقة التي إتبعتها في تحديد أخطاء أمر فتح الصفقات
    هذا أمر المودفاي في الإكسبرت
    كود PHP:
    if(TP!=OrderTakeProfit()||SL!=OrderStopLoss()&&ticket>0)
    {
    OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Red);

    الخطأ الآن إما في الشروط التي تم وضعها أو حدوث خطأ عند محاولة عمل مودفاي للأوامر
    حتى تتأكد من مكان الخطأ قم بوضع أمر آخر عند تحقق الشروط
    كود PHP:
    if(TP!=OrderTakeProfit()||SL!=OrderStopLoss()&&ticket>0)
    {
    OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Red);
    Print(
    "order shoud modified :",Symbol());

    إذا لم ينفذ أمر الطباعه فهذا يعني أن الخطأ في الشروط نفسها
    لذلك قم بطباعه الهدف والأستوب لوز ورقم التيكيت
    كود PHP:
    if(ticket<0)Alert("Order Send Error "+GetLastError(),"||","open price for the order"+Bid);}
    if(
    TP!=OrderTakeProfit()||SL!=OrderStopLoss()&&ticket>0)
    {
    OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Red);
    Print(
    "order shoud modified :",Symbol());

    Print(
    "TP =",TP," SL =",SL,"ticket =",ticket); 
    إجعل شروط المقارنه
    كود PHP:
    if(TP!=0||SL!=0&&ticket>0
    حتى تتجنب مشكلة أن يكون الخطأ من الدوال

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



    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 11.JPG‏   12.JPG‏  
    الملفات المرفقة الملفات المرفقة

  13. #2368
    الصورة الرمزية spiders101
    spiders101 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2011
    الإقامة
    مصــر
    المشاركات
    935

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

    اقتباس المشاركة الأصلية كتبت بواسطة spiders101 مشاهدة المشاركة
    قمت بعمل التعديل وفتح صفقة ايضـا بدون عمل مودفاى كما بالصورة .



    الغريب انه يقوم بالفعل بعمل مودفاى لبعض الصفقـات !! ، وبالمثل لمنصة fxdd لكن المشكلة لاتحدث كثيرا معها بعكس منصة ويندسور

    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 12.JPG‏  

  14. #2369
    الصورة الرمزية Mr. Bader
    Mr. Bader غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2011
    الإقامة
    اليمن
    المشاركات
    597

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وضح على شارت لم أفهم حقيقه
    إذا كان التعديل طويل فالأفضل إجعله في موضوع مستقل ضع فيه المؤشر فهذا الموضوع للأسئله البرمجيه
    شكرا لك اخي مستر دولار
    بس هي اضافة بسيطة جدا ولا تحتاج لعمل موضوع
    وهي اضافة للمؤشر متغير TextShift لتحريك الخطين للامام او الخلف
    يعني مكان وضع الخطين كما في الصورة
    ولو عاوز افتح موضوع ماشى راح افتحه ...
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 55.gif‏  

  15. #2370
    الصورة الرمزية xcv114
    xcv114 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2010
    الإقامة
    مصر
    المشاركات
    1,022

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

    اقتباس المشاركة الأصلية كتبت بواسطة spiders101 مشاهدة المشاركة
    الغريب انه يقوم بالفعل بعمل مودفاى لبعض الصفقـات !! ، وبالمثل لمنصة fxdd لكن المشكلة لاتحدث كثيرا معها بعكس منصة ويندسور

    جرب تضع
    كود PHP:
    OrderSelect(ticket,SELECT_BY_TICKET); 
    قبل أمر OrderModify

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

  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