Price Data Components
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
TAACH_Chanels
//+------------------------------------------------------------------+
//| ChanelByFractals.mq4 |
//| Denis Orlov |
//| http://denis-or-love.narod.ru |
//| Ïîñòðîåíèå êàíàëîâ è ôèáî-óðîâíåé ïî ôðàêòàëàì |
//|
//+------------------------------------------------------------------+
#property copyright "Denis Orlov"
#property link "http://denis-or-love.narod.ru"
#property indicator_separate_window
#include <WinUser32.mqh>
#property indicator_level1 0
#property indicator_minimum -25
#property indicator_maximum 15
#property indicator_levelstyle STYLE_DOT
#property indicator_levelcolor Coral
#property show_inputs
//extern string On_Off?="Âûêëþ÷àòåëü:";
//extern bool On_Off=True;
//extern string ChanelMin?="Ìèíèìàëüíàÿ øèðèíà êàíàëà:";
//extern int ChanelMin=0;
//extern string Bar?="Ðàñ÷èòàòü îò êàêîãî áàðà:";
//extern int Bar=0;
//extern string Shift?="Çàïàçäûâàíèå êàíàëîâ:";
//extern
int Shift=0;
//extern string Long?="Äëèííà êàíàëîâ:";
//extern
int Long=3;
//extern string Save_Chanels?="Ñîõðàíèòü ñòàðûõ êàíàëîâ:";
//extern int Save_Chanels=3;
bool ByLowFraclals=True;
string MX;//ñòðîêîâàÿ ìàòðèöà äëÿ ïðîâåðêè ïàíåëè
int PX=100,PYH=0,PYL=15, PYTresh=3, FSize=14;//ïàðàìåòðû ïàíåëè
int EraserX=500, ShowChX=200,
FiboX=310, AddLevelX=370, ShiftX=235, LongX=275, ChanelMinX=275, stepX=15;
int per;
int ChanelN=0;//òåêóùèé êàíàë äëÿ ïåðåíîñà âïåðåä
datetime BH1T, BL1T;
bool Fibo,AddLevel,Fibo_old,AddLevel_old;
bool initDone=False;
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int init()
{
//----
IndicatorShortName("Control Panel");
int Win=WindowFind("Control Panel");
DrawLabels("All", 1, PX, PYH, "All_On", Red,Win, FSize);
DrawLabels("Help", 1, PX-60, PYL, "Help", SaddleBrown,Win, FSize);
DrawLabels("Eraser", 1, PX+EraserX, PYL, "Del", Red,Win, FSize);
for(int i=0;i<=9;i++)
{
if(i==0)
DrawLabels("ShowChanel "+i, 1, PX+ShowChX-i*stepX, PYH, i, Green,Win, FSize);
else
DrawLabels("ShowChanel "+i, 1, PX+ShowChX-i*stepX, PYL, i, Red, Win, FSize);
}
DrawLabels("Shift", 1, PX+ShiftX, PYH, Shift, Blue ,Win, FSize);
//DrawLabels("ChanelMin", 1, PX+ChanelMinX, PYH, ChanelMin, Blue ,Win, FSize);
DrawLabels("Long", 1, PX+LongX, PYH+(Long-1)*3, Long, Blue ,Win, FSize);
DrawLabels("Fibo", 1, PX+FiboX, PYL, "FIBO", Red ,Win, FSize);
DrawLabels("AddLevel", 1, PX+AddLevelX, PYL, "Levels", Red ,Win, FSize);
//Panel();
// AlertHelp();
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
Delete_My_Obj("Chanels_Line");
Delete_My_Obj("On_Off");
Delete_My_Obj("Digit");
return(0);
}
//----
int start()
{
if(initDone==False)
{
init(); initDone=True;
}
//----
Panel();
// if(On_Off!=True) return;
if (per == Time[0]) return; // îäèí ðàç â áàð
per = Time[0];
//----
//for(int i=0; i<=9;i++)
// if(ObjectGet("Digit "+i,OBJPROP_PRICE1)>0)
// {
//DrawChanel(i);
//}
//----
return(0);
}
void Panel()
{
int Win=WindowFind("Control Panel");
if(ObjectGet("Eraser",OBJPROP_YDISTANCE)<=PYTresh)
{
// DrawLabels("Eraser", 1, PX+EraserX, PYTresh, "Del", Green,Win, FSize);
DrawLabels("Eraser", 1, PX+EraserX, PYL, "Del", Red,Win, FSize);
Delete_My_Obj("Chanels_Line");
DrawLabels("All", 1, PX, PYH, "All_On", Red,Win, FSize);
}
int y=ObjectGet("Fibo",OBJPROP_YDISTANCE);
if(y<=PYTresh) {Fibo=True; color clr=Green; y=PYH; }
else {Fibo=False; clr=Red; y=PYL;}
DrawLabels("Fibo", 1, PX+FiboX, y, "FIBO", clr ,Win, FSize);
y=ObjectGet("AddLevel",OBJPROP_YDISTANCE);
if(y<=PYTresh) {AddLevel=True; clr=Green; y=PYH;}
else {AddLevel=False; clr=Red; y=PYL;}
DrawLabels("AddLevel", 1, PX+AddLevelX, y, "Levels", clr ,Win, FSize);
if (Fibo_old!=Fibo || AddLevel_old!=AddLevel)
{
Fibo_old=Fibo; AddLevel_old=AddLevel;
for(int i=0;i<=9;i++)
{
y=ObjectGet("ShowChanel "+i,OBJPROP_YDISTANCE);
if(y<=PYTresh)
DrawAddLines(i);
}
}
//=========All, Help
/* y=ObjectGet("On_Off",OBJPROP_YDISTANCE);
if(y<=PYTresh)
{
On_Off=True; DrawLabels("On_Off", 1, PX+0, PYH, "OFF", Green,Win, FSize);
}
else
{
On_Off=False; DrawLabels("On_Off", 1, PX+0, PYL, "ON", Red,Win, FSize);
}
if(On_Off!=True) return; */
y=ObjectGet("All",OBJPROP_YDISTANCE);
if(y>=PYL)
{
DrawLabels("All", 1, PX, PYL, "All", SaddleBrown,Win, FSize);
}
else
if(y<=PYTresh)
{
DrawLabels("All", 1, PX, PYH, "All_On", Green,Win, FSize);
for( i=0;i<=9;i++)
{
if(i==0)
DrawLabels("ShowChanel "+i, 1, PX+ShowChX-i*stepX, PYH, i, Green,Win, FSize);
else
DrawLabels("ShowChanel "+i, 1, PX+ShowChX-i*stepX, PYL, i, Red, Win, FSize);
}
DrawLabels("All", 1, PX, PYL, "All", SaddleBrown,Win, FSize);
}
else
{
DrawLabels("All", 1, PX, PYL, "All_Off", Red,Win, FSize);
for( i=0;i<=9;i++)
{
if(i!=0)
DrawLabels("ShowChanel "+i, 1, PX+ShowChX-i*stepX, PYH, i, Green,Win, FSize);
else
DrawLabels("ShowChanel "+i, 1, PX+ShowChX-i*stepX, PYL, i, Red, Win, FSize);
}
DrawLabels("All", 1, PX, PYL, "All", SaddleBrown,Win, FSize);
}
if(ObjectGet("Help",OBJPROP_YDISTANCE)<=PYTresh)
{
DrawLabels("Help", 1, PX-60, PYL, "Help", SaddleBrown,Win, FSize);
AlertHelp();
}
//=========All, Help
string mx="";
for(i=0;i<=9;i++)
{
y=ObjectGet("ShowChanel "+i,OBJPROP_YDISTANCE);
if(y<=PYTresh) {mx=mx+"1"; clr=Green; y=PYH;}
else {mx=mx+"0"; clr=Red; y=PYL;}
DrawLabels("ShowChanel "+i, 1, PX+ShowChX-i*stepX, y, i, clr,Win, FSize);
}
Shift=StrToInteger( ObjectDescription("Shift") );
DrawLabels("Shift", 1, PX+ShiftX, PYH, Shift, Blue ,Win, FSize);
//ChanelMin=StrToInteger( ObjectDescription("ChanelMin") );
//DrawLabels("ChanelMin", 1, PX+ChanelMinX, PYH, ChanelMin, Blue ,Win, FSize);
Long=MathRound(ObjectGet("Long",OBJPROP_YDISTANCE)/3)+1;
DrawLabels("Long", 1, PX+LongX, PYH+(Long-1)*3, Long, Blue ,Win, FSize);
mx=mx+Shift+Long;//+ChanelMin;
if(MX!=mx)
{
MX="";
for(i=0;i<=9;i++)
{
y=ObjectGet("ShowChanel "+i,OBJPROP_YDISTANCE);
if(y<=PYTresh)
{
DrawChanel(i);
DrawAddLines(i);
MX=MX+"1";
}
else
{
Delete_My_Obj("Chanels_LineH "+i);
Delete_My_Obj("Chanels_LineL "+i);
MX=MX+"0";
}
}
MX=MX+Shift+Long;//+ChanelMin;
}
/* bool ResFound=False;
for(int i=0;i<=9;i++)
{
int t=12,p=-4;
if(i>4){t=22; p=-14;}
if( ObjectGet("Digit "+i,OBJPROP_PRICE1)>0)
{
color clr=Green; Save_Chanels=i; ResFound=True;
for(int j=i-1;j>=0;j--)
{
t=12;p=-4;
if(j>4){t=22; p=-14;}
DrawArrows("Digit "+j, Time[t-j*2], p, 139+j, Red, Win,
"Çíà÷åíèå äëÿ Save_Chanels");
// break;
}
}
else
{
clr=Red;
}
t=12;
if(i>4)t=22;
DrawArrows("Digit "+i, Time[t-i*2], ObjectGet("Digit "+i,OBJPROP_PRICE1), 139+i, clr, Win,
"Çíà÷åíèå äëÿ Save_Chanels");
}
if(ResFound!=True)
{Save_Chanels=0;
t=12;p=10;
DrawArrows("Digit "+0, Time[t], p, 139, Green, Win,
"Çíà÷åíèå äëÿ Save_Chanels");
for(i=1;i<=9;i++)
{
p=-4;
if(i>4){t=22; p=-14;}
DrawArrows("Digit "+i, Time[t-i*2], p, 139+i, Red, Win,
"Çíà÷åíèå äëÿ Save_Chanels");
}
}*/
}
int FindFractByNumber(int FractN)
{
double Fr=0; // çíà÷åíèå ôðàêòàëîâ
int BarN=1; // íîìåðà áàðîâ,òàê ÷òîáû ïîèñê íà÷àòü ñî 2-ãî(1 è 0 äëÿ ïðîâåðêè ôðàêòàëüíîñòè)
for(int i=0;i<=FractN;i++)//ñ÷åò÷èê ïîèñêà
{
Fr=0;
while(Fr==0) //ïîèñê ñëåä.ôðàêòàëà îò BarN
{
BarN++;//áåðåì ñëåä. áàð
Fr=iFractals(NULL,0,MODE_LOWER,BarN);
if(Fr==0)
Fr=iFractals(NULL,0,MODE_UPPER,BarN);
}
}
return(BarN);
}
int DrawChanel(int FracN)
{
double FH1=0, FH3=0, FL1=0, FL3=0, F13; // íîìåðà ôðàêòàëîâ
int BH1, BH3, BL1, BL3, SR, bar2; //=Bar+2 // íîìåðà áàðîâ
SR=FindFractByNumber(FracN+Shift);//
while(FL3==0 || FH3==0) //ïîèñê ôðàêòàëîâ
{
F13=iFractals(NULL,0,MODE_LOWER,SR);
if (F13!=0)
{
while(iLow(NULL,0,SR)==iLow(NULL,0,SR+1)) SR++;
if (FL1==0){BL1=SR; FL1=F13;}
else if (FL3==0){BL3=SR; FL3=F13;}
}
F13=iFractals(NULL,0,MODE_UPPER,SR);
if (F13!=0)
{
while(iHigh(NULL,0,SR)==iHigh(NULL,0,SR+1)) SR++;
if (FH1==0){BH1=SR; FH1=F13;}
else if (FH3==0){BH3=SR; FH3=F13;}
}
SR++;
}
//if( (High[BH1]-Low[BL1])/Point<ChanelMin ) return;
/*if(BH1T==iTime(NULL,0,BH1) && BL1T==iTime(NULL,0,BL1)) return;
else
{
BH1T=iTime(NULL,0,BH1); BL1T=iTime(NULL,0,BL1);
}
if(Save_Chanels==0)//(Delete_Old_Lines)
Delete_My_Obj("ChanelByFractals");
else
{
ChanelN++;
if(ChanelN>Save_Chanels+1) ChanelN=1;
}*/
string nameH="Chanels_LineH "+FracN,//ChanelN
nameL="Chanels_LineL "+FracN;//ChanelN
Delete_My_Obj(nameH);
Delete_My_Obj(nameL);
if(BL1<BH1) ByLowFraclals=True; else ByLowFraclals=False;
if(ByLowFraclals)
{
datetime t2=iTime(NULL,0,BL1)+(iTime(NULL,0,BL1)-iTime(NULL,0,BL3))*Long;
double p2=iLow(NULL,0,BL1)+(iLow(NULL,0,BL1)-iLow(NULL,0,BL3))*Long;
DrawTrends(nameL, iTime(NULL,0,BL3),iLow(NULL,0,BL3),t2,p2,Green,2,"");
/* ObjectCreate(nameL, OBJ_TREND, 0,0,0,0,0);//ñîçäàíèå òðåíäîâîé ëèíèè
ObjectSet(nameL, OBJPROP_TIME1 ,iTime(NULL,0,BL3));
ObjectSet(nameL, OBJPROP_PRICE1,iLow(NULL,0,BL3));
ObjectSet(nameL, OBJPROP_TIME2 ,t2);
ObjectSet(nameL, OBJPROP_PRICE2,p2);
ObjectSet(nameL, OBJPROP_RAY , false);
ObjectSet(nameL, OBJPROP_COLOR , Green);
ObjectSet(nameL, OBJPROP_WIDTH , 2);*/
// Alert(TrendLToBar(nameL, BH1)+"; "+BH1+"; "+BarOfTrendL(nameL, BH3)+"; "+BH3);
if (iHigh(NULL,0,BH1)>=iHigh(NULL,0,BH3) || iTime(NULL,0,BH3)<iTime(NULL,0,BL3))
bar2=BH1; else bar2=BH3;//(BL3>=BH3 && BH3>=BL1)
datetime t1=iTime(NULL,0,bar2)-(iTime(NULL,0,BL1)-iTime(NULL,0,BL3));
double p1=iHigh(NULL,0,bar2)-(iLow(NULL,0,BL1)-iLow(NULL,0,BL3));
t2=iTime(NULL,0,bar2)+(iTime(NULL,0,BL1)-iTime(NULL,0,BL3))*Long;
p2=iHigh(NULL,0,bar2)+(iLow(NULL,0,BL1)-iLow(NULL,0,BL3))*Long;
DrawTrends(nameH, t1,p1,t2,p2,Red,1,"") ;
/*ObjectCreate(nameH, OBJ_TREND, 0,0,0,0,0);//ñîçäàíèå òðåíäîâîé ëèíèè
ObjectSet(nameH, OBJPROP_TIME1 ,t1);
ObjectSet(nameH, OBJPROP_TIME2 ,t2);
ObjectSet(nameH, OBJPROP_PRICE1,p1);
ObjectSet(nameH, OBJPROP_PRICE2,p2);
ObjectSet(nameH, OBJPROP_RAY , false);
ObjectSet(nameH, OBJPROP_COLOR , Red);*/
}
if(ByLowFraclals!=True)
{
t2=iTime(NULL,0,BH1)+(iTime(NULL,0,BH1)-iTime(NULL,0,BH3))*Long;
p2=iHigh(NULL,0,BH1)+(iHigh(NULL,0,BH1)-iHigh(NULL,0,BH3))*Long;
DrawTrends(nameH,iTime(NULL,0,BH3),iHigh(NULL,0,BH3),t2,p2,Red,2,"");
/*ObjectCreate(nameH, OBJ_TREND, 0,0,0,0,0);//ñîçäàíèå òðåíäîâîé ëèíèè
ObjectSet(nameH, OBJPROP_TIME1 ,iTime(NULL,0,BH3));
ObjectSet(nameH, OBJPROP_PRICE1,iHigh(NULL,0,BH3));
ObjectSet(nameH, OBJPROP_TIME2 ,t2);
ObjectSet(nameH, OBJPROP_PRICE2,p2);
ObjectSet(nameH, OBJPROP_RAY , false);
ObjectSet(nameH, OBJPROP_COLOR , Red);
ObjectSet(nameH, OBJPROP_WIDTH , 2);*/
if (iLow(NULL,0,BL1)<=iLow(NULL,0,BL3) || iTime(NULL,0,BL3)<iTime(NULL,0,BH3))
bar2=BL1; else bar2=BL3;//(BH3>=BL3 && BL3>=BH1)
t1=iTime(NULL,0,bar2)-(iTime(NULL,0,BH1)-iTime(NULL,0,BH3));
p1=iLow(NULL,0,bar2)-(iHigh(NULL,0,BH1)-iHigh(NULL,0,BH3));
t2=iTime(NULL,0,bar2)+(iTime(NULL,0,BH1)-iTime(NULL,0,BH3))*Long;
p2=iLow(NULL,0,bar2)+(iHigh(NULL,0,BH1)-iHigh(NULL,0,BH3))*Long;
DrawTrends(nameL, t1,p1,t2,p2,Green,1,"");
/*ObjectCreate(nameL, OBJ_TREND, 0,0,0,0,0);//ñîçäàíèå òðåíäîâîé ëèíèè
ObjectSet(nameL, OBJPROP_TIME1 ,t1);
ObjectSet(nameL, OBJPROP_TIME2 ,t2);
ObjectSet(nameL, OBJPROP_PRICE1,p1);
ObjectSet(nameL, OBJPROP_PRICE2,p2);
ObjectSet(nameL, OBJPROP_RAY , false);
ObjectSet(nameL, OBJPROP_COLOR , Green);*/
}
}
//+------------------------------------------------------------------+
int DrawAddLines(int ChanelN)
{
string nameH="Chanels_LineH "+ChanelN, nameL="Chanels_LineL "+ChanelN;
if (ObjectFind(nameH)<0) return;
datetime
th1=ObjectGet(nameH, OBJPROP_TIME1),
th2=ObjectGet(nameH, OBJPROP_TIME2),
tl1=ObjectGet(nameL, OBJPROP_TIME1),
tl2=ObjectGet(nameL, OBJPROP_TIME2), tf1,tf2;
double
ph1=ObjectGet(nameH, OBJPROP_PRICE1),
ph2=ObjectGet(nameH, OBJPROP_PRICE2),
pl1=ObjectGet(nameL, OBJPROP_PRICE1),
pl2=ObjectGet(nameL, OBJPROP_PRICE2), pf1,pf2;
int leftbar=TimeToBar(th1);
double ChanelW=TrendLToBar(nameH, leftbar)-TrendLToBar(nameL, leftbar);
bool LowBase=ObjectGet(nameL, OBJPROP_WIDTH)>ObjectGet(nameH, OBJPROP_WIDTH);
Comment(ChanelW);
if(AddLevel)
{
if(LowBase)
{
DrawTrends(nameL+" -90%", tl1,pl1-ChanelW*0.9,tl2,pl2-ChanelW*0.9,Green,1,"");
ObjectSet(nameL+" -90%",OBJPROP_STYLE,2);
DrawTrends(nameL+" -100%", tl1,pl1-ChanelW,tl2,pl2-ChanelW,Green,1,"");
ObjectSet(nameL+" -100%",OBJPROP_STYLE,1);
DrawTrends(nameL+" -10%", tl1,pl1-ChanelW*0.1,tl2,pl2-ChanelW*0.1,Red,1,"");
ObjectSet(nameL+" -10%",OBJPROP_STYLE,2);
}
else
{
DrawTrends(nameH+" +90%", th1,ph1+ChanelW*0.9,th2,ph2+ChanelW*0.9,Red,1,"");
ObjectSet(nameH+" +90%",OBJPROP_STYLE,2);
DrawTrends(nameH+" +100%", th1,ph1+ChanelW,th2,ph2+ChanelW,Red,1,"");
ObjectSet(nameH+" +100%",OBJPROP_STYLE,1);
DrawTrends(nameH+" +10%", th1,ph1+ChanelW*0.1,th2,ph2+ChanelW*0.1,Green,1,"");
ObjectSet(nameH+" +10%",OBJPROP_STYLE,2);
}
DrawTrends(nameH+" -10%", th1,ph1-ChanelW*0.1,th2,ph2-ChanelW*0.1,Red,1,"");
ObjectSet(nameH+" -10%",OBJPROP_STYLE,2);
DrawTrends(nameH+" 50%", th1,ph1-ChanelW*0.5,th2,ph2-ChanelW*0.5,Red,1,"");
ObjectSet(nameH+" 50%",OBJPROP_STYLE,2) ;
DrawTrends(nameL+" +10%", tl1,pl1+ChanelW*0.1,tl2,pl2+ChanelW*0.1,Green,1,"");
ObjectSet(nameL+" +10%",OBJPROP_STYLE,2);
}
else
{
Delete_My_Obj(nameH+" ");
Delete_My_Obj(nameL+" ");
}
if(Fibo)
{
if(LowBase)
{
color clr=Red; //levclr=Red;
string fiboname=nameL+"Fibo";
tf1=tl1; tf2=tl2; pf1=pl1;
//pf2=pl2;
if(pl1<pl2)
//double fiboLev=0.382; else fiboLev=-0.382;
pf2=pl2-((pl2-pl1)/61.8*23.6); else pf2=pl2-((pl1-pl2)/38.2*23.6);
}
else
{
clr=Green; //levclr=Green;
fiboname=nameH+"Fibo";
tf1=th1; tf2=th2; pf1=ph1;
//pf2=ph2;
if(ph1<ph2)
//fiboLev=-0.382; else fiboLev=0.382;
pf2=ph2+((ph2-ph1)/38.2*23.6); else pf2=ph2+((ph1-ph2)/61.8*23.6);
}
DrawTrends(fiboname, tf1,pf1,tf2,pf2,clr,1,"");
/* ObjectCreate(fiboname,OBJ_FIBOFAN,0,tf1,pf1,tf2,pf2);
ObjectSet(fiboname,OBJPROP_STYLE,0);
ObjectSet(fiboname,OBJPROP_COLOR, clr);
ObjectSet(fiboname,OBJPROP_LEVELCOLOR, levclr);
ObjectSet(fiboname,OBJPROP_FIBOLEVELS,1);
ObjectSet(fiboname,OBJPROP_FIRSTLEVEL+0,fiboLev);*/
}
else
{
Delete_My_Obj(nameH+"Fibo");
Delete_My_Obj(nameL+"Fibo");
}
}
//---------------
//--------------
int DrawLabels(string name, int corn, int X, int Y, string Text, color Clr=Green, int Win=0, int FSize=10)
{
int Error=ObjectFind(name);// Çàïðîñ
if (Error!=Win)// Åñëè îáúåêòà â óê. îêíå íåò :(
{
ObjectCreate(name,OBJ_LABEL,Win, 0,0); // Ñîçäàíèå îáúåêòà
}
ObjectSet(name, OBJPROP_CORNER, corn); // Ïðèâÿçêà ê óãëó
ObjectSet(name, OBJPROP_XDISTANCE, X); // Êîîðäèíàòà Õ
ObjectSet(name,OBJPROP_YDISTANCE,Y);// Êîîðäèíàòà Y
ObjectSetText(name,Text,FSize,"Arial",Clr);
}
//---------------
//-------------------------------------
int DrawTrends(string name, datetime T1, double P1, datetime T2, double P2, color Clr, int W=1, string Text="", bool ray=false, int Win=0)
{
int Error=ObjectFind(name);// Çàïðîñ
if (Error!=Win)// Åñëè îáúåêòà â óê. îêíå íåò :(
{
ObjectCreate(name, OBJ_TREND, Win,T1,P1,T2,P2);//ñîçäàíèå òðåíäîâîé ëèíèè
}
ObjectSet(name, OBJPROP_TIME1 ,T1);
ObjectSet(name, OBJPROP_PRICE1,P1);
ObjectSet(name, OBJPROP_TIME2 ,T2);
ObjectSet(name, OBJPROP_PRICE2,P2);
ObjectSet(name, OBJPROP_RAY , ray);
ObjectSet(name, OBJPROP_COLOR , Clr);
ObjectSet(name, OBJPROP_WIDTH , W);
ObjectSetText(name,Text);
// WindowRedraw();
}
//-------------------------------------
void Delete_My_Obj(string Prefix)
{//Alert(ObjectsTotal());
for(int k=ObjectsTotal()-1; k>=0; k--) // Ïî êîëè÷åñòâó âñåõ îáúåêòîâ
{
string Obj_Name=ObjectName(k); // Çàïðàøèâàåì èìÿ îáúåêòà
string Head=StringSubstr(Obj_Name,0,StringLen(Prefix));// Èçâëåêàåì ïåðâûå ñèì
if (Head==Prefix)// Íàéäåí îáúåêò, ..
{
ObjectDelete(Obj_Name);
//Alert(Head+";"+Prefix);
}
}
}
//-------------------------------------
//-------------------------------------
double TrendLToBar(string name, int BarN)
{
datetime T1=ObjectGet(name,OBJPROP_TIME1), T2=ObjectGet(name,OBJPROP_TIME2);
double P1=ObjectGet(name,OBJPROP_PRICE1), P2=ObjectGet(name,OBJPROP_PRICE2);
double Step=(P2-P1)/(T2-T1),
Res=P1+((Time[BarN]-T1)*Step);
return(Res);
}
int TimeToBar(datetime T)
{
int i=0;
while(Time[i]>=T) i++;
if(T-Time[i]<Time[i-1]-T)
return(i); else return(i-1);
}
//-------------------------------------
//-------------------------------------
void AlertHelp()
{
string text=
"*****"+"ÑÏÐÀÂÊÀ ÏÎ ÈÍÄÈÊÀÒÎÐÓ TAACH_CHANELS."+"*****\n"+
"\t"+"Àâòîð :"+"\t"+"Äåíèñ Îðëîâ"+"\n"+
"\t"+"http://denis-or-love.narod.ru"+"\n"+
"\t"+"http://vkontakte.ru/club3368806"+"\n"+"\n"+
"\t"+"ÎÏÈÑÀÍÈÅ."+"\n"+
"Ïîñòðîåíèå êàíàëîâ è ôèáî-óðîâíåé ïî ôðàêòàëàì ïî ìåòîäó \"ÒÀÀ×\" Ñ.×óâàøîâà."+"\n"+"\n"+
"Âñå ôóíêöèè êðîìå Shift óïðàâëÿþòñÿ âûäåëåíèåì(äâîéíûì ùåë÷êîì)"+"\n"+
"è ñäâèãàíèåì ââåðõ-âíèç ïî Control Panel."+"\n"+"\n"+
"Del :"+"\t"+"Î÷èñòèòü ãðàôèê îò îáúåêòîâ èíäèêàòîðà"+"\n"+
"Levels:"+"\t"+"Íàðèñîâàòü/Ñòåðåòü äîáàâî÷íûå óðîâíè êàíàëîâ."+"\n"+
"FIBO :"+"\t"+"Íàðèñîâàòü/Ñòåðåòü ôèáî-óðîâåíü îò ðàáî÷åé ëèíèè êàíàëà."+"\n"+
"Long :"+"\t"+"Èçìåíèòü äëèííó ëèíèé êàíàëîâ."+"\n"+
"Shift :"+"\t"+"Ñäâèã êàíàëîâ ïî ôðàêòàëàì âëåâî."+"\n"+
"\t"+"(óïðàâëÿåòñÿ ÷åðåç ñâîéñòâî îáúåêòà \"Òåêñò\")"+"\n"+
"0-9 :"+"\t"+"Íàðèñîâàòü/Ñòåðåòü óêàçàííûé êàíàë."+"\n"+
"All :"+"\t"+"Íàðèñîâàòü/Ñòåðåòü ÂÑÅ êàíàëû êðîìå ïåðâîãî."+"\n"+
"\t"+"(íàâåðõ ÍÅ äî óïîðà/íàâåðõ äî óïîðà)"+"\n"+"\n"+
"\t"+"*****\n"+
"\t"+"ÏÎËÜÇÓÉÒÅÑÜ È ÏÐÎÖÂÅÒÀÉÒÅ!"+"\n"+"\n"+
"\t"+"Âñå ìîè èíäèêàòîðû :"+"\n"+
"\t"+"http://codebase.mql4.com/ru/author/denis_orlov";
//MessageBox(text, "ÑÏÐÀÂÊÀ ÏÎ ÈÍÄÈÊÀÒÎÐÓ",MB_OK|MB_ICONINFORMATION );
Alert(text);
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---