اقتباس:
المشاركة الأصلية كتبت بواسطة الماجد
الله يعطيك العافيه استاذي
ولكن في الحقيقه لم تفهم ما اقصده في السؤال الثاني
سأوضح أكثر :
أريد من المؤشر ان يرسم لي خط على الهاي وخط على اللو
وبعد تحقق شرط معين يقوم بتثبيت الخطوط عند الهاي ساعة تحقق الشرط وعند اللو ساعة تحقق الشرط
مثال :
شرطنا أن يكون الفرق بين الهاي واللو ( الرينج ) لليوم الحالي أكبر من أو يساوي 100
فإذا تحقق الشرط يتم وضع الخطوط عند الهاي واللو لليوم الحالي وفي الساعه الحالية
افتتح اليوم عند 1.9500
إرتفع السعر إلى 1.9550
ثم هبط إلى 1.9440
High - Low = 1.9550 - 1.9440 = 110
^^^ << لاحظ هنا تحقق الشرط وهو أن يكون الرينج أكبر من 100
بعد إغلاق شمعة الساعه يقوم برسم خط على الهاي 1.9550
ويقوم برسم خط آخر على اللو عند 1.9440
وتستمر هذه الإشارة مرسومه عند هذين المستويين حتى ولو هبط الزوج أكثر من 1.9440
وبالطبع مع بدية اليوم الجديد نأخذ الهاي واللو للشمعه الحالية لحين تحقق الشرط ثم ثبات الإشارة
أتمنى أن يكون المقصود من السؤال واضح
وآسف جداً جداً على الإطاله استاذي
وفي انتظار ردك
تحياتي لك
أخوك عادل الماجد  |
نعم أخي فهمت عليك الآن
يجب وضع شرط لرسم الخطين كالتالي :
كود PHP:
bool DrawLines=false;
int start()
{
double h,l;
h=iHigh("GBPUSD",PERIOD_D1,0);
l=iLow("GBPUSD",PERIOD_D1,0);
if((h-l)>=100*Point && DrawLines==false)
{
SetLine("lineH",h,2,Red);
SetLine("lineL",l,2,Green);
DrawLines=true;
}
if((h-l)<100*Point)
{
DrawLines=false;
}
}
لاحظ أننا أضفنا متحول لمعرفة أننا رسمنا الخطين ولذلك لا داعي لرسمه مرة أخرى عند تحقق الشرط مرة أخرى .
وهذه الوظيفة ترسم لنا الخط الذي نريده أضفها آخر الكود .
كود PHP:
void SetLine(string name,double y,int size,color clr)
{
int idx=0;
if(ObjectFind(name) == -1)
{
ObjectCreate(name, OBJ_HLINE, idx, 0, 0);
ObjectSet(name, OBJPROP_PRICE1, y);
ObjectSet(name, OBJPROP_COLOR,clr);
ObjectSet(name, OBJPROP_WIDTH,size);
}
else
{
ObjectSet(name, OBJPROP_PRICE1, y);
ObjectSet(name, OBJPROP_COLOR,clr);
ObjectSet(name, OBJPROP_WIDTH,size);
}
}