//+------------------------------------------------------------------+ //| signallength.mq4 | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, صëûٌٍîâ آëàنèىً" #property link "ٌmillion@narod.ru" extern color ضآإز_ٌîïًîٍèâëهيèے = Orange; extern color ضآإز_ïîننهًوêè = Aqua; extern int سٌٍàâêà=4, âًهىے_ٌٍَàâêè=10; int X1u,X2u,X3u,X1d,X2d,X3d,bar_1u,bar_2u,bar_3u,bar_1d,bar_2d,bar_3d,âًهىے_ïهً, X1g,X2g,per; double Y1vg,Y2vg,Y1ng,Y2ng,Y1u,Y2u,Y3u,Y1d,Y2d,Y3d; double ّèًèيà_êàيàëà; extern bool َنàëےٍü_îًٍهçêè = true;//َنàëےٍü_îًٍهçêè_ïًè_ٌىهيه_ïهًèîنà #property indicator_chart_window //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو //*////////////////////////////////////////////////////////////////*// int init() { per=Period(); return(0); } //*////////////////////////////////////////////////////////////////*// //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو //*////////////////////////////////////////////////////////////////*// int deinit() { ObjectDelete("ثèيèے ٌîïًîٍèâëهيèے"); ObjectDelete("ثèيèے ïîننهًوêè"); del("دهًهٌه÷هيèه "); if (َنàëےٍü_îًٍهçêè==true) del("مًàيèِà"); return(0); } //*////////////////////////////////////////////////////////////////*// //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو //*////////////////////////////////////////////////////////////////*// int start() { while(true) { if (âًهىے_ïهً!=Time[0]) { if (bar_3u != ïîèٌê_ôًàêٍàëà(0, 1) || (ObjectFind("ثèيèے ٌîïًîٍèâëهيèے")!=0)) { bar_3u = ïîèٌê_ôًàêٍàëà(0, 1); bar_2u = ïîèٌê_ôًàêٍàëà(bar_3u,-1); bar_1u = ïîèٌê_ôًàêٍàëà(bar_2u, 1); X1u=Time[bar_1u];Y1u=High[bar_1u];X2u=Time[bar_3u];Y2u=High[bar_3u]; ObjectDelete("ثèيèے ٌîïًîٍèâëهيèے"); ObjectCreate("ثèيèے ٌîïًîٍèâëهيèے", OBJ_TREND, 0,X1u,Y1u,X2u,Y2u); ObjectSet ("ثèيèے ٌîïًîٍèâëهيèے", OBJPROP_COLOR, ضآإز_ٌîïًîٍèâëهيèے); ObjectSet ("ثèيèے ٌîïًîٍèâëهيèے", OBJPROP_STYLE, STYLE_DASH); ObjectSet ("ثèيèے ٌîïًîٍèâëهيèے", OBJPROP_WIDTH, 0); ObjectSet ("ثèيèے ٌîïًîٍèâëهيèے", OBJPROP_BACK, true); ObjectSet ("ثèيèے ٌîïًîٍèâëهيèے", OBJPROP_RAY, true); ًèٌَهى_مًàيèِû(ضآإز_ٌîïًîٍèâëهيèے,X1u,Y1u,X2u,Y2u); } //----------------------------------------------------------------------- if (bar_3d != ïîèٌê_ôًàêٍàëà(0,-1) || (ObjectFind("ثèيèے ïîننهًوêè")!=0)) { bar_3d = ïîèٌê_ôًàêٍàëà(0, -1); bar_2d = ïîèٌê_ôًàêٍàëà(bar_3d, 1); bar_1d = ïîèٌê_ôًàêٍàëà(bar_2d,-1); X1d=Time[bar_1d];Y1d=Low[bar_1d];X2d=Time[bar_3d];Y2d=Low[bar_3d]; ObjectDelete("ثèيèے ïîننهًوêè"); ObjectCreate("ثèيèے ïîننهًوêè", OBJ_TREND, 0,X1d,Y1d,X2d,Y2d); ObjectSet ("ثèيèے ïîننهًوêè", OBJPROP_COLOR, ضآإز_ïîننهًوêè); ObjectSet ("ثèيèے ïîننهًوêè", OBJPROP_STYLE, STYLE_DASH); ObjectSet ("ثèيèے ïîننهًوêè", OBJPROP_WIDTH, 0); ObjectSet ("ثèيèے ïîننهًوêè", OBJPROP_BACK, true); ObjectSet ("ثèيèے ïîننهًوêè", OBJPROP_RAY, true); ًèٌَهى_مًàيèِû(ضآإز_ïîننهًوêè,X1d,Y1d,X2d,Y2d); } //----------------------------------------------------------------------- int d=0; int X_1,X_2; double Y_1,Y_2; color ضآإز; for(int n=ObjectsTotal()-1; n>=0; n--) { string Obj_N=ObjectName(n); if (StringFind(Obj_N,"مًàيèِà",0)!=-1 && ObjectType(Obj_N)==OBJ_TREND)//يàéنهي îلüهêٍ-ًٍهين ê êîٍîًîىَ âû÷èٌëےهٌٍے ïًèلëèوهيèه { X_1 = ObjectGet(Obj_N, OBJPROP_TIME1); X_2 = ObjectGet(Obj_N, OBJPROP_TIME2); if (X_1==X_2) {ObjectDelete(Obj_N);continue;} Y_1 = ObjectGet(Obj_N, OBJPROP_PRICE1); Y_2 = ObjectGet(Obj_N, OBJPROP_PRICE2); ضآإز= ObjectGet(Obj_N, OBJPROP_COLOR); //ًèٌَهى_çîيَ_êîيًٍîëے(Obj_N,ضآإز, X_1,Y_1,X_2,Y_2); if (X_1<=Time[0] && X_2>=Time[0])//ïîïàنàهٍ âî âًهىهييîé نèàïàçîي { X3d=Time[0];Y3d=Y_1+(Y_2-Y_1)*(X3d-X_1)/(X_2-X_1);//ًَàâيهيèه ïًےىîé //Comment((Y3d-Bid)/Point); if (MathAbs(Y3d-Bid)/Point < سٌٍàâêà) { if (ضآإز==ضآإز_ٌîïًîٍèâëهيèے)//يèويےے مًàيèِà {d=-1;break;} else {d= 1;break;} } } } } //----------------------------------------------------------------------- if (d!=0) { ObjectCreate("دهًهٌه÷هيèه "+Obj_N+" "+Time[0], OBJ_ARROW,0,Time[0],Bid,0,0,0,0); ObjectSet ("دهًهٌه÷هيèه "+Obj_N+" "+Time[0], OBJPROP_WIDTH, 0); if (d==1) { ObjectSet ("دهًهٌه÷هيèه "+Obj_N+" "+Time[0], OBJPROP_ARROWCODE,233); ObjectSet ("دهًهٌه÷هيèه "+Obj_N+" "+Time[0], OBJPROP_COLOR, ضآإز_ïîننهًوêè); // ضâهٍ Alert(Symbol()+"دهًهٌه÷هيèه مًàيèِû ïîننهًوêè "+Obj_N); } else { ObjectSet ("دهًهٌه÷هيèه "+Obj_N+" "+Time[0], OBJPROP_ARROWCODE,234); ObjectSet ("دهًهٌه÷هيèه "+Obj_N+" "+Time[0], OBJPROP_COLOR, ضآإز_ٌîïًîٍèâëهيèے); // ضâهٍ Alert(Symbol()+"دهًهٌه÷هيèه مًàيèِû ٌîïًîٍèâëهيèے "+Obj_N); } âًهىے_ïهً=Time[0]; } } if ((ObjectFind("حèويےے مًàيèِà "+string_ïهً(per))==0)&&(ObjectFind("آهًُيےے مًàيèِà "+string_ïهً(per))==0)) return(0); else { ObjectDelete("ثèيèے ٌîïًîٍèâëهيèے"); ObjectDelete("ثèيèے ïîننهًوêè"); âًهىے_ïهً=Time[1]; } } } //*////////////////////////////////////////////////////////////////*// //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو ////////////////////////////////////////////////////////////////////// int ïîèٌê_ôًàêٍàëà(int bar, int UP_DN) { while(true)//èùهى 1 ôًàêٍàë ïîٌëه bar { bar++; if (UP_DN == 1 && iFractals(NULL, 0, MODE_UPPER, bar) != 0) return(bar); if (UP_DN ==-1 && iFractals(NULL, 0, MODE_LOWER, bar) != 0) return(bar); } return(0); } //*////////////////////////////////////////////////////////////////*// //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو //*////////////////////////////////////////////////////////////////*// int del(string Ob) { for(int n=ObjectsTotal()-1; n>=0; n--) { string Obj_Name=ObjectName(n); if (StringFind(Obj_Name,Ob,0) != -1) ObjectDelete(Obj_Name); } return; } //*////////////////////////////////////////////////////////////////*// //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو //*////////////////////////////////////////////////////////////////*// string string_ïهً(int p) { switch(p) { case 1 : return("M_1"); break; //1 ىèيٍَà case 5 : return("M_5"); break; //5 ىèيٍَ case 15 : return("M15"); break; //15 ىèيٍَ case 30 : return("M30"); break; //30 ىèيٍَ case 60 : return("H 1"); break; //1 ÷àٌ case 240 : return("H_4"); break; //4 ÷àٌà case 1440 : return("D_1"); break; //1 نهيü case 10080: return("W_1"); break; //1 يهنهëے case 43200: return("MN1"); break; //1 ىهٌےِ }return("îّèلêà ïهًèîنà"); } //*////////////////////////////////////////////////////////////////*// //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو //*////////////////////////////////////////////////////////////////*// int ًèٌَهى_مًàيèِû(color ِâهٍ,int X1,double Y1,int X2,double Y2) { string Name = "مًàيèِà "+string_ïهً(per); if (ِâهٍ==ضآإز_ٌîïًîٍèâëهيèے) Name = "آهًُيےے "+Name; if (ِâهٍ==ضآإز_ïîننهًوêè) Name = "حèويےے " +Name; if (ObjectFind(Name)==0) return; //إٌëè îلüهêٍ ٌَùهٌٍâَهٍ X1g=Time[0];X2g=Time[0]+per*60*âًهىے_ٌٍَàâêè; if (ِâهٍ==ضآإز_ٌîïًîٍèâëهيèے) {Y1vg=Y1+(Y2-Y1)*(X1g-X1)/(X2-X1);Y2vg=Y1+(Y2-Y1)*(X2g-X1)/(X2-X1); ObjectCreate(Name, OBJ_TREND, 0,X1g,Y1vg,X2g,Y2vg);} if (ِâهٍ==ضآإز_ïîننهًوêè) {Y1ng=Y1+(Y2-Y1)*(X1g-X1)/(X2-X1);Y2ng=Y1+(Y2-Y1)*(X2g-X1)/(X2-X1); ObjectCreate(Name, OBJ_TREND, 0,X1g,Y1ng,X2g,Y2ng);} ObjectSet (Name, OBJPROP_COLOR, ِâهٍ); ObjectSet (Name, OBJPROP_STYLE, STYLE_SOLID); ObjectSet (Name, OBJPROP_WIDTH, 4); ObjectSet (Name, OBJPROP_BACK, false); ObjectSet (Name, OBJPROP_RAY, false); return; } //*////////////////////////////////////////////////////////////////*// //ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو