مساعدة في أزرار EA ، من فضلك
Results 1 to 8 of 8

Thread: مساعدة في أزرار EA ، من فضلك

  1. #1
    اهلا بالجميع،

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

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

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

    هنا هو رمز الأزرار



    شكر.


    Inserted Code/p --------------------------------------------- --------------------- /| وظيفة التهيئة الخبير |/p ----------------------------------------------- ------------------- int IntInInit () ObjectCreate (ChartID () ، تعطيل Longs ، OBJ_BUTTON ، 0،0،0)؛ ObjectSet (Longs Disabled، OBJPROP_BGCOLOR، clrRed)؛ ObjectSet (Longs Disabled، OBJPROP_CORNER، 1)؛ ObjectSet (Longs Disabled، OBJPROP_YDISTANCE، 60)؛ ObjectSet (Longs Disabled، OBJPROP_XDISTANCE، 120)؛ ObjectSet (Longs Disabled، OBJPROP_XSIZE، 120)؛ ObjectSet (Longs Disabled، OBJPROP_YSIZE، 30)؛ ObjectSetString (ChartID () ، تعطيل Longs ، OBJPROP_TEXT ، Longs معطل)؛ ObjectSet (Longs Disabled، OBJPROP_COLOR، White)؛ ObjectCreate (ChartID () ، شورت معطل ، OBJ_BUTTON ، 0،0،0) ؛ ObjectSet (شورت معطل ، OBJPROP_BGCOLOR ، clrRed) ؛ ObjectSet (Shorts Disabled، OBJPROP_CORNER، 1)؛ ObjectSet (شورت معطل ، OBJPROP_YDISTANCE ، 90) ؛ ObjectSet (شورت معطل ، OBJPROP_XDISTANCE ، 120)؛ ObjectSet (Shorts Disabled، OBJPROP_XSIZE، 120)؛ ObjectSet (شورت معطل ، OBJPROP_YSIZE ، 30) ؛ ObjectSetString (ChartID () ، معطل شورت ، OBJPROP_TEXT ، شورت معطل) ؛ ObjectSet (شورت معطل ، OBJPROP_COLOR ، أبيض) ؛ ObjectCreate (ChartID () ، إغلاق الكل ، OBJ_BUTTON ، 0،0،0)؛ ObjectSet (إغلاق الكل ، OBJPROP_BGCOLOR ، clrRed)؛ ObjectSet (إغلاق الكل ، OBJPROP_CORNER ، 1)؛ ObjectSet (إغلاق الكل ، OBJPROP_YDISTANCE ، 120)؛ ObjectSet (إغلاق الكل ، OBJPROP_XDISTANCE ، 120)؛ ObjectSet (إغلاق الكل ، OBJPROP_XSIZE ، 120)؛ ObjectSet (إغلاق الكل ، OBJPROP_YSIZE ، 30)؛ ObjectSetString (ChartID () ، إغلاق الكل ، OBJPROP_TEXT ، إغلاق الكل)؛ ObjectSet (إغلاق الكل ، OBJPROP_COLOR ، أبيض)؛ ObjectCreate (ChartID ()، ذوي الاحتياجات الخاصة، OBJ_BUTTON، 0،0،0)؛ ObjectSet (ذوي الاحتياجات الخاصة، OBJPROP_BGCOLOR، clrRed)؛ ObjectSet (ذوي الاحتياجات الخاصة، OBJPROP_CORNER، 1)؛ ObjectSet (ذوي الاحتياجات الخاصة، OBJPROP_YDISTANCE، 150)؛ ObjectSet (ذوي الاحتياجات الخاصة، OBJPROP_XDISTANCE، 120)؛ ObjectSet (ذوي الاحتياجات الخاصة، OBJPROP_XSIZE، 120)؛ ObjectSet (ذوي الاحتياجات الخاصة، OBJPROP_YSIZE، 30)؛ ObjectSetString (ChartID ()، ذوي الاحتياجات الخاصة، OBJPROP_TEXT، معطل). ObjectSet (ذوي الاحتياجات الخاصة، OBJPROP_COLOR، أبيض)؛ ObjectCreate (ChartID ()، يبيع، OBJ_BUTTON، 0،0،0)؛ ObjectSet (يبيع، OBJPROP_BGCOLOR، clrGreen)؛ ObjectSet (يبيع، OBJPROP_CORNER، 1)؛ ObjectSet (يبيع، OBJPROP_YDISTANCE، 180)؛ ObjectSet (يبيع، OBJPROP_XDISTANCE، 120)؛ ObjectSet (يبيع، OBJPROP_XSIZE، 120)؛ ObjectSet (يبيع، OBJPROP_YSIZE، 30)؛ ObjectSetString (ChartID ()، يبيع، OBJPROP_TEXT، يبيع)؛ ObjectSet (يبيع، OBJPROP_COLOR، أبيض)؛ ObjectCreate (ChartID ()، بيع، OBJ_BUTTON، 0،0،0)؛ ObjectSet (بيع، OBJPROP_BGCOLOR، clrGreen)؛ ObjectSet (بيع، OBJPROP_CORNER، 1)؛ ObjectSet (بيع، OBJPROP_YDISTANCE، 210)؛ ObjectSet (بيع، OBJPROP_XDISTANCE، 120)؛ ObjectSet (بيع، OBJPROP_XSIZE، 120)؛ ObjectSet (بيع، OBJPROP_YSIZE، 30)؛ ObjectSetString (ChartID ()، بيع، OBJPROP_TEXT، بيع)؛ ObjectSet (بيع، OBJPROP_COLOR، أبيض)؛ العودة (INIT_SUCCEEDED)؛/ ----------------------------------------------- ------------------- / --------------------------- --------------------------------------- /| دالة ChartEvent|/ ----------------------------------------------- ------------------- void OnChartEvent (const int id ، const const lparam، const dparam، const string sparam) if (id == CHARTEVENT_OBJECT_CLICK) if (sparam = = تم تعطيل العرض) إذا كانت (AllowLongs) AllowLongs = false؛ ObjectSetInteger (ChartID () ، Longs معطل ، OBJPROP_STATE ، false)؛ ObjectSetInteger (ChartID () ، تعطيل Longs ، OBJPROP_BGCOLOR ، clrRed)؛ ObjectSetString (ChartID () ، تعطيل Longs ، OBJPROP_TEXT ، Longs معطل)؛ else AllowLongs = true؛ ObjectSetInteger (ChartID () ، معطل طويل ، OBJPROP_STATE ، صحيح)؛ ObjectSetInteger (ChartID () ، تعطيل Longs ، OBJPROP_BGCOLOR ، clrGreen)؛ ObjectSetString (ChartID () ، Longs معطل ، OBJPROP_TEXT ، Longs ممكّن)؛ if (sparam == Shorts Disabled) إذا كانت (AllowShorts) AllowShorts = false؛ ObjectSetInteger (ChartID () ، تعطيل السلاسل ، OBJPROP_STATE ، false)؛ ObjectSetInteger (ChartID () ، تعطيل Shorts ، OBJPROP_BGCOLOR ، clrRed)؛ ObjectSetString (ChartID () ، معطل شورت ، OBJPROP_TEXT ، شورت معطل) ؛ else AllowShorts = true؛ ObjectSetInteger (ChartID () ، تعطيل السلاسل ، OBJPROP_STATE ، صحيح)؛ ObjectSetInteger (ChartID () ، تعطيل Shorts ، OBJPROP_BGCOLOR ، clrGreen)؛ ObjectSetString (ChartID () ، معطل شورت ، OBJPROP_TEXT ، شورت ممكن) ؛ إذا (sparam == إغلاق الكل) CloseAll ()؛ ObjectSetInteger (ChartID () ، إغلاق الكل ، OBJPROP_STATE ، false)؛ if (sparam == Disabled) if (NotDisabled) NotDisabled = false؛ ObjectSetInteger (ChartID () ، معطل ، OBJPROP_STATE ، false)؛ ObjectSetInteger (ChartID () ، معطل ، OBJPROP_BGCOLOR ، clrRed) ؛ ObjectSetString (ChartID () ، معطل ، OBJPROP_TEXT ، معطل) ؛ else NotDisabled = true؛ ObjectSetInteger (ChartID () ، معطل ، OBJPROP_STATE ، صحيح)؛ ObjectSetInteger (ChartID () ، معطل ، OBJPROP_BGCOLOR ، clrGreen)؛ ObjectSetString (ChartID () ، معطل ، OBJPROP_TEXT ، ممكّن)؛ إذا (sparam == Buy) إذا (NotDisabled) UpCycle ()؛ ObjectSetInteger (ChartID () ، شراء ، OBJPROP_STATE ، false)؛ if (sparam == Sell) if (NotDisabled) DownCycle ()؛ ObjectSetInteger (ChartID () ، بيع ، OBJPROP_STATE ، false)؛/ ----------------------------------------------- -------------------

  2. #2
    تحقق من حالة الكائن - لا نفترض الشرط وبعد ذلك ستعمل

  3. #3

    Quote Originally Posted by ;
    تقييم حالة الكائن - لا تفترض الدولة وبعد ذلك ستعمل
    شكرا على الرد. لست متأكدا ما تقصد. إنه زر ، إما النقر عليه أو لا؟ نسيت شيئا ما هنا؟

  4. #4

    Quote Originally Posted by ;
    اقتبس شكرا على الرد. لست متأكدا مما تقصده . إنه زر ، ربما يتم النقر عليه أو لا؟ نسيت شيئا ما هنا؟
    نعم فعلا. لا تتحقق من حالة هذا الزر ، ولكنك تتحقق فقط من تسجيل الحدث باسم هذا الزر. كنت بحاجة إلى شيء من هذا القبيل ... إدراج رمز ... إذا (sparam == button.Name () button.State ()) ...

  5. #5

    Quote Originally Posted by ;
    اقتبس نعم. أنت لا تقيم حالة الزر ، ولكنك تتحقق فقط من تسجيل حدث ما باستخدام عنوان الزر. سوف تحتاج إلى شيء مثل ...... if (sparam == button.Name () button.State ()) ...
    شكرا لك على سبيل المثال ، سأبحث عنه وأضيفه إلى شفرتي. ولكن كيف يرتبط ذلك بحقيقة أنني أنقر على الزر ، يحدث شيء ما (يسمح بفتح الصفقات الطويلة التلقائية ، على سبيل المثال) وبعد فترة ، أرى أن الزر لا يزال يتم النقر عليه ولكن لا يتم تنفيذ الوظيفة المرتبطة به. إعادة النقر فوق الزر وعلى إعادة تشغيل الدورة. ما أريد حله هو أنه إذا تم النقر عليه ، فيجب النقر عليه وعدم عرض نفسه على أنه نقر.

  6. #6
    Quote Originally Posted by ;
    اقتباس اشكرك على سبيل المثال ، سأبحث عنها وأضيفها إلى شفرتي. ولكن كيف يرتبط ذلك بحقيقة أنني قمت بالنقر فوق الزر ، يحدث شيء ما (يسمح بفتح الصفقات الطويلة التلقائية ، على سبيل المثال) وبعد فترة ، ألاحظ أن الزر لا يزال يتم النقر عليه ولكن لا يتم تنفيذ الوظيفة المرتبطة به. إعادة النقر فوق الزر وعلى إعادة تشغيل الدورة. ما أريد حله هو أنه في حالة النقر عليه ، يجب أن يظل النقر فوقه وليس إظهار نفسه فقط.
    اتبع نصيحة كبار السن الخاص بك وفحص حالة زر لعنة!
    ستحتاج أيضًا إلى إعادة حالة الزر إلى false بعد انتهاء الدالة. أدخل الرمز إذا (sparam == button.Name () button.State ()) some_func ()؛ button.State (كاذبة)؛

  7. #7
    Quote Originally Posted by ;
    quote اتبع نصيحة كبار السن الخاص بك والتحقق من حالة زر لعنة!
    أنت أيضاً تريد تعيين حالة الزر مرة أخرى إلى false بعد انتهاء الدالة الخاصة بك. إذا (sparam == button.Name () button.State ()) some_func ()؛ button.State (كاذبة)؛
    أنا لذلك تبدو الشفرة الآن كشيء من هذا القبيل ، فأنا أضع بالفعل الولاية في الكود بحيث قمت بإدراج الدالة ButtonState () التي ترجع صوابًا أو خطأ وفقًا لحالة المطابقة ، يجب أن أكون قد فعلت شيئًا خاطئًا أو لم أكن أعرف لأنني الآن اضطر للنقر مرتين إلى ثلاث مرات حتى يحصل الزر على الصياغة والحالة الصحيحة. لما هو صعب جدا؟ قمت بتقييم أول كود خاص بي وأنتجت TrueFalse وفقًا لذلك بمجرد النقر عليه ، ما الذي يمكن أن يخلق حالة زر يختلف عن الحالة المعروضة على الشاشة؟ بسبب
    إدراج رمز bool ButtonState (سلسلة ButtonName) إذا كان (ObjectGetInteger (0 ، ButtonName ، OBJPROP_STATE) == true) بإرجاع true؛ آخر العودة كاذبة ؛ void OnChartEvent (const int id، const long lparam، const double dparam، const string sparam) {if (id == CHARTEVENT_OBJECT_CLICK) {if (sparam == Longs ButtonState (Longs)) {if (AllowLongs) AllowLongs = false؛ ObjectSetInteger (ChartID () ، Longs ، OBJPROP_STATE ، false)؛ ObjectSetInteger (ChartID () ، Longs ، OBJPROP_BGCOLOR ، clrRed)؛ ObjectSetString (ChartID () ، Longs ، OBJPROP_TEXT ، Longs معطل)؛ else AllowLongs = true؛ ObjectSetInteger (ChartID () ، Longs ، OBJPROP_STATE ، صحيح)؛ ObjectSetInteger (ChartID () ، Longs ، OBJPROP_BGCOLOR ، clrGreen)؛ ObjectSetString (ChartID () ، Longs ، OBJPROP_TEXT ، Longs ممكّن)؛ ...

  8. #8
    إذا كانت هذه هي الحالة ، عندئذ لديك مشكلة في المنبع مع أي منطق هو تعيين منطقي AllowLongs. يمكنك أيضًا تبسيط حالة التحقق من حالة func إلى فقط: Inserted Code bool buttonState (series button_name) return ObjectGetInteger (0، button_name، OBJPROP_STATE)؛

أذونات النشر

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
  • رمز BB مفعل
  • الابتسامات مفعلة
  • رمز[IMG] مفعل
  • رمز [VIDEO] مفعل
  • رمز HTML غير مفعل
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.