النتائج 1 إلى 5 من 5
- 25-03-2011, 08:21 PM #1
مؤشر يظهر عدد النقاط بين قمة وقاع وبالعكس
السلام عليكم ورحمة الله وبركاته
ابحث عن مؤشر يعطيني عدد النقاط (range) بين قمة وقاع او بالعكس بين قاع وقمة
بحيث ادخل تاريخ القمة وتاريخ القاع والمؤشر يعطيني عدد النقاط بين التاريخين
اتمنى المساعدة وبارك الله فيكم
- 06-04-2011, 08:29 PM #2
السلام عليكم ورحمة الله وبركاته
بعد محاولات عديده مني لعمل المؤشر المطلوب وصلت الى الكود التالي وهو يحتاج الى بعض التعديل لعدم اكتماله 100%
وقد استعرت بعض الاكواد الجاهزة من مؤشرات الاخ مستر دولار فاتمنى ان لا يغضب
قناعتي دائما ان هذا القسم وجد ليعلم الاعضاء البرمجة بلغة الميتاتريدر وليس ليكون قسم طلبات جاهزة وبناءا عليه فانا احاول الاعتماد على نفسي والتعلم ولو بشكل بطيئ
فكرة المؤشر هو رسم مربع على الشارت وتسميته box1 ثم اختيار طريقة الحساب هل هي من القاع للقمة او القمة للقاع وبناءا عليه يقوم المؤشر بحساب عدد النقاط بين التاريخين
الان بقي علي بعض اللمسات الاخيرة (على ما اعتقد) وانهي هذا المؤشر فاتمنى المساعدة وشكرا
كود://+------------------------------------------------------------------+ //| points counter.mq4 //| Copyright © 2011, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_chart_window extern string PriceType=" 1=HighLow / 2=LowHigh "; extern int Type=1; extern datetime StartTime=D'2011.03.24 10:00'; extern datetime EndTime=D'2011.03.24 18:00'; extern bool UseAutoDateTime=true; extern string BoxName="Box1"; double point; int init() { if(Digits<4){point=0.01;} else{point=0.0001;} return(0); } //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { ObjectDelete("Diff"); ObjectDelete("Diff"); return (0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { if(UseAutoDateTime){ double a=ObjectGet(BoxName,OBJPROP_TIME1); double b=ObjectGet(BoxName,OBJPROP_TIME2); StartTime=MathMin(a,b); EndTime=MathMax(a,b); } { if (Type==1){ double x=MathAbs(High[StartTime]-Low [EndTime])/point;} ObjectCreate("Diff", OBJ_LABEL, 0, 0, 0); ObjectSetText("Diff","x",14, "Arial", Green); ObjectSet("Diff", OBJPROP_XDISTANCE,20); ObjectSet("Diff", OBJPROP_YDISTANCE, 1); ObjectSet("Diff", OBJPROP_CORNER, 1); if (Type==2) double y=MathAbs(High[EndTime]-Low [StartTime])/point;} ObjectCreate("Diff", OBJ_LABEL, 0, 0, 0); ObjectSetText("Diff","y" ,14, "Arial", Red); ObjectSet("Diff", OBJPROP_XDISTANCE, 20); ObjectSet("Diff", OBJPROP_YDISTANCE, 18); ObjectSet("Diff", OBJPROP_CORNER, 1); return (0); }
- 07-04-2011, 02:25 PM #3
- 07-04-2011, 06:30 PM #4
وعليكم السلام ورحمة الله وبركاته
الأخطاء في المؤشر كالآتي
أولا بالنسبه لتحديد الهاي واللو فكتابتها بهذا الشكل غير صحيح
كود PHP:High[StartTime]
كود PHP:High[CandleNumber]
كود PHP:High[iBarShift(Symbol(),0,StartTime,false)]
أيضا لا أرى داعي لإستخدام متغير الحساب من الهاي إلى اللو أو من اللو إلى الهاي لأن جميعهم سيؤدو إلى نفس الطريقه ونفس الغرض إنما أنت وضعتها كمجرد زيادات فقط
تفضل المؤشر في المرفقات بعد التعديل
- 07-04-2011, 07:51 PM #5