هذه ليست أخطاء تؤثر على عمل الإكسبرت هي فقط بسبب البيانات التاريخيه
بكل حال جرب زيادة عدد نقاط السلبيج في أمر الإغلاق قد يكون السبب
Printable View
السلام عليكم أستاذ أسامه
هل هذه الداله صحيحة لتعود بقيمة أعلى هاي لعدد معين من الشموع خلال مده زمنية معينه ؟؟
و كيف أقوم بعمل الداله لحساب أعلى هاي لفتره زمنية أحددها بدون الشموع ؟كود PHP:double high()
{
if ( Hour()<=00:00 && Hour()<=03:00 )
{
double h=High[iHighest(NULL,60,MODE_HIGH,3 ,1)];
}
return(h);
}
و جزاك الله خيرا .
وعليكم السلام ورحمة الله وبركاته
مثلا أريد معرفة الهاي للفترة من الساعه 1 إلى 5 في اليوم
كود PHP:datetime StartH= StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + "01:00");
datetime EndH= StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + "05:00");
double FirstBar=iBarShift(Symbol(),0,StartH,false);
double LastBar=iBarShift(Symbol(),0,EndH,false);
double Maxhigh=High[iHighest(Symbol(),0,MODE_HIGH,StartH-EndH,EndH)];
شكرا أستاذي العزيز .
بهذا الكود لا أحتاج إلى وضعه داخل دالة ووضعه داخل ستارت يغني عن عمله داله .. أليس كذلك استاذ أسامه ؟؟
وضعته بالداله ستارت و حاولت إستخدام الأمر كومنت لطبع قيمة maxhigh ولكنه يعطيني زيرو ..
ومافائدة تعريف :
لم افهم إستخدامه في الكود .كود PHP:double FirstBar=iBarShift(Symbol(),0,StartH,false);
double LastBar=iBarShift(Symbol(),0,EndH,false);
وشكرا جزيلا
دكتور اسمح لي بالأجابة ، ما سألته هو لتحديد البداية والنهاية للتوقيت بالشموع ، تفضل الكود التالي جربه وافحصة تمام وستتضح لك الفكرة :
في الأول حنحتاج متغيرين لبداية الفترة ونهايتها ليمكننا اختيار الفترة عند استخدام الأكسبيرت :ثم سنحتاج المتغيرات التالية لتحديد هاي ولو وبداية الفترة ونهايتها :كود PHP:extern string Duration_Start_Time="09:00";
extern string Duration_End_Time ="17:00";
بعدها سنكتب الكود التالي في دالة Start مباشرة :كود PHP:double H_Price,L_Price;
datetime S_Time,E_Time;
int S_Bar,L_Bar,LwPoint,HiPoint;
جرب الكومنت وسيطبع لك الهاي واللو للفترة المحددة .كود PHP:S_Time =StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Duration_Start_Time );
E_Time =StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Duration_End_Time );
S_Bar=iBarShift(Symbol(),0,S_Time);
L_Bar=iBarShift(Symbol(),0,E_Time)+1;
LwPoint=iLowest(Symbol(),0,MODE_LOW,S_Bar-L_Bar+1,L_Bar);
HiPoint=iHighest(Symbol(),0,MODE_HIGH,S_Bar-L_Bar+1,L_Bar);
H_Price=High[HiPoint];
L_Price=Low[LwPoint];
Comment(H_Price," ",L_Price);
ركز على مفردات الكود وستجدها واضحة إن شاء الله .
الأستاذ العزيز أسامة والاستاذ جميل بارك الله في جهودكم
عندي سؤال ممكن صعب شوي
لو عملت حسبة ما وحصلت من خلالها على مصفوفة تتضمن سعر إغلاق وإفتتاح وهاي ولو ..... السؤال:
هل يمكن تمرير هذه المصفوفة إلى مؤشرات الميتاتريدر مثل الموفنج أفريج وعدم الإلتزام بالاسعار التي على الشارت
وبارك الله بكم
شكرا جزيلا أخي الجميل جميل ... و بارك الله فيك .. تمام الآن .
طيب سؤال بعد إذنك لماذا تم إضافة +1 للدالة ibarshift
فهي تؤدي نفس الغرض بوجود هذه الزيادة أو بدونها مع حذفها أيضا من حساب فترة البارات من كود حساب الهاي .كود PHP:L_Bar=iBarShift(Symbol(),0,E_Time)+1;
سبب اضافة الرقم 1 انك لوكتبت من 9 - 17 فسيأخذها من نهاية 9 وبالتالي سيكون من بداية 10 ولو قلت للمستخدم لما تكون عايزها من 9 اكتب من 8 حيكون صعب بالتالي بأضافة 1 انه بياخذ عدد الشموع مثلا بتراجع الرقم 1 يعني من بداية 9 ، حاليا مش حتلاحظ الفرق والسبب ان القمة او القاع تكون بين التوقيتين 9 - 17 لكن لو كان اعلى سعر كان في 9 وماعملتش + 1 مش حيحسبه على انه الهاي للفترة وحيحسب من بداية 10 الى 17 فقط . اذا كان فهمي خطأ فالتصحيح مطلوب من الأستاذ أسامة .
بعض المؤشرات يوجد دالة جاهزه لها تستدعي مباشرة المصفوفه بها مثل مؤشر الموفينج أفريج وأيضا الآر إس آي
مثال
أما مؤشرات أخرى مثل الإستوكاستيك فلا يوجد لها داله في هذه الحالة سوف تقوم بعمل المصفوفه وتقوم بالعمليه الحسابيه على هذه المصفوفهكود PHP:iRSIOnArray
iMomentumOnArray
iBandsOnArray
تمام أخي جميل .. الله يجزيك خير .
طيب الآن أنا أضيف شرط إذا كان سعر ال ask أكبر من أويساوي أعلى هاي تم حسابه للفترة و لكنه ينفذ أمر شراء ولكن ليس بناءا على الهاي المستخرج
هل أحتاج مثلا إلى شرط يقارن هل التوقيت الآن أكبر من أو يساوى آخر ساعه تم البحث فيها ؟؟ أم ماذا ....كود PHP:if ( Ask>=high && Time0!=Time[0] && orderstotal()<1 ) //buy