النتائج 1 إلى 14 من 14

الموضوع: اندماج

  1. #1
    الصورة الرمزية 2013Lemsantah
    2013Lemsantah غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2016
    الإقامة
    الجزائر
    المشاركات
    229

    افتراضي اندماج



    سؤال للاخوة المبرمجين ماهي افضل النقاط المشتركة بين التحليل الاساسي والتحليل الفني ارجو الافادة هل في امكانية الدمج ويا ريت اقتراحات او افكار مثلا مؤشر فني مع الاخبار او................................?
    آخر تعديل بواسطة 2013Lemsantah ، 30-01-2017 الساعة 06:45 PM
    توقيع العضو
    سبحانك اللهم و بحمدك سبحان الله العظيم

  2. #2
    الصورة الرمزية 2013Lemsantah
    2013Lemsantah غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2016
    الإقامة
    الجزائر
    المشاركات
    229

    افتراضي


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

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

    افتراضي

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

    ممكن اننا نبرمج اكسبيرت يفتح اومره بناء على الاجندة الاقتصادية وتوقعاتها وتحليلاتها والاستعانة بمؤشر للفلترة لتاكيد فتح وغلق الاوامر
    سؤال :ما هو نوع الملفات الذي يمكن ان احمل به الاجندة واتعامل معها بدون اشكاليات كثيرة
    وعليكم السلام ورحمة الله وبركاته
    المؤشرات التي تستخدم موقع forexfactory لتحميل الأخبار تستخدم اللينك
    http://www.forexfactory.com/ffcal_week_this.xml

    وهو من نوع xml file

  4. #4
    الصورة الرمزية 2013Lemsantah
    2013Lemsantah غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2016
    الإقامة
    الجزائر
    المشاركات
    229

    افتراضي

    السلام عليكم
    مشكور استاذي عل المرور المؤشر الموصوف نزلته بس المشكل انو يعطيني نتائج السابق والمتوقع وانا اريد مع السابق والمتوقع نتائج الفعلي لكي يستطيع الاكسبرت التصرف بعد صدور الخبر وجدت مؤشر يعمل مع موقع دايليhttps://www.mql5.com/pt/articles/1502 لكن لا يحمل الاجندة وهي بصيغة html ارجو المساعدة ولو عندك اكسبرت يعمل على الاخبار ممكن استفيد من افكارو اكون ممنونلك
    آخر تعديل بواسطة 2013Lemsantah ، 02-02-2017 الساعة 12:26 AM
    توقيع العضو
    سبحانك اللهم و بحمدك سبحان الله العظيم

  5. #5
    الصورة الرمزية 2013Lemsantah
    2013Lemsantah غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2016
    الإقامة
    الجزائر
    المشاركات
    229

    افتراضي


    لدي سؤال استاذ من اي مصدر تواخذ نتائج الاجندة الاقتصادية ,لانني وجدتها متشابهة في عديد من المواقع
    بالنسبة لطلبي اكسبيرت الاخبار ما انا الا مبتدا وبحكم خبرتك في السوق ارجو المساعدة
    اليوم تعرفت على الوظيفة web request ارجو منك ان تفسرها قليلا
    توقيع العضو
    سبحانك اللهم و بحمدك سبحان الله العظيم

  6. #6
    الصورة الرمزية 2013Lemsantah
    2013Lemsantah غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2016
    الإقامة
    الجزائر
    المشاركات
    229

    افتراضي


    الاستاذ الكبير مستر اسامة ارجو ان يلقى خطابي هذا اذن تسغاه
    لقد بدات في برمجة الخبير الذي يندمج فيه التحليل الاساسي مع التحليل الفني وجدت صعوبة في تحميل البيانات ومعالجتها حتى اني تهت عن الدمج وركزت على موضوع الاخبار وجدت اشكالية في نوع الملفات ففي الملفات من نوع csv xml فهي غير متجددة اي عند خروج الخبر لا يستطيع الاكسبيرت التعامل معه وبالتالي وجدت نفسي مضطر للتعامل مع ملفات html التي تعرض مواقع الويب
    وبعد بحث وجدت الوظيفة web request التي من خلالها استطعت ان احمل البيانات من اي موقع وجدتني في تحدي اخر وهو لغة html المهم بعد جهد سهر توصلت الى تحميل البيانات تاريخ ووقت وعنوان الخبروالسابق والمتوقع والفعلي بعد صدور الخبر
    جاء وقت التعامل مع الخبر وبدا البحث وجدت محاولة في منتدى اجنبي واختصار للوقت اسقطتها على الاكسبيرت
    واجهت مشكل التوقيت بحيث ان المنصات التوقيت بينها وبين التوقيت المحلي يجب ان يعدل من الاعدادات
    كي لا اطيل عليك هاهي المحاولة محتاجة سقل من طرف خبير
    كنت قدقرات في المنتدى موضوع للاخبار في هذا الرابطhttp://https://forum.arabictrader.co...ml#post1552802
    ارجو ان تسقطها على الموضوع
    كود PHP:
    //+------------------------------------------------------------------+
    //|                                             تداول على الاخبار.mq4 |
    //|        Copyright 2016, MetaQuotes Software Corp.AZZEDDINE REMMAL |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2017.AZZEDDINE REMMAL"
    #property link      "https://[email protected]"
    #property version   "1.00"
    #property strict

    // تحديد بنية الحدث
    struct EVENTS
    {
       
    string   actual;
       
    string   forecast;
       
    string   previous;
       
    string   time;
       
    string   title;
       
    string   currency;
       
    bool     displayed;
    };

    #define     MaxDailyEvents    20       // إذا كنت تعتقد سيكون لديك أكثر من 20 حدثا تأثير عالية، وزيادة هذا العدد.
    EVENTS      DailyEvents[MaxDailyEvents];

    input bool enable_news_order_hedging=true;//تفعيل هيدج الاخبار
    input int Event_xTime=27//الوقت لEA الانتظار للحصول على الأخبار التي ستصدر
    input int MagicNumber=15041978;                    
    input bool enable_close_time=false//   تفعيل الاغلاق بعدمدة الانتظار             
    input int wait_time=20;   //مدة الانتظار                        
    //إعداد المخاطر والمكافآت 
    input int risk=20;  //  المخاطرة                             
    input int reward=3;  //المكافاة الرقم المظروب في المخاطرة
    //يتم الافراج مواصفات خارجية الدنيا الكثير للتجارة والكثير القصوى للتداول في الأحداث الإخبارية
    input double lot1=0.01;input double lot2=0.02;input double lot3=0.03;input double lot4=0.04;
    input double lot5=0.05;input double lot6=0.06;input double lot7=0.07;input double lot8=0.08;
    input double lot9=0.09;input double lot10=0.10;input double lot11=0.20;input double lot12=0.30;
    input double lot13=0.40;input double lot14=0.50;input double lot15=0.60;input double lot16=0.70;
    input double lot17=0.80;input double lot18=0.90;
    //نهاية مواصفات الكثير
    datetime OrderTime=0;
    int   ticket;



    //+------------------------------------------------------------------+
    //| Expert initialization function                                   |
    //+------------------------------------------------------------------+
    int OnInit()
    {
      
       
    // الحصول على أحداث اليوم
       
    GetHighImpactEvents();
       
       return(
    INIT_SUCCEEDED);
    }

    //+------------------------------------------------------------------+
    //|   وظيفة deinitialization الخبراء                                 |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
    {
       
    ObjectsDeleteAll();
    }


    //+------------------------------------------------------------------+
    //|استخراج عنصر HTML
    //+------------------------------------------------------------------+
    string   GetHTMLElement(string HTMLstring ElementStartstring ElementEnd)
    {
       
    string   data NULL;
       
       
    // البحث عن بداية ونهاية الموقف لعنصر
       
    int s StringFind(HTMLElementStart) + StringLen(ElementStart);
       
    int e StringFind(StringSubstr(HTMLs), ElementEnd);
       
       
    // محتوى العنصر عودة
       
    if(!= 0data StringSubstr(HTMLse);
       return(
    data);
    }

    //+------------------------------------------------------------------+
    //| احصل على الأحداث ذات التأثير الكبير اليوم من ForexFactory.com
    //+------------------------------------------------------------------+
    bool  GetHighImpactEvents()
    {
       
    string   cookie=NULLheadersHTML;
       
    string   url="http://www.forexfactory.com/calendar.php?day=";
       
    string  time NULLlasttime NULLcurrencyimpacttitle,actual,forecast,previous;
       
    char     post[], result[];
       
    int      rescntr 0timeout 5000;

       
    // إذا حاليا، مجرد الخروج كما لو كان يقرأ بشكل صحيح
       
    if(!IsConnected() || IsTesting()) return(true);

       
    // واضح بنية الحدث اليومي
       
    for(res 0res MaxDailyEventsres++)
          { 
    DailyEvents[res].time DailyEvents[res].title DailyEvents[cntr].previousDailyEvents[cntr].forecastDailyEvents[cntr].actualDailyEvents[res].currency NULLDailyEvents[res].displayed false; ++res; }
     
       
    // إرسال طلب ويب
       
    url += MthName(Month()) + DoubleToStr(Day(), 0) + "." DoubleToStr(Year(), 0);
       
    ResetLastError();
       
    res WebRequest("GET"urlcookieNULLtimeoutpost0resultheaders);

       
    //تحقق من وجود أخطاء
       
    if(res == -1)
       {
          Print(
    "Error in WebRequest. Error code = "GetLastError());
          
    MessageBox("Add the address 'http://forexfactory.com/' in the\nlist of allowed URLs on tab 'Expert Advisors'""Error"MB_ICONINFORMATION);
       }
       else
       {
         
         
    //--- ناجح تحميل
          
    PrintFormat("File successfully downloaded, the file size in bytes  =%d.",ArraySize(result)); 
          
    //--- حفظ البيانات في ملف
          
    int filehandle=FileOpen("news-forexfactory.html",FILE_WRITE|FILE_BIN);
          
    //---  
          
    if(filehandle!=INVALID_HANDLE)
            {
             
    //---حفظ محتويات المصفوفة ينتج [] في ملف
             
    FileWriteArray(filehandle,result,0,ArraySize(result));
             
    //--- إغلاق الملف
             
    FileClose(filehandle);

             
    int filehandle2=FileOpen("news-forexfactory.html",FILE_READ|FILE_BIN);
             
    HTML=FileReadString(filehandle2,ArraySize(result));
              
    FileClose(filehandle2);
            }else{
             Print(
    "Error in FileOpen. Error code =",GetLastError());
            } 
      
          
    // تحويل صفيف حرف إلى سلسلة
          
    HTML CharArrayToString(result);

          
    // التقويم تحميل، تأكد من انها لتاريخ اليوم
          
    int i StringFind(HTML"<span class=\"date\">");
          if(
    == -1) return(false);
          
    HTML StringSubstr(HTMLi);
          
    string date GetHTMLElement(HTML"<span>""</span>");
          if(
    date != MthName(Month()) + " " DoubleToStr(Day(), 0)) return(false);

          
    // الآن الحصول على صفوف الجدول لكل حدث
          
    lasttime NULL;
          
    date DoubleToStr(Year(), 0) + "." DoubleToStr(Month(), 0) + "." DoubleToStr(Day(), 0) + " ";
          do
          {
             
    // الحصول على معلومات الحدث
             
    time GetHTMLElement(HTML"<td class=\"calendar__cell calendar__time time\">""</td>");
             if(
    StringFind(time"<a name=\"upnext\"") == 0time GetHTMLElement(time"class=\"upnext\">""</span>");
             if(
    StringLen(time) != 0lasttime time;
             if(
    StringLen(time) == 0time lasttime

             
    // إذا كان الوقت قد 'مساء' فيه، إضافة 12 ساعة. StrToTime يفهم فقط على مدار الساعة 24 ساعة.
             
    if(StringFind(time"pm") != -1time TimeToStr(StrToTime(time) + (12*60*60));
             
    time date time;

             
    // الحصول على عناصر أخرى نحتاج
                    
             
    currency GetHTMLElement(HTML"<td class=\"calendar__cell calendar__currency currency\">""</td>");
             
    impact GetHTMLElement(HTML"<span title=\"""\" class=\"");
             
    StringFind(impact" Impact");
             if(
    != -1impact StringSubstr(impact0i);
             
    title GetHTMLElement(HTML"\"calendar__event-title\">""</span>");
             
    previous GetHTMLElement(HTML"<td class=\"calendar__cell calendar__previous previous\">""</td>");
             
    forecast GetHTMLElement(HTML"<td class=\"calendar__cell calendar__forecast forecast\">""</td>");
             
    actual GetHTMLElement(HTML"<td class=\"calendar__cell calendar__actual actual\">""</td>");
            
    // هل هذا الحدث تأثير كبير لزوج العملة الخاصة بي؟
             
    if(StringFind(Symbol(),currency) != -&&( impact == "High"))
             {
                
    //إضافة إلى بنية الحدث اليومي
                
    DailyEvents[cntr].displayed false;
                
    DailyEvents[cntr].time time;
                
    DailyEvents[cntr].title title;
                
    DailyEvents[cntr].previous previous;
                
    DailyEvents[cntr].forecast forecast;
                
    DailyEvents[cntr].actual actual;
                
    DailyEvents[cntr++].currency currency;
             }
              
           
             
    // قطع سلسلة HTML إلى الصف التالي في الجدول
             
    StringFind(HTML"</tbody> </table> </td> </tr> ");
             if(
    != -1HTML StringSubstr(HTMLi+30);
             if(
    StringFind(HTML"</table> <div class=\"foot\">") == 0= -1;
          } while(
    != -|| cntr == MaxDailyEvents);
       }

       
    // عرض الأحداث عالية التأثير، إن وجدت
       
    lasttime NULL;
       for(
    cntr 0cntr MaxDailyEventscntr++)
       {
          if(
    StringLen(DailyEvents[cntr].time) == 0) break;
          
          
    //إنشاء علامة الحدث على الرسم البياني إذا كان السوق الماضي لم نفس الوقت
          
    if(lasttime != DailyEvents[cntr].time)
          {
             
    res cntr;
             if(
    ObjectCreate(0"Event" DoubleToStr(cntr0), OBJ_EVENT0StrToTime(DailyEvents[cntr].time), 0))
             {
                
    ObjectSetString(0"Event" DoubleToStr(cntr0), OBJPROP_TEXTDailyEvents[cntr].title " (" DailyEvents[cntr].currency ")");
                
    ObjectSetInteger(0"Event" DoubleToStr(cntr0), OBJPROP_COLORRed);
                
    ObjectSetInteger(0"Event" DoubleToStr(cntr0), OBJPROP_WIDTH2);
                
    ObjectSetInteger(0"Event" DoubleToStr(cntr0), OBJPROP_BACKtrue);
                
    ObjectSetInteger(0"Event" DoubleToStr(cntr0), OBJPROP_SELECTABLEfalse);
                
    ObjectSetInteger(0"Event" DoubleToStr(cntr0), OBJPROP_SELECTEDfalse);
                
    ObjectSetInteger(0"Event" DoubleToStr(cntr0), OBJPROP_HIDDENtrue);
                
    ObjectSetString(0"Event" DoubleToStr(cntr0), OBJPROP_TOOLTIPDailyEvents[cntr].title " (" DailyEvents[cntr].currency ")");
             }
           
             
    // إنشاء خط عمودي إذا حدث في المستقبل
             
    if(TimeCurrent() < StrToTime(DailyEvents[cntr].time))
             {
             
    Comment("time : ",DailyEvents[cntr].time,
             
    "\n","Currency: ",DailyEvents[cntr].currency,
             
    "\n","title: ",DailyEvents[cntr].title,
            
    "\n","Forecast: ",DailyEvents[cntr].forecast,
             
    "\n","Previous: ",DailyEvents[cntr].previous,               
            
    "\n","Actual: ",DailyEvents[cntr].actual);
               
               
                if(
    ObjectCreate(0"VLine" DoubleToStr(cntr0), OBJ_VLINE0StrToTime(DailyEvents[cntr].time), 0))
                {
                    
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_COLORRed);
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_WIDTH1);
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_BACKtrue);
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_SELECTABLEfalse);
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_SELECTEDfalse);
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_HIDDENtrue);
                   
    ObjectSetString(0"VLine" DoubleToStr(cntr0), OBJPROP_TOOLTIPDailyEvents[cntr].title " (" DailyEvents[cntr].currency ")" +  " (" DailyEvents[cntr].forecast ")"" (" DailyEvents[cntr].previous ")");
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_TIMEFRAMESOBJ_PERIOD_M1 OBJ_PERIOD_M5 OBJ_PERIOD_M15 OBJ_PERIOD_M30 OBJ_PERIOD_H1);
                }
             }
             else
                
    DailyEvents[cntr].displayed true;
          }
          else
          {
             
    title ObjectGetString(0"Event" DoubleToStr(res0), OBJPROP_TOOLTIP);            
             
    title += "\n" DailyEvents[cntr].title " (" DailyEvents[cntr].currency ")";
             
    ObjectSetString(0"Event" DoubleToStr(res0), OBJPROP_TOOLTIPtitle);
             if(
    TimeCurrent() < StrToTime(DailyEvents[cntr].time)) ObjectSetString(0"Vline" DoubleToStr(res0), OBJPROP_TOOLTIPtitle);
          }
          
    lasttime DailyEvents[cntr].time;
       }   
     
       
    // خروج
       
    return(true);
    }
     
            
                     
                  
            
    //+------------------------------------------------------------------+
    //|إرجاع اسم الشهر طويلة أو قصيرة
    //+------------------------------------------------------------------+
    string   MthName(int Mthbool ShortName=true)
    {
       switch(
    Mth)
       {
          case 
    1:
             return((
    ShortName "Jan" "January"));
             break;
          case 
    2:
             return((
    ShortName "Feb" "February"));
             break;
          case 
    3:
             return((
    ShortName "Mar" "March"));
             break;
          case 
    4:
             return((
    ShortName "Apr" "April"));
             break;
          case 
    5:
             return((
    ShortName "May" "May"));
             break;
          case 
    6:
             return((
    ShortName "Jun" "June"));
             break;
          case 
    7:
             return((
    ShortName "Jul" "July"));
             break;
          case 
    8:
             return((
    ShortName "Aug" "August"));
             break;
          case 
    9:
             return((
    ShortName "Sep" "September"));
             break;
          case 
    10:
             return((
    ShortName "Oct" "October"));
             break;
          case 
    11:
             return((
    ShortName "Nov" "November"));
             break;
          case 
    12:
             return((
    ShortName "Dec" "December"));
             break;
       }
       
       
    //الشهر غير معروف
       
    return("?");
    }
    //+------------------------------------------------------------------+
    //وظيفة التي تحوط للأمر وضعت حديثا
    //+------------------------------------------------------------------+
    void hedgenewsorder(string oSymbol,string cmddouble volume,string comment)
    {
       
    int hedgeticket=0;
       
    //إذا اليورو مقابل الدولار الأميركي = شراء، الدولار مقابل الفرنك السويسري = شراء
       //إذا اليورو مقابل الدولار الأميركي = بيع، الدولار مقابل الفرنك السويسري = بيع
        
    if(oSymbol=="EURUSD" && cmd=="OP_BUY") {hedgeticket=OrderSend("USDCHF",OP_BUYvolume,MarketInfo("USDCHF",MODE_ASK),3,MarketInfo("USDCHF",MODE_ASK)-(risk*MarketInfo("USDCHF",MODE_POINT)),MarketInfo("USDCHF",MODE_ASK)+(reward*risk*MarketInfo("USDCHF",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="EURUSD" && cmd=="OP_SELL"){hedgeticket=OrderSend("USDCHF",OP_SELL,volume,MarketInfo("USDCHF",MODE_BID),3,MarketInfo("USDCHF",MODE_BID)+(risk*MarketInfo("USDCHF",MODE_POINT)),MarketInfo("USDCHF",MODE_BID)-(reward*risk*MarketInfo("USDCHF",MODE_POINT)),comment,MagicNumber);}
       
    //إذا الدولارمقابل الين = شراء، الجنيه الإسترليني مقابل الدولار = بيع
       //إذا الدولارمقابل الين = بيع، الجنيه الإسترليني مقابل الدولار = شراء
       
    if(oSymbol=="USDJPY" && cmd=="OP_BUY") {hedgeticket=OrderSend("GBPUSD",OP_SELL,volume,MarketInfo("GBPUSD",MODE_BID),3,MarketInfo("GBPUSD",MODE_BID)+(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_BID)-(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="USDJPY" && cmd=="OP_SELL"){hedgeticket=OrderSend("GBPUSD",OP_BUYvolume,MarketInfo("GBPUSD",MODE_ASK),3,MarketInfo("GBPUSD",MODE_ASK)-(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_ASK)+(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
       
       
    //إذا شراء الجنيه الإسترليني مقابل الدولار =، USDCAD = شراء
       //إذا بيع الجنيه الاسترليني مقابل الدولار =، USDCAD == بيع
       
    if(oSymbol=="GBPUSD" && cmd=="OP_BUY") {hedgeticket=OrderSend("USDCAD",OP_BUYvolume,MarketInfo("USDCAD",MODE_ASK),3,MarketInfo("USDCAD",MODE_ASK)-(risk*MarketInfo("USDCAD",MODE_POINT)),MarketInfo("USDCAD",MODE_ASK)+(reward*risk*MarketInfo("USDCAD",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="GBPUSD" && cmd=="OP_SELL"){hedgeticket=OrderSend("USDCAD",OP_SELL,volume,MarketInfo("USDCAD",MODE_BID),3,MarketInfo("USDCAD",MODE_BID)+(risk*MarketInfo("USDCAD",MODE_POINT)),MarketInfo("USDCAD",MODE_BID)-(reward*risk*MarketInfo("USDCAD",MODE_POINT)),comment,MagicNumber);}
       
       
    // إذا الدولار مقابل الفرنك السويسري = شراء، اليورو مقابل الدولار الأميركي = شراء
      // إذا الدولار مقابل الفرنك السويسري = بيع، الدولار مقابل الفرنك السويسري = بيع
       
    if(oSymbol=="USDCHF" && cmd=="OP_BUY") {hedgeticket=OrderSend("EURUSD",OP_BUYvolume,MarketInfo("EURUSD",MODE_ASK),3,MarketInfo("EURUSD",MODE_ASK)-(risk*MarketInfo("EURUSD",MODE_POINT)),MarketInfo("EURUSD",MODE_ASK)+(reward*risk*MarketInfo("EURUSD",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="USDCHF" && cmd=="OP_SELL"){hedgeticket=OrderSend("EURUSD",OP_SELL,volume,MarketInfo("EURUSD",MODE_BID),3,MarketInfo("EURUSD",MODE_BID)+(risk*MarketInfo("EURUSD",MODE_POINT)),MarketInfo("EURUSD",MODE_BID)-(reward*risk*MarketInfo("EURUSD",MODE_POINT)),comment,MagicNumber);}
       
       
    // إذا الدولار الأسترالي مقابل الدولار = شراء، الجنيه الإسترليني مقابل الدولار = بيع
       // إذا الدولار الأسترالي مقابل الدولار = بيع، الجنيه الإسترليني مقابل الدولار = شراء
       
    if(oSymbol=="AUDUSD" && cmd=="OP_BUY") {hedgeticket=OrderSend("GBPUSD",OP_SELL,volume,MarketInfo("GBPUSD",MODE_BID),3,MarketInfo("GBPUSD",MODE_BID)+(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_BID)-(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="AUDUSD" && cmd=="OP_SELL"){hedgeticket=OrderSend("GBPUSD",OP_BUYvolume,MarketInfo("GBPUSD",MODE_ASK),3,MarketInfo("GBPUSD",MODE_ASK)-(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_ASK)+(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
        
       
    //إذا الدولار مقابل الدولار الكندي = شراء، الجنيه الإسترليني مقابل الدولار = شراء
       //إذا الدولار مقابل الدولارالكندي = بيع، الجنيه الإسترليني مقابل الدولار = بيع
       
    if(oSymbol=="USDCAD" && cmd=="OP_BUY") {hedgeticket=OrderSend("GBPUSD",OP_BUYvolume,MarketInfo("GBPUSD",MODE_ASK),3,MarketInfo("GBPUSD",MODE_ASK)-(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_ASK)+(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="USDCAD" && cmd=="OP_SELL"){hedgeticket=OrderSend("GBPUSD",OP_SELL,volume,MarketInfo("GBPUSD",MODE_BID),3,MarketInfo("GBPUSD",MODE_BID)+(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_BID)-(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
       
       
    //إذا NZDUSD = شراء، الدولار الأسترالي مقابل الدولار = بيع
       //إذا NZDUSD = بيع، الدولار الأسترالي مقابل الدولار = شراء
       
    if(oSymbol=="NZDUSD" && cmd=="OP_BUY") {hedgeticket=OrderSend("AUDUSD",OP_SELL,volume,MarketInfo("AUDUSD",MODE_BID),3,MarketInfo("AUDUSD",MODE_BID)+(risk*MarketInfo("AUDUSD",MODE_POINT)),MarketInfo("AUDUSD",MODE_BID)-(reward*risk*MarketInfo("AUDUSD",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="NZDUSD" && cmd=="OP_SELL"){hedgeticket=OrderSend("AUDUSD",OP_BUYvolume,MarketInfo("AUDUSD",MODE_ASK),3,MarketInfo("AUDUSD",MODE_ASK)-(risk*MarketInfo("AUDUSD",MODE_POINT)),MarketInfo("AUDUSD",MODE_ASK)+(reward*risk*MarketInfo("AUDUSD",MODE_POINT)),comment,MagicNumber);}
     
     return;
    }
    //+------------------------------------------------------------------+
    //
    //+------------------------------------------------------------------+
    void CloseOrders()//وظيفة الذي يغلق أوامر فتح بعد مبلغ العاشر من الزمن قد مر!
       
    {
          
    int opened_orders=OrdersTotal();
          for (
    int fe=0;fe<opened_orders;fe++)
                {
            
    bool  Select=  OrderSelect(feSELECT_BY_POSMODE_TRADES); //check opened orders
                
    if(enable_close_time==true && OrderMagicNumber()==MagicNumber && TimeCurrent()>OrderTime+wait_time*60 && OrderType()==OP_BUY)
                   {            
                      
    double order_bid=MarketInfo(OrderSymbol(),MODE_BID);
                    
    bool  close=    OrderClose(OrderTicket(),OrderLots(),order_bid,30,Violet);
                   }
                   
                if(
    enable_close_time==true && OrderMagicNumber()==MagicNumber && TimeCurrent()>OrderTime+wait_time*60 && OrderType()==OP_SELL)
                   {
                      
    double order_ask=MarketInfo(OrderSymbol(),MODE_ASK);
                     
    bool  close=   OrderClose(OrderTicket(),OrderLots(),order_ask,30,Violet);
                   }               
                }
         return;       
       }


    //+------------------------------------------------------------------+
    //|    وظيفة بداية الخبراء                                           |
    //+------------------------------------------------------------------+
    void OnTick()
    {
       
       
       
    string   event =NULL;
       
       
       
    // هل هناك حدث في 30 دقيقة القادمة?
       
    for(int i 0MaxDailyEventsi++)
       {
          if(
    StringLen(DailyEvents[i].time) == 0) break;
          if(
    TimeCurrent() >= StrToTime(DailyEvents[i].time) - 1800 && TimeCurrent() < StrToTime(DailyEvents[i].time) && !DailyEvents[i].displayed)
          {
             
    //حدث في 30 دقيقة
             
    event += DailyEvents[i].title " (" DailyEvents[i].currency "), ";
             
    DailyEvents[i].displayed true;
             
             
    // حذف الخط العمودي المرتبطة بالحدث
           
    if(ObjectFind("VLine" DoubleToStr(i0)) >= 0ObjectDelete("VLine" DoubleToStr(i0));
          }  
       
    // if(TimeCurrent() >= StrToTime(DailyEvents[i].time) + (xTime*60) && TimeCurrent() < StrToTime(DailyEvents[i].time)) GetHighImpactEvents();
       
       // أي شيء لعرضه
       
    if(StringLen(event) != 0)
       {
          
    event += "in 30 minutes.";
          
    Alert(event);
      

       
    string   forecastDailyEvents[i].forecast;
       
    string   previousDailyEvents[i].previous;
       
    string   time=DailyEvents[i].time;
       
    string   actualDailyEvents[i].actual 
      
    string currency=DailyEvents[i].currency ;            
          
    Comment("time : ",DailyEvents[i].time,
             
    "\n","Currency: ",DailyEvents[i].currency,
             
    "\n","title: ",DailyEvents[i].title,
            
    "\n","Forecast: ",DailyEvents[i].forecast,
             
    "\n","Previous: ",DailyEvents[i].previous,               
            
    "\n","Actual: ",DailyEvents[i].actual);
         
           
     
                                                                                  
      
    string ordercurrency="";
             if(
    currency=="EUR" ){ordercurrency="EURUSD";} //trading eurusd
             
    if(currency=="USD" ){ordercurrency="EURUSD";} //trading eurusd
             
    if(currency=="JPY" ){ordercurrency="USDJPY";} //trading usdjpy
             
    if(currency=="GBP" ){ordercurrency="GBPUSD";} //trading usdgbp
             
    if(currency=="CHF" ){ordercurrency="USDCHF";} //trading usdchf
             
    if(currency=="AUD" ){ordercurrency="AUDUSD";} //trading audusd
             
    if(currency=="CAD" ){ordercurrency="USDCAD";} //trading usdcad
             
    if(currency=="NZD" ){ordercurrency="NZDUSD";} //trading nzdusd
            // double atr=iATR(ordercurrency, 0, 14, 0); 
             
                                                                                                
                                                   
     //(1)الدول لدخول السوق
          //(1) عندما يتم تحرير البيانات الفعلية، ومقارنة ذلك للتنبؤ، وتأكد من عدم التداول إذا حدث يحتوي على رمز قبل الأعداد الصحيحة، على سبيل المثال، 56 $، و "$" يتسبب في EA لوقف
          
    if(StringLen(forecast)>&& StringLen(previous)>)//غير الصفر، يعتني رمزا أمام الحدث
          
    {
          
    // الفرق في المئة الفعلية للتنبؤ
          
    double percent_d_AF=MathAbs((MathAbs(StringToDouble(forecast)-StringToDouble(previous))/StringToDouble(previous))*100);
                            
    double lot_p=0;
                            if((
    percent_d_AF>&& percent_d_AF<=3)){lot_p=lot1;}//0.1 lot
                            
    if((percent_d_AF>&& percent_d_AF<=6)){lot_p=lot2;}//0.2 lots
                            
    if((percent_d_AF>&& percent_d_AF<=9)){lot_p=lot3;}//0.3 lots
                            
    if((percent_d_AF>&& percent_d_AF<=12)){lot_p=lot4;}//0.4 lots
                            
    if((percent_d_AF>12 && percent_d_AF<=15)){lot_p=lot5;}//0.5 lots
                            
    if((percent_d_AF>15 && percent_d_AF<=18)){lot_p=lot6;}//0.6 lots
                            
    if((percent_d_AF>18 && percent_d_AF<=21)){lot_p=lot7;}//0.7 lots
                            
    if((percent_d_AF>21 && percent_d_AF<=24)){lot_p=lot8;}//0.8 lots
                            
    if((percent_d_AF>24 && percent_d_AF<=27)){lot_p=lot9;}//0.9 lots
                            
    if((percent_d_AF>27 && percent_d_AF<=30)){lot_p=lot10;}//0.10 lots
                            
    if((percent_d_AF>30 && percent_d_AF<=40)){lot_p=lot11;}//0.20 lots
                            
    if((percent_d_AF>40 && percent_d_AF<=50)){lot_p=lot12;}//0.30 lots
                            
    if((percent_d_AF>50 && percent_d_AF<=60)){lot_p=lot13;}//0.40 lots
                            
    if((percent_d_AF>60 && percent_d_AF<=70)){lot_p=lot14;}//0.50 lots
                            
    if((percent_d_AF>70 && percent_d_AF<=80)){lot_p=lot15;}//0.60 lots
                            
    if((percent_d_AF>80 && percent_d_AF<=90)){lot_p=lot16;}//0.70 lots
                            
    if((percent_d_AF>90 && percent_d_AF<=100)){lot_p=lot17;}//0.80 lots
                            
    if((percent_d_AF>100))                    {lot_p=lot18;}//0.90 lots
          
                          
               
    if(StringToDouble(forecast)>StringToDouble(previous))
                    {
                    
    Alert("Stronger(forecast vs previous): "+currency+" "+"Time: "+time);
                            
    int total=OrdersTotal();
                               for(
    int cnt=0;cnt<total;cnt++)
                               {
               
    bool  Select=OrderSelect(cntSELECT_BY_POSMODE_TRADES); //تحقق أوامر فتح   DoubleToString(
                               
    if(OrderComment()==currency+forecast+previous+"BUY" || OrderComment()==currency+forecast+previous+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
                               }
                            
    int historytotal=OrdersHistoryTotal();
                               for(
    int cnt=0;cnt<historytotal;cnt++)
                             {
               
    bool  SelectOrderSelect(cntSELECT_BY_POSMODE_HISTORY); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+forecast+previous+"BUY" || OrderComment()==currency+forecast+previous+"SELL" || OrderComment()==currency+forecast+previous+"BUY[sl]" || OrderComment()==currency+forecast+previous+"SELL[sl]" ||OrderComment()==currency+forecast+previous+"BUY[tp]" || OrderComment()==currency+forecast+previous+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
                               }
                    if(
    currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
                    {
    double ask=MarketInfo(ordercurrency,MODE_ASK);double point1=MarketInfo(ordercurrency,MODE_POINT); ticket=OrderSend(ordercurrency,OP_BUY,lot_p,ask,30,ask-(risk*point1),ask+(reward*risk*point1),currency+forecast+previous+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_p,currency+forecast+previous+"BUY");}}
                    
                    if(
    currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
                    {
    double bid=MarketInfo(ordercurrency,MODE_BID); double point2=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_p,bid,30,bid+(risk*point2),bid-(reward*risk*point2),currency+forecast+previous+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_p,currency+forecast+previous+"SELL");}}
                    
                    }
          
          
            if(
    StringToDouble(forecast)<StringToDouble(previous))
                    {
                            
    int total1=OrdersTotal();
                               for(
    int cnt=0;cnt<total1;cnt++)
                               {
               
    bool  SelectOrderSelect(cntSELECT_BY_POSMODE_TRADES); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+forecast+previous+"BUY" || OrderComment()==currency+forecast+previous+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
                               }
                            
    int historytotal1=OrdersHistoryTotal();
                               for(
    int cnt=0;cnt<historytotal1;cnt++)
                               {
               
    bool  SelectOrderSelect(cntSELECT_BY_POSMODE_HISTORY); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+forecast+previous+"BUY" || OrderComment()==currency+forecast+previous+"SELL" || OrderComment()==currency+forecast+previous+"BUY[sl]" || OrderComment()==currency+forecast+previous+"SELL[sl]" || OrderComment()==currency+forecast+previous+"BUY[tp]" || OrderComment()==currency+forecast+previous+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
                               }
                    
    Alert("Weaker(actual vs forecast): "+currency+" "+"Time: "+time);
                    if(
    currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
                    {
    double bidd=MarketInfo(ordercurrency,MODE_BID); double point3=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_p,bidd,30,bidd+(risk*point3),bidd-(reward*risk*point3),currency+forecast+previous+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_p,currency+forecast+previous+"SELL");}}
                    
                    if(
    currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
                    {
    double askk=MarketInfo(ordercurrency,MODE_ASK); double point4=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_BUY,lot_p,askk,30,askk-(risk*point4),askk+(reward*risk*point4),currency+forecast+previous+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_p,currency+forecast+previous+"BUY");}}
                    
                    }
                   
         
         return; } 
       
       
    //(2)الدول لدخول السوق
          // عندما يتم تحرير البيانات الفعلية، ومقارنة ذلك للتنبؤ، وتأكد من عدم التداول إذا حدث يحتوي على رمز قبل الأعداد الصحيحة، على سبيل المثال، 56 $، و "$" يتسبب في EA لوقف
          
    if(StringLen(actual)>&& StringLen(forecast)>)//غير الصفر، يعتني رمزا أمام الحدث
          
    {
          
    // الفرق في المئة الفعلية للتنبؤ
          
    double percent_d_AF=MathAbs((MathAbs(StringToDouble(actual)-StringToDouble(forecast))/StringToDouble(forecast))*100);
                            
    double lot_p1=0;
                            if((
    percent_d_AF>&& percent_d_AF<=3)){lot_p1=lot1;}//0.1 lot
                            
    if((percent_d_AF>&& percent_d_AF<=6)){lot_p1=lot2;}//0.2 lots
                            
    if((percent_d_AF>&& percent_d_AF<=9)){lot_p1=lot3;}//0.3 lots
                            
    if((percent_d_AF>&& percent_d_AF<=12)){lot_p1=lot4;}//0.4 lots
                            
    if((percent_d_AF>12 && percent_d_AF<=15)){lot_p1=lot5;}//0.5 lots
                            
    if((percent_d_AF>15 && percent_d_AF<=18)){lot_p1=lot6;}//0.6 lots
                            
    if((percent_d_AF>18 && percent_d_AF<=21)){lot_p1=lot7;}//0.7 lots
                            
    if((percent_d_AF>21 && percent_d_AF<=24)){lot_p1=lot8;}//0.8 lots
                            
    if((percent_d_AF>24 && percent_d_AF<=27)){lot_p1=lot9;}//0.9 lots
                            
    if((percent_d_AF>27 && percent_d_AF<=30)){lot_p1=lot10;}//0.10 lots
                            
    if((percent_d_AF>30 && percent_d_AF<=40)){lot_p1=lot11;}//0.20 lots
                            
    if((percent_d_AF>40 && percent_d_AF<=50)){lot_p1=lot12;}//0.30 lots
                            
    if((percent_d_AF>50 && percent_d_AF<=60)){lot_p1=lot13;}//0.40 lots
                            
    if((percent_d_AF>60 && percent_d_AF<=70)){lot_p1=lot14;}//0.50 lots
                            
    if((percent_d_AF>70 && percent_d_AF<=80)){lot_p1=lot15;}//0.60 lots
                            
    if((percent_d_AF>80 && percent_d_AF<=90)){lot_p1=lot16;}//0.70 lots
                            
    if((percent_d_AF>90 && percent_d_AF<=100)){lot_p1=lot17;}//0.80 lots
                            
    if((percent_d_AF>100))                    {lot_p1=lot18;}//0.90 lots
                          
               
    if(StringToDouble(actual)>StringToDouble(forecast))
                    {
                    
    Alert("Stronger(actual vs forecast): "+currency+" "+"Time: "+time);
                            
    int total2=OrdersTotal();
                               for(
    int cnt=0;cnt<total2;cnt++)
                               {
               
    bool  Select=OrderSelect(cntSELECT_BY_POSMODE_TRADES); //تحقق أوامر فتح   DoubleToString(
                               
    if(OrderComment()==currency+actual+forecast+"BUY" || OrderComment()==currency+actual+forecast+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
                               }
                            
    int historytotal2=OrdersHistoryTotal();
                               for(
    int cnt=0;cnt<historytotal2;cnt++)
                             {
               
    bool  SelectOrderSelect(cntSELECT_BY_POSMODE_HISTORY); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+forecast+"BUY" || OrderComment()==currency+actual+forecast+"SELL" || OrderComment()==currency+actual+forecast+"BUY[sl]" || OrderComment()==currency+actual+forecast+"SELL[sl]" ||OrderComment()==currency+actual+forecast+"BUY[tp]" || OrderComment()==currency+actual+forecast+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
                               }
                    if(
    currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
                    {
    double ask=MarketInfo(ordercurrency,MODE_ASK);double point1=MarketInfo(ordercurrency,MODE_POINT); ticket=OrderSend(ordercurrency,OP_BUY,lot_p1,ask,3,ask-(risk*point1),ask+(reward*risk*point1),currency+actual+forecast+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_p1,currency+actual+forecast+"BUY");}}
                    
                    if(
    currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
                    {
    double bid=MarketInfo(ordercurrency,MODE_BID); double point2=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_p1,bid,3,bid+(risk*point2),bid-(reward*risk*point2),currency+actual+forecast+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_p1,currency+actual+forecast+"SELL");}}
                    
                    }
          
          
            if(
    StringToDouble(actual)<StringToDouble(forecast))
                    {
                            
    int total3=OrdersTotal();
                               for(
    int cnt=0;cnt<total3;cnt++)
                               {
               
    bool  SelectOrderSelect(cntSELECT_BY_POSMODE_TRADES); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+forecast+"BUY" || OrderComment()==currency+actual+forecast+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
                               }
                            
    int historytotal3=OrdersHistoryTotal();
                               for(
    int cnt=0;cnt<historytotal3;cnt++)
                               {
               
    bool  SelectOrderSelect(cntSELECT_BY_POSMODE_HISTORY); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+forecast+"BUY" || OrderComment()==currency+actual+forecast+"SELL" || OrderComment()==currency+actual+forecast+"BUY[sl]" || OrderComment()==currency+actual+forecast+"SELL[sl]" || OrderComment()==currency+actual+forecast+"BUY[tp]" || OrderComment()==currency+actual+forecast+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
                               }
                    
    Alert("Weaker(actual vs forecast): "+currency+" "+"Time: "+time);
                    if(
    currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
                    {
    double bidd=MarketInfo(ordercurrency,MODE_BID); double point3=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_p1,bidd,3,bidd+(risk*point3),bidd-(reward*risk*point3),currency+actual+forecast+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_p1,currency+actual+forecast+"SELL");}}
                    
                    if(
    currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
                    {
    double askk=MarketInfo(ordercurrency,MODE_ASK); double point4=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_BUY,lot_p1,askk,3,askk-(risk*point4),askk+(reward*risk*point4),currency+actual+forecast+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_p1,currency+actual+forecast+"BUY");}}
                    
                    }
                   
         
         return; }
          
          
          
    //(3) عندما يتم تحرير البيانات الفعلية، ومقارنته السابق (طول سلسلة من == توقعات 0)
          
    if(StringLen(actual)>&& StringLen(forecast)==&& StringLen(previous)>)
          { 
          
    //الفرق في المئة الفعلي لسابقة
          
    double percent_d_AP=MathAbs((MathAbs(StringToDouble(actual)-StringToDouble(previous))/StringToDouble(previous))*100);
                            
    double lot_pp=0;
                            if((
    percent_d_AP>&& percent_d_AP<=3)){lot_pp=lot1;}//0.1 lot
                            
    if((percent_d_AP>&& percent_d_AP<=6)){lot_pp=lot2;}//0.2 lots
                            
    if((percent_d_AP>&& percent_d_AP<=9)){lot_pp=lot3;}//0.3 lots
                            
    if((percent_d_AP>&& percent_d_AP<=12)){lot_pp=lot4;}//0.4 lots
                            
    if((percent_d_AP>12 && percent_d_AP<=15)){lot_pp=lot5;}//0.5 lots
                            
    if((percent_d_AP>15 && percent_d_AP<=18)){lot_pp=lot6;}//0.6 lots
                            
    if((percent_d_AP>18 && percent_d_AP<=21)){lot_pp=lot7;}//0.7 lots
                            
    if((percent_d_AP>21 && percent_d_AP<=24)){lot_pp=lot8;}//0.8 lots
                            
    if((percent_d_AP>24 && percent_d_AP<=27)){lot_pp=lot9;}//0.9 lots
                            
    if((percent_d_AP>27 && percent_d_AP<=30)){lot_pp=lot10;}//0.10 lots
                            
    if((percent_d_AP>30 && percent_d_AP<=40)){lot_pp=lot11;}//0.20 lots
                            
    if((percent_d_AP>40 && percent_d_AP<=50)){lot_pp=lot12;}//0.30 lots
                            
    if((percent_d_AP>50 && percent_d_AP<=60)){lot_pp=lot13;}//0.40 lots
                            
    if((percent_d_AP>60 && percent_d_AP<=70)){lot_pp=lot14;}//0.50 lots
                            
    if((percent_d_AP>70 && percent_d_AP<=80)){lot_pp=lot15;}//0.60 lots
                            
    if((percent_d_AP>80 && percent_d_AP<=90)){lot_pp=lot16;}//0.70 lots
                            
    if((percent_d_AP>90 && percent_d_AP<=100)){lot_pp=lot17;}//0.80 lots
                            
    if((percent_d_AP>100))                    {lot_pp=lot18;}//0.90 lots
          
          
            
    if(StringToDouble(actual)>StringToDouble(previous))
                    {
                    
    Alert("Stronger(actual vs previous): "+currency+" "+"Time: "+time);
                            
    int total4=OrdersTotal();
                               for(
    int cnt=0;cnt<total4;cnt++)
                               {
              
    bool  Select=   OrderSelect(cntSELECT_BY_POSMODE_TRADES); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+previous+"BUY" || OrderComment()==currency+actual+previous+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
                               }
                            
    int historytotal4=OrdersHistoryTotal();
                               for(
    int cnt=0;cnt<historytotal4;cnt++)
                               {
               
    bool  Select=   OrderSelect(cntSELECT_BY_POSMODE_HISTORY); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+previous+"BUY" || OrderComment()==currency+actual+previous+"SELL" || OrderComment()==currency+actual+previous+"BUY[sl]" || OrderComment()==currency+actual+previous+"SELL[sl]" || OrderComment()==currency+actual+previous+"BUY[tp]" || OrderComment()==currency+actual+previous+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
                               }
                    if(
    currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
                    {
    double askz=MarketInfo(ordercurrency,MODE_ASK);double point5=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_BUY,lot_pp,askz,3,askz-(risk*point5),askz+(reward*risk*point5),currency+actual+previous+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_pp,currency+actual+previous+"BUY");}}
                    
                    if(
    currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
                    {
    double bidz=MarketInfo(ordercurrency,MODE_BID); double point6=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_pp,bidz,3,bidz+(risk*point6),bidz-(reward*risk*point6),currency+actual+previous+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_pp,currency+actual+previous+"SELL");}}
                    }
          
          
         
            if(
    StringToDouble(actual)<StringToDouble(previous))
                    {
                    
    Alert("Weaker(actual vs previous): "+currency+" "+"Time: "+time);
                            
    int total5=OrdersTotal();
                               for(
    int cnt=0;cnt<total5;cnt++)
                               {
               
    bool  Select=  OrderSelect(cntSELECT_BY_POSMODE_TRADES); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+previous+"BUY" || OrderComment()==currency+actual+previous+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
                               }
                            
    int historytotal5=OrdersHistoryTotal();
                               for(
    int cnt=0;cnt<historytotal5;cnt++)
                               {
            
    bool  Select=    OrderSelect(cntSELECT_BY_POSMODE_HISTORY); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+previous+"BUY" || OrderComment()==currency+actual+previous+"SELL" || OrderComment()==currency+actual+previous+"BUY[sl]" || OrderComment()==currency+actual+previous+"SELL[sl]" || OrderComment()==currency+actual+previous+"BUY[tp]" || OrderComment()==currency+actual+previous+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
                               }
                    if(
    currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
                    {
    double bidx=MarketInfo(ordercurrency,MODE_BID); double point7=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_pp,bidx,3,bidx+(risk*point7),bidx-(reward*risk*point7),currency+actual+previous+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_pp,currency+actual+previous+"SELL");}}
                    
                    if(
    currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
                    {
    double askx=MarketInfo(ordercurrency,MODE_ASK); double point8=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_BUY,lot_pp,askx,3,askx-(risk*point8),askx+(reward*risk*point8),currency+actual+previous+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_pp,currency+actual+previous+"BUY");}}
                    }
           
         
         return; }
       
       
       
       
       
       
          
      }    
     }

    }

    //+------------------------------------------------------------------+
    //| نهاية الكود
    //+------------------------------------------------------------------+ 
    في الاخير ارجو من الله سبحانه وتعالى ان يوفقك
    تلميذ رمال عزالدين
    آخر تعديل بواسطة 2013Lemsantah ، 09-02-2017 الساعة 04:23 PM
    توقيع العضو
    سبحانك اللهم و بحمدك سبحان الله العظيم

  7. #7
    الصورة الرمزية 2013Lemsantah
    2013Lemsantah غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2016
    الإقامة
    الجزائر
    المشاركات
    229

    افتراضي


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

  8. #8
    الصورة الرمزية 2013Lemsantah
    2013Lemsantah غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2016
    الإقامة
    الجزائر
    المشاركات
    229

    افتراضي


    حاجة راح اقلها انو مافيش تفاعل ازاي نطور الفكرة من غير تفاعل وشكرا استاذنا العزيز على المجهود المبذول من طرفك في دعم المبتدئين
    توقيع العضو
    سبحانك اللهم و بحمدك سبحان الله العظيم

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

    افتراضي

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

    الاستاذ الكبير مستر اسامة ارجو ان يلقى خطابي هذا اذن تسغاه
    لقد بدات في برمجة الخبير الذي يندمج فيه التحليل الاساسي مع التحليل الفني وجدت صعوبة في تحميل البيانات ومعالجتها حتى اني تهت عن الدمج وركزت على موضوع الاخبار وجدت اشكالية في نوع الملفات ففي الملفات من نوع csv xml فهي غير متجددة اي عند خروج الخبر لا يستطيع الاكسبيرت التعامل معه وبالتالي وجدت نفسي مضطر للتعامل مع ملفات html التي تعرض مواقع الويب
    وبعد بحث وجدت الوظيفة web request التي من خلالها استطعت ان احمل البيانات من اي موقع وجدتني في تحدي اخر وهو لغة html المهم بعد جهد سهر توصلت الى تحميل البيانات تاريخ ووقت وعنوان الخبروالسابق والمتوقع والفعلي بعد صدور الخبر
    جاء وقت التعامل مع الخبر وبدا البحث وجدت محاولة في منتدى اجنبي واختصار للوقت اسقطتها على الاكسبيرت
    واجهت مشكل التوقيت بحيث ان المنصات التوقيت بينها وبين التوقيت المحلي يجب ان يعدل من الاعدادات
    كي لا اطيل عليك هاهي المحاولة محتاجة سقل من طرف خبير
    كنت قدقرات في المنتدى موضوع للاخبار في هذا الرابطhttp://https://forum.arabictrader.co...ml#post1552802
    ارجو ان تسقطها على الموضوع
    كود PHP:
    //+------------------------------------------------------------------+
    //|                                             تداول على الاخبار.mq4 |
    //|        Copyright 2016, MetaQuotes Software Corp.AZZEDDINE REMMAL |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2017.AZZEDDINE REMMAL"
    #property link      "https://[email protected]"
    #property version   "1.00"
    #property strict
     
    // تحديد بنية الحدث
    struct EVENTS
    {
       
    string   actual;
       
    string   forecast;
       
    string   previous;
       
    string   time;
       
    string   title;
       
    string   currency;
       
    bool     displayed;
    };
     
    #define     MaxDailyEvents    20       // إذا كنت تعتقد سيكون لديك أكثر من 20 حدثا تأثير عالية، وزيادة هذا العدد.
    EVENTS      DailyEvents[MaxDailyEvents];
     
    input bool enable_news_order_hedging=true;//تفعيل هيدج الاخبار
    input int Event_xTime=27//الوقت لEA الانتظار للحصول على الأخبار التي ستصدر
    input int MagicNumber=15041978;                    
    input bool enable_close_time=false//   تفعيل الاغلاق بعدمدة الانتظار             
    input int wait_time=20;   //مدة الانتظار                        
    //إعداد المخاطر والمكافآت 
    input int risk=20;  //  المخاطرة                             
    input int reward=3;  //المكافاة الرقم المظروب في المخاطرة
    //يتم الافراج مواصفات خارجية الدنيا الكثير للتجارة والكثير القصوى للتداول في الأحداث الإخبارية
    input double lot1=0.01;input double lot2=0.02;input double lot3=0.03;input double lot4=0.04;
    input double lot5=0.05;input double lot6=0.06;input double lot7=0.07;input double lot8=0.08;
    input double lot9=0.09;input double lot10=0.10;input double lot11=0.20;input double lot12=0.30;
    input double lot13=0.40;input double lot14=0.50;input double lot15=0.60;input double lot16=0.70;
    input double lot17=0.80;input double lot18=0.90;
    //نهاية مواصفات الكثير
    datetime OrderTime=0;
    int   ticket;
     
     
     
    //+------------------------------------------------------------------+
    //| Expert initialization function                                   |
    //+------------------------------------------------------------------+
    int OnInit()
    {
      
       
    // الحصول على أحداث اليوم
       
    GetHighImpactEvents();
       
       return(
    INIT_SUCCEEDED);
    }
     
    //+------------------------------------------------------------------+
    //|   وظيفة deinitialization الخبراء                                 |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
    {
       
    ObjectsDeleteAll();
    }
     
     
    //+------------------------------------------------------------------+
    //|استخراج عنصر HTML
    //+------------------------------------------------------------------+
    string   GetHTMLElement(string HTMLstring ElementStartstring ElementEnd)
    {
       
    string   data NULL;
       
       
    // البحث عن بداية ونهاية الموقف لعنصر
       
    int s StringFind(HTMLElementStart) + StringLen(ElementStart);
       
    int e StringFind(StringSubstr(HTMLs), ElementEnd);
       
       
    // محتوى العنصر عودة
       
    if(!= 0data StringSubstr(HTMLse);
       return(
    data);
    }
     
    //+------------------------------------------------------------------+
    //| احصل على الأحداث ذات التأثير الكبير اليوم من ForexFactory.com
    //+------------------------------------------------------------------+
    bool  GetHighImpactEvents()
    {
       
    string   cookie=NULLheadersHTML;
       
    string   url="http://www.forexfactory.com/calendar.php?day=";
       
    string  time NULLlasttime NULLcurrencyimpacttitle,actual,forecast,previous;
       
    char     post[], result[];
       
    int      rescntr 0timeout 5000;
     
       
    // إذا حاليا، مجرد الخروج كما لو كان يقرأ بشكل صحيح
       
    if(!IsConnected() || IsTesting()) return(true);
     
       
    // واضح بنية الحدث اليومي
       
    for(res 0res MaxDailyEventsres++)
          { 
    DailyEvents[res].time DailyEvents[res].title DailyEvents[cntr].previousDailyEvents[cntr].forecastDailyEvents[cntr].actualDailyEvents[res].currency NULLDailyEvents[res].displayed false; ++res; }
     
       
    // إرسال طلب ويب
       
    url += MthName(Month()) + DoubleToStr(Day(), 0) + "." DoubleToStr(Year(), 0);
       
    ResetLastError();
       
    res WebRequest("GET"urlcookieNULLtimeoutpost0resultheaders);
     
       
    //تحقق من وجود أخطاء
       
    if(res == -1)
       {
          Print(
    "Error in WebRequest. Error code = "GetLastError());
          
    MessageBox("Add the address 'http://forexfactory.com/' in the\nlist of allowed URLs on tab 'Expert Advisors'""Error"MB_ICONINFORMATION);
       }
       else
       {
         
         
    //--- ناجح تحميل
          
    PrintFormat("File successfully downloaded, the file size in bytes  =%d.",ArraySize(result)); 
          
    //--- حفظ البيانات في ملف
          
    int filehandle=FileOpen("news-forexfactory.html",FILE_WRITE|FILE_BIN);
          
    //---  
          
    if(filehandle!=INVALID_HANDLE)
            {
             
    //---حفظ محتويات المصفوفة ينتج [] في ملف
             
    FileWriteArray(filehandle,result,0,ArraySize(result));
             
    //--- إغلاق الملف
             
    FileClose(filehandle);
     
             
    int filehandle2=FileOpen("news-forexfactory.html",FILE_READ|FILE_BIN);
             
    HTML=FileReadString(filehandle2,ArraySize(result));
              
    FileClose(filehandle2);
            }else{
             Print(
    "Error in FileOpen. Error code =",GetLastError());
            } 
      
          
    // تحويل صفيف حرف إلى سلسلة
          
    HTML CharArrayToString(result);
     
          
    // التقويم تحميل، تأكد من انها لتاريخ اليوم
          
    int i StringFind(HTML"<span class=\"date\">");
          if(
    == -1) return(false);
          
    HTML StringSubstr(HTMLi);
          
    string date GetHTMLElement(HTML"<span>""</span>");
          if(
    date != MthName(Month()) + " " DoubleToStr(Day(), 0)) return(false);
     
          
    // الآن الحصول على صفوف الجدول لكل حدث
          
    lasttime NULL;
          
    date DoubleToStr(Year(), 0) + "." DoubleToStr(Month(), 0) + "." DoubleToStr(Day(), 0) + " ";
          do
          {
             
    // الحصول على معلومات الحدث
             
    time GetHTMLElement(HTML"<td class=\"calendar__cell calendar__time time\">""</td>");
             if(
    StringFind(time"<a name=\"upnext\"") == 0time GetHTMLElement(time"class=\"upnext\">""</span>");
             if(
    StringLen(time) != 0lasttime time;
             if(
    StringLen(time) == 0time lasttime
     
             
    // إذا كان الوقت قد 'مساء' فيه، إضافة 12 ساعة. StrToTime يفهم فقط على مدار الساعة 24 ساعة.
             
    if(StringFind(time"pm") != -1time TimeToStr(StrToTime(time) + (12*60*60));
             
    time date time;
     
             
    // الحصول على عناصر أخرى نحتاج
                    
             
    currency GetHTMLElement(HTML"<td class=\"calendar__cell calendar__currency currency\">""</td>");
             
    impact GetHTMLElement(HTML"<span title=\"""\" class=\"");
             
    StringFind(impact" Impact");
             if(
    != -1impact StringSubstr(impact0i);
             
    title GetHTMLElement(HTML"\"calendar__event-title\">""</span>");
             
    previous GetHTMLElement(HTML"<td class=\"calendar__cell calendar__previous previous\">""</td>");
             
    forecast GetHTMLElement(HTML"<td class=\"calendar__cell calendar__forecast forecast\">""</td>");
             
    actual GetHTMLElement(HTML"<td class=\"calendar__cell calendar__actual actual\">""</td>");
            
    // هل هذا الحدث تأثير كبير لزوج العملة الخاصة بي؟
             
    if(StringFind(Symbol(),currency) != -&&( impact == "High"))
             {
                
    //إضافة إلى بنية الحدث اليومي
                
    DailyEvents[cntr].displayed false;
                
    DailyEvents[cntr].time time;
                
    DailyEvents[cntr].title title;
                
    DailyEvents[cntr].previous previous;
                
    DailyEvents[cntr].forecast forecast;
                
    DailyEvents[cntr].actual actual;
                
    DailyEvents[cntr++].currency currency;
             }
              
           
             
    // قطع سلسلة HTML إلى الصف التالي في الجدول
             
    StringFind(HTML"</tbody> </table> </td> </tr> ");
             if(
    != -1HTML StringSubstr(HTMLi+30);
             if(
    StringFind(HTML"</table> <div class=\"foot\">") == 0= -1;
          } while(
    != -|| cntr == MaxDailyEvents);
       }
     
       
    // عرض الأحداث عالية التأثير، إن وجدت
       
    lasttime NULL;
       for(
    cntr 0cntr MaxDailyEventscntr++)
       {
          if(
    StringLen(DailyEvents[cntr].time) == 0) break;
          
          
    //إنشاء علامة الحدث على الرسم البياني إذا كان السوق الماضي لم نفس الوقت
          
    if(lasttime != DailyEvents[cntr].time)
          {
             
    res cntr;
             if(
    ObjectCreate(0"Event" DoubleToStr(cntr0), OBJ_EVENT0StrToTime(DailyEvents[cntr].time), 0))
             {
                
    ObjectSetString(0"Event" DoubleToStr(cntr0), OBJPROP_TEXTDailyEvents[cntr].title " (" DailyEvents[cntr].currency ")");
                
    ObjectSetInteger(0"Event" DoubleToStr(cntr0), OBJPROP_COLORRed);
                
    ObjectSetInteger(0"Event" DoubleToStr(cntr0), OBJPROP_WIDTH2);
                
    ObjectSetInteger(0"Event" DoubleToStr(cntr0), OBJPROP_BACKtrue);
                
    ObjectSetInteger(0"Event" DoubleToStr(cntr0), OBJPROP_SELECTABLEfalse);
                
    ObjectSetInteger(0"Event" DoubleToStr(cntr0), OBJPROP_SELECTEDfalse);
                
    ObjectSetInteger(0"Event" DoubleToStr(cntr0), OBJPROP_HIDDENtrue);
                
    ObjectSetString(0"Event" DoubleToStr(cntr0), OBJPROP_TOOLTIPDailyEvents[cntr].title " (" DailyEvents[cntr].currency ")");
             }
           
             
    // إنشاء خط عمودي إذا حدث في المستقبل
             
    if(TimeCurrent() < StrToTime(DailyEvents[cntr].time))
             {
             
    Comment("time : ",DailyEvents[cntr].time,
             
    "\n","Currency: ",DailyEvents[cntr].currency,
             
    "\n","title: ",DailyEvents[cntr].title,
            
    "\n","Forecast: ",DailyEvents[cntr].forecast,
             
    "\n","Previous: ",DailyEvents[cntr].previous,               
            
    "\n","Actual: ",DailyEvents[cntr].actual);
               
               
                if(
    ObjectCreate(0"VLine" DoubleToStr(cntr0), OBJ_VLINE0StrToTime(DailyEvents[cntr].time), 0))
                {
                    
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_COLORRed);
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_WIDTH1);
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_BACKtrue);
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_SELECTABLEfalse);
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_SELECTEDfalse);
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_HIDDENtrue);
                   
    ObjectSetString(0"VLine" DoubleToStr(cntr0), OBJPROP_TOOLTIPDailyEvents[cntr].title " (" DailyEvents[cntr].currency ")" +  " (" DailyEvents[cntr].forecast ")"" (" DailyEvents[cntr].previous ")");
                   
    ObjectSetInteger(0"VLine" DoubleToStr(cntr0), OBJPROP_TIMEFRAMESOBJ_PERIOD_M1 OBJ_PERIOD_M5 OBJ_PERIOD_M15 OBJ_PERIOD_M30 OBJ_PERIOD_H1);
                }
             }
             else
                
    DailyEvents[cntr].displayed true;
          }
          else
          {
             
    title ObjectGetString(0"Event" DoubleToStr(res0), OBJPROP_TOOLTIP);            
             
    title += "\n" DailyEvents[cntr].title " (" DailyEvents[cntr].currency ")";
             
    ObjectSetString(0"Event" DoubleToStr(res0), OBJPROP_TOOLTIPtitle);
             if(
    TimeCurrent() < StrToTime(DailyEvents[cntr].time)) ObjectSetString(0"Vline" DoubleToStr(res0), OBJPROP_TOOLTIPtitle);
          }
          
    lasttime DailyEvents[cntr].time;
       }   
     
       
    // خروج
       
    return(true);
    }
     
            
                     
                  
            
    //+------------------------------------------------------------------+
    //|إرجاع اسم الشهر طويلة أو قصيرة
    //+------------------------------------------------------------------+
    string   MthName(int Mthbool ShortName=true)
    {
       switch(
    Mth)
       {
          case 
    1:
             return((
    ShortName "Jan" "January"));
             break;
          case 
    2:
             return((
    ShortName "Feb" "February"));
             break;
          case 
    3:
             return((
    ShortName "Mar" "March"));
             break;
          case 
    4:
             return((
    ShortName "Apr" "April"));
             break;
          case 
    5:
             return((
    ShortName "May" "May"));
             break;
          case 
    6:
             return((
    ShortName "Jun" "June"));
             break;
          case 
    7:
             return((
    ShortName "Jul" "July"));
             break;
          case 
    8:
             return((
    ShortName "Aug" "August"));
             break;
          case 
    9:
             return((
    ShortName "Sep" "September"));
             break;
          case 
    10:
             return((
    ShortName "Oct" "October"));
             break;
          case 
    11:
             return((
    ShortName "Nov" "November"));
             break;
          case 
    12:
             return((
    ShortName "Dec" "December"));
             break;
       }
       
       
    //الشهر غير معروف
       
    return("?");
    }
    //+------------------------------------------------------------------+
    //وظيفة التي تحوط للأمر وضعت حديثا
    //+------------------------------------------------------------------+
    void hedgenewsorder(string oSymbol,string cmddouble volume,string comment)
    {
       
    int hedgeticket=0;
       
    //إذا اليورو مقابل الدولار الأميركي = شراء، الدولار مقابل الفرنك السويسري = شراء
       //إذا اليورو مقابل الدولار الأميركي = بيع، الدولار مقابل الفرنك السويسري = بيع
        
    if(oSymbol=="EURUSD" && cmd=="OP_BUY") {hedgeticket=OrderSend("USDCHF",OP_BUYvolume,MarketInfo("USDCHF",MODE_ASK),3,MarketInfo("USDCHF",MODE_ASK)-(risk*MarketInfo("USDCHF",MODE_POINT)),MarketInfo("USDCHF",MODE_ASK)+(reward*risk*MarketInfo("USDCHF",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="EURUSD" && cmd=="OP_SELL"){hedgeticket=OrderSend("USDCHF",OP_SELL,volume,MarketInfo("USDCHF",MODE_BID),3,MarketInfo("USDCHF",MODE_BID)+(risk*MarketInfo("USDCHF",MODE_POINT)),MarketInfo("USDCHF",MODE_BID)-(reward*risk*MarketInfo("USDCHF",MODE_POINT)),comment,MagicNumber);}
       
    //إذا الدولارمقابل الين = شراء، الجنيه الإسترليني مقابل الدولار = بيع
       //إذا الدولارمقابل الين = بيع، الجنيه الإسترليني مقابل الدولار = شراء
       
    if(oSymbol=="USDJPY" && cmd=="OP_BUY") {hedgeticket=OrderSend("GBPUSD",OP_SELL,volume,MarketInfo("GBPUSD",MODE_BID),3,MarketInfo("GBPUSD",MODE_BID)+(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_BID)-(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="USDJPY" && cmd=="OP_SELL"){hedgeticket=OrderSend("GBPUSD",OP_BUYvolume,MarketInfo("GBPUSD",MODE_ASK),3,MarketInfo("GBPUSD",MODE_ASK)-(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_ASK)+(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
       
       
    //إذا شراء الجنيه الإسترليني مقابل الدولار =، USDCAD = شراء
       //إذا بيع الجنيه الاسترليني مقابل الدولار =، USDCAD == بيع
       
    if(oSymbol=="GBPUSD" && cmd=="OP_BUY") {hedgeticket=OrderSend("USDCAD",OP_BUYvolume,MarketInfo("USDCAD",MODE_ASK),3,MarketInfo("USDCAD",MODE_ASK)-(risk*MarketInfo("USDCAD",MODE_POINT)),MarketInfo("USDCAD",MODE_ASK)+(reward*risk*MarketInfo("USDCAD",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="GBPUSD" && cmd=="OP_SELL"){hedgeticket=OrderSend("USDCAD",OP_SELL,volume,MarketInfo("USDCAD",MODE_BID),3,MarketInfo("USDCAD",MODE_BID)+(risk*MarketInfo("USDCAD",MODE_POINT)),MarketInfo("USDCAD",MODE_BID)-(reward*risk*MarketInfo("USDCAD",MODE_POINT)),comment,MagicNumber);}
       
       
    // إذا الدولار مقابل الفرنك السويسري = شراء، اليورو مقابل الدولار الأميركي = شراء
      // إذا الدولار مقابل الفرنك السويسري = بيع، الدولار مقابل الفرنك السويسري = بيع
       
    if(oSymbol=="USDCHF" && cmd=="OP_BUY") {hedgeticket=OrderSend("EURUSD",OP_BUYvolume,MarketInfo("EURUSD",MODE_ASK),3,MarketInfo("EURUSD",MODE_ASK)-(risk*MarketInfo("EURUSD",MODE_POINT)),MarketInfo("EURUSD",MODE_ASK)+(reward*risk*MarketInfo("EURUSD",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="USDCHF" && cmd=="OP_SELL"){hedgeticket=OrderSend("EURUSD",OP_SELL,volume,MarketInfo("EURUSD",MODE_BID),3,MarketInfo("EURUSD",MODE_BID)+(risk*MarketInfo("EURUSD",MODE_POINT)),MarketInfo("EURUSD",MODE_BID)-(reward*risk*MarketInfo("EURUSD",MODE_POINT)),comment,MagicNumber);}
       
       
    // إذا الدولار الأسترالي مقابل الدولار = شراء، الجنيه الإسترليني مقابل الدولار = بيع
       // إذا الدولار الأسترالي مقابل الدولار = بيع، الجنيه الإسترليني مقابل الدولار = شراء
       
    if(oSymbol=="AUDUSD" && cmd=="OP_BUY") {hedgeticket=OrderSend("GBPUSD",OP_SELL,volume,MarketInfo("GBPUSD",MODE_BID),3,MarketInfo("GBPUSD",MODE_BID)+(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_BID)-(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="AUDUSD" && cmd=="OP_SELL"){hedgeticket=OrderSend("GBPUSD",OP_BUYvolume,MarketInfo("GBPUSD",MODE_ASK),3,MarketInfo("GBPUSD",MODE_ASK)-(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_ASK)+(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
        
       
    //إذا الدولار مقابل الدولار الكندي = شراء، الجنيه الإسترليني مقابل الدولار = شراء
       //إذا الدولار مقابل الدولارالكندي = بيع، الجنيه الإسترليني مقابل الدولار = بيع
       
    if(oSymbol=="USDCAD" && cmd=="OP_BUY") {hedgeticket=OrderSend("GBPUSD",OP_BUYvolume,MarketInfo("GBPUSD",MODE_ASK),3,MarketInfo("GBPUSD",MODE_ASK)-(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_ASK)+(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="USDCAD" && cmd=="OP_SELL"){hedgeticket=OrderSend("GBPUSD",OP_SELL,volume,MarketInfo("GBPUSD",MODE_BID),3,MarketInfo("GBPUSD",MODE_BID)+(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_BID)-(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
       
       
    //إذا NZDUSD = شراء، الدولار الأسترالي مقابل الدولار = بيع
       //إذا NZDUSD = بيع، الدولار الأسترالي مقابل الدولار = شراء
       
    if(oSymbol=="NZDUSD" && cmd=="OP_BUY") {hedgeticket=OrderSend("AUDUSD",OP_SELL,volume,MarketInfo("AUDUSD",MODE_BID),3,MarketInfo("AUDUSD",MODE_BID)+(risk*MarketInfo("AUDUSD",MODE_POINT)),MarketInfo("AUDUSD",MODE_BID)-(reward*risk*MarketInfo("AUDUSD",MODE_POINT)),comment,MagicNumber);}
       if(
    oSymbol=="NZDUSD" && cmd=="OP_SELL"){hedgeticket=OrderSend("AUDUSD",OP_BUYvolume,MarketInfo("AUDUSD",MODE_ASK),3,MarketInfo("AUDUSD",MODE_ASK)-(risk*MarketInfo("AUDUSD",MODE_POINT)),MarketInfo("AUDUSD",MODE_ASK)+(reward*risk*MarketInfo("AUDUSD",MODE_POINT)),comment,MagicNumber);}
     
     return;
    }
    //+------------------------------------------------------------------+
    //
    //+------------------------------------------------------------------+
    void CloseOrders()//وظيفة الذي يغلق أوامر فتح بعد مبلغ العاشر من الزمن قد مر!
       
    {
          
    int opened_orders=OrdersTotal();
          for (
    int fe=0;fe<opened_orders;fe++)
                {
            
    bool  Select=  OrderSelect(feSELECT_BY_POSMODE_TRADES); //check opened orders
                
    if(enable_close_time==true && OrderMagicNumber()==MagicNumber && TimeCurrent()>OrderTime+wait_time*60 && OrderType()==OP_BUY)
                   {            
                      
    double order_bid=MarketInfo(OrderSymbol(),MODE_BID);
                    
    bool  close=    OrderClose(OrderTicket(),OrderLots(),order_bid,30,Violet);
                   }
                   
                if(
    enable_close_time==true && OrderMagicNumber()==MagicNumber && TimeCurrent()>OrderTime+wait_time*60 && OrderType()==OP_SELL)
                   {
                      
    double order_ask=MarketInfo(OrderSymbol(),MODE_ASK);
                     
    bool  close=   OrderClose(OrderTicket(),OrderLots(),order_ask,30,Violet);
                   }               
                }
         return;       
       }
     
     
    //+------------------------------------------------------------------+
    //|    وظيفة بداية الخبراء                                           |
    //+------------------------------------------------------------------+
    void OnTick()
    {
       
       
       
    string   event =NULL;
       
       
       
    // هل هناك حدث في 30 دقيقة القادمة?
       
    for(int i 0MaxDailyEventsi++)
       {
          if(
    StringLen(DailyEvents[i].time) == 0) break;
          if(
    TimeCurrent() >= StrToTime(DailyEvents[i].time) - 1800 && TimeCurrent() < StrToTime(DailyEvents[i].time) && !DailyEvents[i].displayed)
          {
             
    //حدث في 30 دقيقة
             
    event += DailyEvents[i].title " (" DailyEvents[i].currency "), ";
             
    DailyEvents[i].displayed true;
             
             
    // حذف الخط العمودي المرتبطة بالحدث
           
    if(ObjectFind("VLine" DoubleToStr(i0)) >= 0ObjectDelete("VLine" DoubleToStr(i0));
          }  
       
    // if(TimeCurrent() >= StrToTime(DailyEvents[i].time) + (xTime*60) && TimeCurrent() < StrToTime(DailyEvents[i].time)) GetHighImpactEvents();
       
       // أي شيء لعرضه
       
    if(StringLen(event) != 0)
       {
          
    event += "in 30 minutes.";
          
    Alert(event);
      
     
       
    string   forecastDailyEvents[i].forecast;
       
    string   previousDailyEvents[i].previous;
       
    string   time=DailyEvents[i].time;
       
    string   actualDailyEvents[i].actual 
      
    string currency=DailyEvents[i].currency ;            
          
    Comment("time : ",DailyEvents[i].time,
             
    "\n","Currency: ",DailyEvents[i].currency,
             
    "\n","title: ",DailyEvents[i].title,
            
    "\n","Forecast: ",DailyEvents[i].forecast,
             
    "\n","Previous: ",DailyEvents[i].previous,               
            
    "\n","Actual: ",DailyEvents[i].actual);
         
           
     
                                                                                  
      
    string ordercurrency="";
             if(
    currency=="EUR" ){ordercurrency="EURUSD";} //trading eurusd
             
    if(currency=="USD" ){ordercurrency="EURUSD";} //trading eurusd
             
    if(currency=="JPY" ){ordercurrency="USDJPY";} //trading usdjpy
             
    if(currency=="GBP" ){ordercurrency="GBPUSD";} //trading usdgbp
             
    if(currency=="CHF" ){ordercurrency="USDCHF";} //trading usdchf
             
    if(currency=="AUD" ){ordercurrency="AUDUSD";} //trading audusd
             
    if(currency=="CAD" ){ordercurrency="USDCAD";} //trading usdcad
             
    if(currency=="NZD" ){ordercurrency="NZDUSD";} //trading nzdusd
            // double atr=iATR(ordercurrency, 0, 14, 0); 
             
                                                                                                
                                                   
     //(1)الدول لدخول السوق
          //(1) عندما يتم تحرير البيانات الفعلية، ومقارنة ذلك للتنبؤ، وتأكد من عدم التداول إذا حدث يحتوي على رمز قبل الأعداد الصحيحة، على سبيل المثال، 56 $، و "$" يتسبب في EA لوقف
          
    if(StringLen(forecast)>&& StringLen(previous)>)//غير الصفر، يعتني رمزا أمام الحدث
          
    {
          
    // الفرق في المئة الفعلية للتنبؤ
          
    double percent_d_AF=MathAbs((MathAbs(StringToDouble(forecast)-StringToDouble(previous))/StringToDouble(previous))*100);
                            
    double lot_p=0;
                            if((
    percent_d_AF>&& percent_d_AF<=3)){lot_p=lot1;}//0.1 lot
                            
    if((percent_d_AF>&& percent_d_AF<=6)){lot_p=lot2;}//0.2 lots
                            
    if((percent_d_AF>&& percent_d_AF<=9)){lot_p=lot3;}//0.3 lots
                            
    if((percent_d_AF>&& percent_d_AF<=12)){lot_p=lot4;}//0.4 lots
                            
    if((percent_d_AF>12 && percent_d_AF<=15)){lot_p=lot5;}//0.5 lots
                            
    if((percent_d_AF>15 && percent_d_AF<=18)){lot_p=lot6;}//0.6 lots
                            
    if((percent_d_AF>18 && percent_d_AF<=21)){lot_p=lot7;}//0.7 lots
                            
    if((percent_d_AF>21 && percent_d_AF<=24)){lot_p=lot8;}//0.8 lots
                            
    if((percent_d_AF>24 && percent_d_AF<=27)){lot_p=lot9;}//0.9 lots
                            
    if((percent_d_AF>27 && percent_d_AF<=30)){lot_p=lot10;}//0.10 lots
                            
    if((percent_d_AF>30 && percent_d_AF<=40)){lot_p=lot11;}//0.20 lots
                            
    if((percent_d_AF>40 && percent_d_AF<=50)){lot_p=lot12;}//0.30 lots
                            
    if((percent_d_AF>50 && percent_d_AF<=60)){lot_p=lot13;}//0.40 lots
                            
    if((percent_d_AF>60 && percent_d_AF<=70)){lot_p=lot14;}//0.50 lots
                            
    if((percent_d_AF>70 && percent_d_AF<=80)){lot_p=lot15;}//0.60 lots
                            
    if((percent_d_AF>80 && percent_d_AF<=90)){lot_p=lot16;}//0.70 lots
                            
    if((percent_d_AF>90 && percent_d_AF<=100)){lot_p=lot17;}//0.80 lots
                            
    if((percent_d_AF>100))                    {lot_p=lot18;}//0.90 lots
          
                          
               
    if(StringToDouble(forecast)>StringToDouble(previous))
                    {
                    
    Alert("Stronger(forecast vs previous): "+currency+" "+"Time: "+time);
                            
    int total=OrdersTotal();
                               for(
    int cnt=0;cnt<total;cnt++)
                               {
               
    bool  Select=OrderSelect(cntSELECT_BY_POSMODE_TRADES); //تحقق أوامر فتح   DoubleToString(
                               
    if(OrderComment()==currency+forecast+previous+"BUY" || OrderComment()==currency+forecast+previous+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
                               }
                            
    int historytotal=OrdersHistoryTotal();
                               for(
    int cnt=0;cnt<historytotal;cnt++)
                             {
               
    bool  SelectOrderSelect(cntSELECT_BY_POSMODE_HISTORY); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+forecast+previous+"BUY" || OrderComment()==currency+forecast+previous+"SELL" || OrderComment()==currency+forecast+previous+"BUY[sl]" || OrderComment()==currency+forecast+previous+"SELL[sl]" ||OrderComment()==currency+forecast+previous+"BUY[tp]" || OrderComment()==currency+forecast+previous+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
                               }
                    if(
    currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
                    {
    double ask=MarketInfo(ordercurrency,MODE_ASK);double point1=MarketInfo(ordercurrency,MODE_POINT); ticket=OrderSend(ordercurrency,OP_BUY,lot_p,ask,30,ask-(risk*point1),ask+(reward*risk*point1),currency+forecast+previous+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_p,currency+forecast+previous+"BUY");}}
                    
                    if(
    currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
                    {
    double bid=MarketInfo(ordercurrency,MODE_BID); double point2=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_p,bid,30,bid+(risk*point2),bid-(reward*risk*point2),currency+forecast+previous+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_p,currency+forecast+previous+"SELL");}}
                    
                    }
          
          
            if(
    StringToDouble(forecast)<StringToDouble(previous))
                    {
                            
    int total1=OrdersTotal();
                               for(
    int cnt=0;cnt<total1;cnt++)
                               {
               
    bool  SelectOrderSelect(cntSELECT_BY_POSMODE_TRADES); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+forecast+previous+"BUY" || OrderComment()==currency+forecast+previous+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
                               }
                            
    int historytotal1=OrdersHistoryTotal();
                               for(
    int cnt=0;cnt<historytotal1;cnt++)
                               {
               
    bool  SelectOrderSelect(cntSELECT_BY_POSMODE_HISTORY); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+forecast+previous+"BUY" || OrderComment()==currency+forecast+previous+"SELL" || OrderComment()==currency+forecast+previous+"BUY[sl]" || OrderComment()==currency+forecast+previous+"SELL[sl]" || OrderComment()==currency+forecast+previous+"BUY[tp]" || OrderComment()==currency+forecast+previous+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
                               }
                    
    Alert("Weaker(actual vs forecast): "+currency+" "+"Time: "+time);
                    if(
    currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
                    {
    double bidd=MarketInfo(ordercurrency,MODE_BID); double point3=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_p,bidd,30,bidd+(risk*point3),bidd-(reward*risk*point3),currency+forecast+previous+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_p,currency+forecast+previous+"SELL");}}
                    
                    if(
    currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
                    {
    double askk=MarketInfo(ordercurrency,MODE_ASK); double point4=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_BUY,lot_p,askk,30,askk-(risk*point4),askk+(reward*risk*point4),currency+forecast+previous+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_p,currency+forecast+previous+"BUY");}}
                    
                    }
                   
         
         return; } 
       
       
    //(2)الدول لدخول السوق
          // عندما يتم تحرير البيانات الفعلية، ومقارنة ذلك للتنبؤ، وتأكد من عدم التداول إذا حدث يحتوي على رمز قبل الأعداد الصحيحة، على سبيل المثال، 56 $، و "$" يتسبب في EA لوقف
          
    if(StringLen(actual)>&& StringLen(forecast)>)//غير الصفر، يعتني رمزا أمام الحدث
          
    {
          
    // الفرق في المئة الفعلية للتنبؤ
          
    double percent_d_AF=MathAbs((MathAbs(StringToDouble(actual)-StringToDouble(forecast))/StringToDouble(forecast))*100);
                            
    double lot_p1=0;
                            if((
    percent_d_AF>&& percent_d_AF<=3)){lot_p1=lot1;}//0.1 lot
                            
    if((percent_d_AF>&& percent_d_AF<=6)){lot_p1=lot2;}//0.2 lots
                            
    if((percent_d_AF>&& percent_d_AF<=9)){lot_p1=lot3;}//0.3 lots
                            
    if((percent_d_AF>&& percent_d_AF<=12)){lot_p1=lot4;}//0.4 lots
                            
    if((percent_d_AF>12 && percent_d_AF<=15)){lot_p1=lot5;}//0.5 lots
                            
    if((percent_d_AF>15 && percent_d_AF<=18)){lot_p1=lot6;}//0.6 lots
                            
    if((percent_d_AF>18 && percent_d_AF<=21)){lot_p1=lot7;}//0.7 lots
                            
    if((percent_d_AF>21 && percent_d_AF<=24)){lot_p1=lot8;}//0.8 lots
                            
    if((percent_d_AF>24 && percent_d_AF<=27)){lot_p1=lot9;}//0.9 lots
                            
    if((percent_d_AF>27 && percent_d_AF<=30)){lot_p1=lot10;}//0.10 lots
                            
    if((percent_d_AF>30 && percent_d_AF<=40)){lot_p1=lot11;}//0.20 lots
                            
    if((percent_d_AF>40 && percent_d_AF<=50)){lot_p1=lot12;}//0.30 lots
                            
    if((percent_d_AF>50 && percent_d_AF<=60)){lot_p1=lot13;}//0.40 lots
                            
    if((percent_d_AF>60 && percent_d_AF<=70)){lot_p1=lot14;}//0.50 lots
                            
    if((percent_d_AF>70 && percent_d_AF<=80)){lot_p1=lot15;}//0.60 lots
                            
    if((percent_d_AF>80 && percent_d_AF<=90)){lot_p1=lot16;}//0.70 lots
                            
    if((percent_d_AF>90 && percent_d_AF<=100)){lot_p1=lot17;}//0.80 lots
                            
    if((percent_d_AF>100))                    {lot_p1=lot18;}//0.90 lots
                          
               
    if(StringToDouble(actual)>StringToDouble(forecast))
                    {
                    
    Alert("Stronger(actual vs forecast): "+currency+" "+"Time: "+time);
                            
    int total2=OrdersTotal();
                               for(
    int cnt=0;cnt<total2;cnt++)
                               {
               
    bool  Select=OrderSelect(cntSELECT_BY_POSMODE_TRADES); //تحقق أوامر فتح   DoubleToString(
                               
    if(OrderComment()==currency+actual+forecast+"BUY" || OrderComment()==currency+actual+forecast+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
                               }
                            
    int historytotal2=OrdersHistoryTotal();
                               for(
    int cnt=0;cnt<historytotal2;cnt++)
                             {
               
    bool  SelectOrderSelect(cntSELECT_BY_POSMODE_HISTORY); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+forecast+"BUY" || OrderComment()==currency+actual+forecast+"SELL" || OrderComment()==currency+actual+forecast+"BUY[sl]" || OrderComment()==currency+actual+forecast+"SELL[sl]" ||OrderComment()==currency+actual+forecast+"BUY[tp]" || OrderComment()==currency+actual+forecast+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
                               }
                    if(
    currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
                    {
    double ask=MarketInfo(ordercurrency,MODE_ASK);double point1=MarketInfo(ordercurrency,MODE_POINT); ticket=OrderSend(ordercurrency,OP_BUY,lot_p1,ask,3,ask-(risk*point1),ask+(reward*risk*point1),currency+actual+forecast+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_p1,currency+actual+forecast+"BUY");}}
                    
                    if(
    currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
                    {
    double bid=MarketInfo(ordercurrency,MODE_BID); double point2=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_p1,bid,3,bid+(risk*point2),bid-(reward*risk*point2),currency+actual+forecast+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_p1,currency+actual+forecast+"SELL");}}
                    
                    }
          
          
            if(
    StringToDouble(actual)<StringToDouble(forecast))
                    {
                            
    int total3=OrdersTotal();
                               for(
    int cnt=0;cnt<total3;cnt++)
                               {
               
    bool  SelectOrderSelect(cntSELECT_BY_POSMODE_TRADES); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+forecast+"BUY" || OrderComment()==currency+actual+forecast+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
                               }
                            
    int historytotal3=OrdersHistoryTotal();
                               for(
    int cnt=0;cnt<historytotal3;cnt++)
                               {
               
    bool  SelectOrderSelect(cntSELECT_BY_POSMODE_HISTORY); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+forecast+"BUY" || OrderComment()==currency+actual+forecast+"SELL" || OrderComment()==currency+actual+forecast+"BUY[sl]" || OrderComment()==currency+actual+forecast+"SELL[sl]" || OrderComment()==currency+actual+forecast+"BUY[tp]" || OrderComment()==currency+actual+forecast+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
                               }
                    
    Alert("Weaker(actual vs forecast): "+currency+" "+"Time: "+time);
                    if(
    currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
                    {
    double bidd=MarketInfo(ordercurrency,MODE_BID); double point3=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_p1,bidd,3,bidd+(risk*point3),bidd-(reward*risk*point3),currency+actual+forecast+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_p1,currency+actual+forecast+"SELL");}}
                    
                    if(
    currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
                    {
    double askk=MarketInfo(ordercurrency,MODE_ASK); double point4=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_BUY,lot_p1,askk,3,askk-(risk*point4),askk+(reward*risk*point4),currency+actual+forecast+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_p1,currency+actual+forecast+"BUY");}}
                    
                    }
                   
         
         return; }
          
          
          
    //(3) عندما يتم تحرير البيانات الفعلية، ومقارنته السابق (طول سلسلة من == توقعات 0)
          
    if(StringLen(actual)>&& StringLen(forecast)==&& StringLen(previous)>)
          { 
          
    //الفرق في المئة الفعلي لسابقة
          
    double percent_d_AP=MathAbs((MathAbs(StringToDouble(actual)-StringToDouble(previous))/StringToDouble(previous))*100);
                            
    double lot_pp=0;
                            if((
    percent_d_AP>&& percent_d_AP<=3)){lot_pp=lot1;}//0.1 lot
                            
    if((percent_d_AP>&& percent_d_AP<=6)){lot_pp=lot2;}//0.2 lots
                            
    if((percent_d_AP>&& percent_d_AP<=9)){lot_pp=lot3;}//0.3 lots
                            
    if((percent_d_AP>&& percent_d_AP<=12)){lot_pp=lot4;}//0.4 lots
                            
    if((percent_d_AP>12 && percent_d_AP<=15)){lot_pp=lot5;}//0.5 lots
                            
    if((percent_d_AP>15 && percent_d_AP<=18)){lot_pp=lot6;}//0.6 lots
                            
    if((percent_d_AP>18 && percent_d_AP<=21)){lot_pp=lot7;}//0.7 lots
                            
    if((percent_d_AP>21 && percent_d_AP<=24)){lot_pp=lot8;}//0.8 lots
                            
    if((percent_d_AP>24 && percent_d_AP<=27)){lot_pp=lot9;}//0.9 lots
                            
    if((percent_d_AP>27 && percent_d_AP<=30)){lot_pp=lot10;}//0.10 lots
                            
    if((percent_d_AP>30 && percent_d_AP<=40)){lot_pp=lot11;}//0.20 lots
                            
    if((percent_d_AP>40 && percent_d_AP<=50)){lot_pp=lot12;}//0.30 lots
                            
    if((percent_d_AP>50 && percent_d_AP<=60)){lot_pp=lot13;}//0.40 lots
                            
    if((percent_d_AP>60 && percent_d_AP<=70)){lot_pp=lot14;}//0.50 lots
                            
    if((percent_d_AP>70 && percent_d_AP<=80)){lot_pp=lot15;}//0.60 lots
                            
    if((percent_d_AP>80 && percent_d_AP<=90)){lot_pp=lot16;}//0.70 lots
                            
    if((percent_d_AP>90 && percent_d_AP<=100)){lot_pp=lot17;}//0.80 lots
                            
    if((percent_d_AP>100))                    {lot_pp=lot18;}//0.90 lots
          
          
            
    if(StringToDouble(actual)>StringToDouble(previous))
                    {
                    
    Alert("Stronger(actual vs previous): "+currency+" "+"Time: "+time);
                            
    int total4=OrdersTotal();
                               for(
    int cnt=0;cnt<total4;cnt++)
                               {
              
    bool  Select=   OrderSelect(cntSELECT_BY_POSMODE_TRADES); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+previous+"BUY" || OrderComment()==currency+actual+previous+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
                               }
                            
    int historytotal4=OrdersHistoryTotal();
                               for(
    int cnt=0;cnt<historytotal4;cnt++)
                               {
               
    bool  Select=   OrderSelect(cntSELECT_BY_POSMODE_HISTORY); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+previous+"BUY" || OrderComment()==currency+actual+previous+"SELL" || OrderComment()==currency+actual+previous+"BUY[sl]" || OrderComment()==currency+actual+previous+"SELL[sl]" || OrderComment()==currency+actual+previous+"BUY[tp]" || OrderComment()==currency+actual+previous+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
                               }
                    if(
    currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
                    {
    double askz=MarketInfo(ordercurrency,MODE_ASK);double point5=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_BUY,lot_pp,askz,3,askz-(risk*point5),askz+(reward*risk*point5),currency+actual+previous+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_pp,currency+actual+previous+"BUY");}}
                    
                    if(
    currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
                    {
    double bidz=MarketInfo(ordercurrency,MODE_BID); double point6=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_pp,bidz,3,bidz+(risk*point6),bidz-(reward*risk*point6),currency+actual+previous+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_pp,currency+actual+previous+"SELL");}}
                    }
          
          
         
            if(
    StringToDouble(actual)<StringToDouble(previous))
                    {
                    
    Alert("Weaker(actual vs previous): "+currency+" "+"Time: "+time);
                            
    int total5=OrdersTotal();
                               for(
    int cnt=0;cnt<total5;cnt++)
                               {
               
    bool  Select=  OrderSelect(cntSELECT_BY_POSMODE_TRADES); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+previous+"BUY" || OrderComment()==currency+actual+previous+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
                               }
                            
    int historytotal5=OrdersHistoryTotal();
                               for(
    int cnt=0;cnt<historytotal5;cnt++)
                               {
            
    bool  Select=    OrderSelect(cntSELECT_BY_POSMODE_HISTORY); //تحقق أوامر فتح
                               
    if(OrderComment()==currency+actual+previous+"BUY" || OrderComment()==currency+actual+previous+"SELL" || OrderComment()==currency+actual+previous+"BUY[sl]" || OrderComment()==currency+actual+previous+"SELL[sl]" || OrderComment()==currency+actual+previous+"BUY[tp]" || OrderComment()==currency+actual+previous+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
                               }
                    if(
    currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
                    {
    double bidx=MarketInfo(ordercurrency,MODE_BID); double point7=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_pp,bidx,3,bidx+(risk*point7),bidx-(reward*risk*point7),currency+actual+previous+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_pp,currency+actual+previous+"SELL");}}
                    
                    if(
    currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
                    {
    double askx=MarketInfo(ordercurrency,MODE_ASK); double point8=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_BUY,lot_pp,askx,3,askx-(risk*point8),askx+(reward*risk*point8),currency+actual+previous+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_pp,currency+actual+previous+"BUY");}}
                    }
           
         
         return; }
       
       
       
       
       
       
          
      }    
     }
     
    }
     
    //+------------------------------------------------------------------+
    //| نهاية الكود
    //+------------------------------------------------------------------+ 
    في الاخير ارجو من الله سبحانه وتعالى ان يوفقك
    تلميذ رمال عزالدين
    حتى تستطيع حل مشكلة فرق التوقيت فيجب أن تعرف فرق توقيت المنصه حسب توقيت جرينتش وأيضا توقيت الأخبار
    يمكنك إستخدام الداله
    كود PHP:
    TimeGMT() 
    ومقارنتها بتوقيت البروكر
    كود PHP:
    TimeCurrent() 
    حتى تستطيع معرفة فرق التوقيت
    سوف اقوم بتعديله لك بالتفصيل ووضع الشرح للإستفادة وأحييك على المجهود المبذول القوي

  10. #10
    الصورة الرمزية 2013Lemsantah
    2013Lemsantah غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2016
    الإقامة
    الجزائر
    المشاركات
    229

    افتراضي


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

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

    افتراضي

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

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

  12. #12
    الصورة الرمزية 2013Lemsantah
    2013Lemsantah غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2016
    الإقامة
    الجزائر
    المشاركات
    229

    افتراضي


    هل هناك جديد استاذي لان الزمن عندي متوقف
    توقيع العضو
    سبحانك اللهم و بحمدك سبحان الله العظيم

  13. #13
    الصورة الرمزية 2013Lemsantah
    2013Lemsantah غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2016
    الإقامة
    الجزائر
    المشاركات
    229

    افتراضي

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

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

  14. #14
    الصورة الرمزية 2013Lemsantah
    2013Lemsantah غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2016
    الإقامة
    الجزائر
    المشاركات
    229

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    حتى تستطيع حل مشكلة فرق التوقيت فيجب أن تعرف فرق توقيت المنصه حسب توقيت جرينتش وأيضا توقيت الأخبار
    يمكنك إستخدام الداله
    كود PHP:
    TimeGMT() 
    ومقارنتها بتوقيت البروكر
    كود PHP:
    TimeCurrent() 
    حتى تستطيع معرفة فرق التوقيت
    سوف اقوم بتعديله لك بالتفصيل ووضع الشرح للإستفادة وأحييك على المجهود المبذول القوي
    ارجوا ان لا ينسى موضوعي اوعلى الاقل سبب النسيان
    توقيع العضو
    سبحانك اللهم و بحمدك سبحان الله العظيم


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17