الرجاء المساعدة بخصوص نافذة مؤشر
اخواني السلام عليكم
اقوم حاليا بتعلم برمجة المؤشرات وقد وضعت اول مؤشر بنجاح ولله الحمد غير اني اواجه مشكلة في نافذة المؤشر حيث لم أجد في مراجعي كيفية إظهار الخطوط الأفقية التي تحدد قيمة المؤشر ، وأقصد الخطوط المماثلة لخطوط السعر في الشارت العادي
وفقني الله و اياكم
رد: الرجاء المساعدة بخصوص نافذة مؤشر
هناك طريقتين لجعل الخطوط تظهر على الشارت
1 - استخدام المصفوفات :
تقوم بتحديد عدد المصفوفات التي سوف تستخدمها ولون كل مصفوفه بهذا الكود
كود:
#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_color2 LightBlue
مع مراعاه ان لا يتجاوز عدد المصفوفات في الموشر الواحد 7 مصفوفات
ثم نقوم بتعريف المصفوفات مثلاً
كود:
double LOW1[];
double HIGH1[];
ثم نقوم بتحديد الشكل الرسومي لكل مصفوفه ويكون في جزء init بهذا الشكل
كود:
IndicatorBuffers(2);
//---- drawing settings
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(0,LOW1);
SetIndexBuffer(1,HIGH1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
في خانه start
نقوم بتحديد الناتج لكل مصفوفه بالشكل التالي
كود:
LOW1[i]=(LOW/HIGH)*LOW;
HIGH1[i]=HIGH*(HIGH/LOW);
ان شاء الله يكون الامر سهل
رد: الرجاء المساعدة بخصوص نافذة مؤشر
اقتباس:
المشاركة الأصلية كتبت بواسطة 101
هناك طريقتين لجعل الخطوط تظهر على الشارت
1 - استخدام المصفوفات :
تقوم بتحديد عدد المصفوفات التي سوف تستخدمها ولون كل مصفوفه بهذا الكود
كود:
#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_color2 LightBlue
مع مراعاه ان لا يتجاوز عدد المصفوفات في الموشر الواحد 7 مصفوفات
ثم نقوم بتعريف المصفوفات مثلاً
كود:
double LOW1[];
double HIGH1[];
ثم نقوم بتحديد الشكل الرسومي لكل مصفوفه ويكون في جزء init بهذا الشكل
كود:
IndicatorBuffers(2);
//---- drawing settings
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(0,LOW1);
SetIndexBuffer(1,HIGH1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
في خانه start
نقوم بتحديد الناتج لكل مصفوفه بالشكل التالي
كود:
LOW1[i]=(LOW/HIGH)*LOW;
HIGH1[i]=HIGH*(HIGH/LOW);
ان شاء الله يكون الامر سهل
مشكور اخي الحبيب على سرعة تجاوبك، فهمت المقصود من الجواب و سأقوم بتطبيقه ان شاء الله تعالى ، غير ان لي ملاحظة بسيطة وهي أنه بهذه الطريقة سيكون عدد الخطوط محدودا في سبعة فهل هناك طريقة لإضافة خطوط اكثر ، جزاك الله خيرا
رد: الرجاء المساعدة بخصوص نافذة مؤشر
2 - استخدام كود رسم خطوط افقيه او راسيه لكل متغير
عيب هذا الاسلوب ان الرسم سوف يكون لاخر ناتج فقط ويتغير مع تغير النتيجه للمعادله المستخدمه
ولكنه يمتاز بان الخطوط التي تستطيع رسمها غير محدده بعدد معين
ونستخدم لرسم مثل هذه الخطوط الكود التالي :
كود:
ObjectCreate("MTB3", OBJ_HLINE, 0, 0, MTB3);
ObjectSet("MTB3", OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
ObjectSet("MTB3", OBJPROP_COLOR, Lime);
ObjectSet("MTB3", OBJPROP_STYLE, STYLE_DASHDOT);
حيث MTB3 هو المتغير الذي سيتم رسمه على الشارت
تقبل تقديري
وفي انتظار الاخ مستر دولار للتعقيب والتصحيح اذا اغفلت شي
رد: الرجاء المساعدة بخصوص نافذة مؤشر
شكرا اخي الكريم، اظن اني سوف اجرب الطريقة الثانية رغم ان الاولى اسهل
رد: الرجاء المساعدة بخصوص نافذة مؤشر
اقتباس:
المشاركة الأصلية كتبت بواسطة sinawr
شكرا اخي الكريم، اظن اني سوف اجرب الطريقة الثانية رغم ان الاولى اسهل
سويلها نسخ ولصق
بس لازم تلاحظ ان الخطوط في الطريقه الثانيه سوف تبقى على الشارت بعد ازالته
ولكي تتفادى هذه المشكله استخدم الكود التالي
كود:
ObjectDelete("MTB3");
وكل متغير نكتبله سطر مثل السابق ونغير فقط في التسميه
انسخه في INIT و DEINIT و START
لاحظ الكود التالي وهو قام برسم خطين
كود:
ObjectCreate("MTB2", OBJ_HLINE, 0, 0, MTB2);
ObjectSet("MTB2", OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
ObjectSet("MTB2", OBJPROP_COLOR, Lime);
ObjectSet("MTB2", OBJPROP_STYLE, STYLE_DASHDOT);
ObjectCreate("MTB3", OBJ_HLINE, 0, 0, MTB3);
ObjectSet("MTB3", OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
ObjectSet("MTB3", OBJPROP_COLOR, Lime);
ObjectSet("MTB3", OBJPROP_STYLE, STYLE_DASHDOT);
لاحظت اكيد الفرق بين الكودين متساويه في كل شي الا اسم المتغير
ماعرفت اشرحلك هذه النقطه لذلك وضعت لك المثال السابق
1 مرفق
رد: الرجاء المساعدة بخصوص نافذة مؤشر
اقتباس:
المشاركة الأصلية كتبت بواسطة 101
2 - استخدام كود رسم خطوط افقيه او راسيه لكل متغير
عيب هذا الاسلوب ان الرسم سوف يكون لاخر ناتج فقط ويتغير مع تغير النتيجه للمعادله المستخدمه
ولكنه يمتاز بان الخطوط التي تستطيع رسمها غير محدده بعدد معين
ونستخدم لرسم مثل هذه الخطوط الكود التالي :
كود:
ObjectCreate("MTB3", OBJ_HLINE, 0, 0, MTB3);
ObjectSet("MTB3", OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
ObjectSet("MTB3", OBJPROP_COLOR, Lime);
ObjectSet("MTB3", OBJPROP_STYLE, STYLE_DASHDOT);
حيث MTB3 هو المتغير الذي سيتم رسمه على الشارت
تقبل تقديري
وفي انتظار الاخ مستر دولار للتعقيب والتصحيح اذا اغفلت شي
بارك الله فيك على الشرح الواضح لي تعقيب بالنسبه لإستخدام ObjectCreate
فيمكنك أيضا أن تقوم برسم خطوط تاريخيه بإستخدام هذا الأمر تماما مثل المصفوفات
لاحظ المؤشر التالي وسوف تفهم وستعرف ما أقصد وكيف ذلك
رد: الرجاء المساعدة بخصوص نافذة مؤشر
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
بارك الله فيك على الشرح الواضح لي تعقيب بالنسبه لإستخدام ObjectCreate
فيمكنك أيضا أن تقوم برسم خطوط تاريخيه بإستخدام هذا الأمر تماما مثل المصفوفات
لاحظ المؤشر التالي وسوف تفهم وستعرف ما أقصد وكيف ذلك
الف شكر اخوي مستر دولار على التعقيب وعلى المعلومه القيمه التي ستغير في طريقه تفكيري عند تركيب اي مؤشر
الف شكر
تقبل تقديري