صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 17
  1. #1
    الصورة الرمزية !MMM!
    !MMM! غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2006
    الإقامة
    (بريطانيا) + (السعودية)
    العمر
    44
    المشاركات
    1,047

    افتراضي للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

    ياشباب عندي متغيرات

    WR1
    WR2
    WR3
    WS1
    WS2
    WS3

    وعندي السعر الحالي ...

    أبغى أعمل حلقة تدور على كل المتغيرات وتعمل لي مقارنة بالسعر وتستخرج لي أقرب واحد منهم ؟



    بإنتظار المساعدة

  2. #2
    الصورة الرمزية FX5
    FX5
    FX5 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2005
    المشاركات
    357

    Talking رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

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

    WR1
    WR2
    WR3
    WS1
    WS2
    WS3

    وعندي السعر الحالي ...

    أبغى أعمل حلقة تدور على كل المتغيرات وتعمل لي مقارنة بالسعر وتستخرج لي أقرب واحد منهم ؟


    بإنتظار المساعدة
    تفضل هذا الكود المبسط

    كود:
    double closestLine = WR1; if (MathAbs(Bid - WR2) < MathAbs(Bid - closestLine)) closestLine = WR2; else if (MathAbs(Bid - WR3) < MathAbs(Bid - closestLine)) closestLine = WR3; else if (MathAbs(Bid - WS1) < MathAbs(Bid - closestLine)) closestLine = WS1; else if (MathAbs(Bid - WS2) < MathAbs(Bid - closestLine)) closestLine = WS2; else if (MathAbs(Bid - WS3) < MathAbs(Bid - closestLine)) closestLine = WS3; Alert("Closest Line price is: ", closestLine);
    مع تمنياتي لك بالتوفيق..

  3. #3
    الصورة الرمزية esam 123
    esam 123 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Dec 2006
    الإقامة
    مصر
    المشاركات
    1,678

    افتراضي رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

    وماذا بعد الكود

  4. #4
    الصورة الرمزية ahmed hanafy
    ahmed hanafy غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2006
    الإقامة
    Cairo-Egypt
    العمر
    72
    المشاركات
    6,986

    افتراضي رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

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



    كود:
     
    
    double closestLine = WR1;
    if (MathAbs(Bid - WR2) < MathAbs(Bid - closestLine)) closestLine = WR2; else if (MathAbs(Bid - WR3) < MathAbs(Bid - closestLine)) closestLine = WR3; else if (MathAbs(Bid - WS1) < MathAbs(Bid - closestLine)) closestLine = WS1; else if (MathAbs(Bid - WS2) < MathAbs(Bid - closestLine)) closestLine = WS2; else if (MathAbs(Bid - WS3) < MathAbs(Bid - closestLine)) closestLine = WS3;
    Alert("Closest Line price is: ", closestLine);

    مع تمنياتي لك بالتوفيق..
    حقا السهل الممتنع
    ما شاء الله عليك

  5. #5
    الصورة الرمزية !MMM!
    !MMM! غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2006
    الإقامة
    (بريطانيا) + (السعودية)
    العمر
    44
    المشاركات
    1,047

    افتراضي رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

    ماااااشاء الله تبارك الله عليك

    رائع ، وشكراً على جهدك

    انا كنت دايخ عليها ، لأني أفكر بطريقة عمل حلقة For
    وكان عندي مشكلة أن الأسماء متغيرة

    بس أنت حليتها ببساطة ، ماشاء الله عليك

  6. #6
    الصورة الرمزية الرحال55
    الرحال55 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2006
    الإقامة
    الولايات المتحدة
    المشاركات
    71

    افتراضي رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

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


    كود:
     
    
    double closestLine = WR1;
    if (MathAbs(Bid - WR2) < MathAbs(Bid - closestLine)) closestLine = WR2; else if (MathAbs(Bid - WR3) < MathAbs(Bid - closestLine)) closestLine = WR3; else if (MathAbs(Bid - WS1) < MathAbs(Bid - closestLine)) closestLine = WS1; else if (MathAbs(Bid - WS2) < MathAbs(Bid - closestLine)) closestLine = WS2; else if (MathAbs(Bid - WS3) < MathAbs(Bid - closestLine)) closestLine = WS3;
    Alert("Closest Line price is: ", closestLine);

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

  7. #7
    الصورة الرمزية !MMM!
    !MMM! غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2006
    الإقامة
    (بريطانيا) + (السعودية)
    العمر
    44
    المشاركات
    1,047

    افتراضي رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

    سؤال آخر ياسعادة المبرمجين


    الحين في النتائج يطلع لي الرقم على الشكل x.xxxxxxxx ، فكيف ممكن أخليه x.xxxx أو x.xx ?

  8. #8
    الصورة الرمزية FX5
    FX5
    FX5 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2005
    المشاركات
    357

    افتراضي رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

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

    الحين في النتائج يطلع لي الرقم على الشكل x.xxxxxxxx ، فكيف ممكن أخليه x.xxxx أو x.xx ?

    عدت للتو إلى البيت بعد يوم شاق وطويل


    أريد تبيين عدة نقاط:

    أولا: يوجد خطأ صغير في الكود الذي كتبته البارحة لم انتبه له فقد كنت نصف نائم، حيث يجب حذف عبارة else من جميع الجمل الشرطية لكي يقوم البرنامج بتنفيذها جميعاً، وبذلك يصبح الكود:

    كود:
    double closestLine = WR1;
    if (MathAbs(Bid - WR2) < MathAbs(Bid - closestLine)) closestLine = WR2; if (MathAbs(Bid - WR3) < MathAbs(Bid - closestLine)) closestLine = WR3; if (MathAbs(Bid - WS1) < MathAbs(Bid - closestLine)) closestLine = WS1; if (MathAbs(Bid - WS2) < MathAbs(Bid - closestLine)) closestLine = WS2; if (MathAbs(Bid - WS3) < MathAbs(Bid - closestLine)) closestLine = WS3;
    Alert("Closest Line price is: ", closestLine);
    ثانياً: بالنسبة لسؤال الأخ الرحال حول تغير الإشارة في حال كان الخط فوق السعر أو تحته.

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

    ثالثاً بالنسبة لطريقة تغيير دقة عرض الأعداد بعد الفاصلة العشرية، الحل في استعمال الدالة NormalizeDouble للتحكم في دقة العرض التي تريدها، وإليك هذا المثال:

    كود:
    double value = 1.1234567; NormalizeDouble(value, 2); Print(value); // will print 1.12
    أخيراً يجب أن أذكر أنه يوجد طرق أخرى لكتابة كود يقوم بنفس المهمة، بعض هذه الطرق قد يكون أفضل حسب تركيب الإكسبرت الذي تقوم ببرمجته، فمثلاً من الممكن تخزين قيم الخطوط السابقة في مصفوفة واستعمال حلقة for، كما يمكن استعمال الدالة ArraySort لإعادة ترتيب المصفوفة تصاعديا أو تنازلياً، بالإضافة إلى تقنيات أخرى تختلف حسب المهمات المطلوبة من الإكسبرت.

    أطيب التمنيات..



  9. #9
    الصورة الرمزية !MMM!
    !MMM! غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2006
    الإقامة
    (بريطانيا) + (السعودية)
    العمر
    44
    المشاركات
    1,047

    افتراضي رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

    مشكور أخوي على التوضيح FX5

    شكلي طولت الأسئلة ... ولكن عندما عملت نورماليز طبع الرقم هكذا 1.12340000

    أنا نفسي أشيل الأصفار ..

  10. #10
    الصورة الرمزية FX5
    FX5
    FX5 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2005
    المشاركات
    357

    افتراضي رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

    اقتباس المشاركة الأصلية كتبت بواسطة !MMM! مشاهدة المشاركة
    مشكور أخوي على التوضيح FX5

    شكلي طولت الأسئلة ... ولكن عندما عملت نورماليز طبع الرقم هكذا 1.12340000

    أنا نفسي أشيل الأصفار ..
    دالة NormalizeDouble لها بارامترين:

    الأول هو المتغير الذي يجب أن نطبق عليه الدالة.

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

    لذلك تأكد من أنك وضعت القيمة التي تريدها وهي 2 في مدخلات الدالة.

    كود:
    NormalizeDouble(myDouble, 2);
    أطيب التمنيات..

  11. #11
    الصورة الرمزية !MMM!
    !MMM! غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2006
    الإقامة
    (بريطانيا) + (السعودية)
    العمر
    44
    المشاركات
    1,047

    افتراضي رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

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

  12. #12
    الصورة الرمزية FX5
    FX5
    FX5 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2005
    المشاركات
    357

    افتراضي رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

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

    غريب حقاً...

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

    تحياتي..

  13. #13
    الصورة الرمزية !MMM!
    !MMM! غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2006
    الإقامة
    (بريطانيا) + (السعودية)
    العمر
    44
    المشاركات
    1,047

    افتراضي رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

    شوف النتيجة النتاتجة عن الكود التالي


    كود:
    double DistancePivot;
    if (PairRound == 4) {DistancePivot = MathAbs(Bid - closestLine) * 10000;}
    else {DistancePivot = MathAbs(Bid - closestLine) * 100;}
    int DistancePivot2 = NormalizeDouble(DistancePivot,0);
    double closestLine2 = NormalizeDouble(closestLine,PairRound);
    string PivotResult = "Closest Line Price is " +  closestLine2 + " and Distance is " + DistancePivot2 ;
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة price.JPG‏  

  14. #14
    الصورة الرمزية FX5
    FX5
    FX5 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2005
    المشاركات
    357

    افتراضي رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

    اقتباس المشاركة الأصلية كتبت بواسطة !MMM! مشاهدة المشاركة
    شوف النتيجة النتاتجة عن الكود التالي


    كود:
    double DistancePivot;
    if (PairRound == 4) {DistancePivot = MathAbs(Bid - closestLine) * 10000;}
    else {DistancePivot = MathAbs(Bid - closestLine) * 100;}
    int DistancePivot2 = NormalizeDouble(DistancePivot,0);
    double closestLine2 = NormalizeDouble(closestLine,PairRound);
    string PivotResult = "Closest Line Price is " +  closestLine2 + " and Distance is " + DistancePivot2 ;
    بصراحة لم أفهم الكثير من هذا الكود

    ولكن لدي عدة ملاحظات:

    - أولا تختلف قيمة النقطة بحسب الزوج فمثلا في الباوند دولار تكون 0.0001 أما في الدولار ين 0.01 ، لذلك فالأفضل أن تقسم على قيمة النقطة Point بدلاً من الضرب في 10000

    - ثانياً لاحظت أنك عرفت متغير صحيح int ليأخذ خرج الدالة NormalizeDouble وهذا استخدام غير صحيح، لو كانت لغة البرمجة C شارب لكنت حصلت على compile error ، أما في لغة mql4 فللأسف يتجاهل المترجم هذه الأخطاء لتصبح لدينا الأخطاء صعبة الاكتشاف أثناء التنفيذ runtime error.

    - أخيراً في البارامتر الثاني للدالة NormalizeDouble لا تضع متغير إنما ضع رقما صريح مثل 1 أو 2 حتى تستطيع كشف الخطأ، ثم بعدها ضع متغير إذا أحببت.

    تمنياتي لك بالتوفيق..

  15. #15
    الصورة الرمزية !MMM!
    !MMM! غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2006
    الإقامة
    (بريطانيا) + (السعودية)
    العمر
    44
    المشاركات
    1,047

    افتراضي رد: للمبرمجين " أبغى أسوي حلقة ، تدور على المتغيرات ؟ كيف ؟

    أولاً : المؤشر فيه إمكانية تعديل عدد الخانات من 4 إلى 2 حسب الزوج .. لم تطرأ علي فكرة القسمة على قيمة النقطة .. هل ممكن مثال ؟


    ثانياً : قبل أن أسند القيمة إلى متغير صحيح ، حولت جميع مابعد الفاصلة إلى أصفار يعني لا قيمة لها ( أجبرت على هذه الخطوة للتخلص من الثمان خانات من الأصفار بعد الفاصلة ) !

    ثالثاً : وضعت قيمة عددية ... ثم وضعت متغير .. والحال من بعضه

