4 مرفق (مرفقات) مرحبًا بالجميع ،
أنا مبتدئ في برمجة MQL4 ولدي بعض المعرفة في لغات البرمجة الأخرى. لقد كنت أعاني من هذا الرمز الذي يبدو سهلاً والذي أرفقته أدناه. ما أرغب في تحقيقه بشكل أساسي هو وجود مؤشر OBV (On Balance Volume) مع متوسط متحرك (SMA أو EMA أو SMMA أو LWMA) في نافذة مؤشر منفصلة في أسفل الرسم البياني. هكذا يجب أن تبدو كما يلي:
لقد استخدمت OBV.mq4 كبداية وبدأت في بناء الكود تدريجيًا: أضفت وظيفتي SetIndexBuffer و SetIndexStyle في init () للمخزن المؤقت الثاني الذي سيحتفظ بقيم MA الخاصة بي ، وأنشأت حلقة تبدو للخلف MA_period = 200 وحدة زمنية في الماضي ، تأخذ قيم OBV لتلك ، وتضعها جميعًا في مصفوفة OBV_vals ، ثم تستخدم وظيفة iMAOnArray () للحصول على SMA أو EMA أو SMMA أو LWMA. لقد وضعت قيمة المتوسط المتحرك التي أرجعها iMAOnArray () في MABuffer على أمل أن تظهر في نافذة المؤشر. تمكنت من الحصول على كل شيء حتى السطر الذي أحفظ فيه المتوسطات المتحركة في المخزن المؤقت. لدي قيم ماجستير ، لقد طبعتها في المجلة وبدت صالحة. ومع ذلك ، في اللحظة التي ألغيت فيها التعليق على السطر MABuffer [i] = nOBVMA بقصد إظهار قيم المتوسطات المتحركة هذه على شاشة المؤشر ، يتلف كل شيء كما ترى في هذه الصورة:
من المثير للاهتمام ، مع تعليق سطر MABuffer [i] = nOBVMA ، فإن OBV يعمل بشكل جيد:
ها هو مقتطف الشفرة ولكني أرفقت أيضًا الكود الكامل أدناه.
رمز مدرج/حلقة بالنظر إلى الوراء MA_period = 200 فترة وأخذ/قيم OBV المقابلة لتلك الشموع لـ (int j = 1؛ jlt؛ = MA_period؛ j ) {nOBV_vals # 91؛ j-1 # 93؛ = iOBV (NULL، 0، PRICE_CLOSE، i j) ؛ }/باستخدام مصفوفة nOBV_vals المأهولة حديثًا ،/يحسب هذا السطر MA nOBVMA = iMAOnArray (nOBV_vals، 0، MA_period، 0، MA_method، i)؛/اطبع قيمة المتوسط المتحرك Print (قيمة OBV EMA هي DoubleToStr (nOBVMA)) ؛/أضف MA إلى MABuffer بحيث يظهر في نافذة المؤشر/عندما يتم تمكين هذا الخط ، حتى بيانات OBVBuffer تتلف! مابوفر # 91 ؛ أنا # 93 ؛ = nOBVMA ؛
إذا استطاع أحد أن يساعد مبتدئًا متحمسًا ، فسأكون ممتنًا للغاية!
إذا كان لديك أي ملاحظات أخرى تتبادر إلى أذهانك عند النظر في مشكلتي ، فالرجاء عدم التردد في المشاركة ، فأنا مصمم حقًا على تحسين مهارات الترميز الخاصة بي في MQL4 بأسرع ما يمكن وبكفاءة.
ملاحظة: أدرك أنه يمكنني إضافة متوسط متحرك إلى مؤشر OBV على MetaTrader. ومع ذلك ، فإن OBV مع MA سيكون جزءًا من EA في المستقبل الذي أخطط لبرمجته ، وبالتالي أحتاج إلى مؤشر مع OBV و MA للمخازن المؤقتة لتمريره إلى بقية EA لاحقًا.
شكرا جزيلا لتقديم مساعدتكم!
https://www.forexdrop.com/attachment...2255590709.mq4