0
Views
0
Downloads
0
Favorites
ZZ_Standard_Functions_TF_YR1_Lib
//+-----------------------------------------------------------------------------------------------+
//| ZZ_Standard_Functions_TF_YR1_Lib.mq4|
//| Copyright © Zhunko |
//|01.07.2007 ÌF ZHUNKO zhunko@mail.ru |
//+-----------------------------------------------------------------------------------------------+
//| Íàáîð ôóíêöèé äëÿ ÒÔ YR1. |
//|1.Êîëè÷åñòâî áàðîâ â ÒÔ YR1. |
//| int iBars_YR1 (string Exchange); |
//| iBarsYR (âàëþòíàÿ ïàðà); |
//|2.Íîìåð áàðà ïî âðåìåíè â ÒÔ YR1. |
//| int iBarShift_YR1 (string Exchange, datetime time, bool exact); |
//| iBarShiftYR (âàëþòíàÿ ïàðà, çíà÷åíèå âðåìåíè äëÿ ïîèñêà, âîçâðàùàåìîå çíà÷åíèå åñëè áàð íå |
//| íàéäåí (FALSE - iBarShift âîçâðàùàåò áëèæàéøèé/TRUE - iBarShift âîçâðàùàåò -1));|
//|3.Âðåìÿ îòêðûòèÿ ïî íîìåðó áàðà â ÒÔ YR1. |
//| datetime iTime_YR1 (string Exchange, int shift); |
//| iCloseYR (âàëþòíàÿ ïàðà, íîìåð áàðà); |
//|4.Öåíà îòêðûòèÿ. |
//| double iOpen_YR1 (string Exchange, int shift); |
//| iOpenYR (âàëþòíàÿ ïàðà, íîìåð áàðà); |
//|5.Ìàêñèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ YR1. |
//| double iHigh_YR1 (string Exchange, int shift); |
//| iHighYR (âàëþòíàÿ ïàðà, íîìåð áàðà); |
//|6.Ìèíèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ YR1. |
//| double iLow_YR1 (string Exchange, int shift); |
//| iLowYR (âàëþòíàÿ ïàðà, íîìåð áàðà); |
//|7.Öåíà çàêðûòèÿ. |
//| double iClose_YR1 (string Exchange, int shift); |
//| iCloseYR (âàëþòíàÿ ïàðà, íîìåð áàðà); |
//+-----------------------------------------------------------------------------------------------+
#property copyright "Copyright © 2006 Zhunko"
#property link "zhunko@mail.ru"
#property library
//ææææÑòàíäàðäíûå áèáëèîòå÷íûå ôóíêöèè äëÿ ÒÔ YR1.æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
//====Êîëè÷åñòâî áàðîâ â ÒÔ YR1.===================================================================================================================================================
int iBars_YR1 (string Exchange) // iBarsYR (âàëþòíàÿ ïàðà);
{
int iBarsMN1; // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
int iBarsYR1 = 0; // Êîëè÷åñòâî áàðîâ â ÒÔ YR1.
//----
iBarsMN1 = iBars (Exchange, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
for (int i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (Exchange, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (Exchange, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
return (iBarsYR1);
}
//=================================================================================================================================================================================
//====Íîìåð áàðà ïî âðåìåíè â ÒÔ YR1.==============================================================================================================================================
int iBarShift_YR1 (string Exchange, datetime time, bool exact) // iBarShiftYR (âàëþòíàÿ ïàðà, çíà÷åíèå âðåìåíè äëÿ ïîèñêà, âîçâðàùàåìîå çíà÷åíèå åñëè áàð íå íàéäåí (FALSE - iBarShift âîçâðàùàåò áëèæàéøèé/TRUE - iBarShift âîçâðàùàåò -1);
{
bool Coincidence = false;
datetime iTimeMN1_0; // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
datetime iTimeMN1_1; // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
int i;
int iBarsYR1 = 0; // Êîëè÷åñòâî áàðîâ â ÒÔ YR1.
int iBarsMN1; // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
int FirstYear; // Ïåðâûé ãîä íà÷àëà èñòîðèè ïàðû.
int ShiftYR1 = 0; // Âîçâðàùàåìîå çíà÷åíèå.
//----
iBarsMN1 = iBars (Exchange, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
FirstYear = StrToInteger (StringSubstr (TimeToStr (iTime (Exchange, PERIOD_MN1, iBarsMN1 - 1), TIME_DATE), 0, 4)); // Ïåðâûé ãîä íà÷àëà èñòîðèè ïàðû.
if (TimeYear (time) < FirstYear || Year() < TimeYear (time)) // Äëÿ ýêîíîìèè âðåìåíè íà öèêëàõ, ïðè âûáðàííîì âðåìåíè ñî çíà÷åíèåì ìåíüøåì âðåìåíè íà÷àëà èñòîðèè èëè áîëüøåì òåêóùåãî ãîäà.
{
if (exact == false) // Åñëè ïåðåêëþ÷àòåëü çàïðåùàåò, òî âîçâðàùàåì íîìåð áëèæàéøåãî áàðà (íîìåð ïåðâîãî áàðà â èñòîðèè).
{
if (TimeYear (time) < FirstYear) ShiftYR1 = Year() - FirstYear; // Åñëè âõîäíîå âðåìÿ ìåíüøå, ÷åì âðåìÿ íà÷àëî èñòîðèè, òî âîçâðàùàåìì íîìåð áàðà íà÷àëà èñòîðèè.
if (TimeYear (time) > Year()) ShiftYR1 = 0; // Åñëè âõîäíîå âðåìÿ áîëüøå, ÷åì âðåìÿ êîíöà èñòîðèè, òî âîçâðàùàåìì íîìåð áàðà êîíöà èñòîðèè.
}
else ShiftYR1 = -1; // Åñëè ïåðåêëþ÷àòåëü ðàçðåøàåò, òî âîçâðàùàåì -1 â ñëó÷àå îòñóòñòâèÿ áàðà.
}
else // Åñëè âõîäíîå âðåìÿ áîëüøå èëè ðàâíî âðåìåíè íà÷àëà èñòîðèè, òî ïðîâåðÿåì âõîäíîå âðåìÿ íà ñîâïàäåíèå ñ ìåñÿ÷íîé èñòîðèåé.
{
if (exact == true) // Åñëè ïåðåêëþ÷àòåëü ðàçðåøàåò, òî âîçâðàùàåì -1 â ñëó÷àå îòñóòñòâèÿ áàðà.
{
for (i = 0; i < iBarsMN1; i++)
{
if (MathMod (TimeYear (1.0 * iTime (Exchange, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (Exchange, PERIOD_MN1, i + 1))) != 0) ShiftYR1++;
if (TimeYear (time) == TimeYear (iTime (Exchange, PERIOD_MN1, i))) // Âûõîäèì èç öèêëà ïî óñëîâèþ ðàâåíñòâà âõîäíîãî ïàðàìåòðà íàéäåíîìó â öèêëå.
{
Coincidence = true;
break;
}
}
if (Coincidence == false) ShiftYR1 = -1; // Åñëè ñîâïàäåíèÿ â öèêëå íå ïðîèçîøëî, âîçâðàùàåì -1.
}
else // Åñëè ïåðåêëþ÷àòåëü çàïðåùàåò, òî âîçâðàùàåì áëèæàéøèé ïî õîäó öèêëà (ïðåäûäóùèé) áàð.
{
// Êîëè÷åñòâî áàðîâ â ÒÔ YR1.
for (i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (Exchange, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (Exchange, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
ShiftYR1 = -1;
for (i = 0; i < iBarsMN1; i++)
{
iTimeMN1_0 = iTime (Exchange, PERIOD_MN1, i);
iTimeMN1_1 = iTime (Exchange, PERIOD_MN1, i + 1);
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0)
{
ShiftYR1++;
if (ShiftYR1 == 0) // Ñïåöèàëüíûå óñëîâèÿ äëÿ ïåðâîãî áàðà â èñòîðèè.
{
if (TimeYear (time) == TimeYear (iTimeMN1_0)) break; // Âûõîäèì èç öèêëà ïî óñëîâèþ ðàâåíñòâà âõîäíîãî ïàðàìåòðà íàéäåíîìó â öèêëå.
else
{
if (TimeYear (iTimeMN1_1) < TimeYear (time)) // Íå ïðîâåðÿåì íà ïîñëåäóùèé áàð.
{
ShiftYR1++; // Âîçâðàùàåì ïðåäûäóùèé áàð, ñîîòâåòñòâóþùèé ìëàäøåìó ãîäó.
break;
}
}
}
if (0 < ShiftYR1 && ShiftYR1 < iBarsYR1) // Ïðèìåíÿåì îáû÷íûå óñëîâèÿ "âîðîòà" äëÿ íå ïåðâîãî è íå ïîñëåäíåãî ãîäà â èñòîðèè.
{
if (TimeYear (time) == TimeYear (iTimeMN1_0)) break; // Âûõîäèì èç öèêëà ïî óñëîâèþ ðàâåíñòâà âõîäíîãî ïàðàìåòðà íàéäåíîìó â öèêëå.
else // Åñëè èñêîìûé ãîä íå ðàâåí íàéäåíîìó, òî ïðîâåðÿåì íà îòñóòñòâèå áàðà.
{
if (TimeYear (iTimeMN1_1) < TimeYear (time) && TimeYear (time) < TimeYear (iTimeMN1_0))
{
ShiftYR1++; // Âîçâðàùàåì ïðåäûäóùèé áàð, ñîîòâåòñòâóþùèé ìëàäøåìó ãîäó.
break;
}
}
}
if (ShiftYR1 == iBarsYR1) break; // Åñëè áàð ïîñëåäíèé, òî âîçâðàùàåì òåêóùèé áàð, ñîîòâåòñòâóþùèé ìëàäøåìó ãîäó.
}
}
}
}
return (ShiftYR1);
}
//=================================================================================================================================================================================
//====Âðåìÿ îòêðûòèÿ ïî íîìåðó áàðà â ÒÔ YR1.======================================================================================================================================
datetime iTime_YR1 (string Exchange, int shift) // iCloseYR (âàëþòíàÿ ïàðà, íîìåð áàðà);
{
datetime TimeYR; // Âîçâðàùàåìîå çíà÷åíèå.
int i;
int iBarsYR1; // Êîëè÷åñòâî áàðîâ â ãîäîâîì ÒÔ.
int ShiftYR1 = -1; // Òåêóùèé íîìåð áàðà ÒÔ YR1.
//----
int iBarsMN1 = iBars (Exchange, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
// Êîëè÷åñòâî áàðîâ â ÒÔ YR1 òåêóùåãî èíñòðóìåíòà.
for (i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (Exchange, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (Exchange, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
if (0 > shift || shift > iBarsYR1 - 1) TimeYR = 0; // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
else
{
for (i = 0; i < iBarsMN1; i++)
{
datetime iTimeMN1_0 = iTime (Exchange, PERIOD_MN1, i); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
datetime iTimeMN1_1 = iTime (Exchange, PERIOD_MN1, i + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) // Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ.
{
ShiftYR1++;
if (shift == ShiftYR1)
{
TimeYR = iTimeMN1_0;
break;
}
}
}
}
return (TimeYR);
}
//=================================================================================================================================================================================
//====Öåíà îòêðûòèÿ.===============================================================================================================================================================
double iOpen_YR1 (string Exchange, int shift) // iOpenYR (âàëþòíàÿ ïàðà, íîìåð áàðà);
{
double OpenYR; // Âîçâðàùàåìîå çíà÷åíèå.
int i;
int iBarsYR1; // Êîëè÷åñòâî áàðîâ â ãîäîâîì ÒÔ.
int ShiftYR1 = -1; // Òåêóùèé íîìåð áàðà ÒÔ YR1.
//----
int iBarsMN1 = iBars (Exchange, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
// Êîëè÷åñòâî áàðîâ â ÒÔ YR1 òåêóùåãî èíñòðóìåíòà.
for (i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (Exchange, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (Exchange, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
if (0 > shift || shift > iBarsYR1 - 1) OpenYR = 0; // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
else
{
for (i = 0; i < iBarsMN1; i++)
{
datetime iTimeMN1_0 = iTime (Exchange, PERIOD_MN1, i); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
datetime iTimeMN1_1 = iTime (Exchange, PERIOD_MN1, i + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) // Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ.
{
ShiftYR1++;
if (shift == ShiftYR1) OpenYR = iOpen (Exchange, PERIOD_MN1, i);
}
}
}
return (OpenYR);
}
//=================================================================================================================================================================================
//====Ìàêñèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ YR1.==================================================================================================================================
double iHigh_YR1 (string Exchange, int shift) // iHighYR (âàëþòíàÿ ïàðà, íîìåð áàðà);
{
bool Break = false;
datetime iTimeMN1_0;
datetime iTimeMN1_1;
double ArrayHighMN1[12]; // Òåõíè÷åñêèé ìàññèâ.
double HighYR; // Âîçâðàùàåìîå çíà÷åíèå.
int count = -1; // Êîëè÷åñòâî ýëåìåíòîâ äëÿ ïîèñêà.
int iBarsYR1; // Êîëè÷åñòâî áàðîâ â ãîäîâîì ÒÔ.
int i, j;
int ShiftYR1 = 0; // Òåêóùèé íîìåð áàðà ÒÔ YR1.
//----
int iBarsMN1 = iBars (Exchange, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
// Êîëè÷åñòâî áàðîâ â ÒÔ YR1 òåêóùåãî èíñòðóìåíòà.
for (i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (Exchange, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (Exchange, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
if (0 > shift || shift > iBarsYR1 - 1) HighYR = 0; // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
else
{
if (shift == 0) // Åñëè áàð íóëåâîé, òî ñ÷èòàåì óïîðîù¸ííûì ñïîñîáîì.
{
for (j = 0; j < 12; j++)
{
count++; // Ñ÷¸ò÷èê çíà÷èìûõ áàðîâ.
ArrayHighMN1[count] = iHigh (Exchange, PERIOD_MN1, j);
iTimeMN1_0 = iTime (Exchange, PERIOD_MN1, j); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
iTimeMN1_1 = iTime (Exchange, PERIOD_MN1, j + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) break;// Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ. Îñòàíàâëèâàåì ïîèñê.
}
}
if (0 < shift || shift < iBarsMN1 - 1)
{
for (i = 0; i < iBarsMN1; i++)
{
iTimeMN1_0 = iTime (Exchange, PERIOD_MN1, i); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
iTimeMN1_1 = iTime (Exchange, PERIOD_MN1, i + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) // Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ. Îñòàíàâëèâàåì ïîèñê.
{
ShiftYR1++;
if (shift == ShiftYR1)
{
for (j = i + 1; j < i + 13; j++)
{
count++; // Ñ÷¸ò÷èê çíà÷èìûõ áàðîâ.
ArrayHighMN1[count] = iHigh (Exchange, PERIOD_MN1, j);
iTimeMN1_0 = iTime (Exchange, PERIOD_MN1, j); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
iTimeMN1_1 = iTime (Exchange, PERIOD_MN1, j + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) // Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ. Îñòàíàâëèâàåì ïîèñê.
{
Break = true;
break;
}
}
if (Break == true) break;
}
}
}
}
HighYR = ArrayHighMN1[ArrayMaximum (ArrayHighMN1, count + 1, 0)]; // Èùèì ìàêñèìàëüíîå çíà÷åíèå
}
// Comment ("ArrayHighMN1[", count + 1, "] = {", ArrayHighMN1[0], ", ", ArrayHighMN1[1], ", ", ArrayHighMN1[2], ", ", ArrayHighMN1[3], ", ", ArrayHighMN1[4], ", ", ArrayHighMN1[5], ", ", ArrayHighMN1[6], ", ", ArrayHighMN1[7], ", ", ArrayHighMN1[8], ", ", ArrayHighMN1[9], ", ", ArrayHighMN1[10], ", ", ArrayHighMN1[11], "};");
return (HighYR);
}
//=================================================================================================================================================================================
//====Ìèíèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ YR1.===================================================================================================================================
double iLow_YR1 (string Exchange, int shift) // iLowYR (âàëþòíàÿ ïàðà, íîìåð áàðà);
{
bool Break = false;
datetime iTimeMN1_0;
datetime iTimeMN1_1;
double ArrayLowMN1[12]; // Òåõíè÷åñêèé ìàññèâ.
double LowYR; // Âîçâðàùàåìîå çíà÷åíèå.
int count = -1; // Êîëè÷åñòâî ýëåìåíòîâ äëÿ ïîèñêà.
int iBarsYR1; // Êîëè÷åñòâî áàðîâ â ãîäîâîì ÒÔ.
int i, j;
int ShiftYR1 = 0; // Òåêóùèé íîìåð áàðà ÒÔ YR1.
//----
int iBarsMN1 = iBars (Exchange, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
// Êîëè÷åñòâî áàðîâ â ÒÔ YR1 òåêóùåãî èíñòðóìåíòà.
for (i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (Exchange, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (Exchange, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
if (0 > shift || shift > iBarsYR1 - 1) LowYR = 0; // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
else
{
if (shift == 0) // Åñëè áàð íóëåâîé, òî ñ÷èòàåì óïîðîù¸ííûì ñïîñîáîì.
{
for (j = 0; j < 12; j++)
{
count++; // Ñ÷¸ò÷èê çíà÷èìûõ áàðîâ.
ArrayLowMN1[count] = iLow (Exchange, PERIOD_MN1, j);
iTimeMN1_0 = iTime (Exchange, PERIOD_MN1, j); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
iTimeMN1_1 = iTime (Exchange, PERIOD_MN1, j + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) break;// Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ. Îñòàíàâëèâàåì ïîèñê.
}
}
if (0 < shift || shift < iBarsMN1 - 1)
{
for (i = 0; i < iBarsMN1; i++)
{
iTimeMN1_0 = iTime (Exchange, PERIOD_MN1, i); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
iTimeMN1_1 = iTime (Exchange, PERIOD_MN1, i + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) // Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ. Îñòàíàâëèâàåì ïîèñê.
{
ShiftYR1++;
if (shift == ShiftYR1)
{
for (j = i + 1; j < i + 13; j++)
{
count++; // Ñ÷¸ò÷èê çíà÷èìûõ áàðîâ.
ArrayLowMN1[count] = iLow (Exchange, PERIOD_MN1, j);
iTimeMN1_0 = iTime (Exchange, PERIOD_MN1, j); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
iTimeMN1_1 = iTime (Exchange, PERIOD_MN1, j + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) // Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ. Îñòàíàâëèâàåì ïîèñê.
{
Break = true;
break;
}
}
if (Break == true) break;
}
}
}
}
LowYR = ArrayLowMN1[ArrayMinimum (ArrayLowMN1, count + 1, 0)]; // Èùèì ìàêñèìàëüíîå çíà÷åíèå
}
// Comment ("ArrayLowMN1[", count + 1, "] = {", ArrayLowMN1[0], ", ", ArrayLowMN1[1], ", ", ArrayLowMN1[2], ", ", ArrayLowMN1[3], ", ", ArrayLowMN1[4], ", ", ArrayLowMN1[5], ", ", ArrayLowMN1[6], ", ", ArrayLowMN1[7], ", ", ArrayLowMN1[8], ", ", ArrayLowMN1[9], ", ", ArrayLowMN1[10], ", ", ArrayLowMN1[11], "};");
return (LowYR);
}
//=================================================================================================================================================================================
//====Öåíà çàêðûòèÿ.===============================================================================================================================================================
double iClose_YR1 (string Exchange, int shift) // iCloseYR (âàëþòíàÿ ïàðà, íîìåð áàðà);
{
double CloseYR; // Âîçâðàùàåìîå çíà÷åíèå.
int i;
int iBarsYR1; // Êîëè÷åñòâî áàðîâ â ãîäîâîì ÒÔ.
int ShiftYR1 = 0; // Òåêóùèé íîìåð áàðà ÒÔ YR1.
//----
int iBarsMN1 = iBars (Exchange, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
// Êîëè÷åñòâî áàðîâ â ÒÔ YR1 òåêóùåãî èíñòðóìåíòà.
for (i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (Exchange, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (Exchange, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
if (0 > shift || shift > iBarsYR1 - 1) CloseYR = 0; // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
else
{
if (shift == 0) CloseYR = iClose (Exchange, PERIOD_MN1, 0); // Åñëè áàð íóëåâîé, òî öåíà çàêðûòèÿ ãîäîâîãî áàðà ðàâíà öåíå çàêðûòèÿ ìåñÿ÷íîãî áàðà.
else // Åñëè áàð íå íóëåâîé, èùåì â öèêëå íåñîâïàäåíèÿ ãîäà âðåìåíè îòêðûòèÿ ñîñåäíèõ áàðîâ.
{
for (i = 0; i < iBarsMN1; i++)
{
datetime iTimeMN1_0 = iTime (Exchange, PERIOD_MN1, i); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
datetime iTimeMN1_1 = iTime (Exchange, PERIOD_MN1, i + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) // Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ.
{
ShiftYR1++;
if (shift == ShiftYR1) CloseYR = iClose (Exchange, PERIOD_MN1, i + 1);
}
}
}
}
return (CloseYR);
}
//=================================================================================================================================================================================
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
//+------------------------------------------------------------------+
//| ZZ_Check TF YR1.mq4 |
//| Copyright © Zhunko |
//|01.07.2007 ÌF ZHUNKO zhunko@mail.ru|
//+------------------------------------------------------------------+
//|ÈÍÄÈÊÀÒÎÐ ÄËß ÊÎÍÒÐÎËß ÔÓÍÊÖÈÉ ÄËß ÒÔ YR1 èç áèáëèîòåêè |
//|"ZZ_Standard_Functions_TF_YR1_Lib.ex4" |
//+------------------------------------------------------------------+
/*#property copyright "Copyright © 2006 Zhunko"
#property link "zhunko@mail.ru"
//----
#property indicator_chart_window
#import "ZZ_Standard_Functions_TF_YR1_Lib.ex4"
// Êîëè÷åñòâî áàðîâ â ÒÔ YR1.
int iBars_YR1 (string Exchange); // iBars_YR (âàëþòíàÿ ïàðà);
// Íîìåð áàðà ïî âðåìåíè â ÒÔ YR1.
int iBarShift_YR1 (string Exchange, datetime time, bool exact); // iBarShift_YR (âàëþòíàÿ ïàðà, çíà÷åíèå âðåìåíè äëÿ ïîèñêà, âîçâðàùàåìîå çíà÷åíèå åñëè áàð íå íàéäåí (FALSE - iBarShift âîçâðàùàåò áëèæàéøèé/TRUE - iBarShift âîçâðàùàåò -1));|
// Âðåìÿ îòêðûòèÿ ïî íîìåðó áàðà â ÒÔ YR1.
datetime iTime_YR1 (string Exchange, int shift); // iTime_YR (âàëþòíàÿ ïàðà, íîìåð áàðà);
// Öåíà îòêðûòèÿ.
double iOpen_YR1 (string Exchange, int shift); // iOpen_YR (âàëþòíàÿ ïàðà, íîìåð áàðà);
// Ìàêñèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ YR1.
double iHigh_YR1 (string Exchange, int shift); // iHigh_YR (âàëþòíàÿ ïàðà, íîìåð áàðà);
// Ìèíèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ YR1.
double iLow_YR1 (string Exchange, int shift); // iLow_YR (âàëþòíàÿ ïàðà, íîìåð áàðà);
// Öåíà çàêðûòèÿ.
double iClose_YR1 (string Exchange, int shift); // iClose_YR (âàëþòíàÿ ïàðà, íîìåð áàðà);
#import
//====
extern int Number_Bar = 40;
extern string TimeYR1 = "2006.01.01 00:00";
extern bool Exact = false;
//====
string ArrayTimfram_str[9] = {"M1", "M5", "M15", "M30", "H1", "H4", "D1", "W1", "MN1"};
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int iBarsYR1 = iBars_YR1 (Symbol());
int iBarShiftYR1 = iBarShift_YR1 (Symbol(), StrToTime (TimeYR1), Exact);
datetime iTimeYR = iTime_YR1 (Symbol(), Number_Bar);
double iOpenYR1 = iOpen_YR1 (Symbol(), Number_Bar);
double iHighYR1 = iHigh_YR1 (Symbol(), Number_Bar);
double iLowYR1 = iLow_YR1 (Symbol(), Number_Bar);
double iCloseYR1 = iClose_YR1 (Symbol(), Number_Bar);
string TF;
//----
if (Period() == 1) TF = ArrayTimfram_str[0];
if (Period() == 5) TF = ArrayTimfram_str[1];
if (Period() == 15) TF = ArrayTimfram_str[2];
if (Period() == 30) TF = ArrayTimfram_str[3];
if (Period() == 60) TF = ArrayTimfram_str[4];
if (Period() == 240) TF = ArrayTimfram_str[5];
if (Period() == 1440) TF = ArrayTimfram_str[6];
if (Period() == 10080) TF = ArrayTimfram_str[7];
if (Period() == 43200) TF = ArrayTimfram_str[8];
Comment ("Èíñòðóìåíò ", Symbol(), " ", TF,
"\nÊîëè÷åñòâî áàðîâ = ", iBarsYR1,
"\nÍîìåð áàðà ïî âðåìåíè = ", iBarShiftYR1, " (", TimeYR1, ")",
"\nÂðåìÿ îòêðûòèÿ ïî íîìåðó áàðà = ", TimeToStr (iTimeYR, TIME_DATE|TIME_MINUTES), " (", Number_Bar, ")",
"\nÖåíà îòêðûòèÿ = ", iOpenYR1, "(", Number_Bar, ")",
"\nÌàêñèìàëüíàÿ öåíà = ", iHighYR1, "(", Number_Bar, ")",
"\nÌèíèìàëüíàÿ öåíà = ", iLowYR1, "(", Number_Bar, ")",
"\nÖåíà çàêðûòèÿ = ", iCloseYR1, "(", Number_Bar, ")");
// iHighYR1 = iHigh_YR1 (Symbol(), Number_Bar);
// iLow_YR1 (Symbol(), Number_Bar);
return(0);
}*/
//===================================================================================================================
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
---