//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| b-PSI@Base.mq4 |
//| Copyright © 2012, Igor Stepovoi aka TarasBY |
//| taras_bulba@tut.by |
//| 17.03.2012 Áèáëèîòåêà áàçîâûõ ôóíêöèé. |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Äàííûé ïðîäóêò ïðåäíàçíà÷åí äëÿ íåêîìåð÷åñêîãî èñïîëüçîâàíèÿ. Ïóáëèêàöèÿ ðàçðå- |
//|øåíà òîëüêî ïðè óêàçàíèè èìåíè àâòîðà (TarasBY). Ðåäàêòèðîâàíèå èñõîäíîãî êîäà äî- |
//|ïóñòèìà òîëüêî ïðè óñëîâèè ñîõðàíåíèÿ äàííîãî òåêñòà, ññûëîê è èìåíè àâòîðà. Ïðî- |
//|äàæà áèáëèîòåêè èëè îòäåëüíûõ å¸ ÷àñòåé ÇÀÏÐÅÙÅÍÀ. |
//| Àâòîð íå íåñ¸ò îòâåòñòâåííîñòè çà âîçìîæíûå óáûòêè, ïîëó÷åííûå â ðåçóëüòàòå èñ- |
//|ïîëüçîâàíèÿ áèáëèîòåêè. |
//| Ïî âñåì âîïðîñàì, ñâÿçàííûì ñ ðàáîòîé áèáëèîòåêè, çàìå÷àíèÿìè èëè ïðåäëîæåíèÿìè |
//|ïî å¸ äîðàáîòêå îáðàùàòüñÿ íà Skype: TarasBY èëè e-mail. |
//+-----------------------------------------------------------------------------------+
//| This product is intended for non-commercial use. The publication is only allo- |
//|wed when you specify the name of the author (TarasBY). Edit the source code is va- |
//|lid only under condition of preservation of the text, links and author's name. |
//| Selling a module or(and) parts of it PROHIBITED. |
//| The author is not liable for any damages resulting from the use of a module. |
//| For all matters relating to the work of the module, comments or suggestions for |
//|their improvement in the contact Skype: TarasBY or e-mail. |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
#property copyright "Copyright © 2008-12, TarasBY WM R418875277808; Z670270286972"
#property link "taras_bulba@tut.by"
#property library
//IIIIIIIIIIIIIIIIIII==================CONSTANS=================IIIIIIIIIIIIIIIIIIIIII+
//IIIIIIIIIIIIIIIIIII========Ãëîáàëüíûå ïåðåìåííûå ìîäóëÿ=======IIIIIIIIIIIIIIIIIIIIII+
//IIIIIIIIIIIIIIIIIII=========Ïîäêëþ÷åíèå âíåøíèõ ìîäóëåé=======IIIIIIIIIIIIIIIIIIIIII+
//IIIIIIIIIIIIIIIIIII===========Ïåðå÷åíü ôóíêöèé ìîäóëÿ=========IIIIIIIIIIIIIIIIIIIIII+
//|***********************************************************************************|
//| ÐÀÇÄÅË: Îáùèå ôóíêöèè |
//|***********************************************************************************|
//double fGet_Point (string fs_Symbol = "")
// Ôóíêöèÿ, ãàðàíòèðîâàííîãî ïîëó÷åíèÿ Point
/*bool fCCV_D (double fd_Value, // Ïðîâåðÿåìûé ïàðàìåòð
int fi_IND)*/ // èíäåêñ ïàðàìåòðà â ìàññèâå
// Ôèêñèðóåò ôàêò èçìåíåíèÿ ïðîâåðÿåìîãî double ïàðàìåòðà
/*bool fCCV_S (string fs_Value, // Ïðîâåðÿåìûé ïàðàìåòð
int fi_IND)*/ // èíäåêñ ïàðàìåòðà â ìàññèâå
// Ôèêñèðóåò ôàêò èçìåíåíèÿ ïðîâåðÿåìîãî string ïàðàìåòðà
/*bool fCCV_B (bool fb_Value, // Ïðîâåðÿåìûé ïàðàìåòð
int fi_IND)*/ // èíäåêñ ïàðàìåòðà â ìàññèâå
// Ôèêñèðóåò ôàêò èçìåíåíèÿ ïðîâåðÿåìîãî bool ïàðàìåòðà
//string fGet_NameOP (int fi_Type) // Ôóíêöèÿ âîçâðàùàåò íàèìåíîâàíèå òîðãîâîé îïåðàöèè
//string fGet_NameTF (int fi_TF) // Âîçâðàùàåò íàèìåíîâàíèå òàéìôðåéìà
//string fGet_SignCurrency() // Ôóíêöèÿ âîçâðàùàåò çíà÷¸ê âàëþòû äåïîçèòà
//string CheckBOOL (int M) // Âîçâðàùàåò íàèìåíîâàíèå ñîñòîÿíèÿ (ÄÀ\ÍÅÒ)
//string fGet_TimeToStr (datetime fdt_Time)
// Âîçâðàùàåò ïðîäîëæèòåëüíîñòü ïåðèîäà â D:H:M
//double IIFd (bool condition, double ifTrue, double ifFalse)
// Âîçâðàùàåò îäíî èç äâóõ çíà÷åíèé DOUBLE â çàâèñèìîñòè îò óñëîâèÿ
//string IIFs (bool condition, string ifTrue, string ifFalse)
// Âîçâðàùàåò îäíî èç äâóõ çíà÷åíèé STRING â çàâèñèìîñòè îò óñëîâèÿ
//color IIFc (bool condition, color ifTrue, color ifFalse)
// Âîçâðàùàåò îäíî èç äâóõ çíà÷åíèé COLOR â çàâèñèìîñòè îò óñëîâèÿ
//|***********************************************************************************|
//| ÐÀÇÄÅË: Ðàáîòû ñ ìàññèâàìè |
//|***********************************************************************************|
/*int fGet_INDInArrayINT (int fi_Value, // Èñêîìûé ýëåìåíò
int ar_Array[])*/ // Ïðîâåðÿåìûé ìàññèâ
// Ïîëó÷àåì èíäåêñ èñêîìîãî ýëåìåíòà â ìàññèâå int
/*int fGet_INDInArraySTR (string fs_Value, // Èñêîìûé ýëåìåíò
string ar_Array[])*/ // Ïðîâåðÿåìûé ìàññèâ
// Ïîëó÷àåì èíäåêñ èñêîìîãî ýëåìåíòà â ìàññèâå string
//int fGet_NumPeriods (int fi_Period)// Ïîëó÷àåì íîìåð ïåðèîäà ãðàôèêà
//void InitializeArray_STR (string& fsa_Array[], string fs_Value = "")
// Èíèöèàëèçèðóåì ìàññèâ STRING
/*void fCreat_ArrayGV (string& ar_Base[], // ðàáî÷èé ìàññèâ
string ar_Add[])*/ // äîáàâëÿåìû ìàññèâ
// Ñîçäà¸ì ìàññèâ èì¸í âðåìåííûõ GV-ïåðåìåííûõ
/*int fSplitStrToStr (string fs_List, // ñòðîêà ñ äàííûìè
string& ar_OUT[], // âîçâðàùàåìûé ìàññèâ
string fs_Delimiter = ",")*/ // ðàçäåëèòåëü äàííûõ â ñòðîêå
// Âîçâðàùàåò ìàññèâ STRING èç ñòðîêè, ðàçäåë¸ííîé sDelimiter
/*void fCreat_StrToInt (string ar_Value[], // ìàññèâ ýëåìåíòîâ string
int& ar_OUT[], // âîçâðàùàåìûé ìàññèâ int
int fi_IND, // êîëè÷åñòâî ÿ÷ååê â ìàññèâå
int fi_Factor = 1, // ìíîæèòåëü
string fs_NameArray = "")*/// èìÿ âîçâðàùàåìîãî ìàññèâà
// Âîçâðàùàåò ìàññèâ INT èç ýëåìåíòîâ ìàññèâà STRING
/*void fCreat_StrToDouble (string ar_Value[], // ìàññèâ ýëåìåíòîâ string
double& ar_OUT[], // âîçâðàùàåìûé ìàññèâ double
int fi_IND, // êîëè÷åñòâî ÿ÷ååê â ìàññèâå
double fd_Factor = 1.0, // ìíîæèòåëü
string fs_NameArray = "")*/// èìÿ âîçâðàùàåìîãî ìàññèâà
// Âîçâðàùàåò ìàññèâ DOUBLE èç ýëåìåíòîâ ìàññèâà STRING
/*string fCreat_StrAndArray (int fi_First, // çíà÷åíèå 1-ãî ýåëåìåíòà ìàññèâà
int& ar_OUT[], // âîçâðàùàåìûé ìàññèâ int
int fi_cntIND, // êîëè÷åñòâî ýëåìåíòîâ â ìàññèâå
string fs_Delimiter = ",")*/// ðàçäåëèòåëü ýëåìåíòîâ â âîçâðàùàåìîé ñòðîêå
// Âîçâðàùàåò ñòðîêó èç ýëåìåíòîâ ìàññèâà INT è ñàì ìàññèâ
/*string fCreat_StrFromArray (string ar_Array[], // ìàññèâ ñî çíà÷åíèÿìè
string fs_Delimiter = ",")*/// ðàçäåëèòåëü ýëåìåíòîâ â âîçâðàùàåìîé ñòðîêå
// Âîçâðàùàåò ñòðîêó èç ýëåìåíòîâ ìàññèâà, ðàçäåë¸ííûõ fs_Delimiter
/*int fInit_ArrayINT (int& ar_INT[], // Èíèöèàëèçèðóåìûé ìàññèâ
string fs_List, // Èíèöèàëèçèðóåìûå çíà÷åíèÿ â ñòðîêå
int fi_Range, // Ðàçìåð ìàññèâà
double fd_Factor = 1.0, // ìíîæèòåëü
string fs_NameArray = "", // èìÿ âîçâðàùàåìîãî ìàññèâà
string fs_Delimiter = ",")*/ // Ðàçäåëèòåëü çíà÷åíèé â ñòðîêå
// Èíèöèàëèçàöèÿ ðàáî÷åãî ìàññèâà int
/*int fInit_ArrayDBL (double& ar_DBL[], // Èíèöèàëèçèðóåìûé ìàññèâ
string fs_List, // Èíèöèàëèçèðóåìûå çíà÷åíèÿ â ñòðîêå
int fi_Range, // Ðàçìåð ìàññèâà
double fd_Factor = 1.0, // ìíîæèòåëü
string fs_NameArray = "", // èìÿ âîçâðàùàåìîãî ìàññèâà
string fs_Delimiter = ",")*/ // Ðàçäåëèòåëü çíà÷åíèé â ñòðîêå
// Èíèöèàëèçàöèÿ ðàáî÷åãî ìàññèâà double
/*int fInit_ArrayBOOL (bool& ar_BOOL[], // Èíèöèàëèçèðóåìûé ìàññèâ
string fs_List, // Èíèöèàëèçèðóåìûå çíà÷åíèÿ â ñòðîêå
int fi_Range, // Ðàçìåð ìàññèâà
double fd_Factor = 1.0, // ìíîæèòåëü
string fs_NameArray = "", // èìÿ âîçâðàùàåìîãî ìàññèâà
string fs_Delimiter = ",")*/// Ðàçäåëèòåëü çíà÷åíèé â ñòðîêå
// Èíèöèàëèçàöèÿ ðàáî÷åãî ìàññèâà bool
/*void fShiftIndex (double& ar_MAS[], // ìàññèâ çíà÷åíèé
bool fb_Conditions = false)*/ // ðàçðåøåíèå íà óâåëè÷åíèå ðàçìåðíîñòè ìàññèâà
// Îñâîáîæäàåì 0-ÿ÷åéêó ñî ñäâèãîì ââåðõ äëÿ çàïèñè òåêóùèõ çíà÷åíèé
/*double fChoiceSource (string fs_Symbol, // Symbol
int fi_Bar, // Bar
datetime fdt_Time, // Time
int fi_TF, // Period
double fda_Array[][], // ìàññèâ ñ àëüòåðíàòèâíûìè êîòèðîâêàìè
int fi_NSource, // èíäåêñ â 1-îì èçìåðåíèè ìàññèâà
bool fb_IsBufffer = true)*/// ôëàã "ðîäíîé" èñòîðèè
// Àëüòåðíàòèâà èíäèêàòîðíîìó áóôåðó
/*void fRun_Sort (int& ar_INDEX[], // ìàññèâ èíäåêñîâ äëÿ ñîðòèðîâêè
double fda_Value[])*/ // ìàññèâ çíà÷åíèé
// Ñîðòèðóåì èíäåêñû ìàññèâà ïî óáûâàíèþ
//|***********************************************************************************|
//| ÐÀÇÄÅË: Ñåðâèñíûõ ôóíêöèé |
//|***********************************************************************************|
/*double fGet_ValueFromGV (string fs_Name, // èìÿ GV-ïåðåìåííîé
double fd_Value, // åñëè òàêîé ïåðåìåííîé íåò, ïîäñòàâëÿåìîå çíà÷åíèå
bool fd_Condition = true,// óñëîâèå íà ïðîâåðêó íàëè÷èÿ GV-ïåðåìåííîé
bool fd_CreatGV = false)*/// Ðàçðåøåíèå íà ñîçäàíèå GV (åñëè å¸ íåò)
// Áåð¸ì çíà÷åíèå ïåðåìåííîé èëè èç GV, èëè (ïðè å¸ îòñòóòñòâèè) fd_Value
//void fClear_GV (int fi_cnt = 5000) // êîë-âî î÷èùàåìûõ îáúåêòîâ (òèêåòîâ)
// Ïîä÷èùàåì âîçìîæíî îñòàâøèåñÿ GV-ïåðåìåííûå
/*void fPrintAlert (string fs_Symbol, // Symbol
int fi_TF, // Òàéìôðåéì
int fi_IND)*/ // íîìåð èíäåêñà â ìàññèâå
// Ïðåäóïðåæäàåì îá îòñóòñòâèè èñòîðèè íà áàðå
//+===================================================================================+
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//+===================================================================================+
//|***********************************************************************************|
//| ÐÀÇÄÅË: Îáùèå ôóíêöèè |
//|***********************************************************************************|
//+===================================================================================+
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Ôóíêöèÿ, ãàðàíòèðîâàííîãî ïîëó÷åíèÿ Point |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
double fGet_Point (string fs_Symbol = "")
{
double ld_Point = 0.0;
//----
if (fs_Symbol == "") {fs_Symbol = Symbol();}
ld_Point = MarketInfo (fs_Symbol, MODE_POINT);
//---- Åñëè ðåçóëüòàòà íåò
if (ld_Point == 0.0)
{
int li_Digits = MarketInfo (fs_Symbol, MODE_DIGITS);
if (li_Digits > 0) {ld_Point = 1.0 / MathPow (10, li_Digits);}
}
else {return (ld_Point);}
//----
return (ld_Point);
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Âåðñèÿ : 27.10.2009 (fControlChangeValue_D) |
//| Îïèñàíèå : Ôèêñèðóåò ôàêò èçìåíåíèÿ ïðîâåðÿåìîãî ïàðàìåòðà |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
bool fCCV_D (double fd_Value, // Ïðîâåðÿåìûé ïàðàìåòð
int fi_IND) // èíäåêñ ïàðàìåòðà â ìàññèâå
{
static double lda_Values[20];
static bool lb_first = true;
//----
//---- Ïðè ïåðâîì çàïóñêå èíèöèàëèçèðóåì ìàññèâ
if (lb_first) {ArrayInitialize (lda_Values, 0.0); lb_first = false;}
else if (lda_Values[fi_IND] != fd_Value) {lda_Values[fi_IND] = fd_Value; return (true);}
//----
return (false);
}
//+-----------------------------------------------------------------------------------+
bool fCCV_S (string fs_Value, // Ïðîâåðÿåìûé ïàðàìåòð
int fi_IND) // èíäåêñ ïàðàìåòðà â ìàññèâå
{
static string lsa_Values[20];
static bool lb_first = true;
//----
//---- Ïðè ïåðâîì çàïóñêå èíèöèàëèçèðóåì ìàññèâ
if (lb_first) {InitializeArray_STR (lsa_Values, ""); lb_first = false;}
else if (lsa_Values[fi_IND] != fs_Value) {lsa_Values[fi_IND] = fs_Value; return (true);}
//----
return (false);
}
//+-----------------------------------------------------------------------------------+
bool fCCV_B (bool fb_Value, // Ïðîâåðÿåìûé ïàðàìåòð
int fi_IND) // èíäåêñ ïàðàìåòðà â ìàññèâå
{
static bool lba_Values[20], lb_first = true;
//----
//---- Ïðè ïåðâîì çàïóñêå èíèöèàëèçèðóåì ìàññèâ
if (lb_first) {ArrayInitialize (lba_Values, False); lb_first = false;}
else if (lba_Values[fi_IND] != fb_Value) {lba_Values[fi_IND] = fb_Value; return (true);}
//----
return (false);
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Ôóíêöèÿ âîçâðàùàåò íàèìåíîâàíèå òîðãîâîé îïåðàöèè |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
string fGet_NameOP (int fi_Type)
{
//----
switch (fi_Type)
{
case -2 : return ("trading");
case -1 : return ("ALL");
case OP_BUY : return ("BUY");
case OP_SELL : return ("SELL");
case OP_BUYLIMIT : return ("BUYLIMIT");
case OP_SELLLIMIT: return ("SELLLIMIT");
case OP_BUYSTOP : return ("BUYSTOP");
case OP_SELLSTOP : return ("SELLSTOP");
case 6 : if (OrderType() == 6) return ("balance"); else return ("UNI");
case 7 : return ("pending");
}
return (StringConcatenate ("None (", fi_Type, ")"));
//----
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Âîçâðàùàåò íàèìåíîâàíèå òàéìôðåéìà |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
string fGet_NameTF (int fi_TF)
{
//----
if (fi_TF == 0) fi_TF = Period();
switch (fi_TF)
{
case PERIOD_M1: return ("M1");
case PERIOD_M5: return ("M5");
case PERIOD_M15: return ("M15");
case PERIOD_M30: return ("M30");
case PERIOD_H1: return ("H1");
case PERIOD_H4: return ("H4");
case PERIOD_D1: return ("D1");
case PERIOD_W1: return ("W1");
case PERIOD_MN1: return ("MN1");
}
//----
return ("UnknownPeriod");
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Ôóíêöèÿ âîçâðàùàåò çíà÷¸ê âàëþòû äåïîçèòà |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
string fGet_SignCurrency()
{
//----
if (AccountCurrency() == "USD") return ("$");
if (AccountCurrency() == "EUR") return ("");
//----
return ("RUB");
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Âîçâðàùàåò íàèìåíîâàíèå ñîñòîÿíèÿ (ÄÀ\ÍÅÒ) |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
string CheckBOOL (int M)
{
//----
switch (M)
{
case 0: return ("OFF");
case 1: return ("ON");
}
//----
return ("Don`t know...");
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Âîçâðàùàåò ïðîäîëæèòåëüíîñòü ïåðèîäà â D:H:M |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
string fGet_TimeToStr (datetime fdt_Time)
{
int li_Day = fdt_Time / (1440 * 60);
//----
//----
return (StringConcatenate (li_Day, ":", TimeToStr (fdt_Time, TIME_MINUTES)));
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : Êèì Èãîðü Â. aka KimIV, http://www.kimiv.ru |
//+-----------------------------------------------------------------------------------+
//| Âåðñèÿ : 01.02.2008 |
//| Îïèñàíèå : Âîçâðàùàåò îäíî èç äâóõ çíà÷åíèé âçàâèñèìîñòè îò óñëîâèÿ. |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
double IIFd (bool condition, double ifTrue, double ifFalse)
{if (condition) {return (ifTrue);} else return (ifFalse);}
//+-----------------------------------------------------------------------------------+
string IIFs (bool condition, string ifTrue, string ifFalse)
{if (condition) {return (ifTrue);} else return (ifFalse);}
//+-----------------------------------------------------------------------------------+
color IIFc (bool condition, color ifTrue, color ifFalse)
{if (condition) {return (ifTrue);} else return (ifFalse);}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//+===================================================================================+
//|***********************************************************************************|
//| ÐÀÇÄÅË: Ðàáîòû ñ ìàññèâàìè |
//|***********************************************************************************|
//+===================================================================================+
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| UNI: Ïîëó÷àåì èíäåêñ èñêîìîãî ýëåìåíòà â ìàññèâå |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
int fGet_INDInArrayINT (int fi_Value, // Èñêîìûé ýëåìåíò
int ar_Array[]) // Ïðîâåðÿåìûé ìàññèâ
{
//----
for (int li_IND = 0; li_IND < ArraySize (ar_Array); li_IND++)
{if (ar_Array[li_IND] == fi_Value) return (li_IND);}
//----
return (-1);
}
//+-----------------------------------------------------------------------------------+
int fGet_INDInArraySTR (string fs_Value, string ar_Array[])
{
//----
for (int li_IND = 0; li_IND < ArraySize (ar_Array); li_IND++)
{if (ar_Array[li_IND] == fs_Value) return (li_IND);}
//----
return (-1);
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| UNI: Ïîëó÷àåì íîìåð ïåðèîäà ãðàôèêà |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
int fGet_NumPeriods (int fi_Period)
{
static int lia_Periods[] = {1,5,15,30,60,240,1440,10080,43200};
//----
for (int l_int = 0; l_int < ArraySize (lia_Periods); l_int++)
{if (lia_Periods[l_int] == fi_Period) return (l_int);}
//----
return (-1);
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| UNI: Èíèöèàëèçèðóåì Value ìàññèâ STRING |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void InitializeArray_STR (string& fsa_Array[], string fs_Value = "")
{
int l_int, size = ArraySize (fsa_Array);
//----
for (l_int = 0; l_int < size; l_int++)
{fsa_Array[l_int] = fs_Value;}
//----
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Ñîçäà¸ì ìàññèâ èì¸í âðåìåííûõ GV-ïåðåìåííûõ |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fCreat_ArrayGV (string& ar_Base[], // ðàáî÷èé ìàññèâ
string ar_Add[]) // äîáàâëÿåìûé ìàññèâ
{
int li_int, li_sizeB = ArraySize (ar_Base), li_sizeA = ArraySize (ar_Add);
bool lb_duble;
//----
for (int li_IND = 0; li_IND < li_sizeA; li_IND++)
{
lb_duble = false;
//---- Îñóùåñòâëÿåì ïðîâåðêó íà äóáëèêàòû
for (li_int = 0; li_int < li_sizeB; li_int++)
{
if (ar_Add[li_IND] == ar_Base[li_int])
{lb_duble = true; break;}
}
//---- Åñëè äóáëèêàò - èä¸ì äàëüøå
if (lb_duble) continue;
//---- Óâåëè÷èâàåì ñ÷¸ò÷èê
li_sizeB++;
//---- Óâåëè÷èâàåì áàçîâûé ìàññèâ
ArrayResize (ar_Base, li_sizeB);
//---- Âíîñèì â ïîñëåäíþþ ÿ÷åéêó íîâîå çíà÷åíèå
ar_Base[li_sizeB - 1] = ar_Add[li_IND];
}
//----
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Âîçâðàùàåò ìàññèâ STRING èç ñòðîêè, ðàçäåë¸ííîé sDelimiter |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
int fSplitStrToStr (string fs_List, // ñòðîêà ñ äàííûìè
string& ar_OUT[], // âîçâðàùàåìûé ìàññèâ
string fs_Delimiter = ",") // ðàçäåëèòåëü äàííûõ â ñòðîêå
{
string tmp_str = "", tmp_char = "";
//----
ArrayResize (ar_OUT, 0);
for (int i = 0; i < StringLen (fs_List); i++)
{
tmp_char = StringSubstr (fs_List, i, 1);
if (tmp_char == fs_Delimiter)
{
if (StringTrimLeft (StringTrimRight (tmp_str)) != "")
{
ArrayResize (ar_OUT, ArraySize (ar_OUT) + 1);
ar_OUT[ArraySize (ar_OUT) - 1] = tmp_str;
}
tmp_str = "";
}
else {if (tmp_char != " ") tmp_str = tmp_str + tmp_char;}
}
if (StringTrimLeft (StringTrimRight (tmp_str)) != "")
{
ArrayResize (ar_OUT, ArraySize (ar_OUT) + 1);
ar_OUT[ArraySize (ar_OUT) - 1] = tmp_str;
}
//----
return (ArraySize (ar_OUT));
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Âîçâðàùàåò ìàññèâ INT èç ýëåìåíòîâ ìàññèâà STRING |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fCreat_StrToInt (string ar_Value[], // ìàññèâ ýëåìåíòîâ string
int& ar_OUT[], // âîçâðàùàåìûé ìàññèâ int
int fi_IND, // êîëè÷åñòâî ÿ÷ååê â ìàññèâå
int fi_Factor = 1, // ìíîæèòåëü
string fs_NameArray = "") // èìÿ âîçâðàùàåìîãî ìàññèâà
{
int li_size = ArraySize (ar_Value);
string ls_row = "";
//----
ArrayResize (ar_OUT, fi_IND);
for (int li_int = 0; li_int < fi_IND; li_int++)
{
if (li_int < li_size) {ar_OUT[li_int] = StrToInteger (ar_Value[li_int]) * fi_Factor;}
else {ar_OUT[li_int] = StrToDouble (ar_Value[li_size - 1]) * fi_Factor;}
ls_row = StringConcatenate (ls_row, fs_NameArray, "[", li_int, "] = ", ar_OUT[li_int], "; ");
}
if (fs_NameArray != "") Print (ls_row);
//----
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Âîçâðàùàåò ìàññèâ DOUBLE èç ýëåìåíòîâ ìàññèâà STRING |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fCreat_StrToDouble (string ar_Value[], // ìàññèâ ýëåìåíòîâ string
double& ar_OUT[], // âîçâðàùàåìûé ìàññèâ double
int fi_IND, // êîëè÷åñòâî ÿ÷ååê â ìàññèâå
double fd_Factor = 1.0, // ìíîæèòåëü
string fs_NameArray = "") // èìÿ âîçâðàùàåìîãî ìàññèâà
{
int li_size = ArraySize (ar_Value);
string ls_row = "";
//----
ArrayResize (ar_OUT, fi_IND);
for (int li_int = 0; li_int < fi_IND; li_int++)
{
if (li_int < li_size) {ar_OUT[li_int] = StrToDouble (ar_Value[li_int]) * fd_Factor;}
else {ar_OUT[li_int] = StrToDouble (ar_Value[li_size - 1]) * fd_Factor;}
ls_row = StringConcatenate (ls_row, fs_NameArray, "[", li_int, "] = ", ar_OUT[li_int], "; ");
}
if (fs_NameArray != "") Print (ls_row);
//----
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Âîçâðàùàåò ñòðîêó èç ýëåìåíòîâ ìàññèâà INT è ñàì ìàññèâ |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
string fCreat_StrAndArray (int fi_First, // çíà÷åíèå 1-ãî ýåëåìåíòà ìàññèâà
int& ar_OUT[], // âîçâðàùàåìûé ìàññèâ int
int fi_cntIND, // êîëè÷åñòâî ýëåìåíòîâ â ìàññèâå
string fs_Delimiter = ",") // ðàçäåëèòåëü ýëåìåíòîâ â âîçâðàùàåìîé ñòðîêå
{
string ls_row = "";
//----
ArrayResize (ar_OUT, fi_cntIND);
for (int li_int = 0; li_int < fi_cntIND; li_int++)
{
if (li_int == fi_cntIND - 1) fs_Delimiter = "";
ar_OUT[li_int] = fi_First + li_int;
ls_row = StringConcatenate (ls_row, ar_OUT[li_int], fs_Delimiter);
}
//----
return (ls_row);
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Âîçâðàùàåò ñòðîêó èç ýëåìåíòîâ ìàññèâà, ðàçäåë¸ííûõ fs_Delimiter |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
string fCreat_StrFromArray (string ar_Array[], // ìàññèâ ñî çíà÷åíèÿìè
string fs_Delimiter = ",") // ðàçäåëèòåëü ýëåìåíòîâ â âîçâðàùàåìîé ñòðîêå
{
string ls_row = "";
int li_size = ArraySize (ar_Array);
//----
for (int li_int = 0; li_int < li_size; li_int++)
{
if (li_int == li_size - 1) fs_Delimiter = "";
ls_row = StringConcatenate (ls_row, ar_Array[li_int], fs_Delimiter);
}
//----
return (ls_row);
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Âåðñèÿ : 02.08.2012 |
//| Îïèñàíèå : Èíèöèàëèçàöèÿ ðàáî÷åãî ìàññèâà. |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
int fInit_ArrayINT (int& ar_INT[], // Èíèöèàëèçèðóåìûé ìàññèâ
string fs_List, // Èíèöèàëèçèðóåìûå çíà÷åíèÿ â ñòðîêå
int fi_Range, // Ðàçìåð ìàññèâà
double fd_Factor = 1.0, // ìíîæèòåëü
string fs_NameArray = "", // èìÿ âîçâðàùàåìîãî ìàññèâà
string fs_Delimiter = ",") // Ðàçäåëèòåëü çíà÷åíèé â ñòðîêå
{
//----
//---- Èùåì â ñòðîêå ðàçäåëèòåëü - ïðèçíàê íàëè÷èÿ â ñòðîêå > 1 ïàðàìåòðà
if (StringFind (fs_List, fs_Delimiter) == -1) return (1);
else
{
string lsa_TMP[];
int li_cnt = fSplitStrToStr (fs_List, lsa_TMP, ",");
if (fi_Range > 0)
{
if (li_cnt != fi_Range)
{
Print (fs_NameArray, ": íå ñîîòâåñòâèå â ðàçìåðíîñòè ìàññèâà !!!");
li_cnt = fi_Range;
}
}
fCreat_StrToInt (lsa_TMP, ar_INT, li_cnt, fd_Factor, fs_NameArray);
}
//----
return (li_cnt);
}
//+-----------------------------------------------------------------------------------+
int fInit_ArrayDBL (double& ar_DBL[], // Èíèöèàëèçèðóåìûé ìàññèâ
string fs_List, // Èíèöèàëèçèðóåìûå çíà÷åíèÿ â ñòðîêå
int fi_Range, // Ðàçìåð ìàññèâà
double fd_Factor = 1.0, // ìíîæèòåëü
string fs_NameArray = "", // èìÿ âîçâðàùàåìîãî ìàññèâà
string fs_Delimiter = ",") // Ðàçäåëèòåëü çíà÷åíèé â ñòðîêå
{
//----
//---- Èùåì â ñòðîêå ðàçäåëèòåëü - ïðèçíàê íàëè÷èÿ â ñòðîêå > 1 ïàðàìåòðà
if (StringFind (fs_List, fs_Delimiter) == -1) return (1);
else
{
string lsa_TMP[];
int li_cnt = fSplitStrToStr (fs_List, lsa_TMP, ",");
if (fi_Range > 0)
{
if (li_cnt != fi_Range)
{
Print (fs_NameArray, ": íå ñîîòâåñòâèå â ðàçìåðíîñòè ìàññèâà !!!");
li_cnt = fi_Range;
}
}
fCreat_StrToDouble (lsa_TMP, ar_DBL, li_cnt, fd_Factor, fs_NameArray);
}
//----
return (li_cnt);
}
//+-----------------------------------------------------------------------------------+
int fInit_ArrayBOOL (bool& ar_BOOL[], // Èíèöèàëèçèðóåìûé ìàññèâ
string fs_List, // Èíèöèàëèçèðóåìûå çíà÷åíèÿ â ñòðîêå
int fi_Range, // Ðàçìåð ìàññèâà
double fd_Factor = 1.0, // ìíîæèòåëü
string fs_NameArray = "", // èìÿ âîçâðàùàåìîãî ìàññèâà
string fs_Delimiter = ",") // Ðàçäåëèòåëü çíà÷åíèé â ñòðîêå
{
//----
//---- Èùåì â ñòðîêå ðàçäåëèòåëü - ïðèçíàê íàëè÷èÿ â ñòðîêå > 1 ïàðàìåòðà
if (StringFind (fs_List, fs_Delimiter) == -1) return (1);
else
{
string lsa_TMP[];
int li_cnt = fSplitStrToStr (fs_List, lsa_TMP, ","), lia_TMP[];
if (fi_Range > 0)
{
if (li_cnt != fi_Range)
{
Print (fs_NameArray, ": íå ñîîòâåñòâèå â ðàçìåðíîñòè ìàññèâà !!!");
li_cnt = fi_Range;
}
}
fCreat_StrToInt (lsa_TMP, lia_TMP, li_cnt, fd_Factor, fs_NameArray);
}
ArrayCopy (ar_BOOL, lia_TMP);
//----
return (li_cnt);
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Àëüòåðíàòèâà èíäèêàòîðíîìó áóôåðó |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
double fChoiceSource (string fs_Symbol, // Symbol
int fi_Bar, // Bar
datetime fdt_Time, // Time
int fi_TF, // Period
double fda_Array[][], // ìàññèâ ñ àëüòåðíàòèâíûìè êîòèðîâêàìè
int fi_NSource, // èíäåêñ â 1-îì èçìåðåíèè ìàññèâà
bool fb_IsBufffer = true) // ôëàã "ðîäíîé" èñòîðèè
{
//----
if (fb_IsBufffer)
{
//---- Âîçâðàùàåì çíà÷åíèÿ èç èñòîðèè òåðìèíàëà
switch (fi_NSource)
{
case 0: return (iOpen (fs_Symbol, fi_TF, fi_Bar));
case 1: return (iHigh (fs_Symbol, fi_TF, fi_Bar));
case 2: return (iLow (fs_Symbol, fi_TF, fi_Bar));
case 3: return (iClose (fs_Symbol, fi_TF, fi_Bar));
}
}
else
{
//---- Ñâåðÿåìñÿ ïî âðåìåíè (ñèíõðîíèçàöèÿ áàðà)
if (fda_Array[fi_Bar][6] == fdt_Time) {return (fda_Array[fi_Bar][fi_NSource]);}
else
{
for (int li_IND = 0; li_IND < ArrayRange (fda_Array, 0); li_IND++)
{
if (fdt_Time >= fda_Array[li_IND][6])
{return (fda_Array[li_IND][fi_NSource]);}
}
}
}
//----
return (0.0);
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Îñâîáîæäàåì 0-ÿ÷åéêó ñî ñäâèãîì ââåðõ äëÿ çàïèñè òåêóùèõ çíà÷åíèé |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fShiftIndex (double& ar_MAS[], // ìàññèâ çíà÷åíèé
bool fb_Conditions = false) // ðàçðåøåíèå íà óâåëè÷åíèå ðàçìåðíîñòè ìàññèâà
{
int li_size = ArraySize (ar_MAS);
double lda_TMP[];
//----
//---- Çàäà¸ì ðàçìåð âðåìåííîìó ìàññèâó
ArrayResize (lda_TMP, li_size);
//---- Êîïèðóåì äàííûå âî âðåìåííûé ìàññèâ
ArrayCopy (lda_TMP, ar_MAS);
//---- Åñëè çàäàíî, óâåëè÷èâàåì ðàçìåð èñõîäíîãî ìàññèâà
if (fb_Conditions) ArrayResize (ar_MAS, li_size + 1);
//---- Îáðàòíî êîïèðóåì äàííûå èç âðåìåííîãî ìàññèâà ñî çäâèãîì íà 1
ArrayCopy (ar_MAS, lda_TMP, 1);
//---- Íóëåâóþ ÿ÷åéêó èñõîäíîãî ìàññèâà îáíóëÿåì
ar_MAS[0] = 0.0;
//----
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| UNI: Ñîðòèðóåì èíäåêñû ìàññèâà ïî óáûâàíèþ |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fRun_Sort (int& ar_INDEX[], // ìàññèâ èíäåêñîâ äëÿ ñîðòèðîâêè
double fda_Value[]) // ìàññèâ çíà÷åíèé
{
int li_IND, li_int, li_tmp, li_size = ArraySize (fda_Value);
//----
for (li_IND = 0; li_IND < li_size; li_IND++)
{ar_INDEX[li_IND] = li_IND;}
for (li_IND = 0; li_IND < li_size; li_IND++)
{
for (li_int = li_IND + 1; li_int < li_size; li_int++)
{
if (fda_Value[ar_INDEX[li_IND]] < fda_Value[ar_INDEX[li_int]])
{
li_tmp = ar_INDEX[li_int];
ar_INDEX[li_int] = ar_INDEX[li_IND];
ar_INDEX[li_IND] = li_tmp;
}
}
}
//----
return;
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//+===================================================================================+
//|***********************************************************************************|
//| ÐÀÇÄÅË: Ñåðâèñíûõ ôóíêöèé |
//|***********************************************************************************|
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
// Áåð¸ì çíà÷åíèå ïåðåìåííîé èëè èç GV, èëè (ïðè å¸ îòñòóòñòâèè) fd_Value |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
double fGet_ValueFromGV (string fs_Name, // èìÿ GV-ïåðåìåííîé
double fd_Value, // åñëè òàêîé ïåðåìåííîé íåò, ïîäñòàâëÿåìîå çíà÷åíèå
bool fd_Condition = true, // óñëîâèå íà ïðîâåðêó íàëè÷èÿ GV-ïåðåìåííîé
bool fd_CreatGV = false) // Ðàçðåøåíèå íà ñîçäàíèå GV (åñëè å¸ íåò)
{
//----
if (!fd_Condition) {return (fd_Value);}
if (GlobalVariableCheck (fs_Name)) {return (GlobalVariableGet (fs_Name));}
else {if (fd_CreatGV) {GlobalVariableSet (fs_Name, fd_Value);} return (fd_Value);}
//----
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Ïîä÷èùàåì âîçìîæíî îñòàâøèåñÿ GV-ïåðåìåííûå |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fClear_GV (int fi_cnt = 5000) // êîë-âî î÷èùàåìûõ îáúåêòîâ (òèêåòîâ)
{
string ls_Name, lsa_Name[] = {"_#Delta_SL","_#LastLossLevel","_#VirtSL",
"_#VirtTP","_#BeginSL","_#SL","_#TP","_#Num","_#Lots","_#BU","_#STOP","_#OP"};
int li_size = ArraySize (lsa_Name), li_IND;
//----
for (int li_CNT = 0; li_CNT < fi_cnt; li_CNT++)
{
for (li_IND = 0; li_IND < li_size; li_IND++)
{
ls_Name = StringConcatenate (li_CNT, lsa_Name[li_IND]);
if (GlobalVariableCheck (ls_Name)) GlobalVariableDel (ls_Name);
}
}
//----
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Àâòîð : TarasBY, taras_bulba@tut.by |
//+-----------------------------------------------------------------------------------+
//| Ïðåäóïðåæäàåì îá îòñóòñòâèè èñòîðèè íà áàðå |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fPrintAlert (string fs_Symbol, // Symbol
int fi_TF, // Òàéìôðåéì
int fi_IND) // íîìåð èíäåêñà â ìàññèâå
{
static int lia_Minute[2] = {0,0};
//----
if (lia_Minute[fi_IND] != TimeMinute (TimeCurrent()))
{
lia_Minute[fi_IND] = TimeMinute (TimeCurrent());
Print (fs_Symbol, ": Íåò èñòîðèè íà ", fGet_NameTF (fi_TF), " : ", TimeToStr (TimeCurrent()));
}
//----
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
Comments