Could you advice me how to code if EA is allowed during today 0500 to tomorrow 0100 (Broker Time)? I only know how to code for same day.
Thanks!
MQL4 programming help needed - simply combining indicators 0 replies
I need some easy programming work done 0 replies
Need help with 10M chart - got it already but need some help! 1 reply
Need Some Help With an Indicators 0 replies
Need someone to shed some light on a programming issue 12 replies
DislikedHi Cyber1!
Could you advice me how to code if EA is allowed during today 0500 to tomorrow 0100 (Broker Time)? I only know how to code for same day.
Thanks!Ignored
DislikedIs there any reason why you couldn't use something like this?
if(TimeHour(CurTime())>=5){
if(TimeHour(CurTime())=<10){Ignored
DislikedThe statement would be false because if let said now is 0700,but my EA is between 0500 to next day 0100. It won't work. Unless i reverse the statement like between 0100 to 0500 is true then skip EA, if false then proceed.
But now, how to code such a way to allow EA proceed subsequent step between two timing, any duration of time.Ignored
DislikedCan you use Stop orders or Limit orders? These can be set to expire?Ignored
DislikedHow about if any open order and stop the EA? It must have some kind of switch to on and off the EA. Not sure if possible to have.Ignored
DislikedTheres a thread here with some ideas:
http://www.forexfactory.com/showthread.php?t=30405Ignored
DislikedThanks for your information.
OK. Another issue here. This is about "include*.mq4
I put "int start()" into EA as normal. EA encounters error ": start' - function already defined and has a body. So should not have "int start()" for "include*.mq4"?
If it shouldn't, then i eliminate the "int start()" from "include*.mq4". However, under "include*.mq4", it encounters : Start function not found and cannot be run.
So this make me confuse.Ignored
DislikedThanks!
My #include mqh has a global variable and 2 bool functions. When i click the compile button, it show error as below.
Start function not found and cannot be run.
Function "TP_4H" is not referenced and will be removed from exp-file
Function "TP_1D" is not referenced and will be removed from exp-file
And for EA, no problem at all after clicking the compile button. Any idea?Ignored
DislikedThe start function must be in your EA file.
The last two lines simply means that you have not called or referenced these functions from your EA.Ignored
DislikedYup. But still getting error.
Can you help to check with the attachment? I create an example for this.
Example is EA
Trade_P.mqh is #include
Thanks!Ignored
DislikedWorks fine here. No errors. Print statements also print out.
Try restarting the platform.Ignored
DislikedOK. After restarting my platform, try the EA. It print out the statement. OK fine, but why i click the compile button, it generate the errors? Is this a bug?
Although it shows error after clicking the compile button, then i try run again for my EA. It works and print out the statement. Confused.Ignored
DislikedI get no errors.
You have the mqh file in the includes folder, correct?Ignored
DislikedAnyone could help this?
I need a unique reference name for multiple pairs global variable, example GlobalVariableSet("HERE",100);
How to code "HERE" to become variable or something, so could apply this EA to multiple pairs at the same time. EA won't refer the wrong variable. Example 100 is for pair EUR and 400 is for pair AUD. ThanksIgnored
//+------------------------------------------------------------------+ //| Elliott_Waves.mq4 | //| Copyright © 2009, Хлыстов Владимр | //| с[email protected] | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, Хлыстов Владимр" #property link "с[email protected]" #property indicator_chart_window datetime X1,X2; double Y1,Y2,LINE[11][6]; int СТИЛЬ,Т_ЛИНИИ,ВОЛНА,ЦВЕТ; double High_Win,Low_Win,shift_X,shift_Y; string Name[11]={ "-", "1 ВОЛНА ","2 ВОЛНА ","3 ВОЛНА ","4 ВОЛНА ","5 ВОЛНА ", "a ВОЛНА ","b ВОЛНА ","c ВОЛНА ","d ВОЛНА ","e ВОЛНА "}; string текст,Obj_Name,ИНФО; int per; extern bool показать_все_периоды = true; extern color Ц1=White; extern color Ц2=DeepSkyBlue; extern color Ц3=Yellow; extern color Ц4=Turquoise; extern color Ц5=Magenta; extern color Ц6=Yellow; extern color Ц7=MediumSpringGreen; extern color Ц8=Violet; extern color Ц9=DarkOrchid; //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж ////////////////////////////////////////////////////////////////////// int init() { ObjectCreate ("бар", OBJ_LABEL, 0, 0, 0);// Создание объ. ObjectSet ("бар", OBJPROP_XDISTANCE, 500); ObjectSet ("бар", OBJPROP_YDISTANCE, 0); ObjectSet ("бар", OBJPROP_CORNER, 1); //угол_вывода_ордеров per =Period(); Obj_Name = string_пер(per); for(int k=0; k<=10; k++) Name[k] = Name[k]+Obj_Name; Comment("ВОЛНЫ ЭЛЛИОТА "+Obj_Name+" "+время(CurTime())); return(0); } //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж //*////////////////////////////////////////////////////////////////*// int deinit() { ObjectDelete("бар"); удалить_обьекты("Ц"); удалить_обьекты("Name"); удалить_обьекты("Инфо"); return(0); } //*////////////////////////////////////////////////////////////////*// //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж ////////////////////////////////////////////////////////////////////// int start() { High_Win = WindowPriceMax(); Low_Win = WindowPriceMin(); shift_X = WindowBarsPerChart(); ObjectSetText("бар","Бар на экране "+DoubleToStr(shift_X,0),8,"Arial",White); shift_X = shift_X/80*per; shift_Y = (High_Win-Low_Win) / 50; for(int k=0; k<=ObjectsTotal(); k++) { Obj_Name = ObjectName(k); // Запрашиваем имя объекта if (Obj_Name=="") continue; ВОЛНА = N_Волны(Obj_Name); if (ВОЛНА>0&&ВОЛНА<11) { if (Obj_Name != Name[ВОЛНА]) redraw_LINE(Obj_Name,Name[ВОЛНА]); X1 = ObjectGet(Name[ВОЛНА], OBJPROP_TIME1); Y1 = ObjectGet(Name[ВОЛНА], OBJPROP_PRICE1); X2 = ObjectGet(Name[ВОЛНА], OBJPROP_TIME2); Y2 = ObjectGet(Name[ВОЛНА], OBJPROP_PRICE2); ЦВЕТ = ObjectGet(Name[ВОЛНА], OBJPROP_COLOR); СТИЛЬ = ObjectGet(Name[ВОЛНА], OBJPROP_STYLE); Т_ЛИНИИ=ObjectGet(Name[ВОЛНА], OBJPROP_WIDTH); if (X1 > X2) redraw_LINE(Name[ВОЛНА],Name[ВОЛНА]+" r "); if (Y1 < Y2) LINE[ВОЛНА][0]=1; else LINE[ВОЛНА][0]=-1;//направление волны ObjectDelete("Ц "+Name[ВОЛНА]); ObjectDelete("Цель "+Name[ВОЛНА]); LINE[ВОЛНА][1]=X1;//начало волны LINE[ВОЛНА][2]=Y1; LINE[ВОЛНА][3]=X2;//конец волны LINE[ВОЛНА][4]=Y2; LINE[ВОЛНА][5]=Обьем_Волны(Name[ВОЛНА]); if ((MathAbs(LINE[ВОЛНА][3]-LINE[ВОЛНА+1][1])<per*120) || (MathAbs(LINE[ВОЛНА][4]-LINE[ВОЛНА+1][2])/Point<=MarketInfo(Symbol(),MODE_STOPLEVEL))) { ObjectSet (Name[ВОЛНА+1], OBJPROP_COLOR, ЦВЕТ); //стыковка - выделение цвета ObjectSet (Name[ВОЛНА+1], OBJPROP_STYLE, СТИЛЬ);// Стиль ObjectSet (Name[ВОЛНА+1], OBJPROP_WIDTH, Т_ЛИНИИ); ObjectSet (Name[ВОЛНА+1], OBJPROP_PRICE1 ,LINE[ВОЛНА][4]);//Привязка следующей волны к текущей PRICE1 ObjectSet (Name[ВОЛНА+1], OBJPROP_TIME1 ,LINE[ВОЛНА][3]);//Привязка следующей волны к текущей TIME1 } ИНФО = "Инфо "+Name[ВОЛНА]+" рычаг "+DoubleToStr(MathAbs(LINE[ВОЛНА][2]-LINE[ВОЛНА][4])/Point,0); if (ВОЛНА==3&&(LINE[3][5]<LINE[2][5]||LINE[3][5]<LINE[1][5]||LINE[3][5]<LINE[4][5]||LINE[3][5]<LINE[5][5])) текст = "Обьем не может быть меньше в 3 волне "+DoubleToStr(LINE[ВОЛНА][5],0); else текст = "V = "+DoubleToStr(LINE[ВОЛНА][5],0); удалить_обьекты("Инфо"); ObjectCreate (ИНФО, OBJ_TEXT ,0,LINE[ВОЛНА][3], LINE[ВОЛНА][4]+shift_Y*Т_ЛИНИИ*3*LINE[ВОЛНА][0],0,0,0,0); ObjectSetText(ИНФО,текст ,8,"Arial"); ObjectSet (ИНФО, OBJPROP_COLOR, ЦВЕТ); ObjectDelete ("Name "+Name[ВОЛНА]); ObjectCreate ("Name "+Name[ВОЛНА], OBJ_TEXT ,0,LINE[ВОЛНА][3], LINE[ВОЛНА][4]+shift_Y*Т_ЛИНИИ*2*LINE[ВОЛНА][0]+0.7*shift_Y,0,0,0,0); if (ФРАКТАЛ(LINE[ВОЛНА][3],Name[ВОЛНА])==true) { ObjectSetText("Name "+Name[ВОЛНА], StringSubstr(Name[ВОЛНА],0,1),10*Т_ЛИНИИ,"Arial"); ObjectSet ("Name "+Name[ВОЛНА], OBJPROP_COLOR, ЦВЕТ); } else { ObjectSetText("Name "+Name[ВОЛНА], "нет фрактала" ,10,"Arial"); ObjectSet ("Name "+Name[ВОЛНА], OBJPROP_COLOR, Red); } if (LINE[ВОЛНА][3]!=LINE[ВОЛНА+1][1]) // если нет следующей волны { if (LINE[ВОЛНА][1]!=LINE[ВОЛНА-1][3]) // если нет предыдущей волны { X1=LINE[ВОЛНА][3]+(LINE[ВОЛНА][3]-LINE[ВОЛНА][1])*0.38; X2=LINE[ВОЛНА][3]+(LINE[ВОЛНА][3]-LINE[ВОЛНА][1])*0.62; Y1=LINE[ВОЛНА][4]+(LINE[ВОЛНА][2]-LINE[ВОЛНА][4])*0.38; Y2=LINE[ВОЛНА][4]+(LINE[ВОЛНА][2]-LINE[ВОЛНА][4])*0.62; if (ВОЛНА==6) //текущая Волна a Y1=LINE[6][4]+(LINE[6][2]-LINE[6][4])*0.50; } else//есть пред волна { switch(ВОЛНА) { case 2 ://текущая Волна 2 X2=LINE[2][3]+(LINE[2][3]-LINE[1][1])/0.38; X1=LINE[2][3]+(LINE[2][3]-LINE[1][1])/0.62; Y1=LINE[1][4]-MathAbs(LINE[1][2]-LINE[1][4])*LINE[2][0]*1.00; Y2=LINE[1][4]-MathAbs(LINE[1][2]-LINE[1][4])*LINE[2][0]*1.62; break; case 3 ://текущая Волна 3 X1=LINE[2][1]+(LINE[3][3]-LINE[1][3])*1.38; X2=LINE[3][1]+(LINE[3][3]-LINE[1][3])*1.62; Y1=LINE[3][4]-MathAbs(LINE[3][2]-LINE[3][4])*LINE[3][0]*0.38; Y2=LINE[3][4]-MathAbs(LINE[3][2]-LINE[3][4])*LINE[3][0]*0.50; if ((Y2<LINE[1][4] && LINE[3][0]==1)||(Y2>LINE[1][4] && LINE[3][0]==-1)) { ObjectSetText("Name "+Name[ВОЛНА],"4 ВОЛНА не может лежать ниже 1 ВОЛНЫ",8,"Arial"); ObjectSet ("Name "+Name[ВОЛНА], OBJPROP_COLOR, Red); } if (LINE[1][3]!=LINE[2][1]) { ObjectSet(Name[ВОЛНА], OBJPROP_COLOR, Red); ObjectSetText("Name "+Name[ВОЛНА],"нет ВОЛНЫ 1",8,"Arial"); ObjectSet ("Name "+Name[ВОЛНА], OBJPROP_COLOR, Red); } break; case 4 ://текущая Волна 4 X1=LINE[4][3]+(LINE[3][3]-LINE[3][1])*0.38; X2=LINE[4][3]+(LINE[3][3]-LINE[3][1])*0.62; Y1=LINE[4][2]-MathAbs(LINE[1][2]-LINE[3][4])*LINE[4][0]*0.62; Y2=LINE[4][2]-MathAbs(LINE[1][2]-LINE[3][4])*LINE[4][0]*1.00; текст="--4 ВОЛНА <> 1 ВОЛНЫ--"; ObjectDelete(текст); if ((LINE[4][4]<LINE[1][4] && LINE[4][0]==-1)||(LINE[4][4]>LINE[1][4] && LINE[4][0]==1)) { ObjectSet(Name[ВОЛНА], OBJPROP_COLOR, Red); ObjectSetText("Name "+Name[ВОЛНА],"4 ВОЛНА не может лежать ниже 1 ВОЛНЫ",8,"Arial"); ObjectSet ("Name "+Name[ВОЛНА], OBJPROP_COLOR, Red); ObjectCreate(текст, OBJ_TREND, 0,LINE[1][3],LINE[1][4],LINE[4][3],LINE[1][4]); ObjectSet (текст, OBJPROP_COLOR, Red); // Цвет ObjectSet (текст, OBJPROP_STYLE, STYLE_DASH);// Стиль ObjectSet (текст, OBJPROP_WIDTH, 0); ObjectSet (текст, OBJPROP_BACK, true); ObjectSet (текст, OBJPROP_RAY, false); // Луч } if (LINE[1][3]!=LINE[2][1] || LINE[2][3]!=LINE[3][1]) { ObjectSet(Name[ВОЛНА], OBJPROP_COLOR, Red); ObjectSetText("Name "+Name[ВОЛНА],"нет ВОЛНЫ 1 или 2",8,"Arial"); ObjectSet ("Name "+Name[ВОЛНА], OBJPROP_COLOR, Red); } break; case 5 ://текущая Волна 5 X1=LINE[5][3]+(LINE[5][3]-LINE[5][1])*0.38; X2=LINE[5][3]+(LINE[5][3]-LINE[5][1])*0.62; Y1=LINE[5][4]-MathAbs(LINE[5][2]-LINE[5][4])*LINE[5][0]*0.38; Y2=LINE[5][4]-MathAbs(LINE[5][2]-LINE[5][4])*LINE[5][0]*0.62; double MFI_3=iMACD(NULL,0,5,34,5,PRICE_CLOSE,MODE_MAIN ,iBarShift(NULL,0,LINE[3][3],FALSE)); double MFI_5=iMACD(NULL,0,5,34,5,PRICE_CLOSE,MODE_MAIN ,iBarShift(NULL,0,LINE[5][3],FALSE)); if (LINE[1][3]!=LINE[2][1] || LINE[2][3]!=LINE[3][1] || LINE[3][3]!=LINE[4][1]) { ObjectSet(Name[ВОЛНА], OBJPROP_COLOR, Red); ObjectSetText("Name "+Name[ВОЛНА],"нет ВОЛНЫ 1,2 или 3",8,"Arial"); ObjectSet ("Name "+Name[ВОЛНА], OBJPROP_COLOR, Red); } if ((MFI_3 < MFI_5 && LINE[5][0]==1)||(MFI_3 > MFI_5 && LINE[5][0]==-1)) { ObjectDelete ("MFI "+время(LINE[3][3])); ObjectCreate ("MFI "+время(LINE[3][3]),OBJ_TEXT,0,LINE[3][3],LINE[5][4]+shift_Y*LINE[5][0],0,0,0,0); ObjectSetText("MFI "+время(LINE[3][3]),DoubleToStr(MFI_3,0),8,"Arial"); ObjectSet ("MFI "+время(LINE[3][3]),OBJPROP_COLOR, ЦВЕТ); ObjectDelete ("MFI "+время(LINE[5][3])); ObjectCreate ("MFI "+время(LINE[5][3]),OBJ_TEXT,0,LINE[5][3],LINE[5][4]+shift_Y*LINE[5][0],0,0,0,0); ObjectSetText("MFI "+время(LINE[5][3]),DoubleToStr(MFI_5,0),8,"Arial"); ObjectSet ("MFI "+время(LINE[5][3]),OBJPROP_COLOR, ЦВЕТ); ObjectSetText("Name "+Name[ВОЛНА],"Нет дивергенции MFI 3 и 5 ВОЛНЫ",8,"Arial"); ObjectSet ("Name "+Name[ВОЛНА], OBJPROP_COLOR, Red); } break; case 6 ://текущая Волна a X1=LINE[6][3]+(LINE[6][3]-LINE[6][1])*0.38; X2=LINE[6][3]+(LINE[6][3]-LINE[6][1])*0.62; Y1=LINE[6][4]+(LINE[6][2]-LINE[6][4])*0.50; Y2=LINE[6][4]+(LINE[6][2]-LINE[6][4])*0.62; break; case 7 ://текущая Волна b X2=LINE[7][3]+(LINE[7][3]-LINE[6][1])/0.38; X1=LINE[7][3]+(LINE[7][3]-LINE[6][1])/0.62; Y1=LINE[6][4]-MathAbs(LINE[6][2]-LINE[6][4])*LINE[7][0]*1.00; Y2=LINE[6][4]-MathAbs(LINE[6][2]-LINE[6][4])*LINE[7][0]*1.62; break; case 8 ://текущая Волна c X1=LINE[7][1]+(LINE[8][3]-LINE[6][3])*1.38; X2=LINE[7][1]+(LINE[8][3]-LINE[6][3])*1.62; Y1=LINE[8][4]-MathAbs(LINE[8][2]-LINE[8][4])*LINE[8][0]*0.38; Y2=LINE[8][4]-MathAbs(LINE[8][2]-LINE[8][4])*LINE[8][0]*0.50; if (LINE[6][3]!=LINE[7][1]) { ObjectSet(Name[ВОЛНА], OBJPROP_COLOR, Red); ObjectSetText("Name "+Name[ВОЛНА],"нет ВОЛНЫ a",8,"Arial"); ObjectSet ("Name "+Name[ВОЛНА], OBJPROP_COLOR, Red); } break; case 9 ://текущая Волна d X1=LINE[9][3]+(LINE[8][3]-LINE[8][1])*0.38; X2=LINE[9][3]+(LINE[8][3]-LINE[8][1])*0.62; Y1=LINE[9][2]-MathAbs(LINE[6][2]-LINE[8][4])*LINE[9][0]*0.62; Y2=LINE[9][2]-MathAbs(LINE[6][2]-LINE[8][4])*LINE[9][0]*1.00; if (LINE[6][3]!=LINE[7][1] || LINE[7][3]!=LINE[8][1]) { ObjectSet(Name[ВОЛНА], OBJPROP_COLOR, Red); ObjectSetText("Name "+Name[ВОЛНА],"нет ВОЛНЫ a или b ",8,"Arial"); ObjectSet ("Name "+Name[ВОЛНА], OBJPROP_COLOR, Red); } break; case 10 ://текущая Волна e X1=LINE[10][3]+(LINE[10][3]-LINE[10][1])*0.38; X2=LINE[10][3]+(LINE[10][3]-LINE[10][1])*0.62; Y1=LINE[10][4]-MathAbs(LINE[10][2]-LINE[10][4])*LINE[10][0]*0.38; Y2=LINE[10][4]-MathAbs(LINE[10][2]-LINE[10][4])*LINE[10][0]*0.62; if (LINE[6][3]!=LINE[7][1] || LINE[7][3]!=LINE[8][1] || LINE[8][3]!=LINE[9][1]) { ObjectSet(Name[ВОЛНА], OBJPROP_COLOR, Red); ObjectSetText("Name "+Name[ВОЛНА],"нет ВОЛНЫ a,b или c",8,"Arial"); ObjectSet ("Name "+Name[ВОЛНА], OBJPROP_COLOR, Red); } break; }//switch } ObjectCreate("Ц "+Name[ВОЛНА], OBJ_TREND, 0,LINE[ВОЛНА][3],LINE[ВОЛНА][4],X1,Y1); ObjectSet ("Ц "+Name[ВОЛНА], OBJPROP_COLOR, ЦВЕТ); // Цвет ObjectSet ("Ц "+Name[ВОЛНА], OBJPROP_STYLE, STYLE_DASH);// Стиль ObjectSet ("Ц "+Name[ВОЛНА], OBJPROP_WIDTH, 0); ObjectSet ("Ц "+Name[ВОЛНА], OBJPROP_BACK, true); ObjectSet ("Ц "+Name[ВОЛНА], OBJPROP_RAY, false); // Луч ObjectCreate("Цель "+Name[ВОЛНА], OBJ_RECTANGLE,0,0,0,0,0); ObjectSet ("Цель "+Name[ВОЛНА], OBJPROP_STYLE, STYLE_DASH); ObjectSet ("Цель "+Name[ВОЛНА], OBJPROP_COLOR, ЦВЕТ); ObjectSet ("Цель "+Name[ВОЛНА], OBJPROP_BACK, false); ObjectSet ("Цель "+Name[ВОЛНА], OBJPROP_TIME1 ,X1); ObjectSet ("Цель "+Name[ВОЛНА], OBJPROP_PRICE1,Y1); ObjectSet ("Цель "+Name[ВОЛНА], OBJPROP_TIME2 ,X2); ObjectSet ("Цель "+Name[ВОЛНА], OBJPROP_PRICE2,Y2); } }//-Волны 1 - е --------------------------------------------------------------------------------------------------------+ }//for ЦВЕТ = color_per(per); for(k=1; k<=10; k++) { ObjectDelete ("Name "+k); if (ObjectFind(Name[k])==0) { ObjectCreate ("Name "+k, OBJ_LABEL, 0, 0, 0);// Создание объ. ObjectSetText("Name "+k, Name[k]+время(LINE[k][1])+" "+DoubleToStr(LINE[k][2],Digits)+" "+время(LINE[k][3])+" "+DoubleToStr(LINE[k][4],Digits) ,8,"Arial"); ObjectSet ("Name "+k, OBJPROP_CORNER, 3); ObjectSet ("Name "+k, OBJPROP_XDISTANCE, 300); ObjectSet ("Name "+k, OBJPROP_YDISTANCE, 10+10*k); ObjectSet ("Name "+k, OBJPROP_COLOR, ЦВЕТ); // Цвет } else //очистка значений удаленной волны { LINE[k][0]=0;LINE[k][1]=0;LINE[k][2]=0;LINE[k][3]=0;LINE[k][4]=0;LINE[k][5]=0; //удалить_обьекты("Name"); //удалить_обьекты("MFI"); ObjectDelete("Ц "+Name[k]); ObjectDelete("ФРАКТАЛ "+Name[k]); ObjectDelete("color_MFI "+Name[k]+"1"); ObjectDelete("color_MFI "+Name[k]+"2"); ObjectDelete("color_MFI "+Name[k]+"3"); ObjectDelete("color_MFI "+Name[k]+"4"); ObjectDelete("color_MFI "+Name[k]+"5"); удалить_обьекты("Инфо "+Name[k]); ObjectDelete("Цель "+Name[k]); ObjectDelete("Name "+Name[k]); } //очистка значений удаленной волны } return; } ////////////////////////////////////////////////////////////////////// //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж*/ //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж*/ ////////////////////////////////////////////////////////////////////// void redraw_LINE(string old, string ИМЯ) { datetime x1,x2; double y1,y2; СТИЛЬ = ObjectGet(old, OBJPROP_STYLE); ЦВЕТ = ObjectGet(old, OBJPROP_COLOR); Т_ЛИНИИ = ObjectGet(old, OBJPROP_WIDTH); // Т ЛИНИИ x1 = ObjectGet(old, OBJPROP_TIME1); y1 = ObjectGet(old, OBJPROP_PRICE1); x2 = ObjectGet(old, OBJPROP_TIME2); y2 = ObjectGet(old, OBJPROP_PRICE2); if (x1>x2) { x2 = ObjectGet(old, OBJPROP_TIME1); y2 = ObjectGet(old, OBJPROP_PRICE1); x1 = ObjectGet(old, OBJPROP_TIME2); y1 = ObjectGet(old, OBJPROP_PRICE2); } ObjectDelete(ИМЯ); //удаляет двойника ObjectCreate(ИМЯ, OBJ_TREND, 0, x1,y1,x2,y2); ObjectSet (ИМЯ, OBJPROP_COLOR, ЦВЕТ); // Цвет ObjectSet (ИМЯ, OBJPROP_STYLE, СТИЛЬ); // Стиль ObjectSet (ИМЯ, OBJPROP_WIDTH, Т_ЛИНИИ); // Т ЛИНИИ ObjectSet (ИМЯ, OBJPROP_BACK, true); ObjectSet (ИМЯ, OBJPROP_RAY, false); // Луч ObjectDelete(old); return; } ////////////////////////////////////////////////////////////////////// //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж*/ //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж*/ ////////////////////////////////////////////////////////////////////// //-- ФРАКТАЛ ------------------------------------------------------------------------- bool ФРАКТАЛ(datetime t,string ИМЯ) { int i=0,KOD; int ТЕК_БАР=iBarShift(NULL,0,t,FALSE); double fr_DN = iFractals(NULL,0,MODE_LOWER,ТЕК_БАР); double fr_UP = iFractals(NULL,0,MODE_UPPER,ТЕК_БАР); if (fr_UP==0 &&fr_DN ==0) return(false); ObjectDelete("ФРАКТАЛ "+ИМЯ); double y,Y,fr; if (ObjectFind(ИМЯ)==0) { if (fr_DN!=0) fr=fr_DN; else fr=fr_UP; if (t==ObjectGet(ИМЯ, OBJPROP_TIME2)) ObjectSet(ИМЯ, OBJPROP_PRICE2,fr);//Привязка волны к ФРАКТАЛУ if (t==ObjectGet(ИМЯ, OBJPROP_TIME1)) ObjectSet(ИМЯ, OBJPROP_PRICE1,fr);//Привязка волны к ФРАКТАЛУ ЦВЕТ = ObjectGet(ИМЯ, OBJPROP_COLOR); Т_ЛИНИИ = ObjectGet(ИМЯ, OBJPROP_WIDTH); // Т ЛИНИИ } else { ЦВЕТ = Yellow; Т_ЛИНИИ = 1; // Т ЛИНИИ } if (fr_DN != 0) {Y = fr_DN-shift_Y * Т_ЛИНИИ + 0.5 * shift_Y; y = Y + 0.7 * shift_Y; KOD=218;} if (fr_UP != 0) {Y = fr_UP+shift_Y * Т_ЛИНИИ + 0.5 * shift_Y; y = Y - 1.2 * shift_Y; KOD=217;} ObjectCreate("ФРАКТАЛ "+ИМЯ, OBJ_ARROW,0,t,Y,0,0,0,0); ObjectSet ("ФРАКТАЛ "+ИМЯ, OBJPROP_ARROWCODE,KOD); ObjectSet ("ФРАКТАЛ "+ИМЯ, OBJPROP_COLOR,ЦВЕТ ); for(int k=ТЕК_БАР-2; k<=ТЕК_БАР+2; k++) { i++; ObjectDelete("color_MFI "+ИМЯ+i); ObjectCreate("color_MFI "+ИМЯ+i, OBJ_ARROW,0,Time[k],y,0,0,0,0); ObjectSet ("color_MFI "+ИМЯ+i, OBJPROP_ARROWCODE,117); ObjectSet ("color_MFI "+ИМЯ+i, OBJPROP_WIDTH, 0); // Т ЛИНИИ ObjectSet ("color_MFI "+ИМЯ+i, OBJPROP_BACK, true); if ( iVolume(NULL, 0, k) > iVolume(NULL, 0, k+1) && iBWMFI(NULL, 0, k) > iBWMFI(NULL, 0, k+1) ) ObjectSet("color_MFI "+ИМЯ+i, OBJPROP_COLOR,Lime); //Зеленый if ( iVolume(NULL, 0, k) < iVolume(NULL, 0, k+1) && iBWMFI(NULL, 0, k) < iBWMFI(NULL, 0, k+1) ) ObjectSet("color_MFI "+ИМЯ+i, OBJPROP_COLOR,Brown); //Увядающий if ( iVolume(NULL, 0, k) < iVolume(NULL, 0, k+1) && iBWMFI(NULL, 0, k) > iBWMFI(NULL, 0, k+1) ) ObjectSet("color_MFI "+ИМЯ+i, OBJPROP_COLOR,Blue); //Фальшивый if ( iVolume(NULL, 0, k) > iVolume(NULL, 0, k+1) && iBWMFI(NULL, 0, k) < iBWMFI(NULL, 0, k+1) ) ObjectSet("color_MFI "+ИМЯ+i, OBJPROP_COLOR,Pink); //Приседающий ObjectSet("ФРАКТАЛ "+ИМЯ, OBJPROP_WIDTH,Т_ЛИНИИ); // Т ЛИНИИ } return(true); } //-- ФРАКТАЛ ------------------------------------------------------------------------- ////////////////////////////////////////////////////////////////////// //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж*/ //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж /////////////////////////////////////////////////////////////////// string время(int taim) { string sTaim; //int YY=TimeYear(taim); // Year int MN=TimeMonth(taim); // Month int DD=TimeDay(taim); // Day int HH=TimeHour(taim); // Hour int MM=TimeMinute(taim); // Minute if (DD<10) sTaim = "0"+DoubleToStr(DD,0); else sTaim = DoubleToStr(DD,0); sTaim = sTaim+"/"; if (MN<10) sTaim = sTaim+"0"+DoubleToStr(MN,0); else sTaim = sTaim+DoubleToStr(MN,0); sTaim = sTaim+" "; if (HH<10) sTaim = sTaim+"0"+DoubleToStr(HH,0); else sTaim = sTaim+DoubleToStr(HH,0); if (MM<10) sTaim = sTaim+":0"+DoubleToStr(MM,0); else sTaim = sTaim+":"+DoubleToStr(MM,0); return(sTaim); } //*////////////////////////////////////////////////////////////////*// //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж ////////////////////////////////////////////////////////////////////// int N_Волны(string Obj_Name) { if (ObjectType(Obj_Name)!=2) return(-1);//тип обьекта не линия int V=-1; string volna = StringSubstr( Obj_Name, 0, 2); if (volna=="1 ") V=1; if (volna=="2 ") V=2; if (volna=="3 ") V=3; if (volna=="4 ") V=4; if (volna=="5 ") V=5; if (volna=="a ") V=6; if (volna=="b ") V=7; if (volna=="c ") V=8; if (volna=="d ") V=9; if (volna=="e ") V=10; if (V<0) return(-1); if (StringFind(Obj_Name,"ВОЛНА",2) != 2) return(V); //Остались только ВОЛНы обозначенные "ВОЛНА" if (StringFind(Obj_Name,string_пер(per),8) == 8) //волна создана в этом временном периоде { ЦВЕТ = color_per(per); ObjectSet(Obj_Name,OBJPROP_COLOR,ЦВЕТ); return(V); } return(-1); } ////////////////////////////////////////////////////////////////////// //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж*/ //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж ////////////////////////////////////////////////////////////////////// color color_per(int per) { switch(per) { case 1 : //1 минута return(Ц1); case 5 : //5 минут return(Ц2); case 15 : //15 минут return(Ц3); case 30 : //30 минут return(Ц4); case 60 : //1 час return(Ц5); case 240 : //4 часа return(Ц6); case 1440 : //1 день return(Ц7); case 10080: //1 неделя return(Ц8); case 43200: //1 месяц return(Ц9); } return(Gray); } ////////////////////////////////////////////////////////////////////// //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж*/ //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж ////////////////////////////////////////////////////////////////////// double Обьем_Волны(string Name) { double vol=0; int Нач_БАР,Кон_БАР; int i=0; Нач_БАР=iBarShift(NULL,0,ObjectGet(Name, OBJPROP_TIME1),FALSE); Кон_БАР=iBarShift(NULL,0,ObjectGet(Name, OBJPROP_TIME2),FALSE); for(int n=Кон_БАР; n<=Нач_БАР; n++) { vol = vol + iVolume(NULL,0,n); i++; } vol = vol/i; // vol = iVolume(NULL,0,Нач_БАР); return(vol); } ////////////////////////////////////////////////////////////////////// //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж*/ //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж //*////////////////////////////////////////////////////////////////*// string string_пер(int per) { switch(per) { case 1 : return("M_1"); //1 минута break; case 5 : return("M_5"); //5 минут break; case 15 : return("M15"); //15 минут break; case 30 : return("M30"); //30 минут break; case 60 : return("H 1"); //1 час break; case 240 : return("H_4"); //4 часа break; case 1440 : return("D_1"); //1 день break; case 10080: return("W_1"); //1 неделя break; case 43200: return("MN1"); //1 месяц break; } return("ошибка периода"); } //*////////////////////////////////////////////////////////////////*// //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж //*////////////////////////////////////////////////////////////////*// int удалить_обьекты(string PreName) //удаляет обьекты начинающиеся на PreName { for(int k=ObjectsTotal()-1; k>=0; k--) { string Obj_Name=ObjectName(k); // Запрашиваем имя объекта string Head=StringSubstr(Obj_Name,0,StringLen(PreName)); // Извлекаем первые симолы if (Head==PreName)// Найден объект, .. { ObjectDelete(Obj_Name); } } return(0); } //*////////////////////////////////////////////////////////////////*// //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
DislikedHello! Find a nice Elliot Wave indicator. Anyone who could translate the coding from Russia to English?Ignored
/ / + ----------------------------------------------- ------------------- + / / | Elliott_Waves.mq4 | / / | Copyright © 2009, whip Vladimr | / / | [email protected] | / / + ----------------------------------------------- ------------------- + # Property copyright "Copyright © 2009, whip Vladimr" # Property link "[email protected]" # Property indicator_chart_window datetime X1, X2; double Y1, Y2, LINE [11] [6]; int STYLE T_LINII, waves, flowers; double High_Win, Low_Win, shift_X, shift_Y; string Name [11] = {"-", "Wave 1", "2 Wave", "Wave 3", "4 Wave", "Wave 5" "A Wave", "b WAVE", "c WAVE", "d WAVE", "e WAVE"}; text string, Obj_Name, INFO; int per; pokazat_vse_periody extern bool = true; extern color C1 = White; extern color C2 = DeepSkyBlue; extern color u3 = Yellow; extern color C4 = Turquoise; TS5 extern color = Magenta; TS6 extern color = Yellow; extern color TS7 = MediumSpringGreen; extern color TS8 = Violet; extern color TS9 = DarkOrchid; / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / int init () { ObjectCreate ("bar", OBJ_LABEL, 0, 0, 0) ;/ / create the volume. ObjectSet ("bar", OBJPROP_XDISTANCE, 500); ObjectSet ("bar", OBJPROP_YDISTANCE, 0); ObjectSet ("bar", OBJPROP_CORNER, 1) / / ugol_vyvoda_orderov per = Period (); Obj_Name = string_per (per); for (int k = 0; k <= 10; k + +) Name [k] = Name [k] + Obj_Name; Comment ("Elliott wave" + Obj_Name + "" + time (CurTime ())); return (0); } / / * / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / * / / int deinit () { ObjectDelete ("bar"); udalit_obekty ("Z"); udalit_obekty ("Name"); udalit_obekty ("Info"); return (0); } / / * / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / * / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / int start () { High_Win = WindowPriceMax (); Low_Win = WindowPriceMin (); shift_X = WindowBarsPerChart (); ObjectSetText ("bar", "bar on the screen" + DoubleToStr (shift_X, 0), 8, "Arial", White); shift_X = shift_X/80 * per; shift_Y = (High_Win-Low_Win) / 50; for (int k = 0; k <= ObjectsTotal (); k + +) { Obj_Name = ObjectName (k); / / Query the name of the object if (Obj_Name == "") continue; WAVE = N_Volny (Obj_Name); if (WAVE> 0 && WAVE <11) { if (Obj_Name! = Name [WAVE]) redraw_LINE (Obj_Name, Name [WAVE]); X1 = ObjectGet (Name [WAVE], OBJPROP_TIME1); Y1 = ObjectGet (Name [WAVE], OBJPROP_PRICE1); X2 = ObjectGet (Name [WAVE], OBJPROP_TIME2); Y2 = ObjectGet (Name [WAVE], OBJPROP_PRICE2); COLOR = ObjectGet (Name [WAVE], OBJPROP_COLOR); STYLE = ObjectGet (Name [WAVE], OBJPROP_STYLE); T_LINII = ObjectGet (Name [WAVE], OBJPROP_WIDTH); if (X1> X2) redraw_LINE (Name [WAVE], Name [WAVE] + "r"); if (Y1 <Y2) LINE [WAVE] [0] = 1; else LINE [WAVE] [0] = -1 ;/ / direction of the wave ObjectDelete ("C" + Name [WAVE]); ObjectDelete ("Purpose" + Name [WAVE]); LINE [WAVE] [1] = X1 ;/ / beginning of wave LINE [WAVE] [2] = Y1; LINE [WAVE] [3] = X2 ;/ / end of wave LINE [WAVE] [4] = Y2; LINE [WAVE] [5] = Obem_Volny (Name [WAVE]); if ((MathAbs (LINE [WAVE] [3]-LINE [Wave 1] [1]) <per * 120) | | (MathAbs (LINE [WAVE] [4]-LINE [Wave 1] [2] ) / Point <= MarketInfo (Symbol (), MODE_STOPLEVEL))) { ObjectSet (Name [WAVE +1], OBJPROP_COLOR, color) / / dock - color selection ObjectSet (Name [WAVE +1], OBJPROP_STYLE, STYLE) ;/ / Style ObjectSet (Name [WAVE +1], OBJPROP_WIDTH, T_LINII); ObjectSet (Name [WAVE +1], OBJPROP_PRICE1, LINE [WAVE] [4]) ;/ / Bind the next wave of the current PRICE1 ObjectSet (Name [WAVE +1], OBJPROP_TIME1, LINE [WAVE] [3]) ;/ / Bind the next wave of the current TIME1 } INFO = "Info" + Name [WAVE] + "arm" + DoubleToStr (MathAbs (LINE [WAVE] [2]-LINE [WAVE] [4]) / Point, 0); if text = "Volume can not be less than a 3-wave" + DoubleToStr (LINE [WAVE] [5], 0); else text = "V =" + DoubleToStr (LINE [WAVE] [5], 0); udalit_obekty ("Info"); ObjectCreate (INFO, OBJ_TEXT, 0, LINE [WAVE] [3], LINE [WAVE] [4] + shift_Y * T_LINII * 3 * LINE [WAVE] [0], 0,0,0,0); ObjectSetText (INFO, text, 8, "Arial"); ObjectSet (INFO, OBJPROP_COLOR, color); ObjectDelete ("Name" + Name [WAVE]); ObjectCreate ("Name" + Name [WAVE], OBJ_TEXT, 0, LINE [WAVE] [3], LINE [WAVE] [4] + shift_Y * T_LINII * 2 * LINE [WAVE] [0] +0.7 * shift_Y, 0 , 0,0,0); if (FRACTAL (LINE [WAVE] [3], Name [WAVE]) == true) { ObjectSetText ("Name" + Name [WAVE], StringSubstr (Name [WAVE], 0.1), 10 * T_LINII, "Arial"); ObjectSet ("Name" + Name [WAVE], OBJPROP_COLOR, color); } else { ObjectSetText ("Name" + Name [WAVE], "there is a fractal", 10, "Arial"); ObjectSet ("Name" + Name [WAVE], OBJPROP_COLOR, Red); } if (LINE [WAVE] [3]! = LINE [Wave 1] [1]) / / if not the next wave { if (LINE [WAVE] [1]! = LINE [WAVE-1] [3]) / / if there is no previous wave { X1 = LINE [WAVE] [3] + (LINE [WAVE] [3]-LINE [WAVE] [1]) * 0.38; X2 = LINE [WAVE] [3] + (LINE [WAVE] [3]-LINE [WAVE] [1]) * 0.62; Y1 = LINE [WAVE] [4] + (LINE [WAVE] [2]-LINE [WAVE] [4]) * 0.38; Y2 = LINE [WAVE] [4] + (LINE [WAVE] [2]-LINE [WAVE] [4]) * 0.62; if (WAVE == 6) / / current wave of a Y1 = LINE [6] [4] + (LINE [6] [2]-LINE [6] [4]) * 0.50; } else / / there before the wave { switch (WAVE) { case 2 :/ / Current Wave 2 X2 = LINE [2] [3] + (LINE [2] [3]-LINE [1] [1]) / 0.38; X1 = LINE [2] [3] + (LINE [2] [3]-LINE [1] [1]) / 0.62; Y1 = LINE [1] [4]-MathAbs (LINE [1] [2]-LINE [1] [4]) * LINE [2] [0] * 1.00; Y2 = LINE [1] [4]-MathAbs (LINE [1] [2]-LINE [1] [4]) * LINE [2] [0] * 1.62; break; case 3 :/ / current Wave 3 X1 = LINE [2] [1] + (LINE [3] [3]-LINE [1] [3]) * 1.38; X2 = LINE [3] [1] + (LINE [3] [3]-LINE [1] [3]) * 1.62; Y1 = LINE [3] [4]-MathAbs (LINE [3] [2]-LINE [3] [4]) * LINE [3] [0] * 0.38; Y2 = LINE [3] [4]-MathAbs (LINE [3] [2]-LINE [3] [4]) * LINE [3] [0] * 0.50; if ((Y2 <LINE[1][4] && LINE[3][0]==1)||(Y2> LINE [1] [4] && LINE [3] [0] == -1)) { ObjectSetText ("Name" + Name [WAVE], "Wave 4 can not be below 1 wave", 8, "Arial"); ObjectSet ("Name" + Name [WAVE], OBJPROP_COLOR, Red); } if (LINE [1] [3]! = LINE [2] [1]) { ObjectSet (Name [WAVE], OBJPROP_COLOR, Red); ObjectSetText ("Name" + Name [WAVE], "No Wave 1", 8, "Arial"); ObjectSet ("Name" + Name [WAVE], OBJPROP_COLOR, Red); } break; case 4 :/ / current Wave 4 X1 = LINE [4] [3] + (LINE [3] [3]-LINE [3] [1]) * 0.38; X2 = LINE [4] [3] + (LINE [3] [3]-LINE [3] [1]) * 0.62; Y1 = LINE [4] [2]-MathAbs (LINE [1] [2]-LINE [3] [4]) * LINE [4] [0] * 0.62; Y2 = LINE [4] [2]-MathAbs (LINE [1] [2]-LINE [3] [4]) * LINE [4] [0] * 1.00; text = "- 4 WAVE <> 1 WAVE -"; ObjectDelete (text); if ((LINE [4] [4] <LINE[1][4] && LINE[4][0]==-1)||(LINE[4][4]> LINE [1] [4] && LINE [4] [0] == 1)) { ObjectSet (Name [WAVE], OBJPROP_COLOR, Red); ObjectSetText ("Name" + Name [WAVE], "Wave 4 can not be below 1 wave", 8, "Arial"); ObjectSet ("Name" + Name [WAVE], OBJPROP_COLOR, Red); ObjectCreate (text, OBJ_TREND, 0, LINE [1] [3], LINE [1] [4], LINE [4] [3], LINE [1] [4]); ObjectSet (text, OBJPROP_COLOR, Red); / / Color ObjectSet (text, OBJPROP_STYLE, STYLE_DASH) ;/ / Style ObjectSet (text, OBJPROP_WIDTH, 0); ObjectSet (text, OBJPROP_BACK, true); ObjectSet (text, OBJPROP_RAY, false); / / Ray } if (LINE [1] [3]! = LINE [2] [1] | | LINE [2] [3]! = LINE [3] [1]) { ObjectSet (Name [WAVE], OBJPROP_COLOR, Red); ObjectSetText ("Name" + Name [WAVE], "No Wave 1 or 2", 8, "Arial"); ObjectSet ("Name" + Name [WAVE], OBJPROP_COLOR, Red); } break; case 5 :/ / current Wave 5 X1 = LINE [5] [3] + (LINE [5] [3]-LINE [5] [1]) * 0.38; X2 = LINE [5] [3] + (LINE [5] [3]-LINE [5] [1]) * 0.62; Y1 = LINE [5] [4]-MathAbs (LINE [5] [2]-LINE [5] [4]) * LINE [5] [0] * 0.38; Y2 = LINE [5] [4]-MathAbs (LINE [5] [2]-LINE [5] [4]) * LINE [5] [0] * 0.62; double MFI_3 = iMACD (NULL, 0,5,34,5, PRICE_CLOSE, MODE_MAIN, iBarShift (NULL, 0, LINE [3] [3], FALSE)); double MFI_5 = iMACD (NULL, 0,5,34,5, PRICE_CLOSE, MODE_MAIN, iBarShift (NULL, 0, LINE [5] [3], FALSE)); if (LINE [1] [3]! = LINE [2] [1] | | LINE [2] [3]! = LINE [3] [1] | | LINE [3] [3]! = LINE [4 ] [1]) { ObjectSet (Name [WAVE], OBJPROP_COLOR, Red); ObjectSetText ("Name" + Name [WAVE], "there are no waves 1,2 or 3", 8, "Arial"); ObjectSet ("Name" + Name [WAVE], OBJPROP_COLOR, Red); } if ((MFI_3 <MFI_5 && LINE [5] [0] == 1) | | (MFI_3> MFI_5 && LINE [5] [0] == -1)) { ObjectDelete ("MFI" + time (LINE [3] [3])); ObjectCreate ("MFI" + time (LINE [3] [3]), OBJ_TEXT, 0, LINE [3] [3], LINE [5] [4] + shift_Y * LINE [5] [0], 0.0 , 0,0); ObjectSetText ("MFI" + time (LINE [3] [3]), DoubleToStr (MFI_3, 0), 8, "Arial"); ObjectSet ("MFI" + time (LINE [3] [3]), OBJPROP_COLOR, color); ObjectDelete ("MFI" + time (LINE [5] [3])); ObjectCreate ("MFI" + time (LINE [5] [3]), OBJ_TEXT, 0, LINE [5] [3], LINE [5] [4] + shift_Y * LINE [5] [0], 0.0 , 0,0); ObjectSetText ("MFI" + time (LINE [5] [3]), DoubleToStr (MFI_5, 0), 8, "Arial"); ObjectSet ("MFI" + time (LINE [5] [3]), OBJPROP_COLOR, color); ObjectSetText ("Name" + Name [WAVE], "There is no divergence of MFI 3 and 5 waves", 8, "Arial"); ObjectSet ("Name" + Name [WAVE], OBJPROP_COLOR, Red); } break; case 6 :/ / current wave of a X1 = LINE [6] [3] + (LINE [6] [3]-LINE [6] [1]) * 0.38; X2 = LINE [6] [3] + (LINE [6] [3]-LINE [6] [1]) * 0.62; Y1 = LINE [6] [4] + (LINE [6] [2]-LINE [6] [4]) * 0.50; Y2 = LINE [6] [4] + (LINE [6] [2]-LINE [6] [4]) * 0.62; break; case 7 :/ / current wave b X2 = LINE [7] [3] + (LINE [7] [3]-LINE [6] [1]) / 0.38; X1 = LINE [7] [3] + (LINE [7] [3]-LINE [6] [1]) / 0.62; Y1 = LINE [6] [4]-MathAbs (LINE [6] [2]-LINE [6] [4]) * LINE [7] [0] * 1.00; Y2 = LINE [6] [4]-MathAbs (LINE [6] [2]-LINE [6] [4]) * LINE [7] [0] * 1.62; break; case 8 :/ / current wave c X1 = LINE [7] [1] + (LINE [8] [3]-LINE [6] [3]) * 1.38; X2 = LINE [7] [1] + (LINE [8] [3]-LINE [6] [3]) * 1.62; Y1 = LINE [8] [4]-MathAbs (LINE [8] [2]-LINE [8] [4]) * LINE [8] [0] * 0.38; Y2 = LINE [8] [4]-MathAbs (LINE [8] [2]-LINE [8] [4]) * LINE [8] [0] * 0.50; if (LINE [6] [3]! = LINE [7] [1]) { ObjectSet (Name [WAVE], OBJPROP_COLOR, Red); ObjectSetText ("Name" + Name [WAVE], "there are no waves a", 8, "Arial"); ObjectSet ("Name" + Name [WAVE], OBJPROP_COLOR, Red); } break; case 9 :/ / current wave d X1 = LINE [9] [3] + (LINE [8] [3]-LINE [8] [1]) * 0.38; X2 = LINE [9] [3] + (LINE [8] [3]-LINE [8] [1]) * 0.62; Y1 = LINE [9] [2]-MathAbs (LINE [6] [2]-LINE [8] [4]) * LINE [9] [0] * 0.62; Y2 = LINE [9] [2]-MathAbs (LINE [6] [2]-LINE [8] [4]) * LINE [9] [0] * 1.00; if (LINE [6] [3]! = LINE [7] [1] | | LINE [7] [3]! = LINE [8] [1]) { ObjectSet (Name [WAVE], OBJPROP_COLOR, Red); ObjectSetText ("Name" + Name [WAVE], "there are no waves or a b", 8, "Arial"); ObjectSet ("Name" + Name [WAVE], OBJPROP_COLOR, Red); } break; case 10 :/ / current wave of e X1 = LINE [10] [3] + (LINE [10] [3]-LINE [10] [1]) * 0.38; X2 = LINE [10] [3] + (LINE [10] [3]-LINE [10] [1]) * 0.62; Y1 = LINE [10] [4]-MathAbs (LINE [10] [2]-LINE [10] [4]) * LINE [10] [0] * 0.38; Y2 = LINE [10] [4]-MathAbs (LINE [10] [2]-LINE [10] [4]) * LINE [10] [0] * 0.62; if (LINE [6] [3]! = LINE [7] [1] | | LINE [7] [3]! = LINE [8] [1] | | LINE [8] [3]! = LINE [9 ] [1]) { ObjectSet (Name [WAVE], OBJPROP_COLOR, Red); ObjectSetText ("Name" + Name [WAVE], "there are no waves a, b or c", 8, "Arial"); ObjectSet ("Name" + Name [WAVE], OBJPROP_COLOR, Red); } break; } / / Switch } ObjectCreate ("C" + Name [WAVE], OBJ_TREND, 0, LINE [WAVE] [3], LINE [WAVE] [4], X1, Y1); ObjectSet ("C" + Name [WAVE], OBJPROP_COLOR, color) / / Color ObjectSet ("C" + Name [WAVE], OBJPROP_STYLE, STYLE_DASH) ;/ / Style ObjectSet ("C" + Name [WAVE], OBJPROP_WIDTH, 0); ObjectSet ("C" + Name [WAVE], OBJPROP_BACK, true); ObjectSet ("C" + Name [WAVE], OBJPROP_RAY, false); / / Ray ObjectCreate ("Purpose" + Name [WAVE], OBJ_RECTANGLE, 0,0,0,0,0); ObjectSet ("Purpose" + Name [WAVE], OBJPROP_STYLE, STYLE_DASH); ObjectSet ("Purpose" + Name [WAVE], OBJPROP_COLOR, color); ObjectSet ("Purpose" + Name [WAVE], OBJPROP_BACK, false); ObjectSet ("Purpose" + Name [WAVE], OBJPROP_TIME1, X1); ObjectSet ("Purpose" + Name [WAVE], OBJPROP_PRICE1, Y1); ObjectSet ("Purpose" + Name [WAVE], OBJPROP_TIME2, X2); ObjectSet ("Purpose" + Name [WAVE], OBJPROP_PRICE2, Y2); } } / / Wave 1 - e } / / For COLOR = color_per (per); for (k = 1; k <= 10; k + +) { ObjectDelete ("Name" + k); if (ObjectFind (Name [k]) == 0) { ObjectCreate ("Name" + k, OBJ_LABEL, 0, 0, 0) ;/ / create the volume. ObjectSetText ("Name" + k, Name [k] + time (LINE [k] [1]) + "" + DoubleToStr (LINE [k] [2], Digits) + "" + time (LINE [k] [ 3]) + "" + DoubleToStr (LINE [k] [4], Digits), 8, "Arial"); ObjectSet ("Name" + k, OBJPROP_CORNER, 3); ObjectSet ("Name" + k, OBJPROP_XDISTANCE, 300); ObjectSet ("Name" + k, OBJPROP_YDISTANCE, 10 +10 * k); ObjectSet ("Name" + k, OBJPROP_COLOR, color) / / Color } else / / clear value remote wave { LINE [k] [0] = 0; LINE [k] [1] = 0; LINE [k] [2] = 0; LINE [k] [3] = 0; LINE [k] [4] = 0; LINE [k] [5] = 0; / / Udalit_obekty ("Name"); / / Udalit_obekty ("MFI"); ObjectDelete ("C" + Name [k]); ObjectDelete ("FRACTAL" + Name [k]); ObjectDelete ("color_MFI" + Name [k] + "1"); ObjectDelete ("color_MFI" + Name [k] + "2"); ObjectDelete ("color_MFI" + Name [k] + "3"); ObjectDelete ("color_MFI" + Name [k] + "4"); ObjectDelete ("color_MFI" + Name [k] + "5"); udalit_obekty ("Info" + Name [k]); ObjectDelete ("Purpose" + Name [k]); ObjectDelete ("Name" + Name [k]); } / / Clear the Deleting wave } return; } / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / void redraw_LINE (string old, string NAME) { datetime x1, x2; double y1, y2; STYLE = ObjectGet (old, OBJPROP_STYLE); COLOR = ObjectGet (old, OBJPROP_COLOR); T_LINII = ObjectGet (old, OBJPROP_WIDTH); / / T LINE x1 = ObjectGet (old, OBJPROP_TIME1); y1 = ObjectGet (old, OBJPROP_PRICE1); x2 = ObjectGet (old, OBJPROP_TIME2); y2 = ObjectGet (old, OBJPROP_PRICE2); if (x1> x2) { x2 = ObjectGet (old, OBJPROP_TIME1); y2 = ObjectGet (old, OBJPROP_PRICE1); x1 = ObjectGet (old, OBJPROP_TIME2); y1 = ObjectGet (old, OBJPROP_PRICE2); } ObjectDelete (NAME) / / remove double ObjectCreate (NAME, OBJ_TREND, 0, x1, y1, x2, y2); ObjectSet (NAME, OBJPROP_COLOR, color) / / Color ObjectSet (NAME, OBJPROP_STYLE, STYLE) / / Style ObjectSet (NAME, OBJPROP_WIDTH, T_LINII) / / T LINE ObjectSet (NAME, OBJPROP_BACK, true); ObjectSet (NAME, OBJPROP_RAY, false); / / Ray ObjectDelete (old); return; } / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / - FRACTAL --------------------------------------------- ---------------------------- bool FRACTAL (datetime t, string NAME) { int i = 0, KOD; TEK_BAR int = iBarShift (NULL, 0, t, FALSE); double fr_DN = iFractals (NULL, 0, MODE_LOWER, TEK_BAR); double fr_UP = iFractals (NULL, 0, MODE_UPPER, TEK_BAR); if (fr_UP == 0 && fr_DN == 0) return (false); ObjectDelete ("fractal" + name); double y, Y, fr; if (ObjectFind (NAME) == 0) { if (fr_DN! = 0) fr = fr_DN; else fr = fr_UP; if (t == ObjectGet (NAME, OBJPROP_TIME2)) ObjectSet (NAME, OBJPROP_PRICE2, fr) ;/ / Bind to the fractal waves if (t == ObjectGet (NAME, OBJPROP_TIME1)) ObjectSet (NAME, OBJPROP_PRICE1, fr) ;/ / Bind to the fractal waves COLOR = ObjectGet (NAME, OBJPROP_COLOR); T_LINII = ObjectGet (NAME, OBJPROP_WIDTH); / / T LINE } else { COLOR = Yellow; T_LINII = 1 / / T LINE } if (fr_DN! = 0) {Y = fr_DN-shift_Y * T_LINII + 0.5 * shift_Y; y = Y + 0.7 * shift_Y; KOD = 218;} if (fr_UP! = 0) {Y = fr_UP + shift_Y * T_LINII + 0.5 * shift_Y; y = Y - 1.2 * shift_Y; KOD = 217;} ObjectCreate ("fractal" + NAME, OBJ_ARROW, 0, t, Y, 0,0,0,0); ObjectSet ("fractal" + NAME, OBJPROP_ARROWCODE, KOD); ObjectSet ("fractal" + NAME, OBJPROP_COLOR, color); for (int k = TEK_BAR-2; k <= TEK_BAR +2; k + +) { i + +; ObjectDelete ("color_MFI" + NAME + i); ObjectCreate ("color_MFI" + NAME + i, OBJ_ARROW, 0, Time [k], y, 0,0,0,0); ObjectSet ("color_MFI" + NAME + i, OBJPROP_ARROWCODE, 117); ObjectSet ("color_MFI" + NAME + i, OBJPROP_WIDTH, 0) / / T LINE ObjectSet ("color_MFI" + NAME + i, OBJPROP_BACK, true); if (iVolume (NULL, 0, k)> iVolume (NULL, 0, k +1) && iBWMFI (NULL, 0, k)> iBWMFI (NULL, 0, k +1)) ObjectSet ("color_MFI" + NAME + i, OBJPROP_COLOR, Lime); / / Green if (iVolume (NULL, 0, k) <iVolume (NULL, 0, k +1) && iBWMFI (NULL, 0, k) <iBWMFI (NULL, 0, k +1)) ObjectSet ("color_MFI" + NAME + i, OBJPROP_COLOR, Brown); / / Fading if (iVolume (NULL, 0, k) <iVolume (NULL, 0, k +1) && iBWMFI (NULL, 0, k)> iBWMFI (NULL, 0, k +1)) ObjectSet ("color_MFI" + NAME + i, OBJPROP_COLOR, Blue); / / False if (iVolume (NULL, 0, k)> iVolume (NULL, 0, k +1) && iBWMFI (NULL, 0, k) <iBWMFI (NULL, 0, k +1)) ObjectSet ("color_MFI" + NAME + i, OBJPROP_COLOR, Pink); / / Squat ObjectSet ("fractal" + NAME, OBJPROP_WIDTH, T_LINII) / / T LINE } return (true); } / / - FRACTAL --------------------------------------------- ---------------------------- / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / string time (int taim) { string sTaim; / / Int YY = TimeYear (taim); / / Year int MN = TimeMonth (taim); / / Month int DD = TimeDay (taim); / / Day int HH = TimeHour (taim); / / Hour int MM = TimeMinute (taim); / / Minute if (DD <10) sTaim = "0" + DoubleToStr (DD, 0); else sTaim = DoubleToStr (DD, 0); sTaim = sTaim + "/"; if (MN <10) sTaim = sTaim + "0" + DoubleToStr (MN, 0); else sTaim = sTaim + DoubleToStr (MN, 0); sTaim = sTaim + ""; if (HH <10) sTaim = sTaim + "0" + DoubleToStr (HH, 0); else sTaim = sTaim + DoubleToStr (HH, 0); if (MM <10) sTaim = sTaim + ": 0" + DoubleToStr (MM, 0); else sTaim = sTaim + ":" + DoubleToStr (MM, 0); return (sTaim); } / / * / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / * / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / N_Volny int (string Obj_Name) { if (ObjectType (Obj_Name)! = 2) return (-1) ;/ / type of object is not a line int V = -1; string volna = StringSubstr (Obj_Name, 0, 2); if (volna == "1") V = 1; if (volna == "2") V = 2; if (volna == "3") V = 3; if (volna == "4") V = 4; if (volna == "5") V = 5; if (volna == "a") V = 6; if (volna == "b") V = 7; if (volna == "c") V = 8; if (volna == "d") V = 9; if (volna == "e") V = 10; if (V <0) return (-1); if (StringFind (Obj_Name, "WAVE", 2), = 2) return (V); / / Only the waves marked "WAVE" if (StringFind (Obj_Name, string_per (per), 8) == 8) / / wave created in this time period { COLOR = color_per (per); ObjectSet (Obj_Name, OBJPROP_COLOR, color); return (V); } return (-1); } / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / color color_per (int per) { switch (per) { case 1: / / 1 minute return (C1); case 5: / / 5 minutes return (C2); case 15: / / 15 minutes return (u3); case 30: / / 30 minutes return (C4); case 60: / / 1:00 return (TS5) case 240: / / 4:00 return (TS6) case 1440: / / 1 day return (TS7); case 10080: / / 1 week return (TS8); case 43200: / / 1 month return (TS9) } return (Gray); } / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / double Obem_Volny (string Name) { double vol = 0; int Nach_BAR, Kon_BAR; int i = 0; Nach_BAR = iBarShift (NULL, 0, ObjectGet (Name, OBJPROP_TIME1), FALSE); Kon_BAR = iBarShift (NULL, 0, ObjectGet (Name, OBJPROP_TIME2), FALSE); for (int n = Kon_BAR; n <= Nach_BAR; n + +) { vol = vol + iVolume (NULL, 0, n); i + +; } vol = vol / i; / / Vol = iVolume (NULL, 0, Nach_BAR); return (vol); } / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / * / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / * / / string_per string (int per) { switch (per) { case 1: return ("M_1"); / / 1 minute break; case 5: return ("M_5"); / / 5 minutes break; case 15: return ("M15"); / / 15 minutes break; case 30: return ("M30"); / / 30 minutes break; case 60: return ("H 1") / / 1:00 break; case 240: return ("H_4"); / / 4:00 break; case 1440: return ("D_1"); / / 1 day break; case 10080: return ("W_1"); / / 1 week break; case 43200: return ("MN1"); / / 1 month break; } return ("run-time error"); } / / * / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / * / / / / * / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / * / / udalit_obekty int (string PreName) / / remove objects starting with PreName { for (int k = ObjectsTotal () -1; k> = 0; k -) { string Obj_Name = ObjectName (k); / / Query the name of the object string Head = StringSubstr (Obj_Name, 0, StringLen (PreName)); / / Retrieve the first Simola if (Head == PreName) / / find the item .. { ObjectDelete (Obj_Name); } } return (0); } / / * / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / * / /
DislikedThis is the result of Google translate.
Looks okay but I did not try to compile it.Ignored