النتائج 1 إلى 15 من 27
الموضوع: السلام عليكم اخي فيلسوف البادية
- 05-07-2018, 09:49 PM #1
السلام عليكم اخي فيلسوف البادية
السلام عليكم اخي فيسلوف ارجو تعديل المؤشر بحيث انه يعطيني النتائج من نقاط مححده ( الهاي واللو ) للشمعة المحدده بالماوس
لانه الان يعطيني حسابات ونتائج من اي نقطة اضغطها على الشارت حتى لو كانت بالفراغ مجرد ان اضغط على الماوس يعطيني الخطوط تلقائيا فارجو منك تعديله وشكرا جزيلا لك وجزاك الله خيرا
الموضوع الاصلي للمؤشر
https://forum.arabictrader.com/t243626.htmlآخر تعديل بواسطة gassim2 ، 05-07-2018 الساعة 10:19 PM
- 07-07-2018, 07:55 PM #2
ارجو تعديل المؤشر
- 07-07-2018, 08:04 PM #3
تم الاطلاع:
- 07-07-2018, 08:06 PM #4لانه الان يعطيني حسابات ونتائج من اي نقطة اضغطها على الشارت حتى لو كانت بالفراغ مجرد ان اضغط على الماوس يعطيني الخطوط تلقائيا فارجو منك تعديله وشكرا جزيلا لك وجزاك الله خيرا
صحيح لو ضغطت في الفراغ يعطي قيم ولكن على اساس شمعة ذلك الفراغ سواء كانت تحت الضغط او فوقه؟ !!
ايضا هناك اهم خاصية وهي تعطيل الضغط بعد ان تضغط على المكان المناسب--وبينتها سابقاً
فانت حر الان هل تريد ان يؤثر الضغط او يكون معطل--اكثر ديناميكية لك.
- 07-07-2018, 08:13 PM #5
مغيرين فيه؟؟
- 07-07-2018, 08:28 PM #6
============
- 07-07-2018, 08:28 PM #7كود PHP:
extern int orders=17;
void SetText(string name,int Corner,string text,int X,int Y,color colour,int fontsize=12,string TOOLTIP="",double ANGLE=0)
{
ObjectDelete(name);
ObjectCreate(0,name,OBJ_LABEL,0,0,0);
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,X);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,Y);
ObjectSetInteger(0,name,OBJPROP_COLOR,colour);
ObjectSetInteger(0,name,OBJPROP_FONTSIZE,fontsize);
ObjectSetInteger(0,name,OBJPROP_CORNER,Corner);
ObjectSetString(0,name,OBJPROP_TEXT,text);
ObjectSetInteger(0,name,OBJPROP_SELECTED,FALSE);
ObjectSetInteger(0,name,OBJPROP_SELECTABLE,FALSE);
ObjectSetString(0,name,OBJPROP_TOOLTIP,TOOLTIP);
ObjectSetDouble(0,name,OBJPROP_ANGLE,ANGLE);
}
string case_x="X_6";
string LOCK="NO";
void OnTimer()
{
color clr=C'155,155,155'; if(status=="HIGH")clr=C'255,0,0'; SetText("HIGH",0, "HIGH", 5,20,clr,9,"HIGH",0);
clr=C'155,155,155'; if(status=="LOW") clr=C'255,0,0'; SetText("LOW",0, "LOW", 5,40,clr,9,"LOW",0);
clr=C'155,255,155'; if(case_x=="X_6") clr=C'255,0,0'; SetText("X_6",0, "6", 350,20,clr,9,"6",0);
clr=C'155,255,155'; if(case_x=="X_5") clr=C'255,0,0'; SetText("X_5",0, "5", 365,20,clr,9,"5",0);
clr=C'155,255,155'; if(case_x=="X_4") clr=C'255,0,0'; SetText("X_4",0, "4", 380,20,clr,9,"4",0);
clr=C'155,255,155'; if(case_x=="X_3") clr=C'255,0,0'; SetText("X_3",0, "3", 395,20,clr,9,"3",0);
if(LOCK=="YES") {SetText("LOCK",0, "LOCK = YES", 495,0,C'255,0,0',9,"LOCK-CLICK TO REMOVE LOCK",0); }
if(LOCK=="NO") {SetText("LOCK",0, "LOCK = NO", 495,0,C'0,255,0',9,"UNLOCKED-CLICK TO LOCK",0); }
}
string status="";
int OnInit()
{ObjectsDeleteAll(1);
EventSetTimer(1);
OnTimer();
return(INIT_SUCCEEDED);
}
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
if(id==CHARTEVENT_OBJECT_CLICK)
{
if(sparam=="LOCK")//001
{
if(LOCK=="YES") LOCK="NO";
else LOCK="YES";
}
if(sparam=="LOW") status="LOW";
if(sparam=="HIGH") status="HIGH";
if(LOCK=="NO")
{
if(sparam=="X_6") case_x="X_6";
if(sparam=="X_5") case_x="X_5";
if(sparam=="X_4") case_x="X_4";
if(sparam=="X_3") case_x="X_3";
}
}
if(LOCK=="NO")
{
if(id==CHARTEVENT_CLICK)
{
double price =0;
ObjectsDeleteAll(0,"TT_");
int x =(int)lparam;
int y =(int)dparam;
datetime dt =0;
double pric =0;
int window=0;
if(ChartXYToTimePrice(0,x,y,window,dt,pric))
{
int bar2=iBarShift(NULL,0,dt);
ObjectDelete("high");
ObjectCreate("high",OBJ_HLINE,0,0,High[bar2]);
ObjectSet( "high",OBJPROP_COLOR,clrOrange);
ObjectSet( "high",OBJPROP_WIDTH,2);
ObjectSet( "high",OBJPROP_STYLE,0);
ObjectDelete("low");
ObjectCreate("low",OBJ_HLINE,0,0,Low[bar2]);
ObjectSet( "low",OBJPROP_COLOR,clrOrange);
ObjectSet( "low",OBJPROP_WIDTH,2);
ObjectSet( "low",OBJPROP_STYLE,0);
ObjectDelete(" NN");
ObjectCreate("NN",OBJ_LABEL,0,0,0);
ObjectSet("NN",OBJPROP_CORNER,0);
ObjectSet("NN",OBJPROP_XDISTANCE, 225);
ObjectSet("NN",OBJPROP_YDISTANCE, 0);
ObjectSetText("NN","H: "+DoubleToString(High[bar2],MarketInfo(Symbol(),MODE_DIGITS))
+" L: "+DoubleToString(Low[bar2],MarketInfo(Symbol(),MODE_DIGITS)),11,"tahoma",clrLime);
}
if(status=="HIGH" || status=="LOW")
{
ObjectsDeleteAll(0,"TT_");
for(int j=0;j<orders;j++)
{
price=StrToDouble(DoubleToString(pric,_Digits));
ObjectDelete("TT_nn"+j);
ObjectCreate("TT_nn"+j,OBJ_HLINE,0,0,price);
ObjectSet( "TT_nn"+j,OBJPROP_COLOR,clrYellow);
ObjectSet( "TT_nn"+j,OBJPROP_WIDTH,1);
ObjectSet( "TT_nn"+j,OBJPROP_STYLE,0);
int DD=0;
if(case_x=="X_6") DD=0;
if(case_x=="X_5") DD=1;
if(case_x=="X_4") DD=2;
if(case_x=="X_3") DD=3;
string priceX=DoubleToString(price*MathPow(10,_Digits-DD),0);
double priceY=StringToDouble(priceX);
double priceZ=MathSqrt(priceY);
int sum=0;
string aa="";
for(int i=0;i<StringLen(priceX);i++)
{
aa=aa+"+"+StringSubstr(priceX,i,1);
sum=sum+StringToInteger(StringSubstr(priceX,i,1));
}
double s=0;
if( sum==2||sum==6 ||sum==11||sum==15||sum==20||sum==24||sum==29||sum==33||sum==38||sum==42||sum==47||sum==51||sum==56) s=0.20;
else if(sum==5||sum==9||sum==14||sum==18||sum==23||sum==27||sum==32||sum==36||sum==41||sum==45||sum==50||sum==54) s=0.50;
else if(sum==4||sum==8 ||sum==13||sum==17||sum==22||sum==26||sum==31||sum==35||sum==40||sum==44||sum==49||sum==53||sum==58) s=0.40;
else if(sum==3||sum==7 ||sum==12||sum==16||sum==21||sum==25||sum==30||sum==34||sum==39||sum==43||sum==48||sum==52) s=1.0/180.0 + 0.30; //=0.30555556
else if(sum==1||sum==10||sum==19||sum==28||sum==37||sum==46||sum==55||sum==64||sum==73) s=57.0/180.0;
if(status=="LOW") double priceM=MathSqrt(priceY)+s;
if(status=="HIGH") priceM=MathSqrt(priceY)-s;
int priceD=StringToInteger(DoubleToString(MathPow(priceM,2),2));
double PriceF=priceD*MathPow(10,-_Digits+DD);
int font=8;int jj=70; int gg=12; int vv=1;int kk=60;
jj=5;vv=1;SetText("TT_B"+j,0,priceX, -0+vv*jj,kk+gg*j,clrYellow,font,"priceX",0);
jj=70;vv=1;SetText("TT_Factor"+j,0,"F = "+s, -0+vv*jj,kk+gg*j,clrAqua,font,"Factor",0);
pric=PriceF;
}
}
}
}
}
- 07-07-2018, 08:32 PM #8
هلا وغلا اخي محمد وكل عام وانت بخير وشكرا على الرد
اريد المؤشر ان يعمل من اي قمة او قاع للشمعة المحددة فقط وليس من اي مكان بالشارت والطلب الثاني بعد تحديد الهاي او اللو للشمعة واظهار الخطوط اريد خاصية تعطيل العمل لكي لا يبدا بالعمل والحسابات ثانية عند الضغط على الشارت بالماوس مع ابقاء الخطوط موجودة (لو بالامكان عمل ايقونة لتعطيل عمل المؤشلا بالشارت ).. هل يمكن عمل هذه الخاصية
و اين هي خاصية تعطيل عمل المؤشر لم اجدها في الشارت اخي العزيز ؟؟
- 07-07-2018, 08:34 PM #9
ماشاء الله الرد جاء قبل كتابة الطلبات بارك الله فيك حبيبي الغالي وجاري تجربة الان
- 07-07-2018, 08:38 PM #10
نعم اخي فيلسوف التعديل مظبوط الف شكر ياغالي وجزاك الله عنا كل خير .
- 07-07-2018, 08:46 PM #11
اخي فيلسوف المؤشر بعد عمل خاصية الايقاف صار افضل ولكن المؤشر لايعطيني قراءة تلقائية من الهاي او اللو للشمعة يعطيني قراءة من اي مكان على الشارت .. هل يمكن تعديله ليعطيني قراءه من الهاي واللو تحديدا ؟؟
- 07-07-2018, 10:01 PM #12
اضغط على اللو او الهاي الذي تريده
من البداية قلنا لك نضيف هذه الخاصية يلقط اقررب قمة او قاع وقلت لا--وانها تعقيد!
يعني بالعربي كنت تملي على فيلشسوف الباديةو اشياء خاطئة وبليدة بدلا من ان تستفيد فكرآخر تعديل بواسطة فيلسوف البادية ، 07-07-2018 الساعة 10:06 PM
- 07-07-2018, 10:33 PM #13
اخي فيلسوف يمكن بالبداية ماكنت فاهم قصدك بس كنت هذا الي ابيه من زمان لان الحين اذا بغيت اخذ لو من اي شمعة اجلس مدة طويلة لين ما احط المؤشر على اللو بالظبط حتى انت جرب بنفسك وحط المؤشر على اللو او الهاي لاي شمعة بتشوف انها صعبة جدا والله جلست ابي اسوي باك تيست جلست خمس دقائق عشان احدد لو شمعة واحدة لين ماطفشت من الدراسة
لهذا السبب طلبت منك هذا الطلب انه يحددها تلقائيا ... وانه يكون في الخاصية الحلوة الي سويتها وهي تفعيل واغلاق المؤشر
- 07-07-2018, 10:51 PM #14
تم التعديل:
كود PHP:extern int orders=17;
void SetText(string name,int Corner,string text,int X,int Y,color colour,int fontsize=12,string TOOLTIP="",double ANGLE=0)
{
ObjectDelete(name);
ObjectCreate(0,name,OBJ_LABEL,0,0,0);
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,X);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,Y);
ObjectSetInteger(0,name,OBJPROP_COLOR,colour);
ObjectSetInteger(0,name,OBJPROP_FONTSIZE,fontsize);
ObjectSetInteger(0,name,OBJPROP_CORNER,Corner);
ObjectSetString(0,name,OBJPROP_TEXT,text);
ObjectSetInteger(0,name,OBJPROP_SELECTED,FALSE);
ObjectSetInteger(0,name,OBJPROP_SELECTABLE,FALSE);
ObjectSetString(0,name,OBJPROP_TOOLTIP,TOOLTIP);
ObjectSetDouble(0,name,OBJPROP_ANGLE,ANGLE);
}
string case_x="X_6";
string LOCK="NO";
void OnTimer()
{
color clr=C'155,155,155'; if(status=="HIGH")clr=C'255,0,0'; SetText("HIGH",0, "HIGH", 5,20,clr,9,"HIGH",0);
clr=C'155,155,155'; if(status=="LOW") clr=C'255,0,0'; SetText("LOW",0, "LOW", 5,40,clr,9,"LOW",0);
clr=C'155,255,155'; if(case_x=="X_6") clr=C'255,0,0'; SetText("X_6",0, "6", 350,20,clr,9,"6",0);
clr=C'155,255,155'; if(case_x=="X_5") clr=C'255,0,0'; SetText("X_5",0, "5", 365,20,clr,9,"5",0);
clr=C'155,255,155'; if(case_x=="X_4") clr=C'255,0,0'; SetText("X_4",0, "4", 380,20,clr,9,"4",0);
clr=C'155,255,155'; if(case_x=="X_3") clr=C'255,0,0'; SetText("X_3",0, "3", 395,20,clr,9,"3",0);
if(LOCK=="YES") {SetText("LOCK",0, "LOCK = YES", 495,0,C'255,0,0',9,"LOCK-CLICK TO REMOVE LOCK",0); }
if(LOCK=="NO") {SetText("LOCK",0, "LOCK = NO", 495,0,C'0,255,0',9,"UNLOCKED-CLICK TO LOCK",0); }
}
string status="";
int OnInit()
{ObjectsDeleteAll(1);
EventSetTimer(1);
OnTimer();
return(INIT_SUCCEEDED);
}
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
if(id==CHARTEVENT_OBJECT_CLICK)
{
if(sparam=="LOCK")//001
{
if(LOCK=="YES") LOCK="NO";
else LOCK="YES";
}
if(sparam=="LOW") status="LOW";
if(sparam=="HIGH") status="HIGH";
if(LOCK=="NO")
{
if(sparam=="X_6") case_x="X_6";
if(sparam=="X_5") case_x="X_5";
if(sparam=="X_4") case_x="X_4";
if(sparam=="X_3") case_x="X_3";
}
}
if(LOCK=="NO")
{
if(id==CHARTEVENT_CLICK)
{
double price =0;
ObjectsDeleteAll(0,"TT_");
int x =(int)lparam;
int y =(int)dparam;
datetime dt =0;
double pric =0;
int window=0;
if(ChartXYToTimePrice(0,x,y,window,dt,pric))
{
int bar2=iBarShift(NULL,0,dt);
ObjectDelete("high");
ObjectCreate("high",OBJ_HLINE,0,0,High[bar2]);
ObjectSet( "high",OBJPROP_COLOR,clrOrange);
ObjectSet( "high",OBJPROP_WIDTH,2);
ObjectSet( "high",OBJPROP_STYLE,0);
ObjectDelete("low");
ObjectCreate("low",OBJ_HLINE,0,0,Low[bar2]);
ObjectSet( "low",OBJPROP_COLOR,clrOrange);
ObjectSet( "low",OBJPROP_WIDTH,2);
ObjectSet( "low",OBJPROP_STYLE,0);
ObjectDelete(" NN");
ObjectCreate("NN",OBJ_LABEL,0,0,0);
ObjectSet("NN",OBJPROP_CORNER,0);
ObjectSet("NN",OBJPROP_XDISTANCE, 225);
ObjectSet("NN",OBJPROP_YDISTANCE, 0);
ObjectSetText("NN","H: "+DoubleToString(High[bar2],MarketInfo(Symbol(),MODE_DIGITS))
+" L: "+DoubleToString(Low[bar2],MarketInfo(Symbol(),MODE_DIGITS)),11,"tahoma",clrLime);
}
if(status=="HIGH" || status=="LOW")
{
ObjectsDeleteAll(0,"TT_");
for(int j=0;j<orders;j++)
{
if(status=="LOW") price=Low[bar2];
if(status=="HIGH") price=High[bar2];
ObjectDelete("TT_nn"+j);
ObjectCreate("TT_nn"+j,OBJ_HLINE,0,0,price);
ObjectSet( "TT_nn"+j,OBJPROP_COLOR,clrYellow);
ObjectSet( "TT_nn"+j,OBJPROP_WIDTH,1);
ObjectSet( "TT_nn"+j,OBJPROP_STYLE,0);
int DD=0;
if(case_x=="X_6") DD=0;
if(case_x=="X_5") DD=1;
if(case_x=="X_4") DD=2;
if(case_x=="X_3") DD=3;
string priceX=DoubleToString(price*MathPow(10,_Digits-DD),0);
double priceY=StringToDouble(priceX);
double priceZ=MathSqrt(priceY);
int sum=0;
string aa="";
for(int i=0;i<StringLen(priceX);i++)
{
aa=aa+"+"+StringSubstr(priceX,i,1);
sum=sum+StringToInteger(StringSubstr(priceX,i,1));
}
double s=0;
if( sum==2||sum==6 ||sum==11||sum==15||sum==20||sum==24||sum==29||sum==33||sum==38||sum==42||sum==47||sum==51||sum==56) s=0.20;
else if(sum==5||sum==9||sum==14||sum==18||sum==23||sum==27||sum==32||sum==36||sum==41||sum==45||sum==50||sum==54) s=0.50;
else if(sum==4||sum==8 ||sum==13||sum==17||sum==22||sum==26||sum==31||sum==35||sum==40||sum==44||sum==49||sum==53||sum==58) s=0.40;
else if(sum==3||sum==7 ||sum==12||sum==16||sum==21||sum==25||sum==30||sum==34||sum==39||sum==43||sum==48||sum==52) s=1.0/180.0 + 0.30; //=0.30555556
else if(sum==1||sum==10||sum==19||sum==28||sum==37||sum==46||sum==55||sum==64||sum==73) s=57.0/180.0;
if(status=="LOW") double priceM=MathSqrt(priceY)+s;
if(status=="HIGH") priceM=MathSqrt(priceY)-s;
int priceD=StringToInteger(DoubleToString(MathPow(priceM,2),2));
double PriceF=priceD*MathPow(10,-_Digits+DD);
int font=8;int jj=70; int gg=12; int vv=1;int kk=60;
jj=5;vv=1;SetText("TT_B"+j,0,priceX, -0+vv*jj,kk+gg*j,clrYellow,font,"priceX",0);
jj=70;vv=1;SetText("TT_Factor"+j,0,"F = "+s, -0+vv*jj,kk+gg*j,clrAqua,font,"Factor",0);
pric=PriceF;
}
}
}
}
}
- 07-07-2018, 11:05 PM #15