صفحة 1 من 9 1234567 ... الأخيرةالأخيرة
النتائج 1 إلى 15 من 122
  1. #1
    الصورة الرمزية وضاح عطار
    وضاح عطار غير متواجد حالياً عضو مميز ومشرف سابق
    تاريخ التسجيل
    Apr 2006
    الإقامة
    السعودية
    العمر
    52
    المشاركات
    7,041

    افتراضي موضوع هام جدا عن كيفية تبادل المعلومات بين منصات الميتاتريدر

    بسم الله الرحمن الرحيم

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


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

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

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

    والكود سوف أرفقه .. بل وأشرحه لمن هو مهتم .

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

    - نقل المعلومات من منصة لمنصة أخرى وعمل مقارنات بين الأسعار مثلا أو بين قيم المؤشرات المختلفة بين منصتين أو أكثر .

    - عمل برامج ناسخة للصفقات بكل سهولة ويسر .

    - يمكن لأي اكسبيرت أو مؤشر معرفة الرصيد مثلا في حساب آخر .

    الأفكار لا تنتهي ولن تنتهي ... وسيجد المبرمجون الكثير من الأفكار لتطبيقها الآن مع هذا الكود ..

    نأتي الآن لشرح الفكرة الأساسية لهذا الكود وطريقة عمله .

    يوجد في الميتاتريدر خدمة برمجية اسمها المتحولات العامة Global Variables .

    هذه المتحولات العامة يمكنك برمجيا أو يدويا إنشاء ما تريد منها ووضع القيمة التي تريد بكل متحول .

    وهذه المتحولات هي عامة فقط لهذه المنصة ... أي أن لكل منصة متحولاتها العامة وليس هناك أي طريقة لقراءة متحولات عامة من منصة أخرى .

    وهنا جاءت الفكرة وجاء الحل ...

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

    لذلك كان الكود على شكل سكريبتين ... السكريبت الأول MASTER تقوم بوضعه على شارت في المنصة التي تريد النقل منها .

    والسكريبت الثاني CLIENT تشغله على المنصة التي تريد النقل إليها .

    ويمكن وضع سكريبت CLIENT على أكثر من منصة والتي تريد أن تنتقل المتحولات العامة من الماستر إليها .

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


    لذلك لو صممت مؤشر مثلا على الماستر يقوم بتسجيل أسعاره في المتحولات العامة ... وشغلته مع الماستر .


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


    ومن فترة طلب مني الأخ صاحب هدف برنامج يقوم بإغلاق صفقة ما بمجرد إغلاقها في منصة أخرى ..

    الآن يمكن عمل ذلك بسهولة ... طالما أصبح عندنا طريقة لتبادل البيانات بين المنصات .


    طبعا هذا الموضوع برمجي بحت ووضعته هنا لكي يطلع عليه أكبر عدد ومن ثم سيتم نقله يدويا إلى قسمه الخاص .


    شرح طريقة العمل :

    - ضع السكريبت الأول MASTER على أي شارت على المنصة التي تريد النقل منها .
    - اسمح له باستخدام DLL .
    - سيظهر لك رقم الاتصال Handle .
    - اضغط زر Start .

    - ضع السكريبت الثاني CLIENT على أي شارت على المنصة التي تريد النقل إليها .
    - اسمح له باستخدام DLL .
    - اكتب في الخاصية MasterHandle الرقم الذي ظهر على منصة الماستر وهو رقم الاتصال بين المنصتين .
    - اضغط زر Start .

    هذا كل شيء وسيتم تبادل المتحولات العامة من الماستر إلى الكلاينت بشكل لحظي .

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

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

    أرجو من الله سبحانه التوفيق للجميع .
    الملفات المرفقة الملفات المرفقة
    توقيع العضو
    اثنان لا يجتمعان علم وسوء خلق

  2. #2
    الصورة الرمزية ALGERIANO
    ALGERIANO غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2012
    الإقامة
    الجزائر
    المشاركات
    454

    افتراضي

    جزاك الله خيرا أخي وضاح و ان شاء الله يستفيد منه الاخوة المبرمجين

  3. #3
    الصورة الرمزية dr.ahmed.samir
    dr.ahmed.samir غير متواجد حالياً Educational Researcher
    تاريخ التسجيل
    May 2010
    الإقامة
    مصر
    المشاركات
    8,047

    افتراضي

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

    جزاك
    الله خيرا و سلمت يمناك م وضاح ..

    تحياتى ..

    د / أحمد سميــــــــر
    توقيع العضو
    MY Rules
    المتيـم : الفهرس العام لكافة موضوعات د / أحمد سميـــر

  4. #4
    الصورة الرمزية الحجاج
    الحجاج غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Apr 2010
    الإقامة
    مصر
    المشاركات
    368

    افتراضي

    اسال الله ان ينفع بك وان ينفع بالكود الجديد

    وجزاك الله خيرعنا جميعا

  5. #5
    الصورة الرمزية الحجاج
    الحجاج غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Apr 2010
    الإقامة
    مصر
    المشاركات
    368

    افتراضي

    اسال الله ان ينفع بك وان ينفع بالكود الجديد

    وجزاك الله خيرعنى جميعا

  6. #6
    الصورة الرمزية FXNOAD
    FXNOAD غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2015
    الإقامة
    الولايات المتحدة
    المشاركات
    88

    افتراضي

    ماشاء الله هذا هو الفكر خارج الصندوق
    مجهود تشكر عليه ومن حسن الى احسن

  7. #7
    الصورة الرمزية أبو نـاصر
    أبو نـاصر غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Jun 2013
    الإقامة
    السعودية
    المشاركات
    3,189

    افتراضي

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

    بعد سكربت اغلاق الصفقات https://forum.arabictrader.com/t235050.html

    فأنت عندي >>>> أخطر من مشى على ظهر ... الفوركس


    حبيبي ..

    يمكن دمج الماستر مع الكلاينت في سكربت واحد .. لتتم عملية تبادل كاملة

    ------

    هل يكون في هذا حل لمشكلة بطئ التنفيذ في المنصة بسبب المؤشرات الكثيرة فيها

    فتكون منصة للقراءة فقط
    والأخرى للتنفيذ فقط ؟؟

    أم أن فاصل نقل البيانات بين منصتين .. قد يكون اكبر من الفاصل بين القراءة والتنفيذ في نفس المنصة ؟؟

    -----

    همسة : لم يتم نقل اي بيانات عندي >> ولم اتمكن من ارفاق صورة بسبب عطل في المنتدى
    آخر تعديل بواسطة أبو نـاصر ، 06-02-2016 الساعة 03:42 AM

  8. #8
    الصورة الرمزية أبو نـاصر
    أبو نـاصر غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Jun 2013
    الإقامة
    السعودية
    المشاركات
    3,189

    افتراضي


  9. #9
    الصورة الرمزية remon78eg
    remon78eg غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    May 2010
    العمر
    46
    المشاركات
    1,484

    افتراضي

    فكرة جيدة
    احب ان اضيف بعض الملاحظات والتطويرات

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

    والحل هو

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

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

  10. #10
    الصورة الرمزية remon78eg
    remon78eg غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    May 2010
    العمر
    46
    المشاركات
    1,484

    افتراضي

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

الاســـم:	StringMsg.png
المشاهدات:	112
الحجـــم:	173.4 كيلوبايت
الرقم:	452087

  11. #11
    الصورة الرمزية remon78eg
    remon78eg غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    May 2010
    العمر
    46
    المشاركات
    1,484

    افتراضي

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

الاســـم:	StringMsg2.png
المشاهدات:	77
الحجـــم:	142.8 كيلوبايت
الرقم:	452088
    ملحوظة
    بدلا من الحاجه الى كتابة رقم نافذة الماستر داخل اعدادات الكلاينت

    كنت انشي نافذة فورم جديد باسم معين (فريد) واجعل البرنامج الكلاينت يبحث عن هذا الاسم الثابت (المتفق عليه) ليعرف منه الرقم تلقائيا دون الحاجة الى كتابته يدويا
    آخر تعديل بواسطة remon78eg ، 06-02-2016 الساعة 07:22 AM

  12. #12
    الصورة الرمزية وضاح عطار
    وضاح عطار غير متواجد حالياً عضو مميز ومشرف سابق
    تاريخ التسجيل
    Apr 2006
    الإقامة
    السعودية
    العمر
    52
    المشاركات
    7,041

    افتراضي

    ألف شكر لجميع الإخوة المشاركين ....



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

    بعد سكربت اغلاق الصفقات https://forum.arabictrader.com/t235050.html

    فأنت عندي >>>> أخطر من مشى على ظهر ... الفوركس


    حبيبي ..

    يمكن دمج الماستر مع الكلاينت في سكربت واحد .. لتتم عملية تبادل كاملة

    ------

    هل يكون في هذا حل لمشكلة بطئ التنفيذ في المنصة بسبب المؤشرات الكثيرة فيها

    فتكون منصة للقراءة فقط
    والأخرى للتنفيذ فقط ؟؟

    أم أن فاصل نقل البيانات بين منصتين .. قد يكون اكبر من الفاصل بين القراءة والتنفيذ في نفس المنصة ؟؟

    -----

    همسة : لم يتم نقل اي بيانات عندي >> ولم اتمكن من ارفاق صورة بسبب عطل في المنتدى

    شكرا لك أخي أبو ناصر على كلماتك الطيبة ...

    بالنسبة للدمج ... أنت قل لي كيف سيكون برأيك .


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

    وبالنسبة للسرعة فأنت تستطيع التحكم بسرعة التبادل من خلال خاصية msSleep الموجودة بكل سكريبت على حدة ... وهي قيمة زمن التحديث بالمللي ثانية .

    مشكلة عدم النقل قد تكون بسبب عدم السماح باستخدام DLL ...

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

  13. #13
    الصورة الرمزية وضاح عطار
    وضاح عطار غير متواجد حالياً عضو مميز ومشرف سابق
    تاريخ التسجيل
    Apr 2006
    الإقامة
    السعودية
    العمر
    52
    المشاركات
    7,041

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة remon78eg مشاهدة المشاركة
    فكرة جيدة
    احب ان اضيف بعض الملاحظات والتطويرات

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

    والحل هو

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

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

    أهلا بالمبرمج الذكي ريمون ... الذي أحب النقاش معه .

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

    لذلك فلا داعي للخوف من كثرة قرائتها أو كتابتها من خلال السكريبت ... ولا داعي أيضا لمعالجتها كثيرا ... هل تغيرت أم لا .. فالهدف هنا هو السرعة ..

    بالنسبة لتبادل المعلومات النصية فهي فكرة مختلفة عن الهدف هنا ...

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

  14. #14
    الصورة الرمزية وضاح عطار
    وضاح عطار غير متواجد حالياً عضو مميز ومشرف سابق
    تاريخ التسجيل
    Apr 2006
    الإقامة
    السعودية
    العمر
    52
    المشاركات
    7,041

    افتراضي

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

الاســـم:	StringMsg2.png
المشاهدات:	77
الحجـــم:	142.8 كيلوبايت
الرقم:	452088
    ملحوظة
    بدلا من الحاجه الى كتابة رقم نافذة الماستر داخل اعدادات الكلاينت

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

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

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

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

  15. #15
    الصورة الرمزية remon78eg
    remon78eg غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    May 2010
    العمر
    46
    المشاركات
    1,484

    افتراضي

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





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

صفحة 1 من 9 1234567 ... الأخيرةالأخيرة

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