كيفية إضافة اللون الأخضر الأحمر على المدرج التكراري؟
Results 1 to 6 of 6

Thread: كيفية إضافة اللون الأخضر الأحمر على المدرج التكراري؟

  1. #1
    1 مرفق (ق) مرحبا أصدقاء ،

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


    رمز المؤشر:
    Inserted Code/ --------------------------------------------- --------------------- /| CandleAverage_v1. mq4 |/| حقوق النشر © 2006 ، Forex-TSD. كوم |/| ألحان ايجوراد ، igorad2003 @ yahoo.co.uk |/| http://finance.groups.yahoo.com/group/TrendLaboratory |/ع ----------------------------------------------- ------------------- # حقوق الملكية الفكرية حقوق النشر © 2006، Forex-TSD. Com #property link http://www.forex-tsd.com/#property indior_separate_window #property indior_buffers 1 #property indior_color1 DeepSkyBlue/- enter parameters extern int Length = 31؛ extern int H_period = 25؛ extern int L_period = 27؛ extern int C_period = 9؛/- buffers dual CandleAgg # 91؛ # 93 ؛؛ dual BarValue # 91؛ # 93 ؛؛/ ----------------------------------------------- ------------------- /| وظيفة التهيئة مؤشر مخصص/ ----------------------------------------------- ------------------- init init ()/- indior Indior Indior (2)؛ SetIndexStyle (0، DRAW_HISTOGRAM)؛ SetIndexBuffer (0، CandleAvg)؛ SetIndexBuffer (1، BarValue)؛/- اسم سلسلة تسمية DataWindow ومؤشر subwindow short_name = CandleAverage ( الطول )؛ IndiorShortName (SHORT_NAME)؛ SetIndexLabel (0، CandleAvg)؛ SetIndexDrawBegin (0، طول)؛/- return (0)؛/ ----------------------------------------------- ------------------- /| التكرار مؤشر مخصص يخدم |/ ----------------------------------------------- ------------------- int int () int change، limit، counted_bars = IndiorCounted ()؛ dual UpDel، DnDel، H، L، C؛/- if (counted_barslt؛ 0) return (-1)؛ إذا كانت (counted_bars == 0) limit = Bars-Length-1؛/- سيتم عد الشريط النهائي المعدود إذا كان (counted_barsgt؛ 0) limit = Bars-counted_bars؛ القيد - لـ (shift = القيد ؛ shiftgt ؛ = 0 ؛ التغيير -) H = iMA (NULL ، 0 ، H_period ، 0 ، MODE_EMA ، PRICE_HIGH ، التغيير) ؛ L = iMA (NULL، 0، L_period، 0، MODE_EMA، PRICE_LOW، change)؛ C = iMA (NULL، 0، C_period، 0، MODE_EMA، PRICE_CLOSE، change)؛ UpDel = H - C ، Dndel = C - L؛ if (UpDel lt؛ DnDel) BarValue # 91؛ change # 93؛ = 1 ؛ if (UpDel gt؛ DnDel) BarValue # 91؛ change # 93؛ = -1 if (UpDel == DnDel) BarValue # 91؛ change # 93؛ = 0 for (shift = limitation؛ shiftgt؛ = 0؛ change -) CandleAvg # 91؛ change # 93؛ = iMAOnArray (BarValue، 0، Length، 0، MODE_SMA، change)؛/- return (0)؛/ ----------------------------------------------- ------------------- لقد حاولت تغيير الرمز مثل رفع الصوت عاليا:

    Inserted Code #property indior_separate_window #property indior_buffers 2 #property indior_color1 DeepSkyBlue #property indior_color2 Red ولكن لم تنجح لأن القيمة التكرارية محفوظة في مخزن مؤقت واحد فقط ، CandleAvg.

    كيفية فصل قيمة سلبية وإيجابية من المخزن المؤقت CandleAvg وإضافة اللون الأخضر الأحمر؟

    من فضلك النصيحة.

    شكرا للمساعدة.






  2. #2
    قم بتضمين مخزنين مؤقتين: CandleAvgPlus [] ، و CandleAvgMinus [] وقم بتعيين القيمة التي سيتم إفراغها بواسطة كليهما. ثم استخدم عبارة if في حلقة for لتنفيذ هذه المخازن المؤقتة جهازي جديدة. . If (CandleAvg [I] gt؛ = somenumber) CandleAvgPlus [I] = CandleAvg [I]؛ if (CandleAvg [I] lt؛ somenumber) CandleAvgMinus [I] = CandleAvg [I]؛ الآن مجرد مؤامرة CandleAvgPlus و CandleAvgMinus بدلا من CandleAve من الواضح أن تعلن لهم بشكل صحيح وتهيئتها بشكل صحيح ولكن هذا هو في الواقع طريقة لفصلها خارجها دون أن أكتب رمز لك تحت. في ملاحظة مختلفة اكتشفت معظم برامجي فقط من خلال إلقاء نظرة على الكود من أشخاص آخرين. في هذا السيناريو ، سيعرض ملف على MACD اللون العنصر بأكمله لك بسرعة حقيقية

  3. #3

    Quote Originally Posted by ;
    تضمين مخزنين أكثر: [CandleAvgPlus [] و CandleAvgMinus [] وتعيين إلى قيمة فارغة. ثم استخدم عبارة if في حلقة for لملء هذه المخازن المؤقتة جهازي جديدة. . If (CandleAvg [I] gt؛ = somenumber) CandleAvgPlus [I] = CandleAvg [I]؛ if (CandleAvg [I] lt؛ somenumber) CandleAvgMinus [I] = CandleAvg [I]؛ الآن مجرد مؤامرة CandleAvgPlus و CandleAvgMinus بدلا من CandleAve من الواضح أنها تعلن لهم بشكل صحيح وتهيئتها بشكل صحيح ولكن هذه هي الطريقة لفصلها خارجها دون أن أكتب الرمز لك تحت. على ملاحظة مختلفة تعلمت أكثر ...
    شكرا للمساعدة flyer415. شكرا لك أيضا على إرادتك لإعادة كتابة رمز بالنسبة لي شخصيا لكنني أفضل أن يكشف عن نفسي وتعلم منه. أنا جديدة على ترميز MQL ويجب معرفة الكثير. حاولت اتباع نصيحتك وتعديل الرمز ولكن لم تنجح. حاولت لساعات ولا أعرف السبب في أنها لا تعمل. Inserted Code/ --------------------------------------------- --------------------- /| CandleAverage_v1. mq4 |/| حقوق النشر © 2006 ، Forex-TSD. كوم |/| ألحان ايجوراد ، igorad2003 @ yahoo.co.uk |/| http://finance.groups.yahoo.com/group/TrendLaboratory |/ ----------------------------------------------- ------------------- # حقوق الملكية الفكرية حقوق النشر © 2006، Forex-TSD. com # hyperperlink hyperlink http://www.forex-tsd.com/#property indior_separate_window #property indior_buffers 4 #property indior_color1 DeepSkyBlue #property indior_color3 Green #property indior_color4 Red/- input parameters extern int Length = 31؛ extern int H_period = 25؛ extern int L_period = 27؛ extern int C_period = 9؛/- buffers double CandleAvgNumber91؛ # 93 ؛؛ double BarValue # 91؛ # 93 ؛؛ double CandleAvgPlus # 91؛ # 93 ؛؛ double CandleAvgMinus # 91؛ # 93 ؛؛/ ----------------------------------------------- ------------------- /| وظيفة التهيئة مؤشر مخصص/ ----------------------------------------------- ------------------- init init ()/- indior Indior Indior (4)؛ SetIndexStyle (0، DRAW_NONE)؛ SetIndexStyle (1، DRAW_NONE)؛ SetIndexStyle (2، DRAW_HISTOGRAM)؛ SetIndexStyle (3، DRAW_HISTOGRAM)؛ SetIndexBuffer (0، CandleAvg)؛ SetIndexBuffer (1، BarValue)؛ SetIndexBuffer (2، CandleAvgPlus)؛ SetIndexBuffer (3، CandleAvgMinus)؛/- اسم سلسلة تسمية DataWindow ومؤشر subwindow short_name = CandleAverage ( الطول )؛ IndiorShortName (SHORT_NAME)؛ SetIndexLabel (0، CandleAvg)؛ SetIndexDrawBegin (0، طول)؛/- return (0)؛/ ----------------------------------------------- ------------------- /| التكرار مؤشر مخصص يخدم |/ ----------------------------------------------- ------------------- int int () int change، limititation، counted_bars = IndiorCounted ()؛ double UpDel، DnDel، H، L، C؛/- if (counted_barslt؛ 0) return (-1)؛ إذا كانت (counted_bars == 0) limit = Bars-Length-1؛/- سيتم إعادة حساب آخر شريط محذوف في حالة (counted_barsgt؛ 0) restrict = Bars-counted_bars؛ الحد - - for (shift = limitation؛ shiftgt؛ = 0؛ change -) H = iMA (NULL، 0، H_period، 0، MODE_EMA، PRICE_HIGH، change)؛ L = iMA (NULL، 0، L_period، 0، MODE_EMA، PRICE_LOW، change)؛ C = iMA (NULL، 0، C_period، 0، MODE_EMA، PRICE_CLOSE، change)؛ UpDel = H - C ، Dndel = C - L؛ إذا (CandleAvgNumber91، وتغير # 93؛gt؛ = UpDel) CandleAvgPlusNumber91؛ change # 93؛ = CandleAvg # 91؛ change # 93 ؛؛ if (CandleAvg # 91؛ change # 93؛ lt؛ DnDel) CandleAvgMinus # 91؛ change # 93؛ = CandleAvg # 91؛ change # 93 ؛؛ if (UpDel lt؛ DnDel) BarValue # 91؛ change # 93؛ رقم 1 if (UpDel gt؛ DnDel) BarValue # 91؛ change # 93؛ = -1 if (UpDel == DnDel) BarValue # 91؛ change # 93؛ = 0 for (shift = limitation؛ shiftgt؛ = 0؛ change -) CandleAvgPlus # 91؛ change # 93؛ = iMAOnArray (BarValue، 0، Length، 0، MODE_SMA، change)؛ CandleAvgMinus # 91؛ تغيير # 93؛ = iMAOnArray (BarValue، 0، Length، 0، MODE_SMA، change)؛/- return (0)؛/ ----------------------------------------------- ------------------- الرجاء المساعدة.

  4. #4
    العودة إلى التعليمات البرمجية الخاصة بك. تحتاج إلى السماح للمؤشر بحساب شمعة CandleAve [] كما هو معتاد ، حيث تقوم بفصل القيم إلى قيم سلبية وإيجابية. بحيث أن الحلقة الأولية الخاصة بك هي عبارة عن مجموعة من الأحمال ، ثم تقوم بملء حلقة الحلقات التالية (CandleAve) []. لا تحتاج إلى تغيير تلك الحلقات. اليوم يجب علينا إنشاء ثالث للحلقة فقط قبل بيان العودة. سيتم استخدام البيانات إذا كان ذلك من خلال الحلقة الثالثة. أساسا إذا كان CandleAve [i] gt؛ = 0 ثم CandleAvePlus [i] = CandleAve [i] آخر CandleAveMinus [i] = CandleAve [i]. أساسا ، إلى رمز اللون نحن نريد أن ننتج بشكل أساسي المخازن المؤقتة للمقياس وفقا للمعيار ثم فقط قبل غرض العودة نفصلهم. بالنسبة لي ، يعد ترميز الألوان هو الخطوة الأخيرة في المؤشر. فقط نقطة صغيرة ولكن بما أنك كنت تتآمر CandleAvePlus و CandleAveMinus ، فيجب أن يكونا مؤشر 1 و 0. من الواضح أنه من الأفضل أن تحصل على أرقام مختلطة. وأقوم بتعبئة المخزنين الجديدين مع القيم بحيث يتم رسمها بشكل جيد.

  5. #5

    Quote Originally Posted by ;
    عد إلى شفرتك الأصلية ....
    وأخيرًا يعمل بشكل مثالي. شكرا جزيلا flyer415 لطفك وفردك يعلمني. آسف إذا أنا غبية وبطيئة التعلم رمز MQL للخروج منك. مرة أخرى ، شكرا لك. إليك الشفرة المعدلة: Inserted Code/ --------------------------------------- --------------------------- /| CandleAverage_v1. mq4 |/| حقوق النشر © 2006 ، Forex-TSD. كوم |/| ألحان ايجوراد ، igorad2003 @ yahoo.co.uk |/| http://finance.groups.yahoo.com/group/TrendLaboratory |/ ----------------------------------------------- ------------------- # حقوق الملكية الفكرية حقوق النشر © 2006، Forex-TSD. com # hyperperlink hyperlink http://www.forex-tsd.com/#property indior_separate_window #property indior_buffers 4 #property indior_color1 Green #property indior_color2 Red/- enter parameters extern int Length = 31؛ extern int H_period = 25؛ extern int L_period = 27؛ extern int C_period = 9؛/- buffers dual CandleAvgPlus # 91؛ # 93 ؛؛ dual CandleAvgMinus # 91؛ # 93 ؛؛ dual CandleAgg # 91؛ # 93 ؛؛ dual BarValue # 91؛ # 93 ؛؛/ ----------------------------------------------- ------------------- /| وظيفة التهيئة مؤشر مخصص/ ----------------------------------------------- ------------------- init init ()/- indior Indior Indior (4)؛ SetIndexStyle (0، DRAW_HISTOGRAM)؛ SetIndexStyle (1، DRAW_HISTOGRAM)؛ SetIndexBuffer (0، CandleAvgPlus)؛ SetIndexBuffer (1، CandleAvgMinus)؛ SetIndexBuffer (2، CandleAvg)؛ SetIndexBuffer (3، BarValue)؛/- title for DataWindow and sign subwindow label string short_name = CandleAverage ( Length )؛ IndiorShortName (SHORT_NAME)؛ SetIndexLabel (0، CandleAvg)؛ SetIndexDrawBegin (0، طول)؛/- return (0)؛/ ----------------------------------------------- ------------------- /| وظيفة التكرار مؤشر مخصص/ ----------------------------------------------- ------------------- int int () int shift، limit، counted_bars = IndiorCounted ()؛ dual UpDel، DnDel، H، L، C؛/- if (counted_barslt؛ 0) return (-1)؛ إذا كانت (counted_bars == 0) limit = Bars-Length-1؛/- سيتم إعادة حساب آخر حانة محسوبة إذا كانت (counted_barsgt؛ 0) restrict = Bars-counted_bars؛ الحد لـ (shift = limit؛ shiftgt؛ = 0؛ shift) H = iMA (NULL، 0، H_period، 0، MODE_EMA، PRICE_HIGH، shift)؛ L = iMA (NULL، 0، L_period، 0، MODE_EMA، PRICE_LOW، shift)؛ C = iMA (NULL، 0، C_period، 0، MODE_EMA، PRICE_CLOSE، shift)؛ UpDel = H - C ، Dndel = C - L؛ should (UpDel lt؛ DnDel) BarValue # 91؛ shift # 93؛ = 1 ؛ يجب أن يكون (UpDel gt؛ DnDel) BarValue # 91؛ shift # 93؛ = -1 should (UpDel == DnDel) BarValue # 91؛ shift # 93؛ = 0 لـ (shift = limit؛ shiftgt؛ = 0؛ shift) CandleAvg # 91؛ shift # 93؛ = iMAOnArray (BarValue، 0، Length، 0، MODE_SMA، shift)؛لـ (shift = limit؛ shiftgt؛ = 0؛ shift--) if (CandleAvg # 91؛ shift # 93؛ gt؛ = 0) CandleAvgPlus # 91؛ shift # 93؛ = CandleAvg # 91؛ shift # 93 ؛؛ should (CandleAvg # 91؛ shift # 93؛ lt؛ 0) CandleAvgMinus # 91؛ shift # 93؛ = CandleAvg # 91؛ shift # 93 ؛؛/- return (0)؛/ ----------------------------------------------- -------------------

  6. #6
    [quote = wieb؛ 3232106] تعمل بشكل لا تشوبه شائبة. شكرا جزيلا لطفك وفردك يعلمني. عذرا عندما كنت بطيئة وبكم التعلم رمز MQL منكم. مرة أخرى ، شكرا لك. لـ (shift = limitation ، shiftgt؛ = 0؛ change -) CandleAvg [change] = iMAOnArray (BarValue، 0، Length، 0، MODE_SMA، change)؛* يمكنك وضع الشفرة وتوفير حلقة إذا كانت (CandleAvg [change] gt؛ = 0) CandleAvgPlus [change] = CandleAvg [change]؛ if (CandleAvg [change] lt؛ 0) CandleAvgMinus [change] = CandleAvg [change]؛ *تعلمت من الآخرين ، وطرح الأسئلة ودراسة الكود. يمكنك التخلص من حلقة واحدة كما هو موضح في الشفرة المكتوبة بخط غامق. سعيد أنه يعمل. يمكنك إنشاء أي مؤشر متعدد الألوان لأنه هو مفهوم متطابق.

أذونات النشر

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