النتائج 1 إلى 13 من 13
- 26-04-2018, 06:59 PM #1
مساعدة في رسم خط عمودي بعد عدد محدد من الشموع
السلام عليكم
احاول لجعل مؤشر بسيط يضع خط عمودي بعد عدد معين من الشموع
مثال ..... سأدخل التاريخ والمؤشر سيرسم خط عمودي بعد 48 شمعة
كود:extern datetime StartTime=D'2017.09.08 00:00'; datetime time=StartTime+48*PeriodSeconds(); if(ObjectFind("Time48_Vline") != 0){ ObjectCreate("Time48_Vline", OBJ_VLINE, 0, time, 0); ObjectMove("Time48_Vline", 0, time, 0); }else{ ObjectMove("Time48_Vline", 0, time, 0); }
أي مساعدة سيكون موضع ترحيب
شكرا
- 26-04-2018, 09:04 PM #2
تم حل المشكلة شكرا لكم
- 26-04-2018, 10:54 PM #3
- 27-04-2018, 02:19 AM #4
بكل سرور اخي
كود PHP:int shift=iBarShift(Symbol(),0,StartTime,false);
int time_48=iTime(Symbol(),PERIOD_CURRENT,shift-48);
if(ObjectFind("Current_Time48_Vline") != 0){
ObjectCreate("Current_Time48_Vline", OBJ_VLINE, 0, time_48, 0);
ObjectMove("Current_Time48_Vline", 0, time_48, 0);
}else{
ObjectMove("Current_Time48_Vline", 0, time_48, 0);
}
- 27-04-2018, 03:36 AM #5
shift-48 اذا كانت سالب ايش الحل عندك؟
- 27-04-2018, 03:17 PM #6كود PHP:
if(126<=shift-1){int time_48=iTime(Symbol(),PERIOD_CURRENT,shift-48);}
else {
int time_48=iTime(Symbol(),PERIOD_CURRENT,0)+MathAbs(shift-48)*PeriodSeconds();
لاني مازلت جديد في هذه اللغة
- 28-04-2018, 07:06 AM #7
- 28-04-2018, 07:19 PM #8
عرفت ليش يعطيك 34 بدلا من 48---بسبب ثواني السبت والاحد
- 28-04-2018, 07:43 PM #9
اضغط على تايم-1 لالغاء التغيير ةتثبيت القيم بحيث ماتتغير بعد ذلك مهما ضغطت
وتايم 2 للتغيير-اي ضغطة يأخذ زمنها
واي ضغط بعد الصفر سيرفضه
- 28-04-2018, 07:49 PM #10كود PHP:
bool COND=FALSE;
string pairs[28] ;
string S[] = {"EUR" ,"GBP" ,"AUD" ,"NZD" ,"USD" ,"CAD" ,"CHF" ,"JPY"};
string str;
int SetTimer=1;
extern int bars=48;
extern color clr_user_time=clrAqua;
extern color clr_shifted_line=clrYellow;
string time_1;
string time_2;
string Activate="time_2";
datetime time1;
datetime time2;
int bar;
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
if(id==CHARTEVENT_CLICK)
{
int x =(int)lparam;
int y =(int)dparam;
datetime dt =0;
double price =0;
int window=0;
if(ChartXYToTimePrice(0,x,y,window,dt,price))
{
bar=iBarShift(NULL,0,dt);
if(bar<0) bar=0;
if(Activate=="time_2" && bar>=0)
{
string NAME1="name_1";
string NAME2="name_2";
time1=Time[bar];
ObjectDelete(NAME1);
ObjectCreate(NAME1,OBJ_VLINE,0,time1,0);
ObjectSet( NAME1,OBJPROP_COLOR,clr_user_time);
ObjectSet( NAME1,OBJPROP_WIDTH,1);
ObjectSet( NAME1,OBJPROP_SELECTED,FALSE);
ObjectSet( NAME1,OBJPROP_SELECTABLE,FALSE);
ObjectSetString(0,NAME1,OBJPROP_TOOLTIP,"user");
ObjectSet(NAME1,OBJPROP_STYLE,0);
int a=bar-bars;
if(a<0)time2=Time[0]+MathAbs(a)*Period()*60;
else time2=Time[bar-bars];
ObjectDelete(NAME2);
ObjectCreate(NAME2,OBJ_VLINE,0,time2,0);
ObjectSet( NAME2,OBJPROP_COLOR,clr_shifted_line);
ObjectSet( NAME2,OBJPROP_WIDTH,1);
ObjectSet( NAME2,OBJPROP_SELECTED,FALSE);
ObjectSet( NAME2,OBJPROP_SELECTABLE,FALSE);
ObjectSetString(0,NAME2,OBJPROP_TOOLTIP,"user");
ObjectSet(NAME2,OBJPROP_STYLE,0);
time_1=TimeToString(time1,TIME_DATE|TIME_MINUTES);
time_2=TimeToString(time2,TIME_DATE|TIME_MINUTES);
Activate="time_2";
}
}
}
if(id==CHARTEVENT_OBJECT_CLICK)
{
if(StringSubstr(sparam,0,4)=="pair") { ChartSetSymbolPeriod(0,ObjectDescription(sparam),PERIOD_CURRENT); OnInit();}
if(sparam=="time_1"){Activate="time_1";}
if(sparam=="time_2"){Activate="time_2";}
}
}
int OnInit()
{
int j=-1;
for(int i=0;i<=6;i++)
{
for(int k=i+1;k<=7;k++)
{
j++;
pairs[j]=S[i]+S[k]+str;
}
}
int jj=-1;
for(i=0;i<=27;i++)
{
if(pairs[i]!=Symbol())
{
jj++;
color clrc=clrWhite;
if(StringSubstr(pairs[i],0,3)=="USD" || StringSubstr(pairs[i],3,3)=="USD")clrc=clrOrange;
if(StringSubstr(pairs[i],0,3)=="JPY" || StringSubstr(pairs[i],3,3)=="JPY")clrc=clrAqua;
Create_Button("pair"+jj,pairs[i], -3, 33+jj*15, 70, 16, 9, C'44,33,0', clrc, C'222,222,222', "TAHOMA");
}
}
EventSetTimer(SetTimer);
OnTimer();
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
ObjectsDeleteAll();
EventKillTimer();
}
void OnTimer()
{
if(ObjectFind(0,"pair0")<0) OnInit();
color clr1=C'0,0,55';if(Activate=="time_1")clr1=C'190,0,0';
Create_Button("time_1","time_1 = "+time_1, 450, 0, 200, 17, 9,clr1, C'255,255,255', clr_user_time, "time_1");
color clr2=C'0,0,55';if(Activate=="time_2")clr2=C'190,0,0';
Create_Button("time_2","time_2 = "+time_2, 450, 16, 200, 16, 9, clr2, C'255,255,255', clr_shifted_line, "time_2");
}
void Create_Button(string Inpname,string text, int X, int Y, int W, int H, int width, color BackColor, color TextColor, color borderColor, string tool)
{
ObjectDelete(0,Inpname);
ObjectCreate(0,Inpname,OBJ_BUTTON,0,0,0);
ObjectSetInteger(0,Inpname,OBJPROP_XSIZE,W);
ObjectSetInteger(0,Inpname,OBJPROP_YSIZE,H);
ObjectSetInteger(0,Inpname,OBJPROP_CORNER,CORNER_LEFT_UPPER);
ObjectSetInteger(0,Inpname,OBJPROP_XDISTANCE,X);
ObjectSetInteger(0,Inpname,OBJPROP_YDISTANCE,Y);
ObjectSetInteger(0,Inpname,OBJPROP_FONTSIZE,width);
ObjectSetInteger(0,Inpname,OBJPROP_HIDDEN,true);
ObjectSetString(0,Inpname,OBJPROP_TOOLTIP,tool);
ObjectSetInteger(0, Inpname,OBJPROP_BACK,FALSE);
ObjectSetInteger(0, Inpname,OBJPROP_SELECTABLE,FALSE);
ObjectSetInteger(0, Inpname,OBJPROP_SELECTED,FALSE);
ObjectSetInteger(0, Inpname,OBJPROP_HIDDEN,FALSE);
ObjectSetInteger(0, Inpname,OBJPROP_ZORDER,1);
ObjectSetInteger(0, Inpname,OBJPROP_BGCOLOR,BackColor);
ObjectSetInteger(0, Inpname,OBJPROP_BORDER_COLOR,clrLime);
ObjectSetInteger(0, Inpname,OBJPROP_COLOR,TextColor);
ObjectSetString(0, Inpname,OBJPROP_FONT,"TAHOMA");
ObjectSetString(0, Inpname,OBJPROP_TEXT,text);
}
- 28-04-2018, 07:51 PM #11
==================
- 30-04-2018, 01:18 AM #12
حفظك الله اخي الكريم فيلسوف دائما مبدع .....
- 03-05-2018, 09:08 PM #13
شكرا لك اخي الكريم فيلسوف سلمت يداك
بس عندي سؤال اخر لو تكرمت!
عايز اعمل ترند اقوم بتحريكه على الشارت حتى يحدد السعر و زمن اتوماتكيا
مثل مؤشر ابو حمزة autodetect !!
لو ممكن فكرة بسيطة
شكرا