ZH_Functions_Tools_1





//+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                                                                 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: