//+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ //| ZH_Functions_Tools_1.mq4 | //| Copyright © Zhunko | //|07.11.2007-28.02.2008 MF ZHUNKO zhunko@mail.ru | //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ //| Áèáëèîòåêà ïðåäíàçíà÷åíà äëÿ ðàáîòû â ñîñòàâå êîìïëåêñà ïðîãðàìì ZZ_AIASM X-XXXX, ZM_AIASM Checking Files. | //| Îáùèå ôóíêöèè. Çäåñü ñîáðàíû ôóíêöèè îäíîâðåìåííî èñïîëüçóåìûå â ðàçíûõ ïðîãðàììàõ êîìïëåêñà. | //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ //| 1.Ôóíêöèÿ äëÿ àâòîìàòè÷åñêîãî ðàñïðåäåëåíèÿ ñïåêòðà öâåòà.---------------------------------------------------------------------------------------------------------------+ //| AutoColor (èíâåðñèÿ ðàñïðåäåëåíèÿ öâåòà true/false = êðàñíûé-ôèîëåòîâûé/ôèîëåòîâûé-êðàñíûé, true/false = çàïîëíåíèå ìàññèâà/âîçâðàò ôèêñèðîâàííîãî çíà÷åíèÿ (0 - 1535),| //| åñëè ArraySingle true/false = êîëè÷åñòâî ñïåêòðàëüíûõ ëèíèé/çíà÷åíèå (1 - 1535) äëÿ âû÷èñëåíèÿ îäíîé ñïåêòðàëüíîé ëèíèè, | //| îäíîìåðíûé ìàññèâ äëÿ çàïîëíåíèÿ ïðè ArraySingle = true); | //| int AutoColor (bool InversColor, bool ArraySingle, int AmountSpectralLine, int Set_Color[]); | //| 2.Ôóíêöèÿ âîçâðàùàåò ñòðîêîâîå íàçâàíèå ÒÔ ïî íîìåðó ÒÔ.-----------------------------------------------------------------------------------------------------------------+ //| NumberInString (Íîìåð ÒÔ îò "0" äî "8"); | //| string NumberInString (int NumberTF); | //| 3.Ôóíêöèÿ äëÿ âû÷èñëåíèÿ êîëè÷åñòâà ðàçðÿäîâ ÷èñëà äî äåñÿòè÷íîé òî÷êè.--------------------------------------------------------------------------------------------------+ //| Exponent (÷èñëî äëÿ âû÷èñëåíèé, îãðàíè÷åíèå âû÷èñëåíèé ðàçðÿäîâ); | //| Êîëè÷åñòâî ðàçðÿäîâ ÷èñëà ôîðìàòà 1,234õ10^p ýòî ïîêàçàòåëü ñòåïåíè (p) ïðè îñíîâàíèè äåñÿòü. | //| int Exponent (double Value, int Limiter); | //| 4.Âèçóàëèçàöèÿ äàííûõ ìàññèâà ñ äàííûìè äâîéíîé òî÷íîñòè â êîììåíòàðèÿõ.-------------------------------------------------------------------------------------------------+ //| DoubleArrayInComment (èìÿ ìàññèâà, âèçóàëèçèðóåìîå êîëè÷åñòâî çíàêîâ ïîñëå çàïÿòîé, 1-î ìåðíûé âèçóàëèçèðóåìûé ìàññèâ, 2-õ ìåðíûé âèçóàëèçèðóåìûé ìàññèâ); | //| string DoubleArrayInComment (string NameArray, int digits, double Array1[], double Array2[][]); | //| 5.Âèçóàëèçàöèÿ äàííûõ ìàññèâà ñ öåëî÷èñëåííûìè äàííûìè â êîììåíòàðèÿõ.---------------------------------------------------------------------------------------------------+ //| IntArrayInComment (èìÿ ìàññèâà, 1-î ìåðíûé âèçóàëèçèðóåìûé ìàññèâ, 2-õ ìåðíûé âèçóàëèçèðóåìûé ìàññèâ); | //| string IntArrayInComment (string NameArray, int Array1[], int Array2[][]); | //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ #property copyright "Copyright © 2007 Zhunko" #property link "zhunko@mail.ru" #property library //ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ //1===Ðàñ÷¸ò äëÿ àâòîìàòè÷åñêîãî ðàñïðåäåëåíèÿ ñïåêòðà öâåòà ïî êàíàëàì.================================================================================================================================== // AutoColor (èíâåðñèÿ ðàñïðåäåëåíèÿ öâåòà true/false = ôèîëåòîâûé-êðàñíûé/êðàñíûé-ôèîëåòîâûé, true/false = çàïîëíåíèå ìàññèâà/âîçâðàò ôèêñèðîâàííîãî çíà÷åíèÿ (0 - 1535), // åñëè ArraySingle true/false = êîëè÷åñòâî ñïåêòðàëüíûõ ëèíèé/çíà÷åíèå (0 - 1535) äëÿ âû÷èñëåíèÿ îäíîé ñïåêòðàëüíîé ëèíèè, îäíîìåðíûé ìàññèâ äëÿ çàïîëíåíèÿ ïðè ArraySingle = true); // Äëÿ ðàáîòû ôóíêöèè â ðåæèìå ArraySingle = true íàäî îáúÿâèòü ìàññèâ "Set_Color[]". int AutoColor (bool& InversColor, bool& ArraySingle, int& AmountSpectralLine, int& Set_Color[]) { int Begin; int End; int i, j; int n = 0; int RC, GC, BC; int StepColor; // Êîíòðîëü íà çàïðåäåëüíûå çíà÷åíèÿ. if (InversColor == true) { if (AmountSpectralLine < 0) return (16711680); if (AmountSpectralLine > 1535) return (16711935); } if (InversColor == false) { if (AmountSpectralLine < 0) return (16711935); if (AmountSpectralLine > 1535) return (16711680); } // Ïîäãîòîâêà ãðàíèö ïîèñêà. if (ArraySingle == true) // Äëÿ çàïèñè çíà÷åíèé öâåòà â ìàññèâ. { Begin = 0; End = 1535; StepColor = 1535 / AmountSpectralLine; } else // Äëÿ âîçâðàòà ôèêñèðîâàííîãî çíà÷åíèÿ. { Begin = AmountSpectralLine; End = AmountSpectralLine; StepColor = 1; } // Ïîèñê è âû÷èñëåíèÿ. for (j = Begin; j <= End; j += StepColor, n++) { if (InversColor == true) i = MathAbs (j + StepColor - 1535); if (InversColor == false) i = j; //---- if (0 <= i && i <= 255) // Ôàçà ¹1. { RC = 255; GC = 0; BC = 16711680 - 65536 * i; } if (256 <= i && i <= 511) // Ôàçà ¹2. { RC = 255; GC = 256 * (i - 256); BC = 0; } if (512 <= i && i <= 767) // Ôàçà ¹3. { RC = 767 - i; GC = 65280; BC = 0; } if (768 <= i && i <= 1023) // Ôàçà ¹4. { RC = 0; GC = 65280; BC = 65536 * (i - 768); } if (1024 <= i && i <= 1279) // Ôàçà ¹5. { RC = 0; GC = 65280 - 256 * (i - 1024); BC = 16711680; } if (1280 <= i && i <= 1535) // Ôàçà ¹6. { RC = i - 1280; GC = 0; BC = 16711680; } if (ArraySingle == true) { ArrayResize (Set_Color, n + 1); Set_Color[n] = RC + GC + BC; } } return (RC + GC + BC); } //======================================================================================================================================================================================================== //2===Ôóíêöèÿ ïðåîáðàçîâàíèÿ ñèìâîëüíîãî ïðåäñòàâëåíèÿ ÒÔ â ñòðîêîâîå ïî íîìåðó ÒÔ.======================================================================================================================= // Ôóíêöèÿ âîçâðàùàåò ñòðîêîâîå íàçâàíèå ÒÔ ïî íîìåðó ÒÔ. // NumberInString (Íîìåð ÒÔ îò "0" äî "8"); string NumberTFInStringName (int NumberTF) { int i; string TimeFram = ""; int TimFram_Sym[9][3] = {77, 49, 0, 77, 53, 0, 77, 49, 53, 77, 51, 48, 72, 49, 0, 72, 52, 0, 68, 49, 0, 87, 49, 0, 77, 78, 49}; // Ñèìâîëüíîå ïðåäñòàâëåíèå ñòðîêîâûõ íàçâàíèé ÒÔ. //---- for (i = 0; i < 3; i++) TimeFram = TimeFram + StringSetChar ("", 0, TimFram_Sym[NumberTF][i]); return (StringTrimRight (TimeFram)); } //======================================================================================================================================================================================================== //3===Ôóíêöèÿ äëÿ âû÷èñëåíèÿ êîëè÷åñòâà ðàçðÿäîâ ÷èñëà äî äåñÿòè÷íîé òî÷êè.=============================================================================================================================== // Exponent (÷èñëî äëÿ âû÷èñëåíèé, îãðàíè÷åíèå âû÷èñëåíèé ðàçðÿäîâ); // Êîëè÷åñòâî ðàçðÿäîâ ÷èñëà ôîðìàòà 1,234õ10^p ýòî ïîêàçàòåëü ñòåïåíè (p) ïðè îñíîâàíèè äåñÿòü. int Exponent (double& Value, int& Limiter) { int n; int pow; // Ïîêàçàòåëü ñòåïåíè. int value = MathAbs (Value); // Áåð¸ì àáñîëþòíîå çíà÷åíèå. //---- if (value * MathPow (10, Limiter) == 0) return (0); // Åñëè ÷èñëî ðàâíî íóëþ, òî âîçâðàùàåì íîëü. if (value < 1) // Åñëè ÷èñëî ìåíüøå åäèíèöè. { for (pow = 0; pow <= Limiter; pow++) { n = value * MathPow (10, pow); if (1 <= n && n < 10) break; // Ïððîâåðÿåì íà ðàâåíñòâî ïåðâîìó ðàçðÿäó. } } if (value >= 1) // Åñëè ÷èñëî áîëüøå èëè ðàâíî åäèíèöè. { for (pow = 0; pow >= -Limiter; pow--) { n = value * MathPow (10, pow); if (1 <= n && n < 10) break; // Ïððîâåðÿåì íà ðàâåíñòâî ïåðâîìó ðàçðÿäó. } } return (-pow); // Âîçâðàùàåì ñ îáðàòíûì çíàêîì. } //======================================================================================================================================================================================================== //4===Âèçóàëèçàöèÿ äàííûõ ìàññèâà ñ äàííûìè äâîéíîé òî÷íîñòè â êîììåíòàðèÿõ.============================================================================================================================== // string DoubleArrayInComment (èìÿ ìàññèâà, âèçóàëèçèðóåìîå êîëè÷åñòâî çíàêîâ ïîñëå çàïÿòîé, 1-î ìåðíûé âèçóàëèçèðóåìûé ìàññèâ, 2-õ ìåðíûé âèçóàëèçèðóåìûé ìàññèâ); // Ôóíêöèÿ âîçâðàùàåò òåêñò, ñîäåðæèìîå êîíòðîëëèðóåìîãî ìàññèâà. string DoubleArrayInComment (string& NameArray, int& digits, double& Array1[], double& Array2[][]) { int i1, i2; string Headline = ""; string Str[]; int Range11 = ArrayRange (Array1, 0); int Range21 = ArrayRange (Array2, 0); int Range22 = ArrayRange (Array2, 1); int Cycle1 = MathMax (Range11, Range21); int Cycle2 = Range22; ArrayResize (Str, Cycle1 + 1); //---- for (i1 = 0; i1 < Cycle1; i1++) { if (Range11 != 0) Str[i1] = NameArray + "[" + Range11 + "] = {"; if (Range21 != 0 && Range22 != 0) Str[i1] = NameArray + "[" + i1 + "][" + Range22 + "] = {"; if (Range11 != 0) Str[i1] = Str[i1] + DoubleToStr (Array1[i1], digits) + ", "; for (i2 = 0; i2 < Cycle2; i2++) if (Range21 != 0 && Range22 != 0) Str[i1] = Str[i1] + DoubleToStr (Array2[i1][i2], digits) + ", "; Str[i1] = StringSubstr (Str[i1], 0, StringLen (Str[i1]) - 2) + "};\n"; } for (i1 = 0; i1 < Cycle1; i1++) Headline = Headline + Str[i1]; Comment (Headline); return (Headline); } //======================================================================================================================================================================================================== //5===Âèçóàëèçàöèÿ äàííûõ ìàññèâà ñ öåëî÷èñëåííûìè äàííûìè â êîììåíòàðèÿõ.================================================================================================================================ // string DoubleArrayInComment (èìÿ ìàññèâà, âèçóàëèçèðóåìîå êîëè÷åñòâî çíàêîâ ïîñëå çàïÿòîé, 1-î ìåðíûé âèçóàëèçèðóåìûé ìàññèâ, 2-õ ìåðíûé âèçóàëèçèðóåìûé ìàññèâ); // Ôóíêöèÿ âîçâðàùàåò òåêñò, ñîäåðæèìîå êîíòðîëëèðóåìîãî ìàññèâà. string IntArrayInComment (string& NameArray, int& Array1[], int& Array2[][]) { int i1, i2; string Headline = ""; string Str[]; int Range11 = ArrayRange (Array1, 0); int Range21 = ArrayRange (Array2, 0); int Range22 = ArrayRange (Array2, 1); int Cycle1 = MathMax (Range11, Range21); int Cycle2 = Range22; ArrayResize (Str, Cycle1 + 1); //---- for (i1 = 0; i1 < Cycle1; i1++) { if (Range11 != 0) Str[i1] = NameArray + "[" + Range11 + "] = {"; if (Range21 != 0 && Range22 != 0) Str[i1] = NameArray + "[" + i1 + "][" + Range22 + "] = {"; if (Range11 != 0) Str[i1] = Str[i1] + DoubleToStr (Array1[i1], 0) + ", "; for (i2 = 0; i2 < Cycle2; i2++) if (Range21 != 0 && Range22 != 0) Str[i1] = Str[i1] + DoubleToStr (Array2[i1][i2], 0) + ", "; Str[i1] = StringSubstr (Str[i1], 0, StringLen (Str[i1]) - 2) + "};\n"; } for (i1 = 0; i1 < Cycle1; i1++) Headline = Headline + Str[i1]; Comment (Headline); return (Headline); } //======================================================================================================================================================================================================== //ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
Sample
Analysis
Market Information Used:
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features: