0
Views
0
Downloads
0
Favorites
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);
}
//========================================================================================================================================================================================================
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
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
---