النتائج 16 إلى 22 من 22
- 02-04-2018, 08:19 AM #16
احسن لك هبير لتكون الاسطر اقل بكثير وافضل لجهازك
ولكن اذا تريده مؤشر: تضيف اسطر مالها داع ابدا وهي:
كود PHP:extern int days=2;
extern int line_width=2;
extern color line_color=clrYellow;
extern ENUM_LINE_STYLE line_style=0;
extern string start_Hour="02:23";
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
if(id==CHARTEVENT_CLICK)
{
ObjectsDeleteAll(0,"H_");
int x =(int)lparam;
int y =(int)dparam;
datetime dt =0;
double price =0;
int window=0;
for(int i=0;i<days;i++)
{
datetime time1=StringToTime(TimeToString(iTime(NULL,PERIOD_D1,i),TIME_DATE)+" "+start_Hour);
datetime time2=time1+60*60*24;
Print(TimeToString(time1,TIME_DATE|TIME_SECONDS)+" ",TimeToString(time2,TIME_DATE|TIME_SECONDS));
ObjectCreate("H_"+i,OBJ_TREND,0,time1,iOpen(NULL,PERIOD_D1,i),time2,iOpen(NULL,PERIOD_D1,i));
ObjectSet( "H_"+i,OBJPROP_COLOR,line_color);
ObjectSet( "H_"+i,OBJPROP_WIDTH,line_width);
ObjectSet( "H_"+i,OBJPROP_STYLE,line_style);
ObjectSet( "H_"+i,OBJPROP_RAY_RIGHT,FALSE);
}
}
}
#property indicator_chart_window
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
//--- return value of prev_calculated for next call
return(rates_total);
}
البرنامج اعلاه يرسم حسب طلبك
يأخذ بداية اليوم, ثم يحرك العمود من بداية اليوم بمقدار الساعات التي تختارها
او ان اشلرح غير واضح.
بداية اليوم معروف انها 00:00
اذا اخترت انت 02:34--انتبه للصياغة: ساعة ثم نقطتين فوق بعض ثم الدقائق--حسب طلبك
فغنه سيزح العمود الافقي بمقدار 02:34 ساعة-- الى اليمين
- 02-04-2018, 08:23 AM #17
=========
- 02-04-2018, 08:26 AM #18أرجو برمجة مؤشر يرسم خطا عند افتتاح كل يوم.
امكانية اختيار توقيت بداية اليوم (بالساعة و الدقيقة)
لاتتنسى الضغط على الشتارت بالماسو مرة وحادة لترى التأثير
--
في البرنامج اعلاه لكي يكون مؤشر لاحظ غباء اضافة OnCalculate -- وضعت ولم تستخدم--وزادت الاسطر البرمجية غير سنع.
وهذا الامر الافضل تحت خبير. ---
اغبياء البرمجة والمتطفلين عليها فقط أخي هم من سيضعه تحت مؤشرات لانهم لايفهمون
- 02-04-2018, 01:41 PM #19
السلام عليكم
يبدو أن احدى مشاركاتي لم تظهر عندك، او ما شابه.
كنت وضحت أن هذا ليس المطلوب، انما المطلوب هو رسم الخط عند مستوى (سعر) افتتاح الشمعة التي أعينها في خيار التوقيت و مده 24 ساعة، و سلامتك.
في مشاركة سابقة كنت أضفت صورة توضيحية (تشارت).
أما سبب طلبي مؤشر و ليس اكسبرت، فهو لأن التشارت عندي يكون مشغولا عادة باكسبرت.
خالص الشكر
- 02-04-2018, 02:40 PM #20
افتتاح اليوم الكل يعلم انه الساعة 00:00
انت اعتقد تقصد افتتاح الشمعة التي تختارها
وتقصد بيوم فترة وليس تاريخ--فترة 24 ساعة؟؟
عندك مشكلة في اللغة العربية
الكود اخي مفتوح--تعديل بسيط جدا عليه في سطر واحد ويكون كما تريد
فأنت قصدك تقريبا--مثلا مطبق فريم نصف ساعة -- افتتاح الشمعة التي تريدها على هذا الفريم--ثم يرسم خط طوله 24 ساعة التي تعادل فترة يوم كامل
كان يفترض توضح الامور هكذا.
- 02-04-2018, 03:01 PM #21
===========
اذا تبيه مؤشر--فقط اضف دالة اسطر ONCALCULATE في الكود السابق
الان حسب الفريم اللي تطبقه يأخذ افتتاح شمعة التاريخ اللي تحدده
كود PHP:extern int days=2;
extern int line_width=2;
extern color line_color=clrYellow;
extern ENUM_LINE_STYLE line_style=0;
extern string start_Hour="02:23";
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
if(id==CHARTEVENT_CLICK)
{
ObjectsDeleteAll(0,"H_");
int x =(int)lparam;
int y =(int)dparam;
datetime dt =0;
double price =0;
int window=0;
for(int i=0;i<days;i++)
{
datetime time1=StringToTime(TimeToString(iTime(NULL,PERIOD_D1,i),TIME_DATE)+" "+start_Hour);
int bar=iBarShift(NULL,0,time1);
datetime time2=time1+60*60*24;
ObjectCreate("H_"+i,OBJ_TREND,0,time1,iOpen(NULL,0,bar),time2,iOpen(NULL,0,bar));
ObjectSet( "H_"+i,OBJPROP_COLOR,line_color);
ObjectSet( "H_"+i,OBJPROP_WIDTH,line_width);
ObjectSet( "H_"+i,OBJPROP_STYLE,line_style);
ObjectSet( "H_"+i,OBJPROP_RAY_RIGHT,FALSE);
}
}
}
- 02-04-2018, 03:26 PM #22
الله يعينك، يا فيلسوف، على أمثالي، و يجزيك الخير على المجهود، وصلنا الى الهدف
بالرغم من أني أحاول الاجتهاد باستعمال الفصحى فقط دون كلمة عامية أو أجنبية ما استطعت، يظل احتمال الخطأ واردا، فأنا مثلك من جنس البشر ;)
بالنسبة لي فيوم التداول لا يبدأ الا مع افتتاح أول بورصة مالية تفتتح كل يوم (سيدني)، لذا لا أعتد ببداية يوم المنصة، أو بداية اليوم في لندن أو نيويورك، الخ.
مشكور ثانية و الى لقاء