المشاركة الأصلية كتبت بواسطة crownpearl77
معذرة يا استاذنا يبدو انني اسأت الشرح لما اريد
نتحدث بالتفصيل:-
for(int j2=0;j2<60;j2++)
{
datetime dt2 = iTime(NULL,1,60);
double O1h21 = iOpen(NULL,1,iBarShift(NULL,1,dt2)-j2);
double H1h21 = iHigh(NULL,1,iBarShift(NULL,1,dt2)-j2);
double L1h21 = iLow(NULL,1,iBarShift(NULL,1,dt2)-j2);
if (mLh21>L1h21) mLh21 = L1h21;
if (mHh21<H1h21) mHh21 = H1h21;
}
double C1h21 = iClose(NULL,1,iBarShift(NULL,1,dt2)-j2)
اولا معذرة فقد اخطأت وكتبت i وهي في الحقيقة j2
هذا الجزء المطلوب منه حساب اعلي هاي و اقل لوو لفترة 60 دقيقة سابقة و معها السعر الحالي عن طريق i close
يتم تجديد الحسابات كل تك عن طريق تغير i close و تجديد اعلي سعر و اقل سعر كل دقيقة عن طريق اجراء الحسابات علي اخر 60 دقيقة فقط
- هذه القيم يتم دخالها في معادلات بعدها لرسم 3 خطوط حمراء في الشاشة تتحرك باستمرار كلما تحرك السعر
هناك مشكلتين هنا
الاولي انني لا بد ان اخرج من الفريم الذي انظر اليه ليجدد المؤشر حساباته
الثانية اثناء الباك تست يقوم بالحساب لفترة ساعة واحدة فقط بمعني انني اذا اردت عمل باك تست ليوم سابق فان المؤشر يقوم بحساب اول ساعة في اليوم فقط ثم لا يعطي اي اسهم ولذلك اضفت انا السطر k في محاولة لاطالة عمره 3 ساعات اضافية
المطلوب هنا ان يجدد المؤشر حساباته تلقائياوان يقوم بعمل باك تست لفترة طويلة وليست ساعة واحدة
--------------------------------------------------------------------
نقطة اخري وهي تتعلق بالسهم الذي اضفته حضرتك للمؤشر
قلنا اننا نحسب اعلي هاي واقل لوو ل 60 دقيقة سابقة لاجراء حسابات عليها
مطلوب ايضا ان يقوم البرنامج بعد ظهور السهم بتحديد اعلي نقطة وصل اليها السعر و اقل نقطة بعد ظهور السهم لاجراء حسابات اخري عليهم
( ممكن تكون اعلي نقطة وصل اليها السعر اقل من اعلي نقطة في ال 60 دقيقة السابقة لذلك يجب ان يحتفظ باعلي نقطة بعد ظهور السهم في متغير منفصل )
----------------------------------------------------------------------
:drive1::drive1::drive1: