Price Data Components
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
mv-i-TAACH_2_0
//+---------------------------------------------------------------------------+
//| mv-i-TAACH_2_0.mq4 |
//| Ìàêñèì Âàñèëåíêî Â. MaxV42 |
//| http:// |
//| Èíäèêàòîð ðàáîòàåò ïî ñòðàòåãèè "ÒÀÀ×". |
//+---------------------------------------------------------------------------+
//| Âåðñèÿ 2.0 îò 27.12.2009 |
//| Äîáàâëåíî: |
//| - ïîñòðîåíèå êàíàëîâ ïî ìåòîäó ÒÀÀ×. |
//+---------------------------------------------------------------------------+
//| Âåðñèÿ 1.0 îò 20.12.2009 |
//+---------------------------------------------------------------------------+
#property copyright "Ìàêñèì Âàñèëåíêî Â. MaxV42"
#property link "http://"
//+---------------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_width1 1
#property indicator_width2 1
#property indicator_color3 Blue
#property indicator_color4 Red
#property indicator_width3 1
#property indicator_width4 1
//+---------------------------------------------------------------------------+
extern string Ind_Coment1="--- Ïàðàìåòðû ìëàäøåãî òàéìôðåéìà ---";
extern bool ShowFractals_LowerTF = false; // Âêë/âûêë çíà÷êîâ ôðàêòàëîâ
extern bool OnAlert_Pitchfork_LowerTF = false; // Âêë/âûêë ñèãíàëà ïðè âûÿâëåíèè íîâîãî êàíàëà
extern int nPitchfork_Upper_LowerTF = 2; // Êîëè÷åñòâî âûâîäèìûõ âîñõîäÿùèõ "Âèë Ýíäðþñà"
extern int nPitchfork_Lower_LowerTF = 2; // Êîëè÷åñòâî âûâîäèìûõ íèñõîäÿùèõ "Âèë Ýíäðþñà"
extern bool ShowPitchfork_LowerTF = false; // Âêë/âûêë "Âèë Ýíäðþñà" ìëàäøåãî òàéìôðåéìà
extern string Ind_Coment2="--- Ïàðàìåòðû ñòàðøåãî òàéìôðåéìà ---";
extern int TF_Upper = 240; // Ñòàðøèé òàéìôðåéì
extern bool ShowFractals_UpperTF = false; // Âêë/âûêë çíà÷êîâ ôðàêòàëîâ
extern bool OnAlert_Pitchfork_UpperTF = false; // Âêë/âûêë ñèãíàëà ïðè âûÿâëåíèè íîâîãî êàíàëà
extern int nPitchfork_Upper_UpperTF = 1; // Êîëè÷åñòâî âûâîäèìûõ âîñõîäÿùèõ "Âèë Ýíäðþñà"
extern int nPitchfork_Lower_UpperTF = 1; // Êîëè÷åñòâî âûâîäèìûõ íèñõîäÿùèõ "Âèë Ýíäðþñà"
extern bool ShowPitchfork_UpperTF = false; // Âêë/âûêë "Âèë Ýíäðþñà" ñòàðøåãî òàéìôðåéìà
//+---------------------------------------------------------------------------+
// ãëîáàëüíûå ïåðåìåííûå
int nBars_LowerTF = 0, // êîë-âî áàðîâ ìëàäøåãî òàôìôðåéìà
nBars_UpperTF = 0; // êîë-âî áàðîâ ñòàðøåãî òàôìôðåéìà
int QntPitchfork_Upper_LowerTF= 0; // Êîëè÷åñòâî óæå îòðèñîâàííûõ âîñõîäÿùèõ "Âèë Ýíäðþñà"
int QntPitchfork_Lower_LowerTF= 0; // Êîëè÷åñòâî óæå îòðèñîâàííûõ íèñõîäÿùèõ "Âèë Ýíäðþñà"
int QntPitchfork_Upper_UpperTF= 0; // Êîëè÷åñòâî óæå îòðèñîâàííûõ âîñõîäÿùèõ "Âèë Ýíäðþñà"
int QntPitchfork_Lower_UpperTF= 0; // Êîëè÷åñòâî óæå îòðèñîâàííûõ íèñõîäÿùèõ "Âèë Ýíäðþñà"
//+---------------------------------------------------------------------------+
extern string Ind_Coment3="--- Ïàðàìåòðû îòîáðàæåíèÿ êàíàëîâ ---";
extern bool ShowChannels = true; // Âêë/âûêë àëãîðèòìà ðàñ÷åòà êàíàëîâ
extern bool ShowChannels_LowerTF = true; // Âêë/âûêë êàíàëîâ ìëàäøåãî òàéìôðåéìà
extern bool ShowChannels_UpperTF = true; // Âêë/âûêë êàíàëîâ ñòàðøåãî òàéìôðåéìà
extern int nChannels_LowerTF = 2; // êîë-âî êàíàëîâ ìëàäøåãî òàôìôðåéìà
extern int nChannels_UpperTF = 1; // êîë-âî êàíàëîâ ñòàðøåãî òàôìôðåéìà
extern color Channels_Color0 = DodgerBlue; // Öâåò 0 êàíàëà
extern color Channels_Color1 = Green; // Öâåò 1 êàíàëà
extern color Channels_Color2 = Magenta; // Öâåò 2 êàíàëà
extern color Channels_Color3 = Peru; // Öâåò 3 êàíàëà
extern color Channels_Color4 = Black; // Öâåò îñòàëüíûõ êàíàëîâ
//+---------------------------------------------------------------------------+
// ãëîáàëüíûå ïåðåìåííûå
int QntChannels_LowerTF = 0, // êîë-âî óæå îòðèñîâàííûõ êàíàëîâ ìëàäøåãî òàôìôðåéìà
QntChannels_UpperTF = 0; // êîë-âî óæå îòðèñîâàííûõ êàíàëîâ ñòàðøåãî òàôìôðåéìà
string mChannels_LowerTF[][8]; // ìàññèâ ñ ïàðàìåòðàìè êàíàëîâ ìëàäøåãî òàôìôðåéìà
// mChannels_LowerTF[i][0] // 0-âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
// 1-íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
// 2-âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
// 3-íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
// mChannels_LowerTF[i][1] // âðåìÿ ïåðâîé îïîðíîé òî÷êè
// mChannels_LowerTF[i][2] // öåíà ïåðâîé îïîðíîé òî÷êè
// mChannels_LowerTF[i][3] // âðåìÿ âòîðîé îïîðíîé òî÷êè
// mChannels_LowerTF[i][4] // öåíà âòîðîé îïîðíîé òî÷êè
// mChannels_LowerTF[i][5] // âðåìÿ òðåòüåé îïîðíîé òî÷êè
// mChannels_LowerTF[i][6] // öåíà òðåòüåé îïîðíîé òî÷êè
// mChannels_LowerTF[i][7] // øèðèíà êàíàëà
string mChannels_UpperTF[][8]; // ìàññèâ ñ ïàðàìåòðàìè êàíàëîâ ñòàðøåãî òàôìôðåéìà
// mChannels_UpperTF[i][0] // 0-âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
// 1-íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
// 2-âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
// 3-íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
// mChannels_UpperTF[i][1] // âðåìÿ ïåðâîé îïîðíîé òî÷êè
// mChannels_UpperTF[i][2] // öåíà ïåðâîé îïîðíîé òî÷êè
// mChannels_UpperTF[i][3] // âðåìÿ âòîðîé îïîðíîé òî÷êè
// mChannels_UpperTF[i][4] // öåíà âòîðîé îïîðíîé òî÷êè
// mChannels_UpperTF[i][5] // âðåìÿ òðåòüåé îïîðíîé òî÷êè
// mChannels_UpperTF[i][6] // öåíà òðåòüåé îïîðíîé òî÷êè
// mChannels_UpperTF[i][7] // øèðèíà êàíàëà
//----- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
//+---------------------------------------------------------------------------+
void init()
{ // Custom indicator initialization function
int Qnt=ObjectsTotal();
// ----- Indicators Properties
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,119);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexEmptyValue(0,0.0);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,119);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexEmptyValue(1,0.0);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,117);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexEmptyValue(2,0.0);
SetIndexStyle(3,DRAW_ARROW);
SetIndexArrow(3,117);
SetIndexBuffer(3,ExtMapBuffer4);
SetIndexEmptyValue(3,0.0);
// ----- Name for DataWindow and indicator subwindow label
IndicatorShortName("mv-i-TAACH_2_0");
SetIndexLabel(0,"FractalsUp_LowerTF");
SetIndexLabel(1,"FractalsDown_LowerTF");
SetIndexLabel(2,"FractalsUp_UpperTF");
SetIndexLabel(3,"FractalsDown_UpperTF");
// ----- óñòàíàâëèâàåì êîëè÷åñòâî ýëåìåíòîâ â ìàññèâàõ êàíàëîâ
ArrayResize(mChannels_LowerTF,nChannels_LowerTF); ArrayResize(mChannels_UpperTF,nChannels_UpperTF);
return;
}
//+---------------------------------------------------------------------------+
void deinit()
{ // Custom indicator deinitialization function
int Qnt=ObjectsTotal();
// ----- Óäàëÿåì òðåíäîâûå ëèíèè
for(int i=0; i<Qnt; i++)
{ // Öèêë ïî îáúåêòàì
if(StringFind(ObjectName(i),"Pitchfork_Upper",0)>=0)
{
ObjectDelete(ObjectName(i)); // íàïðàâëåííûå ââåðõ
i--; continue;
}
if(StringFind(ObjectName(i),"Pitchfork_Lower",0)>=0)
{
ObjectDelete(ObjectName(i)); // íàïðàâëåííûå âíèç
i--; continue;
}
if(StringFind(ObjectName(i),"Channel",0)>=0)
{
ObjectDelete(ObjectName(i)); // óäàëÿì êàíàëû
i--; continue;
}
if(i>=ObjectsTotal()) break;
}
return;
}
//+---------------------------------------------------------------------------+
void start()
{ // Custom indicator iteration function
int counted_bars=IndicatorCounted();
int limit;
int Spred=(int)MarketInfo(Symbol(),MODE_SPREAD);
double Fractals_Upper=0,Fractals_Lower=0;
// ----- Ïðîâåðêà âíåøíèõ ïàðàìåòðîâ èíäèêàòîðà
if(!CheckParameters()) return;
// ----- íîâûé áàð íå ïîÿâèëñÿ
if(!isNewBar_LowerTF()) return;
// ----- Ïîñëåäíèé ïîñ÷èòàííûé áàð áóäåò ïåðåñ÷èòàí
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars; if(limit>500) limit=500;
// ----- Îñíîâíîé öèêë
for(int i=limit; i>=0; i--)
{
//--------------------------------------------------------- 1 --
Fractals_Upper=iFractals(NULL,0,MODE_UPPER,i);
Fractals_Lower=iFractals(NULL,0,MODE_LOWER,i);
// ----- áëîê âåðõíèõ ôðàêòàëîâ ìëàäøåãî òàéìôðåéìà
if(Fractals_Upper>0)
{
// ----- ðàáîòàåì ïî ñòðàòåãèè "Âèëû Ýíäðþñà"
if(!ShowChannels)
{
// ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè íèñõîäÿùèõ "Âèë Ýíäðþñà"
if(ShowPitchfork_LowerTF)
{
if(DrawLowerPitchfork(i,0))
{
// ----- çäåñü àëåðò
if(OnAlert_Pitchfork_LowerTF && i==0)
{
Alert(Symbol(),Period()," Íèñõîäÿùèå Âèëû Ýíäðþñà! ",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
}
}
}
}
// ----- ðàáîòàåì ïî ñòðàòåãèè "Êàíàëû"
if(ShowChannels)
{
// ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè "Êàíàëîâ"
if(ShowChannels_LowerTF)
{
CheckUpperPoints(i,0);
}
}
// ----- îòîáðàæàåì âðàêòàëû ìëàäøåãî òàéìôðåéìà
if(ShowFractals_LowerTF)
{
ExtMapBuffer1[i]=Fractals_Upper+Spred*Point;
}
}
// ----- áëîê íèæíèõ ôðàêòàëîâ ìëàäøåãî òàéìôðåéìà
if(Fractals_Lower>0)
{
// ----- ðàáîòàåì ïî ñòðàòåãèè "Âèëû Ýíäðþñà"
if(!ShowChannels)
{
// ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè âîñõîäÿùèõ "Âèë Ýíäðþñà"
if(ShowPitchfork_LowerTF)
{
if(DrawUpperPitchfork(i,0))
{
// ----- çäåñü àëåðò
if(OnAlert_Pitchfork_LowerTF && i==0)
{
Alert(Symbol(),Period()," Âîñõîäÿùèå Âèëû Ýíäðþñà! ",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
}
}
}
}
// ----- ðàáîòàåì ïî ñòðàòåãèè "Êàíàëû"
if(ShowChannels)
{
// ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè "Êàíàëîâ"
if(ShowChannels_LowerTF)
{
CheckLowerPoints(i,0);
}
}
// ----- îòîáðàæàåì âðàêòàëû ìëàäøåãî òàéìôðåéìà
if(ShowFractals_LowerTF)
{
ExtMapBuffer2[i]=Fractals_Lower-Spred*Point;
}
}
//--------------------------------------------------------- 2 --
Fractals_Upper=0;Fractals_Lower=0;
//--------------------------------------------------------- 3 --
// ----- ïîÿâèëñÿ íîâûé áàð ñòàðøåãî òàéìôðåéìà
if(isNewBar_UpperTF(Time[i]))
{
Fractals_Upper=iFractals(NULL,TF_Upper,MODE_UPPER,nBars_UpperTF);
Fractals_Lower=iFractals(NULL,TF_Upper,MODE_LOWER,nBars_UpperTF);
// ----- áëîê âåðõíèõ ôðàêòàëîâ ñòàðøåãî òàéìôðåéìà
if(Fractals_Upper>0)
{
// ----- ðàáîòàåì ïî ñòðàòåãèè "Âèëû Ýíäðþñà"
if(!ShowChannels)
{
// ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè íèñõîäÿùèõ "Âèë Ýíäðþñà"
if(ShowPitchfork_UpperTF)
{
if(DrawLowerPitchfork(nBars_UpperTF,TF_Upper))
{
// ----- çäåñü àëåðò
if(OnAlert_Pitchfork_UpperTF && nBars_UpperTF==0)
{
Alert(Symbol(),Period()," Íèñõîäÿùèå Âèëû Ýíäðþñà! ",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
}
}
}
}
// ----- ðàáîòàåì ïî ñòðàòåãèè "Êàíàëû"
if(ShowChannels)
{
// ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè "Êàíàëîâ"
if(ShowChannels_UpperTF)
{
CheckUpperPoints(nBars_UpperTF,TF_Upper);
}
}
// ----- îòîáðàæàåì âðàêòàëû ñòàðøåãî òàéìôðåéìà
if(ShowFractals_UpperTF)
{
ExtMapBuffer3[iBarShift(NULL,0,iTime(NULL,TF_Upper,nBars_UpperTF),false)]=Fractals_Upper+Spred*Point;
}
}
// ----- áëîê íèæíèõ ôðàêòàëîâ ñòàðøåãî òàéìôðåéìà
if(Fractals_Lower>0)
{
// ----- ðàáîòàåì ïî ñòðàòåãèè "Âèëû Ýíäðþñà"
if(!ShowChannels)
{
// ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè âîñõîäÿùèõ "Âèë Ýíäðþñà"
if(ShowPitchfork_UpperTF)
{
if(DrawUpperPitchfork(nBars_UpperTF,TF_Upper))
{
// ----- çäåñü àëåðò
if(OnAlert_Pitchfork_UpperTF && nBars_UpperTF==0)
{
Alert(Symbol(),Period()," Âîñõîäÿùèå Âèëû Ýíäðþñà! ",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
}
}
}
}
// ----- ðàáîòàåì ïî ñòðàòåãèè "Êàíàëû"
if(ShowChannels)
{
// ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè "Êàíàëîâ"
if(ShowChannels_UpperTF)
{
CheckLowerPoints(nBars_UpperTF,TF_Upper);
}
}
// ----- îòîáðàæàåì âðàêòàëû ñòàðøåãî òàéìôðåéìà
if(ShowFractals_UpperTF)
{
ExtMapBuffer4[iBarShift(NULL,0,iTime(NULL,TF_Upper,nBars_UpperTF),false)]=Fractals_Lower-Spred*Point;
}
}
}
}
return;
}
//+---------------------------------------------------------------------------+
bool isNewBar_LowerTF()
{ // Ôóíêöèÿ âîçâðàùàåò true, åñëè ïîÿâèòüñÿ íîâûé áàð íà ìëàäøåì òéàìôðåéìå
if(nBars_LowerTF!=Bars)
{
nBars_LowerTF=Bars; return(true);
}
return(false);
}
//+---------------------------------------------------------------------------+
bool isNewBar_UpperTF(datetime DateTime_)
{ // Ôóíêöèÿ âîçâðàùàåò true, åñëè ïîÿâèòüñÿ íîâûé áàð íà ñòàðøåì òéàìôðåéìå
if(nBars_UpperTF!=iBarShift(NULL,TF_Upper,DateTime_,false))
{
nBars_UpperTF=iBarShift(NULL,TF_Upper,DateTime_,false); return(true);
}
return(false);
}
//+---------------------------------------------------------------------------+
bool CheckParameters()
{ // Ôóíêöèÿ ïðîâåðêè âíåøíèõ ïàðàìåòðîâ èíäèêàòîðà
string TextMessage;
if(nPitchfork_Upper_LowerTF<1 || nPitchfork_Lower_LowerTF<1 ||
nPitchfork_Upper_UpperTF<1 || nPitchfork_Lower_UpperTF<1)
{
TextMessage="Íåâåðíûå çíà÷åíèÿ âíåøíèõ ïàðàìåòðîâ èíäèêàòîðà!"+
"Êîëè÷åñòâî âèë íå ìîãåò áûòü <(ìåíüøå) 1";
Alert(TextMessage);
return(false);
}
if(TF_Upper<=Period())
{
TextMessage="Íåâåðíûå çíà÷åíèÿ âíåøíèõ ïàðàìåòðîâ èíäèêàòîðà!"+
"Çíà÷åíèå ñòàðøåãî òàéìôðåéìà äîëæíî áûòü >(áîëüøå) òåêóùåãî!";
Alert(TextMessage);
return(false);
}
return(true);
}
//+-------------------------------------------------------------------------------------------------------------------------+
//+-------------------------------------------------------------------------------------------------------------------------+
//+------------------------------------------ ÔÓÍÊÖÈÈ ÎÒÐÈÑÎÂÊÈ ÂÈË ÝÍÄÐÞÑÀ ------------------------------------------------+
//+-------------------------------------------------------------------------------------------------------------------------+
//+-------------------------------------------------------------------------------------------------------------------------+
//+---------------------------------------------------------------------------+
bool DrawUpperPitchfork(int nBar,int TF=0)
{ // Ôóíêöèÿ îïðåäåëÿåò è ðèñóåò âîñõîäÿùèå "Âèëû Ýíäðþñà"
double Fractals_Upper=0,Fractals_Lower=0;
string mFractals[3][3];
int i,j=0;
//--------------------------------------------------------- I --
// ----- îïðåäåëÿåì îïîðíûå òî÷êè
for(i=nBar; i<Bars; i++)
{ // Öèêë ïî áàðàì
Fractals_Upper=iFractals(NULL,TF,MODE_UPPER,i);
Fractals_Lower=iFractals(NULL,TF,MODE_LOWER,i);
// ----- ÂÀÆÍÎ! íà÷èíàåì ïðîâåðêó ñ íèæíåãî ôðàêòàëà
if(j<3 && Fractals_Lower>0)
{
mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
mFractals[j][1]=DoubleToStr(Fractals_Lower,Digits);
mFractals[j][2]=(string)-1;
j++;
}
if(j<3 && Fractals_Upper>0)
{
mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
mFractals[j][1]=DoubleToStr(Fractals_Upper,Digits);
mFractals[j][2]=(string)1;
j++;
}
if(j>3) break;
}
//-------------------------------------------------------- II --
// ------ ïðîâåðÿåì ïîñëåäîâòåëüíîñòü îïîðíûõ òî÷åê: MODE_LOWER->MODE_UPPER->MODE_LOWER
if(StrToDouble(mFractals[0][2])==-1 && StrToDouble(mFractals[1][2])==1 && StrToDouble(mFractals[2][2])==-1)
{
//--------------------------------------------------------- 1 --
// ----- ìëàäøèé òàéìôðåéì
if(TF==0)
{
if(QntPitchfork_Upper_LowerTF<nPitchfork_Upper_LowerTF)
{ // êîë-âî âèë íå ïðåâûøåíî, ðèñóåì íîâûå âèëû
ObjectCreate("Pitchfork_Upper_LowerTF"+(string)QntPitchfork_Upper_LowerTF,OBJ_PITCHFORK,0,
StrToTime(mFractals[2][0]),StrToDouble(mFractals[2][1]),
StrToTime(mFractals[1][0]),StrToDouble(mFractals[1][1]),
StrToTime(mFractals[0][0]),StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)QntPitchfork_Upper_LowerTF,OBJPROP_COLOR,Red);
ObjectSet("Pitchfork_Upper_LowerTF"+(string)QntPitchfork_Upper_LowerTF,OBJPROP_STYLE,STYLE_DASH);
QntPitchfork_Upper_LowerTF++;
}
if(QntPitchfork_Upper_LowerTF>=nPitchfork_Upper_LowerTF)
{ // êîë-âî âèë ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû ïåðâûõ âèë
for(i=0; i<=QntPitchfork_Upper_LowerTF-2; i++)
{
ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_TIME1,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_TIME1));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_PRICE1,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_PRICE1));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_TIME2,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_TIME2));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_PRICE2,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_PRICE2));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_TIME3,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_TIME3));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_PRICE3,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_PRICE3));
}
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_TIME1,StrToTime(mFractals[2][0]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_PRICE1,StrToDouble(mFractals[2][1]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_TIME2,StrToTime(mFractals[1][0]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_PRICE2,StrToDouble(mFractals[1][1]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_TIME3,StrToTime(mFractals[0][0]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_PRICE3,StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_STYLE,STYLE_SOLID);
}
}
//--------------------------------------------------------- 2 --
// ----- ñòàðøèé òàéìôðåéì
if(TF!=0)
{
if(QntPitchfork_Upper_UpperTF<nPitchfork_Upper_UpperTF)
{ // êîë-âî âèë íå ïðåâûøåíî, ðèñóåì íîâûå âèëû
ObjectCreate("Pitchfork_Upper_UpperTF"+(string)QntPitchfork_Upper_UpperTF,OBJ_PITCHFORK,0,
StrToTime(mFractals[2][0]),StrToDouble(mFractals[2][1]),
StrToTime(mFractals[1][0]),StrToDouble(mFractals[1][1]),
StrToTime(mFractals[0][0]),StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)QntPitchfork_Upper_UpperTF,OBJPROP_COLOR,Red);
ObjectSet("Pitchfork_Upper_UpperTF"+(string)QntPitchfork_Upper_UpperTF,OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Pitchfork_Upper_UpperTF"+(string)QntPitchfork_Upper_UpperTF,OBJPROP_WIDTH,2);
QntPitchfork_Upper_UpperTF++;
}
if(QntPitchfork_Upper_UpperTF>=nPitchfork_Upper_UpperTF)
{ // êîë-âî âèë ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû ïåðâûõ âèë
for(i=0; i<=QntPitchfork_Upper_UpperTF-2; i++)
{
ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_TIME1,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_TIME1));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_PRICE1,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_PRICE1));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_TIME2,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_TIME2));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_PRICE2,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_PRICE2));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_TIME3,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_TIME3));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_PRICE3,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_PRICE3));
}
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_TIME1,StrToTime(mFractals[2][0]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_PRICE1,StrToDouble(mFractals[2][1]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_TIME2,StrToTime(mFractals[1][0]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_PRICE2,StrToDouble(mFractals[1][1]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_TIME3,StrToTime(mFractals[0][0]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_PRICE3,StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_STYLE,STYLE_SOLID);
}
}
return(true);
}
return(false);
}
//+---------------------------------------------------------------------------+
bool DrawLowerPitchfork(int nBar,int TF=0)
{ // Ôóíêöèÿ îïðåäåëÿåò è ðèñóåò íèñõîäÿùèå "Âèëû Ýíäðþñà"
double Fractals_Upper=0,Fractals_Lower=0;
string mFractals[3][3];
int i,j=0;
//--------------------------------------------------------- I --
// ----- îïðåäåëÿåì îïîðíûå òî÷êè
for(i=nBar; i<Bars; i++)
{ // Öèêë ïî áàðàì
Fractals_Upper=iFractals(NULL,TF,MODE_UPPER,i);
Fractals_Lower=iFractals(NULL,TF,MODE_LOWER,i);
// ----- ÂÀÆÍÎ! íà÷èíàåì ïðîâåðêó ñ âåðõíåãî ôðàêòàëà
if(j<3 && Fractals_Upper>0)
{
mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
mFractals[j][1]=DoubleToStr(Fractals_Upper,Digits);
mFractals[j][2]=(string)1;
j++;
}
if(j<3 && Fractals_Lower>0)
{
mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
mFractals[j][1]=DoubleToStr(Fractals_Lower,Digits);
mFractals[j][2]=(string)-1;
j++;
}
if(j>3) break;
}
//-------------------------------------------------------- II --
// ------ ïðîâåðÿåì ïîñëåäîâòåëüíîñòü îïîðíûõ òî÷åê: MODE_UPPER->MODE_LOWER->MODE_UPPER
if(StrToDouble(mFractals[0][2])==1 && StrToDouble(mFractals[1][2])==-1 && StrToDouble(mFractals[2][2])==1)
{
//--------------------------------------------------------- 1 --
// ----- ìëàäøèé òàéìôðåéì
if(TF==0)
{
if(QntPitchfork_Lower_LowerTF<nPitchfork_Lower_LowerTF)
{ // êîë-âî âèë íå ïðåâûøåíî, ðèñóåì íîâûå âèëû
ObjectCreate("Pitchfork_Lower_LowerTF"+(string)QntPitchfork_Lower_LowerTF,OBJ_PITCHFORK,0,
StrToTime(mFractals[2][0]),StrToDouble(mFractals[2][1]),
StrToTime(mFractals[1][0]),StrToDouble(mFractals[1][1]),
StrToTime(mFractals[0][0]),StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)QntPitchfork_Lower_LowerTF,OBJPROP_COLOR,Blue);
ObjectSet("Pitchfork_Lower_LowerTF"+(string)QntPitchfork_Lower_LowerTF,OBJPROP_STYLE,STYLE_DASH);
QntPitchfork_Lower_LowerTF++;
}
if(QntPitchfork_Lower_LowerTF>=nPitchfork_Lower_LowerTF)
{ // êîë-âî âèë ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû ïåðâûõ âèë
for(i=0; i<=QntPitchfork_Lower_LowerTF-2; i++)
{
ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_TIME1,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_TIME1));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_PRICE1,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_PRICE1));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_TIME2,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_TIME2));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_PRICE2,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_PRICE2));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_TIME3,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_TIME3));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_PRICE3,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_PRICE3));
}
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_TIME1,StrToTime(mFractals[2][0]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_PRICE1,StrToDouble(mFractals[2][1]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_TIME2,StrToTime(mFractals[1][0]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_PRICE2,StrToDouble(mFractals[1][1]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_TIME3,StrToTime(mFractals[0][0]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_PRICE3,StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_STYLE,STYLE_SOLID);
}
}
//--------------------------------------------------------- 2 --
// ----- ñòàðøèé òàéìôðåéì
if(TF!=0)
{
if(QntPitchfork_Lower_UpperTF<nPitchfork_Lower_UpperTF)
{ // êîë-âî âèë íå ïðåâûøåíî, ðèñóåì íîâûå âèëû
ObjectCreate("Pitchfork_Lower_UpperTF"+(string)QntPitchfork_Lower_UpperTF,OBJ_PITCHFORK,0,
StrToTime(mFractals[2][0]),StrToDouble(mFractals[2][1]),
StrToTime(mFractals[1][0]),StrToDouble(mFractals[1][1]),
StrToTime(mFractals[0][0]),StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)QntPitchfork_Lower_UpperTF,OBJPROP_COLOR,Blue);
ObjectSet("Pitchfork_Lower_UpperTF"+(string)QntPitchfork_Lower_UpperTF,OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Pitchfork_Lower_UpperTF"+(string)QntPitchfork_Lower_UpperTF,OBJPROP_WIDTH,2);
QntPitchfork_Lower_UpperTF++;
}
if(QntPitchfork_Lower_UpperTF>=nPitchfork_Lower_UpperTF)
{ // êîë-âî âèë ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû ïåðâûõ âèë
for(i=0; i<=QntPitchfork_Lower_UpperTF-2; i++)
{
ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_TIME1,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_TIME1));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_PRICE1,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_PRICE1));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_TIME2,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_TIME2));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_PRICE2,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_PRICE2));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_TIME3,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_TIME3));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_PRICE3,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_PRICE3));
}
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_TIME1,StrToTime(mFractals[2][0]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_PRICE1,StrToDouble(mFractals[2][1]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_TIME2,StrToTime(mFractals[1][0]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_PRICE2,StrToDouble(mFractals[1][1]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_TIME3,StrToTime(mFractals[0][0]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_PRICE3,StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_STYLE,STYLE_SOLID);
}
}
return(true);
}
return(false);
}
//+-------------------------------------------------------------------------------------------------------------------------+
//+-------------------------------------------------------------------------------------------------------------------------+
//+-------------------------------------------- ÔÓÍÊÖÈÈ ÎÒÐÈÑÎÂÊÈ ÊÀÍÀËÎÂ --------------------------------------------------+
//+-------------------------------------------------------------------------------------------------------------------------+
//+-------------------------------------------------------------------------------------------------------------------------+
//+---------------------------------------------------------------------------+
color GetChannelColor(int Index)
{ // Ôóíêöèÿ âîçâðàùàåò öâåò êàíàëà ïî èíäåêñó
switch(Index)
{
case 0:
return(Channels_Color0);
case 1:
return(Channels_Color1);
case 2:
return(Channels_Color2);
case 3:
return(Channels_Color3);
}
return(Channels_Color4);
}
//+---------------------------------------------------------------------------+
bool CheckUpperPoints(int nBar,int TF=0)
{ // Ôóíêöèÿ èùåò äâå ñîñåäíèå ìàêñèìàëüíûå îïîðíûå òî÷êè
double Fractals_Upper=0,Fractals_Lower=0;
string mFractals[3][3];
int i,j=0;
//--------------------------------------------------------- I --
// ----- îïðåäåëÿåì îïîðíûå òî÷êè
for(i=nBar; i<Bars; i++)
{ // Öèêë ïî áàðàì
Fractals_Upper=iFractals(NULL,TF,MODE_UPPER,i);
Fractals_Lower=iFractals(NULL,TF,MODE_LOWER,i);
// ----- ÂÀÆÍÎ! íà÷èíàåì ïðîâåðêó ñ âåðõíåãî ôðàêòàëà
if(j<3 && Fractals_Upper>0)
{
mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
mFractals[j][1]=DoubleToStr(Fractals_Upper,Digits);
mFractals[j][2]=(string)1;
j++;
}
if(j<3 && Fractals_Lower>0)
{
mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
mFractals[j][1]=DoubleToStr(Fractals_Lower,Digits);
mFractals[j][2]=(string)-1;
j++;
}
if(j>3) break;
}
//-------------------------------------------------------- II --
// ------ ïðîâåðÿåì ïîñëåäîâòåëüíîñòü îïîðíûõ òî÷åê: MODE_UPPER->MODE_LOWER->MODE_UPPER
if(StrToDouble(mFractals[0][2])==1 && StrToDouble(mFractals[1][2])==-1 && StrToDouble(mFractals[2][2])==1)
{
//--------------------------------------------------------- 1 --
// ----- ìëàäøèé òàéìôðåéì
if(TF==0)
{
if(QntChannels_LowerTF<nChannels_LowerTF)
{// êîë-âî êàíàëîâ íå ïðåâûøåíî, ðèñóåì íîâûé
if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
mChannels_LowerTF[QntChannels_LowerTF][0]=(string)0; // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
mChannels_LowerTF[QntChannels_LowerTF][0]=(string)1; // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
mChannels_LowerTF[QntChannels_LowerTF][1]=mFractals[2][0]; // âðåìÿ ïåðâîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF][2]=mFractals[2][1]; // öåíà ïåðâîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF][3]=mFractals[1][0]; // âðåìÿ âòîðîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF][4]=mFractals[1][1]; // öåíà âòîðîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF][5]=mFractals[0][0]; // âðåìÿ òðåòüåé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF][6]=mFractals[0][1]; // öåíà òðåòüåé îïîðíîé òî÷êè
QntChannels_LowerTF++;
// ----- îòðèñîâêà êàíàëà
CheckQntChannels(0,false);
}
if(QntChannels_LowerTF>=nChannels_LowerTF)
{// êîë-âî êàíàëîâ ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû îòðèñîâàííûõ
for(i=0; i<nChannels_LowerTF-1; i++)
{
mChannels_LowerTF[i][0]=mChannels_LowerTF[i+1][0]; // òèï êàíàëà
mChannels_LowerTF[i][1]=mChannels_LowerTF[i+1][1]; // âðåìÿ ïåðâîé îïîðíîé òî÷êè
mChannels_LowerTF[i][2]=mChannels_LowerTF[i+1][2]; // öåíà ïåðâîé îïîðíîé òî÷êè
mChannels_LowerTF[i][3]=mChannels_LowerTF[i+1][3]; // âðåìÿ âòîðîé îïîðíîé òî÷êè
mChannels_LowerTF[i][4]=mChannels_LowerTF[i+1][4]; // öåíà âòîðîé îïîðíîé òî÷êè
mChannels_LowerTF[i][5]=mChannels_LowerTF[i+1][5]; // âðåìÿ òðåòüåé îïîðíîé òî÷êè
mChannels_LowerTF[i][6]=mChannels_LowerTF[i+1][6]; // öåíà òðåòüåé îïîðíîé òî÷êè
mChannels_LowerTF[i][7]=mChannels_LowerTF[i+1][7]; // øèðèíà êàíàëà
}
if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
mChannels_LowerTF[QntChannels_LowerTF-1][0]=(string)0; // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
mChannels_LowerTF[QntChannels_LowerTF-1][0]=(string)1; // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
mChannels_LowerTF[QntChannels_LowerTF-1][1]=mFractals[2][0]; // âðåìÿ ïåðâîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF-1][2]=mFractals[2][1]; // öåíà ïåðâîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF-1][3]=mFractals[1][0]; // âðåìÿ âòîðîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF-1][4]=mFractals[1][1]; // öåíà âòîðîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF-1][5]=mFractals[0][0]; // âðåìÿ òðåòüåé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF-1][6]=mFractals[0][1]; // öåíà òðåòüåé îïîðíîé òî÷êè
// ----- îòðèñîâêà êàíàëà
CheckQntChannels(0,true);
}
}
//--------------------------------------------------------- 2 --
// ----- ñòàðøèé òàéìôðåéì
if(TF!=0)
{
if(QntChannels_UpperTF<nChannels_UpperTF)
{// êîë-âî êàíàëîâ íå ïðåâûøåíî, ðèñóåì íîâûé
if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
mChannels_UpperTF[QntChannels_UpperTF][0]=(string)0; // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
mChannels_UpperTF[QntChannels_UpperTF][0]=(string)1; // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
mChannels_UpperTF[QntChannels_UpperTF][1]=mFractals[2][0]; // âðåìÿ ïåðâîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF][2]=mFractals[2][1]; // öåíà ïåðâîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF][3]=mFractals[1][0]; // âðåìÿ âòîðîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF][4]=mFractals[1][1]; // öåíà âòîðîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF][5]=mFractals[0][0]; // âðåìÿ òðåòüåé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF][6]=mFractals[0][1]; // öåíà òðåòüåé îïîðíîé òî÷êè
QntChannels_UpperTF++;
// ----- îòðèñîâêà êàíàëà
CheckQntChannels(TF_Upper,false);
}
if(QntChannels_UpperTF>=nChannels_UpperTF)
{// êîë-âî êàíàëîâ ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû îòðèñîâàííûõ
for(i=0; i<nChannels_UpperTF-1; i++)
{
mChannels_UpperTF[i][0]=mChannels_UpperTF[i+1][0]; // òèï êàíàëà
mChannels_UpperTF[i][1]=mChannels_UpperTF[i+1][1]; // âðåìÿ ïåðâîé îïîðíîé òî÷êè
mChannels_UpperTF[i][2]=mChannels_UpperTF[i+1][2]; // öåíà ïåðâîé îïîðíîé òî÷êè
mChannels_UpperTF[i][3]=mChannels_UpperTF[i+1][3]; // âðåìÿ âòîðîé îïîðíîé òî÷êè
mChannels_UpperTF[i][4]=mChannels_UpperTF[i+1][4]; // öåíà âòîðîé îïîðíîé òî÷êè
mChannels_UpperTF[i][5]=mChannels_UpperTF[i+1][5]; // âðåìÿ òðåòüåé îïîðíîé òî÷êè
mChannels_UpperTF[i][6]=mChannels_UpperTF[i+1][6]; // öåíà òðåòüåé îïîðíîé òî÷êè
mChannels_UpperTF[i][7]=mChannels_UpperTF[i+1][7]; // øèðèíà êàíàëà
}
if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
mChannels_UpperTF[QntChannels_UpperTF-1][0]=(string)0; // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
mChannels_UpperTF[QntChannels_UpperTF-1][0]=(string)1; // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
mChannels_UpperTF[QntChannels_UpperTF-1][1]=mFractals[2][0]; // âðåìÿ ïåðâîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF-1][2]=mFractals[2][1]; // öåíà ïåðâîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF-1][3]=mFractals[1][0]; // âðåìÿ âòîðîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF-1][4]=mFractals[1][1]; // öåíà âòîðîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF-1][5]=mFractals[0][0]; // âðåìÿ òðåòüåé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF-1][6]=mFractals[0][1]; // öåíà òðåòüåé îïîðíîé òî÷êè
// ----- îòðèñîâêà êàíàëà
CheckQntChannels(TF_Upper,true);
}
}
return(true);
}
return(false);
}
//+---------------------------------------------------------------------------+
bool CheckLowerPoints(int nBar,int TF=0)
{ // Ôóíêöèÿ èùåò äâå ñîñåäíèå ìèíèìàëüíûå îïîðíûå òî÷êè
double Fractals_Upper=0,Fractals_Lower=0;
string mFractals[3][3];
int i,j=0;
//--------------------------------------------------------- 1 --
// ----- îïðåäåëÿåì îïîðíûå òî÷êè
for(i=nBar; i<Bars; i++)
{ // Öèêë ïî áàðàì
Fractals_Upper=iFractals(NULL,TF,MODE_UPPER,i);
Fractals_Lower=iFractals(NULL,TF,MODE_LOWER,i);
// ----- ÂÀÆÍÎ! íà÷èíàåì ïðîâåðêó ñ íèæíåãî ôðàêòàëà
if(j<3 && Fractals_Lower>0)
{
mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
mFractals[j][1]=DoubleToStr(Fractals_Lower,Digits);
mFractals[j][2]=(string)-1;
j++;
}
if(j<3 && Fractals_Upper>0)
{
mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
mFractals[j][1]=DoubleToStr(Fractals_Upper,Digits);
mFractals[j][2]=(string)1;
j++;
}
if(j>3) break;
}
//--------------------------------------------------------- 2 --
// ------ ïðîâåðÿåì ïîñëåäîâòåëüíîñòü îïîðíûõ òî÷åê: MODE_LOWER->MODE_UPPER->MODE_LOWER
if(StrToDouble(mFractals[0][2])==-1 && StrToDouble(mFractals[1][2])==1 && StrToDouble(mFractals[2][2])==-1)
{
//--------------------------------------------------------- 1 --
// ----- ìëàäøèé òàéìôðåéì
if(TF==0)
{
if(QntChannels_LowerTF<nChannels_LowerTF)
{// êîë-âî êàíàëîâ íå ïðåâûøåíî, ðèñóåì íîâûé
if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
mChannels_LowerTF[QntChannels_LowerTF][0]=(string)2; // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
mChannels_LowerTF[QntChannels_LowerTF][0]=(string)3; // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
mChannels_LowerTF[QntChannels_LowerTF][1]=mFractals[2][0]; // âðåìÿ ïåðâîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF][2]=mFractals[2][1]; // öåíà ïåðâîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF][3]=mFractals[1][0]; // âðåìÿ âòîðîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF][4]=mFractals[1][1]; // öåíà âòîðîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF][5]=mFractals[0][0]; // âðåìÿ òðåòüåé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF][6]=mFractals[0][1]; // öåíà òðåòüåé îïîðíîé òî÷êè
QntChannels_LowerTF++;
// ----- îòðèñîâêà êàíàëà
CheckQntChannels(0,false);
}
if(QntChannels_LowerTF>=nChannels_LowerTF)
{// êîë-âî êàíàëîâ ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû îòðèñîâàííûõ
for(i=0; i<nChannels_LowerTF-1; i++)
{
mChannels_LowerTF[i][0]=mChannels_LowerTF[i+1][0]; // òèï êàíàëà
mChannels_LowerTF[i][1]=mChannels_LowerTF[i+1][1]; // âðåìÿ ïåðâîé îïîðíîé òî÷êè
mChannels_LowerTF[i][2]=mChannels_LowerTF[i+1][2]; // öåíà ïåðâîé îïîðíîé òî÷êè
mChannels_LowerTF[i][3]=mChannels_LowerTF[i+1][3]; // âðåìÿ âòîðîé îïîðíîé òî÷êè
mChannels_LowerTF[i][4]=mChannels_LowerTF[i+1][4]; // öåíà âòîðîé îïîðíîé òî÷êè
mChannels_LowerTF[i][5]=mChannels_LowerTF[i+1][5]; // âðåìÿ òðåòüåé îïîðíîé òî÷êè
mChannels_LowerTF[i][6]=mChannels_LowerTF[i+1][6]; // öåíà òðåòüåé îïîðíîé òî÷êè
mChannels_LowerTF[i][7]=mChannels_LowerTF[i+1][7]; // øèðèíà êàíàëà
}
if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
mChannels_LowerTF[QntChannels_LowerTF-1][0]=(string)2; // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
mChannels_LowerTF[QntChannels_LowerTF-1][0]=(string)3; // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
mChannels_LowerTF[QntChannels_LowerTF-1][1]=mFractals[2][0]; // âðåìÿ ïåðâîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF-1][2]=mFractals[2][1]; // öåíà ïåðâîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF-1][3]=mFractals[1][0]; // âðåìÿ âòîðîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF-1][4]=mFractals[1][1]; // öåíà âòîðîé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF-1][5]=mFractals[0][0]; // âðåìÿ òðåòüåé îïîðíîé òî÷êè
mChannels_LowerTF[QntChannels_LowerTF-1][6]=mFractals[0][1]; // öåíà òðåòüåé îïîðíîé òî÷êè
// ----- îòðèñîâêà êàíàëà
CheckQntChannels(0,true);
}
}
//--------------------------------------------------------- 2 --
// ----- ñòàðøèé òàéìôðåéì
if(TF!=0)
{
if(QntChannels_UpperTF<nChannels_UpperTF)
{// êîë-âî êàíàëîâ íå ïðåâûøåíî, ðèñóåì íîâûé
if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
mChannels_UpperTF[QntChannels_UpperTF][0]=(string)2; // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
mChannels_UpperTF[QntChannels_UpperTF][0]=(string)3; // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
mChannels_UpperTF[QntChannels_UpperTF][1]=mFractals[2][0]; // âðåìÿ ïåðâîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF][2]=mFractals[2][1]; // öåíà ïåðâîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF][3]=mFractals[1][0]; // âðåìÿ âòîðîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF][4]=mFractals[1][1]; // öåíà âòîðîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF][5]=mFractals[0][0]; // âðåìÿ òðåòüåé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF][6]=mFractals[0][1]; // öåíà òðåòüåé îïîðíîé òî÷êè
QntChannels_UpperTF++;
// ----- îòðèñîâêà êàíàëà
CheckQntChannels(TF_Upper,false);
}
if(QntChannels_UpperTF>=nChannels_UpperTF)
{// êîë-âî êàíàëîâ ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû îòðèñîâàííûõ
for(i=0; i<nChannels_UpperTF-1; i++)
{
mChannels_UpperTF[i][0]=mChannels_UpperTF[i+1][0]; // òèï êàíàëà
mChannels_UpperTF[i][1]=mChannels_UpperTF[i+1][1]; // âðåìÿ ïåðâîé îïîðíîé òî÷êè
mChannels_UpperTF[i][2]=mChannels_UpperTF[i+1][2]; // öåíà ïåðâîé îïîðíîé òî÷êè
mChannels_UpperTF[i][3]=mChannels_UpperTF[i+1][3]; // âðåìÿ âòîðîé îïîðíîé òî÷êè
mChannels_UpperTF[i][4]=mChannels_UpperTF[i+1][4]; // öåíà âòîðîé îïîðíîé òî÷êè
mChannels_UpperTF[i][5]=mChannels_UpperTF[i+1][5]; // âðåìÿ òðåòüåé îïîðíîé òî÷êè
mChannels_UpperTF[i][6]=mChannels_UpperTF[i+1][6]; // öåíà òðåòüåé îïîðíîé òî÷êè
mChannels_UpperTF[i][7]=mChannels_UpperTF[i+1][7]; // øèðèíà êàíàëà
}
if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
mChannels_UpperTF[QntChannels_UpperTF-1][0]=(string)2; // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
mChannels_UpperTF[QntChannels_UpperTF-1][0]=(string)3; // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
mChannels_UpperTF[QntChannels_UpperTF-1][1]=mFractals[2][0]; // âðåìÿ ïåðâîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF-1][2]=mFractals[2][1]; // öåíà ïåðâîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF-1][3]=mFractals[1][0]; // âðåìÿ âòîðîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF-1][4]=mFractals[1][1]; // öåíà âòîðîé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF-1][5]=mFractals[0][0]; // âðåìÿ òðåòüåé îïîðíîé òî÷êè
mChannels_UpperTF[QntChannels_UpperTF-1][6]=mFractals[0][1]; // öåíà òðåòüåé îïîðíîé òî÷êè
// ----- îòðèñîâêà êàíàëà
CheckQntChannels(TF_Upper,true);
}
}
return(true);
}
return(false);
}
//+---------------------------------------------------------------------------+
void CheckQntChannels(int TF=0,bool ReDraw=false)
{ // Ôóíêöèÿ îòîáðàæàåò íîâûå êàíàëû íà ãðàôèêå
int Index=0,i=0;
string Channels_Name="";
//--------------------------------------------------------- 1 --
// ----- åñëè ôëàã ïåðåðèñîâêè âñåõ êàíàëîâ FALSE
if(!ReDraw)
{
if(TF==0)
{ // ----- ìëàäøèé òàéìôðåéì
Index=QntChannels_LowerTF-1;
}
if(TF!=0)
{ // ----- ñòàðøèé òàéìôðåéì
Index=QntChannels_UpperTF-1;
}
// ----- îòðèñîâêà îäíîãî êàíàëà
DrawChannels(TF,Index);
}
//--------------------------------------------------------- 2 --
// ----- åñëè ôëàã ïåðåðèñîâêè âñåõ êàíàëîâ TRUE - óäàëÿåì âñå êàíàëû
if(ReDraw)
{
if(TF==0)
{ // ----- ìëàäøèé òàéìôðåéì
Index=QntChannels_LowerTF-1;
Channels_Name="Channel_LowerTF";
}
if(TF!=0)
{ // ----- ñòàðøèé òàéìôðåéì
Index=QntChannels_UpperTF-1;
Channels_Name="Channel_UpperTF";
}
int Qnt=ObjectsTotal();
// ----- Óäàëÿåì âñå êàíàëû äëÿ óêàçàííîãî òàéìôðåéìà
for(i=0; i<Qnt; i++)
{ // Öèêë ïî îáúåêòàì
if(StringFind(ObjectName(i),Channels_Name,0)>=0)
{
ObjectDelete(ObjectName(i));
i--; continue;
}
if(i>=ObjectsTotal()) break;
}
for(i=0; i<=Index; i++)
{
// ----- îòðèñîâêà êàæäîãî êàíàëà
DrawChannels(TF,i);
}
}
return;
}
//+---------------------------------------------------------------------------+
void DrawChannels(int TF=0,int Index=0)
{ // Ôóíêöèÿ îòîáðàæàåò íîâûå êàíàëû íà ãðàôèêå
//--------------------------------------------------------- 1 --
if(TF==0)
{ // ----- ìëàäøèé òàéìôðåéì
// ----- ñòðîèì êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
if(StrToDouble(mChannels_LowerTF[Index][0])==0 || StrToDouble(mChannels_LowerTF[Index][0])==1)
{
// ----- îïîðíàÿ ëèíèÿ(âåðõíÿÿ ãðàíèöà) êàíàëà
ObjectCreate("Channel_LowerTF"+(string)Index+"_UpperLine",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2]),
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6]));
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLine",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLine",OBJPROP_WIDTH,3);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLine",OBJPROP_COLOR,GetChannelColor(Index));
// ----- âû÷èñëÿåì øèðèíó êàíàëà
mChannels_LowerTF[Index][7]=(string)(ObjectGetValueByShift("Channel_LowerTF"+(string)Index+"_UpperLine",iBarShift(NULL,0,StrToTime(mChannels_LowerTF[Index][3])))
-StrToDouble(mChannels_LowerTF[Index][4]));
// ----- íèæíÿÿ ãðàíèöà êàíàëà
ObjectCreate("Channel_LowerTF"+(string)Index+"_LowerLine",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][3]),StrToDouble(mChannels_LowerTF[Index][4]),
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7]));
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLine",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLine",OBJPROP_WIDTH,1);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLine",OBJPROP_COLOR,GetChannelColor(Index));
// ----- ñåðåäèíà êàíàëà ãðàíèöà êàíàëà
ObjectCreate("Channel_LowerTF"+(string)Index+".MiddleLine",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2])
-StrToDouble(mChannels_LowerTF[Index][7])/2,
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])/2);
ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_STYLE,STYLE_DASHDOT);
ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_WIDTH,1);
ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_COLOR,GetChannelColor(Index));
// ----- âåðõíÿÿ ëèíèÿ ÇÓÊ -10%
ObjectCreate("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2])
-StrToDouble(mChannels_LowerTF[Index][7])/10,
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])/10);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
// ----- íèæíÿÿ ëèíèÿ ÇÓÊ -10%
ObjectCreate("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][3]),StrToDouble(mChannels_LowerTF[Index][4])
+StrToDouble(mChannels_LowerTF[Index][7])/10,
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])+
StrToDouble(mChannels_LowerTF[Index][7])/10);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
// ----- âåðõíÿÿ ëèíèÿ ÇÓÊ +10%
ObjectCreate("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2])
+StrToDouble(mChannels_LowerTF[Index][7])/10,
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])+StrToDouble(mChannels_LowerTF[Index][7])/10);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
// ----- íèæíÿÿ ëèíèÿ ÇÓÊ +10%
ObjectCreate("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][3]),StrToDouble(mChannels_LowerTF[Index][4])
-StrToDouble(mChannels_LowerTF[Index][7])/10,
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])-
StrToDouble(mChannels_LowerTF[Index][7])/10);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
}
// ----- ñòðîèì êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
if(StrToDouble(mChannels_LowerTF[Index][0])==2 || StrToDouble(mChannels_LowerTF[Index][0])==3)
{
// ----- îïîðíàÿ ëèíèÿ(íèæíÿÿ ãðàíèöà) êàíàëà
ObjectCreate("Channel_LowerTF"+(string)Index+"_LowerLine",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2]),
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6]));
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLine",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLine",OBJPROP_WIDTH,3);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLine",OBJPROP_COLOR,GetChannelColor(Index));
// ----- âû÷èñëÿåì øèðèíó êàíàëà
mChannels_LowerTF[Index][7]=(string)(ObjectGetValueByShift("Channel_LowerTF"+(string)Index+"_LowerLine",iBarShift(NULL,0,StrToTime(mChannels_LowerTF[Index][3])))
-StrToDouble(mChannels_LowerTF[Index][4]));
// ----- âåðõíÿÿ ãðàíèöà êàíàëà
ObjectCreate("Channel_LowerTF"+(string)Index+"_UpperLine",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][3]),StrToDouble(mChannels_LowerTF[Index][4]),
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7]));
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLine",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLine",OBJPROP_WIDTH,1);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLine",OBJPROP_COLOR,GetChannelColor(Index));
// ----- ñåðåäèíà êàíàëà ãðàíèöà êàíàëà
ObjectCreate("Channel_LowerTF"+(string)Index+".MiddleLine",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2])
-StrToDouble(mChannels_LowerTF[Index][7])/2,
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])/2);
ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_STYLE,STYLE_DASHDOT);
ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_WIDTH,1);
ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_COLOR,GetChannelColor(Index));
// ----- íèæíÿÿ ëèíèÿ ÇÓÊ -10%
ObjectCreate("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2])
-StrToDouble(mChannels_LowerTF[Index][7])/10,
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])/10);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
// ----- âåðõíÿÿ ëèíèÿ ÇÓÊ -10%
ObjectCreate("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][3]),StrToDouble(mChannels_LowerTF[Index][4])
+StrToDouble(mChannels_LowerTF[Index][7])/10,
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])+
StrToDouble(mChannels_LowerTF[Index][7])/10);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
// ----- íèæíÿÿ ëèíèÿ ÇÓÊ +10%
ObjectCreate("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2])
+StrToDouble(mChannels_LowerTF[Index][7])/10,
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])+StrToDouble(mChannels_LowerTF[Index][7])/10);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
// ----- âåðõíÿÿ ëèíèÿ ÇÓÊ +10%
ObjectCreate("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][3]),StrToDouble(mChannels_LowerTF[Index][4])
-StrToDouble(mChannels_LowerTF[Index][7])/10,
StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])-
StrToDouble(mChannels_LowerTF[Index][7])/10);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_RAY,True);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
}
}
//--------------------------------------------------------- 2 --
if(TF!=0)
{ // ----- ñòàðøèé òàéìôðåéì
// ----- ñòðîèì êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
if(StrToDouble(mChannels_UpperTF[Index][0])==0 || StrToDouble(mChannels_UpperTF[Index][0])==1)
{
// ----- îïîðíàÿ ëèíèÿ(âåðõíÿÿ ãðàíèöà) êàíàëà
ObjectCreate("Channel_UpperTF"+(string)Index+"_UpperLine",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2]),
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6]));
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLine",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLine",OBJPROP_WIDTH,3);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLine",OBJPROP_COLOR,GetChannelColor(Index));
// ----- âû÷èñëÿåì øèðèíó êàíàëà
mChannels_UpperTF[Index][7]=(string)(ObjectGetValueByShift("Channel_UpperTF"+(string)Index+"_UpperLine",iBarShift(NULL,0,StrToTime(mChannels_UpperTF[Index][3])))
-StrToDouble(mChannels_UpperTF[Index][4]));
// ----- íèæíÿÿ ãðàíèöà êàíàëà
ObjectCreate("Channel_UpperTF"+(string)Index+"_LowerLine",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][3]),StrToDouble(mChannels_UpperTF[Index][4]),
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7]));
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLine",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLine",OBJPROP_WIDTH,1);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLine",OBJPROP_COLOR,GetChannelColor(Index));
// ----- ñåðåäèíà êàíàëà ãðàíèöà êàíàëà
ObjectCreate("Channel_UpperTF"+(string)Index+".MiddleLine",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2])
-StrToDouble(mChannels_UpperTF[Index][7])/2,
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])/2);
ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_STYLE,STYLE_DASHDOT);
ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_WIDTH,1);
ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_COLOR,GetChannelColor(Index));
// ----- âåðõíÿÿ ëèíèÿ ÇÓÊ -10%
ObjectCreate("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2])
-StrToDouble(mChannels_UpperTF[Index][7])/10,
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])/10);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
// ----- íèæíÿÿ ëèíèÿ ÇÓÊ -10%
ObjectCreate("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][3]),StrToDouble(mChannels_UpperTF[Index][4])
+StrToDouble(mChannels_UpperTF[Index][7])/10,
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])+
StrToDouble(mChannels_UpperTF[Index][7])/10);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
// ----- âåðõíÿÿ ëèíèÿ ÇÓÊ +10%
ObjectCreate("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2])
+StrToDouble(mChannels_UpperTF[Index][7])/10,
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])+StrToDouble(mChannels_UpperTF[Index][7])/10);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
// ----- íèæíÿÿ ëèíèÿ ÇÓÊ +10%
ObjectCreate("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][3]),StrToDouble(mChannels_UpperTF[Index][4])
-StrToDouble(mChannels_UpperTF[Index][7])/10,
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])-
StrToDouble(mChannels_UpperTF[Index][7])/10);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
}
// ----- ñòðîèì êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
if(StrToDouble(mChannels_UpperTF[Index][0])==2 || StrToDouble(mChannels_UpperTF[Index][0])==3)
{
// ----- îïîðíàÿ ëèíèÿ(íèæíÿÿ ãðàíèöà) êàíàëà
ObjectCreate("Channel_UpperTF"+(string)Index+"_LowerLine",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2]),
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6]));
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLine",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLine",OBJPROP_WIDTH,3);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLine",OBJPROP_COLOR,GetChannelColor(Index));
// ----- âû÷èñëÿåì øèðèíó êàíàëà
mChannels_UpperTF[Index][7]=(string)(ObjectGetValueByShift("Channel_UpperTF"+(string)Index+"_LowerLine",iBarShift(NULL,0,StrToTime(mChannels_UpperTF[Index][3])))
-StrToDouble(mChannels_UpperTF[Index][4]));
// ----- âåðõíÿÿ ãðàíèöà êàíàëà
ObjectCreate("Channel_UpperTF"+(string)Index+"_UpperLine",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][3]),StrToDouble(mChannels_UpperTF[Index][4]),
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7]));
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLine",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLine",OBJPROP_WIDTH,1);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLine",OBJPROP_COLOR,GetChannelColor(Index));
// ----- ñåðåäèíà êàíàëà ãðàíèöà êàíàëà
ObjectCreate("Channel_UpperTF"+(string)Index+".MiddleLine",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2])
-StrToDouble(mChannels_UpperTF[Index][7])/2,
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])/2);
ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_STYLE,STYLE_DASHDOT);
ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_WIDTH,1);
ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_COLOR,GetChannelColor(Index));
// ----- íèæíÿÿ ëèíèÿ ÇÓÊ -10%
ObjectCreate("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2])
-StrToDouble(mChannels_UpperTF[Index][7])/10,
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])/10);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
// ----- âåðõíÿÿ ëèíèÿ ÇÓÊ -10%
ObjectCreate("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][3]),StrToDouble(mChannels_UpperTF[Index][4])
+StrToDouble(mChannels_UpperTF[Index][7])/10,
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])+
StrToDouble(mChannels_UpperTF[Index][7])/10);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
// ----- íèæíÿÿ ëèíèÿ ÇÓÊ +10%
ObjectCreate("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2])
+StrToDouble(mChannels_UpperTF[Index][7])/10,
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])+StrToDouble(mChannels_UpperTF[Index][7])/10);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
// ----- âåðõíÿÿ ëèíèÿ ÇÓÊ +10%
ObjectCreate("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][3]),StrToDouble(mChannels_UpperTF[Index][4])
-StrToDouble(mChannels_UpperTF[Index][7])/10,
StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])-
StrToDouble(mChannels_UpperTF[Index][7])/10);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_RAY,True);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_WIDTH,1);
ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
}
}
return;
}
//+------------------------------------------------------------------+
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
---