صفيف خارج النطاق؟ مساعدة؟
Results 1 to 9 of 9

Thread: صفيف خارج النطاق؟ مساعدة؟

  1. #1
    تحرير: هنا هو الإصلاح بفضل Johnvanwijk!
    https://www.forexdrop.com/trading-sy...dom-calls.html


    مرحبا شباب،
    لذلك كنت أحاول استخلاص بعض الأشياء ومع ذلك فإنه يعطيني خطأ صفيف خارج النطاق.
    إنه يرسم الأسهم الخضراء تمامًا ، إلا أن الأسهم الحمراء لن تعمل.

    إذا أمكن لأحدهم أن يخبرني بما أفعله خطأ ، فسيكون ذلك رائعاً.

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

    هذا هو الكود:

    Inserted Code/ --------------------------------------------- --------------------- /| FractalsExercise.mq4 |/| |/| https://www.mql5.com |/ ----------------------------------------------- ------------------- #property copyright #property link https://www.mql5.com #property version 1.00 #property strict #property indior_chart_window double Highs # ​​91؛ # 93 ؛؛ double Lows # 91؛ # 93 ؛؛/ ----------------------------------------------- ------------------- /| وظيفة التهيئة مؤشر مخصص/ ----------------------------------------------- ------------------- int OnInit () {/--- drawing style SetIndexStyle (0، DRAW_ARROW، EMPTY، 1، clrGreen)؛ SetIndexArrow (0 ، 234)؛ SetIndexStyle (1، DRAW_ARROW، EMPTY، 1، clrRed)؛ SetIndexArrow (1، 233)؛/--- مؤشّرات المؤشر SetIndexBuffer (0، Highs)؛ SetIndexBuffer (1 ، الانخفاضات) ؛/--- return (INIT_SUCCEEDED)؛ }/ ---------------------------------------------- -------------------- /| وظيفة التكرار مؤشر مخصص/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_total، const int prev_calculated، const datetime time # 91؛ # 93 ؛، const double open # 91؛ # 93؛ ، const double high # 91؛ # 93 ؛، const double low # 91؛ # 93 ؛، const double close # 91؛ # 93 ؛، const long tick tick_volume # 91؛ # 93 ؛، const long volume # 91؛ # 93؛ ، const int spread # 91؛ # 93؛) {//--- int i = 1؛ الباحث الثاني = 1 ؛ int Limit = Bars - 1؛ بينما (i ​​lt؛ Limit) {if (High # 91؛ i # 93؛ gt؛ High # 91؛ i 1 # 93؛) {if (High # 91؛ i # 93؛ gt؛ High # 91؛ i - 1 # 93؛) {Highs # ​​91؛ i # 93؛ = High # 91؛ i # 93 ؛؛ }} i ؛ } بينما (ii lt؛ Limit) {if (Low # 91؛ ii # 93؛ lt؛ Low # 91؛ ii 1 # 93؛) {if (Low # 91؛ ii # 93؛ lt؛ Low # 91؛ ii - 1 # 93؛) {Lows # 91؛ ii # 93؛ = منخفض # 91 ؛ ii # 93 ؛؛ }} ii ؛ }/--- return return of prev_calculated for return call return (rates_total)؛ }/ ---------------------------------------------- --------------------

    شكر!

  2. #2
    إذا قمت بتقسيم الحلقات while إلى مؤشرين ، فإنها تعمل بشكل مثالي مع عدم وجود خطأ واحد ولكن ليس عند وجودها معًا. لا يتم الوصول إلى أي شيء غير موجود أيضًا. ﻟذا ، ﻟﺳت ﻣﺗﺄﻛدًا ﻟﻣﺎذا ﯾﻘول إﻧﮫ ​​ﺧﺎرج اﻟﻧطﺎق

  3. #3

    Quote Originally Posted by ;
    {quote} أنت يا سيدي عبقري. لا أستطيع أن أصدق أن الإصلاح كان بهذه البساطة. سألوم هذا على قلة خبرتي وأتعلمها بنفسك. قضيت 5 ساعات جيدة في محاولة لمعرفة ذلك وكل ما وجدته هو الحل البديل الذي لم يصلح أي شيء. سأقوم بتحرير المشاركة الأولى لتضمين الإصلاح حتى يتمكن الأشخاص من الحصول على الإجابة السهلة إذا كانوا يبحثون عن ذلك! شكرا جزيلا!
    مرحباً AntiVi ، بالإضافة إلى ما شاركه john ، فأنت أيضاً تريد أن تتعود على استخدام البيانات التي تم تمريرها كمتحف في الدالة OnCalculate بدلاً من الاعتماد على بيانات من vars المضمنة. أيضا ، كنت ترغب في التأكد من قيامك بالظهور بشكل صحيح. لست بحاجة إلى معالجة الحلقة بأكملها (كل بيانات المخطط) في كل علامة. تحتاج فقط إلى معالجة جزء من بيانات المؤشر التي تحتاج إلى تحديث. فيما يلي مثال لكيفية الاستفادة بشكل أفضل من الدالة OnCalculate. تم إدخال الرمز #property strict #property indior_chart_window/START ADDED JvW #property indior_buffers 2/END ADDED JvW double Highs # ​​91؛ # 93 ؛؛ double Lows # 91؛ # 93 ؛؛/ ----------------------------------------------- ------------------- /| وظيفة التهيئة مؤشر مخصص/ ----------------------------------------------- ------------------- int OnInit () {/--- drawing style SetIndexStyle (0، DRAW_ARROW، EMPTY، 1، clrGreen)؛ SetIndexArrow (0234)؛ SetIndexStyle (1، DRAW_ARROW، EMPTY، 1، clrRed)؛ SetIndexArrow (1233)؛/--- مؤشّرات المؤشر SetIndexBuffer (0، Highs)؛ SetIndexBuffer (1، دنى)؛ العودة (INIT_SUCCEEDED)؛ }/ ---------------------------------------------- -------------------- /| وظيفة التكرار مؤشر مخصص/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_total، const int prev_calculated، const datetime time # 91؛ # 93 ؛، const double open # 91؛ # 93؛ ، const double high # 91؛ # 93 ؛، const double low # 91؛ # 93 ؛، const double close # 91؛ # 93 ؛، const long tick tick_volume # 91؛ # 93 ؛، const long volume # 91؛ # 93؛ ، const int spread # 91؛ # 93؛) {//--- int limit = rates_total - prev_calculated - 2؛ limit = limit lt؛ 1؟ 1: الحد لـ (int i = limit؛ i gt؛ 0؛ i--) {if (high # 91؛ i # 93؛ gt؛ high # 91؛ i 1 # 93؛ high # 91؛ i # 93؛ gt؛ high # 91؛ i-1 # 93؛) Highs # ​​91؛ i # 93؛ = high # 91؛ i # 93 ؛؛ إذا (منخفض # 91 ؛ أنا # 93 ؛ lt ؛ منخفض # 91 ؛ i 1 # 93 ؛ منخفض # 91 ؛ i # 93 ؛ lt ؛ منخفض # 91 ؛ i-1 # 93 ؛) Lows # 91 ؛ i # 93 . = low # 91؛ i # 93 ؛؛ }/--- return return of prev_calculated for return call return (rates_total)؛ }

  4. #4

    Quote Originally Posted by ;
    مرحبًا يا رفاق ، لذا كنت أحاول رسم بعض الأشياء على الرغم من أنها تعطيني خطأ صفيف خارج النطاق. إنه يرسم الأسهم الخضراء تمامًا ، إلا أن الأسهم الحمراء لن تعمل. إذا أمكن لأحدهم أن يخبرني بما أفعله خطأ ، فسيكون ذلك رائعاً. ليس لأنني أحاول الوصول إلى الشموع التي لم تكن موجودة بعد أو على الإطلاق بقدر ما أعرف. أحصل على أن بعض الناس قد يقولون أنه يمر الأشرطة المتاحة ولكن لقد اختبرت حتى مع الحد من 1000 وأنا متأكد من مخطط بي ، وأنه لا يزال يعطيني خارج النطاق. هذا هو الكود:/ ------------------------------------------ ------------------------ ...
    في كل حلقة ، حاول تقسيمها بشيء مثل المثال أدناه لتجنب تجاوز القضبان المتاحة: أدخل الرمز إذا كسر (i gt؛ = Bars-1)؛ الكود المدرج إذا كسر (ii gt؛ = Bars-1)؛

  5. #5
    1 مرفق (مرفقات)
    Quote Originally Posted by ;
    {quote} في كل حلقة ، حاول تقسيمها بشيء مثل المثال أدناه لتجنب تجاوز القضبان المتاحة: إذا كسر (i gt؛ = Bars-1)؛ إذا كسر (ii gt؛ = Bars-1)؛
    من ما أراه هو ما يفعله الحد الخاص بي بالفعل ، ومع ذلك فإنني ما زلت أقوم بإدخاله في الكود فقط لاختباره بل وقمت بتجربته في العديد من المواقف ، ومع ذلك يستمر الخطأ. أنا حيرة بصراحة لماذا يعطيني الخطأ. هذه صورة للنتيجة حتى الآن. يجب أن تفعل الشيء نفسه بالنسبة إلى الانخفاضات ذات الأسهم الحمراء تشير إلى الأعلى. يمكنك أيضًا رؤية الخطأ فقط لمنح الأشخاص فكرة.

  6. #6

    Quote Originally Posted by ;
    {quote} مما أراه هو ما يفعله My Limit بالفعل ، ومع ذلك فإنني ما زلت أقوم بإدخاله في الكود فقط لاختباره بل وقمت بتجربته في العديد من المواقف ، ومع ذلك يستمر الخطأ. أنا حيرة بصراحة لماذا يعطيني الخطأ. هذه صورة للنتيجة حتى الآن. يجب أن تفعل الشيء نفسه بالنسبة إلى الانخفاضات ذات الأسهم الحمراء تشير إلى الأعلى. يمكنك أيضًا رؤية الخطأ فقط لمنح الأشخاص فكرة. {صورة}
    ما هو الخط 71؟

  7. #7

    Quote Originally Posted by ;
    {quote} ما هو الخط 71؟
    سيكون هذا هو القيعان [ii] = Low [ii]؛ في الحلقة الثانية.

  8. #8
    مرحبا AntiVi ، يجب أن تشير إلى عدد المخازن المؤقتة المطلوبة .... التغيير التالي في البداية في التعليمات البرمجية الخاصة بك (بعد #property indior_chart_window) يجعلها تعمل بشكل جيد ..... #property indior_buffers 2 Cheers Enjoy! جون Inserted Code/ -------------------------------------------- ---------------------- /| FractalsExercise.mq4 |/| انتي في |/| https://www.mql5.com |/ ----------------------------------------------- ------------------- #property copyright AntiVi #property link https://www.mql5.com #property version 1.00 #property strict #property indior_chart_window/START ADDED JvW #property indior_buffers 2/END ADDED JvW double Highs # ​​91؛ # 93 ؛؛ double Lows # 91؛ # 93 ؛؛/ ----------------------------------------------- ------------------- /| وظيفة التهيئة مؤشر مخصص/ ----------------------------------------------- ------------------- int OnInit () {/--- drawing style SetIndexStyle (0، DRAW_ARROW، EMPTY، 1، clrGreen)؛ SetIndexArrow (0 ، 234)؛ SetIndexStyle (1، DRAW_ARROW، EMPTY، 1، clrRed)؛ SetIndexArrow (1، 233)؛/--- مؤشّرات المؤشر SetIndexBuffer (0، Highs)؛ SetIndexBuffer (1 ، الانخفاضات) ؛/--- return (INIT_SUCCEEDED)؛ }/ ---------------------------------------------- -------------------- /| وظيفة التكرار مؤشر مخصص/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_total، const int prev_calculated، const datetime time # 91؛ # 93 ؛، const double open # 91؛ # 93؛ ، const double high # 91؛ # 93 ؛، const double low # 91؛ # 93 ؛، const double close # 91؛ # 93 ؛، const long tick tick_volume # 91؛ # 93 ؛، const long volume # 91؛ # 93؛ ، const int spread # 91؛ # 93؛) {//--- int i = 1؛ الباحث الثاني = 1 ؛ int Limit = Bars - 1؛ بينما (i ​​lt؛ Limit) {if (High # 91؛ i # 93؛ gt؛ High # 91؛ i 1 # 93؛) {if (High # 91؛ i # 93؛ gt؛ High # 91؛ i - 1 # 93؛) {Highs # ​​91؛ i # 93؛ = High # 91؛ i # 93 ؛؛ }} i ؛ } بينما (ii lt؛ Limit) {if (Low # 91؛ ii # 93؛ lt؛ Low # 91؛ ii 1 # 93؛) {if (Low # 91؛ ii # 93؛ lt؛ Low # 91؛ ii - 1 # 93؛) {Lows # 91؛ ii # 93؛ = منخفض # 91 ؛ ii # 93 ؛؛ }} ii ؛ }/--- return return of prev_calculated for return call return (rates_total)؛ }/ ---------------------------------------------- --------------------

  9. #9

    Quote Originally Posted by ;
    مرحبا ، يجب أن تشير إلى عدد المخازن المؤقتة المطلوبة .... التغيير التالي في البداية في التعليمات البرمجية الخاصة بك (بعد #property indior_chart_window) يجعلها تعمل بشكل جيد ..... #property indior_buffers 2 Cheers Enjoy! جون/ ---------------------------------------------- -------------------- /| FractalsExercise.mq4 |/| |/|
    https://www.mql5.com|/ ----------------------------------------------- ------------------- #property copyright #property link https://www.mql5.com #property version 1.00 #property strict #property ...
    أنت يا سيدي عبقري. لا أستطيع أن أصدق أن الإصلاح كان بهذه البساطة. سألوم هذا على قلة خبرتي وأتعلمها بنفسك. قضيت 5 ساعات جيدة في محاولة لمعرفة ذلك وكل ما وجدته هو الحل البديل الذي لم يصلح أي شيء. سأقوم بتحرير المشاركة الأولى لتضمين الإصلاح حتى يتمكن الأشخاص من الحصول على الإجابة السهلة إذا كانوا يبحثون عن ذلك! شكرا جزيلا!

أذونات النشر

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
  • رمز 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.