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

    افتراضي *-* نقل البيانات بين الميتاتريدر والإكسل *-* مكتبة قوية جدا

    في البداية للإيضاح :
    1 - يجب تفعيل Allow Dll imports من خصائص الإكسبيرتات .
    2 - يتم وضع الملف excellink.dll في experts\libraries (في المرفقات)
    3 - نقوم بإنشاء ملف إيكسل .xls وده بيكون في أي مكان وبأي إسم ( مش مهم لإننا بنقدر نختار مساره من الإكسبيرت)

    الدوال المستخدمة : ويجب وضع هذا الكود في بداية الإكسبيرت لتعريف الدوال قبل إستخدامها

    كود PHP:
    #import "excellink.dll"
       
    int ExcelStart(string,int);
       
    string ExcelVersion();
       
    int ExcelPutString(int,int,int,string);
       
    int ExcelPutValue(int,int,int,double);
       
    int ExcelFormatCellColor(int,int,int,int,int);
       
    int ExcelFormatCellFontSize(int,int,int,int);
       
    int ExcelFormatCellFont(int,int,int,int);
       
    double ExcelGetValue(int,int,int);
       
    string ExcelGetString(int,int,int);
       
    int ExcelSaveFile(string);
       
    int ExcelSheetRename(intstring);
       
    int ExcelPutCalc(int,int,int,string);
       
    string ExcelGetCalc(int,int,int,string);
       
    int ExcelEnd();
       
    int ExcelClose();
       
    int ExcelFreeString();
       
    string ExcelCell(int,int);
       
    int ExcelUnixTime();
    #import 
    شرح إستخدام كل دالة :

    الدالة الأولى
    كود PHP:
    int ExcelStart(string,int); 
    وهذه الدالة تقوم بفتح ملف الإكسل ويكون في الخانة الأولى مسار الملف
    والخانة الثانية :
    0 لفتح الإكسل على الوضع الإفتراضي حسب أخر مرة تم إغلاقه Default Mode
    أو 1 وهو يقوم بفتح الإكسل في وضع Minimized Mode وهو الأفضل والأسرع
    بالشكل ده
    كود PHP:
    ExcelStart("D:\\AL Trade 4\\MySample2.xls",1); 
    الدالة الثانية

    كود PHP:
    string ExcelVersion(); 
    وهي تعود بإصدار ملف الـ dll المستخدم ( و وظيفتها ليست مهمة إلا في حالة صدور إصدار جديد وإحنا عايزين مثلا نعرف إصدارنا الحالي )

    الدالة الثالثة

    كود PHP:
    int ExcelPutString(int,int,int,string); 
    وهذه الدالة تستخدم في إرسال متغير نصي من الميتاتريدر إلى ملف الإكسل
    والخانة الأولى يوضع فيها رقم الشيت المستخدم في الإكسل وهو سيكون 1
    الخانة الثانية يوضع فيها رقم الصف الأفقي row
    الخانة الثالثة يوضع فيها رقم العمود الرأسي column
    الخانة الرابعة يوضع فيها الكلمة أو النص المرسل لملف الإكسل
    بالشكل ده:
    حيث sheet=1 row=1 column=1 أي أول خانة في الإكسل على الشمال فوق
    كود PHP:
    ExcelPutString(1,1,1,"YousefH say Hi"); 
    الدالة الرابعة

    كود PHP:
    int ExcelPutValue(int,int,int,double); 
    وهي نفس الدالة السابقة ولكن تستخدم في إرسال الأرقام سواء صحيحة أو عشرية

    الدالة الخامسة

    كود PHP:
    int ExcelFormatCellColor(int,int,int,int,int); 
    وهذه الدالة تستخدم لتنسيق لون الخلية الأمامي والخلفي في ملف الإكسل
    أول وثاني وثالث خانة هم لـ ( رقم الشيت – رقم الصف – رقم العمود )
    الخانة الرابعة يوضع بها اللون الأمامي
    الخانة الرابعة يوضع بها اللون الخلفي
    بالشكل ده :

    كود PHP:
    ExcelFormatCellColor(1,1,1,Lime,Red); 
    الدالة السادسة

    كود PHP:
    int ExcelFormatCellFontSize(int,int,int,int); 
    وهذه الدالة تستخدم في تحديد حجم الخط
    أول ثلاث خانات ( رقم الشيت – رقم الصف – رقم العمود )
    الخانة الرابعة ونضع فيها حجم الخط المطلوب وهو يكون من 1 إلى 100


    الدالة السابعة

    كود PHP:
    int ExcelFormatCellFont(int,int,int,int); 
    وهذه الدالة تستخدم لتنسيق شكل الخط
    أول ثلاث خانات ( رقم الشيت – رقم الصف – رقم العمود )
    الخانة الرابعة : ويوضع بها رقم من 0 أو 1 أو 2 أو 4
    0 يعني بدون تنسيق
    1 يعني خط تقيل Bold
    2 يعني خط مائل
    4 يعني يوضع تحت الكلمة أو الرقم خط Underline
    ملحوظة يمكن وضع رقم 5 مثلا ويكون الناتج 1 +4 يعني Bold+Underline
    بالشكل ده
    كود PHP:
    ExcelFormatCellFont(1,1,1,5); 

    الدالة الثامنة

    كل الدوال السابقة كانت للكتابة على ملف الإكسل
    ولكن هذه الدالة للإستدعاء من الإكسل
    كود PHP:
    double ExcelGetValue(int,int,int); 
    وهذه الدالة تستخدم في إستدعاء قيمة رقمية من الإكسل من خانة يتم تحديدها عن طريق رقم الشيت – رقم الصف – رقم العمود

    الدالة التاسعة

    كود PHP:
    string ExcelGetString(int,int,int); 
    وهي مثل الدالة الثامنة ولكن تستدعي متغير نصي عن طريق رقم الشيت – رقم الصف – رقم العمود

    الدالة العاشرة

    كود PHP:
    int ExcelSaveFile(string); 
    وهذه الدالة توضع في دالة int deinit() وهي تقوم بحفظ التغيرات التي قمنا بها على ملف الإكسل
    بالشكل ده

    كود PHP:
    int deinit()  {   
          
    ExcelSaveFile("D:\\AL Trade 4\\MySample2.xls");
            return(
    0);  } 
    الدالة الحادية عشر

    كود PHP:
    int ExcelSheetRename(intstring); 
    وهذه الدالة تستخدم لتغير إسم الشيت في الإكسل
    يعني ده مثلا أمر لتغيير إسم الشيت الأول إلى EURUSD و الشيت الثاني إلى GBPUSD

    كود PHP:
    ExcelSheetRename(1,"EURUSD"); 
    ExcelSheetRename(2,"GBPUSD"); 
    الدالة الثانية عشر

    كود PHP:
    int ExcelPutCalc(int,int,int,string); 
    وهذه الدالة تدعم كل العمليات الحسابية التي يقوم بها الإكسل
    بمعنى أنا ممكن أن نقوم بجمع الأرقام الموجودة في الخلايا A1+A2+A3
    وسيتم كتابة العملية كمتغير نصي بين علامتي " "
    بالشكل ده
    ده مثال لوضع ثلاث قيم في الخانات A1 و A2 و A3 ثم عمل متغير نصي Sum في الخلية A4 ثم جمع الثلاث خليات ووضع القيمة في الخلية B4
    كود PHP:
    ExcelPutValue(1,1,1,1.3050);
    ExcelPutValue(1,2,1,1.3080);
    ExcelPutValue(1,3,1,1.3120);    
    ExcelPutString(1,4,1,"Sum:");
    ExcelPutCalc(1,4,2,"=a1+a2+a3"); 
    الدالة الثالثة عشر

    كود PHP:
    string ExcelGetCalc(int,int,int,string); 
    وهذه الدالة تستخدم لإستدعاء أرقام النواتج الناتجة عن العمليات السابقة التي تمت بواسطة ExcelPutCalc
    وهي لابد من إستخدامها وإلا كان الناتج العائد حسب المثال في الدالة السابقة متغير نصي "=a1+a2+a3"
    ولابد من تحويها لمتغير double

    يعني لو هنستدعي قيمة عملية الجمع الموجودة في الخلية B4 (في المثال السابق )ستكون بالشكل التالي:

    كود PHP:
    StrToDouble(ExcelGetCalc(1,4,2)  ,4); 
    الدالة الرابعة عشر

    كود PHP:
    int ExcelEnd(); 
    وهذه الدالة تستخدم لوقف الإرسال من الميتا إلى الإكسل وتستخدم في دالة deinit

    الدالة الخامسة عشر

    كود PHP:
    int ExcelClose(); 
    وهي تقوم بإغلاق مساحة العمل في الإكسل وتكون أيضا في دالة deinit

    ودوال الإغلاق ( الدالة 14 والدالة 15 ) يجب أن يكونوا في دالة deinit بعد أمر الحفظ بالشكل ده

    كود PHP:
    int deinit()  {   
          
    ExcelSaveFile("D:\\AL Trade 4\\MySample2.xls");
          
    ExcelEnd();
          
    ExcelClose();
          return(
    0);  } 
    الدالة السادسة عشر

    كود PHP:
    int ExcelFreeString(); 
    وهذه الدالة تستخدم فقط في حالة الإكسبيرتات التي تقوم بألاف العمليات
    وتستخدم هذه الدالة لإفراغ مساحة في الذاكرة عن طريق حذف ما تم إستدعائه سابقا
    وهي ليست مهمة لإن بعد إنتهاء فترة العمل وإغلاق الإكسل والمنصة تقوم الذاكرة بإفراغ نفسها أتوماتيكيا

    وهذه الدالة تستخدم بعد إستخدام دالة ExcelGetString ودالة ExcelCell

    الدالة السابعة عشر

    كود PHP:
    string ExcelCell(int,int); 
    وهذه الدالة تستخدم في إستدعاء قيمة من خلية محددة
    الخانة الأولى رقم الصف – الخانة الثانية رقم العمود
    ويمكن إستخدامها مثلا مع دالة ExcelPutCalc
    وده مثال للتطبيق في دالة ExcelPutCalc المشروح سابقا :


    كود PHP:
    ExcelPutValue(1,1,1,1.3050);
    ExcelPutValue(1,2,1,1.3080);
    ExcelPutValue(1,3,1,1.3120);    
    ExcelPutString(1,4,1,"Sum:");
    //ExcelPutCalc(1,4,2,"=a1+a2+a3");// بدل هذه الدالة
    ExcelPutCalc(1,4,2,"="+ExcelCell(1,1)+"-"+ExcelCell(2,1)+"-"+ExcelCell(3,1));
    // قمنا بالتعويض عن كل خلية بمكان برقم الصف العمود حسب تعريفها فوق 
    الدالة الأخيرة
    وهي دالة
    كود PHP:
    int ExcelUnixTime(); 
    وهذه الدالة تظهر الوقت الحالي وهي شبيه بالدالة TimeCurrent( ) في لغة MQL4
    وتعود بالوقت المنقضي بالثانية من سنة 1970 حتى وقت إستدعائها
    وهي غير مهمة ولكن لها إستخدام معين وهو حساب سرعة تنفيذ أوامر النقل بين الميتا والإكسل

    *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

    ( وبالمناسبة سرعة النقل بين الميتا والإكسل سرعة خرافية )

    وبإذن الله في أقرب وقت نقوم بعمل تطبيق عملي على الموضوع

    وسأقوم بإذن الله بعمل إكسبيرت لنقل العمليات بين منصتين على نفس الجهاز بإستخدام الإكسل في أقرب وقت



    إنتهى الشرح بالتوفيق للجميع
    لا تنسونا بدعوة في ظهر الغيب
    الملفات المرفقة الملفات المرفقة
    آخر تعديل بواسطة xcv114 ، 26-05-2013 الساعة 04:32 PM

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

    افتراضي رد:*-* نقل البيانات بين الميتاتريدر والإكسل *-* مكتبة قوية جدا

    مثال توضيحي بسيط
    عن كيفية إستدعاء هاي 30 شمعة يومي في زوج USDCHF
    كود PHP:

    extern int myExcel
    =0;
    extern string filename="D:\\AL Trade 4\\MySample2.xls";

    int init()  {         
                
          
    myExcel ExcelStart(filename,1);            
          if (
    myExcel>=0) { Print ("I am demostration for ExcelLink version ",
          
    ExcelVersion()," successfully loaded"); }
          return(
    0);  
          }
      
    int deinit()  {   
          
    ExcelSaveFile(filename);
          
    ExcelEnd();
          return(
    0);  }


    int start()
      {
       
       if (
    myExcel>=0) { 
       
    ExcelPutString(1,1,1,"USDCHF");
       for(
    int i=1;i<30;i++){
       
    ExcelPutValue(1,i+1,1,iHigh("USDCHF",1440,i)) ;
       }
       }
       return(
    0);
      } 
    آخر تعديل بواسطة xcv114 ، 26-05-2013 الساعة 04:34 PM

  3. #3
    الصورة الرمزية QtrrtQ
    QtrrtQ غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2011
    المشاركات
    23

    افتراضي رد:*-* نقل البيانات بين الميتاتريدر والإكسل *-* مكتبة قوية جدا

    اقتباس المشاركة الأصلية كتبت بواسطة xcv114 مشاهدة المشاركة
    مثال توضيحي بسيط
    عن كيفية إستدعاء هاي 30 شمعة يومي في زوج USDCHF
    كود PHP:

    extern int myExcel
    =0;
    extern string filename="D:\\AL Trade 4\\MySample2.xls";

    int init()  {         
                
          
    myExcel ExcelStart(filename,1);            
          if (
    myExcel>=0) { Print ("I am demostration for ExcelLink version ",
          
    ExcelVersion()," successfully loaded"); }
          return(
    0);  
          }
      
    int deinit()  {   
          
    ExcelSaveFile(filename);
          
    ExcelEnd();
          return(
    0);  }


    int start()
      {
       
       if (
    myExcel>=0) { 
       
    ExcelPutString(1,1,1,"USDCHF");
       for(
    int i=1;i<30;i++){
       
    ExcelPutValue(1,i+1,1,iHigh("USDCHF",1440,i)) ;
       }
       }
       return(
    0);
      } 


    يعطيك الف الف عافيه على هذا المجهود الرائع

  4. #4
    الصورة الرمزية Focus
    Focus غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2012
    الإقامة
    مصر
    المشاركات
    118

    افتراضي

    شكرأ أخى يوسف على هذا المجهود الرائع ..وهل بالامكان الأن عمل أكسبيرت بأستراتيجية تعتمد على الاكسيل والحسابات الرقمية بشكل آلى 100%

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

    افتراضي رد:*-* نقل البيانات بين الميتاتريدر والإكسل *-* مكتبة قوية جدا

    اقتباس المشاركة الأصلية كتبت بواسطة Focus مشاهدة المشاركة
    شكرأ أخى يوسف على هذا المجهود الرائع ..وهل بالامكان الأن عمل أكسبيرت بأستراتيجية تعتمد على الاكسيل والحسابات الرقمية بشكل آلى 100%
    نعم اخي ممكن

  6. #6
    الصورة الرمزية abou fares
    abou fares  غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Aug 2012
    الإقامة
    السعودية
    المشاركات
    275

    افتراضي

    شكرا جزيلا

  7. #7
    الصورة الرمزية ziyadiah
    ziyadiah غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2012
    المشاركات
    67

    افتراضي

    الف الف الف شكر ليك اخي يوسف

    الله يبارك فيك
    متابع معاك خطوة خطوة

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

    افتراضي

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

  9. #9
    الصورة الرمزية m.n.enjero
    m.n.enjero غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2016
    الإقامة
    السعودية
    المشاركات
    111

    افتراضي

    شكرا على مجهودك

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

    افتراضي

    اقسم برب الكعبة اول موضوع تضاءلت امامه على االااقل من 3 سنوات
    جزاك الله خيرا ياصاحب الموضوع

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

    افتراضي

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


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