صفحة 1 من 2 12 الأخيرةالأخيرة

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

  1. "التعليم" تُنهى اليوم اختيار كتب "3 إعدادى" و"6 ابتدائى"
    By شذى22 in forum استراحة اعضاء المتداول العربي
    مشاركات: 0
    آخر مشاركة: 09-08-2010, 06:34 PM
  2. القناة الفضائية العربية الاولى المتخصصة في الفوركس ،،، """"""""
    By (عدي) in forum استراحة اعضاء المتداول العربي
    مشاركات: 21
    آخر مشاركة: 14-12-2008, 07:48 AM
  3. مسابقة FXSol : """" قيادة المتاجرة التجريبية """"
    By لجنة المسابقات in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادن
    مشاركات: 475
    آخر مشاركة: 19-03-2008, 12:32 AM
  4. """""""" تبادل أدوار الجنون """""""
    By محمود عامر in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادن
    مشاركات: 0
    آخر مشاركة: 27-02-2008, 10:43 AM
  5. أبغى أنقل من أميرتريد أبغى النصح والمشورة
    By حسون in forum سوق الأسهم الأمريكية وتداول عقود الخيارات والـ CFDs
    مشاركات: 3
    آخر مشاركة: 11-01-2006, 11:57 PM

الاوسمة لهذا الموضوع


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