صفحة 26 من 35 الأولىالأولى ... 1620212223242526272829303132 ... الأخيرةالأخيرة
النتائج 376 إلى 390 من 524
  1. #376
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

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

    السلام عليكم
    لدي اقتراح1- وهو وظيفة ترشيح او فلترة مدى نجاح الفكرة او نضام التداول بالنسبة للازواج وعرض النسبة المؤية عن كل زوج فمن متابعتي رايت ان الانضمة المختبرة تنجح مع ازواج وتخسر مع اخرى بعث الروح في الباكتستر( نفترض ان الباكتستر تداول افتراضي) واعطائه دور تحليلي متعدد العملات وبما ان النتائج فورية
    اقتراح 2- اضافة وظيفة تتداول عدة انظمة بناءا على نسبة نجاح النظام على زوج العملات
    امامك العظم--عدل فيه هنا وامامنا ثم اخبرنا\
    كل الدوال ثابتة سوى دالة شروط الدخول--ممكن تحط فيها الف شرط. لاحظ سؤال الاختبار السابق--ثلاث مؤشرات وممكن عشرة وممكن اختراق مقاومة مع ao التي اسميها اضمن الفرص (وضحنا كيف تتم معالجتهما في مواضيع مستقلة)---فالان الاساسيات كلها جاهزة. كلها

    اذا لديك خبرة في البرمجة نريد مساهمات فعالة برمجية وليس اقتراحات فقط.


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


    اتمنى فعلا مشاركات فعالة على طريقة شرح الموضوع وليس مثل صور شادي غير الواضحة

    إما ان نكتب بإخلاص منقطع النظر او لا نكتب نهائياً
    آخر تعديل بواسطة فيلسوف البادية ، 03-08-2017 الساعة 04:20 PM

  2. #377
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

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

  3. #378
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة 2013Lemsantah مشاهدة المشاركة
    وهذا مثال على التداول الحقيقي المبني عل فلترة(Rating) التداول الافتراضي لتوضيح الفكرةالا ان عيبه باك تيست الميتا تريدر الخارق ونضام الحفظ في الملف بينما البكتستر الخلاط مميز بالنتائج اللحضية
    كما مكن وضع معلمات خارجية موحدة لاضافة مدخلات الانظمة الجديدة المختبرة شروط الدخول والاغلاق والناجحة يحفظها الخبير اتوماتيكيا في ملف مرجعي لاستخدامها في تحليل الخلاط
    ارجو من الله ان يوفقكم لما فيه خير للعباد


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

  4. #379
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

    للجميع
    من ارسل خاص, لم اقرأ الا اول سطر من محاولتك ثم خرجت, بسبب انك لاتستخم الكومنت بشكل احترافي
    لايوجد وقت اتبع اقواسك, لذا وضحها
    اي سؤال عن اي كود---اول شيء اطالع فيه الكومنت للاقواس--اذا مكتوبة بشكل احترافي اكملت
    اذا لا, تجاهلتها واعتبرت الكود سيئ جدا.
    يجب ان يكون الكومنت سلاشين ثم الجملة فوقه مباشرة


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

    افتراضي

    السلام عليكم هذه ملفات البرنامج المثال والشرح على الكود



    كود PHP:
    //+------------------------------------------------------------------+
    //|                التجارة الظاهري                                   |
    //|                                                                  |
    //+------------------------------------------------------------------+
    //+------------------------------------------------------------------+
    // تحتوي هذه المكتبة على الوظائف التالية:
    //Main:
    // + VirtualSend
    // + VirtualSelect
    // + VirtualClose -  يلغي الأوامر المعلقة ويغلق المواقف
    // + VirtualModify
    //Auxiliary:
    // + VirtualCopyPosition -- نسخ الموقف في منطقة أخرى من مجموعة
    // + VirtualHighTicket -البحث عن اشب تذكرة
    // + VirtualFileLoad - تحميل مجموعة من الصفقات من ملف
    // + VirtualFileSave - يحفظ صفيف من الصفقات إلى ملف
    // + VirtualUpdate - بتحديث المعلومات من السوق
    // + VirtualFilter - إنشاء قائمة الفهارس صفيف المواقف التي تم العثور عليها
    // + VirtualProfitHistory - بحساب قيمة المتوسط المتحرك للرصيد
    // + VirtualProfit - يحسب قيمة الربح من موقف مفتوح في اللحظة الحالية
    // + VirtualRating -يحسب تصنيفTS مربحة من حيث النسبة المئوية
    // + VirtualExist  - وتستخدم هذه الوظيفة لتقييد فتح 2 الصفقات في الخلافة من إشارة واحدة
    //+------------------------------------------------------------------+
    extern bool RatingON=true;       // - تبديل التصنيف (إذا كان تعطيل، الصفقات في الملف يجب أن تتوافق مع التداول الحقيقي)
    extern bool FastTest=true;       // - لا تقم بإنشاء الملف أثناء الاختبار
    #define  VIRT_TRADES        1    // - أوامر التجارة والمواقف
    #define  VIRT_HISTORY       0    // - تاريخ التجارة والمواقف
     
    int      Virt_Count;             // - عدد المواضع في المصفوفة (من 0 إلى 999)
    int      Virt_Index;             // -  VirtualSelect()موقف التجارة المختارة في قاعدة الوظائف
     
    int      VirtBufferSize  =  16;  // - عدد العناصر في سطر واحد من القاعدة (الخطوط التالية)
    int      Virt_Ticket[1000];      // - عدد الطلبات
    datetime Virt_OpenTime[1000];    // - وقت الافتتاح
    int      Virt_Type[1000];        // - نوع التجارة
    double   Virt_Lots[1000];        // - حجم
    string   Virt_Symbol[1000];      // - رمز
    double   Virt_OpenPrice[1000];   // - سعر الفتح
    double   Virt_StopLoss[1000];
    double   Virt_TakeProfit[1000];
    datetime Virt_CloseTime[1000];   // - وقت الإغلاق...
    double   Virt_ClosePrice[1000];  // - سعر الإغلاق
    double   Virt_Swap[1000];        // - مبادلة
    double   Virt_Profit[1000];      // - الربح في النقاط
    string   Virt_Comment[1000];     // - تعليق
    int      Virt_MagicNumber[1000]; // - عدد السحر
    datetime Virt_Expiration[1000];  // -تاريخ إلغاء أمر معلق
    int      Virt_Status[1000];      // - حالة الاوامر: 1 - فتح موقف /امر معلق؛ 0 - إغلاق موقف / إلغاء امر
    int      Virt_Filter[1000];
    int      Virt_Filter_Count;
    int      Err_Number;             // - رقم الخطأ
    string   Err_Description;        // -وصف الأخير
    //+------------------------------------------------------------------+
    double VirtualRating(int fMagicstring fSymbolint periodint applied_pricestring filename="virtual.csv"){
     
    /* ترجع الدالة تصنيف الصفقات الإيجابية
    * التي تم إنشاؤها بواسطة استراتيجية تداول واحدة أو أخرى
    * في رمز معين (100ظھ هو الأكثر ربحية تيسي، 0ظھ -الاقل ربحية)
      fMagic -  عدد السحر، والذي يستخدم لقول نظام التداول واحد من آخر
      fSymbol -  رمز، يعتبر التقييم ل
      period -عدد الصفقات الأخيرة
      applied_price -  السعر المستخدم: 0 -عملة الإيدا  ، 1 -نقاط؛ في 
      filename -  ملف الصفقات*/
      
       
    if(!RatingON) return(100);
       
    int MagicNum[];
       
    double Profit[];
       
    //double Rating[];
       
    int ij;
       
    bool MagicExist;
       
    VirtualFileLoad(filename);
       if(
    VirtualFilter(VIRT_HISTORY, -1, -1fSymbol)<1) return (0);
       for(
    i=0i<Virt_Filter_Counti++){
          
    MagicExist=false;
          for(
    j=0j<ArraySize(MagicNum); j++){
             if(
    MagicNum[j]==Virt_MagicNumber[Virt_Filter[i]]){
                
    MagicExist=true;
                break;
             }
          }
    //Next j
          
    if(!MagicExist){
             
    ArrayResize(MagicNumArraySize(MagicNum)+1);
             
    MagicNum[ArraySize(MagicNum)-1]=Virt_MagicNumber[Virt_Filter[i]];
          }
       }
    //Next i
       
    ArrayResize(ProfitArraySize(MagicNum));
       for(
    i=0i<ArraySize(MagicNum); i++){
          
    Profit[i]=VirtualProfitHistory(applied_priceperiod0, -1, -1fSymbolMagicNum[i], true)+
                    
    VirtualProfit(       applied_price,            -1, -1fSymbolMagicNum[i], true);
          if(
    Profit[i]<0Profit[i]=0;
       }
    //Next i
       
    j=ArrayMaximum(Profit); // 100%
       
    if(Profit[j]==0) return (0);
      
    // ArrayResize(Rating, ArraySize(MagicNum));
       
    for(i=0i<ArraySize(MagicNum); i++){
          if(
    fMagic==MagicNum[i]){
             return(
    100*Profit[i]/Profit[j]);
          }
       }
    //Next i
       
    return(0);
    }
    //+------------------------------------------------------------------+
    double VirtualProfit(int applied_price=1int fTicket=-1int fType=-1string fSymbol=""int fMagic=-1bool dh falsestring fComment=""){
      
    // ترجع الدالة قيمة ربح المراكز المفتوحة 
      // apply_price - السعر المستخدم: 0 - في عملة الإيداع، 1 - في نقاط؛
      // dh= صحيح - القسمة حسب عدد الأيام لحساب الربح النسبي // معلمات أخرى تتوافق مع تلك الدالةVirtualFilter ()
      // ملاحظة: يجب تحميل الملف مع المواضع لاستدعاء هذه الوظيفة.
       
    double ProfitplusdeltaDay;
       
    datetime OldDay TimeCurrent();
       if(
    VirtualFilter(VIRT_TRADESfTicketfTypefSymbolfMagicfComment)>0){
          for(
    int i=0i<Virt_Filter_Counti++){
             if(
    Virt_Type[Virt_Filter[i]]<2){
                if(
    Virt_OpenTime[Virt_Filter[i]]<OldDayOldDay=Virt_OpenTime[Virt_Filter[i]];
                if(
    applied_price==0){//في عملة الإيداع
                   
    plus=Virt_Profit[Virt_Filter[i]];
                }else{
    //في النقاط
                   
    if(Virt_Type[Virt_Filter[i]]==OP_BUY){
                      
    plus=(Virt_ClosePrice[Virt_Filter[i]]-Virt_OpenPrice[Virt_Filter[i]])/MarketInfo(Virt_Symbol[Virt_Filter[i]],MODE_POINT);
                   }else{
                      
    plus=(Virt_OpenPrice[Virt_Filter[i]]-Virt_ClosePrice[Virt_Filter[i]])/MarketInfo(Virt_Symbol[Virt_Filter[i]],MODE_POINT);
                   }
                }
                
    Profit=Profit+plus;
             }
          }
    //Next i
       
    }
       if(
    dh){
          
    deltaDay=(TimeCurrent()-OldDay)/(24*60*60);
          if(
    deltaDay<1){
             
    deltaDay=1;
          }
          
    Profit=Profit/deltaDay;
       }
       return(
    Profit);
    }
    //+------------------------------------------------------------------+
    double VirtualProfitHistory(int applied_price=1int period=0int shift=0
    int fTicket=-1int fType=-1string fSymbol=""int fMagic=-1bool dh falsestring fComment=""){
    // ترجع الدالة قيمة ربح الصفقات المغلقة
       //applied_price -  السعر المستخدم: 0 - في عملة الإيداع، 1 - في نقاط؛
       //period   -   فترة حساب المتوسط لحساب الربح. إذا كان يساوي 0، ثم لجميع الصفقات.
       //shift    -    مؤشر القيمة التي تم الحصول عليها من صفيف الصفقات (التحول مرة أخرى نسبيا إلى آخر تداول مغلق على العدد المحدد من الصفقات).
       //dh = true -  القسمة حسب عدد الأيام لحساب الربح النسبي
       // the VirtualFilter()معلمات أخرى تتوافق مع تلك الدالة
       // ملاحظة: يجب تحميل الملف مع المواضع لاستدعاء هذه الوظيفة.
       
    double ProfitplusdeltaDay;
       
    datetime beginDay=TimeCurrent(), endDay;
       
    int jk;
       if(
    VirtualFilter(VIRT_HISTORYfTicketfTypefSymbolfMagicfComment)>0){
          for(
    int i=Virt_Filter_Count-1i>=0i--){
             if(
    Virt_Type[Virt_Filter[i]]<2){
                
    k++;
                if(
    k>shift){
                   
    j++;
                   if(
    j>period && period>0) break;
                   if(
    Virt_OpenTime[Virt_Filter[i]]<beginDaybeginDay=Virt_OpenTime[Virt_Filter[i]];
                   if(
    Virt_CloseTime[Virt_Filter[i]=]=>endDayendDay=Virt_CloseTime[Virt_Filter[i]];
                   if(
    applied_price==0){//في عملة الإيداع
                      
    plus=Virt_Profit[Virt_Filter[i]];
                   }else{
    //في النقاط
                      
    if(Virt_Type[Virt_Filter[i]]==OP_BUY){
                         
    plus=(Virt_ClosePrice[Virt_Filter[i]]-Virt_OpenPrice[Virt_Filter[i]])/MarketInfo(Virt_Symbol[Virt_Filter[i]],MODE_POINT);
                      }else{
                         
    plus=(Virt_OpenPrice[Virt_Filter[i]]-Virt_ClosePrice[Virt_Filter[i]])/MarketInfo(Virt_Symbol[Virt_Filter[i]],MODE_POINT);
                      }
                   }
                   
    Profit=Profit+plus;
                }
             }
          }
    //التالى i
       
    }
       if(
    dh){
          
    deltaDay=(endDay-beginDay)/(24*60*60);
          
    //Print(TimeToStr(endDay)+" - "+TimeToStr(beginDay)+" = "+DoubleToStr(deltaDay,2)+" أ¤أ*أ¥é");
          
    if(deltaDay<1){
             
    deltaDay=1;
          }
          
    Profit=Profit/deltaDay;
       }
       return(
    Profit);
    }
    //+------------------------------------------------------------------+
    bool VirtualSelect(int indexint selectint pool=VIRT_TRADES){
       
    /* وظيفة يختار أمر لمزيد من العمل معها. لعرض ترو إذا تم تنفيذ الدالة بنجاح. 
        index   -   موقف أمر أو عدد من النظام اعتمادا على المعلمة الثانية. 
       select   -  علم وضع اختيار. يمكن أن يكون أحد القيم التالية:
       SELECT_BY_POS -يتم تمرير رقم فهرس الموضع في القائمة في معامل الفهرس،
       SELECT_BY_TICKET -  يتم تمرير عدد التذاكر في معامل الفهرس.
       pool   - مصدر البيانات للاختيار. تستخدم عندما تكون المعلمة المحددة مساوية ل SELECT_BY_POS. يمكن أن يكون أحد القيم التالية:
       VIRT_TRADES (default) -  يتم اختيار الطلب من الأوامر المفتوحة والمعلقة،
       VIRT_HISTORY -  يتم اختيار الطلب من الأوامر المغلقة والمحذوفة
         ملاحظة: يجب تحميل الملف مع المواضع لاستدعاء هذه الوظيفة.*/
       
    if(select==SELECT_BY_POS){
          if(
    VirtualFilter(pool)>0){
             if(
    index<Virt_Filter_Count){
                
    Virt_Index=Virt_Filter[index];
                return(
    true);
             }
          }
       }else{ 
    //select==SELECT_BY_TICKET
          
    if(VirtualFilter(-1,index)>0){
             
    Virt_Index=Virt_Filter[0];
             return(
    true);
          }
       }
       return(
    false);
    }
    //+------------------------------------------------------------------+
    bool VirtualModify(int ticketdouble pricedouble stoplossdouble takeprofitdatetime expirationstring filename="virtual.csv"){
       
    /*تغيير المعلمات من المواقف المفتوحة سابقا والأوامر المعلقة. لعرض ترو إذا تم تنفيذ الدالة بنجاح.
    **   انتباه!!! لا توجد شيكات لمستوى الحد الأدنى المقبول من "السعر"، SL وTP !!!  */
       
    int i;
       
    VirtualFileLoad(filename);
       if(
    VirtualFilter(VIRT_TRADESticket)>0){
          
    i=Virt_Filter[0];
          if(
    Virt_Type[i]<2){      
             if(
    stoploss>0Virt_StopLoss[i]=stoploss;
             if(
    takeprofit>0Virt_TakeProfit[i]=takeprofit;
          }else{
             if(
    price>0Virt_OpenPrice[i]=price;
             if(
    stoploss>0Virt_StopLoss[i]=stoploss;
             if(
    takeprofit>0Virt_TakeProfit[i]=takeprofit;
             if(
    expiration>0Virt_Expiration[i]=expiration;
          }
          
    VirtualFileSave(filename);
          return(
    true);
       } else {
          
    Err_Number 102;
          
    Err_Description "لم يتم العثور على عدد المواقف في محاولة لتغييره";
          return(
    false);
       }   
    }
    //+------------------------------------------------------------------+
    bool VirtualClose(int ticketstring filename="virtual.csv"){
     
    /*  موقع الإقفال. لعرض ترو إذا تم تنفيذ الدالة بنجاح. إرجاع فالس في حالة فشل الدالة في تنفيذ الدالة.
       يتم تخزين المعلومات حول الأخطاء في المتغيرات Err*/
       
    int ij;
       
    VirtualFileLoad(filename);
       if(
    VirtualFilter(VIRT_TRADESticket)>0){
          
    i=Virt_Filter[0];
          if(
    Virt_Type[i]==OP_BUY){
             
    Virt_CloseTime[i]=TimeCurrent();   // -وقت الإغلاق
             
    Virt_ClosePrice[i]=MarketInfo(Virt_Symbol[i], MODE_BID);  // - سعر الإغلاق
             
    Virt_Swap[i]=MathRound((Virt_CloseTime[i]-Virt_OpenTime[i])/(24*60*60))*MarketInfo(Virt_Symbol[i], MODE_SWAPLONG)*Virt_Lots[i];
             
    Virt_Profit[i]=(Virt_ClosePrice[i]-Virt_OpenPrice[i])*Virt_Lots[i]*MarketInfo(Virt_Symbol[i],MODE_TICKVALUE)/MarketInfo(Virt_Symbol[i], MODE_POINT)+Virt_Swap[i];
          }else if(
    Virt_Type[i]==OP_SELL){
             
    Virt_CloseTime[i]=TimeCurrent();   // - وقت الإغلاق
             
    Virt_ClosePrice[i]=MarketInfo(Virt_Symbol[i], MODE_ASK);  // - سعر الإغلاق
             
    Virt_Swap[i]=MathRound((Virt_CloseTime[i]-Virt_OpenTime[i])/(24*60*60))*MarketInfo(Virt_Symbol[i], MODE_SWAPSHORT)*Virt_Lots[i];
             
    Virt_Profit[i]=(Virt_OpenPrice[i]-Virt_ClosePrice[i])*Virt_Lots[i]*MarketInfo(Virt_Symbol[i],MODE_TICKVALUE)/MarketInfo(Virt_Symbol[i], MODE_POINT)+Virt_Swap[i];
          }else if(
    Virt_Type[i]>&& Virt_Type[i]<6){
             
    Virt_CloseTime[i]=TimeCurrent();   // - وقت الإغلاق
             
    Virt_Comment[i]=Virt_Comment[i]+"[canceled]";
          }
          for(
    j=i-1j>=0j--){
             if(
    Virt_Status[j]==0) break;
          }
    //التالى  j
          
    Virt_Status[i]=0;                  
          if(
    j<i-1){
             
    j=j+1;
             
    VirtualCopyPosition(j999);
             
    VirtualCopyPosition(ij);
             
    VirtualCopyPosition(999i);
          }
          
    VirtualFileSave(filename);
          return(
    true);
       } else {
          
    Err_Number 101;
          
    Err_Description "لم يتم العثور على عدد من المواف في محاولة لإغلاقه";
          return(
    false);
       }
    }
    //+------------------------------------------------------------------+
    int VirtualFilter(int fStatus=-1int fTicket=-1int fType=-1string fSymbol=""int fMagic=-1string fComment=""){
     
    /* تقوم الدالة بإنشاء قائمة فهارس صفيف المواضع الموجودة
    ***  وفقا للمعلمات الموجودة من مرشح.
    *** ويعود حجم القائمة
    *** ملاحظة: يجب تحميل الملف مع المواضع لاستدعاء هذه الوظيفة */
       
    Virt_Filter_Count=0;
       for(
    int i 0i<Virt_Counti++){
          if(
    fTicket==-|| Virt_Ticket[i]==fTicket){
             if(
    fType==-|| Virt_Type[i]==fType){
                if(
    fSymbol=="" || Virt_Symbol[i]==fSymbol) {
                   if(
    fComment=="" || StringFind(Virt_Comment[i], fComment)>-1) {
                      if(
    fMagic==-|| Virt_MagicNumber[i]==fMagic) {
                         if(
    fStatus==-|| Virt_Status[i]==fStatus) {
                            
    Virt_Filter[Virt_Filter_Count]=i;
                            
    Virt_Filter_Count++;
                         }
                      }
                   }
                }
             }
          }
       }
    //التالى  i
       
    return(Virt_Filter_Count);
    }
    //+------------------------------------------------------------------+
    void VirtualUpdate(string filename="virtual.csv"){
      
    /* إجراء تحديث ملف الصفقات وفقا لتغيرات السوق.
    ***  يتم تنفيذ الإجراءات التالية هنا:
    ***  + شحن المقايضات.
    ***  + الإغلاق الظاهري من الصفقات من قبل مجموعة أولية ستوبلوس و تاكيبروفيت
    ***  + تحديث سعر إغلاق المراكز المفتوحة، حساب الربح.
    ***  + فتح أوامر المعلقة؛
    ***  + انتهاء صلاحية الأوامر المعلقة التي لم يتم تشغيلها؛*/
       
    bool is_changedis_closed;
       
    int ij;
       
    VirtualFileLoad(filename);
       for(
    i=Virt_Count-1i>=0i--){
          
    is_closed=false;
          if(
    Virt_Status[i]==1) {
             
    is_changed=true;
             switch(
    Virt_Type[i]){
             case 
    OP_BUY:
                
    Virt_CloseTime[i]=TimeCurrent();   // - وقت الإغلاق
                
    Virt_ClosePrice[i]=MarketInfo(Virt_Symbol[i], MODE_BID);  // -  سعر الإغلاق
                
    Virt_Swap[i]=MathRound((Virt_CloseTime[i]-Virt_OpenTime[i])/(24*60*60))*MarketInfo(Virt_Symbol[i], MODE_SWAPLONG)*Virt_Lots[i];
                
    Virt_Profit[i]=(Virt_ClosePrice[i]-Virt_OpenPrice[i])*Virt_Lots[i]*MarketInfo(Virt_Symbol[i],MODE_TICKVALUE)/MarketInfo(Virt_Symbol[i], MODE_POINT)+Virt_Swap[i];
                if(
    Virt_TakeProfit[i]>0){
                   if(
    MarketInfo(Virt_Symbol[i], MODE_BID)>=Virt_TakeProfit[i]){
                      
    Virt_ClosePrice[i]=Virt_TakeProfit[i];  // - سعر الإغلاق
                      
    Virt_Profit[i]=(Virt_ClosePrice[i]-Virt_OpenPrice[i])*Virt_Lots[i]*MarketInfo(Virt_Symbol[i],MODE_TICKVALUE)/MarketInfo(Virt_Symbol[i], MODE_POINT)+Virt_Swap[i];
                      
    Virt_Comment[i]=Virt_Comment[i]+"[tp]";
                      
    is_closed=true;
                   }
                }
    //نهاية جني الأرباح
                
    if(Virt_StopLoss[i]>0){
                   if(
    MarketInfo(Virt_Symbol[i], MODE_BID)<=Virt_StopLoss[i]){
                      
    Virt_ClosePrice[i]=Virt_StopLoss[i];  // - سعر الإغلاق
                      
    Virt_Profit[i]=(Virt_ClosePrice[i]-Virt_OpenPrice[i])*Virt_Lots[i]*MarketInfo(Virt_Symbol[i],MODE_TICKVALUE)/MarketInfo(Virt_Symbol[i], MODE_POINT)+Virt_Swap[i];
                      
    Virt_Comment[i]=Virt_Comment[i]+"[sl]";
                      
    is_closed=true;
                   }
                }
    //نهاية وقف الخسارة
                
    break;
             case 
    OP_SELL:
                
    Virt_CloseTime[i]=TimeCurrent();   // - وقت الإغلاق
                
    Virt_ClosePrice[i]=MarketInfo(Virt_Symbol[i], MODE_ASK);  // - سعر الإغلاق
                
    Virt_Swap[i]=MathRound((Virt_CloseTime[i]-Virt_OpenTime[i])/(24*60*60))*MarketInfo(Virt_Symbol[i], MODE_SWAPSHORT)*Virt_Lots[i];
                
    Virt_Profit[i]=(Virt_OpenPrice[i]-Virt_ClosePrice[i])*Virt_Lots[i]*MarketInfo(Virt_Symbol[i],MODE_TICKVALUE)/MarketInfo(Virt_Symbol[i], MODE_POINT)+Virt_Swap[i];
                if(
    Virt_TakeProfit[i]>0){
                   if(
    MarketInfo(Virt_Symbol[i], MODE_ASK)<=Virt_TakeProfit[i]){
                      
    Virt_ClosePrice[i]=Virt_TakeProfit[i];  // - سعر الإغلاق
                      
    Virt_Profit[i]=(Virt_OpenPrice[i]-Virt_ClosePrice[i])*Virt_Lots[i]*MarketInfo(Virt_Symbol[i],MODE_TICKVALUE)/MarketInfo(Virt_Symbol[i], MODE_POINT)+Virt_Swap[i];
                      
    Virt_Comment[i]=Virt_Comment[i]+"[tp]";
                      
    is_closed=true;
                   }
                }
    //نهاية جني الأرباح
                
    if(Virt_StopLoss[i]>0){
                   if(
    MarketInfo(Virt_Symbol[i], MODE_ASK)>=Virt_StopLoss[i]){
                      
    Virt_ClosePrice[i]=Virt_StopLoss[i];  // - سعر الإغلاق
                      
    Virt_Profit[i]=(Virt_OpenPrice[i]-Virt_ClosePrice[i])*Virt_Lots[i]*MarketInfo(Virt_Symbol[i],MODE_TICKVALUE)/MarketInfo(Virt_Symbol[i], MODE_POINT)+Virt_Swap[i];
                      
    Virt_Comment[i]=Virt_Comment[i]+"[sl]";
                      
    is_closed=true;
                   }
                }
    //نهاية وقف الخسارة
                
    break;
             case 
    OP_BUYLIMIT:
                if(
    MarketInfo(Virt_Symbol[i], MODE_ASK)<=Virt_OpenPrice[i]){
                   
    Virt_Type[i]=OP_BUY;
                }
                break;
             case 
    OP_SELLLIMIT:
                if(
    MarketInfo(Virt_Symbol[i], MODE_BID)>=Virt_OpenPrice[i]){
                   
    Virt_Type[i]=OP_SELL;
                }
                break;
             case 
    OP_BUYSTOP:
                if(
    MarketInfo(Virt_Symbol[i], MODE_ASK)>=Virt_OpenPrice[i]){
                   
    Virt_Type[i]=OP_BUY;
                }
                break;
             case 
    OP_SELLSTOP:
                if(
    MarketInfo(Virt_Symbol[i], MODE_BID)<=Virt_OpenPrice[i]){
                   
    Virt_Type[i]=OP_SELL;
                }
                break;
             }
    //نهاية التبديل
             
    if(Virt_Type[i]>&& Virt_Type[i]<6) {
                if(
    Virt_Expiration[i]>0) {
                   if(
    TimeCurrent()>Virt_Expiration[i]) {
                      
    Virt_Comment[i]=Virt_Comment[i]+"[expiration]";
                      
    is_closed=true;
                   }
                }
             }
             if(
    is_closed){
                for(
    j=ij>=0j--){
                   if(
    Virt_Status[j]==0) break;
                }
    //التالى  j
                
    Virt_Status[i]=0;                  
                if(
    j<i-1){
                   
    j=j+1;
                   
    VirtualCopyPosition(j999);
                   
    VirtualCopyPosition(ij);
                   
    VirtualCopyPosition(999i);
                }
             }
    //إنهاء إذا (مغلق)
          
    } else {
             break;
          }
    //(Virt.Status[i]==1)انهاء اذا 
       
    }//التالى  i
       
    if(is_changedVirtualFileSave(filename);
    }
    //+------------------------------------------------------------------+
    void VirtualCopyPosition(int FirstPositionint SecondPosition){
      
    // إجراء نسخ الموضع إلى خلية أخرى من المصفوفة
       
    Virt_Ticket[SecondPosition]=Virt_Ticket[FirstPosition];      // - عدد الطلبات
       
    Virt_OpenTime[SecondPosition]=Virt_OpenTime[FirstPosition];    // - Time of opening
       
    Virt_Type[SecondPosition]=Virt_Type[FirstPosition];        // - وقت الافتتاح
       
    Virt_Lots[SecondPosition]=Virt_Lots[FirstPosition];        // -حجم
       
    Virt_Symbol[SecondPosition]=Virt_Symbol[FirstPosition];      // -رمز
       
    Virt_OpenPrice[SecondPosition]=Virt_OpenPrice[FirstPosition];   // - سعر الافتتاح
       
    Virt_StopLoss[SecondPosition]=Virt_StopLoss[FirstPosition];
       
    Virt_TakeProfit[SecondPosition]=Virt_TakeProfit[FirstPosition];
       
    Virt_CloseTime[SecondPosition]=Virt_CloseTime[FirstPosition];   // - وقت الإغلاق
       
    Virt_ClosePrice[SecondPosition]=Virt_ClosePrice[FirstPosition];  // - سعر الإغلاق
       
    Virt_Swap[SecondPosition]=Virt_Swap[FirstPosition];        // - مبادلة
       
    Virt_Profit[SecondPosition]=Virt_Profit[FirstPosition];      // - الربح في النقاط
       
    Virt_Comment[SecondPosition]=Virt_Comment[FirstPosition];     // - تعليقات
       
    Virt_MagicNumber[SecondPosition]=Virt_MagicNumber[FirstPosition]; // -عدد السحر
       
    Virt_Expiration[SecondPosition]=Virt_Expiration[FirstPosition];  // - تاريخ إلغاء أمر معلق
       
    Virt_Status[SecondPosition]=Virt_Status[FirstPosition];      // - حالة المواقف : 1 - فتح موقف / أمر معلق؛ 0 -غلق موقف / أمر معلق
    }
    //+------------------------------------------------------------------+
    int VirtualSend(string symbolint cmddouble volumedouble price,
     
    int slippagedouble stoplossdouble takeprofitstring comment="",
      
    int magic=0datetime expiration=0string filename="virtual.csv") {
      
    /* الوظيفة الرئيسية التي يتم استخدامها لفتح المراكز ووضع الأوامر المعلقة.
    ***إرجاع رقم التذكرة، الذي تم تعيينه إلى النظام من قبل خادم التجارة، أو -1 في حالة الفشل.
    ***
    ***المعلمات:
       symbol   -    اسم الأداة المالية يتم تنفيذ عملية تجارية من قبل. 
       cmd   -    العملية التجارية. يمكن أن يكون أي قيمة من العمليات التجارية. 
       volume   -   عدد من القطع. 
       price   -    سعر الافتتاح.. 
       slippage   -  الحد الأقصى الانحراف المقبول من السعر في نقاط لأوامر السوق (شراء أو بيع أوامر).
       stoploss   -   سعر المركز الختامي عند الوصول إلى مستوى غير ربحي (0 إذا لم يكن هناك مثل هذا المستوى).
       takeprofit   -   سعر إغلاق الصفقة عند الوصول إلى مستوى الربحية (0 إذا لم يكن هناك مثل هذا المستوى).
       comment   -   نص التعليق على النظام. يمكن تغيير الجزء الأخير من التعليق من قبل خادم التجارة.
       magic   -   عدد ماجيك من النظام. يمكن استخدامه كمعرف يحدده المستخدم.
       expiration   -   وقت انتهاء الصلاحية من أجل معلق.
       filename   - اسم ملف الصفقات الافتراضية من الدليل TerminalPath()+"\experts\files" */
       
       //---------------------------------------------
       //كتلة التحقق:
       
    if(cmd==OP_BUY){
          
    //يجب أن يكون سعر فتح الشراء بالقرب أسك + - الانزلاق
          
    if((price>MarketInfo(symbol,MODE_ASK)+slippage*MarketInfo(symbol,MODE_POINT))||
             (
    price<MarketInfo(symbol,MODE_ASK)-slippage*MarketInfo(symbol,MODE_POINT))){
             
    Err_Number 1;
             
    Err_Description "سعر فتح الموقف بعيد جدا عن السوق";
             return(-
    1);
          }
       }else if(
    cmd==OP_SELL){
          if((
    price>MarketInfo(symbol,MODE_BID)+slippage*MarketInfo(symbol,MODE_POINT))||
             (
    price<MarketInfo(symbol,MODE_BID)-slippage*MarketInfo(symbol,MODE_POINT))){
             
    Err_Number 1;
             
    Err_Description "سعر فتح الموقف بعيد جدا عن السوق";
             return(-
    1);
          }
       }else if(
    cmd==OP_BUYSTOP){
          if(
    price<=MarketInfo(symbol,MODE_ASK)+MarketInfo(symbol,MODE_STOPLEVEL)*MarketInfo(symbol,MODE_POINT)){
             
    Err_Number 2;
             
    Err_Description "سعر فتح أمر معلق قريب جدا من السوق";
             return(-
    1);
          }
       }else if(
    cmd==OP_SELLSTOP){
          if(
    price>=MarketInfo(symbol,MODE_BID)-MarketInfo(symbol,MODE_STOPLEVEL)*MarketInfo(symbol,MODE_POINT)){
             
    Err_Number 2;
             
    Err_Description "سعر فتح أمر معلق قريب جدا من السوق";
             return(-
    1);
          }
       }else if(
    cmd==OP_BUYLIMIT){
          if(
    price>=MarketInfo(symbol,MODE_ASK)-MarketInfo(symbol,MODE_STOPLEVEL)*MarketInfo(symbol,MODE_POINT)){
             
    Err_Number 2;
             
    Err_Description "سعر فتح أمر معلق قريب جدا من السوق";
             return(-
    1);
          }
       }else if(
    cmd==OP_SELLLIMIT){
          if(
    price<=MarketInfo(symbol,MODE_BID)+MarketInfo(symbol,MODE_STOPLEVEL)*MarketInfo(symbol,MODE_POINT)){
             
    Err_Number 2;
             
    Err_Description "سعر فتح أمر معلق قريب جدا من السوق";
             return(-
    1);
          }
       }
       
       if(
    stoploss!=0.0){
          if((
    cmd==OP_BUY) || (cmd==OP_BUYSTOP) || (cmd==OP_BUYLIMIT)){// Buy
             
    if(price-stoploss<=MarketInfo(symbol,MODE_STOPLEVEL)*MarketInfo(symbol,MODE_POINT)){ 
                
    Err_Number 3;
                
    Err_Description "ستوبلوس أو مستوى تاكيبروفيت قريب جدا من السعر";
                return(-
    1);
             }
          }else if((
    cmd==OP_SELL) || (cmd==OP_SELLSTOP) || (cmd==OP_SELLLIMIT)){// Sell
             
    if(stoploss-price<=MarketInfo(symbol,MODE_STOPLEVEL)*MarketInfo(symbol,MODE_POINT)){ 
                
    Err_Number 3;
                
    Err_Description "ستوبلوس أو مستوى تاكيبروفيت قريب جدا من السعر";
                return(-
    1);
             }
          }
       }
       if(
    takeprofit!=0.0){
          if((
    cmd==OP_BUY) || (cmd==OP_BUYSTOP) || (cmd==OP_BUYLIMIT)){// Buy
             
    if(takeprofit-price<=MarketInfo(symbol,MODE_STOPLEVEL)*MarketInfo(symbol,MODE_POINT)){
                
    Err_Number 3;
                
    Err_Description "ستوبلوس أو مستوى تاكيبروفيت قريب جدا من السعر";
                return(-
    1);
             }
          }else if((
    cmd==OP_SELL) || (cmd==OP_SELLSTOP) || (cmd==OP_SELLLIMIT)){// Sell
             
    if(price-takeprofit<=MarketInfo(symbol,MODE_STOPLEVEL)*MarketInfo(symbol,MODE_POINT)){
                
    Err_Number 3;
                
    Err_Description "ستوبلوس أو مستوى تاكيبروفيت قريب جدا من السعر";
                return(-
    1);
             }
          }      
       }
       
       if((
    volume<MarketInfo(symbolMODE_MINLOT))||
          (
    volume>MarketInfo(symbolMODE_MAXLOT))){
          
    Err_Number 4;
          
    Err_Description "حجم غير صحيح";
          return(-
    1);
       }
       
       if(
    expiration<=TimeCurrent() && expiration!=0){
          
    Err_Number 5;
          
    Err_Description "تاريخ انتهاء الصلاحية غير صحيح";
          return(-
    1);
       }
       
       
       
    //---------------------------------------------
       // الحماية من تجاوز الصفيف
       
    int ijk;
       
    VirtualFileLoad(filename);
       
       if(
    Virt_Count>998){
          
    //حذف جميع الأوامر المعلقة الملغاة
          
    for(i=0i<Virt_Counti++){
             if((
    Virt_Type[i]>1) && (Virt_Status[i]==0)) {
                
    //يتم نقل جميع الصفقات الموجودة أسفل هذا الطلب المعلق إلى مستوى واحد:
                
    for(j=ij<Virt_Count-1j++) {
                   
    Virt_Ticket[j] = Virt_Ticket[j+1];
                   
    Virt_OpenTime[j] = Virt_OpenTime[j+1];
                   
    Virt_Type[j] = Virt_Type[j+1];
                   
    Virt_Lots[j] = Virt_Lots[j+1];
                   
    Virt_Symbol[j] = Virt_Symbol[j+1];
                   
    Virt_OpenPrice[j] = Virt_OpenPrice[j+1];
                   
    Virt_StopLoss[j] = Virt_StopLoss[j+1];
                   
    Virt_TakeProfit[j] = Virt_TakeProfit[j+1];
                   
    Virt_CloseTime[j] = Virt_CloseTime[j+1];
                   
    Virt_ClosePrice[j] = Virt_ClosePrice[j+1];
                   
    Virt_Swap[j] = Virt_Swap[j+1];
                   
    Virt_Profit[j] = Virt_Profit[j+1];
                   
    Virt_Comment[j] = Virt_Comment[j+1];
                   
    Virt_MagicNumber[j] = Virt_MagicNumber[j+1];
                   
    Virt_Expiration[j] = Virt_Expiration[j+1];
                   
    Virt_Status[j] = Virt_Status[j+1];
                }
    //التالى  j
                
    Virt_Count--;
             }
          }
    //التالى  i
          //لبحث عن أول تداول مغلق
          
    for(i=0i<Virt_Counti++){
             if((
    Virt_Type[i]<2) && (Virt_Status[i]==0)) {
                break;
             }
          }
    //التالى  i
          
    if(i==Virt_Count){
             
    Err_Number 402;
             
    Err_Description "عدد الصفقات المفتوحة تجاوز الحد الأقصى المسموح به للمستوى! يجب إعادة صياغة نظام التداول.";
             return(-
    1);
          }else{
             
    // البحث عن الصفقة المغلقة الثانية
             
    for(j=i+1j<Virt_Countj++) {
                if(
    Virt_Status[j]==0) {
                   break;
                }
             }
    //التالى  j
             
    if(j==Virt_Count){
                
    Err_Number 402;
                
    Err_Description "عدد الصفقات المفتوحة تجاوز الحد الأقصى المسموح به للمستوى! يجب إعادة صياغة نظام التداول.";
                return(-
    1);
             }else{
                
    //إحضار نتيجة تداولين (1-st and 2-nd) في أول تداول مغلق:
                
    Virt_Ticket[i] = Virt_Ticket[j];
                
    Virt_OpenTime[i] = Virt_OpenTime[j];
                
    Virt_Type[i] = -1;
                
    Virt_Lots[i] = Virt_Lots[i]+Virt_Lots[j];
                
    Virt_Symbol[i] = "";
                
    Virt_OpenPrice[i] = 0;
                
    Virt_StopLoss[i] = 0;
                
    Virt_TakeProfit[i] = 0;
                
    Virt_CloseTime[i] = Virt_CloseTime[j];
                
    Virt_ClosePrice[i] = 0;
                
    Virt_Swap[i] = Virt_Swap[i]+Virt_Swap[j];
                
    Virt_Profit[i] = Virt_Profit[i]+Virt_Profit[j];
                
    Virt_Comment[i] = "Archive";
                
    Virt_MagicNumber[i] = Virt_MagicNumber[j];
                
    Virt_Expiration[i] = Virt_Expiration[j];
                
    //وتنتقل جميع الصفقات الموجودة تحت التجارة المغلقة الثانية إلى مستوى أعلى:
                
    for(k=jk<Virt_Count-1k++) {
                   
    Virt_Ticket[k] = Virt_Ticket[k+1];
                   
    Virt_OpenTime[k] = Virt_OpenTime[k+1];
                   
    Virt_Type[k] = Virt_Type[k+1];
                   
    Virt_Lots[k] = Virt_Lots[k+1];
                   
    Virt_Symbol[k] = Virt_Symbol[k+1];
                   
    Virt_OpenPrice[k] = Virt_OpenPrice[k+1];
                   
    Virt_StopLoss[k] = Virt_StopLoss[k+1];
                   
    Virt_TakeProfit[k] = Virt_TakeProfit[k+1];
                   
    Virt_CloseTime[k] = Virt_CloseTime[k+1];
                   
    Virt_ClosePrice[k] = Virt_ClosePrice[k+1];
                   
    Virt_Swap[k] = Virt_Swap[k+1];
                   
    Virt_Profit[k] = Virt_Profit[k+1];
                   
    Virt_Comment[k] = Virt_Comment[k+1];
                   
    Virt_MagicNumber[k] = Virt_MagicNumber[k+1];
                   
    Virt_Expiration[k] = Virt_Expiration[k+1];
                   
    Virt_Status[k] = Virt_Status[k+1];
                }
    //Next k
                
    Virt_Count--;
             }
          }
       }
       
    //---------------------------------------------
       //إضافة موضع جديد إلى المصفوفة
       
    Virt_Count++;
       
    Virt_Ticket[Virt_Count-1] = VirtualHighTicket()+1;
       
    Virt_OpenTime[Virt_Count-1] = TimeCurrent();
       
    Virt_Type[Virt_Count-1] = cmd;
       
    Virt_Lots[Virt_Count-1] = volume;
       
    Virt_Symbol[Virt_Count-1] = symbol;
       
    Virt_OpenPrice[Virt_Count-1] = price;
       
    Virt_StopLoss[Virt_Count-1] = stoploss;
       
    Virt_TakeProfit[Virt_Count-1] = takeprofit;
       
    Virt_Comment[Virt_Count-1] = comment;
       
    Virt_MagicNumber[Virt_Count-1] = magic;
       
    Virt_Expiration[Virt_Count-1] = expiration;
       
    Virt_Status[Virt_Count-1] = 1;
       
    //---------------------------------------------
       //حفظ التغييرات
       
    VirtualFileSave(filename);
       return(
    Virt_Ticket[Virt_Count-1]);
    }
    //+------------------------------------------------------------------+
    int VirtualHighTicket(){
       
    //البحث عن احدث تذكرة
       
    int ij;
       for(
    i=0i<Virt_Counti++){
          if(
    Virt_Ticket[i]>j){
             
    j=Virt_Ticket[i];
          }
       }
    //التالى  i
       
    return(j);
    }
    //+------------------------------------------------------------------+
    int VirtualFileLoad(string file) {
       
    //وظيفة تبحث في التداول من الملف إلى صفيف من الصفقات
       //ويعود عدد الخطوط المحملة.
       
    if(FastTest){
          if(
    IsTesting()) return(0);
       }
       
    int kCount;
       
    string buffer[];
       
    ArrayResize(buffer,VirtBufferSize*1000);
       
    int handle=FileOpen(file,FILE_CSV|FILE_READ,';');
       if(
    handle<1) {
          
    Err_Number 401;
          
    Err_Description "لم يتم العثور على ملف الصفقات";
          return(-
    1);
       } else {
          
    Count=0;
         
    // قراءة الملف
          
    while(!FileIsEnding(handle)){
             
    buffer[Count]=FileReadString(handle);
             
    Count++;
          }
          
    Count--;
          
    FileClose(handle);
          
          
    //املأ الصفيف
          
    Virt_Count=0;
          
    k=VirtBufferSize;
          
    //Print("Loaded ",Count/VirtBufferSize-1," lines");
          
    while(Virt_Count<Count/VirtBufferSize-1) {
             
    Virt_Ticket[Virt_Count]= StrToInteger(buffer[k]);        // - عدد من الاوامر
             
    Virt_OpenTime[Virt_Count] = StrToTime(buffer[k+1]);      // - وقت الافتتاح
             
    Virt_Type[Virt_Count] = StrToInteger(buffer[k+2]);       // - نوع التجارة
             
    Virt_Lots[Virt_Count] = StrToDouble(buffer[k+3]);        // - حجم
             
    Virt_Symbol[Virt_Count] = buffer[k+4];                   // - رمز
             
    Virt_OpenPrice[Virt_Count] = StrToDouble(buffer[k+5]);   // - سعر الافتتاح
             
    Virt_StopLoss[Virt_Count] = StrToDouble(buffer[k+6]);
             
    Virt_TakeProfit[Virt_Count] = StrToDouble(buffer[k+7]);
             
    Virt_CloseTime[Virt_Count] = StrToTime(buffer[k+8]);     // - وقت الإغلاق
             
    Virt_ClosePrice[Virt_Count] = StrToDouble(buffer[k+9]);  // -  سعر الإغلاق
             
    Virt_Swap[Virt_Count] = StrToDouble(buffer[k+10]);       // - مبادلة
             
    Virt_Profit[Virt_Count] = StrToDouble(buffer[k+11]);     // - الربح في النقاط
             
    Virt_Comment[Virt_Count] = buffer[k+12];                 // - تعليقات
             
    Virt_MagicNumber[Virt_Count] = StrToInteger(buffer[k+13]);//- عدد السحر
             
    Virt_Expiration[Virt_Count] = StrToTime(buffer[k+14]);   // -تاريخ إلغاء أمر معلق
             
    Virt_Status[Virt_Count] = StrToInteger(buffer[k+15]);    // - حالة المواقف : 1 - فتح موقف / أمر معلق؛ 0 -غلق موقف / أمر معلق
             
    k=k+VirtBufferSize;
             
    Virt_Count++;
          }
          return(
    Virt_Count);
       }
    }
    //+------------------------------------------------------------------+
    void VirtualFileSave(string file) {
    //إجراء حفظ صفيف من الصفقات إلى ملف محدد.
       
    if(FastTest){
          if(
    IsTesting()) return;
       }
       
    int Count=0;
       
    int handle=FileOpen(file,FILE_CSV|FILE_WRITE,';');
       
    FileWrite(handle"Order name","Open time","Type","Volume","Symbol","Open price","S/L","T/P",
       
    "Close time","Close price","Swap","Profit","Comment","Magic number","Expiration","State");
       
    //Saving to the file
       
    while(Count<Virt_Count) {
          
    //احتمال التحول من البيانات أمر ضروري
          
    FileWrite(handle,
          
    Virt_Ticket[Count],
          
    TimeToStr(Virt_OpenTime[Count]),
          
    Virt_Type[Count],
          
    Virt_Lots[Count],
          
    Virt_Symbol[Count],
          
    Virt_OpenPrice[Count],
          
    Virt_StopLoss[Count],
          
    Virt_TakeProfit[Count],
          
    TimeToStr(Virt_CloseTime[Count]),
          
    Virt_ClosePrice[Count],
          
    Virt_Swap[Count],
          
    Virt_Profit[Count],
          
    Virt_Comment[Count],
          
    Virt_MagicNumber[Count],
          
    TimeToStr(Virt_Expiration[Count]),
          
    Virt_Status[Count]
          );
          
    Count++;
       }
       
    FileClose(handle);   
       Print(
    "Written ",Count," lines");   
    }
    //+------------------------------------------------------------------+
    bool VirtualExist(datetime TimeOpenCandleint fMagic=0){
       
    VirtualFilter(VIRT_TRADES, -1, -1Symbol(), fMagic);
       for(
    int i=0i<Virt_Filter_Counti++){
          if(
    Virt_OpenTime[Virt_Filter[i]=]=>=TimeOpenCandle){
             return(
    true);
          }
       }
    //التالى  i
       
    return(false);
    }
    //+------------------------------------------------------------------+ 
    آخر تعديل بواسطة 2013Lemsantah ، 04-08-2017 الساعة 04:04 PM
    توقيع العضو
    سبحانك اللهم و بحمدك سبحان الله العظيم

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

    افتراضي

    كود PHP:
    // لا ينصح بتغيير الإطار الزمني بعد إرفاق إي لرسم بياني!
    // من المقبول إضافة الرمز إلى أنظمة التداول الأخرى القادرة على العمل
    // استقرت في نفس الإطار الزمني كما استراتيجيات أخرى.

    #include <virtualTrade.mqh>
    #include <RealTrade.mqh>
    //+------------------------------------------------------------------+
    extern string file="virtual.csv"// - ملف التداول الظاهري
    extern int MinRating=50;    // - الحد الأدنى من التصنيف (من حيث النسبة المئوية) لفتح موقف حقيقي
    extern string _tmp1_="---- Trading system 1 ----";//النظام 1
    extern int    T1_Enabled 1//1 - تمكين؛ 0 - تعطيل....
    extern int    T1_Magic 101//عدد السحر
    extern double T1_lot 0.1;  // قيمة الحجم الثابت
    extern int T1_Fast  10;     // فترة سريعة ÌÀ
    extern int T1_Slow  =100;     //فترة بطيئة  ÌÀ
    extern int T1_TS  70;     // توقف زائدة
    extern int T1_PeriodRating=20// - فترة حساب المتوسط من التصنيف 

    extern string _tmp2_="---- Trading system 2 ----";
    extern int    T2_Enabled 1//1 - تمكين؛ 0 - تعطيل....
    extern int    T2_Magic 102// عدد السحر
    extern double T2_lot 0.1;  // قيمة الحجم الثابت
    extern int T2_PeriodCCI=30;
    extern int T2_LevelCCI=200;
    extern int T2_SL=50;         // إيقاف الخسارة
    extern int T2_PeriodRating=10// - فترة حساب المتوسط من التصنيف 

    extern string _tmp3_="---- Trading system 3 ----";
    extern int    T3_Enabled 1//1 - تمكين؛ 0 - تعطيل....
    extern int    T3_Magic 103// عدد السحر
    extern double T3_lot 0.1;  //قيمة الحجم الثابت
    extern int    T3_Fast  30;  // فترة سريعة ÌÀ
    extern int    T3_Slow  =200;  // فترة بطيئة  ÌÀ
    extern int    T3_TS  50;  // توقف زائدة
    extern int    T3_PeriodRating=2// -فترة حساب المتوسط من التصنيف 

    extern string _tmp4_="---- Trading system 4 ----";
    extern int    T4_Enabled 1//1 - تمكين؛ 0 - تعطيل....
    extern int    T4_Magic 104//عدد السحر
    extern double T4_lot 0.1;  // قيمة الحجم الثابت
    extern double T4_SL 50;
    extern double T4_TS 50;
    extern double T4_LimitMACD 0.002;
    extern int    T4_PeriodRating=20// - فترة حساب المتوسط من التصنيف 

    extern string _tmp5_="---- Trading system 5 ----";
    extern int    T5_Enabled 1// 1 - تمكين؛ 0 - تعطيل....
    extern int    T5_Magic 105//عدد السحر
    extern double T5_lot 0.1;  //قيمة الحجم الثابت
    extern int T5_PeriodCCI=90;
    extern int T5_LevelCCI=100;
    extern int T5_TralingCCI=100;
    extern int T5_SL=50;
    extern int T5_TS1=50//لمرة واحدة وقف زائدة (خطوة وقف الخسارة إلى مستوى التعادل)
    extern int T5_PeriodRating=10// - فترة حساب المتوسط من التصنيف 


    //+------------------------------------------------------------------+
    //| Expert initialization function                                   |
    //+------------------------------------------------------------------+
    int OnInit()
      {
    if(
    Digits==|| Digits==3)Q=10;
       else 
    Q=1;

       if(
    Digits<4)
         {
          
    point=0.01;
          
    digits=2;
         }
       else
         {
          
    point=0.0001;
          
    digits=4;
       }
       return(
    INIT_SUCCEEDED);
      }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
      {
     
    FastTest=false;
       
    VirtualFileSave(file);
       
      }
    //+------------------------------------------------------------------+
    //| Expert tick function                                             |
    //+------------------------------------------------------------------+
    void OnTick()
      {
     
    VirtualUpdate(file);
       
    Closings();
       
    Accompaniment();
       
    Openings();
       
      }
    //+------------------------------------------------------------------+
    //| Expert  Closings function                                        |
    //+------------------------------------------------------------------+
    void Closings(){
       
    //إجراء إغلاق موضع بإشارة
       
    int ij;
       
    double PriceClose;
       
    int myFilter[];
       
    //----------------------------------- النظام 1
       
    if(!(IsTesting() && T1_Enabled!=1)){
          
    j=OrdersTotal();
          for(
    i=0i<ji++){
             if(
    OrderSelect(i,SELECT_BY_POS)){
                if(
    OrderMagicNumber()==T1_Magic){
                   if(
    T1_SignalClose(OrderType())){
                      if(
    OrderType()==OP_BUY){
                         
    PriceClose=MarketInfo(Symbol(),MODE_BID);
                      }else if(
    OrderType()==OP_SELL){
                         
    PriceClose=MarketInfo(Symbol(),MODE_ASK);
                      }
                      if(!
    Block())bool close4 OrderClose(OrderTicket(), OrderLots(), PriceCloseSlippage*Q);
                   }
                }
             }
          }
    //التالى i

          
    VirtualFileLoad(file);
          
    VirtualFilter(VIRT_TRADES, -1, -1Symbol(), T1_Magic);
          
    ArrayResize(myFilterVirt_Filter_Count);
          for(
    i=0i<Virt_Filter_Counti++){
             
    myFilter[i]=Virt_Filter[i];
          }
    //Next i
          
    for(i=0i<ArraySize(myFilter); i++){
             if(
    T1_SignalClose(Virt_Type[myFilter[i]])){
                
    VirtualClose(Virt_Ticket[myFilter[i]], file);
             }
          }
    //التالى i
       
    }
       
    //----------------------------------- النظام 2
       
    if(!(IsTesting() && T2_Enabled!=1)){
          
    j=OrdersTotal();
          for(
    i=0i<ji++){
             if(
    OrderSelect(i,SELECT_BY_POS)){
                if(
    OrderMagicNumber()==T2_Magic){
                   if(
    T2_SignalClose(OrderType())){
                      if(
    OrderType()==OP_BUY){
                         
    PriceClose=MarketInfo(Symbol(),MODE_BID);
                      }else if(
    OrderType()==OP_SELL){
                         
    PriceClose=MarketInfo(Symbol(),MODE_ASK);
                      }
                      if(!
    Block())bool close3 OrderClose(OrderTicket(), OrderLots(), PriceCloseSlippage*Q);
                   }
                }
             }
          }
    //التالى i
          
    VirtualFileLoad(file);
          
    VirtualFilter(VIRT_TRADES, -1, -1Symbol(), T2_Magic);
          
    ArrayResize(myFilterVirt_Filter_Count);
          for(
    i=0i<Virt_Filter_Counti++){
             
    myFilter[i]=Virt_Filter[i];
          }
    //Next i
          
    for(i=0i<ArraySize(myFilter); i++){
             if(
    T2_SignalClose(Virt_Type[myFilter[i]])){
                
    VirtualClose(Virt_Ticket[myFilter[i]], file);
             }
          }
    //التالى i
       
    }
       
    //-----------------------------------النظام 3
       
    if(!(IsTesting() && T3_Enabled!=1)){
          
    j=OrdersTotal();
          for(
    i=0i<ji++){
             if(
    OrderSelect(i,SELECT_BY_POS)){
                if(
    OrderMagicNumber()==T3_Magic){
                   if(
    T3_SignalClose(OrderType())){
                      if(
    OrderType()==OP_BUY){
                         
    PriceClose=MarketInfo(Symbol(),MODE_BID);
                      }else if(
    OrderType()==OP_SELL){
                         
    PriceClose=MarketInfo(Symbol(),MODE_ASK);
                      }
                      if(!
    Block())bool close2 OrderClose(OrderTicket(), OrderLots(), PriceCloseSlippage*Q);
                   }
                }
             }
          }
    //التالى i
          
    VirtualFileLoad(file);
          
    VirtualFilter(VIRT_TRADES, -1, -1Symbol(), T3_Magic);
          
    ArrayResize(myFilterVirt_Filter_Count);
          for(
    i=0i<Virt_Filter_Counti++){
             
    myFilter[i]=Virt_Filter[i];
          }
    //Next i
          
    for(i=0i<ArraySize(myFilter); i++){
             if(
    T3_SignalClose(Virt_Type[myFilter[i]])){
                
    VirtualClose(Virt_Ticket[myFilter[i]], file);
             }
          }
    //التالى i
       
    }
       
    //----------------------------------- النظام 4
       
    if(!(IsTesting() && T4_Enabled!=1)){
          
    j=OrdersTotal();
          for(
    i=0i<ji++){
             if(
    OrderSelect(i,SELECT_BY_POS)){
                if(
    OrderMagicNumber()==T4_Magic){
                   if(
    T4_SignalClose(OrderType())){
                      if(
    OrderType()==OP_BUY){
                         
    PriceClose=MarketInfo(Symbol(),MODE_BID);
                      }else if(
    OrderType()==OP_SELL){
                         
    PriceClose=MarketInfo(Symbol(),MODE_ASK);
                      }
                      if(!
    Block()) bool close =OrderClose(OrderTicket(), OrderLots(), PriceCloseSlippage*Q);
                   }
                }
             }
          }
    //Next i
          
    VirtualFileLoad(file);
          
    VirtualFilter(VIRT_TRADES, -1, -1Symbol(), T4_Magic);
          
    ArrayResize(myFilterVirt_Filter_Count);
          for(
    i=0i<Virt_Filter_Counti++){
             
    myFilter[i]=Virt_Filter[i];
          }
    //Next i
          
    for(i=0i<ArraySize(myFilter); i++){
             if(
    T4_SignalClose(Virt_Type[myFilter[i]])){
                
    VirtualClose(Virt_Ticket[myFilter[i]], file);
             }
          }
    //التالى i
       
    }
       
    //----------------------------------- النظام 5
       
    if(!(IsTesting() && T5_Enabled!=1)){
          
    j=OrdersTotal();
          for(
    i=0i<ji++){
             if(
    OrderSelect(i,SELECT_BY_POS)){
                if(
    OrderMagicNumber()==T5_Magic){
                   if(
    T5_SignalClose(OrderType())){
                      if(
    OrderType()==OP_BUY){
                         
    PriceClose=MarketInfo(Symbol(),MODE_BID);
                      }else if(
    OrderType()==OP_SELL){
                         
    PriceClose=MarketInfo(Symbol(),MODE_ASK);
                      }
                      if(!
    Block())bool close1 OrderClose(OrderTicket(), OrderLots(), PriceCloseSlippage*Q);
                   }
                }
             }
          }
    //التالى i
          
    VirtualFileLoad(file);
          
    VirtualFilter(VIRT_TRADES, -1, -1Symbol(), T5_Magic);
          
    ArrayResize(myFilterVirt_Filter_Count);
          for(
    i=0i<Virt_Filter_Counti++){
             
    myFilter[i]=Virt_Filter[i];
          }
    //Next i
          
    for(i=0i<ArraySize(myFilter); i++){
             if(
    T5_SignalClose(Virt_Type[myFilter[i]])){
                
    VirtualClose(Virt_Ticket[myFilter[i]], file);
             }
          }
    //التالى i
       
    }
       
    }
    //+------------------------------------------------------------------+
    //| Expert  Accompaniment function                                        |
    //+------------------------------------------------------------------+
    void Accompaniment(){
       
    //إجراءات زائدة المراكز المفتوحة
       
    int myFilter[];
       if(!
    IsTesting() || T1_Enabled==1){ //--- زائدة لنظام التداول 1 ---
          
    int j=OrdersTotal();
          for(
    int i=0i<ji++){
             if(
    OrderSelect(i,SELECT_BY_POS)){
                if(
    OrderMagicNumber()==T1_Magic){
                   if(
    OrderType()==OP_BUY){
                      if((
    Bid-OrderOpenPrice())/point>T1_TS){
                         if(
    OrderStopLoss()==|| (Bid-OrderStopLoss())/point>T1_TS){
                            
    Modify(OrderTicket(), Bid-T1_TS*point);
                         }
                      }
                   }else if(
    OrderType()==OP_SELL){
                      if((
    OrderOpenPrice()-Ask)/point>T1_TS){
                         if(
    OrderStopLoss()==|| (OrderStopLoss()-Ask)/point>T1_TS){
                            
    Modify(OrderTicket(), Ask+T1_TS*point);
                         }                  
                      }
                   }
                }
             }
          }
    //التالى i
          
    VirtualFileLoad(file);
          
    VirtualFilter(VIRT_TRADES, -1, -1Symbol(), T1_Magic);
          
    ArrayResize(myFilterVirt_Filter_Count);
          for(
    i=0i<Virt_Filter_Counti++){
             
    myFilter[i]=Virt_Filter[i];
          }
    //التالى i
          
    for(i=0i<ArraySize(myFilter); i++){
             if(
    Virt_Type[myFilter[i]]==OP_BUY){
                if((
    Bid-Virt_OpenPrice[myFilter[i]])/point>T1_TS){
                   if(
    Virt_StopLoss[myFilter[i]]==|| (Bid-Virt_StopLoss[myFilter[i]])/point>T1_TS){
                      
    VirtualModify(Virt_Ticket[myFilter[i]], 0Bid-T1_TS*point00file);
                   }
                }
             }else if(
    Virt_Type[myFilter[i]]==OP_SELL){
                if((
    Virt_OpenPrice[myFilter[i]]-Ask)/point>T1_TS){
                   if(
    Virt_StopLoss[myFilter[i]]==|| (Virt_StopLoss[myFilter[i]]-Ask)/point>T1_TS){
                      
    VirtualModify(Virt_Ticket[myFilter[i]], 0Ask+T1_TS*point00file);
                   }                  
                }
             }
          }
    //التالى i
       
    }//--- نهاية الزائدة لنظام التداول 1---
     
        
       
    if(!IsTesting() || T3_Enabled==1){//---زائدة لنظام التداول 3---
          
    j=OrdersTotal();
          for(
    i=0i<ji++){
             if(
    OrderSelect(i,SELECT_BY_POS)){
                if(
    OrderMagicNumber()==T3_Magic){
                   if(
    OrderType()==OP_BUY){
                      if((
    Bid-OrderOpenPrice())/point>T3_TS){
                         if(
    OrderStopLoss()==|| (Bid-OrderStopLoss())/point>T3_TS){
                            
    Modify(OrderTicket(), Bid-T3_TS*point);
                         }
                      }
                   }else if(
    OrderType()==OP_SELL){
                      if((
    OrderOpenPrice()-Ask)/point>T3_TS){
                         if(
    OrderStopLoss()==|| (OrderStopLoss()-Ask)/point>T3_TS){
                            
    Modify(OrderTicket(), Ask+T3_TS*point);
                         }                  
                      }
                   }
                }
             }
          }
    //التالى i
          
    VirtualFileLoad(file);
          
    VirtualFilter(VIRT_TRADES, -1, -1Symbol(), T3_Magic);
          
    ArrayResize(myFilterVirt_Filter_Count);
          for(
    i=0i<Virt_Filter_Counti++){
             
    myFilter[i]=Virt_Filter[i];
          }
    //التالى i
          
    for(i=0i<ArraySize(myFilter); i++){
             if(
    Virt_Type[myFilter[i]]==OP_BUY){
                if((
    Bid-Virt_OpenPrice[myFilter[i]])/point>T3_TS){
                   if(
    Virt_StopLoss[myFilter[i]]==|| (Bid-Virt_StopLoss[myFilter[i]])/point>T3_TS){
                      
    VirtualModify(Virt_Ticket[myFilter[i]], 0Bid-T3_TS*point00file);
                   }
                }
             }else if(
    Virt_Type[myFilter[i]]==OP_SELL){
                if((
    Virt_OpenPrice[myFilter[i]]-Ask)/point>T3_TS){
                   if(
    Virt_StopLoss[myFilter[i]]==|| (Virt_StopLoss[myFilter[i]]-Ask)/point>T3_TS){
                      
    VirtualModify(Virt_Ticket[myFilter[i]], 0Ask+T3_TS*point00file);
                   }                  
                }
             }
          }
    //التالى i
       
    }//--- نهاية الزائدة لنظام التداول 3---
       
       
    if(!IsTesting() || T4_Enabled==1){//--- زائدة لنظام التداول 4 ---
          
    j=OrdersTotal();
          for(
    i=0i<ji++){
             if(
    OrderSelect(i,SELECT_BY_POS)){
                if(
    OrderMagicNumber()==T4_Magic){
                   if(
    OrderType()==OP_BUY){
                      if((
    Bid-OrderOpenPrice())/point>T4_TS){
                         if(
    OrderStopLoss()==|| (Bid-OrderStopLoss())/point>T4_TS){
                            
    Modify(OrderTicket(), Bid-T4_TS*point);
                         }
                      }
                   }else if(
    OrderType()==OP_SELL){
                      if((
    OrderOpenPrice()-Ask)/point>T4_TS){
                         if(
    OrderStopLoss()==|| (OrderStopLoss()-Ask)/point>T4_TS){
                            
    Modify(OrderTicket(), Ask+T4_TS*point);
                         }                  
                      }
                   }
                }
             }
          }
    //التالى i
          
    VirtualFileLoad(file);
          
    VirtualFilter(VIRT_TRADES, -1, -1Symbol(), T4_Magic);
          
    ArrayResize(myFilterVirt_Filter_Count);
          for(
    i=0i<Virt_Filter_Counti++){
             
    myFilter[i]=Virt_Filter[i];
          }
    //التالى i
          
    for(i=0i<ArraySize(myFilter); i++){
             if(
    Virt_Type[myFilter[i]]==OP_BUY){
                if((
    Bid-Virt_OpenPrice[myFilter[i]])/point>T4_TS){
                   if(
    Virt_StopLoss[myFilter[i]]==|| (Bid-Virt_StopLoss[myFilter[i]])/point>T4_TS){
                      
    VirtualModify(Virt_Ticket[myFilter[i]], 0Bid-T4_TS*point00file);
                   }
                }
             }else if(
    Virt_Type[myFilter[i]]==OP_SELL){
                if((
    Virt_OpenPrice[myFilter[i]]-Ask)/point>T4_TS){
                   if(
    Virt_StopLoss[myFilter[i]]==|| (Virt_StopLoss[myFilter[i]]-Ask)/point>T4_TS){
                      
    VirtualModify(Virt_Ticket[myFilter[i]], 0Ask+T4_TS*point00file);
                   }                  
                }
             }
          }
    //التالى i
       
    }//--- نهاية الزائدة لنظام التداول 4 ---   
       
    if(!IsTesting() || T5_Enabled==1){//--- زائدة لنظام التداول 5 ---
          
    j=OrdersTotal();
          for(
    i=0i<ji++){
             if(
    OrderSelect(i,SELECT_BY_POS)){
                if(
    OrderMagicNumber()==T5_Magic){
                   if(
    OrderType()==OP_BUY){
                      if(
    OrderStopLoss()==|| OrderStopLoss()<OrderOpenPrice()){
                         if((
    Bid-OrderOpenPrice())/point>T5_TS1){
                            
    Modify(OrderTicket(), Bid-T5_TS1*point);
                         }
                      }
                   }else if(
    OrderType()==OP_SELL){
                      if(
    OrderStopLoss()==|| OrderStopLoss()>OrderOpenPrice()){
                         if((
    OrderOpenPrice()-Ask)/point>T5_TS1){
                            
    Modify(OrderTicket(), Ask+T5_TS1*point);
                         }                  
                      }
                   }
                }
             }
          }
    //التالى i
          
    VirtualFileLoad(file);
          
    VirtualFilter(VIRT_TRADES, -1, -1Symbol(), T5_Magic);
          
    ArrayResize(myFilterVirt_Filter_Count);
          for(
    i=0i<Virt_Filter_Counti++){
             
    myFilter[i]=Virt_Filter[i];
          }
    //التالى i
          
    for(i=0i<ArraySize(myFilter); i++){
             if(
    Virt_Type[myFilter[i]]==OP_BUY){
                if(
    Virt_StopLoss[myFilter[i]]==|| Virt_StopLoss[myFilter[i]]<Virt_OpenPrice[myFilter[i]]){
                   if((
    Bid-Virt_OpenPrice[myFilter[i]])/point>T5_TS1){
                      
    VirtualModify(Virt_Ticket[myFilter[i]], 0Bid-T5_TS1*point00file);
                   }
                }
             }else if(
    Virt_Type[myFilter[i]]==OP_SELL){
                if(
    Virt_StopLoss[myFilter[i]]==|| Virt_StopLoss[myFilter[i]]>Virt_OpenPrice[myFilter[i]]){   
                   if((
    Virt_OpenPrice[myFilter[i]]-Ask)/point>T5_TS1){
                      
    VirtualModify(Virt_Ticket[myFilter[i]], 0Ask+T5_TS1*point00file);
                   }                  
                }
             }
          }
    //التالى i
       
    }//--- نهاية زائدة لنظام التداول 5 ---   
       
    }
    //+------------------------------------------------------------------+
    //| Expert  Openings function                                        |
    //+------------------------------------------------------------------+
    void Openings(){
       
    //الإجراء لفتح موقف من قبل إشارة،
       
    int S;
       
    double ROpenPriceStopLoss;
       if(
    T1_Enabled==1) {   
          
    S=T1_SignalOpen();
          if(
    S>-1){
             
    R=VirtualRating(T1_MagicSymbol(), T1_PeriodRating0file);
             if(!
    VirtualExist(iTime(Symbol(), 00), T1_Magic)){
                if(
    RatingON) Print("Rating 1 of system: ",R);
                if(
    S==OP_BUYOpenPrice=MarketInfo(Symbol(),MODE_ASK);
                         else 
    OpenPrice=MarketInfo(Symbol(),MODE_BID);
                
    VirtualSend(Symbol(), ST1_lotOpenPriceSlippage*Q00"R:"+DoubleToStr(R,1)+"%"T1_Magic0file);
                if(
    R>MinRating){
                   if(!
    OrderExist(iTime(Symbol(), 00), T1_Magic)){
                      if(
    S==OP_BUY){
                         
    BUY_pips(T1_lot*R/10000T1_Magic"System 1 (rating: "+DoubleToStr(R,1)+"%)");
                      }else if(
    S==OP_SELL){
                         
    SELL_pips(T1_lot*R/10000T1_Magic"System 1 (rating: "+DoubleToStr(R,1)+"%)");
                      }
                   }
                }
             }
    //إذا الظاهري غير موجود
          
    }
       }
       if(
    T2_Enabled==1) {   
          
    S=T2_SignalOpen();
          if(
    S>-1){
             
    R=VirtualRating(T2_MagicSymbol(), T2_PeriodRating0file);
             if(!
    VirtualExist(iTime(Symbol(), 00), T2_Magic)){
                if(
    RatingON) Print("Rating 2 of system: ",R);
                if(
    S==OP_BUY) {
                   
    OpenPrice=MarketInfo(Symbol(),MODE_ASK);
                   
    StopLoss=OpenPrice-T2_SL*point;
                } else {
                   
    OpenPrice=MarketInfo(Symbol(),MODE_BID);
                   
    StopLoss=OpenPrice+T2_SL*point;
                }
                
    VirtualSend(Symbol(), ST2_lotOpenPriceSlippage*QStopLoss0"R:"+DoubleToStr(R,1)+"%"T2_Magic0file);
                if(
    R>MinRating){
                   if(!
    OrderExist(iTime(Symbol(), 00), T2_Magic)){
                      if(
    S==OP_BUY){
                         
    BUY_pips(T2_lot*R/100T2_SL0T2_Magic"System 2 (rating: "+DoubleToStr(R,1)+"%)");
                      }else if(
    S==OP_SELL){
                         
    SELL_pips(T2_lot*R/100T2_SL0T2_Magic"System 2 (rating: "+DoubleToStr(R,1)+"%)");
                      }
                   }
                }
             }
    //إذا الظاهري غير موجود
          
    }
       }
       if(
    T3_Enabled==1) {
          
    S=T3_SignalOpen();
          if(
    S>-1){
             
    R=VirtualRating(T3_MagicSymbol(), T3_PeriodRating0file);
             if(!
    VirtualExist(iTime(Symbol(), 00), T3_Magic)){
                if(
    RatingON) Print("Rating 3 of system: ",R);
                if(
    S==OP_BUYOpenPrice=MarketInfo(Symbol(),MODE_ASK);
                         else 
    OpenPrice=MarketInfo(Symbol(),MODE_BID);
                
    VirtualSend(Symbol(), ST3_lotOpenPriceSlippage*Q00"R:"+DoubleToStr(R,1)+"%"T3_Magic0file);
                if(
    R>MinRating){
                   if(!
    OrderExist(iTime(Symbol(), 00), T3_Magic)){
                      if(
    S==OP_BUY){
                         
    BUY_pips(T3_lot*R/10000T3_Magic"System 3 (rating: "+DoubleToStr(R,1)+"%)");
                      }else if(
    S==OP_SELL){
                         
    SELL_pips(T3_lot*R/10000T3_Magic"System 3 (rating: "+DoubleToStr(R,1)+"%)");
                      }
                   }
                }
             }
    //إذا الظاهري غير موجود
          
    }
       }
       if(
    T4_Enabled==1) {      
          
    S=T4_SignalOpen();
          if(
    S>-1){
             
    VirtualFilter(VIRT_TRADES, -1, -1Symbol(), T4_Magic);
             if(
    Virt_Filter_Count==0) {
                
    R=VirtualRating(T4_MagicSymbol(), T4_PeriodRating0file);
                if(!
    VirtualExist(iTime(Symbol(), 00), T4_Magic)){
                   if(
    RatingON) Print("Rating 4 of system: ",R);
                   if(
    S==OP_BUY) {
                      
    OpenPrice=MarketInfo(Symbol(),MODE_ASK);
                      
    StopLoss=OpenPrice-T4_SL*point;
                   } else {
                      
    OpenPrice=MarketInfo(Symbol(),MODE_BID);
                      
    StopLoss=OpenPrice+T4_SL*point;
                   }
                   
    VirtualSend(Symbol(), ST4_lotOpenPriceSlippage*QStopLoss0"R:"+DoubleToStr(R,1)+"%"T4_Magic0file);
                   if(
    R>MinRating){
                      if(!
    OrderExist(iTime(Symbol(), 00), T4_Magic)){
                         if(
    S==OP_BUY){
                            
    BUY_pips(T4_lot*R/100T4_SL0T4_Magic"System 4 (rating: "+DoubleToStr(R,1)+"%)");
                         }else if(
    S==OP_SELL){
                            
    SELL_pips(T4_lot*R/100T4_SL0T4_Magic"System 4 (rating: "+DoubleToStr(R,1)+"%)");
                         }
                      }
                   }
                }
    //إذا الظاهري غير موجود
             
    }
          }
       }
       if(
    T5_Enabled==1) {      
          
    S=T5_SignalOpen();
          if(
    S>-1){
             
    VirtualFilter(VIRT_TRADES, -1, -1Symbol(), T5_Magic);
             if(
    Virt_Filter_Count==0) {
                
    R=VirtualRating(T5_MagicSymbol(), T5_PeriodRating0file);
                if(!
    VirtualExist(iTime(Symbol(), 00), T5_Magic)){
                   if(
    RatingON) Print("Rating 5 of system: ",R);
                   if(
    S==OP_BUY) {
                      
    OpenPrice=MarketInfo(Symbol(),MODE_ASK);
                      
    StopLoss=OpenPrice-T5_SL*point;
                   } else {
                      
    OpenPrice=MarketInfo(Symbol(),MODE_BID);
                      
    StopLoss=OpenPrice+T5_SL*point;
                   }
                   
    VirtualSend(Symbol(), ST5_lotOpenPriceSlippage*QStopLoss0"R:"+DoubleToStr(R,1)+"%"T5_Magic0file);
                   if(
    R>MinRating){
                      if(!
    OrderExist(iTime(Symbol(), 00), T5_Magic)){
                         if(
    S==OP_BUY){
                            
    BUY_pips(T5_lot*R/100T5_SL0T5_Magic"System 5 (rating: "+DoubleToStr(R,1)+"%)");
                         }else if(
    S==OP_SELL){
                            
    SELL_pips(T5_lot*R/100T5_SL0T5_Magic"System 5 (rating: "+DoubleToStr(R,1)+"%)");
                         }
                      }
                   }
                }
    //إذا الظاهري غير موجود
             
    }
          }
       }
    }
    //+------------------------------------------------------------------+
    //| Expert  T1_SignalOpen function                                   |
    //+------------------------------------------------------------------+
    int T1_SignalOpen() {
       
    /* ترجع الدالة إشارة لفتح موضع:
    ***  - 1 - لا تفتح الموقف
    *** 0 - شراء
    *** 1 - بيع*/
       
    double MA_Fast     =iMA(NULL,0T1_Fast0MODE_EMAPRICE_CLOSE1);
       
    double MA_Fast_Last=iMA(NULL,0T1_Fast0MODE_EMAPRICE_CLOSE2);
       
    double MA_Slow     =iMA(NULL,0T1_Slow0MODE_EMAPRICE_CLOSE1);
       
    double MA_Slow_Last=iMA(NULL,0T1_Slow0MODE_EMAPRICE_CLOSE2);
       if(
    MA_Slow>MA_Slow_Last){
          if(
    MA_Fast>MA_Slow && MA_Fast_Last<MA_Slow_Last){
             return(
    OP_BUY);
          }
       }
       if(
    MA_Slow<MA_Slow_Last){
          if(
    MA_Fast<MA_Slow && MA_Fast_Last>MA_Slow_Last){
             return(
    OP_SELL);
          }
       }
       return(-
    1);
    }
    //+------------------------------------------------------------------+
    //| Expert  T1_SignalClose function                                   |
    //+------------------------------------------------------------------+
    bool T1_SignalClose(int type) {
       
    /* ترجع الدالة إشارة لإغلاق موضع:
    ** فالس - لا تغلق الموقف
    *** ترو - اغلق*/
       
    if(type==T1_SignalOpen()) return(false);
       
    double MA_Fast     =iMA(NULL,0T1_Fast0MODE_EMAPRICE_CLOSE1);
       
    double MA_Slow     =iMA(NULL,0T1_Slow0MODE_EMAPRICE_CLOSE1);
       if(
    type==OP_BUY){
          if(
    MA_Fast<MA_Slow) return(true);
       }else if(
    type==OP_SELL){
          if(
    MA_Fast>MA_Slow) return(true);
       }
       return(
    false);
    }
    //+------------------------------------------------------------------+
    //| Expert  T2_SignalOpen function                                   |
    //+------------------------------------------------------------------+
    int T2_SignalOpen(int Candle=0) {
        
    /* ترجع الدالة إشارة لفتح موضع:
    ***  - 1 - لا تفتح الموقف
    *** 0 - شراء
    *** 1 - بيع*/
       
    double CCI=iCCI(NULL,0,T2_PeriodCCI,PRICE_TYPICAL,Candle+1);
       
    double CCILast=iCCI(NULL,0,T2_PeriodCCI,PRICE_TYPICAL,Candle+2);
       if((
    CCI<T2_LevelCCI)&&(CCILast>T2_LevelCCI)) return(OP_SELL);
       if((
    CCI>-T2_LevelCCI)&&(CCILast<-T2_LevelCCI)) return(OP_BUY);
       return(-
    1);
    }
    //+------------------------------------------------------------------+
    //| Expert  T2_SignalClose function                                   |
    //+------------------------------------------------------------------+
    bool T2_SignalClose(int type) {
        
    /* ترجع الدالة إشارة لإغلاق موضع:
    ** فالس - لا تغلق الموقف
    *** ترو - اغلق*/
       
    int i=0;
       
    int SS=-1;
       while (
    SS==-1) {
          
    SS=T2_SignalOpen(i);
          
    i++;
       }
       if(
    type==SS) return(false);
       return(
    true);
    }
    //+------------------------------------------------------------------+
    //| Expert  T3_SignalOpen function                                   |
    //+------------------------------------------------------------------+
    int T3_SignalOpen() {
        
    /* ترجع الدالة إشارة لفتح موضع:
    ***  - 1 - لا تفتح الموقف
    *** 0 - شراء
    *** 1 - بيع*/
       
    double MA_Fast     =iMA(NULL,0T3_Fast0MODE_EMAPRICE_CLOSE1);
       
    double MA_Fast_Last=iMA(NULL,0T3_Fast0MODE_EMAPRICE_CLOSE2);
       
    double MA_Slow     =iMA(NULL,0T3_Slow0MODE_EMAPRICE_CLOSE1);
       
    double MA_Slow_Last=iMA(NULL,0T3_Slow0MODE_EMAPRICE_CLOSE2);
       if(
    MA_Slow>MA_Slow_Last){
          if(
    MA_Fast>MA_Slow && MA_Fast_Last<MA_Slow_Last){
             return(
    OP_BUY);
          }
       }
       if(
    MA_Slow<MA_Slow_Last){
          if(
    MA_Fast<MA_Slow && MA_Fast_Last>MA_Slow_Last){
             return(
    OP_SELL);
          }
       }
       return(-
    1);
    }
    //+------------------------------------------------------------------+
    //| Expert  T3_SignalClose function                                   |
    //+------------------------------------------------------------------+
    bool T3_SignalClose(int type) {
        
    /* ترجع الدالة إشارة لإغلاق موضع:
    ** فالس - لا تغلق الموقف
    *** ترو - اغلق*/
       
    if(type==T3_SignalOpen()) return(false);
       
    double MA_Fast     =iMA(NULL,0T3_Fast0MODE_EMAPRICE_CLOSE1);
       
    double MA_Slow     =iMA(NULL,0T3_Slow0MODE_EMAPRICE_CLOSE1);
       if(
    type==OP_BUY){
          if(
    MA_Fast<MA_Slow) return(true);
       }else if(
    type==OP_SELL){
          if(
    MA_Fast>MA_Slow) return(true);
       }
       return(
    false);
    }
    //+------------------------------------------------------------------+
    //| Expert  T4_SignalOpen function                                   |
    //+------------------------------------------------------------------+
    int T4_SignalOpen(int CurrentCandle=0) { //Sergey Lozovik's strategy
       /* ترجع الدالة إشارة لفتح موضع:
    ***  - 1 - لا تفتح الموقف
    *** 0 - شراء
    *** 1 - بيع*/
       
    double LMA200=iMA(NULL,0,200,0,MODE_EMA,PRICE_OPEN,CurrentCandle+1);
       
    double  MA200=iMA(NULL,0,200,0,MODE_EMA,PRICE_OPEN,CurrentCandle);
       
    double LMA50 =iMA(NULL,0,50 ,0,MODE_EMA,PRICE_OPEN,CurrentCandle+1);
       
    double  MA50 =iMA(NULL,0,50 ,0,MODE_EMA,PRICE_OPEN,CurrentCandle);
       
    double LMA10 =iMA(NULL,0,10 ,0,MODE_EMA,PRICE_OPEN,CurrentCandle+1);
       
    double  MA10 =iMA(NULL,0,10 ,0,MODE_EMA,PRICE_OPEN,CurrentCandle);
       
    double LMACD=iMACD(NULL,0,12,26,9,PRICE_OPEN,MODE_MAIN,CurrentCandle+1);
       
    double  MACD=iMACD(NULL,0,12,26,9,PRICE_OPEN,MODE_MAIN,CurrentCandle);
       if(
    MA200>LMA200){
          if(
    MA50>LMA50 && MA50>MA200) {
             if(
    MA10>LMA10 && MA10>MA50) {
                if(
    MACD>LMACD && MACD>T4_LimitMACD) {
                   return(
    0);
                }
             }
          }
       } else if(
    MA200<LMA200) {
          if(
    MA50<LMA50 && MA50<MA200) {
             if(
    MA10<LMA10 && MA10<MA50) {
                if(
    MACD<LMACD && MACD<-T4_LimitMACD) {
                   return(
    1);
                }
             }
          }
       }
       return(-
    1);
    }
    //+------------------------------------------------------------------+
    //| Expert  T4_SignalClose function                                   |
    //+------------------------------------------------------------------+
    bool T4_SignalClose(int type) {
       
    /* ترجع الدالة إشارة لإغلاق موضع:
    ** فالس - لا تغلق الموقف
    *** ترو - اغلق*/
       
    double MA50 iMA(NULL,0,50 ,0,MODE_EMA,PRICE_OPEN,0);
       if(
    type==OP_BUY) {
          if(
    Close[1]<MA50) {
             return(
    true);
          }
       } else if(
    type==OP_SELL){
          if(
    Close[1]>MA50) {
             return(
    true);
          }
       }
       return(
    false);
    }
    //+------------------------------------------------------------------+
    //| Expert  T5_SignalOpen function                                   |
    //+------------------------------------------------------------------+
    int T5_SignalOpen(int Candle=0) {
       
    /* ترجع الدالة إشارة لفتح موضع:
    ***  - 1 - لا تفتح الموقف
    *** 0 - شراء
    *** 1 - بيع*/
       
    double CCI=iCCI(NULL,0,T5_PeriodCCI,PRICE_TYPICAL,Candle+1);
       
    double CCILast=iCCI(NULL,0,T5_PeriodCCI,PRICE_TYPICAL,Candle+2);
       if((
    CCI>T5_LevelCCI)&&(CCILast<T5_LevelCCI)) return(OP_BUY);
       if((
    CCI<-T5_LevelCCI)&&(CCILast>-T5_LevelCCI)) return(OP_SELL);
       return(-
    1);
    }
    //+------------------------------------------------------------------+
    //| Expert  T5_SignalClose function                                   |
    //+------------------------------------------------------------------+
    bool T5_SignalClose(int type) {
       
    /* ترجع الدالة إشارة لإغلاق موضع:
    ** فالس - لا تغلق الموقف
    *** ترو - اغلق*/
       
    int i=0;
       
    int SS=-1;
       
    double MyLevelCCI;
       if(
    type==OP_BUY){
          
    MyLevel=T5_LevelCCI-T5_TralingCCI;
       }else{
          
    MyLevel=T5_LevelCCI+T5_TralingCCI;
       }
       while (
    SS==-1) {//البحث عن إشارة شراء
          
    SS=T5_SignalOpen(i);
          
    i++;
          
    CCI=iCCI(NULL,0,T5_PeriodCCI,PRICE_TYPICAL,i);
          if(
    type==OP_BUY){
             if(
    CCI>MyLevel+2*T5_TralingCCI){
                
    MyLevel=MyLevel+T5_TralingCCI;
             }
          }else{
             if(
    CCI<MyLevel-2*T5_TralingCCI){
                
    MyLevel=MyLevel-T5_TralingCCI;
             }
          }
       }
       
    CCI=iCCI(NULL,0,T5_PeriodCCI,PRICE_TYPICAL,1);
       if(
    type==OP_BUY){
          if(
    CCI<MyLevel) return(true);
       }else{
          if(
    CCI>MyLevel) return(true);
       }
       return(
    false);
    }
    //+------------------------------------------------------------------+
    //| Expert  Block function                                           |
    //+------------------------------------------------------------------+
    bool Block() {//منع
       
    if(!IsTradeAllowed() || IsTradeContextBusy() || !IsConnected()) {
          Print(
    "السوق مغلق، لايوجد اتصال الخبير لا يسمح بالتجارة");
          return(
    true);
       }
       return(
    false);
    }
    //+------------------------------------------------------------------+ 
    توقيع العضو
    سبحانك اللهم و بحمدك سبحان الله العظيم

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

    افتراضي

    كود PHP:
    //+------------------------------------------------------------------+
    int Slippage 3;double point;
    int digits,Q;
    //+------------------------------------------------------------------+
    int SELL_pips(double ltint sl_pipsint tp_pipsint magic=0string comment="") {
       
    double sltp;
       
    int ticket = -1//بيع حسب سعر العطاء Bid price
       
    int LE=135;
       if(
    lt<MarketInfo(Symbol(), MODE_MINLOT)) return(0);
       if(
    lt>MarketInfo(Symbol(), MODE_MAXLOT)) lt=MarketInfo(Symbol(), MODE_MAXLOT);
       if(
    lt>AccountFreeMargin()*0.90/MarketInfo(Symbol(),MODE_MARGINREQUIRED)) lt=AccountFreeMargin()*0.90/MarketInfo(Symbol(),MODE_MARGINREQUIRED);
       
    lt NormalizeDouble(ltMathAbs(MathLog(MarketInfo(Symbol(), MODE_LOTSTEP))/MathLog(10.0))+0.5);
       while(
    LE>134 && LE<139) {
          if(
    sl_pips>0) {
             if(
    sl_pips<MarketInfo(Symbol(), MODE_STOPLEVEL)) sl_pips=MarketInfo(Symbol(), MODE_STOPLEVEL);
             
    sl=NormalizeDouble(Bid+sl_pips*point,digits);
          }
          if(
    tp_pips>0) {
             if(
    tp_pips<MarketInfo(Symbol(), MODE_STOPLEVEL)) tp_pips=MarketInfo(Symbol(), MODE_STOPLEVEL);
             
    tp=NormalizeDouble(Bid-tp_pips*point,digits);
          }
          
    ticket OrderSend(Symbol(), OP_SELLltBidSlippage*Qsltpcommentmagic0Red); 
          
    LE GetLastError();
          
    Sleep(5000);
          
    RefreshRates();
       }
       if (
    ticket 0Sleep(10000);
       return(
    ticket);
    }
    //+------------------------------------------------------------------+
    int BUY_pips(double ltint sl_pipsint tp_pipsint magic=0string comment="") {
       
    double sltp;
       
    int ticket = -1//شراء حسب سعر الطلب Ask price
       
    int LE=135;
       if(
    lt<MarketInfo(Symbol(), MODE_MINLOT)) return(0);
       if(
    lt>MarketInfo(Symbol(), MODE_MAXLOT)) lt=MarketInfo(Symbol(), MODE_MAXLOT);
       if(
    lt>AccountFreeMargin()*0.90/MarketInfo(Symbol(),MODE_MARGINREQUIRED)) lt=AccountFreeMargin()*0.90/MarketInfo(Symbol(),MODE_MARGINREQUIRED);
       
    lt NormalizeDouble(ltMathAbs(MathLog(MarketInfo(Symbol(), MODE_LOTSTEP))/MathLog(10.0))+0.5);
       while(
    LE>134 && LE<139) {
          if(
    sl_pips>0) {
             if(
    sl_pips<MarketInfo(Symbol(), MODE_STOPLEVEL)) sl_pips=MarketInfo(Symbol(), MODE_STOPLEVEL);
             
    sl=NormalizeDouble(Ask-sl_pips*point,digits);
          }
          if(
    tp_pips>0) {
             if(
    tp_pips<MarketInfo(Symbol(), MODE_STOPLEVEL)) tp_pips=MarketInfo(Symbol(), MODE_STOPLEVEL);
             
    tp=NormalizeDouble(Ask+tp_pips*point,digits);
          }
          
    ticket OrderSend(Symbol(), OP_BUYltAskSlippage*Qsltpcommentmagic0Blue); 
          
    LE GetLastError();
          
    Sleep(5000);
          
    RefreshRates();
       }
       if (
    ticket 0Sleep(10000);
       return(
    ticket);
    }
    //+------------------------------------------------------------------+
    int SELLSleep(double pricedouble ltdouble sl=0double tp=0int magic=0string comment="") {
    // إنشاء أوامر المعلقة للشراء (السعر الحالي أعلى من 'السعر')
       
    double stoplimit = (MarketInfo(Symbol(), MODE_STOPLEVEL)+Slippage)*point;
       
    double spread MarketInfo(Symbol(), MODE_SPREAD)*point;
       
    int ticket = -1//sell by Bid price
       
    Print("محاولة إنشاء أمر معلق للشراء حسب السعر",price,", sl=",sl,", tp=",tp,", Ask=",Ask,", Bid="Bid);   
       
    price=NormalizeDouble(price,digits);
       if(
    Bid-price<stoplimit) {
          Print(
    "تجاوز الحد الأدنى من وضع أمر معلق للشراء عن طريق سعرالافتتاح");
          Print(
    "الحد الأدنى هو",stoplimit/point" points");
          return(
    0);
       }
       if(
    sl>0) {
          
    sl=NormalizeDouble(sl,digits);
          if(
    sl-price-spread<stoplimit) {
             Print(
    "SELLSleep: حد إيقاف الخسارة غير صحيح. الحد الأدنى:",stoplimit/point"نقطة من سعر العطاء");
             return(
    0);
          }
       }
       if(
    tp>0) {
          
    tp=NormalizeDouble(tp,digits);
          if(
    price-tp<stoplimit) {
             Print(
    "SELLSleep: Incorrect TakeProfit limit. Minimum: ",stoplimit/point"نقطة من سعر الطلب");
             return(
    0);
          }
       }
       
    ticket OrderSend(Symbol(), OP_SELLSTOPltpriceSlippage*Qsltpcommentmagic0Red); 
       if (
    ticket 0Sleep(10000);
       return(
    ticket);
    }
    //+------------------------------------------------------------------+
    int BUYSleep(double pricedouble ltdouble sl=0double tp=0int magic=0string comment="") {
    // إنشاء أوامر معلقة للشراء (السعر الحالي أقل من "السعر")
       
    double stoplimit = (MarketInfo(Symbol(), MODE_STOPLEVEL)+Slippage)*point;
       
    double spread MarketInfo(Symbol(), MODE_SPREAD)*point;
       
    int ticket = -1//buy by Ask price
       
    Print("محاولة إنشاء أمر معلق للشراء حسب السعر",price,", sl=",sl,", tp=",tp,", Ask=",Ask,", Bid="Bid);
       
    price=NormalizeDouble(price,digits);
       if(
    price-Ask<stoplimit) {
          Print(
    "تجاوز الحد الأدنى من وضع أمر معلق للشراء عن طريق سعرالافتتاح");
          Print(
    "الحد الأدنى هو ",stoplimit/point" points");
          return(
    0);
       }
       if(
    sl>0) {
          
    sl=NormalizeDouble(sl,digits);
          if(
    price-spread-sl<stoplimit) {
             Print(
    "BUYSleep: حد إيقاف الخسارة غير صحيح. الحد الأدنى:",stoplimit/point"نقطة من سعر العطاء Bid price");
             return(
    0);
          }
       }
       if(
    tp>0) {
          
    tp=NormalizeDouble(tp,digits);
          if(
    tp-price<stoplimit) {
             Print(
    "BUYSleep: حد تاكيبروفيت غير صحيح. الحد الأدنى: ",stoplimit/point"نقاط من سعر الطلب Ask price");
             return(
    0);
          }
       }
       
    ticket OrderSend(Symbol(), OP_BUYSTOPltpriceSlippage*Qsltpcommentmagic0Blue); 
       if (
    ticket 0Sleep(10000);
       return(
    ticket);
    }
    //+------------------------------------------------------------------+
    int Modify(int ticketdouble sl 0.0double tp 0.0) {
       
    double stoplimit MarketInfo(Symbol(),MODE_STOPLEVEL)*point;
       if(
    OrderSelect(ticketSELECT_BY_TICKET)) {
          
    sl=NormalizeDouble(sl,digits);
          
    tp=NormalizeDouble(tp,digits);
          
          if(
    OrderType()==OP_BUY) {
             if(
    sl>0) {
                if(
    OrderStopLoss()>0)
                   if(
    OrderStopLoss()+Slippage*Q*point>=sl) return(0);
                if(
    Bid-sl<stoplimit) {
                   Print(
    "تعديل: إيقاف الخسارة قريبة جدا (",(Bid-sl)/point," points).  مطلوب ما لا يقل عن: "stoplimit/point);
                   return(
    0);
                }
             }
             if(
    tp>0) if(tp-Ask<stoplimit) {
                Print(
    "تعديل: تحقيق أرباح قريبة جدا(",(tp-Ask)/point," point). مطلوب ما لا يقل عن:  "stoplimit/point);
                return(
    0);
             }
          } else if(
    OrderType()==OP_SELL) {
             if(
    sl>0) {
                if(
    OrderStopLoss()>0)
                   if(
    OrderStopLoss()-Slippage*Q*point<=sl) return(0);
                if(
    sl-Ask<stoplimit) {
                   Print(
    "تعديل: إيقاف الخسارة قريبة جدا (",(sl-Ask)/point," point).مطلوب ما لا يقل عن:  "stoplimit/point);
                   return(
    0);
                }
             }
             if(
    tp>0) if(Bid-tp<stoplimit) {
                Print(
    "تعديل: تحقيق أرباح قريبة جدا (",(Bid-tp)/point," points). مطلوب ما لا يقل عن:  "stoplimit/point);
                return(
    0);
             }
          }
          if(
    sl>&& tp>0) {
             if(
    OrderModify(ticket,OrderOpenPrice(), sltp0)==FALSE) Print("Error OrderModify(): ",GetLastError());
          } else if(
    sl>0) {
             if(
    OrderModify(ticket,OrderOpenPrice(), slOrderTakeProfit(), 0)==FALSE) Print("Error OrderModify(): ",GetLastError());
          } else if(
    tp>0) {
             if(
    OrderModify(ticket,OrderOpenPrice(), OrderStopLoss(), tp0)==FALSE) Print("Error OrderModify(): ",GetLastError());
          }
       }
       return(
    0);
    }
    //+------------------------------------------------------------------+
    bool OrderExist(datetime TimeOpenCandleint fMagic=0){
      
    // إرجاع صحيح إذا كان الموقف مع عدد السحر محددة
       // يتم فتحه بعد TimeOpenCandle
       
    int j OrdersTotal();
       for(
    int i=0i<ji++){
          if(
    OrderSelect(iSELECT_BY_POS)){
             if(
    OrderMagicNumber()==fMagic || fMagic==0){
                if(
    OrderOpenTime()>=TimeOpenCandle){
                   return(
    true);
                }
             }
          }
       }
    //Next i
       
    return(false);

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

  8. #383
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

    وعليكم السلام ورحمة الله وبركاته
    لم تستخدم الكومنت بشكل صحيح وبالتالي تم تجاهل بقية الكود
    دعنا نتفق يا 2013Lemsantah يكون مشروع مشترك حتى نهاية عام 2019 (ان شاء الله وقت كاف وزيادة لنتحدث عن شيء لامثيل
    له)
    الاكواد كل كود فيه 20 فكرة
    ضع نفسك مكان القارئ اخي.

    حاليا اي صفقة حددنا:
    اسؤا خسارة لها--احسن ربح لها-ربحها---ايضا قائمة بالاسؤا والافضل والاغلاق على فحة واحدة---ينظرة تفهم اشياء يأخذ غر فيها 3 اشهر

    ايضا فكرة حصر عدد الاةامر وادارة رأس المال وضعنا لبناته الاساسية (قيمة النطة وقيمة YYYDDD والمارجن)

    ايضا الرسومات تبين سيرة المارجن والهاش الحر


    الخ

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

    ويد الله مع الجماعة وارجو ان لاتكون من يخشخشون اي شيء يتوهمون حسنه وان تكون معطاء.
    آخر تعديل بواسطة فيلسوف البادية ، 04-08-2017 الساعة 05:37 PM

  9. #384
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

    فنحن الان اخي كسرنا حواجز كثيرة بالنسبة للاخرين اكثر من معجزة وخارج تصوراتهم:
    نريد هنا سوبر عباقرة (عباقرة او انصاف عباقرة مايمشون هنا)
    حاليا انظر للرسمة اسفل واقرأ المكتوب بالاصفر بالعربي: (شغال عليها)


    لانها اخر 400 يوم للدخول على القمم والقيعان---كان وقتها كارثة الكيبل

    اذا حذفنا ازواج الكيبل بضغطة زر على الشيء GBP ينعكس فورا التغير على المنحنيات:

    آخر تعديل بواسطة فيلسوف البادية ، 04-08-2017 الساعة 05:36 PM

  10. #385
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

    اضغط هنا يعرض صفقات اليوم 214 فقط!!
    يعني وقتها نعرف اسباب الكارثة.
    --------
    كيف نثق في النتائج
    ج: اذا كانت المعادلات الرياضية صحيحة.

    وبالتالي ارجو من الجميع قراءة اهم موضوع كتب في مجال الفوركس هنا:
    https://forum.arabictrader.com/t240676.html

    معادلة أسعار الصرف: YYYXXX=YYYDDD/XXXDDD

    حاليا لن امتحن اي احد من خلال ذلك الموضوع لاكشف اهليته من عدمها للتواجد هنا ولكن رجاء لابد يفهم ذلك الموضوع اولا


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

  11. #386
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

    أفكار:
    كيف تدمج أكثر من فكرة معا؟
    مثال: الماكد يناه كدخول وخروج فني
    وبينها باضافة المدرج من السعر الفني والخرج فني
    ةبيناه بوفقف خسارة محدد وهدف محدد؟

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

    وجه الفكرة هنا: هدف 5000 نقطة كأنه لايوجد ولو تحقق قل الحمد لله.

  12. #387
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

    تم الانتهاء من اخر رد وسيعمم على اي استراتيجية, (مزاوجة التيك بروفت مع الخروج الفني)

    يأتي:
    تحديد البداية بالتاريخ بدلا من رقم الشمعة

    تحديد النهاة بالتاريخ

    اسثتناء فترة محددة على عملة معينة

    مثلا على ازواج الكيبل تجعل الخبير يمنع التداول من تاريخ 1 مايو 2016 مثلا الى 1 مايو 2017 مثلا او اي عملة نشك ان عليها اخبار قوية ضبابية

    عزل دالة وقف الخسارة والتيك بروفت

    تحويل الملفات الى mqh

    جعل جميع برامجنا التأسيسية تحت خبير واحد--واختيار اي خبير من خلال الضغط على ايقونة الخبير على التشارت (ست مربعات صغيرة متجاورة)
    -------


    بالامس تحدثنا انك اذا ضغط على منحنى اسؤا اكوتي في نقطة محددة ) يوم محدد( --سيعرض صفقات ذلك اليوم فقط, مع عرض اسؤا سعر لكل صفقة لكل ذلك اليوم

  13. #388
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

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

    بالامس تحدثنا انك اذا ضغط على منحنى اسؤا اكوتي في نقطة محددة ) يوم محدد( --سيعرض صفقات ذلك اليوم فقط, مع عرض اسؤا سعر لكل صفقة لكل ذلك اليوم
    تأمل اخر 400 يوم---ماكد تشبع عكسي درجة-3 مع مدرج---هدف 1000 نقطة وف خسارة لايوجد-كل الأزواج:

    آخر تعديل بواسطة فيلسوف البادية ، 05-08-2017 الساعة 07:38 AM

  14. #389
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

    بعد ان تضغط نظهر صفقات اليوم السيء, على صفحة او عدة صفحات حسب عددها
    الن نضغط على سعر entryprice وليس اسم الزوج (اسم لزوج في صفحة الصفقات بينما هنا سعر الدخول)

  15. #390
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي


صفحة 26 من 35 الأولىالأولى ... 1620212223242526272829303132 ... الأخيرةالأخيرة

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