//+-----------------------------------------------------------------------------------------------+ //| 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); }*/ //===================================================================================================================
Sample
Analysis
Market Information Used:
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
ZZ_Standard_Functions_TF_YR1_Lib
Order Management characteristics:
Other Features: