صفحة 652 من 686 الأولىالأولى ... 152552602642646647648649650651652653654655656657658662 ... الأخيرةالأخيرة
النتائج 9,766 إلى 9,780 من 10278
  1. #9766
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة chAmine مشاهدة المشاركة
    السلام عليكم ورحمة الله
    ممكن كود يعطي عدد الصفقات الخاسرة بصفة متتالية بعد أخر صفقة رابحة ?
    شكرا مسبقا
    وعليكم السلام ورحمة الله وبركاته
    تفضل مثال
    كود PHP:
    int TotalConsecutiveLoss()
    {
     
    int cnt=0;
     for(
    int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
      if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
      {
       if(
    OrderProfit()<0)cnt++;
       else return(
    cnt);
      }
     }
     return(
    cnt);

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

  2. #9767
    الصورة الرمزية _fady_
    _fady_ غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Apr 2011
    الإقامة
    فلسطين
    المشاركات
    598

    افتراضي

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

    المشكلة الوحيدة انه يغلق الصفقة المفتوحة أولا على ربح أو خسارة ثم بفتح صفقة أخرى من نفس نقطة الاغلاق .
    التعديل المطلوب / اريد اضافة شرط آخر حتى يتم اغلاق الصفقة المفتوحة وفتح صفقة أخرى عكس الاولى
    وهو / انه يجب تحقق الشرطين معا وبدون تحقق الشرطين معا لاتغلق الصفقة ولا تفتح غيرها .
    1- ( الشرط الاول ) ان يتم التقاطع العكسى للموفنج وهو موجود بالفعل .
    2-( الشرط الثانى ) الاضافة المهمة لى ان يتم اضافة شرط +1 على الصفقة حتى تغلق وتفتح وحدة جديدة
    يعنى غالبا يتم اغلاق الصفقة على خسارة لانه صار التقاطع أدنى من صفقة الشراء وأعلى من صفقة البيع
    يجب ان لا تغلق الا اذا تحقق الشرط الثانى وهو ان تكون الصفقة بالموجب على الاقل + نقطة (+1 )
    حتى لا تغلق اى صفقة على خسارة حتى لو ضلت لايام مفتوحة الصفقة لا تغلق على خسارة ابدا .
    .................................................. .....................................
    الصفقة الخاسرة التى لم تغلق و اصبحت الخسارة فيها كبيرة تتم ادارتها يدويا بالمضاعفات كل 100 نقطة حتى تستوى الصفقات جميعها
    على +1 .
    الرجاء الاطلاع على هذا الطلب

  3. #9768
    الصورة الرمزية ahmadwalwil
    ahmadwalwil غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2011
    المشاركات
    114

    افتراضي

    السلام عليكم
    مهندسنا الغالي استشارة لو سمحت
    مافي طريقة سهله نعمل باك تست 99% او برنامج مش غالي يساعدنا في هذا الموضوع
    برنامج Tick Data suite غالي وكل شهر بطلب تجديد اشتراك

  4. #9769
    الصورة الرمزية abomazen20
    abomazen20 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2019
    الإقامة
    السعودية
    المشاركات
    52

    افتراضي

    فى اكسبرت عندي به مده زمنيه لتشغيل فى طريقة لتمديده
    او تغير تاريخ الويندوز ينفع معي

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة ahmadwalwil مشاهدة المشاركة
    السلام عليكم
    مهندسنا الغالي استشارة لو سمحت
    مافي طريقة سهله نعمل باك تست 99% او برنامج مش غالي يساعدنا في هذا الموضوع
    برنامج Tick Data suite غالي وكل شهر بطلب تجديد اشتراك
    وعليكم السلام ورحمة الله وبركاته
    إتجه إلى الميتاتريدر 5 هو الأفضل في الباك تست في رأيي
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

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

  7. #9772
    الصورة الرمزية Albahri65
    Albahri65 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2019
    الإقامة
    عمان
    المشاركات
    26

    افتراضي

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

    لو تكرمت، انا أستخدم هذا الإكسبرت في حسابي الحقيقي و النتائج مرضية، لكن وددت منك التكرم بتزويدي بشرح عن الخيارات الموجودة في الضبط، أو تدلني على الموضوع الذي تحدثت فيه عن هذا الإكسبرت .وبارك الله تعالى فيك

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

    افتراضي

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

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

  9. #9774
    الصورة الرمزية Albahri65
    Albahri65 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2019
    الإقامة
    عمان
    المشاركات
    26

    افتراضي

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

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

    افتراضي

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

  11. #9776
    الصورة الرمزية rain_man
    rain_man غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2011
    الإقامة
    مصر
    المشاركات
    199

    افتراضي

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

    كود:
    Nth ZIGZAG value
    //------------------------------------------------------------------------------------
    double getNthZIGZAGValue(string _SYMBOL, int _TIMEFRAME, bool UpperLower, int Nth)
    {
    double result = 0;
    int i = 0;
    int NthZIGZAG = 2*Nth + 1;
    double ZIGZAG1 = 0;
    double ZIGZAG2 = 0;
    
    while(i < 1000 && NthZIGZAG > 0)
    {
    result = iCustom(_SYMBOL, _TIMEFRAME, "ZigZag", 12, 5, 3, 0, i);
    
    i++;
    
    if(result > 0)
    {
    ZIGZAG1 = ZIGZAG2;
    ZIGZAG2 = result;
    NthZIGZAG--;
    continue;
    }
    }
    
    if(UpperLower)
    {
    if(ZIGZAG1 > ZIGZAG2)
    result = ZIGZAG1;
    else
    result = ZIGZAG2;
    }
    else
    {
    if(ZIGZAG1 > ZIGZAG2)
    result = ZIGZAG2;
    else
    result = ZIGZAG1;
    }
    
    return (result);
    }
    //------------------------------------------------------------------------------------
    // Nth ZIGZAG time
    //------------------------------------------------------------------------------------
    datetime getNthZIGZAGTime(string _SYMBOL, int _TIMEFRAME, bool UpperLower, int Nth)
    {
    double result = 0;
    int i = 0;
    int NthZIGZAG = 2*Nth + 1;
    double ZIGZAG1 = 0;
    double ZIGZAG2 = 0;
    int ZIGZAG1Time = 0;
    int ZIGZAG2Time = 0;
    
    while(i < 1000 && NthZIGZAG > 0)
    {
    result = iCustom(_SYMBOL, _TIMEFRAME, "ZigZag", 12, 5, 3, 0, i);
    
    i++;
    
    if(result > 0)
    {
    ZIGZAG1 = ZIGZAG2;
    ZIGZAG2 = result;
    ZIGZAG1Time = ZIGZAG2Time;
    ZIGZAG2Time = i - 1;
    NthZIGZAG--;
    continue;
    }
    }
    
    if(UpperLower)
    {
    if(ZIGZAG1 > ZIGZAG2)
    result = ZIGZAG1Time;
    else
    result = ZIGZAG2Time;
    }
    else
    {
    if(ZIGZAG1 > ZIGZAG2)
    result = ZIGZAG2Time;
    else
    result = ZIGZAG1Time;
    }
    
    return(iTime(_SYMBOL, _TIMEFRAME, result));
    }
    //-----------------------------------------------------------------
    آخر تعديل بواسطة rain_man ، 15-01-2020 الساعة 07:05 PM

  12. #9777
    الصورة الرمزية rain_man
    rain_man غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2011
    الإقامة
    مصر
    المشاركات
    199

    افتراضي

    يوجد كود اخر صممته بنفسي لتحديد اخر 5 قمم و 5 قيعان لكل فريم على حده ولكن مع كثرة المتغيرات اصبح الكود يهنج المنصة ولا يعمل ارجو اذا كان يوجد طريقة افضل لكتابته فيكون مختصرا ويعمل بشكل سريع..قمت بتخزين اخر 10 قيم من الدالة وبعد ذلك قمت بالمقارنة بين كل قيمة والتي تسبقها حتى احدد ايهما هو الهاي والاخر اللو ثم قمت بتكرار الكود لجميع الفريمات لاني احيانا احتاج مثلا 5 قمم و5 قيعان لفريم 5 دقائق وربع ساعة في نفس الوقت من نفس الشارت و احيانا كل الفريمات.
    كود:
    #property copyright "Copyright 2020, MetaQuotes Software Corp."
    #property link      "https://www.mql5.com"
    #property version   "1.00"
    #property strict
    #property indicator_chart_window
    
    input int InpDepth=12;     // Depth
    input int InpDeviation=5;  // Deviation
    input int InpBackstep=3;   // Backstep
    
    enum Switch{Enable,Disable}; 
    extern Switch Current_Time_Frame=Disable;
    extern Switch M1=Disable;
    extern Switch M5=Disable;
    extern Switch M15=Disable;
    extern Switch M30=Disable;
    extern Switch H1=Disable;
    extern Switch H4=Disable;
    extern Switch Daily=Disable;
    extern Switch Weekly=Disable;
    //extern Switch Monthly=Disable;
    
    
    double p1,p2,p3,p4,p5,
    p11,p22,p33,p44,p55,
    h1,h2,h3,h4,h5,//h1=high1--h2=high2 and the rest
    l1,l2,l3,l4,l5,//l1=low1--l2=low2 and the rest
    //----------------------------
    h1_m1,h2_m1,h3_m1,h4_m1,h5_m1,//  1 Minute chart Highes
    l1_m1,l2_m1,l3_m1,l4_m1,l5_m1,//  1 Minute chart lows
    //---------------------------------
    h1_m5,h2_m5,h3_m5,h4_m5,h5_m5,//  5 Minutes chart Highes 
    l1_m5,l2_m5,l3_m5,l4_m5,l5_m5,//  5 Minutes chart lows
    //---------------------------------
    h1_m15,h2_m15,h3_m15,h4_m15,h5_m15,//  15 Minutes chart Highes
    l1_m15,l2_m15,l3_m15,l4_m15,l5_m15,//  15 Minutes chart lows
    //---------------------------------
    h1_m30,h2_m30,h3_m30,h4_m30,h5_m30,//  30 Minutes chart Highes
    l1_m30,l2_m30,l3_m30,l4_m30,l5_m30,//  30 Minutes chart lows
    //---------------------------------
    h1_h1,h2_h1,h3_h1,h4_h1,h5_h1,//  1 Houre chart Highes
    l1_h1,l2_h1,l3_h1,l4_h1,l5_h1,//  1 Houre chart lows
    //---------------------------------
    h1_h4,h2_h4,h3_h4,h4_h4,h5_h4,//  4 Houres chart Highes
    l1_h4,l2_h4,l3_h4,l4_h4,l5_h4,//  4 Houres chart lows
    //---------------------------------
    h1_d,h2_d,h3_d,h4_d,h5_d,//   Daily chart Highes
    l1_d,l2_d,l3_d,l4_d,l5_d,//   Daily chart lows
    //---------------------------------
    h1_w,h2_w,h3_w,h4_w,h5_w,//   Weekly chart Highes
    l1_w,l2_w,l3_w,l4_w,l5_w;//   Weekly chart lows
    //---------------------------------
    //h1_mo,h2_mo,h3_mo,h4_mo,h5_mo, //   Monthly chart Highes
    //l1_mo,l2_mo,l3_mo,l4_mo,l5_mo; //   Monthly chart lows
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int OnInit()
      {
    //--- indicator buffers mapping
       
    //---
       return(INIT_SUCCEEDED);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
    int OnCalculate(const int rates_total,
                    const int prev_calculated,
                    const datetime &time[],
                    const double &open[],
                    const double &high[],
                    const double &low[],
                    const double &close[],
                    const long &tick_volume[],
                    const long &volume[],
                    const int &spread[])
      {
    //---
    if(Current_Time_Frame==Enable)
    {
    p1=ZZPeak(0,1);
       p11=ZZPeak(0,2);
       p2=ZZPeak(0,3);
       p22=ZZPeak(0,4);
       p3=ZZPeak(0,5);
       p33=ZZPeak(0,6);
       p4=ZZPeak(0,7);
       p44=ZZPeak(0,8);
       p5=ZZPeak(0,9);
       p55=ZZPeak(0,10);
       
       if (p1>p11){h1=p1;l1=p11;}
       if (p1<p11){h1=p11;l1=p1;}
       
       if (p2>p22){h2=p2;l2=p22;}
       if (p2<p22){h2=p22;l2=p2;}
       
       if (p3>p33){h3=p3;l3=p33;}
       if (p3<p33){h3=p33;l3=p3;}
       
       if (p4>p44){h4=p4;l4=p44;}
       if (p4<p44){h5=p44;l4=p4;}
       
       if (p5>p55){h5=p5;l5=p55;}
       if (p5<p55){h5=p55;l5=p5;}
    }
    
    if(M1==Enable){//zigzag highs and lows for 1 Minute chart and adding Suffix *_m1* to varibal names to distinquish from other frames's values.
       double p1_m1=ZZPeak(1,1);
       double p11_m1=ZZPeak(1,2);
       double p2_m1=ZZPeak(1,3);
       double p22_m1=ZZPeak(1,4);
       double p3_m1=ZZPeak(1,5);
       double p33_m1=ZZPeak(1,6);
       double p4_m1=ZZPeak(1,7);
       double p44_m1=ZZPeak(1,8);
       double p5_m1=ZZPeak(1,9);
       double p55_m1=ZZPeak(1,10);
    
       if (p1_m1>p11_m1){h1_m1=p1_m1;l1_m1=p11_m1;}
       if (p1_m1<p11_m1){h1_m1=p11_m1;l1_m1=p1_m1;}
       
       if (p2_m1>p22_m1){h2_m1=p2_m1;l2_m1=p22_m1;}
       if (p2_m1<p22_m1){h2_m1=p22_m1;l2_m1=p2_m1;}
       
       if (p3_m1>p33_m1){h3_m1=p3_m1;l3_m1=p33_m1;}
       if (p3_m1<p33_m1){h3_m1=p33_m1;l3_m1=p3_m1;}
       
       if (p4_m1>p44_m1){h4_m1=p4_m1;l4_m1=p44_m1;}
       if (p4_m1<p44_m1){h5_m1=p44_m1;l4_m1=p4_m1;}
       
       if (p5_m1>p55_m1){h5_m1=p5_m1;l5_m1=p55_m1;}
       if (p5_m1<p55_m1){h5_m1=p55_m1;l5_m1=p5_m1;}
    }
    
    if(M5==Enable){//zigzag highs and lows for 5 Minute chart and adding Suffix *_m5* to varibal names to distinquish from other frames's values.
       double p1_m5=ZZPeak(5,1);
       double p11_m5=ZZPeak(5,2);
       double p2_m5=ZZPeak(5,3);
       double p22_m5=ZZPeak(5,4);
       double p3_m5=ZZPeak(5,5);
       double p33_m5=ZZPeak(5,6);
       double p4_m5=ZZPeak(5,7);
       double p44_m5=ZZPeak(5,8);
       double p5_m5=ZZPeak(5,9);
       double p55_m5=ZZPeak(5,10);
       
       if (p1_m5>p11_m5){h1_m5=p1_m5;l1_m5=p11_m5;}
       if (p1_m5<p11_m5){h1_m5=p11_m5;l1_m5=p1_m5;}
       
       if (p2_m5>p22_m5){h2_m5=p2_m5;l2_m5=p22_m5;}
       if (p2_m5<p22_m5){h2_m5=p22_m5;l2_m5=p2_m5;}
       
       if (p3_m5>p33_m5){h3_m5=p3_m5;l3_m5=p33_m5;}
       if (p3_m5<p33_m5){h3_m5=p33_m5;l3_m5=p3_m5;}
       
       if (p4_m5>p44_m5){h4_m5=p4_m5;l4_m5=p44_m5;}
       if (p4_m5<p44_m5){h5_m5=p44_m5;l4_m5=p4_m5;}
       
       if (p5_m5>p55_m5){h5_m5=p5_m5;l5_m5=p55_m5;}
       if (p5_m5<p55_m5){h5_m5=p55_m5;l5_m5=p5_m5;}
    }
    
    
    if(M15==Enable){//zigzag highs and lows for 15 Minute chart and adding Suffix *_m15* to varibal names to distinquish from other frames's values.
       double p1_m15=ZZPeak(15,1);
       double p11_m15=ZZPeak(15,2);
       double p2_m15=ZZPeak(15,3);
       double p22_m15=ZZPeak(15,4);
       double p3_m15=ZZPeak(15,5);
       double p33_m15=ZZPeak(15,6);
       double p4_m15=ZZPeak(15,7);
       double p44_m15=ZZPeak(15,8);
       double p5_m15=ZZPeak(15,9);
       double p55_m15=ZZPeak(15,10);
       
       if (p1_m15>p11_m15){h1_m15=p1_m15;l1_m15=p11_m15;}
       if (p1_m15<p11_m15){h1_m15=p11_m15;l1_m15=p1_m15;}
       
       if (p2_m15>p22_m15){h2_m15=p2_m15;l2_m15=p22_m15;}
       if (p2_m15<p22_m15){h2_m15=p22_m15;l2_m15=p2_m15;}
       
       if (p3_m15>p33_m15){h3_m15=p3_m15;l3_m15=p33_m15;}
       if (p3_m15<p33_m15){h3_m15=p33_m15;l3_m15=p3_m15;}
       
       if (p4_m15>p44_m15){h4_m15=p4_m15;l4_m15=p44_m15;}
       if (p4_m15<p44_m15){h5_m15=p44_m15;l4_m15=p4_m15;}
       
       if (p5_m15>p55_m15){h5_m15=p5_m15;l5_m15=p55_m15;}
       if (p5_m15<p55_m15){h5_m15=p55_m15;l5_m15=p5_m15;}
    }
    
    if(M30==Enable){//zigzag highs and lows for 30 Minute chart and adding Suffix *_m30* to varibal names to distinquish from other frames's values.
       double p1_m30=ZZPeak(30,1);
       double p11_m30=ZZPeak(30,2);
       double p2_m30=ZZPeak(30,3);
       double p22_m30=ZZPeak(30,4);
       double p3_m30=ZZPeak(30,5);
       double p33_m30=ZZPeak(30,6);
       double p4_m30=ZZPeak(30,7);
       double p44_m30=ZZPeak(30,8);
       double p5_m30=ZZPeak(30,9);
       double p55_m30=ZZPeak(30,10);
       
       if (p1_m30>p11_m30){h1_m30=p1_m30;l1_m30=p11_m30;}
       if (p1_m30<p11_m30){h1_m30=p11_m30;l1_m30=p1_m30;}
       
       if (p2_m30>p22_m30){h2_m30=p2_m30;l2_m30=p22_m30;}
       if (p2_m30<p22_m30){h2_m30=p22_m30;l2_m30=p2_m30;}
       
       if (p3_m30>p33_m30){h3_m30=p3_m30;l3_m30=p33_m30;}
       if (p3_m30<p33_m30){h3_m30=p33_m30;l3_m30=p3_m30;}
       
       if (p4_m30>p44_m30){h4_m30=p4_m30;l4_m30=p44_m30;}
       if (p4_m30<p44_m30){h5_m30=p44_m30;l4_m30=p4_m30;}
       
       if (p5_m30>p55_m30){h5_m30=p5_m30;l5_m30=p55_m30;}
       if (p5_m30<p55_m30){h5_m30=p55_m30;l5_m30=p5_m30;}
    }
    
    if(H1==Enable){//zigzag highs and lows for 1 Houre chart and adding Suffix *_H1* to varibal names to distinquish from other frames's values.
       double p1_h1=ZZPeak(60,1);
       double p11_h1=ZZPeak(60,2);
       double p2_h1=ZZPeak(60,3);
       double p22_h1=ZZPeak(60,4);
       double p3_h1=ZZPeak(60,5);
       double p33_h1=ZZPeak(60,6);
       double p4_h1=ZZPeak(60,7);
       double p44_h1=ZZPeak(60,8);
       double p5_h1=ZZPeak(60,9);
       double p55_h1=ZZPeak(60,10);
       
       if (p1_h1>p11_h1){h1_h1=p1_h1;l1_h1=p11_h1;}
       if (p1_h1<p11_h1){h1_h1=p11_h1;l1_h1=p1_h1;}
       
       if (p2_h1>p22_h1){h2_h1=p2_h1;l2_h1=p22_h1;}
       if (p2_h1<p22_h1){h2_h1=p22_h1;l2_h1=p2_h1;}
       
       if (p3_h1>p33_h1){h3_h1=p3_h1;l3_h1=p33_h1;}
       if (p3_h1<p33_h1){h3_h1=p33_h1;l3_h1=p3_h1;}
       
       if (p4_h1>p44_h1){h4_h1=p4_h1;l4_h1=p44_h1;}
       if (p4_h1<p44_h1){h5_h1=p44_h1;l4_h1=p4_h1;}
       
       if (p5_h1>p55_h1){h5_h1=p5_h1;l5_h1=p55_h1;}
       if (p5_h1<p55_h1){h5_h1=p55_h1;l5_h1=p5_h1;}
    }
    
    if(H4==Enable){//zigzag highs and lows for 4 Houre chart and adding Suffix *_H4* to varibal names to distinquish from other frames's values.
       double p1_h4=ZZPeak(240,1);
       double p11_h4=ZZPeak(240,2);
       double p2_h4=ZZPeak(240,3);
       double p22_h4=ZZPeak(240,4);
       double p3_h4=ZZPeak(240,5);
       double p33_h4=ZZPeak(240,6);
       double p4_h4=ZZPeak(240,7);
       double p44_h4=ZZPeak(240,8);
       double p5_h4=ZZPeak(240,9);
       double p55_h4=ZZPeak(240,10);
          
       if (p1_h4>p11_h4){h1_h4=p1_h4;l1_h4=p11_h4;}
       if (p1_h4<p11_h4){h1_h4=p11_h4;l1_h4=p1_h4;}
       
       if (p2_h4>p22_h4){h2_h4=p2_h4;l2_h4=p22_h4;}
       if (p2_h4<p22_h4){h2_h4=p22_h4;l2_h4=p2_h4;}
       
       if (p3_h4>p33_h4){h3_h4=p3_h4;l3_h4=p33_h4;}
       if (p3_h4<p33_h4){h3_h4=p33_h4;l3_h4=p3_h4;}
       
       if (p4_h4>p44_h4){h4_h4=p4_h4;l4_h4=p44_h4;}
       if (p4_h4<p44_h4){h5_h4=p44_h4;l4_h4=p4_h4;}
       
       if (p5_h4>p55_h4){h5_h4=p5_h4;l5_h4=p55_h4;}
       if (p5_h4<p55_h4){h5_h4=p55_h4;l5_h4=p5_h4;}
    }
    
    if(Daily==Enable){//zigzag highs and lows for Daily chart and adding Suffix *_d* to varibal names to distinquish from other frames's values.
       double p1_d=ZZPeak(1440,1);
       double p11_d=ZZPeak(1440,2);
       double p2_d=ZZPeak(1440,3);
       double p22_d=ZZPeak(1440,4);
       double p3_d=ZZPeak(1440,5);
       double p33_d=ZZPeak(1440,6);
       double p4_d=ZZPeak(1440,7);
       double p44_d=ZZPeak(1440,8);
       double p5_d=ZZPeak(1440,9);
       double p55_d=ZZPeak(1440,10);
          
       if (p1_d>p11_d){h1_d=p1_d;l1_d=p11_d;}
       if (p1_d<p11_d){h1_d=p11_d;l1_d=p1_d;}
       
       if (p2_d>p22_d){h2_d=p2_d;l2_d=p22_d;}
       if (p2_d<p22_d){h2_d=p22_d;l2_d=p2_d;}
       
       if (p3_d>p33_d){h3_d=p3_d;l3_d=p33_d;}
       if (p3_d<p33_d){h3_d=p33_d;l3_d=p3_d;}
       
       if (p4_d>p44_d){h4_d=p4_d;l4_d=p44_d;}
       if (p4_d<p44_d){h5_d=p44_d;l4_d=p4_d;}
       
       if (p5_d>p55_d){h5_d=p5_d;l5_d=p55_d;}
       if (p5_d<p55_d){h5_d=p55_d;l5_d=p5_d;}
    }
    
    if(Weekly==Enable){//zigzag highs and lows for Weekly chart and adding Suffix *_w* to varibal names to distinquish from other frames's values.
       double p1_w=ZZPeak(10080,1);
       double p11_w=ZZPeak(10080,2);
       double p2_w=ZZPeak(10080,3);
       double p22_w=ZZPeak(10080,4);
       double p3_w=ZZPeak(10080,5);
       double p33_w=ZZPeak(10080,6);
       double p4_w=ZZPeak(10080,7);
       double p44_w=ZZPeak(10080,8);
       double p5_w=ZZPeak(10080,9);
       double p55_w=ZZPeak(10080,10);
             
       if (p1_w>p11_w){h1_w=p1_w;l1_w=p11_w;}
       if (p1_w<p11_w){h1_w=p11_w;l1_w=p1_w;}
       
       if (p2_w>p22_w){h2_w=p2_w;l2_w=p22_w;}
       if (p2_w<p22_w){h2_w=p22_w;l2_w=p2_w;}
       
       if (p3_w>p33_w){h3_w=p3_w;l3_w=p33_w;}
       if (p3_w<p33_w){h3_w=p33_w;l3_w=p3_w;}
       
       if (p4_w>p44_w){h4_w=p4_w;l4_w=p44_w;}
       if (p4_w<p44_w){h5_w=p44_w;l4_w=p4_w;}
       
       if (p5_w>p55_w){h5_w=p5_w;l5_w=p55_w;}
       if (p5_w<p55_w){h5_w=p55_w;l5_w=p5_w;}
    }
    
    /*if(Monthly==Enable){//zigzag highs and lows for Monthly chart and adding Suffix *_mo* to varibal names to distinquish from other frames's values.
       double p1_mo=ZZPeak(43200,1);
       double p11_mo=ZZPeak(43200,2);
       double p2_mo=ZZPeak(43200,3);
       double p22_mo=ZZPeak(43200,4);
       double p3_mo=ZZPeak(43200,5);
       double p33_mo=ZZPeak(43200,6);
       double p4_mo=ZZPeak(43200,7);
       double p44_mo=ZZPeak(43200,8);
       double p5_mo=ZZPeak(43200,9);
       double p55_mo=ZZPeak(43200,10);
             
       if (p1_mo>p11_mo){h1_mo=p1_mo;l1_mo=p11_mo;}
       if (p1_mo<p11_mo){h1_mo=p11_mo;l1_mo=p1_mo;}
       
       if (p2_mo>p22_mo){h2_mo=p2_mo;l2_mo=p22_mo;}
       if (p2_mo<p22_mo){h2_mo=p22_mo;l2_mo=p2_mo;}
       
       if (p3_mo>p33_mo){h3_mo=p3_mo;l3_mo=p33_mo;}
       if (p3_mo<p33_mo){h3_mo=p33_mo;l3_mo=p3_mo;}
       
       if (p4_mo>p44_mo){h4_mo=p4_mo;l4_d=p44_mo;}
       if (p4_mo<p44_mo){h5_mo=p44_mo;l4_d=p4_mo;}
       
       if (p5_mo>p55_mo){h5_mo=p5_mo;l5_mo=p55_mo;}
       if (p5_mo<p55_mo){h5_mo=p55_mo;l5_mo=p5_mo;}
    }*/
       return(rates_total);
      }
    //+------------------------------------------------------------------+
    
    double ZZPeak(int TimeFrame, int shift) {
       bool signal=false;
       double gd_result=0;
       double gd_peak[];
       ArrayResize(gd_peak,shift+1);
       ArrayInitialize(gd_peak,0);
          int found=0;
          int c=0;
          while(found<shift+1){ 
             double zig = iCustom(NULL, TimeFrame, "ZigZag", InpDepth, InpDeviation, InpBackstep, 0, c);
             if(zig !=EMPTY_VALUE &&  zig !=0) { gd_peak[found]=zig; found++; }
             c++;
          }
       return(NormalizeDouble(gd_peak[shift],Digits));
    }
    آخر تعديل بواسطة rain_man ، 16-01-2020 الساعة 05:18 AM

  13. #9778
    الصورة الرمزية chAmine
    chAmine غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Apr 2018
    الإقامة
    فرنسا
    المشاركات
    14

    Smile

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

    ممكن كود يحسب مجموع الخسارة لكل صفقتين خاسرة بصفة متتالية في المتغير X وجمع كل هده الخسارة (القيمة المطلقة) في متغير Y بصفة متزايدة

    كود:
    double xloss(){
      double maxprofit,profit;
       
    
      for(int ii=0;ii<=OrdersHistoryTotal();ii++){
      OrderSelect(ii,SELECT_BY_POS,MODE_HISTORY);
      if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() && OrderProfit()<0 )
        a1=OrderProfit();
     }  
    for(int i2=0;i2<=OrdersHistoryTotal()-2;i2++){
      OrderSelect(i2,SELECT_BY_POS,MODE_HISTORY);
      if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() &&  OrderProfit()<0 )
         
      a2=OrderProfit();
     }  
           
       double balance1=0;
        if (a1<0 && a2<0 )x=a1*(-1)+a2*(-1);
         y+=x;
    
         
       return(y);
    
     }
    شكرا مسبقا

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة rain_man مشاهدة المشاركة
    يوجد كود اخر صممته بنفسي لتحديد اخر 5 قمم و 5 قيعان لكل فريم على حده ولكن مع كثرة المتغيرات اصبح الكود يهنج المنصة ولا يعمل ارجو اذا كان يوجد طريقة افضل لكتابته فيكون مختصرا ويعمل بشكل سريع..قمت بتخزين اخر 10 قيم من الدالة وبعد ذلك قمت بالمقارنة بين كل قيمة والتي تسبقها حتى احدد ايهما هو الهاي والاخر اللو ثم قمت بتكرار الكود لجميع الفريمات لاني احيانا احتاج مثلا 5 قمم و5 قيعان لفريم 5 دقائق وربع ساعة في نفس الوقت من نفس الشارت و احيانا كل الفريمات.
    كود:
    #property copyright "Copyright 2020, MetaQuotes Software Corp."
    #property link      "https://www.mql5.com"
    #property version   "1.00"
    #property strict
    #property indicator_chart_window
     
    input int InpDepth=12;     // Depth
    input int InpDeviation=5;  // Deviation
    input int InpBackstep=3;   // Backstep
     
    enum Switch{Enable,Disable}; 
    extern Switch Current_Time_Frame=Disable;
    extern Switch M1=Disable;
    extern Switch M5=Disable;
    extern Switch M15=Disable;
    extern Switch M30=Disable;
    extern Switch H1=Disable;
    extern Switch H4=Disable;
    extern Switch Daily=Disable;
    extern Switch Weekly=Disable;
    //extern Switch Monthly=Disable;
     
     
    double p1,p2,p3,p4,p5,
    p11,p22,p33,p44,p55,
    h1,h2,h3,h4,h5,//h1=high1--h2=high2 and the rest
    l1,l2,l3,l4,l5,//l1=low1--l2=low2 and the rest
    //----------------------------
    h1_m1,h2_m1,h3_m1,h4_m1,h5_m1,//  1 Minute chart Highes
    l1_m1,l2_m1,l3_m1,l4_m1,l5_m1,//  1 Minute chart lows
    //---------------------------------
    h1_m5,h2_m5,h3_m5,h4_m5,h5_m5,//  5 Minutes chart Highes 
    l1_m5,l2_m5,l3_m5,l4_m5,l5_m5,//  5 Minutes chart lows
    //---------------------------------
    h1_m15,h2_m15,h3_m15,h4_m15,h5_m15,//  15 Minutes chart Highes
    l1_m15,l2_m15,l3_m15,l4_m15,l5_m15,//  15 Minutes chart lows
    //---------------------------------
    h1_m30,h2_m30,h3_m30,h4_m30,h5_m30,//  30 Minutes chart Highes
    l1_m30,l2_m30,l3_m30,l4_m30,l5_m30,//  30 Minutes chart lows
    //---------------------------------
    h1_h1,h2_h1,h3_h1,h4_h1,h5_h1,//  1 Houre chart Highes
    l1_h1,l2_h1,l3_h1,l4_h1,l5_h1,//  1 Houre chart lows
    //---------------------------------
    h1_h4,h2_h4,h3_h4,h4_h4,h5_h4,//  4 Houres chart Highes
    l1_h4,l2_h4,l3_h4,l4_h4,l5_h4,//  4 Houres chart lows
    //---------------------------------
    h1_d,h2_d,h3_d,h4_d,h5_d,//   Daily chart Highes
    l1_d,l2_d,l3_d,l4_d,l5_d,//   Daily chart lows
    //---------------------------------
    h1_w,h2_w,h3_w,h4_w,h5_w,//   Weekly chart Highes
    l1_w,l2_w,l3_w,l4_w,l5_w;//   Weekly chart lows
    //---------------------------------
    //h1_mo,h2_mo,h3_mo,h4_mo,h5_mo, //   Monthly chart Highes
    //l1_mo,l2_mo,l3_mo,l4_mo,l5_mo; //   Monthly chart lows
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int OnInit()
      {
    //--- indicator buffers mapping
       
    //---
       return(INIT_SUCCEEDED);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
    int OnCalculate(const int rates_total,
                    const int prev_calculated,
                    const datetime &time[],
                    const double &open[],
                    const double &high[],
                    const double &low[],
                    const double &close[],
                    const long &tick_volume[],
                    const long &volume[],
                    const int &spread[])
      {
    //---
    if(Current_Time_Frame==Enable)
    {
    p1=ZZPeak(0,1);
       p11=ZZPeak(0,2);
       p2=ZZPeak(0,3);
       p22=ZZPeak(0,4);
       p3=ZZPeak(0,5);
       p33=ZZPeak(0,6);
       p4=ZZPeak(0,7);
       p44=ZZPeak(0,8);
       p5=ZZPeak(0,9);
       p55=ZZPeak(0,10);
       
       if (p1>p11){h1=p1;l1=p11;}
       if (p1<p11){h1=p11;l1=p1;}
       
       if (p2>p22){h2=p2;l2=p22;}
       if (p2<p22){h2=p22;l2=p2;}
       
       if (p3>p33){h3=p3;l3=p33;}
       if (p3<p33){h3=p33;l3=p3;}
       
       if (p4>p44){h4=p4;l4=p44;}
       if (p4<p44){h5=p44;l4=p4;}
       
       if (p5>p55){h5=p5;l5=p55;}
       if (p5<p55){h5=p55;l5=p5;}
    }
     
    if(M1==Enable){//zigzag highs and lows for 1 Minute chart and adding Suffix *_m1* to varibal names to distinquish from other frames's values.
       double p1_m1=ZZPeak(1,1);
       double p11_m1=ZZPeak(1,2);
       double p2_m1=ZZPeak(1,3);
       double p22_m1=ZZPeak(1,4);
       double p3_m1=ZZPeak(1,5);
       double p33_m1=ZZPeak(1,6);
       double p4_m1=ZZPeak(1,7);
       double p44_m1=ZZPeak(1,8);
       double p5_m1=ZZPeak(1,9);
       double p55_m1=ZZPeak(1,10);
     
       if (p1_m1>p11_m1){h1_m1=p1_m1;l1_m1=p11_m1;}
       if (p1_m1<p11_m1){h1_m1=p11_m1;l1_m1=p1_m1;}
       
       if (p2_m1>p22_m1){h2_m1=p2_m1;l2_m1=p22_m1;}
       if (p2_m1<p22_m1){h2_m1=p22_m1;l2_m1=p2_m1;}
       
       if (p3_m1>p33_m1){h3_m1=p3_m1;l3_m1=p33_m1;}
       if (p3_m1<p33_m1){h3_m1=p33_m1;l3_m1=p3_m1;}
       
       if (p4_m1>p44_m1){h4_m1=p4_m1;l4_m1=p44_m1;}
       if (p4_m1<p44_m1){h5_m1=p44_m1;l4_m1=p4_m1;}
       
       if (p5_m1>p55_m1){h5_m1=p5_m1;l5_m1=p55_m1;}
       if (p5_m1<p55_m1){h5_m1=p55_m1;l5_m1=p5_m1;}
    }
     
    if(M5==Enable){//zigzag highs and lows for 5 Minute chart and adding Suffix *_m5* to varibal names to distinquish from other frames's values.
       double p1_m5=ZZPeak(5,1);
       double p11_m5=ZZPeak(5,2);
       double p2_m5=ZZPeak(5,3);
       double p22_m5=ZZPeak(5,4);
       double p3_m5=ZZPeak(5,5);
       double p33_m5=ZZPeak(5,6);
       double p4_m5=ZZPeak(5,7);
       double p44_m5=ZZPeak(5,8);
       double p5_m5=ZZPeak(5,9);
       double p55_m5=ZZPeak(5,10);
       
       if (p1_m5>p11_m5){h1_m5=p1_m5;l1_m5=p11_m5;}
       if (p1_m5<p11_m5){h1_m5=p11_m5;l1_m5=p1_m5;}
       
       if (p2_m5>p22_m5){h2_m5=p2_m5;l2_m5=p22_m5;}
       if (p2_m5<p22_m5){h2_m5=p22_m5;l2_m5=p2_m5;}
       
       if (p3_m5>p33_m5){h3_m5=p3_m5;l3_m5=p33_m5;}
       if (p3_m5<p33_m5){h3_m5=p33_m5;l3_m5=p3_m5;}
       
       if (p4_m5>p44_m5){h4_m5=p4_m5;l4_m5=p44_m5;}
       if (p4_m5<p44_m5){h5_m5=p44_m5;l4_m5=p4_m5;}
       
       if (p5_m5>p55_m5){h5_m5=p5_m5;l5_m5=p55_m5;}
       if (p5_m5<p55_m5){h5_m5=p55_m5;l5_m5=p5_m5;}
    }
     
     
    if(M15==Enable){//zigzag highs and lows for 15 Minute chart and adding Suffix *_m15* to varibal names to distinquish from other frames's values.
       double p1_m15=ZZPeak(15,1);
       double p11_m15=ZZPeak(15,2);
       double p2_m15=ZZPeak(15,3);
       double p22_m15=ZZPeak(15,4);
       double p3_m15=ZZPeak(15,5);
       double p33_m15=ZZPeak(15,6);
       double p4_m15=ZZPeak(15,7);
       double p44_m15=ZZPeak(15,8);
       double p5_m15=ZZPeak(15,9);
       double p55_m15=ZZPeak(15,10);
       
       if (p1_m15>p11_m15){h1_m15=p1_m15;l1_m15=p11_m15;}
       if (p1_m15<p11_m15){h1_m15=p11_m15;l1_m15=p1_m15;}
       
       if (p2_m15>p22_m15){h2_m15=p2_m15;l2_m15=p22_m15;}
       if (p2_m15<p22_m15){h2_m15=p22_m15;l2_m15=p2_m15;}
       
       if (p3_m15>p33_m15){h3_m15=p3_m15;l3_m15=p33_m15;}
       if (p3_m15<p33_m15){h3_m15=p33_m15;l3_m15=p3_m15;}
       
       if (p4_m15>p44_m15){h4_m15=p4_m15;l4_m15=p44_m15;}
       if (p4_m15<p44_m15){h5_m15=p44_m15;l4_m15=p4_m15;}
       
       if (p5_m15>p55_m15){h5_m15=p5_m15;l5_m15=p55_m15;}
       if (p5_m15<p55_m15){h5_m15=p55_m15;l5_m15=p5_m15;}
    }
     
    if(M30==Enable){//zigzag highs and lows for 30 Minute chart and adding Suffix *_m30* to varibal names to distinquish from other frames's values.
       double p1_m30=ZZPeak(30,1);
       double p11_m30=ZZPeak(30,2);
       double p2_m30=ZZPeak(30,3);
       double p22_m30=ZZPeak(30,4);
       double p3_m30=ZZPeak(30,5);
       double p33_m30=ZZPeak(30,6);
       double p4_m30=ZZPeak(30,7);
       double p44_m30=ZZPeak(30,8);
       double p5_m30=ZZPeak(30,9);
       double p55_m30=ZZPeak(30,10);
       
       if (p1_m30>p11_m30){h1_m30=p1_m30;l1_m30=p11_m30;}
       if (p1_m30<p11_m30){h1_m30=p11_m30;l1_m30=p1_m30;}
       
       if (p2_m30>p22_m30){h2_m30=p2_m30;l2_m30=p22_m30;}
       if (p2_m30<p22_m30){h2_m30=p22_m30;l2_m30=p2_m30;}
       
       if (p3_m30>p33_m30){h3_m30=p3_m30;l3_m30=p33_m30;}
       if (p3_m30<p33_m30){h3_m30=p33_m30;l3_m30=p3_m30;}
       
       if (p4_m30>p44_m30){h4_m30=p4_m30;l4_m30=p44_m30;}
       if (p4_m30<p44_m30){h5_m30=p44_m30;l4_m30=p4_m30;}
       
       if (p5_m30>p55_m30){h5_m30=p5_m30;l5_m30=p55_m30;}
       if (p5_m30<p55_m30){h5_m30=p55_m30;l5_m30=p5_m30;}
    }
     
    if(H1==Enable){//zigzag highs and lows for 1 Houre chart and adding Suffix *_H1* to varibal names to distinquish from other frames's values.
       double p1_h1=ZZPeak(60,1);
       double p11_h1=ZZPeak(60,2);
       double p2_h1=ZZPeak(60,3);
       double p22_h1=ZZPeak(60,4);
       double p3_h1=ZZPeak(60,5);
       double p33_h1=ZZPeak(60,6);
       double p4_h1=ZZPeak(60,7);
       double p44_h1=ZZPeak(60,8);
       double p5_h1=ZZPeak(60,9);
       double p55_h1=ZZPeak(60,10);
       
       if (p1_h1>p11_h1){h1_h1=p1_h1;l1_h1=p11_h1;}
       if (p1_h1<p11_h1){h1_h1=p11_h1;l1_h1=p1_h1;}
       
       if (p2_h1>p22_h1){h2_h1=p2_h1;l2_h1=p22_h1;}
       if (p2_h1<p22_h1){h2_h1=p22_h1;l2_h1=p2_h1;}
       
       if (p3_h1>p33_h1){h3_h1=p3_h1;l3_h1=p33_h1;}
       if (p3_h1<p33_h1){h3_h1=p33_h1;l3_h1=p3_h1;}
       
       if (p4_h1>p44_h1){h4_h1=p4_h1;l4_h1=p44_h1;}
       if (p4_h1<p44_h1){h5_h1=p44_h1;l4_h1=p4_h1;}
       
       if (p5_h1>p55_h1){h5_h1=p5_h1;l5_h1=p55_h1;}
       if (p5_h1<p55_h1){h5_h1=p55_h1;l5_h1=p5_h1;}
    }
     
    if(H4==Enable){//zigzag highs and lows for 4 Houre chart and adding Suffix *_H4* to varibal names to distinquish from other frames's values.
       double p1_h4=ZZPeak(240,1);
       double p11_h4=ZZPeak(240,2);
       double p2_h4=ZZPeak(240,3);
       double p22_h4=ZZPeak(240,4);
       double p3_h4=ZZPeak(240,5);
       double p33_h4=ZZPeak(240,6);
       double p4_h4=ZZPeak(240,7);
       double p44_h4=ZZPeak(240,8);
       double p5_h4=ZZPeak(240,9);
       double p55_h4=ZZPeak(240,10);
          
       if (p1_h4>p11_h4){h1_h4=p1_h4;l1_h4=p11_h4;}
       if (p1_h4<p11_h4){h1_h4=p11_h4;l1_h4=p1_h4;}
       
       if (p2_h4>p22_h4){h2_h4=p2_h4;l2_h4=p22_h4;}
       if (p2_h4<p22_h4){h2_h4=p22_h4;l2_h4=p2_h4;}
       
       if (p3_h4>p33_h4){h3_h4=p3_h4;l3_h4=p33_h4;}
       if (p3_h4<p33_h4){h3_h4=p33_h4;l3_h4=p3_h4;}
       
       if (p4_h4>p44_h4){h4_h4=p4_h4;l4_h4=p44_h4;}
       if (p4_h4<p44_h4){h5_h4=p44_h4;l4_h4=p4_h4;}
       
       if (p5_h4>p55_h4){h5_h4=p5_h4;l5_h4=p55_h4;}
       if (p5_h4<p55_h4){h5_h4=p55_h4;l5_h4=p5_h4;}
    }
     
    if(Daily==Enable){//zigzag highs and lows for Daily chart and adding Suffix *_d* to varibal names to distinquish from other frames's values.
       double p1_d=ZZPeak(1440,1);
       double p11_d=ZZPeak(1440,2);
       double p2_d=ZZPeak(1440,3);
       double p22_d=ZZPeak(1440,4);
       double p3_d=ZZPeak(1440,5);
       double p33_d=ZZPeak(1440,6);
       double p4_d=ZZPeak(1440,7);
       double p44_d=ZZPeak(1440,8);
       double p5_d=ZZPeak(1440,9);
       double p55_d=ZZPeak(1440,10);
          
       if (p1_d>p11_d){h1_d=p1_d;l1_d=p11_d;}
       if (p1_d<p11_d){h1_d=p11_d;l1_d=p1_d;}
       
       if (p2_d>p22_d){h2_d=p2_d;l2_d=p22_d;}
       if (p2_d<p22_d){h2_d=p22_d;l2_d=p2_d;}
       
       if (p3_d>p33_d){h3_d=p3_d;l3_d=p33_d;}
       if (p3_d<p33_d){h3_d=p33_d;l3_d=p3_d;}
       
       if (p4_d>p44_d){h4_d=p4_d;l4_d=p44_d;}
       if (p4_d<p44_d){h5_d=p44_d;l4_d=p4_d;}
       
       if (p5_d>p55_d){h5_d=p5_d;l5_d=p55_d;}
       if (p5_d<p55_d){h5_d=p55_d;l5_d=p5_d;}
    }
     
    if(Weekly==Enable){//zigzag highs and lows for Weekly chart and adding Suffix *_w* to varibal names to distinquish from other frames's values.
       double p1_w=ZZPeak(10080,1);
       double p11_w=ZZPeak(10080,2);
       double p2_w=ZZPeak(10080,3);
       double p22_w=ZZPeak(10080,4);
       double p3_w=ZZPeak(10080,5);
       double p33_w=ZZPeak(10080,6);
       double p4_w=ZZPeak(10080,7);
       double p44_w=ZZPeak(10080,8);
       double p5_w=ZZPeak(10080,9);
       double p55_w=ZZPeak(10080,10);
             
       if (p1_w>p11_w){h1_w=p1_w;l1_w=p11_w;}
       if (p1_w<p11_w){h1_w=p11_w;l1_w=p1_w;}
       
       if (p2_w>p22_w){h2_w=p2_w;l2_w=p22_w;}
       if (p2_w<p22_w){h2_w=p22_w;l2_w=p2_w;}
       
       if (p3_w>p33_w){h3_w=p3_w;l3_w=p33_w;}
       if (p3_w<p33_w){h3_w=p33_w;l3_w=p3_w;}
       
       if (p4_w>p44_w){h4_w=p4_w;l4_w=p44_w;}
       if (p4_w<p44_w){h5_w=p44_w;l4_w=p4_w;}
       
       if (p5_w>p55_w){h5_w=p5_w;l5_w=p55_w;}
       if (p5_w<p55_w){h5_w=p55_w;l5_w=p5_w;}
    }
     
    /*if(Monthly==Enable){//zigzag highs and lows for Monthly chart and adding Suffix *_mo* to varibal names to distinquish from other frames's values.
       double p1_mo=ZZPeak(43200,1);
       double p11_mo=ZZPeak(43200,2);
       double p2_mo=ZZPeak(43200,3);
       double p22_mo=ZZPeak(43200,4);
       double p3_mo=ZZPeak(43200,5);
       double p33_mo=ZZPeak(43200,6);
       double p4_mo=ZZPeak(43200,7);
       double p44_mo=ZZPeak(43200,8);
       double p5_mo=ZZPeak(43200,9);
       double p55_mo=ZZPeak(43200,10);
             
       if (p1_mo>p11_mo){h1_mo=p1_mo;l1_mo=p11_mo;}
       if (p1_mo<p11_mo){h1_mo=p11_mo;l1_mo=p1_mo;}
       
       if (p2_mo>p22_mo){h2_mo=p2_mo;l2_mo=p22_mo;}
       if (p2_mo<p22_mo){h2_mo=p22_mo;l2_mo=p2_mo;}
       
       if (p3_mo>p33_mo){h3_mo=p3_mo;l3_mo=p33_mo;}
       if (p3_mo<p33_mo){h3_mo=p33_mo;l3_mo=p3_mo;}
       
       if (p4_mo>p44_mo){h4_mo=p4_mo;l4_d=p44_mo;}
       if (p4_mo<p44_mo){h5_mo=p44_mo;l4_d=p4_mo;}
       
       if (p5_mo>p55_mo){h5_mo=p5_mo;l5_mo=p55_mo;}
       if (p5_mo<p55_mo){h5_mo=p55_mo;l5_mo=p5_mo;}
    }*/
       return(rates_total);
      }
    //+------------------------------------------------------------------+
     
    double ZZPeak(int TimeFrame, int shift) {
       bool signal=false;
       double gd_result=0;
       double gd_peak[];
       ArrayResize(gd_peak,shift+1);
       ArrayInitialize(gd_peak,0);
          int found=0;
          int c=0;
          while(found<shift+1){ 
             double zig = iCustom(NULL, TimeFrame, "ZigZag", InpDepth, InpDeviation, InpBackstep, 0, c);
             if(zig !=EMPTY_VALUE &&  zig !=0) { gd_peak[found]=zig; found++; }
             c++;
          }
       return(NormalizeDouble(gd_peak[shift],Digits));
    }
    الكود صحيح لكن فكرة البحث في جميع الفريمات يستغرق وقت وهو ما يجعل المؤشر ثقيل على الشارت
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

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

    ممكن كود يحسب مجموع الخسارة لكل صفقتين خاسرة بصفة متتالية في المتغير X وجمع كل هده الخسارة (القيمة المطلقة) في متغير Y بصفة متزايدة

    كود:
    double xloss(){
      double maxprofit,profit;
       
     
      for(int ii=0;ii<=OrdersHistoryTotal();ii++){
      OrderSelect(ii,SELECT_BY_POS,MODE_HISTORY);
      if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() && OrderProfit()<0 )
        a1=OrderProfit();
     }  
    for(int i2=0;i2<=OrdersHistoryTotal()-2;i2++){
      OrderSelect(i2,SELECT_BY_POS,MODE_HISTORY);
      if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() &&  OrderProfit()<0 )
         
      a2=OrderProfit();
     }  
           
       double balance1=0;
        if (a1<0 && a2<0 )x=a1*(-1)+a2*(-1);
         y+=x;
     
         
       return(y);
     
     }
    شكرا مسبقا
    وعليكم السلام ورحمة الله وبركاته
    وضح أكثر أخي استفسارك بمثال
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

  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