0
Views
0
Downloads
0
Favorites
ZH_StandardFunctionsTfYR1.lib
//+-------------------------------------------------------------------------------------------------------------------+
//| ZH_StandardFunctionsTfYR1.lib.mq4|
//| Copyright © Zhunko |
//|01.07.2007 ÌF ZHUNKO vadim@zhunko.ru |
//+-------------------------------------------------------------------------------------------------------------------+
//| Íàáîð ôóíêöèé äëÿ ÒÔ YR1. |
//+-------------------------------------------------------------------------------------------------------------------+
//|1.Êîëè÷åñòâî áàðîâ â ÒÔ YR1. |
//| int iBars_YR1 (string symbol); // Ñèìâîëüíîå èìÿ èíñòðóìåíòà. |
//+-------------------------------------------------------------------------------------------------------------------+
//|2.Íîìåð áàðà ïî âðåìåíè â ÒÔ YR1. |
//| int iBarShift_YR1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà. |
//| datetime time, // Çíà÷åíèå âðåìåíè äëÿ ïîèñêà. |
//| bool exact) // Âîçâðàùàåìîå çíà÷åíèå åñëè áàð íå íàéäåí |
//| // (FALSE - iBarShift âîçâðàùàåò áëèæàéøèé/TRUE - iBarShift âîçâðàùàåò -1). |
//+-------------------------------------------------------------------------------------------------------------------+
//|3.Âðåìÿ îòêðûòèÿ ïî íîìåðó áàðà â ÒÔ YR1. |
//| datetime iTime_YR1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà. |
//| int shift) // Íîìåð áàðà. |
//+-------------------------------------------------------------------------------------------------------------------+
//|4.Öåíà îòêðûòèÿ âûáðàííîãî áàðà â ÒÔ YR1. |
//| double iOpen_YR1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà. |
//| int shift) // Íîìåð áàðà. |
//+-------------------------------------------------------------------------------------------------------------------+
//|5.Ìàêñèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ YR1. |
//| double iHigh_YR1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà. |
//| int shift) // Íîìåð áàðà. |
//+-------------------------------------------------------------------------------------------------------------------+
//|6.Ìèíèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ YR1. |
//| double iLow_YR1 (string symbol, // Ââàëþòíàÿ ïàðà. |
//| int shift) // Íîìåð áàðà. |
//+-------------------------------------------------------------------------------------------------------------------+
//|7.Öåíà çàêðûòèÿ âûáðàííîãî áàðà â ÒÔ YR1. |
//| double iClose_YR1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà. |
//| int shift) // Íîìåð áàðà. |
//+-------------------------------------------------------------------------------------------------------------------+
#property copyright "Copyright © 2006 Zhunko"
#property link "vadim@zhunko.ru"
#property library
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææ
//ææææ Ñòàíäàðäíûå áèáëèîòå÷íûå ôóíêöèè äëÿ ÒÔ YR1. ææææ
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 1. Êîëè÷åñòâî áàðîâ â ÒÔ YR1.
int iBars_YR1 (string symbol) // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
{
int i;
int iBarsMN1; // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
int iBarsYR1 = 0; // Êîëè÷åñòâî áàðîâ â ÒÔ YR1.
//----
iBarsMN1 = iBars (symbol, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
for (i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (symbol, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (symbol, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
return (iBarsYR1);
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 2. Íîìåð áàðà ïî âðåìåíè â ÒÔ YR1.
int iBarShift_YR1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
datetime time, // Çíà÷åíèå âðåìåíè äëÿ ïîèñêà.
bool exact) // Âîçâðàùàåìîå çíà÷åíèå åñëè áàð íå íàéäåí (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 (symbol, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
FirstYear = StrToInteger (StringSubstr (TimeToStr (iTime (symbol, PERIOD_MN1, iBarsMN1 - 1), TIME_DATE), 0, 4)); // Ïåðâûé ãîä íà÷àëà èñòîðèè ïàðû.
if (TimeYear (time) < FirstYear || Year() < TimeYear (time)) // Äëÿ ýêîíîìèè âðåìåíè íà öèêëàõ, ïðè âûáðàííîì âðåìåíè ñî çíà÷åíèåì ìåíüøåì âðåìåíè íà÷àëà èñòîðèè èëè áîëüøåì òåêóùåãî ãîäà.
{
if (exact == false) // Åñëè ïåðåêëþ÷àòåëü çàïðåùàåò, òî âîçâðàùàåì íîìåð áëèæàéøåãî áàðà (íîìåð ïåðâîãî áàðà â èñòîðèè).
{// Åñëè âõîäíîå âðåìÿ ìåíüøå, ÷åì âðåìÿ íà÷àëî èñòîðèè, òî âîçâðàùàåìì íîìåð áàðà íà÷àëà èñòîðèè.
if (TimeYear (time) < FirstYear) return (Year() - FirstYear);
if (TimeYear (time) > Year()) return (0); // Åñëè âõîäíîå âðåìÿ áîëüøå, ÷åì âðåìÿ êîíöà èñòîðèè, òî âîçâðàùàåìì íîìåð áàðà êîíöà èñòîðèè.
}
else return (-1); // Åñëè ïåðåêëþ÷àòåëü ðàçðåøàåò, òî âîçâðàùàåì -1 â ñëó÷àå îòñóòñòâèÿ áàðà.
}
else // Åñëè âõîäíîå âðåìÿ áîëüøå èëè ðàâíî âðåìåíè íà÷àëà èñòîðèè, òî ïðîâåðÿåì âõîäíîå âðåìÿ íà ñîâïàäåíèå ñ ìåñÿ÷íîé èñòîðèåé.
{
if (exact == true) // Åñëè ïåðåêëþ÷àòåëü ðàçðåøàåò, òî âîçâðàùàåì -1 â ñëó÷àå îòñóòñòâèÿ áàðà.
{
for (i = 0, ShiftYR1 = 0; i < iBarsMN1; i++)
{// Åñëè ïðîèçîøëà ñìåíà ãîäà, ïðèáàâëÿåì áàð.
if (MathMod (TimeYear (1.0 * iTime (symbol, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (symbol, PERIOD_MN1, i + 1))) != 0) ShiftYR1++;
// Âûõîäèì èç öèêëà ïî óñëîâèþ ðàâåíñòâà âõîäíîãî ïàðàìåòðà íàéäåíîìó â öèêëå.
if (TimeYear (time) == TimeYear (iTime (symbol, PERIOD_MN1, i)))
{
Coincidence = true;
break;
}
}
if (Coincidence == false) return (-1); // Åñëè ñîâïàäåíèÿ â öèêëå íå ïðîèçîøëî, âîçâðàùàåì -1.
}
else // Åñëè ïåðåêëþ÷àòåëü çàïðåùàåò, òî âîçâðàùàåì áëèæàéøèé ïî õîäó öèêëà (ïðåäûäóùèé) áàð.
{// Ñ÷èòàåì êîëè÷åñòâî áàðîâ â ÒÔ YR1.
for (i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (symbol, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (symbol, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
for (i = 0, ShiftYR1 = -1; i < iBarsMN1; i++)
{
iTimeMN1_0 = iTime (symbol, PERIOD_MN1, i);
iTimeMN1_1 = iTime (symbol, 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)) return (ShiftYR1);
else
{
if (TimeYear (iTimeMN1_1) < TimeYear (time)) // Íå ïðîâåðÿåì íà ïîñëåäóùèé áàð.
{
ShiftYR1++; // Âîçâðàùàåì ïðåäûäóùèé áàð, ñîîòâåòñòâóþùèé ìëàäøåìó ãîäó.
return (ShiftYR1);
}
}
}
if (0 < ShiftYR1 && ShiftYR1 < iBarsYR1) // Ïðèìåíÿåì îáû÷íûå óñëîâèÿ "âîðîòà" äëÿ íå ïåðâîãî è íå ïîñëåäíåãî ãîäà â èñòîðèè.
{// Âûõîäèì èç öèêëà ïî óñëîâèþ ðàâåíñòâà âõîäíîãî ïàðàìåòðà íàéäåíîìó â öèêëå.
if (TimeYear (time) == TimeYear (iTimeMN1_0)) return (ShiftYR1);
else // Åñëè èñêîìûé ãîä íå ðàâåí íàéäåíîìó, òî ïðîâåðÿåì íà îòñóòñòâèå áàðà.
{
if (TimeYear (iTimeMN1_1) < TimeYear (time) && TimeYear (time) < TimeYear (iTimeMN1_0))
{
ShiftYR1++; // Âîçâðàùàåì ïðåäûäóùèé áàð, ñîîòâåòñòâóþùèé ìëàäøåìó ãîäó.
return (ShiftYR1);
}
}
}
if (ShiftYR1 == iBarsYR1) return (ShiftYR1); // Åñëè áàð ïîñëåäíèé, òî âîçâðàùàåì òåêóùèé áàð, ñîîòâåòñòâóþùèé ìëàäøåìó ãîäó.
}
}
}
}
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 3. Âðåìÿ îòêðûòèÿ ïî íîìåðó áàðà â ÒÔ YR1.
datetime iTime_YR1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà
int shift) // Íîìåð áàðà.
{
int i;
int iBarsYR1; // Êîëè÷åñòâî áàðîâ â ãîäîâîì ÒÔ.
int ShiftYR1 = -1; // Òåêóùèé íîìåð áàðà ÒÔ YR1.
//----
int iBarsMN1 = iBars (symbol, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
// Êîëè÷åñòâî áàðîâ â ÒÔ YR1 òåêóùåãî èíñòðóìåíòà.
for (i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (symbol, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (symbol, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
if (0 > shift || shift >= iBarsYR1) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
else
{
for (i = 0; i < iBarsMN1; i++)
{
datetime iTimeMN1_0 = iTime (symbol, PERIOD_MN1, i); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
datetime iTimeMN1_1 = iTime (symbol, PERIOD_MN1, i + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) // Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ.
{
ShiftYR1++;
if (shift == ShiftYR1) return (iTimeMN1_0);
}
}
}
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 4. Öåíà îòêðûòèÿ âûáðàííîãî áàðà â ÒÔ YR1.
double iOpen_YR1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
int shift) // Íîìåð áàðà.
{
int i;
int iBarsYR1; // Êîëè÷åñòâî áàðîâ â ãîäîâîì ÒÔ.
int ShiftYR1 = -1; // Òåêóùèé íîìåð áàðà ÒÔ YR1.
//----
int iBarsMN1 = iBars (symbol, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
// Êîëè÷åñòâî áàðîâ â ÒÔ YR1 òåêóùåãî èíñòðóìåíòà.
for (i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (symbol, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (symbol, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
if (0 > shift || shift >= iBarsYR1) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
else
{
for (i = 0; i < iBarsMN1; i++)
{
datetime iTimeMN1_0 = iTime (symbol, PERIOD_MN1, i); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
datetime iTimeMN1_1 = iTime (symbol, PERIOD_MN1, i + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) // Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ.
{
ShiftYR1++;
if (shift == ShiftYR1) return (iOpen (symbol, PERIOD_MN1, i)); // Âîçâðàùàåì öåíó îòêðûòèÿ íàéäåííîãî ãîäîâîãî áàðà.
}
}
}
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 5. Ìàêñèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ YR1.
double iHigh_YR1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
int shift) // Íîìåð áàðà.
{
datetime iTimeMN1_0;
datetime iTimeMN1_1;
double ArrayHighMN1[12]; // Òåõíè÷åñêèé ìàññèâ.
int iBarsYR1; // Êîëè÷åñòâî áàðîâ â ãîäîâîì ÒÔ.
int i, j, k;
int ShiftYR1 = 0; // Òåêóùèé íîìåð áàðà ÒÔ YR1.
//----
int iBarsMN1 = iBars (symbol, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
// Êîëè÷åñòâî áàðîâ â ÒÔ YR1 òåêóùåãî èíñòðóìåíòà.
for (i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (symbol, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (symbol, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
if (0 > shift || shift > iBarsYR1 - 1) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
else
{
if (shift == 0) // Åñëè áàð íóëåâîé, òî ñ÷èòàåì óïîðîù¸ííûì ñïîñîáîì.
{
for (j = 0, k = 0; j < 12; j++)
{
ArrayHighMN1[k] = iHigh (symbol, PERIOD_MN1, j); // Çàíîñèì â ììàññèâ ìàêñèìóì.
iTimeMN1_0 = iTime (symbol, PERIOD_MN1, j); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
iTimeMN1_1 = iTime (symbol, PERIOD_MN1, j + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
k++; // Ñ÷¸ò÷èê çíà÷èìûõ áàðîâ.
// Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ. Îñòàíàâëèâàåì ïîèñê. Âîçâðàùàåì ìàêñèìóì.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) return (ArrayHighMN1[ArrayMaximum (ArrayHighMN1, k, 0)]);
}
}
if (0 < shift || shift < iBarsYR1)
{
for (i = 0; i < iBarsMN1; i++)
{
iTimeMN1_0 = iTime (symbol, PERIOD_MN1, i); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
iTimeMN1_1 = iTime (symbol, 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, k = 0; j < i + 13; j++)
{
ArrayHighMN1[k] = iHigh (symbol, PERIOD_MN1, j); // Çàíîñèì â ììàññèâ ìàêñèìóì.
iTimeMN1_0 = iTime (symbol, PERIOD_MN1, j); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
iTimeMN1_1 = iTime (symbol, PERIOD_MN1, j + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
k++; // Ñ÷¸ò÷èê çíà÷èìûõ áàðîâ.
// Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ. Îñòàíàâëèâàåì ïîèñê. Âîçâðàùàåì ìàêñèìóì.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) return (ArrayHighMN1[ArrayMaximum (ArrayHighMN1, k, 0)]);
}
}
}
}
}
}
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 6. Ìèíèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ YR1.
double iLow_YR1 (string symbol, // Ââàëþòíàÿ ïàðà.
int shift) // Íîìåð áàðà.
{
datetime iTimeMN1_0;
datetime iTimeMN1_1;
double ArrayLowMN1[12]; // Òåõíè÷åñêèé ìàññèâ.
int iBarsYR1; // Êîëè÷åñòâî áàðîâ â ãîäîâîì ÒÔ.
int i, j, k;
int ShiftYR1 = 0; // Òåêóùèé íîìåð áàðà ÒÔ YR1.
//----
int iBarsMN1 = iBars (symbol, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
// Êîëè÷åñòâî áàðîâ â ÒÔ YR1 òåêóùåãî èíñòðóìåíòà.
for (i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (symbol, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (symbol, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
if (0 > shift || shift > iBarsYR1 - 1) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
else
{
if (shift == 0) // Åñëè áàð íóëåâîé, òî ñ÷èòàåì óïîðîù¸ííûì ñïîñîáîì.
{
for (j = 0, k = 0; j < 12; j++)
{
ArrayLowMN1[k] = iLow (symbol, PERIOD_MN1, j);
iTimeMN1_0 = iTime (symbol, PERIOD_MN1, j); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
iTimeMN1_1 = iTime (symbol, PERIOD_MN1, j + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
k++; // Ñ÷¸ò÷èê çíà÷èìûõ áàðîâ.
// Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ. Îñòàíàâëèâàåì ïîèñê. Âîçâðàùàåì ìèíèìóì.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) return (ArrayLowMN1[ArrayMinimum (ArrayLowMN1, k, 0)]);
}
}
if (0 < shift || shift < iBarsYR1)
{
for (i = 0; i < iBarsMN1; i++)
{
iTimeMN1_0 = iTime (symbol, PERIOD_MN1, i); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
iTimeMN1_1 = iTime (symbol, 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, k = 0; j < i + 13; j++)
{
ArrayLowMN1[k] = iLow (symbol, PERIOD_MN1, j);
iTimeMN1_0 = iTime (symbol, PERIOD_MN1, j); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
iTimeMN1_1 = iTime (symbol, PERIOD_MN1, j + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
k++; // Ñ÷¸ò÷èê çíà÷èìûõ áàðîâ.
// Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ. Îñòàíàâëèâàåì ïîèñê. Âîçâðàùàåì ìèíèìóì.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) return (ArrayLowMN1[ArrayMinimum (ArrayLowMN1, k, 0)]);
}
}
}
}
}
}
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 7. Öåíà çàêðûòèÿ âûáðàííîãî áàðà â ÒÔ YR1.
double iClose_YR1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
int shift) // Íîìåð áàðà.
{
int i;
int iBarsYR1; // Êîëè÷åñòâî áàðîâ â ãîäîâîì ÒÔ.
int ShiftYR1 = 0; // Òåêóùèé íîìåð áàðà ÒÔ YR1.
//----
int iBarsMN1 = iBars (symbol, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
// Êîëè÷åñòâî áàðîâ â ÒÔ YR1 òåêóùåãî èíñòðóìåíòà.
for (i = 0; i < iBarsMN1; i++) if (MathMod (TimeYear (1.0 * iTime (symbol, PERIOD_MN1, i)), 1.0 * TimeYear (iTime (symbol, PERIOD_MN1, i + 1))) != 0) iBarsYR1++;
if (shift < 0 || shift >= iBarsYR1) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
else
{
if (shift == 0) return (iClose (symbol, PERIOD_MN1, 0)); // Åñëè áàð íóëåâîé, òî öåíà çàêðûòèÿ ãîäîâîãî áàðà ðàâíà öåíå çàêðûòèÿ ìåñÿ÷íîãî áàðà.
else // Åñëè áàð íå íóëåâîé, èùåì â öèêëå íåñîâïàäåíèÿ ãîäà âðåìåíè îòêðûòèÿ ñîñåäíèõ áàðîâ.
{
for (i = 0; i < iBarsMN1; i++)
{
datetime iTimeMN1_0 = iTime (symbol, PERIOD_MN1, i); // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
datetime iTimeMN1_1 = iTime (symbol, PERIOD_MN1, i + 1); // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà MN1.
if (MathMod (TimeYear (1.0 * iTimeMN1_0), 1.0 * TimeYear (iTimeMN1_1)) != 0) // Åñëè îñòàòîê íå ðàâåí íóëþ, òî áàðû íàõîäÿòñÿ â ðàçíûõ ãîäàõ.
{
ShiftYR1++;
if (shift == ShiftYR1) return (iClose (symbol, PERIOD_MN1, i + 1)); // Âîçâðàùàåì öåíó çàêðûòèÿ íàéäåííîãî ãîäîâîãî áàðà.
}
}
}
}
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
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
---