//+------------------------------------------------------------------+ //| sPerehodniyProcess.mq4 | //| * | //| * | //+------------------------------------------------------------------+ #property copyright "Integer" #property link "http://www.mql4.com/ru/users/Integer" //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start(){ datetime Time1=0; datetime Time2; double Price1; double Price2; while(!IsStopped()){ if(ObjectFind("B")!=0){ if(Time1==0){ fObjTrendLine("B",Time[30],Close[30],Time[10],Close[10],false,Red,1,0,0,false); } else{ fObjTrendLine("B",Time1,Price1,Time2,Price2,false,Red,1,0,0,false); } } Time1=ObjectGet("B",OBJPROP_TIME1); Time2=ObjectGet("B",OBJPROP_TIME2); Price1=ObjectGet("B",OBJPROP_PRICE1); Price2=ObjectGet("B",OBJPROP_PRICE2); int shift1=fMyBarShift(Time1); int shift2=fMyBarShift(Time2); double D0=Price2-Price1; double Tay=shift1-shift2; if(Tay==0){ Sleep(1); continue; } for(int i=0;i<1000;i++){ double v1=Price1+1.618*D0*(1.0-MathExp(-1.0*i/Tay)); double v2=Price1+1.0*D0*(1.0-MathExp(-1.0*i/Tay)); double v3=Price1+2.0*D0*(1.0-MathExp(-1.0*i/Tay)); fObjTrendLine("L1("+i+")",fMyTime(shift1-i),v1,fMyTime(shift1-i),v1,false,Yellow,3,0,0,false); fObjTrendLine("L2("+i+")",fMyTime(shift1-i),v2,fMyTime(shift1-i),v2,false,Yellow,3,0,0,false); fObjTrendLine("L3("+i+")",fMyTime(shift1-i),v3,fMyTime(shift1-i),v3,false,Yellow,3,0,0,false); } WindowRedraw(); Sleep(1); } ObjectDelete("B"); for(i=0;i<1000;i++){ ObjectDelete("L1("+i+")"); ObjectDelete("L2("+i+")"); ObjectDelete("L3("+i+")"); } WindowRedraw(); return(0); } int fMyTime(int aShift){ if(aShift<0){ return(Time[0]+Period()*60*MathAbs(aShift)); } return(Time[aShift]); } int fMyBarShift(datetime aTime){ if(aTime>Time[0]){ return((Time[0]-aTime)/(Period()*60)); } else{ return(iBarShift(NULL,0,aTime,false)); } } void fObjTrendLine( string aObjectName, // 1 имя datetime aTime_1, // 2 время 1 double aPrice_1, // 3 цена 1 datetime aTime_2, // 4 время 2 double aPrice_2, // 5 цена 2 bool aRay=false, // 6 луч color aColor=Red, // 7 цвет int aWidth=1, // 8 толщина int aWindowNumber=0, // 9 окно int aStyle=0, // 10 0-STYLE_SOLID, 1-STYLE_DASH, 2-STYLE_DOT, 3-STYLE_DASHDOT, 4-STYLE_DASHDOTDOT bool aBack=false // 11 фон ){ if(ObjectFind(aObjectName)!=aWindowNumber){ ObjectCreate(aObjectName,OBJ_TREND,aWindowNumber,aTime_1,aPrice_1,aTime_2,aPrice_2); } ObjectSet(aObjectName,OBJPROP_TIME1,aTime_1); ObjectSet(aObjectName,OBJPROP_PRICE1,aPrice_1); ObjectSet(aObjectName,OBJPROP_TIME2,aTime_2); ObjectSet(aObjectName,OBJPROP_PRICE2,aPrice_2); ObjectSet(aObjectName,OBJPROP_RAY,aRay); ObjectSet(aObjectName,OBJPROP_COLOR,aColor); ObjectSet(aObjectName,OBJPROP_WIDTH,aWidth); ObjectSet(aObjectName,OBJPROP_BACK,aBack); ObjectSet(aObjectName,OBJPROP_STYLE,aStyle); }