Author: nen
ZUP_v42
6 Views
0 Downloads
0 Favorites
ZUP_v42
//+----------------------------------------------------------------------+
//|ZigZag óíèâåðñàëüíûé ñ ïàòòåðíàìè Ïåñàâåíòî                           |
//|----------------------------------------------------------------------+
//|                                                                      |
//|ExtIndicator - âûáîð âàðèàíòà èíäèêàòîðà, íà îñíîâå êîòîðîãî          |
//|               ñòðîÿòñÿ ïàòòåðíû Ïåñàâåíòî                            |
//|           0 - Zigzag èç ìåòàòðåéäåðà, ñòàíäàðòíûé                    |
//|           1 - Zigzag Àëåêñà,                                         |
//|           2 - èíäèêàòîð ïîäîáíûé âñòðîåííîìó â Ensign                |
//|           3 - ZigZag Ensign ñ ïåðåìåííûì çíà÷åíèåì minBars           |
//|           4 - ZigZag, ðàçðàáîòàë tauber                              |
//|           5 - âàðèàöèÿ íà òåìó ñâèíãîâ Ãàííà                         |
//|           6 - DT-ZigZag                                              |
//|                                                                      |
//|minBars - ôèëüòð áàðîâûé (çàäàåòñÿ êîëè÷åñòâî áàðîâ)                  |
//|minSize - ôèëüòð ïî êîëè÷åñòâó ïóíêòîâ (çàäàåòñÿ êîëè÷åñòâî ïóíêòîâ)  |
//|                                                                      |
//|ExtDeviation è ExtBackstep - ïàðàìåòðû îñòàâøèåñÿ îò ZigZag èç MT4    |
//|                                                                      |
//|minPercent - ïðîöåíòíûé ôèëüòð (çàäàåòñÿ ïðîöåíò, íàïðèìåð 0.5)       |
//|             Åñëè èñïîëüçóþòñÿ ïðîöåíòû - ñòàâèòå ÷èñëî, à minSize=0; |
//|----------------------------------------------------------------------|
//|ExtHidden - 0 - ëèíèè è ÷èñëà ïàòòåðíîâ Ïåñàâåíòî ñêðûòû.             |
//|            1 - ïîêàçûâàåò âñå ëèíèè ìåæäó ôðàêòàëàìè, ó êîòîðûõ      |
//|                ïðîöåíò âîññòàíîâëåíèÿ >0.14 è <5.                    |
//|            2 - ïîêàçûâàåò òîëüêî òå  ëèíèè, ãäå ïðîöåíò âîññòàíî-    |
//|                âëåíèÿ ðàâåí ÷èñëàì Ïåñàâåíòî (è 0.447, 0.886, 2.24,  |
//|                3.14, 3,618 äëÿ ïîñòðîåíèÿ ïàòòåðíîâ Gartley)         |
//|            3 - ïîêàçûâàåò ÷èñëà, ïåðå÷èñëåííûå â ïóíêòå 2            |
//|                è ñîîòâåòñòâóþùèå ëèíèè                               |
//|            4 - ïîêàçûâàåò ÷èñëà íå Ïåñàâåíòî è ñîîòâåòñòâóþùèå ëèíèè |
//|            5 - ñêðûâàåò âñþ îñíàñòêó. Îñòàåòñÿ òîëüêî ZigZag         |
//|                                                                      |
//|ExtFiboZigZag - ðàçðåøàåò âûâîä "ZiaZag Fibonacci"                    |
//|                                                                      |
//|ExtFractal - êîëè÷åñòâî ôðàêòàëîâ (ìàêñèìóìîâ, ìèíèìóìîâ),            |
//|             îò êîòîðûõ èäóò ëèíèè ê äðóãèì ôðàêòàëàì                 |
//|                                                                      |
//|ExtFractalEnd - êîëè÷åñòâî ôðàêòàëîâ, ê êîòîðûì èäóò ëèíèè            |
//|                äàëüøå ýòîãî ôðàêòàëà ñîåäèíÿþùèõ ëèíèé íå áóäåò      |
//|                Åñëè ExtFractalEnd=0 òî ïîñëåäíèé ôðàêòàë ðàâåí       |
//|                ìàêñèìàëüíîìó ÷èñëó ôðàêòàëîâ.                        |
//|                Ìèíèìàëüíîå çíà÷åíèå ExtFractalEnd=1                  |
//|                                                                      |
//|ExtDelta - (äîïóñê) îòêëîíåíèå â ðàñ÷åòå. Çàäàåò âåëè÷èíó             |
//|           ïîòåíöèàëüíîé ðàçâîðîòíîé çîíû.                            |
//|                  äîëæíî áûòü 0<ExtDelta<1                            |
//|                                                                      |
//|ExtDeltaType -    0 - âûâîäÿòñÿ ïðîöåíòû âîññòàíîâëåíèÿ "êàê åñòü"    |
//|                  1 - ðàñ÷åò äîïóñêà (%-÷èñëî Ïåñàâåíòî)<ExtDelta     |
//|                  2 - ((%-÷èñëî Ïåñàâåíòî)/÷èñëî Ïåñàâåíòî)<ExtDelta  |
//|                                                                      |
//|chHL     = true     - Åñëè õîòèòå ïîñìîòðåòü óðîâíè ïîäòâåðæäåíèÿ     |
//|PeakDet  = true     - Åñëè õîòèòå ïîñìîòðåòü óðîâíè ïðåäûäóùèõ        |
//|                      ìàêñèìóìîâ                                      |
//|                                                                      |
//|ExtFiboType = true - ôèáû ñ ÷èñëàìè Ïåñàâåíòî                         |
//|              false - ñòàíäàðòíûå ôèáû                                |
//|                                                                      |
//|ExtFiboCorrectionExpansion = false - êîððåêöèÿ Ôèáîíà÷÷è              |
//|                           = true  - ðàñøèðåíèå Ôèáîíà÷÷è             |
//|                                                                      |
//|ExtFiboDinamic - ðàçðåøàåò âûâîä äíàìè÷åñêèõ óðîâíåé ôèáî.            |
//|                 Äèíàìè÷åñêèå óðîâíè ôèáî âûâîäÿòñÿ íà ïåðâîì ëó÷å    |
//|                 ZigZag-a.                                            |
//|                                                                      |
//|ExtFiboStatic - ðàçðåøàåò âûâîä ñòàòè÷åñêèõ óðîâíåé ôèáî              |
//|                                                                      |
//|ExtFiboStaticNum - íîìåð ëó÷à ZigZag-a, íà êîòîðîì áóäóò âûâîäèòüñÿ   |
//|                   ñòàòè÷åñêèå óðîâíè Ôèáîíà÷÷è. 1<ExtFiboStaticNum<=9 |
//|                                                                      |
//|ExtSizeTxt - ðàçìåð øðèôòà äëÿ âûâîäà ÷èñåë                           |
//|                                                                      |
//|ExtLine - âûáîð öâåòà ñîåäèíèòåëüíûõ ëèíèé                            |
//|                                                                      |
//|ExtPesavento - âûáîð öâåòà ÷èñåë Ïåñàâåíòî                            |
//|                                                                      |
//|ExtGartley886 - âûáîð öâåòà ÷èñëà .886                                |
//|                                                                      |
//|ExtNotFibo - âûáîð öâåòà âñåõ îñòàëüíûõ ÷èñåë                         |
//|                                                                      |
//|ExtFiboS è ExtFiboD - âûáîð öâåòà ñòàòè÷åñêèõ è äèíàìè÷åñêèõ ôèá.     |
//|                                                                      |
//|infoTF - âêëþ÷àåò èíôîðìàöèþ ïî 5 ñòàðøèì òàéìôðåéìàì.                |
//|         Âûâîäèòñÿ íàèìåíîâàíèå òàéìôðåéìà. Ðàçìåð ñâå÷è â ïóíêòàõ.   |
//|         Òåêóùåå ïîëîæåíèå öåíû îòíîñèòåëüíî ìèíèìóìà.                |
//|                                                                      |
//|chHL_PeakDet_or_vts - true - Ïî óìîë÷àíèþ ðàçðåøàåò âûâîä ëèíèé       |
//| ïîäòâåðæäåíèÿ (öåíîâîé êàíàë) è óðîâíè ïðåäûäóùèõ ìàêñèìóìîâ ZigZag. |
//|  false - âûâîäèòñÿ èíäèêàòîð i-vts.                                  |
//|                                                                      |
//|NumberOfBars - Êîëè÷åñòâî áàðîâ îáñ÷¸òà (0-âñå) äëÿ i-vts.            |
//|                                                                      |
//|NumberOfVTS - ýòî, ÿ òàê ïîíèìàþ, ïàðàìåòð ñãëàæèâàíèÿ äëÿ i-vts.     |
//|NumberOfVTS1 - ïàðàìåòð ñãëàæèâàíèÿ äëÿ âòîðîé êîïèè i-vts.           |
//|                                                                      |
//|----------------------------------------------------------------------|
//|Ïåðåìåííûå äëÿ âèë Ýíäðþñà                                            |
//|----------------------------------------------------------------------|
//|ExtPitchforkDinamic > 0 (=1) âûâîäÿòñÿ äèíàìè÷åñêèå âèëû Ýíäðþñà îò   |
//|             ïîñëåäíèõ äâóõ ýêñòðåìóìîâ ZigZag                        |
//|             =2 50% ìåäèàíà                                           |
//|             =3 50% âèëû                                              |
//|             =4 ëèíèè Øèôôà                                           |
//|                                                                      |
//|ExtPitchforkStatic > 0 (=1) âûâîäÿòñÿ ñòàòè÷åñêèå âèëû Ýíäðþñà îò     |
//|             ýêñòðåìóìà ZigZag ñ íîìåðîì ExtPitchforkStaticNum        |
//|             =2 50% ìåäèàíà                                           |
//|             =3 50% âèëû                                              |
//|             =4 ëèíèè Øèôôà                                           |
//|                                                                      |
//|3<ExtPitchforkStaticNum<=9 - íîìåð âåðøèíû ZigZag, îò êîòîðîé         |
//|           íà÷èíàþòñÿ ñòàòè÷åñêèå âèëû                                |
//|                                                                      |
//|ExtLinePitchforkS è                                                   | 
//|ExtLinePitchforkD çàäàåò öâåò ñòàòè÷åñêèõ è äèíàìè÷åñêèõ âèë          |
//|ExtPitchforkStaticColor - çàäàåò öâåò çàêðàñêè êàíàëà âèë             |
//|ExtPitchforkStyle - çàäàåò ñòèëü âûâîäà âèë.                          |
//|             0 - Ñïëîøíàÿ ëèíèÿ                                       |
//|             1 - Øòðèõîâàÿ ëèíèÿ                                      |
//|             2 - Ïóíêòèðíàÿ ëèíèÿ                                     |
//|             3 - Øòðèõ-ïóíêòèðíàÿ ëèíèÿ                               |
//|             4 - Øòðèõ-ïóíêòèðíàÿ ëèíèÿ ñ äâîéíûìè òî÷êàìè            |
//|             5-10 - çàäàåò òîëùèíó Ñïëîøíîé ëèíèè                     |
//|                                                                      |
//|ExtFiboFanDinamic - ðàçðåøàåò âûâîä äèíàìè÷åñêèõ ôèáî-âåíèêîâ         |
//|ExtFiboFanStatic - ðàçðåøàåò âûâîä ñòàòè÷åñêèõ ôèáî-âåíèêîâ           |
//|                   âûâîäèòñÿ òîëüêî ñî ñòàòè÷åñêèìè âèëàìè            |
//|                                                                      |
//|ExtFiboFanD - çàäàåò öâåò äèíàìè÷åñêèõ ôèáî-âåíèêîâ                   |
//|                                                                      |
//|ExtFiboFanS - çàäàåò öâåò ñòàòè÷åñêèõ ôèáî-âåíèêîâ                    |
//|                                                                      |
//|ExtFiboFanHidden - ðàçðåøàåò âûâîä ìàðêèðîâêè ëó÷åé ôèáî âåíèêîâ      |
//|                                                                      |
//|ExtFiboFanMedianaStaticColor è                                        |
//|ExtFiboFanMedianaDinamicColor - çàäàþò öâåò ôèáîâåíèêîâ íà            |
//|    ñðåäèííîé ëèíèè ñòàòè÷åñêèõ è äèíàìè÷åñêèõ âèë                    |
//|                                                                      |
//|Âðåìåííûå çîíû ôèáî âûâîäÿòñÿ òîëüêî äëÿ ñòàòè÷åñêèõ âèë              |
//|ExtFiboTime1 - âêëþ÷àåò âðåìåííûå çîíû ôèáî 1.                        |
//|                                                                      |
//|ExtFiboTime2 - âêëþ÷àåò âðåìåííûå çîíû ôèáî 2.                        |
//|                                                                      |
//|ExtFiboTime1C - çàäàåò öâåò ëèíèé âðåìåííîé çîíû 1.                   |
//|                                                                      |
//|ExtFiboTime2C - çàäàåò öâåò ëèíèé âðåìåííîé çîíû 2.                   |
//|                                                                      |
//|ExtUTL - âêëþ÷àåò âåðõíþþ êîíòðîëüíóþ ëèíèþ âèë Ýíäðþñà               |
//|ExtLTL - âêëþ÷àåò íèæíþþ êîíòðîëüíóþ ëèíèþ âèë Ýíäðþñà                |
//|                                                                      |
//|ExtUWL - âêëþ÷àåò âåðõíèå ïðåäóïðåæäàþùèå ëèíèè                       |
//|ExtLWL - âêëþ÷àåò íèæíèå ïðåäóïðåæäàþùèå ëèíèè                        |
//|                                                                      |
//|Ïîñëåäíèå ÷åòûðå ïàðàìåòðà òîëüêî äëÿ ñòàòè÷åñêèõ âèë Ýíäðþñà         |
//|                                                                      |
//|ExtRLine - ðàçðåøàåò âûâîä ëèíèé ðåàêöèè âäîëü âèë Ýíäðþñà            |
//|                                                                      |
//|ExtRLineBase - ñêðûâàåò íàïðàâëÿþùèå ëèíèé ðåàêöèè                    |
//|                                                                      |
//|ExtPitchforkCandle - âêëþ÷àåò âûâîä êîìïëåêòà âèë îò âûáðàííûõ ñâå÷åé |
//|ExtPitchfork_1_HighLow - ïðè ïîñòðîåíèè âèë îò âûáðàííûõ ñâå÷åé çà-   |
//|  äàåò îò ìàêñèìóìà èëè ìèíèìóìà ñâå÷è ñòðîèòü ïåðâóþ òî÷êó âèë       |
//|ExtDateTimePitchfork_1, ExtDateTimePitchfork_2,                       |
//|ExtDateTimePitchfork_3 - çàäàåòñÿ äàòà è âðåìÿ ñâå÷åé, îò êîòîðûõ     |
//|  áóäóò ñòðîèòüñÿ âèëû Ýíäðþñà                                        |
//|----------------------------------------------------------------------|
//|                                                                      |
//|ExtFiboFanColor - âêëþ÷àåò ïðîèçâîëüíûå ôèáîâååðû çàäàíèåì öâåòà.     |
//|                                                                      |
//|ExtFiboFanNum - íîìåð ëó÷à ZigZag-a, íà êîòîðîì áóäóò âûâîäèòüñÿ      |
//|                  ïðîèçâîëüíûå ôèáîâååðû. 1<ExtFiboStaticNum<=9       |
//|                                                                      |
//|----------------------------------------------------------------------|
//|                                                                      |
//|ExtFiboExpansion - ðàñøèðåíèÿ Ôèáîíà÷÷è, êàê â Ìåòàòðåéäåðå           |
//|                 < 2 ðàñøèðåíèÿ Ôèáîíà÷÷è íå âûâîäÿòñÿ                |
//|                 = 2 äèíàìè÷åñêîå ðàñøèðåíè Ôèáîíà÷÷è                 |
//|                 >2 è <=9 ñòàòè÷åñêèå ðàñøèðåíèÿ Ôèáîíà÷÷è            |
//|                                                                      |
//|ExtFiboExpansionColor - çàäàåò öâåò ëèíèé ðàñøèðåíèé Ôèáîíà÷÷è        |
//|----------------------------------------------------------------------|
//|ExtBack - çàäàåò âûâîä âñåõ îáúåêòîâ â âèäå ôîíà                      |
//|ExtSave - ðàçðåøàåò ñîõðàíåíèå êîìïëåêòà ñòàòè÷åñêèõ âèë è            |
//|          Fibo Time                                                   |
//|                                                                      |
//|ExtAlert - ðàçðåøàåò âûâîä ñîîáùåíèÿ è çâóêîâîãî ñèãíàëà ïðè          |
//|           âîçíèêíîâåíèè íîâîãî ëó÷à ZigZag                           |
//|                                                                      |
//|ExtStyleZZ - = true - çàäàåò ñòèëü ëèíèé ZigZag ÷åðåç âêëàäêó ÖÂÅÒÀ   |
//|             = false - Zigzag âûâîäèòñÿ òî÷êàìè ó ýêñòðåìóìîâ         |
//|                                                                      |
//|ExtComplekt - çàäàåò íîìåð èíäèêàòîðà. Ïðè âûâîäå íà ãðàôèê íåñêîëüêèõ|
//|              èíäèêàòîðîâ ÷åðåç ýòîò ïàðàìåòð çàäàåòñÿ íîìåð êîïèè.   |
//|              Ïðè ýòîì âñå êîïèè èíäèêàòîðà áóäóò ðàáîòàòü êîððåêòíî. |
//+----------------------------------------------------------------------+
#property copyright "nen"
#property link      "http://onix-trade.net/forum/index.php?s=&showtopic=118&view=findpost&p=105489"
// îïèñàíèå http://onix-trade.net/forum/index.php?s=&showtopic=373&view=findpost&p=72865

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Aqua 
#property indicator_color2 Green
#property indicator_color3 Orange
#property indicator_color4 LightSkyBlue
#property indicator_color5 LemonChiffon
#property indicator_color6 Yellow
//===================================
//---- indicator parameters
extern int    ExtIndicator = 6;
extern int    minBars = 12;
extern int    minSize = 55;
// Ïåðåìåííûå îò ZigZag èç ÌÒ
extern int    ExtDeviation = 5;
extern int    ExtBackstep = 3;
// Ïåðåìåííàÿ äëÿ DT-ZigZag
extern int    GrossPeriod=1440;
//----
extern double minPercent = 0;
//----
extern int    ExtHidden = 1;
extern bool   ExtFiboZigZag = false;
extern int    ExtFractal = 7;
extern int    ExtFractalEnd = 7;
extern double ExtDelta = 0.04;
extern int    ExtDeltaType = 2;
//-------------------------------------
extern bool   ExtFiboType = true;
extern bool   ExtFiboCorrectionExpansion = false;
extern bool   ExtFiboDinamic = false;
extern bool   ExtFiboStatic = false;
extern int    ExtFiboStaticNum = 2;
extern int    ExtSizeTxt = 7;
extern color  ExtLine = DarkBlue;
extern color  ExtNotFibo = SlateGray;
extern color  ExtPesavento = Yellow;
extern color  ExtGartley886 = GreenYellow;
extern color  ExtFiboS = Teal;
extern color  ExtFiboD = Sienna;
//----------------------------------------------------------------------
// Êîìïëåêò èíñòðóìåíòîâ, ðàáîòàþùèõ ñîâìåñòíî ñ âèëàìè Ýíäðþñà. Íà÷àëî.
//----------------------------------------------------------------------
// Ïåðåìåííûå äëÿ âèë Ýíäðþñà
extern int    ExtPitchforkDinamic = 0;
extern int    ExtPitchforkStatic = 0;
extern int    ExtPitchforkStaticNum = 3;
extern color  ExtLinePitchforkS = MediumBlue;
extern color  ExtLinePitchforkD = MediumSlateBlue;
extern color  ExtPitchforkStaticColor = CLR_NONE;
extern int    ExtPitchforkStyle = 1;
// Ïåðåìåííûå äëÿ ôèáîâååðîâ
extern bool   ExtFiboFanDinamic = false;  // ìîæåò âûâîäèòüñÿ ñàìîñòîÿòåëüíî
extern bool   ExtFiboFanStatic = false;   // âûâîäèòñÿ òîëüêî ñîâìåñòíî ñî ñòàòè÷åñêèìè âèëàìè
extern bool   ExtFiboFanHidden = false;
extern color  ExtFiboFanS = Teal;
extern color  ExtFiboFanD = Sienna;

extern color  ExtFiboFanMedianaStaticColor = CLR_NONE;
extern color  ExtFiboFanMedianaDinamicColor = CLR_NONE;

// Âðåìåííûå çîíû Ôèáî
extern bool   ExtFiboTime1 = false;
extern bool   ExtFiboTime2 = false;
extern color  ExtFiboTime1C = Teal;
extern color  ExtFiboTime2C = Sienna;
//extern color  ExtPivotZoneColor = CLR_NONE; //|ExtPivotZoneColor - çàäàåò öâåò çàêðàñêè Pivot Zone                   |

// Âêëþ÷åíèå ïðåäóïðåæäàþùèõ è êîíòðîëüíûõ ëèíèé
extern bool   ExtUTL = false;
extern bool   ExtLTL = false;
extern bool   ExtUWL = false;
extern bool   ExtLWL = false;

// Âêëþ÷åíèå ëèíèé ðåàêöèè
extern bool   ExtRLine = true;
extern bool   ExtRLineBase =true;
//----------------------------------------------------------------------
extern bool     ExtPitchforkCandle = false;
extern bool     ExtPitchfork_1_HighLow = true;
extern datetime ExtDateTimePitchfork_1 = D'11.07.2006 00:00';
extern datetime ExtDateTimePitchfork_2 = D'19.07.2006 00:00';
extern datetime ExtDateTimePitchfork_3 = D'09.08.2006 00:00';
//----------------------------------------------------------------------
// Êîìïëåêò èíñòðóìåíòîâ, ðàáîòàþùèõ ñîâìåñòíî ñ âèëàìè Ýíäðþñà. Êîíåö.
//----------------------------------------------------------------------
// Ôèáîâååðû äîïîëíèòåëüíûå
extern int    ExtFiboFanNum = 0;
extern color  ExtFiboFanColor = CLR_NONE;
// Ðàñøèðåíèÿ Ôèáîíà÷÷è
extern int    ExtFiboExpansion = 0;
extern color  ExtFiboExpansionColor = Yellow;
//--------------------------------------
extern bool   chHL = false;
extern bool   PeakDet = false;
// Ïåðåìåííûå äëÿ i-vts
extern bool   chHL_PeakDet_or_vts = true;
extern int    NumberOfBars = 1000;     // Êîëè÷åñòâî áàðîâ îáñ÷¸òà (0-âñå)
extern int    NumberOfVTS  = 13;
extern int    NumberOfVTS1 = 1;
// --------------------------------
// Äîïîëíèòåëüíûå ôèíêöèè
extern bool   infoTF = false;
// Âûâîä îáúåêòîâ â âèäå ôîíà
extern bool   ExtBack = true;
// Ñîõðàíåíèå ñòàòè÷åñêèõ âèë Ýíäðþñà, Fibo Time
extern bool   ExtSave = false;
extern bool   ExtStyleZZ = true;
extern bool   ExtAlert = false;
extern int    ExtComplekt=0;
//===================================

// Ìàññèâû äëÿ ZigZag 
// Ìàññèâ äëÿ îòðèñîâêè ZigZag
double zz[];
// Ìàññèâ ìèíèìóìîâ ZigZag
double zzL[];
// Ìàññèâ ìàêñèìóìîâ ZigZag
double zzH[];
// Ìàññèâû äëÿ DT-ZigZag
double DT_ZigZag[];
datetime daytimes[];
// Ìàññèâ äëÿ îïòèìèçèðîâàííîãî ZigZag
double TempBuffer[1],ZigZagBuffer[1];
// Ïåðåìåííûå äëÿ îñíàâñòêè
// Ìàññèâ ÷èñåë Ïåñàâåíòî (Ôèáû è ìîäèôèöèðîâàííûå Ôèáû)
double fi[]={0.382, 0.447, 0.5, 0.618, 0.707, 0.786, 0.841, 0.886, 1.0, 1.128, 1.272, 1.414, 1.5, 1.618, 2.0, 2.24, 2.414, 2.618, 3.14, 3.618, 4.0};
string fitxt[]={".382", ".447", ".5", ".618", ".707", ".786", ".841", ".886", "1.0", "1.128", "1.272", "1.414", "1.5", "1.618", "2.0", "2.24", "2.414", "2.618", "3.14", "3.618", "4.0"};
double fi1[]={0.146, 0.236, 0.382, 0.5, 0.618, 0.764, 0.854, 1.0, 1.236, 1.618};
string fitxt1[]={"0.146", "0.236", ".382", ".5", ".618", ".764", ".854", "1.0", "1.236", "1.618"};
string nameObj,nameObjtxt,save;
// Ìàòðèöà äëÿ ïîèñêà èñ÷åçíóâøèõ áàðîâ afr - ìàññèâ çíà÷åíèé âðåìåíè ïÿòè ïîñëåäíèõ ôðàêòàëîâ è îòðèñîâêè äèíàìè÷åñêèõ è ñòàòè÷åñêèõ ôèá
// afrl - ìèíèìóìû, afrh - ìàêñèìóìû
int afr[]={0,0,0,0,0,0,0,0,0,0};
double afrl[]={0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}, afrh[]={0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
// Ïàðàìåòðû òàéìôðéìîâ
double openTF[]={0.0,0.0,0.0,0.0,0.0}, closeTF[]={0.0,0.0,0.0,0.0,0.0}, lowTF[]={0.0,0.0,0.0,0.0,0.0}, highTF[]={0.0,0.0,0.0,0.0,0.0};
double close_TF=0;
string TF[]={"MN","W1","D1","H4","H1"};
bool afrm=true;
double HL,HLp,kk,kj,Angle;
// LowPrim,HighPrim,LowLast,HighLast - çíà÷åíèÿ ìèíèìóìîâ è ìàêñèìóìîâ áàðîâ
double LowPrim,HighPrim,LowLast,HighLast;
// numLowPrim,numHighPrim,numLowLast,numHighLast -íîìåðà áàðîâ
int numLowPrim,numHighPrim,numLowLast,numHighLast,k,k1,k2,ki,countLow1,countHigh1,shift,shift1,cPoint=0;
// Âðåìÿ ñâå÷è ñ ïåðâûì îò íóëåâîãî áàðà ôðàêòàëîì
int timeFr1new;
// Ñ÷åò÷èê ôðàêòàëîâ
int countFr;
// Áàð, äî êîòîðîãî íàäî ðèñîâàòü ñîåäèíèòåëüíûå ëèíèè îò íóëåâîãî áàðà
int countBarEnd=0,TimeBarEnd;
// Áàð, äî êîòîðîãî íàäî ïåðåñ÷èòûâàòü îò íóëåâîãî áàðà
int numBar=0;
// Íîìåð îáúåêòà
int numOb;
// flagFrNew=true - îáðàçîâàëñÿ íîâûé ôðàêòàë èëè ïåðâûé ôðàêòàë ñìåñòèëñÿ íà äðóãîé áàð. =false - ïî óìîë÷àíèþ.
bool flagFrNew=false;
// Ïåðèîä òåêóùåãî ãðàôèêà
int perTF;
bool Demo;

int counted_bars, cbi, iBar;

int timeFirstBar=0;

// Ïåðåìåííûå äëÿ ZigZag Àëåêñà è èíäèêàòîðà ïîäîáíîãî âñòðîåííîìó â Ensign
double ha[],la[],hi,li,si,sip,di,hm,lm,ham[],lam[],him,lim,lLast=0,hLast=0;
int fs=0,fsp,countBar;
int ai,aip,bi,bip,ai0,aip0,bi0,bip0;
datetime tai,tbi,taip,tbip,ti;
// fcount0 - ïðè îáíóëåíèè ñ÷åò÷èêà ïðîïóùåííûõ áàðîâ íà 0 áàðå fcount0=true.
// Íà ñëåäóþùåì áàðå =false è ìîæíî îïðåäåëÿòü òî÷êó ïåðåëîìà
bool fh=false,fl=false,fcount0;

// Ïåðåìåííûå äëÿ Ñâèíãîâ Ãàííà
double lLast_m=0, hLast_m=0;
int countBarExt; // ñ÷åò÷èê âíåøíèõ áàðîâ
int countBarl,countBarh;

// Ïåðåìåííûå äëÿ DT-ZigZag
int bigshift, bigshift_last=0;
bool hi_DT;
bool init_zz=true;
double Fr0;

// Ïåðåìåííûå äëÿ ðàñøèðåííîãî ðåæèìà ðàáîòû èíäèêàòîðà
int mFibo[]={0,0}, mPitch[]={0,0,0}, mFan[]={0,0}, mExpansion[]={0,0,0};
// Ïåðåìåííûå äëÿ ïîñòðîåíèÿ âèë Ýíäðþñà ïî ñâå÷àì
int mPitchTime[]={0,0,0};
double mPitchCena[]={0.0,0.0,0.0};

// ïåðåìåííûå äëÿ vts
double ms[2];


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string aa,aa1;
   int aa2;

   IndicatorBuffers(8);
 
   if (ExtStyleZZ) {SetIndexStyle(0,DRAW_SECTION);}
   else {SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,159);}
     
   SetIndexBuffer(0,zz);
   SetIndexBuffer(5,DT_ZigZag);
   SetIndexBuffer(6,zzL);
   SetIndexBuffer(7,zzH);

   SetIndexStyle(5,DRAW_ARROW);
   SetIndexArrow(5,159);
   if (ExtIndicator==6)
     {
      if (Period()>GrossPeriod) GrossPeriod=Period();
      ArrayCopySeries(daytimes,MODE_TIME,Symbol(),GrossPeriod);
     }

// Óðîâíè ïðåäûäóùèõ ïèêîâ
   SetIndexStyle(1,DRAW_LINE,STYLE_DOT);
   SetIndexStyle(2,DRAW_LINE,STYLE_DOT); 
   SetIndexBuffer(1,ham);
   SetIndexBuffer(2,lam);
// Óðîâíè ïîäòâåðæäåíèÿ
   SetIndexStyle(3,DRAW_LINE,STYLE_DOT);
   SetIndexStyle(4,DRAW_LINE,STYLE_DOT);
   SetIndexBuffer(3,ha);
   SetIndexBuffer(4,la);

   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   SetIndexEmptyValue(2,0.0);
   SetIndexEmptyValue(3,0.0);
   SetIndexEmptyValue(4,0.0);
   SetIndexEmptyValue(5,0.0);
   SetIndexEmptyValue(6,0.0);
   SetIndexEmptyValue(7,0.0);

   if (timeFirstBar==0) timeFirstBar=Time[Bars-1];

   if (ExtIndicator==1) if (minSize!=0) di=minSize*Point/2;
   if (ExtIndicator==2) {di=minSize*Point; countBar=minBars;}
   if (ExtIndicator==3) {countBar=minBars;}
   if (ExtIndicator==7) GrossPeriod=0;

   if (Point*10==1) cPoint=1;
      else if (Point*100==1) cPoint=2;
      else if (Point*1000==1) cPoint=3;
      else if (Point*10000==1) cPoint=4;
      else if (Point*100000==1) cPoint=5;

// Ïðîâåðêà ïðàâèëüíîñòè ââåäåííûõ âíåøíèõ ïåðåìåííûõ
   if (ExtDelta<=0) ExtDelta=0.001;
   if (ExtDelta>1) ExtDelta=0.999;

   if (ExtHidden<0) ExtHidden=0;
   if (ExtHidden>5) ExtHidden=5;
 
   if (ExtDeltaType<0) ExtDeltaType=0;
   if (ExtDeltaType>3) ExtDeltaType=3;

   if (ExtFractalEnd>0)
     {
      if (ExtFractalEnd<1) ExtFractalEnd=1;
     }

   if (ExtPitchforkStatic>4) ExtPitchforkStatic=4;
   if (ExtPitchforkDinamic>4) ExtPitchforkDinamic=4;

//--------------------------------------------
   if (ExtFiboStaticNum<2) ExtFiboStaticNum=2;
   
   if (ExtFiboFanNum<1) ExtFiboFanNum=1;

   if (ExtPitchforkStaticNum<3) ExtPitchforkStaticNum=3;
   
   if (ExtFiboExpansion<2) ExtFiboExpansion=0;
   
   if (ExtFiboStaticNum>9)
     {
      aa=DoubleToStr(ExtFiboStaticNum,0);
      aa1=StringSubstr(aa,0,1);
      mFibo[0]=StrToInteger(aa1);
      aa1=StringSubstr(aa,1,1);
      mFibo[1]=StrToInteger(aa1);
     }
   else
     {
      mFibo[0]=ExtFiboStaticNum;
      mFibo[1]=ExtFiboStaticNum-1;
     }

   if (ExtFiboFanNum>9)
     {
      aa=DoubleToStr(ExtFiboFanNum,0);
      aa1=StringSubstr(aa,0,1);
      mFan[0]=StrToInteger(aa1);
      aa1=StringSubstr(aa,1,1);
      mFan[1]=StrToInteger(aa1);
     }
   else
     {
      mFan[0]=ExtFiboFanNum;
      mFan[1]=ExtFiboFanNum-1;
     }

   if (ExtPitchforkStaticNum>99)
     {
      aa=DoubleToStr(ExtPitchforkStaticNum,0);
      aa1=StringSubstr(aa,0,1);
      mPitch[0]=StrToInteger(aa1);
      aa1=StringSubstr(aa,1,1);
      mPitch[1]=StrToInteger(aa1);
      aa1=StringSubstr(aa,2,1);
      mPitch[2]=StrToInteger(aa1);
     }
   else
     {
      mPitch[0]=ExtPitchforkStaticNum;
      mPitch[1]=ExtPitchforkStaticNum-1;
      mPitch[2]=ExtPitchforkStaticNum-2;
     }

   if (ExtFiboExpansion>0)
     {
      if (ExtFiboExpansion>99)
        {
         aa=DoubleToStr(ExtFiboExpansion,0);
         aa1=StringSubstr(aa,0,1);
         mExpansion[0]=StrToInteger(aa1);
         aa1=StringSubstr(aa,1,1);
         mExpansion[1]=StrToInteger(aa1);
         aa1=StringSubstr(aa,2,1);
         mExpansion[2]=StrToInteger(aa1);
        }
      else
        {
         mExpansion[0]=ExtFiboExpansion;
         mExpansion[1]=ExtFiboExpansion-1;
         mExpansion[2]=ExtFiboExpansion-2;
        }
     }

   if (ExtPitchforkCandle)
     {
      mPitchTime[0]=ExtDateTimePitchfork_1;
      mPitchTime[1]=ExtDateTimePitchfork_2;
      mPitchTime[2]=ExtDateTimePitchfork_3;

      if (ExtPitchfork_1_HighLow)
        {
         mPitchCena[0]=High[iBarShift(Symbol(),Period(),ExtDateTimePitchfork_1)];
         mPitchCena[1]=Low[iBarShift(Symbol(),Period(),ExtDateTimePitchfork_2)];
         mPitchCena[2]=High[iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)];
        }
      else
        {
         mPitchCena[0]=Low[iBarShift(Symbol(),Period(),ExtDateTimePitchfork_1)];
         mPitchCena[1]=High[iBarShift(Symbol(),Period(),ExtDateTimePitchfork_2)];
         mPitchCena[2]=Low[iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)];
        }
     }

   if (ExtSave)
     {
      MathSrand(LocalTime());
      save=MathRand();
     }
   
   Comment("                                                                  ");
   perTF=Period();
   Demo=IsDemo();
   delete_objects1();
   return(0);
  }
//+------------------------------------------------------------------+
//| Äåèíèöèàëèçàöèÿ. Óäàëåíèå âñåõ òðåíäîâûõ ëèíèé è òåêñòîâûõ îáúåêòîâ
//+------------------------------------------------------------------+
int deinit()
  {
   delete_objects1();
   ObjectDelete("fiboS" + ExtComplekt);ObjectDelete("fiboD" + ExtComplekt);
   ObjectDelete("fiboFanS" + ExtComplekt);ObjectDelete("fiboFanD" + ExtComplekt);
   ObjectDelete("RLineD" + ExtComplekt);ObjectDelete("RLineS" + ExtComplekt);
   ObjectDelete("pitchforkD" + ExtComplekt);ObjectDelete("pitchforkS" + ExtComplekt);
   ObjectDelete("pmedianaD" + ExtComplekt);ObjectDelete("pmedianaS" + ExtComplekt);
   ObjectDelete("1-2pmedianaD" + ExtComplekt);ObjectDelete("1-2pmedianaS" + ExtComplekt);
   ObjectDelete("fiboTime1" + ExtComplekt);ObjectDelete("fiboTime2" + ExtComplekt);
   ObjectDelete("fiboExpansion" + ExtComplekt);
   ObjectDelete("UTL" + ExtComplekt);ObjectDelete("LTL" + ExtComplekt);
   ObjectDelete("UWL" + ExtComplekt);ObjectDelete("LWL" + ExtComplekt);
   ObjectDelete("CL" + ExtComplekt);
//   ObjectDelete("PivotZoneS" + ExtComplekt);
   ObjectDelete("FanMedianaStatic" + ExtComplekt);ObjectDelete("FanMedianaDinamic" + ExtComplekt);
   ObjectDelete("FiboFan" + ExtComplekt);
   return(0);
  }
//********************************************************
// ÍÀ×ÀËÎ
int start()
  {
   counted_bars=IndicatorCounted();
  
   if (perTF!=Period())
     {
      delete_objects1();  
      perTF=Period();
     }

   if (Demo!=IsDemo())
     {
      delete_objects1();  
      Demo=IsDemo();
      counted_bars=0;
     }

//-----------------------------------------
//
//     1.
//
// Áëîê çàïîëíåíèÿ áóôåðîâ. Íà÷àëî. 
//-----------------------------------------   
// zz[] - áóôåð, äàííûå èç êîòîðîãî áåðóòñÿ äëÿ îòðèñîâêè ñàìîãî ZigZag-a
// zzL[] - ìàññèâ ìèíèìóìîâ ÷åðíîâîé
// zzH[] - ìàññèâ ìàêñèìóìîâ ÷åðíîâîé
//
//-----------------------------------------   
//
// Ñþäà ìîæíî âñòàâèòü ëþáîé èíñòðóìåíò,
// êîòîðûé çàïîëíÿåò òðè âûøåïåðå÷èñëåíûõ áóôåðà.
// Èíäèêàòîð áóäåò ñòðîèòüñÿ íà îñíîâå äàííûõ,
// ïîëó÷åííûõ îò ýòîãî èíñòðóìåíòà.
//
// Ýòî äëÿ òåõ, êòî çàõî÷åò ìîäèôèöèðîâàòü èíäèêàòîð.
//
//-----------------------------------------

//if (ExtIndicator>0)
//  {
   if (timeFirstBar==Time[Bars-1])
     {
      cbi=Bars-IndicatorCounted()-1;
     }
   else
     {
      cbi=Bars-1;
      for (iBar=cbi; iBar>0; iBar--) {zzL[iBar]=0.0; zzH[iBar]=0.0; zz[iBar]=0.0;}
      if (ExtIndicator==6) 
        {
         for (iBar=cbi; iBar>0; iBar--) DT_ZigZag[iBar]=0.0;
         bigshift=0; bigshift_last=0;init_zz=true;
        }
      timeFirstBar=Time[cbi];
     }
//  }

if (ExtIndicator==0) ZigZag_();
if (ExtIndicator==1) ang_AZZ_();
if (ExtIndicator==2) Ensign_ZZ();
if (ExtIndicator==3) Ensign_ZZ();
if (ExtIndicator==4) ZigZag_tauber();
if (ExtIndicator==5) GannSwing();
if (ExtIndicator==6) DTZigZag();
if (ExtIndicator==7) ZigZag_new_nen1();


if (ExtHidden<5) // Ðàçðåøåíèå íà âûâîä îñíàñòêè. Íà÷àëî.
  {
   if(!chHL_PeakDet_or_vts) {i_vts(); i_vts1();}
   // Èíèöèàëèçàöèÿ ìàòðèöû
   matriza();
   if (infoTF) if (close_TF!=Close[0]) info_TF();
  }


//-----------------------------------------
// Áëîê çàïîëíåíèÿ áóôåðîâ. Êîíåö.
//-----------------------------------------   

if (ExtHidden>0 && ExtHidden<5) // Ðàçðåøåíèå íà âûâîä îñíàñòêè. Íà÷àëî.
  {
//======================
//======================
//======================

//-----------------------------------------
//
//     2.
//
// Áëîê ïîäãîòîâêè äàííûõ. Íà÷àëî.
//-----------------------------------------   

   if (Bars - counted_bars>2 || flagFrNew)
     {

      // Ïîèñê âðåìåíè è íîìåðà áàðà, äî êîòîðîãî áóäóò ðèñîâàòüñÿ ñîåäèíèòåëüíûå ëèíèè 
      if (countBarEnd==0)
        {
         if (ExtFractalEnd>0)
           {
            k=ExtFractalEnd;
            for (shift=0; shift<Bars && k>0; shift++) 
              { 
               if (zz[shift]>0 && zzH[shift]>0) {countBarEnd=shift; TimeBarEnd=Time[shift]; k--;}
              }
           }
         else 
           {
            countBarEnd=Bars-3;
            TimeBarEnd=Time[Bars-3];
           }
        }
      else
        {
         countBarEnd=iBarShift(Symbol(),Period(),TimeBarEnd); 
        }

     }
//-----------------------------------------
// Áëîê ïîäãîòîâêè äàííûõ. Êîíåö.
//-----------------------------------------   


//-----------------------------------------
//
//     3.
//
// Áëîê ïðîâåðîê è óäàëåíèÿ ëèíèé, 
// ïîòåðÿâøèõ àêòóàëüíîñòü. Íà÷àëî.
//-----------------------------------------   
// Êîððåêöèÿ ñîåäèíÿþùèõ ëèíèé è ÷èñåë. Íà÷àëî.

if (Bars - counted_bars<3)
  {
   // Ïîèñê âðåìåíè áàðà ïåðâîãî ôðàêòàëà, ñ÷èòàÿ îò íóëåâîãî áàðà
   for (shift1=0; shift1<Bars; shift1++) 
     {
      if (zz[shift1]>0.0 && (zzH[shift1]==zz[shift1] || zzL[shift1]==zz[shift1])) 
       {
        timeFr1new=Time[shift1];
        break;
       }
     }
   // Ïîèñê áàðà, íà êîòîðîì ïåðâûé ôðàêòàë áûë ðàíåå.
   shift=iBarShift(Symbol(),Period(),afr[0]); 


   // Ïîÿâèëñÿ íîâûé ëó÷ ZigZag
   if ((zzH[shift1]>0 && afrl[0]>0) || (zzL[shift1]>0 && afrh[0]>0))
     {
      ExtFiboStatic=false;
      ExtPitchforkStatic=0;
      ExtFiboExpansion=0;
      ExtFiboFanNum=0;
      
      if (ExtAlert)
       {
        Alert (Symbol(),"  ",Period(),"  ïîÿâèëñÿ íîâûé ëó÷ ZigZag");
        PlaySound("alert.wav");
       }
     }

   // Ñðàâíåíèå òåêóùåãî çíà÷åíèÿ ôðàêòàëà ñ òåì, êîòîðûé áûë ðàíåå

   // Îáðàçîâàëñÿ íîâûé ôðàêòàë
   if (timeFr1new!=afr[0])
     {
      flagFrNew=true;
      if (shift>=shift1) numBar=shift; else  numBar=shift1;
      afrm=true;
     }

   // Ôðàêòàë íà ìàêñèìóìå ñäâèíóëñÿ íà äðóãîé áàð
   if (afrh[0]>0 && zz[shift]==0.0)
     {
      flagFrNew=true;
      if (numBar<shift) numBar=shift;
      afrm=true;
     }
   // Ôðàêòàë íà ìèíèìóìå ñäâèíóëñÿ íà äðóãîé áàð
   if (afrl[0]>0 && zz[shift]==0.0)
     {
      flagFrNew=true;
      if (numBar<shift) numBar=shift;
      afrm=true;
     }


//-----------3 Ñìåñòèëñÿ ìàêñèìóì èëè ìèíèìóì, íî îñòàëñÿ íà òîì æå áàðå. Íà÷àëî.

//============= 1 ñìåñòèëñÿ ìàêñèìóì. Íà÷àëî.
if (afrh[0]-High[shift]!=0 && afrh[0]>0)
  {
   flagFrNew=true;
   numBar=0;
   delete_objects2(afr[0]);
   afrh[0]=High[shift];
   if (ExtFiboDinamic) screenFiboD();
   if (ExtPitchforkDinamic>0) screenPitchforkD();
   if (ExtFiboFanDinamic) screenFiboFanD();
   if (mFibo[1]==0 && ExtFiboStatic) screenFiboS();
   if (ExtPitchforkStatic>0)
     {
      if (ExtPitchforkCandle)
        {
         if (iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)==0) screenPitchforkS();
        }
      else
        {
         if (mPitch[2]==0) screenPitchforkS();
        }
     }
   if (mExpansion[2]==0 && ExtFiboExpansion>0) FiboExpansion();
   if (mFan[1]==0 && ExtFiboFanNum>0 && ExtFiboFanColor>0) screenFiboFan();
  }
//============= 1 ñìåñòèëñÿ ìàêñèìóì. Êîíåö.
//
//============= 1 ñìåñòèëñÿ ìèíèìóì. Íà÷àëî.
if (afrl[0]-Low[shift]!=0 && afrl[0]>0)
  {
   flagFrNew=true;
   numBar=0;
   delete_objects2(afr[0]);
   afrl[0]=Low[shift];
   if (ExtFiboDinamic) screenFiboD();
   if (ExtFiboFanDinamic) screenFiboFanD();
   if (mFibo[1]==0 && ExtFiboStatic) screenFiboS();
   if (ExtPitchforkStatic>0)
     {
      if (ExtPitchforkCandle)
        {
         if (iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)==0) screenPitchforkS();
        }
      else
        {
         if (mPitch[2]==0) screenPitchforkS();
        }
     }
   if (mExpansion[2]==0 && ExtFiboExpansion>0) FiboExpansion();
   if (mFan[1]==0 && ExtFiboFanNum>0 && ExtFiboFanColor>0) screenFiboFan();
  }
//============= 1 ñìåñòèëñÿ ìèíèìóì. Êîíåö.
//-----------3 Ñìåñòèëñÿ ìàêñèìóì èëè ìèíèìóì, íî îñòàëñÿ íà òîì æå áàðå. Êîíåö.


   // Ïîèñê èñ÷åçíóâøèõ ôðàêòàëîâ è óäàëåíèå ëèíèé, èñõîäÿùèõ îò ýòèõ ôðàêòàëîâ. Íà÷àëî.
   countBarEnd=iBarShift(Symbol(),Period(),TimeBarEnd); 
   for (k=0; k<5; k++)
     {

      // Ïðîâåðêà ìàêñèìóìîâ.
      if (afrh[k]>0)
        {
         // Ïîèñê áàðà, íà êîòîðîì áûë ýòîò ôðàêòàë
         shift=iBarShift(Symbol(),Period(),afr[k]); 
         if (zz[shift]==0)
           {
            flagFrNew=true;
            if (shift>numBar) numBar=shift;
            afrm=true;
            numHighPrim=shift; numHighLast=0;HighLast=0.0;
            for (k1=shift+1; k1<=countBarEnd; k1++)
              {
               if (zzH[k1]>0) 
                 {
                  HighLast=High[k1]; numHighLast=k1;

                  nameObj="" + ExtComplekt + "ph" + Time[numHighPrim] + "_" + Time[numHighLast];

                  numOb=ObjectFind(nameObj);
                  if (numOb>-1)
                    {
                     ObjectDelete(nameObj); 

                     nameObjtxt="" + ExtComplekt + "phtxt" + Time[numHighPrim] + "_" + Time[numHighLast];

                     ObjectDelete(nameObjtxt);
                    }
                 }
              }

           }
        }
      
      // Ïðîâåðêà ìèíèìóìîâ.
      if (afrl[k]>0)
        {
         // Ïîèñê áàðà, íà êîòîðîì áûë ýòîò ôðàêòàë
         shift=iBarShift(Symbol(),Period(),afr[k]); 
         if (zz[shift]==0)
           {
            flagFrNew=true;
            if (shift>numBar) numBar=shift;

            afrm=true;
            numLowPrim=shift; numLowLast=0;LowLast=10000000;
            for (k1=shift+1; k1<=countBarEnd; k1++)
              {
               if (zzL[k1]>0) 
                 {
                  LowLast=Low[k1]; numLowLast=k1;

                  nameObj="" + ExtComplekt + "pl" + Time[numLowPrim] + "_" + Time[numLowLast];

                  numOb=ObjectFind(nameObj);
                  if (numOb>-1)
                    {
                     ObjectDelete(nameObj); 

                     nameObjtxt="" + ExtComplekt + "pltxt" + Time[numLowPrim] + "_" + Time[numLowLast];

                     ObjectDelete(nameObjtxt);
                    }
                 }
              }
           }
        }

     }
   // Ïîèñê èñ÷åçíóâøèõ ôðàêòàëîâ è óäàëåíèå ëèíèé, èñõîäÿùèõ îò ýòèõ ôðàêòàëîâ. Êîíåö.

   // Ïåðåçàïèñü ìàòðèöû. Íà÷àëî.
   matriza ();
   // Ïåðåçàïèñü ìàòðèöû. Êîíåö.

  }
// Êîððåêöèÿ ñîåäèíÿþùèõ ëèíèé è ÷èñåë. Êîíåö.
//-----------------------------------------
// Áëîê ïðîâåðîê è óäàëåíèÿ ëèíèé, 
// ïîòåðÿâøèõ àêòóàëüíîñòü. Êîíåö.
//-----------------------------------------   


  // Ïîäñ÷åò êîëè÷åñòâà ôðàêòàëîâ. Íà÷àëî.
  countFractal();
  // Ïîäñ÷åò êîëè÷åñòâà ôðàêòàëîâ. Êîíåö.

//-----------------------------------------
//
//     4.
//
// Áëîê âûâîäà ñîåäèíèòåëüíûõ ëèíèé. Íà÷àëî.
//-----------------------------------------   
if (Bars - counted_bars>2)
  {
//-----------1 Îòðèñîâêà ìàêñèìóìîâ. Íà÷àëî.
//+--------------------------------------------------------------------------+
//| Âûâîä ñîåäèíÿþùèõ ëèíèé è ÷èñåë Ïåñàâåíòî è 0.886 äëÿ ìàêñèìóìîâ ZigZag-a
//| Îòðèñîâêà èäåò îò íóëåâîãî áàðà
//+--------------------------------------------------------------------------+

   numLowPrim=0; numLowLast=0;
   numHighPrim=0; numHighLast=0;

   LowPrim=0.0; LowLast=0.0;
   HighPrim=0.0; HighLast=0.0;
   
   Angle=-100;
   
   if (flagFrNew) countFr=1;
   else countFr=ExtFractal;

   for (k=0; (k<Bars-1 && countHigh1>0 && countFr>0); k++)
     {
      if (zzL[k]>0.0 && LowPrim==0.0 && HighPrim>0 && zzL[k]==zz[k]) {LowPrim=zzL[k]; numLowPrim=k;}
      if (zzL[k]>0.0 && zzL[k]<LowPrim && HighPrim>0 && zzL[k]==zz[k]) {LowPrim=zzL[k]; numLowPrim=k;}
      if (zzH[k]>0.0 && zzH[k]==zz[k])
        {
         if (HighPrim>0) 
           {
            if (HighLast>0) 
              {
               HighLast=High[k]; numHighLast=k;
              }
            else {numHighLast=k; HighLast=High[k];}

            HL=High[numHighLast]-Low[numLowPrim];
            kj=(HighPrim-HighLast)*1000/(numHighLast-numHighPrim);
            if (HL>0 && (Angle>kj || Angle==-100))  // Ïðîâåðêà óãëà íàêëîíà ëèíèè
              {
               Angle=kj;
               // Ñîçäàíèå ëèíèè è òåêñòîâîãî îáúåêòà
               HLp=High[numHighPrim]-Low[numLowPrim];
               k1=MathCeil((numHighPrim+numHighLast)/2);
               kj=HLp/HL;

               if (kj>0.14 && kj<=5)
                 {
                  // Ñîçäàíèå òåêñòîâîãî îáúåêòà (÷èñëà Ïåñàâåíòî). % âîññòàíîâëåíèÿ ìåæäó ìàêñèìóìàìè
                  kk=kj;
                  k2=1;
                  if (!ExtFiboType)
                    {
                     if (ExtDeltaType==2) for (ki=0;ki<=9;ki++) {if (MathAbs((fi1[ki]-kj)/fi1[ki])<=ExtDelta) {kk=fi1[ki]; k2=-1; break;}}
                     if (ExtDeltaType==1) for (ki=0;ki<=9;ki++) {if (MathAbs(fi1[ki]-kj)<=ExtDelta) {kk=fi1[ki]; k2=-1; break;}}
                    }
                  else
                    {
                     if (ExtDeltaType==2) for (ki=0;ki<=20;ki++) {if (MathAbs((fi[ki]-kj)/fi[ki])<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
                     if (ExtDeltaType==1) for (ki=0;ki<=20;ki++) {if (MathAbs(fi[ki]-kj)<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
                    }

                  if (k2<0)
                    // ïðîöåíò âîññòàíîâëåíèÿ ÷èñëà Ïåñàâåíòî è 0.886
                    {
                    if (ExtHidden!=4)
                      {
                       nameObj="" + ExtComplekt + "phtxt" + Time[numHighPrim] + "_" + Time[numHighLast];

                       ObjectCreate(nameObj,OBJ_TEXT,0,Time[k1],MathAbs((High[numHighPrim]+High[numHighLast])/2));

                       if (kk==0.447 ||  kk==0.886 || kk==2.24 || kk==3.14 || kk==3.618) // Gartley
                         ObjectSetText(nameObj,fitxt[ki],ExtSizeTxt,"Arial", ExtGartley886);
                       else
                         if (!ExtFiboType)
                           {
                            ObjectSetText(nameObj, fitxt1[ki],ExtSizeTxt,"Arial",ExtPesavento);
                           }
                         else
                           {
                            ObjectSetText(nameObj, fitxt[ki],ExtSizeTxt,"Arial",ExtPesavento);
                           }
                      }
                     }
                  else
                    // ïðîöåíò âîññòàíîâëåíèÿ (íå Ïåñàâåíòî è 0.886)
                    {
                     if (ExtHidden==1 || ExtHidden==4)
                       {
                        nameObj="" + ExtComplekt + "phtxt" + Time[numHighPrim] + "_" + Time[numHighLast];

                        ObjectCreate(nameObj,OBJ_TEXT,0,Time[k1],MathAbs((High[numHighPrim]+High[numHighLast])/2));
                        ObjectSetText(nameObj,""+DoubleToStr(kk,2),ExtSizeTxt,"Arial",ExtNotFibo);
                       }
                    }

                  if ((ExtHidden==2 && k2<0) || ExtHidden!=2)
                    {
                     nameObj="" + ExtComplekt + "ph" + Time[numHighPrim] + "_" + Time[numHighLast];

                     ObjectCreate(nameObj,OBJ_TREND,0,Time[numHighPrim],High[numHighPrim],Time[numHighLast],High[numHighLast]);
                     ObjectSet(nameObj,OBJPROP_RAY,false);
                     ObjectSet(nameObj,OBJPROP_STYLE,STYLE_DOT);
                     ObjectSet(nameObj,OBJPROP_COLOR,ExtLine);
                     ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
                    }
                  if (ExtFiboZigZag) k=countBarEnd;
                 }
              }
           }
         else 
            {numHighPrim=k; HighPrim=High[k];}
        }
       // Ïåðåõîä íà ñëåäóþùèé ôðàêòàë
       if (k>countBarEnd) 
         {
          k=numHighPrim+1; countHigh1--; countFr--;
          numLowPrim=0; numLowLast=0;
          numHighPrim=0; numHighLast=0;

          LowPrim=0.0; LowLast=0.0;
          HighPrim=0.0; HighLast=0.0;
   
          Angle=-100;
         }
     }
//-----------1 Îòðèñîâêà ìàêñèìóìîâ. Êîíåö.

//-----------2 Îòðèñîâêà ìèíèìóìîâ. Íà÷àëî.
//+-------------------------------------------------------------------------+
//| Âûâîä ñîåäèíÿþùèõ ëèíèé è ÷èñåë Ïåñàâåíòî è 0.886 äëÿ ìèíèìóìîâ ZigZag-a
//| Îòðèñîâêà èäåò îò íóëåâîãî áàðà
//+-------------------------------------------------------------------------+

   numLowPrim=0; numLowLast=0;
   numHighPrim=0; numHighLast=0;

   LowPrim=0.0; LowLast=0.0;
   HighPrim=0.0; HighLast=0.0;
   
   Angle=-100;

   if (flagFrNew) countFr=1;
   else countFr=ExtFractal;

   for (k=0; (k<Bars-1 && countLow1>0 && countFr>0); k++)
     {
      if (zzH[k]>HighPrim && LowPrim>0) {HighPrim=High[k]; numHighPrim=k;}
      if (zzL[k]>0.0 && zzL[k]==zz[k]) 
        {
         if (LowPrim>0) 
           {
            if (LowLast>0) 
              {
               LowLast=Low[k]; numLowLast=k;
              }
            else {numLowLast=k; LowLast=Low[k];}

            // âûâîä ñîåäèíÿþùèõ ëèíèé è ïðîöåíòîâ âîññòàíîâëåíèÿ(÷èñåë Ïåñàâåíòî)
            HL=High[numHighPrim]-Low[numLowLast];
            kj=(LowPrim-LowLast)*1000/(numLowLast-numLowPrim);
            if (HL>0 && (Angle<kj || Angle==-100))  // Ïðîâåðêà óãëà íàêëîíà ëèíèè
              {
               Angle=kj;

               HLp=High[numHighPrim]-Low[numLowPrim];
               k1=MathCeil((numLowPrim+numLowLast)/2);
               kj=HLp/HL;

               if ( kj>0.14 && kj<=5)
                 {
                  // Ñîçäàíèå òåêñòîâîãî îáúåêòà (÷èñëà Ïåñàâåíòî). % âîññòàíîâëåíèÿ ìåæäó ìèíèìóìàìè
                  kk=kj;
                  k2=1;

                  if (!ExtFiboType)
                    {
                     if (ExtDeltaType==2) for (ki=0;ki<=9;ki++) {if (MathAbs((fi1[ki]-kj)/fi1[ki])<=ExtDelta) {kk=fi1[ki]; k2=-1; break;}}
                     if (ExtDeltaType==1) for (ki=0;ki<=9;ki++) {if (MathAbs(fi1[ki]-kj)<=ExtDelta) {kk=fi1[ki]; k2=-1; break;}}
                    }
                  else
                    {
                     if (ExtDeltaType==2) for (ki=0;ki<=20;ki++) {if (MathAbs((fi[ki]-kj)/fi[ki])<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
                     if (ExtDeltaType==1) for (ki=0;ki<=20;ki++) {if (MathAbs(fi[ki]-kj)<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
                    }

                  if (k2<0)
                  // ïðîöåíò âîññòàíîâëåíèÿ ÷èñëà Ïåñàâåíòî è 0.886
                    {
                     if (ExtHidden!=4)                  
                       {
                        nameObj="" + ExtComplekt + "pltxt" + Time[numLowPrim] + "_" + Time[numLowLast];

                        ObjectCreate(nameObj,OBJ_TEXT,0,Time[k1],MathAbs((Low[numLowPrim]+Low[numLowLast])/2));
                        if (kk==0.447 ||  kk==0.886 || kk==2.24 || kk==3.14 || kk==3.618) // Gartley
                          ObjectSetText(nameObj,fitxt[ki],ExtSizeTxt,"Arial", ExtGartley886);
                        else
                          if (!ExtFiboType)
                            {
                             ObjectSetText(nameObj, fitxt1[ki],ExtSizeTxt,"Arial",ExtPesavento);
                            }
                          else
                            {
                             ObjectSetText(nameObj, fitxt[ki],ExtSizeTxt,"Arial",ExtPesavento);
                            }
                       }
                    }
                  else 
                    // ïðîöåíò âîññòàíîâëåíèÿ (íå Ïåñàâåíòî è 0.886)
                    { 
                     if (ExtHidden==1 || ExtHidden==4)
                       {
                        nameObj="" + ExtComplekt + "pltxt" + Time[numLowPrim] + "_" + Time[numLowLast];

                        ObjectCreate(nameObj,OBJ_TEXT,0,Time[k1],MathAbs((Low[numLowPrim]+Low[numLowLast])/2));
                        ObjectSetText(nameObj,""+DoubleToStr(kk,2),ExtSizeTxt,"Arial",ExtNotFibo);
                       }
                     }
                     
                   if ((ExtHidden==2 && k2<0) || ExtHidden!=2)
                     {
                      nameObj="" + ExtComplekt + "pl" + Time[numLowPrim] + "_" + Time[numLowLast];

                      ObjectCreate(nameObj,OBJ_TREND,0,Time[numLowPrim],Low[numLowPrim],Time[numLowLast],Low[numLowLast]);
                      ObjectSet(nameObj,OBJPROP_RAY,false);
                      ObjectSet(nameObj,OBJPROP_STYLE,STYLE_DOT);
                      ObjectSet(nameObj,OBJPROP_COLOR,ExtLine);
                      ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
                     }
                   if (ExtFiboZigZag) k=countBarEnd;
                  }
               }
           }
         else {numLowPrim=k; LowPrim=Low[k];}
        }
       // Ïåðåõîä íà ñëåäóþùèé ôðàêòàë
       if (k>countBarEnd) 
         {
          k=numLowPrim+1; countLow1--; countFr--;

          numLowPrim=0; numLowLast=0;
          numHighPrim=0; numHighLast=0;

          LowPrim=0.0; LowLast=0.0;
          HighPrim=0.0; HighLast=0.0;
  
          Angle=-100;
         }
     }

//-----------2 Îòðèñîâêà ìèíèìóìîâ. Êîíåö.

  }
//-----------------------------------------
// Áëîê âûâîäà ñîåäèíèòåëüíûõ ëèíèé. Êîíåö.
//-----------------------------------------   

//======================
//======================
//======================
  } // Ðàçðåøåíèå íà âûâîä îñíàñòêè. Êîíåö.
// ÊÎÍÅÖ
  } // start



//----------------------------------------------------
//  Ïîäïðîãðàììû è ôóíêöèè
//----------------------------------------------------

//--------------------------------------------------------
// Ïîäñ÷åò êîëè÷åñòâà ôðàêòàëîâ. Ìèíèìóìîâ è ìàêñèìóìîâ. Íà÷àëî.
//--------------------------------------------------------
void countFractal()
  {
   int shift;
   countLow1=0;
   countHigh1=0;
   if (flagFrNew)
     {
      for(shift=0; shift<=numBar; shift++)
        {
         if (zzL[shift]>0.0) {countLow1++;}
         if (zzH[shift]>0.0) {countHigh1++;}    
        }
      flagFrNew=false;
      numBar=0;  
      counted_bars=Bars-4;
     }
   else
     {
      for(shift=0; shift<=countBarEnd; shift++)
        {
         if (zzL[shift]>0.0) {countLow1++;}
         if (zzH[shift]>0.0) {countHigh1++;}
        }
     }
  }
//--------------------------------------------------------
// Ïîäñ÷åò êîëè÷åñòâà ôðàêòàëîâ. Ìèíèìóìîâ è ìàêñèìóìîâ. Êîíåö.
//--------------------------------------------------------

//--------------------------------------------------------
// Ôîðìèðîâàíèå ìàòðèöû. Íà÷àëî.
//
// Ìàòðèöà èñïîëüçóåòñÿ äëÿ ïîèñêà èñ÷åçíóâøèõ ôðàêòàëîâ.
// Ýòî èíñòðóìåíò êîìïåíñàöèè íåïðåäâèäåííûõ çàêèäîíîâ ñòàíäàðòíîãî ZigZag-a.
//
// Òàêæå âûâîäÿòñÿ ñòàòè÷åñêèå è äèíàìè÷åñêèå ôèáû è âååðû Ôèáîíà÷÷è,
// âèëû Ýíäðþñà...
//------------------------------------------------------
void matriza()
  {
   if (afrm)
     {
      afrm=false;
      int shift,k;
      
      k=0;
      for (shift=0; shift<Bars && k<10; shift++)
        {
         if (zz[shift]>0)
           {
            afr[k]=Time[shift];
            if (zz[shift]==zzL[shift]) {afrl[k]=Low[shift]; afrh[k]=0.0;}
            if (zz[shift]==zzH[shift]) {afrh[k]=High[shift]; afrl[k]=0.0;}
            k++;
           }
        }

      // Âûâîä âèë Ýíäðþñà
      if (ExtPitchforkStatic>0)
        {
         if (mPitch[2]>0) {screenPitchforkS(); ExtPitchforkStatic=0;}
         if (ExtPitchforkCandle)
           {
            if (iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)==0) screenPitchforkS();
           }
         else
           {
            if (mPitch[2]==0) screenPitchforkS();
           }
        }
      if (ExtPitchforkDinamic>0) {screenPitchforkD();}

      // Âûâîä ñòàòè÷åñêèõ è äèíàìè÷åñêèõ ôèá.
      if (ExtFiboStatic)
        {
         if (mFibo[1]>0) {ExtFiboStatic=false; screenFiboS();}
         if (mFibo[1]==0) screenFiboS();
        }
      if (ExtFiboDinamic) {screenFiboD();}

      // Ðàñøèðåíèÿ Ôèáîíà÷÷è
      if (ExtFiboExpansion>0)
        {
         if (mExpansion[2]>0) {FiboExpansion(); ExtFiboExpansion=0;}
         if (mExpansion[2]==0) FiboExpansion();
        }

      // Âûâîä ôèáîâååðîâ
      if (ExtFiboFanDinamic) screenFiboFanD();

      if (ExtFiboFanNum>0 && ExtFiboFanColor>0)
        {
         if (mFan[1]>0) {screenFiboFan(); ExtFiboFanNum=0;}
         if (mFan[1]==0) screenFiboFan();
        }
      
      ExtSave=false;
     }
  }
//--------------------------------------------------------
// Ôîðìèðîâàíèå ìàòðèöû. Êîíåö.
//--------------------------------------------------------

//--------------------------------------------------------
// Âûâîä âèë Ýíäðþñà ñòàòè÷åñêèõ. Íà÷àëî.
//--------------------------------------------------------
void screenPitchforkS()
  {
   int k1,n,nbase1,nbase2;
   double a1,b1,c1,ab1,bc1,ab2,bc2,d,n1,cl1,ch1;
   datetime ta1,tb1,tc1,tab2,tbc2,tcl1,tch1;
   bool fo1=false,fo2=false;
   int    pitch_time[]={0,0,0}; 
   double pitch_cena[]={0,0,0};
   int    TLine_time[]={0,0,0};
   double TLine[]={0,0,0};
   int  m1,m2;

   if (ExtPitchforkCandle)
     {
      if (iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)==0)
        {
         if (ExtPitchfork_1_HighLow)
           {
            mPitchCena[2]=High[iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)];
           }
         else
           {
            mPitchCena[2]=Low[iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)];
           }
        }
     }

   if (ExtFiboFanStatic) {ExtFiboFanStatic=false;screenFiboFanS();}
 
   if (ExtPitchforkStatic>0)
     {
      if (ExtPitchforkCandle)
        {
         n=(iBarShift(Symbol(),Period(),mPitchTime[0])+iBarShift(Symbol(),Period(),mPitchTime[1]))/2.0;
        }
      else
        {
         n=(iBarShift(Symbol(),Period(),afr[mPitch[0]])+iBarShift(Symbol(),Period(),afr[mPitch[1]]))/2.0;
        }
      k1=MathCeil(n);
      if (n<k1) fo1=true;
      tab2=Time[k1];

      if (ExtPitchforkCandle)
        {
         n=(iBarShift(Symbol(),Period(),mPitchTime[1])+iBarShift(Symbol(),Period(),mPitchTime[2]))/2.0;
        }
      else
        {
         n=(iBarShift(Symbol(),Period(),afr[mPitch[1]])+iBarShift(Symbol(),Period(),afr[mPitch[2]]))/2.0;
        }
      k1=MathCeil(n);
      if (n<k1) fo2=true;
      tbc2=Time[k1];

      if (ExtPitchforkCandle)
        {
         n=iBarShift(Symbol(),Period(),mPitchTime[0])-iBarShift(Symbol(),Period(),mPitchTime[2]);
        }
      else
        {
         n=iBarShift(Symbol(),Period(),afr[mPitch[0]])-iBarShift(Symbol(),Period(),afr[mPitch[2]]);
        }

      nameObj="pmedianaS" + ExtComplekt;
      ObjectDelete(nameObj);

      if (ExtSave)
        {
         if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
           {
            nameObj=nameObj + save;
           }
         else
           {
            if (mPitch[2]>0)
              {
               nameObj=nameObj + save;
              }
           }
        }

      if (ExtPitchforkCandle)
        {
         if (!ExtPitchfork_1_HighLow)
           {
            d=(mPitchCena[2]-mPitchCena[0])/4/n;
            ab1=(mPitchCena[0]+mPitchCena[1])/2;
            if (fo1) {fo1=false; ab1=ab1+d;}
            bc1=(mPitchCena[1]+mPitchCena[2])/2;
            if (fo2) {fo2=false; bc1=bc1+d;}
           }
         else
           {
            d=(mPitchCena[2]-mPitchCena[0])/4/n;
            ab1=(mPitchCena[0]+mPitchCena[1])/2;
            if (fo1) {fo1=false; ab1=ab1+d;}
            bc1=(mPitchCena[1]+mPitchCena[2])/2;
            if (fo2) {fo2=false; bc1=bc1+d;}
           }
        }
      else
        {
         if (afrl[mPitch[0]]>0)
           {
            d=(afrl[mPitch[2]]-afrl[mPitch[0]])/4/n;
            ab1=(afrl[mPitch[0]]+afrh[mPitch[1]])/2;
            if (fo1) {fo1=false; ab1=ab1+d;}
            bc1=(afrh[mPitch[1]]+afrl[mPitch[2]])/2;
            if (fo2) {fo2=false; bc1=bc1+d;}
           }
         else
           {
            d=(afrh[mPitch[2]]-afrh[mPitch[0]])/4/n;
            ab1=(afrh[mPitch[0]]+afrl[mPitch[1]])/2;
            if (fo1) {fo1=false; ab1=ab1+d;}
            bc1=(afrl[mPitch[1]]+afrh[mPitch[2]])/2;
            if (fo2) {fo2=false; bc1=bc1+d;}
           }
        }

      pitch_time[0]=tab2;pitch_cena[0]=ab1;

      if (ExtPitchforkStatic==2)
        {
         ObjectCreate(nameObj,OBJ_TREND,0,tab2,ab1,tbc2,bc1);
         ObjectSet(nameObj,OBJPROP_STYLE,STYLE_DASH);
         ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkS);
         ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

         nameObj="1-2pmedianaS" + ExtComplekt;

         if (ExtSave)
           {
            if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
              {
               nameObj=nameObj + save;
              }
            else
              {
               if (mPitch[2]>0)
                 {
                  nameObj=nameObj + save;
                 }
              }
           }
         ObjectDelete(nameObj);
         ObjectCreate(nameObj,OBJ_TEXT,0,tab2,ab1+3*Point);
         ObjectSetText(nameObj,"     1/2 ML",9,"Arial", ExtLinePitchforkS);
        }   
     }

   nameObj="pitchforkS" + ExtComplekt;
   if (ExtSave)
     {
      if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
        {
         nameObj=nameObj + save;
        }
      else
        {
         if (mPitch[2]>0)
           {
            nameObj=nameObj + save;
           }
        }
     }

   ObjectDelete(nameObj);

   if (ExtPitchforkCandle)
     {
      if (!ExtPitchfork_1_HighLow)
        {
         if (ExtPitchforkStatic!=4)
           {
            pitch_time[0]=mPitchTime[0];pitch_cena[0]=mPitchCena[0];
            if (ExtPitchforkStatic==3) pitch_cena[0]=ab1;
           }
         pitch_time[1]=mPitchTime[1];pitch_cena[1]=mPitchCena[1];
         pitch_time[2]=mPitchTime[2];pitch_cena[2]=mPitchCena[2];
        }
      else
        {
         if (ExtPitchforkStatic!=4)
           {
            pitch_time[0]=mPitchTime[0];pitch_cena[0]=mPitchCena[0];
            if (ExtPitchforkStatic==3) pitch_cena[0]=ab1;
           }
         pitch_time[1]=mPitchTime[1];pitch_cena[1]=mPitchCena[1];
         pitch_time[2]=mPitchTime[2];pitch_cena[2]=mPitchCena[2];
        }
     }
   else
     {
      if (afrl[mPitch[0]]>0)
        {
         if (ExtPitchforkStatic!=4)
           {
            pitch_time[0]=afr[mPitch[0]];pitch_cena[0]=afrl[mPitch[0]];
            if (ExtPitchforkStatic==3) pitch_cena[0]=ab1;
           }
         pitch_time[1]=afr[mPitch[1]];pitch_cena[1]=afrh[mPitch[1]];
         pitch_time[2]=afr[mPitch[2]];pitch_cena[2]=afrl[mPitch[2]];
        }
      else
        {
         if (ExtPitchforkStatic!=4)
           {
            pitch_time[0]=afr[mPitch[0]];pitch_cena[0]=afrh[mPitch[0]];
            if (ExtPitchforkStatic==3) pitch_cena[0]=ab1;
           }
         pitch_time[1]=afr[mPitch[1]];pitch_cena[1]=afrl[mPitch[1]];
         pitch_time[2]=afr[mPitch[2]];pitch_cena[2]=afrh[mPitch[2]];
        }
     }

   ObjectCreate(nameObj,OBJ_PITCHFORK,0,pitch_time[0],pitch_cena[0],pitch_time[1],pitch_cena[1],pitch_time[2],pitch_cena[2]);
   if (ExtPitchforkStyle<5)
     {
      ObjectSet(nameObj,OBJPROP_STYLE,ExtPitchforkStyle);
     }
   else if(ExtPitchforkStyle<11)
     {
      ObjectSet(nameObj,OBJPROP_WIDTH,ExtPitchforkStyle-5);
     }
   ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkS);
   ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

   if (ExtFiboFanMedianaStaticColor>0)
     {
      ta1=pitch_time[0];
      a1=pitch_cena[0];
      n1=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),pitch_time[1])+iBarShift(Symbol(),Period(),pitch_time[2]))/2.0;
      d=(pitch_cena[0]-(pitch_cena[1]+pitch_cena[2])/2.0)/n1;
      m1=iBarShift(Symbol(),Period(),pitch_time[0]);
      tb1=Time[0];
      b1=pitch_cena[0]-d*(m1+1);

      nameObj="FanMedianaStatic" + ExtComplekt;
/*
      if (ExtSave)
        {
         if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
           {
            nameObj=nameObj + save;
           }
         else
           {
            if (mPitch[2]>0)
              {
               nameObj=nameObj + save;
              }
           }
        }
*/
      ObjectDelete(nameObj);

      ObjectCreate(nameObj,OBJ_FIBOFAN,0,ta1,a1,tb1,b1);
      ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DASH);
      ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboFanMedianaStaticColor);
      ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

      screenFibo();

     }

   if (ExtUTL)
     {
      nameObj="UTL" + ExtComplekt;
      if (ExtSave)
        {
         if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
           {
            nameObj=nameObj + save;
           }
         else
           {
            if (mPitch[2]>0)
              {
               nameObj=nameObj + save;
              }
           }
        }

      ObjectDelete(nameObj);
      if (pitch_cena[1]>pitch_cena[2])
        {
         ObjectCreate(nameObj,OBJ_TREND,0,pitch_time[0],pitch_cena[0],pitch_time[1],pitch_cena[1]);
        }
      else
        {
         ObjectCreate(nameObj,OBJ_TREND,0,pitch_time[0],pitch_cena[0],pitch_time[2],pitch_cena[2]);
        }
      ObjectSet(nameObj,OBJPROP_STYLE,STYLE_SOLID);
      ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkS);
      ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
     }

   if (ExtLTL)
     {
      nameObj="LTL" + ExtComplekt;
      if (ExtSave)
        {
         if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
           {
            nameObj=nameObj + save;
           }
         else
           {
            if (mPitch[2]>0)
              {
               nameObj=nameObj + save;
              }
           }
        }

      ObjectDelete(nameObj);
      if (pitch_cena[1]>pitch_cena[2])
        {
         ObjectCreate(nameObj,OBJ_TREND,0,pitch_time[0],pitch_cena[0],pitch_time[2],pitch_cena[2]);
        }
      else
        {
         ObjectCreate(nameObj,OBJ_TREND,0,pitch_time[0],pitch_cena[0],pitch_time[1],pitch_cena[1]);
        }
      ObjectSet(nameObj,OBJPROP_STYLE,STYLE_SOLID);
      ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkS);
      ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
     }
/*
   if (ExtPivotZoneColor>0)
     {
      ta1=pitch_time[2];
      a1=pitch_cena[2];
      m1=iBarShift(Symbol(),Period(),pitch_time[0])-iBarShift(Symbol(),Period(),pitch_time[1]);
      m2=iBarShift(Symbol(),Period(),pitch_time[1])-iBarShift(Symbol(),Period(),pitch_time[2]);
      n1=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),pitch_time[1])+iBarShift(Symbol(),Period(),pitch_time[2]))/2.0;
      d=(pitch_cena[0]-(pitch_cena[1]+pitch_cena[2])/2.0)/n1;

      if (m1>m2)
        {
         tb1=Time[iBarShift(Symbol(),Period(),pitch_time[2])-m1+1];
         b1=pitch_cena[0]-d*(2*m1+m2);
        }
      else
        {
         tb1=Time[iBarShift(Symbol(),Period(),pitch_time[2])-m2+1];
         b1=pitch_cena[0]-d*(2*m2+m1);
        }

      nameObj="PivotZoneS" + ExtComplekt;
      ObjectDelete(nameObj);

      ObjectCreate(nameObj,OBJ_RECTANGLE,0,ta1,a1,tb1,b1);
      ObjectSet(nameObj, OBJPROP_BACK, true);
      ObjectSet(nameObj, OBJPROP_COLOR, ExtPivotZoneColor); 
     }
*/
   if (ExtUWL || ExtLWL)
     {
      n1=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),pitch_time[1])+iBarShift(Symbol(),Period(),pitch_time[2]))/2.0;
      ta1=pitch_time[0];
      tb1=pitch_time[2];
      a1=pitch_cena[0];
      d=(pitch_cena[0]-(pitch_cena[1]+pitch_cena[2])/2.0)/n1;
      n1=(iBarShift(Symbol(),Period(),pitch_time[1])-iBarShift(Symbol(),Period(),pitch_time[2]))/2.0+1;
      b1=(pitch_cena[1]+pitch_cena[2])/2.0-d*n1;
      if (pitch_cena[1]>pitch_cena[2])
        {
         if (ExtUWL)
           {
            ch1=pitch_cena[1];
            tch1=pitch_time[1];
           }
         if (ExtLWL)
           {
            cl1=pitch_cena[2];
            tcl1=pitch_time[2];
           }
        }
      else
        {
         if (ExtUWL)
           {
            ch1=pitch_cena[2];
            tch1=pitch_time[2];
           }
         if (ExtLWL)
           {
            cl1=pitch_cena[1];
            tcl1=pitch_time[1];
           }
        }
      if (fo2) {fo2=false; b1=b1+d;}

      if (ExtUWL)
        {
         nameObj="UWL" + ExtComplekt;
         if (ExtSave)
           {
            if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
              {
               nameObj=nameObj + save;
              }
            else
              {
               if (mPitch[2]>0)
                 {
                  nameObj=nameObj + save;
                 }
              }
           }
  
         ObjectDelete(nameObj);

         ObjectCreate(nameObj,OBJ_FIBOCHANNEL,0,ta1,a1,tb1,b1,tch1,ch1);
         ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtLinePitchforkS);
         ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
         ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
         ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
         ObjectSet(nameObj,OBJPROP_FIBOLEVELS,6);

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.618);
         ObjectSetFiboDescription(nameObj, 0, "U W L 61.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,1.0);
         ObjectSetFiboDescription(nameObj, 1, "U W L 100.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,1.618);
         ObjectSetFiboDescription(nameObj, 2, "U W L 161.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,2.0);
         ObjectSetFiboDescription(nameObj, 3, "U W L 200.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,2.618);
         ObjectSetFiboDescription(nameObj, 4, "U W L 261.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,4.0);
         ObjectSetFiboDescription(nameObj, 5, "U W L 400.0"); 
        }

      if (ExtLWL)
        {
         nameObj="LWL" + ExtComplekt;
         if (ExtSave)
           {
            if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
              {
               nameObj=nameObj + save;
              }
            else
              {
               if (mPitch[2]>0)
                 {
                  nameObj=nameObj + save;
                 }
              }
           }

         ObjectDelete(nameObj);

         ObjectCreate(nameObj,OBJ_FIBOCHANNEL,0,ta1,a1,tb1,b1,tcl1,cl1);
         ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtLinePitchforkS);
         ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
         ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
         ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
         ObjectSet(nameObj,OBJPROP_FIBOLEVELS,6);

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.618);
         ObjectSetFiboDescription(nameObj, 0, "L W L 61.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,1.0);
         ObjectSetFiboDescription(nameObj, 1, "L W L 100.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,1.618);
         ObjectSetFiboDescription(nameObj, 2, "L W L 161.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,2.0);
         ObjectSetFiboDescription(nameObj, 3, "L W L 200.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,2.618);
         ObjectSetFiboDescription(nameObj, 4, "L W L 261.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,4.0);
         ObjectSetFiboDescription(nameObj, 5, "L W L 400.0"); 
        }

     }


//      if (ExtPitchforkStaticColor!=CLR_NONE && ExtPitchforkStaticColor!=-16777216)
   if (ExtPitchforkStaticColor>0)
     {
      if (ExtPitchforkCandle)
        {
         n=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),mPitchTime[1])+iBarShift(Symbol(),Period(),mPitchTime[2]))/2.0;
         nbase1=iBarShift(Symbol(),Period(),mPitchTime[1]);
        }
      else
        {
         n=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),afr[mPitch[1]])+iBarShift(Symbol(),Period(),afr[mPitch[2]]))/2.0;
         nbase1=iBarShift(Symbol(),Period(),afr[mPitch[1]]);
        }

      nameObj="1L" + ExtComplekt;

      ta1=Time[nbase1+n];

      if (ExtPitchforkCandle)
        {
         tc1=mPitchTime[1];
         TLine_time[0]=mPitchTime[1];
         TLine_time[2]=mPitchTime[2];
         if (!ExtPitchfork_1_HighLow)
           {
            a1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[1];
            c1=mPitchCena[1];
            ObjectCreate(nameObj,OBJ_TREND,0,ta1,a1,tc1,c1);

            TLine[0]=mPitchCena[1];
            TLine_time[1]=iTime(NULL, 0, 1);
            TLine[1]=ObjectGetValueByShift(nameObj, 1);
            TLine[2]=mPitchCena[2];
            ObjectDelete(nameObj);
           }
         else
           {
            a1=pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2+mPitchCena[1];
            c1=mPitchCena[1];
            ObjectCreate(nameObj,OBJ_TREND,0,ta1,a1,tc1,c1);

            TLine[0]=mPitchCena[1];
            TLine_time[1]=iTime(NULL, 0, 1); 
            TLine[1]=ObjectGetValueByShift(nameObj, 1);
            TLine[2]=mPitchCena[2];
            ObjectDelete(nameObj);
           }
        }
      else
        {
         tc1=afr[mPitch[1]];
         TLine_time[0]=afr[mPitch[1]];
         TLine_time[2]=afr[mPitch[2]];
         if (afrh[mPitch[1]]>0)
           {
            a1=(pitch_cena[0]-(afrh[mPitch[1]]+afrl[mPitch[2]])/2)+afrh[mPitch[1]];
            c1=afrh[mPitch[1]];
            ObjectCreate(nameObj,OBJ_TREND,0,ta1,a1,tc1,c1);

            TLine[0]=afrh[mPitch[1]];
            TLine_time[1]=iTime(NULL, 0, 1);
            TLine[1]=ObjectGetValueByShift(nameObj, 1);
            TLine[2]=afrl[mPitch[2]];
            ObjectDelete(nameObj);
           }
         else
           {
            a1=pitch_cena[0]-(afrl[mPitch[1]]+afrh[mPitch[2]])/2+afrl[mPitch[1]];
            c1=afrl[mPitch[1]];
            ObjectCreate(nameObj,OBJ_TREND,0,ta1,a1,tc1,c1);

            TLine[0]=afrl[mPitch[1]];
            TLine_time[1]=iTime(NULL, 0, 1); 
            TLine[1]=ObjectGetValueByShift(nameObj, 1);
            TLine[2]=afrh[mPitch[2]];
            ObjectDelete(nameObj);
           }
        }

      nameObj="CL" + ExtComplekt;
/*
      if (ExtSave)
        {
         if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
           {
            nameObj=nameObj + save;
           }
         else
           {
            if (mPitch[2]>0)
              {
               nameObj=nameObj + save;
              }
           }
        }
*/
      ObjectDelete(nameObj);

      ObjectCreate(nameObj,OBJ_CHANNEL,0,TLine_time[0],TLine[0],TLine_time[1],TLine[1],TLine_time[2],TLine[2]);
      ObjectSet(nameObj, OBJPROP_BACK, true);
      ObjectSet(nameObj, OBJPROP_COLOR, ExtPitchforkStaticColor); 
     }

   if (ExtRLine)
     {

      if (ExtPitchforkCandle)
        {
         n=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),mPitchTime[1])+iBarShift(Symbol(),Period(),mPitchTime[2]))/2.0;

         nbase1=iBarShift(Symbol(),Period(),mPitchTime[1]);
         nbase2=iBarShift(Symbol(),Period(),mPitchTime[2]);
         tc1=mPitchTime[1];
        }
      else
        {
         n=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),afr[mPitch[1]])+iBarShift(Symbol(),Period(),afr[mPitch[2]]))/2.0;

         nbase1=iBarShift(Symbol(),Period(),afr[mPitch[1]]);
         nbase2=iBarShift(Symbol(),Period(),afr[mPitch[2]]);
         tc1=afr[mPitch[1]];
        }

      ta1=Time[nbase1+n];
      tb1=Time[nbase2+n];

      if (ExtPitchforkCandle)
        {
         if (!ExtPitchfork_1_HighLow)
           {
            c1=mPitchCena[1];
            a1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[1];
            b1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[2];
           }
         else
           {
            c1=mPitchCena[1];
            a1=pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2+mPitchCena[1];
            b1=pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2+mPitchCena[2];
           }
        }
      else
        {
         if (afrh[mPitch[1]]>0)
           {
            c1=afrh[mPitch[1]];
            a1=(pitch_cena[0]-(afrh[mPitch[1]]+afrl[mPitch[2]])/2)+afrh[mPitch[1]];
            b1=(pitch_cena[0]-(afrh[mPitch[1]]+afrl[mPitch[2]])/2)+afrl[mPitch[2]];
           }
         else
           {
            c1=afrl[mPitch[1]];
            a1=pitch_cena[0]-(afrl[mPitch[1]]+afrh[mPitch[2]])/2+afrl[mPitch[1]];
            b1=pitch_cena[0]-(afrl[mPitch[1]]+afrh[mPitch[2]])/2+afrh[mPitch[2]];
           }
        }

      nameObj="RLineS" + ExtComplekt;
      if (ExtSave)
        {
         if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
           {
            nameObj=nameObj + save;
           }
         else
           {
            if (mPitch[2]>0)
              {
               nameObj=nameObj + save;
              }
           }
        }

      ObjectDelete(nameObj);

      ObjectCreate(nameObj,OBJ_FIBOCHANNEL,0,ta1,a1,tb1,b1,tc1,c1);

      ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtLinePitchforkS);

      if (ExtRLineBase) 
        {
         ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
        }
      else
        {
         ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkS);
        }

      ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
      ObjectSet(nameObj,OBJPROP_RAY,false);
      ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

      if (ExtFiboType)
        {
         ObjectSet(nameObj,OBJPROP_FIBOLEVELS,15);

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.382);
         ObjectSetFiboDescription(nameObj, 0, " RL 38.2"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.5);
         ObjectSetFiboDescription(nameObj, 1, " RL 50.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.618);
         ObjectSetFiboDescription(nameObj, 2, " RL 61.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.707);
         ObjectSetFiboDescription(nameObj, 3, " RL 70.7"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.786);
         ObjectSetFiboDescription(nameObj, 4, " RL 78.6"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.886);
         ObjectSetFiboDescription(nameObj, 5, " RL 88.6"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.0);
         ObjectSetFiboDescription(nameObj, 6, " RL 100.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,1.128);
         ObjectSetFiboDescription(nameObj, 7, " RL 112.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.272);
         ObjectSetFiboDescription(nameObj, 8, " RL 127.2"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,1.414);
         ObjectSetFiboDescription(nameObj, 9, " RL 141.4"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,1.618);
         ObjectSetFiboDescription(nameObj, 10, " RL 161.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,2.0);
         ObjectSetFiboDescription(nameObj, 11, " RL 200.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,2.414);
         ObjectSetFiboDescription(nameObj, 12, " RL 241.4"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,2.618);
         ObjectSetFiboDescription(nameObj, 13, " RL 261.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+14,4.0);
         ObjectSetFiboDescription(nameObj, 14, " RL 400.0"); 

        }
      else
        {
         ObjectSet(nameObj,OBJPROP_FIBOLEVELS,10);

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.236);
         ObjectSetFiboDescription(nameObj, 0, " RL 23.6"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.382);
         ObjectSetFiboDescription(nameObj, 1, " RL 38.2"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.5);
         ObjectSetFiboDescription(nameObj, 2, " RL 50.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.618);
         ObjectSetFiboDescription(nameObj, 3, " RL 61.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.764);
         ObjectSetFiboDescription(nameObj, 4, " RL 76.4"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,1.0);
         ObjectSetFiboDescription(nameObj, 5, " RL 100.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.618);
         ObjectSetFiboDescription(nameObj, 6, " RL 161.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,2.0);
         ObjectSetFiboDescription(nameObj, 7, " RL 200"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,2.618);
         ObjectSetFiboDescription(nameObj, 8, " RL 261.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,4.0);
         ObjectSetFiboDescription(nameObj, 9, " RL 400.0"); 
        }
     }

      // Âðåìåííûå çîíû Ôèáî
      if (ExtFiboTime1)
        {
         nameObj="fiboTime1" + ExtComplekt;
         if (ExtSave)
           {
            if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
              {
               nameObj=nameObj + save;
              }
            else
              {
               if (mPitch[2]>0)
                 {
                  nameObj=nameObj + save;
                 }
              }
           }

         ObjectDelete(nameObj);

         if (ExtPitchforkCandle)
           {
            if (!ExtPitchfork_1_HighLow)
              {
               if (mPitchCena[0]>mPitchCena[2])
                 {
                  ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[0],mPitchCena[2]-5*Point,mPitchTime[2],mPitchCena[2]-5*Point);
                 }
               else
                 {
                  ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[0],mPitchCena[0]-5*Point,mPitchTime[2],mPitchCena[0]-5*Point);
                 }
              }
            else
              {
               ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[0],mPitchCena[1]-5*Point,mPitchTime[2],mPitchCena[1]-5*Point);
              }
           }
         else
           {
            if (afrl[mPitch[0]]>0)
              {
               if (afrl[mPitch[0]]>afrl[mPitch[2]])
                 {
                  ObjectCreate(nameObj,OBJ_FIBOTIMES,0,afr[mPitch[0]],afrl[mPitch[2]]-5*Point,afr[mPitch[2]],afrl[mPitch[2]]-5*Point);
                 }
               else
                 {
                  ObjectCreate(nameObj,OBJ_FIBOTIMES,0,afr[mPitch[0]],afrl[mPitch[0]]-5*Point,afr[mPitch[2]],afrl[mPitch[0]]-5*Point);
                 }
              }
            else
              {
               ObjectCreate(nameObj,OBJ_FIBOTIMES,0,afr[mPitch[0]],afrl[mPitch[1]]-5*Point,afr[mPitch[2]],afrl[mPitch[1]]-5*Point);
              }
           }

         ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
         ObjectSet(nameObj,OBJPROP_STYLE,STYLE_DOT);
         ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboTime1C);
         ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

         if (ExtFiboType)
           {
            ObjectSet(nameObj,OBJPROP_FIBOLEVELS,17);

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.0);
            ObjectSetFiboDescription(nameObj, 0, "0"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,1.0);
            ObjectSetFiboDescription(nameObj, 1, "1"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,1.382);
            ObjectSetFiboDescription(nameObj, 2, "Ft .382"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,1.5);
            ObjectSetFiboDescription(nameObj, 3, "Ft .5"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,1.618);
            ObjectSetFiboDescription(nameObj, 4, "Ft .618"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,1.707);
            ObjectSetFiboDescription(nameObj, 5, "Ft .707"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.786);
            ObjectSetFiboDescription(nameObj, 6, "Ft .786"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,1.841);
            ObjectSetFiboDescription(nameObj, 7, "Ft .841"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,2.0);
            ObjectSetFiboDescription(nameObj, 8, "Ft 1."); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,2.272);
            ObjectSetFiboDescription(nameObj, 9, "Ft 1.272"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.414);
            ObjectSetFiboDescription(nameObj, 10, "Ft 1.414"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,2.618);
            ObjectSetFiboDescription(nameObj, 11, "Ft 1.618"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,3.0);
            ObjectSetFiboDescription(nameObj, 12, "Ft 2."); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,3.414);
            ObjectSetFiboDescription(nameObj, 13, "Ft 2.414"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+15,3.618);
            ObjectSetFiboDescription(nameObj, 15, "Ft 2.618"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+16,4.0);
            ObjectSetFiboDescription(nameObj, 16, "Ft 3."); 

           }
         else
           {
            ObjectSet(nameObj,OBJPROP_FIBOLEVELS,11);

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.0);
            ObjectSetFiboDescription(nameObj, 0, "0"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,1.0);
            ObjectSetFiboDescription(nameObj, 1, "1"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,1.236);
            ObjectSetFiboDescription(nameObj, 2, "Ft .236"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,1.382);
            ObjectSetFiboDescription(nameObj, 3, "Ft .382"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,1.5);
            ObjectSetFiboDescription(nameObj, 4, "Ft .5"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,1.618);
            ObjectSetFiboDescription(nameObj, 5, "Ft .618"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.764);
            ObjectSetFiboDescription(nameObj, 6, "Ft .764"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,2.0);
            ObjectSetFiboDescription(nameObj, 7, "Ft 1."); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,2.618);
            ObjectSetFiboDescription(nameObj, 8, "Ft 1.618"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,3.0);
            ObjectSetFiboDescription(nameObj, 9, "Ft 3."); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.618);
            ObjectSetFiboDescription(nameObj, 10, "Ft 2.618"); 
           }

        }

      if (ExtFiboTime2)
        {
         nameObj="fiboTime2" + ExtComplekt;
         if (ExtSave)
           {
            if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
              {
               nameObj=nameObj + save;
              }
            else
              {
               if (mPitch[2]>0)
                 {
                  nameObj=nameObj + save;
                 }
              }
           }

         ObjectDelete(nameObj);

         if (ExtPitchforkCandle)
           {
            if (ExtPitchfork_1_HighLow)
              {
               ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[1],mPitchCena[1]-8*Point,mPitchTime[2],mPitchCena[1]-8*Point);
              }
            else
              {
               ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[1],mPitchCena[2]-8*Point,mPitchTime[2],mPitchCena[2]-8*Point);
              }
           }
         else
           {
            if (afrl[mPitch[1]]>0)
              {
               ObjectCreate(nameObj,OBJ_FIBOTIMES,0,afr[mPitch[1]],afrl[mPitch[1]]-8*Point,afr[mPitch[2]],afrl[mPitch[1]]-8*Point);
              }
            else
              {
               ObjectCreate(nameObj,OBJ_FIBOTIMES,0,afr[mPitch[1]],afrl[mPitch[2]]-8*Point,afr[mPitch[2]],afrl[mPitch[2]]-8*Point);
              }
           }

         ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
         ObjectSet(nameObj,OBJPROP_STYLE,STYLE_DOT);
         ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboTime2C);
         ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

         if (ExtFiboType)
           {
            ObjectSet(nameObj,OBJPROP_FIBOLEVELS,17);

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.0);
            ObjectSetFiboDescription(nameObj, 0, "0"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,1.0);
            ObjectSetFiboDescription(nameObj, 1, "1"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,1.382);
            ObjectSetFiboDescription(nameObj, 2, "Ft .382"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,1.5);
            ObjectSetFiboDescription(nameObj, 3, "Ft .5"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,1.618);
            ObjectSetFiboDescription(nameObj, 4, "Ft .618"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,1.707);
            ObjectSetFiboDescription(nameObj, 5, "Ft .707"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.786);
            ObjectSetFiboDescription(nameObj, 6, "Ft .786"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,1.841);
            ObjectSetFiboDescription(nameObj, 7, "Ft .841"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,2.0);
            ObjectSetFiboDescription(nameObj, 8, "Ft 1."); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,2.272);
            ObjectSetFiboDescription(nameObj, 9, "Ft 1.272"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.414);
            ObjectSetFiboDescription(nameObj, 10, "Ft 1.414"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,2.618);
            ObjectSetFiboDescription(nameObj, 11, "Ft 1.618"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,3.0);
            ObjectSetFiboDescription(nameObj, 12, "Ft 2."); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,3.414);
            ObjectSetFiboDescription(nameObj, 13, "Ft 2.414"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+15,3.618);
            ObjectSetFiboDescription(nameObj, 15, "Ft 2.618"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+16,4.0);
            ObjectSetFiboDescription(nameObj, 16, "Ft 3."); 

           }
         else
           {
            ObjectSet(nameObj,OBJPROP_FIBOLEVELS,11);

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.0);
            ObjectSetFiboDescription(nameObj, 0, "0"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,1.0);
            ObjectSetFiboDescription(nameObj, 1, "1"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,1.236);
            ObjectSetFiboDescription(nameObj, 2, "Ft .236"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,1.382);
            ObjectSetFiboDescription(nameObj, 3, "Ft .382"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,1.5);
            ObjectSetFiboDescription(nameObj, 4, "Ft .5"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,1.618);
            ObjectSetFiboDescription(nameObj, 5, "Ft .618"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.764);
            ObjectSetFiboDescription(nameObj, 6, "Ft .764"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,2.0);
            ObjectSetFiboDescription(nameObj, 7, "Ft 1."); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,2.618);
            ObjectSetFiboDescription(nameObj, 8, "Ft 1.618"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,3.0);
            ObjectSetFiboDescription(nameObj, 9, "Ft 3."); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.618);
            ObjectSetFiboDescription(nameObj, 10, "Ft 2.618"); 
           }
        }

  }
//--------------------------------------------------------
// Âûâîä âèë Ýíäðþñà ñòàòè÷åñêèõ. Êîíåö.
//--------------------------------------------------------

//--------------------------------------------------------
// Âûâîä âèë Ýíäðþñà äèíàìè÷åñêèõ. Íà÷àëî.
//--------------------------------------------------------
void screenPitchforkD()
  {
   int k1,n,nbase1,nbase2;
   double a1,b1,c1,ab1,bc1,ab2,bc2,d,n1;
   datetime ta1,tb1,tc1,tab2,tbc2;
   bool fo1=false,fo2=false;
   int    pitch_time[]={0,0,0}; 
   double pitch_cena[]={0,0,0};
   int m1,m2;

   if (ExtPitchforkDinamic>0)
     {
      n=(iBarShift(Symbol(),Period(),afr[2])+iBarShift(Symbol(),Period(),afr[1]))/2.0;
      k1=MathCeil(n);
      if (n<k1) fo1=true;
      tab2=Time[k1];

      n=(iBarShift(Symbol(),Period(),afr[1])+iBarShift(Symbol(),Period(),afr[0]))/2.0;
      k1=MathCeil(n);
      if (n<k1) fo2=true;
      tbc2=Time[k1];

      n=iBarShift(Symbol(),Period(),afr[2])-iBarShift(Symbol(),Period(),afr[0]);

//            nameObj="pm" + Period() + "_" + afr[3];
      nameObj="pmedianaD" + ExtComplekt;
      ObjectDelete(nameObj);

      if (afrl[2]>0)
        {
         d=(afrl[0]-afrl[2])/4/n;
         ab1=(afrl[2]+afrh[1])/2;
         if (fo1) {fo1=false; ab1=ab1+d;}
         bc1=(afrh[1]+afrl[0])/2;
         if (fo2) {fo2=false; bc1=bc1+d;}
        }
      else
        {
         d=(afrh[0]-afrh[2])/4/n;
         ab1=(afrh[2]+afrl[1])/2;
         if (fo1) {fo1=false; ab1=ab1+d;}
         bc1=(afrl[1]+afrh[0])/2;
         if (fo2) {fo2=false; bc1=bc1+d;}
        }

      pitch_time[0]=tab2;pitch_cena[0]=ab1;

      if (ExtPitchforkDinamic==2)
        {
         ObjectCreate(nameObj,OBJ_TREND,0,tab2,ab1,tbc2,bc1);
         ObjectSet(nameObj,OBJPROP_STYLE,STYLE_DASH);
         ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkD);
         ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

         nameObj="1-2pmedianaD" + ExtComplekt;
         ObjectDelete(nameObj);
         ObjectCreate(nameObj,OBJ_TEXT,0,tab2,ab1+3*Point);
         ObjectSetText(nameObj,"     1/2 ML",9,"Arial", ExtLinePitchforkD);
        }
     }

//         nameObj="pf" + Period() + "_" + afr[2];
   nameObj="pitchforkD" + ExtComplekt;
   ObjectDelete(nameObj);

   if (afrl[2]>0)
     {
      if (ExtPitchforkDinamic!=4)
        {
         pitch_time[0]=afr[2];pitch_cena[0]=afrl[2];
         if (ExtPitchforkDinamic==3) pitch_cena[0]=ab1;
        }
      pitch_time[1]=afr[1];pitch_cena[1]=afrh[1];
      pitch_time[2]=afr[0];pitch_cena[2]=afrl[0];
     }
   else
     {
      if (ExtPitchforkDinamic!=4)
        {
         pitch_time[0]=afr[2];pitch_cena[0]=afrh[2];
         if (ExtPitchforkDinamic==3) pitch_cena[0]=ab1;
        }
      pitch_time[1]=afr[1];pitch_cena[1]=afrl[1];
      pitch_time[2]=afr[0];pitch_cena[2]=afrh[0];
     }

   ObjectCreate(nameObj,OBJ_PITCHFORK,0,pitch_time[0],pitch_cena[0],pitch_time[1],pitch_cena[1],pitch_time[2],pitch_cena[2]);
   if (ExtPitchforkStyle<5)
     {
      ObjectSet(nameObj,OBJPROP_STYLE,ExtPitchforkStyle);
     }
   else if(ExtPitchforkStyle<11)
     {
      ObjectSet(nameObj,OBJPROP_WIDTH,ExtPitchforkStyle-5);
     }
   ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkD);
   ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

   if (ExtFiboFanMedianaDinamicColor>0)
     {
      ta1=pitch_time[0];
      a1=pitch_cena[0];
      n1=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),pitch_time[1])+iBarShift(Symbol(),Period(),pitch_time[2]))/2.0;
      d=(pitch_cena[0]-(pitch_cena[1]+pitch_cena[2])/2.0)/n1;
      m1=iBarShift(Symbol(),Period(),pitch_time[0]);
      tb1=Time[0];
      b1=pitch_cena[0]-d*(m1+1);

      nameObj="FanMedianaDinamic" + ExtComplekt;
      ObjectDelete(nameObj);

      ObjectCreate(nameObj,OBJ_FIBOFAN,0,ta1,a1,tb1,b1);
      ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DASH);
      ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboFanMedianaDinamicColor);
      ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

      screenFibo();
     }

   if (ExtRLine)
     {
      nameObj="RLineD" + ExtComplekt;
      ObjectDelete(nameObj);

      n=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),afr[1])+iBarShift(Symbol(),Period(),afr[0]))/2.0;
   
      nbase1=iBarShift(Symbol(),Period(),afr[1]);
      nbase2=iBarShift(Symbol(),Period(),afr[0]);
      tc1=afr[1];
      ta1=Time[nbase1+n];
      tb1=Time[nbase2+n];

      if (afrh[1]>0)
        {
            // èçìåíåíèå öåíû íà îäèí áàð
//            d=(afrl[2]-(afrh[1]+afrl[0])/2)/n;

         c1=afrh[1];
         a1=(pitch_cena[0]-(afrh[1]+afrl[0])/2)+afrh[1];
         b1=(pitch_cena[0]-(afrh[1]+afrl[0])/2)+afrl[0];
        }
      else
        {
            // èçìåíåíèå öåíû íà îäèí áàð
//            d=(afrh[2]-(afrl[1]+afrh[0])/2)/n;

         c1=afrl[1];
         a1=pitch_cena[0]-(afrl[1]+afrh[0])/2+afrl[1];
         b1=pitch_cena[0]-(afrl[1]+afrh[0])/2+afrh[0];
        }

      ObjectCreate(nameObj,OBJ_FIBOCHANNEL,0,ta1,a1,tb1,b1,tc1,c1);

      ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtLinePitchforkD);

      if (ExtRLineBase) 
        {
         ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
        }
      else
        {
         ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkD);
        }
 
      ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
      ObjectSet(nameObj,OBJPROP_RAY,false);
      ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

      if (ExtFiboType)
        {
         ObjectSet(nameObj,OBJPROP_FIBOLEVELS,15);

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.382);
         ObjectSetFiboDescription(nameObj, 0, " RL 38.2"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.5);
         ObjectSetFiboDescription(nameObj, 1, " RL 50.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.618);
         ObjectSetFiboDescription(nameObj, 2, " RL 61.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.707);
         ObjectSetFiboDescription(nameObj, 3, " RL 70.7"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.786);
         ObjectSetFiboDescription(nameObj, 4, " RL 78.6"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.841);
         ObjectSetFiboDescription(nameObj, 5, " RL 84.1"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.0);
         ObjectSetFiboDescription(nameObj, 6, " RL 100.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,1.128);
         ObjectSetFiboDescription(nameObj, 7, " RL 112.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.272);
         ObjectSetFiboDescription(nameObj, 8, " RL 127.2"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,1.414);
         ObjectSetFiboDescription(nameObj, 9, " RL 141.4"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,1.618);
         ObjectSetFiboDescription(nameObj, 10, " RL 161.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,2.0);
         ObjectSetFiboDescription(nameObj, 11, " RL 200.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,2.414);
         ObjectSetFiboDescription(nameObj, 12, " RL 241.4"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,2.618);
         ObjectSetFiboDescription(nameObj, 13, " RL 261.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+14,4.0);
         ObjectSetFiboDescription(nameObj, 14, " RL 400.0"); 

        }
      else
        {
         ObjectSet(nameObj,OBJPROP_FIBOLEVELS,10);

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.236);
         ObjectSetFiboDescription(nameObj, 0, " RL 23.6"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.382);
         ObjectSetFiboDescription(nameObj, 1, " RL 38.2"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.5);
         ObjectSetFiboDescription(nameObj, 2, " RL 50.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.618);
         ObjectSetFiboDescription(nameObj, 3, " RL 61.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.764);
         ObjectSetFiboDescription(nameObj, 4, " RL 76.4"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,1.0);
         ObjectSetFiboDescription(nameObj, 5, " RL 100.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.618);
         ObjectSetFiboDescription(nameObj, 6, " RL 161.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,2.0);
         ObjectSetFiboDescription(nameObj, 7, " RL 200.0"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,2.618);
         ObjectSetFiboDescription(nameObj, 8, " RL 261.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,4.0);
         ObjectSetFiboDescription(nameObj, 9, " RL 400.0"); 
        }
     }
  }
//--------------------------------------------------------
// Âûâîä âèë Ýíäðþñà äèíàìè÷åñêèõ. Êîíåö.
//--------------------------------------------------------

//--------------------------------------------------------
// Âûâîä ïðîèçâîëüíûõ ôèáîâååðîâ. Íà÷àëî.
//--------------------------------------------------------
void screenFiboFan()
  {
   double a1,b1;  

   if (afrl[mFan[0]]>0)
     {
      a1=afrl[mFan[0]]; b1=afrh[mFan[1]];
     }
   else
     {
      a1=afrh[mFan[0]]; b1=afrl[mFan[1]];
     }
  
   nameObj="FiboFan" + ExtComplekt;

   if (mFan[1]>0)
     {
      if (ExtSave)
        {
         nameObj=nameObj + save;
        }
     }

   ObjectDelete(nameObj);

   ObjectCreate(nameObj,OBJ_FIBOFAN,0,afr[mFan[0]],a1,afr[mFan[1]],b1);
   ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DASH);
   ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboFanColor);
   ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

   screenFibo();
  }
//--------------------------------------------------------
// Âûâîä ïðîèçâîëüíûõ ôèáîâååðîâ. Êîíåö.
//--------------------------------------------------------


//--------------------------------------------------------
// Ñïèñîê ôèá. Íà÷àëî.
//--------------------------------------------------------
void screenFibo()
  {
      if (!ExtFiboType)
        {
         ObjectSet(nameObj,OBJPROP_FIBOLEVELS,18);

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.236);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.382);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.5);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.618);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.764);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,1.0);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.618);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,2.0);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,2.618);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,-0.236);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,-0.382);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,-0.5);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,-0.618);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,-0.764);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+14,-1.0);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+15,-1.618);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+16,-2.0);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+17,-2.618);

//         if (ExtFiboFanHidden)
//           {
            ObjectSetFiboDescription(nameObj, 0, "23.6"); 
            ObjectSetFiboDescription(nameObj, 1, "38.2"); 
            ObjectSetFiboDescription(nameObj, 2, "50.0"); 
            ObjectSetFiboDescription(nameObj, 3, "61.8"); 
            ObjectSetFiboDescription(nameObj, 4, "76.4"); 
            ObjectSetFiboDescription(nameObj, 5, "100.0"); 
            ObjectSetFiboDescription(nameObj, 6, "161.8"); 
            ObjectSetFiboDescription(nameObj, 7, "200.0"); 
            ObjectSetFiboDescription(nameObj, 8, "261.8"); 
            ObjectSetFiboDescription(nameObj, 9, "-23.6"); 
            ObjectSetFiboDescription(nameObj, 10, "-38.2"); 
            ObjectSetFiboDescription(nameObj, 11, "-50.0"); 
            ObjectSetFiboDescription(nameObj, 12, "-61.8"); 
            ObjectSetFiboDescription(nameObj, 13, "-76.4"); 
            ObjectSetFiboDescription(nameObj, 14, "-100.0"); 
            ObjectSetFiboDescription(nameObj, 15, "-161.8"); 
            ObjectSetFiboDescription(nameObj, 16, "-200.0"); 
            ObjectSetFiboDescription(nameObj, 17, "-261.8"); 
//           }
        }
      else
        {
         ObjectSet(nameObj,OBJPROP_FIBOLEVELS,24);

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.382);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.5);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.618);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.707);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.786);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.886);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.0);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,1.272);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.414);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,1.618);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.0);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,2.618);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,-0.382);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,-0.5);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+14,-0.618);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+15,-0.707);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+16,-0.786);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+17,-0.886);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+18,-1.0);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+19,-1.272);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+20,-1.414);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+21,-1.618);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+22,-2.0);
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+23,-2.618);

//         if (ExtFiboFanHidden)
//           {
            ObjectSetFiboDescription(nameObj, 0, "38.2"); 
            ObjectSetFiboDescription(nameObj, 1, "50.0"); 
            ObjectSetFiboDescription(nameObj, 2, "61.8"); 
            ObjectSetFiboDescription(nameObj, 3, "70.7"); 
            ObjectSetFiboDescription(nameObj, 4, "78.6"); 
            ObjectSetFiboDescription(nameObj, 5, "88.6"); 
            ObjectSetFiboDescription(nameObj, 6, "100.0"); 
            ObjectSetFiboDescription(nameObj, 7, "127.2"); 
            ObjectSetFiboDescription(nameObj, 8, "141.4"); 
            ObjectSetFiboDescription(nameObj, 9, "161.8"); 
            ObjectSetFiboDescription(nameObj, 10, "200.0"); 
            ObjectSetFiboDescription(nameObj, 11, "261.8"); 
            ObjectSetFiboDescription(nameObj, 12, "-38.2"); 
            ObjectSetFiboDescription(nameObj, 13, "-50.0"); 
            ObjectSetFiboDescription(nameObj, 14, "-61.8"); 
            ObjectSetFiboDescription(nameObj, 15, "-70.7"); 
            ObjectSetFiboDescription(nameObj, 16, "-78.6"); 
            ObjectSetFiboDescription(nameObj, 17, "-88.6"); 
            ObjectSetFiboDescription(nameObj, 18, "-100.0"); 
            ObjectSetFiboDescription(nameObj, 19, "-127.2"); 
            ObjectSetFiboDescription(nameObj, 20, "-141.4"); 
            ObjectSetFiboDescription(nameObj, 21, "-161.8"); 
            ObjectSetFiboDescription(nameObj, 22, "-200.0"); 
            ObjectSetFiboDescription(nameObj, 23, "-261.8"); 
//           }
        }
  }
//--------------------------------------------------------
// Ñïèñîê ôèá. Êîíåö.
//--------------------------------------------------------


//--------------------------------------------------------
// Âûâîä ôèá ñòàòè÷åñêèõ. Íà÷àëî.
//--------------------------------------------------------
void screenFiboS()
  {
   double fibo_0, fibo_100, fiboPrice, fiboPrice1;

   nameObj="fiboS" + ExtComplekt;

   if (mFibo[1]>0)
     {
      if (ExtSave)
        {
         nameObj=nameObj + save;
        }
     }

   ObjectDelete(nameObj);
   if (afrl[mFibo[1]]>0) 
     {
      if (!ExtFiboCorrectionExpansion)
        {
         fibo_0=afrh[mFibo[0]];fibo_100=afrl[mFibo[1]];
         fiboPrice=afrh[mFibo[0]]-afrl[mFibo[1]];fiboPrice1=afrl[mFibo[1]];
        }
      else
        {
         fibo_100=afrh[mFibo[0]];fibo_0=afrl[mFibo[1]];
         fiboPrice=afrl[mFibo[1]]-afrh[mFibo[0]];fiboPrice1=afrh[mFibo[0]];
        }
     }
   else 
     {
      if (!ExtFiboCorrectionExpansion)
        {
         fibo_0=afrl[mFibo[0]];fibo_100=afrh[mFibo[1]];
         fiboPrice=afrl[mFibo[0]]-afrh[mFibo[1]];fiboPrice1=afrh[mFibo[1]];
        }
      else
        {
         fibo_100=afrl[mFibo[0]];fibo_0=afrh[mFibo[1]];
         fiboPrice=afrh[mFibo[1]]-afrl[mFibo[0]];fiboPrice1=afrl[mFibo[0]];
        }
     }

   if (!ExtFiboCorrectionExpansion)
     {
      ObjectCreate(nameObj,OBJ_FIBO,0,afr[mFibo[0]],fibo_0,afr[mFibo[1]],fibo_100);
     }
   else
     {
      ObjectCreate(nameObj,OBJ_FIBO,0,afr[mFibo[1]],fibo_0,afr[mFibo[0]],fibo_100);
     }
   ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
   ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboS);
   ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

   if (ExtFiboType)
     {
      ObjectSet(nameObj,OBJPROP_FIBOLEVELS,17);
      fibo_patterns(fiboPrice, fiboPrice1,"                    ");
     }
   else
     {
      ObjectSet(nameObj,OBJPROP_FIBOLEVELS,14);
      fibo_standart (fiboPrice, fiboPrice1,"                    ");
     }
  }
//--------------------------------------------------------
// Âûâîä ôèá ñòàòè÷åñêèõ. Êîíåö.
//--------------------------------------------------------

//--------------------------------------------------------
// Âûâîä ôèá äèíàìè÷åñêèõ. Íà÷àëî.
//--------------------------------------------------------
void screenFiboD()
  {
   double fibo_0, fibo_100, fiboPrice, fiboPrice1;

   nameObj="fiboD" + ExtComplekt;

   ObjectDelete(nameObj);
   if (afrh[1]>0)
     {
      if (!ExtFiboCorrectionExpansion)
        {
         fibo_0=afrh[1];fibo_100=afrl[0];
         fiboPrice=afrh[1]-afrl[0];fiboPrice1=afrl[0];
        }
      else
        {
         fibo_100=afrh[1];fibo_0=afrl[0];
         fiboPrice=afrl[0]-afrh[1];fiboPrice1=afrh[1];
        }
     }
   else
     {
      if (!ExtFiboCorrectionExpansion)
        {
         fibo_0=afrl[1];fibo_100=afrh[0];
         fiboPrice=afrl[1]-afrh[0];fiboPrice1=afrh[0];
        }
      else
        {
         fibo_100=afrl[1];fibo_0=afrh[0];
         fiboPrice=afrh[0]-afrl[1];fiboPrice1=afrl[1];
        }
     }

   if (!ExtFiboCorrectionExpansion)
     {
      ObjectCreate(nameObj,OBJ_FIBO,0,afr[1],fibo_0,afr[0],fibo_100);
     }
   else
     {
      ObjectCreate(nameObj,OBJ_FIBO,0,afr[0],fibo_0,afr[1],fibo_100);
     }

   ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
   ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboD);
   ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

   if (ExtFiboType)
     {
      ObjectSet(nameObj,OBJPROP_FIBOLEVELS,17);
      fibo_patterns(fiboPrice, fiboPrice1,"");
     }
   else
     {
      ObjectSet(nameObj,OBJPROP_FIBOLEVELS,14);
      fibo_standart (fiboPrice, fiboPrice1,"");
     }

  }
//--------------------------------------------------------
// Âûâîä ôèá äèíàìè÷åñêèõ. Êîíåö.
//--------------------------------------------------------


//--------------------------------------------------------
// Ôèáû ñ ïàòòåðíàìè. Íà÷àëî.
//--------------------------------------------------------
void fibo_patterns(double fiboPrice,double fiboPrice1,string fibo)
  {
   if (!ExtFiboCorrectionExpansion)
     {   
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL,0);
      ObjectSetFiboDescription(nameObj, 0, "0  "+DoubleToStr(fiboPrice1, cPoint)+fibo); 
     
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.382);
      ObjectSetFiboDescription(nameObj, 1, "38.2  "+DoubleToStr(fiboPrice*0.382+fiboPrice1, cPoint)+fibo); 
    
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.5);
      ObjectSetFiboDescription(nameObj, 2, "50.0  "+DoubleToStr(fiboPrice*0.5+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.618);
      ObjectSetFiboDescription(nameObj, 3, "61.8  "+DoubleToStr(fiboPrice*0.618+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.707);
      ObjectSetFiboDescription(nameObj, 4, "70.7  "+DoubleToStr(fiboPrice*0.707+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.786);
      ObjectSetFiboDescription(nameObj, 5, "78.6  "+DoubleToStr(fiboPrice*0.786+fiboPrice1, cPoint)+fibo); 
     
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,0.841);
      ObjectSetFiboDescription(nameObj, 6, "84.1  "+DoubleToStr(fiboPrice*0.841+fiboPrice1, cPoint)+fibo); 
 
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,0.886);
      ObjectSetFiboDescription(nameObj, 7, "88.6  "+DoubleToStr(fiboPrice*0.886+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.0);
      ObjectSetFiboDescription(nameObj, 8, "100.0  "+DoubleToStr(fiboPrice+fiboPrice1, cPoint)+fibo); 
     
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,1.128);
      ObjectSetFiboDescription(nameObj, 9, "112.8  "+DoubleToStr(fiboPrice*1.128+fiboPrice1, cPoint)+fibo); 
     
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,1.272);
      ObjectSetFiboDescription(nameObj, 10, "127.2  "+DoubleToStr(fiboPrice*1.272+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,1.414);
      ObjectSetFiboDescription(nameObj, 11, "141.4  "+DoubleToStr(fiboPrice*1.414+fiboPrice1, cPoint)+fibo); 
     
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,1.618);
      ObjectSetFiboDescription(nameObj, 12, "161.8  "+DoubleToStr(fiboPrice*1.618+fiboPrice1, cPoint)+fibo); 
     
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,2.0);
      ObjectSetFiboDescription(nameObj, 13, "200.0  "+DoubleToStr(fiboPrice*2.0+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+14,2.414);
      ObjectSetFiboDescription(nameObj, 14, "241.4  "+DoubleToStr(fiboPrice*2.414+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+15,2.618);
      ObjectSetFiboDescription(nameObj, 15, "261.8  "+DoubleToStr(fiboPrice*2.618+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+16,4.0);
      ObjectSetFiboDescription(nameObj, 16, "400.0  "+DoubleToStr(fiboPrice*4.0+fiboPrice1, cPoint)+fibo);
     }
   else
     {
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL,0);
      ObjectSetFiboDescription(nameObj, 0, "Fe 1  "+DoubleToStr(fiboPrice+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL,1);
      ObjectSetFiboDescription(nameObj, 1, "Fe 0  "+DoubleToStr(fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,1.382);
      ObjectSetFiboDescription(nameObj, 2, "Fe 38.2  "+DoubleToStr(fiboPrice*1.382+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,1.5);
      ObjectSetFiboDescription(nameObj, 3, "Fe 50.0  "+DoubleToStr(fiboPrice*1.5+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,1.618);
      ObjectSetFiboDescription(nameObj, 4, "Fe 61.8  "+DoubleToStr(fiboPrice*1.618+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,1.707);
      ObjectSetFiboDescription(nameObj, 5, "Fe 70.7  "+DoubleToStr(fiboPrice*1.707+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.786);
      ObjectSetFiboDescription(nameObj, 6, "Fe 78.6  "+DoubleToStr(fiboPrice*1.786+fiboPrice1, cPoint)+fibo); 
     
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,1.841);
      ObjectSetFiboDescription(nameObj, 7, "Fe 84.1  "+DoubleToStr(fiboPrice*1.841+fiboPrice1, cPoint)+fibo); 
 
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.886);
      ObjectSetFiboDescription(nameObj, 8, "Fe 88.6  "+DoubleToStr(fiboPrice*1.886+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,2.0);
      ObjectSetFiboDescription(nameObj, 9, "Fe 100.0  "+DoubleToStr(fiboPrice*2+fiboPrice1, cPoint)+fibo); 
     
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.128);
      ObjectSetFiboDescription(nameObj, 10, "Fe 112.8  "+DoubleToStr(fiboPrice*2.128+fiboPrice1, cPoint)+fibo); 
     
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,2.272);
      ObjectSetFiboDescription(nameObj, 11, "Fe 127.2  "+DoubleToStr(fiboPrice*2.272+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,2.414);
      ObjectSetFiboDescription(nameObj, 12, "Fe 141.4  "+DoubleToStr(fiboPrice*2.414+fiboPrice1, cPoint)+fibo); 
     
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,2.618);
      ObjectSetFiboDescription(nameObj, 13, "Fe 161.8  "+DoubleToStr(fiboPrice*2.618+fiboPrice1, cPoint)+fibo); 
     
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+14,3.0);
      ObjectSetFiboDescription(nameObj, 14, "Fe 200.0  "+DoubleToStr(fiboPrice*3.0+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+15,3.414);
      ObjectSetFiboDescription(nameObj, 15, "Fe 241.4  "+DoubleToStr(fiboPrice*3.414+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+16,3.618);
      ObjectSetFiboDescription(nameObj, 16, "Fe 261.8  "+DoubleToStr(fiboPrice*3.618+fiboPrice1, cPoint)+fibo); 
     }
  }
//--------------------------------------------------------
// Ôèáû ñ ïàòòåðíàìè. Êîíåö.
//--------------------------------------------------------


//--------------------------------------------------------
// Ôèáû ñòàíäàðòíûå. Íà÷àëî.
//--------------------------------------------------------
void fibo_standart(double fiboPrice,double fiboPrice1,string fibo)
  {
   if (!ExtFiboCorrectionExpansion)
     {   
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL,0);
      ObjectSetFiboDescription(nameObj, 0, "0  "+DoubleToStr(fiboPrice1, cPoint)+fibo); 
   
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.146);
      ObjectSetFiboDescription(nameObj, 1, "14.6  "+DoubleToStr(fiboPrice*0.146+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.236);
      ObjectSetFiboDescription(nameObj, 2, "23.6  "+DoubleToStr(fiboPrice*0.236+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.382);
      ObjectSetFiboDescription(nameObj, 3, "38.2  "+DoubleToStr(fiboPrice*0.382+fiboPrice1, cPoint)+fibo); 
   
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.5);
      ObjectSetFiboDescription(nameObj, 4, "50.0  "+DoubleToStr(fiboPrice*0.5+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.618);
      ObjectSetFiboDescription(nameObj, 5, "61.8  "+DoubleToStr(fiboPrice*0.618+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,0.764);
      ObjectSetFiboDescription(nameObj, 6, "76.4  "+DoubleToStr(fiboPrice*0.764+fiboPrice1, cPoint)+fibo); 
   
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,0.854);
      ObjectSetFiboDescription(nameObj, 7, "85.4  "+DoubleToStr(fiboPrice*0.854+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.0);
      ObjectSetFiboDescription(nameObj, 8, "100.0  "+DoubleToStr(fiboPrice+fiboPrice1, cPoint)+fibo); 
   
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,1.236);
      ObjectSetFiboDescription(nameObj, 9, "1.236  "+DoubleToStr(fiboPrice*1.236+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,1.618);
      ObjectSetFiboDescription(nameObj, 10, "161.8  "+DoubleToStr(fiboPrice*1.618+fiboPrice1, cPoint)+fibo); 
   
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,2.618);
      ObjectSetFiboDescription(nameObj, 11, "261.8  "+DoubleToStr(fiboPrice*2.618+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,4.236);
      ObjectSetFiboDescription(nameObj, 12, "423.6  "+DoubleToStr(fiboPrice*4.236+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,6.854);
      ObjectSetFiboDescription(nameObj, 13, "685.4  "+DoubleToStr(fiboPrice*6.854+fiboPrice1, cPoint)+fibo); 
     }
   else
     {
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL,0);
      ObjectSetFiboDescription(nameObj, 0, "Fe 1  "+DoubleToStr(fiboPrice+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL,1);
      ObjectSetFiboDescription(nameObj, 1, "Fe 0  "+DoubleToStr(fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,1.236);
      ObjectSetFiboDescription(nameObj, 2, "Fe 23.6  "+DoubleToStr(fiboPrice*1.236+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,1.382);
      ObjectSetFiboDescription(nameObj, 3, "Fe 38.2  "+DoubleToStr(fiboPrice*1.382+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,1.5);
      ObjectSetFiboDescription(nameObj, 4, "Fe 50.0  "+DoubleToStr(fiboPrice*1.5+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,1.618);
      ObjectSetFiboDescription(nameObj, 5, "Fe 61.8  "+DoubleToStr(fiboPrice*1.618+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.764);
      ObjectSetFiboDescription(nameObj, 6, "Fe 76.4  "+DoubleToStr(fiboPrice*1.764+fiboPrice1, cPoint)+fibo); 
   
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,1.854);
      ObjectSetFiboDescription(nameObj, 7, "Fe 85.4  "+DoubleToStr(fiboPrice*1.854+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,2.0);
      ObjectSetFiboDescription(nameObj, 8, "Fe 100.0  "+DoubleToStr(fiboPrice*2+fiboPrice1, cPoint)+fibo); 
   
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,2.236);
      ObjectSetFiboDescription(nameObj, 9, "Fe 1.236  "+DoubleToStr(fiboPrice*2.236+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.618);
      ObjectSetFiboDescription(nameObj, 10, "Fe 161.8  "+DoubleToStr(fiboPrice*2.618+fiboPrice1, cPoint)+fibo); 
   
      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,3.618);
      ObjectSetFiboDescription(nameObj, 11, "Fe 261.8>  "+DoubleToStr(fiboPrice*3.618+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,5.236);
      ObjectSetFiboDescription(nameObj, 12, "Fe 423.6  "+DoubleToStr(fiboPrice*5.236+fiboPrice1, cPoint)+fibo); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,7.854);
      ObjectSetFiboDescription(nameObj, 13, "Fe 685.4  "+DoubleToStr(fiboPrice*7.854+fiboPrice1, cPoint)+fibo); 
     }
  }
//--------------------------------------------------------
// Ôèáû ñòàíäàðòíûå. Êîíåö.
//--------------------------------------------------------

//--------------------------------------------------------
// Âûâîä ôèáî-âåíèêîâ ñòàòè÷åñêèõ. Íà÷àëî.
//--------------------------------------------------------
void screenFiboFanS()
  {
   double fiboPrice1, fiboPrice2;

   nameObj="fiboFanS" + ExtComplekt;
   ObjectDelete(nameObj);

   if (ExtPitchforkCandle)
     {
      if (ExtPitchfork_1_HighLow)
        {
         fiboPrice1=mPitchCena[1];fiboPrice2=mPitchCena[2];
        }
      else 
        {
         fiboPrice1=mPitchCena[1];fiboPrice2=mPitchCena[2];
        }
      ObjectCreate(nameObj,OBJ_FIBOFAN,0,mPitchTime[1],fiboPrice1,mPitchTime[2],fiboPrice2);
     }
   else
     {
      if (afrl[mPitch[1]]>0) 
        {
         fiboPrice1=afrl[mPitch[1]];fiboPrice2=afrh[mPitch[2]];
        }
      else 
        {
         fiboPrice1=afrh[mPitch[1]];fiboPrice2=afrl[mPitch[2]];
        }
      ObjectCreate(nameObj,OBJ_FIBOFAN,0,afr[mPitch[1]],fiboPrice1,afr[mPitch[2]],fiboPrice2);
     }

   ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DASH);
   ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboFanS);
   ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

   ObjectSet(nameObj,OBJPROP_FIBOLEVELS,4);

   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.236);
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.382);
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.5);
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.618);

   if (ExtFiboFanHidden)
     {
      ObjectSetFiboDescription(nameObj, 0, "23.6"); 
      ObjectSetFiboDescription(nameObj, 1, "38.2"); 
      ObjectSetFiboDescription(nameObj, 2, "50.0"); 
      ObjectSetFiboDescription(nameObj, 3, "61.8"); 
     }

  }
//--------------------------------------------------------
// Âûâîä ôèáî-âåíèêîâ ñòàòè÷åñêèõ. Êîíåö.
//--------------------------------------------------------


//--------------------------------------------------------
// Âûâîä ôèáî-âåíèêîâ äèíàìè÷åñêèõ. Íà÷àëî.
//--------------------------------------------------------
void screenFiboFanD()
  {
   double fiboPrice1, fiboPrice2;

   nameObj="fiboFanD" + ExtComplekt;

   ObjectDelete(nameObj);

   if (afrl[1]>0) 
     {
      fiboPrice1=afrl[1];fiboPrice2=afrh[0];
     }
   else 
     {
      fiboPrice1=afrh[1];fiboPrice2=afrl[0];
     }
   ObjectCreate(nameObj,OBJ_FIBOFAN,0,afr[1],fiboPrice1,afr[0],fiboPrice2);
   ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DASH);
   ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboFanD);
   ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

   ObjectSet(nameObj,OBJPROP_FIBOLEVELS,4);

   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.236);
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.382);
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.5);
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.618);

   if (ExtFiboFanHidden)
     {
      ObjectSetFiboDescription(nameObj, 0, "23.6"); 
      ObjectSetFiboDescription(nameObj, 1, "38.2"); 
      ObjectSetFiboDescription(nameObj, 2, "50.0"); 
      ObjectSetFiboDescription(nameObj, 3, "61.8"); 
     }
  }
//--------------------------------------------------------
// Âûâîä ôèáî-âåíèêîâ äèíàìè÷åñêèõ. Êîíåö.
//--------------------------------------------------------

//--------------------------------------------------------
// Âûâîä ðàñøèðåíèé Ôèáîíà÷÷è. Íà÷àëî.
//--------------------------------------------------------
void FiboExpansion()
  {
   if (ExtFiboExpansion>1)
     {
      double znach1,znach2;
      nameObj="fiboExpansion" + ExtComplekt;
      if (mExpansion[2]>0)
        {
         if (ExtSave)
           {
            nameObj=nameObj + save;
           }
        }

      ObjectDelete(nameObj);
      if (afrl[mExpansion[0]]>0)
        {
         ObjectCreate(nameObj,OBJ_EXPANSION,0,afr[mExpansion[0]],afrl[mExpansion[0]],afr[mExpansion[1]],afrh[mExpansion[1]],afr[mExpansion[2]],afrl[mExpansion[2]]);
         znach1=afrh[mExpansion[1]]-afrl[mExpansion[2]];
         znach2=afrl[mExpansion[0]];
        }
      else
        {
         ObjectCreate(nameObj,OBJ_EXPANSION,0,afr[mExpansion[0]],afrh[mExpansion[0]],afr[mExpansion[1]],afrl[mExpansion[1]],afr[mExpansion[2]],afrh[mExpansion[2]]);
         znach1=-(afrh[mExpansion[2]]-afrl[mExpansion[1]]);
         znach2=afrh[mExpansion[0]];
        }

      ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
      ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboExpansionColor);
      ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

      if (!ExtFiboType)
        {   
         ObjectSet(nameObj,OBJPROP_FIBOLEVELS,11);

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.236);
         ObjectSetFiboDescription(nameObj, 0, "FE 23.6  "+DoubleToStr(znach1*0.236+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.382);
         ObjectSetFiboDescription(nameObj, 1, "FE 38.2  "+DoubleToStr(znach1*0.382+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.5);
         ObjectSetFiboDescription(nameObj, 2, "FE 50.0  "+DoubleToStr(znach1*0.5+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.618);
         ObjectSetFiboDescription(nameObj, 3, "FE 61.8  "+DoubleToStr(znach1*0.618+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.764);
         ObjectSetFiboDescription(nameObj, 4, "FE 76.4  "+DoubleToStr(znach1*0.764+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.854);
         ObjectSetFiboDescription(nameObj, 5, "FE 85.4  "+DoubleToStr(znach1*0.854+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.0);
         ObjectSetFiboDescription(nameObj, 6, "FE 100.0  "+DoubleToStr(znach1+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,1.236);
         ObjectSetFiboDescription(nameObj, 7, "FE 1.236  "+DoubleToStr(znach1*1.236+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.618);
         ObjectSetFiboDescription(nameObj, 8, "FE 161.8  "+DoubleToStr(znach1*1.618+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,2.0);
         ObjectSetFiboDescription(nameObj, 9, "FE 200.0  "+DoubleToStr(znach1*2+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.618);
         ObjectSetFiboDescription(nameObj, 10, "FE 261.8  "+DoubleToStr(znach1*2.618+znach2, cPoint)); 
        }
      else
        {
         ObjectSet(nameObj,OBJPROP_FIBOLEVELS,12);

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.382);
         ObjectSetFiboDescription(nameObj, 0, "FE 38.2  "+DoubleToStr(znach1*0.382+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.5);
         ObjectSetFiboDescription(nameObj, 1, "FE 50.0  "+DoubleToStr(znach1*0.5+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.618);
         ObjectSetFiboDescription(nameObj, 2, "FE 61.8  "+DoubleToStr(znach1*0.618+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.707);
         ObjectSetFiboDescription(nameObj, 3, "FE 70.7  "+DoubleToStr(znach1*0.707+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.786);
         ObjectSetFiboDescription(nameObj, 4, "FE 78.6  "+DoubleToStr(znach1*0.786+znach2, cPoint)); 
 
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.886);
         ObjectSetFiboDescription(nameObj, 5, "FE 88.6  "+DoubleToStr(znach1*0.886+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.0);
         ObjectSetFiboDescription(nameObj, 6, "FE 100.0  "+DoubleToStr(znach1+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,1.272);
         ObjectSetFiboDescription(nameObj, 7, "FE 127.2  "+DoubleToStr(znach1*1.272+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.414);
         ObjectSetFiboDescription(nameObj, 8, "FE 141.4  "+DoubleToStr(znach1*1.414+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,1.618);
         ObjectSetFiboDescription(nameObj, 9, "FE 161.8  "+DoubleToStr(znach1*1.618+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.0);
         ObjectSetFiboDescription(nameObj, 10, "FE 200.0  "+DoubleToStr(znach1*2+znach2, cPoint)); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,2.618);
         ObjectSetFiboDescription(nameObj, 11, "FE 261.8  "+DoubleToStr(znach1*2.618+znach2, cPoint)); 
        }
     }
  }
//--------------------------------------------------------
// Âûâîä ðàñøèðåíèé Ôèáîíà÷÷è. Êîíåö.
//--------------------------------------------------------


//--------------------------------------------------------
// Óäàëåíèå îáúåêòîâ. Íà÷àëî.
// Óäàëåíèå ñîåäèíèòåëüíûõ ëèíèé è ÷èñåë.
//--------------------------------------------------------
void delete_objects1()
  {
   int i;
   string txt;

   for (i=ObjectsTotal(); i>=0; i--)
     {
      txt=ObjectName(i);
      if (StringFind(txt,"" + ExtComplekt + "pl")>-1)ObjectDelete (txt);
      if (StringFind(txt,"" + ExtComplekt + "ph")>-1) ObjectDelete (txt);
     }
  }
//--------------------------------------------------------
// Óäàëåíèå îáúåêòîâ. Êîíåö.
// Óäàëåíèå ñîåäèíèòåëüíûõ ëèíèé è ÷èñåë.
//--------------------------------------------------------


//--------------------------------------------------------
// Óäàëåíèå îáúåêòîâ. Íà÷àëî.
// Óäàëåíèå ñîåäèíèòåëüíûõ ëèíèé è ÷èñåë.
//--------------------------------------------------------
void delete_objects2(string txt1)
  {
   int i;
   string txt;

   for (i=ObjectsTotal(); i>=0; i--)
     {
      txt=ObjectName(i);
      if (StringFind(txt,txt1)>-1)ObjectDelete (txt);
     }
  }
//--------------------------------------------------------
// Óäàëåíèå îáúåêòîâ. Êîíåö.
// Óäàëåíèå ñîåäèíèòåëüíûõ ëèíèé è ÷èñåë.
//--------------------------------------------------------


//----------------------------------------------------
//  ZigZag èç ÌÒ4 îïòèìèçèðîâàííûé (Íèêîëàé Êîñèöûí - Godzilla)
//  ñ èñïðàâëåííûìè îøèáêàìè (nen). Íà÷àëî.
//----------------------------------------------------
void ZigZag_new_nen1()
  {
   //----+ ïðîâåðêà êîëè÷åñòâà áàðîâ íà äîñòàòî÷íîñòü äëÿ êîððåêòíîãî ðàñ÷¸òà èíäèêàòîðà
   if (iBars(NULL,GrossPeriod)-1<minBars) return(0);
   //----+ Ââåäåíèå öåëûõ ïåðåìåííûõ ïàìÿòè äëÿ ïåðåñ÷¸òà èíäèêàòîðà òîëüêî íà íåïîäñ÷èòàííûõ áàðàõ
   static int time2,time3,time4;  
   //----+ Ââåäåíèå ïåðåìåííûõ ñ ïëàâàþùåé òî÷êîé äëÿ ïåðåñ÷¸òà èíäèêàòîðà òîëüêî íà íåïîäñ÷èòàííûõ áàðàõ
   static  double ZigZag2,ZigZag3,ZigZag4;
   // Çàïîìèíèåì ÷èñëî ïîñ÷èòàííûõ áàðîâ äëÿ "ñòàðøèõ" òàéìôðåéìîâ
   static int counted_bars_GrossPeriod=0;
   //----+ Ââåäåíèå öåëûõ ïåðåìåííûõ äëÿ ïåðåñ÷¸òà èíäèêàòîðà òîëüêî íà íåïîäñ÷èòàííûõ áàðàõ è ïîëó÷åíèå óæå ïîäñ÷èòàííûõ áàðîâ
   int MaxBar,limit,supr2_bar,supr3_bar,supr4_bar,counted_bars;
   if (GrossPeriod==0)
     {
      counted_bars_GrossPeriod=IndicatorCounted();
      if (Bars-counted_bars_GrossPeriod>2)
        {
         counted_bars_GrossPeriod=0;
         timeFirstBar=0;
        }
      //---- ïîñëåäíèé ïîäñ÷èòàííûé áàð äîëæåí áûòü ïåðåñ÷èòàí
      if (counted_bars_GrossPeriod>0) counted_bars_GrossPeriod--;
     }
   else
     {
      if (iBars(NULL,GrossPeriod)-counted_bars_GrossPeriod>2)
        {
         counted_bars_GrossPeriod=0;
         timeFirstBar=0;
        }
     }
   counted_bars=counted_bars_GrossPeriod;
   //---- ïðîâåðêà íà âîçìîæíûå îøèáêè
   if (counted_bars<0)return(-1);
   //----+ Ââåäåíèå ïåðåìåííûõ    
   int    shift, back,lasthighpos,lastlowpos;
// zzH[] - TempBuffer[]; zzL[] - ZigZagBuffer[]
   double val,res;
   double curlow,curhigh,lasthigh,lastlow;
   //---- îïðåäåëåíèå íîìåðà ñàìîãî ñòàðîãî áàðà, íà÷èíàÿ ñ êîòîðîãî áóäåò ïðîèçåä¸í ïîëûé ïåðåñ÷¸ò âñåõ áàðîâ
   MaxBar=iBars(NULL,GrossPeriod)-minBars; 
   //---- îïðåäåëåíèå íîìåðà ñòàðòîâîãî  áàðà â öèêëå, íà÷èíàÿ ñ êîòîðîãî áóäåò ïðîèçåäèòüñÿ  ïåðåñ÷¸ò íîâûõ áàðîâ
   if (counted_bars==0)
     {
      limit=MaxBar;
     }
   else 
     {
      //----
      supr2_bar=iBarShift(NULL,GrossPeriod,time2,TRUE);
      supr3_bar=iBarShift(NULL,GrossPeriod,time3,TRUE);
      supr4_bar=iBarShift(NULL,GrossPeriod,time4,TRUE);
      //----
      limit=supr3_bar;      
      if ((supr2_bar<0)||(supr3_bar<0)||(supr4_bar<0))
         {
          limit=MaxBar;
         }
     }
     
   //---- èíèöèàëèçàöèÿ íóëÿ
   if (limit>=MaxBar || timeFirstBar!=iTime(NULL,GrossPeriod,iBars(NULL,GrossPeriod)-1)) 
     {
      timeFirstBar=iTime(NULL,GrossPeriod,iBars(NULL,GrossPeriod)-counted_bars-1);
      for (shift=iBars(NULL,GrossPeriod)-1; shift>0;shift--)ZigZagBuffer [shift]=0.0; 
      limit=MaxBar; 
     } 
   //----  
   //---- èçìåíåíèå ðàçìåðà âðåìåííîãî áóôåðà
//   if(ArrayResize(TempBuffer,limit+ExtBackstep+1)!=limit+ExtBackstep+1)return(-1);
//   if(ArrayResize(ZigZagBuffer,limit+ExtBackstep+1)!=limit+ExtBackstep+1)return(-1);
     
   //----+-------------------------------------------------+ 
   
   //----+ íà÷àëî ïåðâîãî áîëüøîãî öèêëà
   for(shift=limit; shift>=0; shift--)
     {
      //--- 
      val=iLow(NULL,GrossPeriod,Lowest(NULL,GrossPeriod,MODE_LOW,minBars,shift));
      if(val==lastlow) val=0.0;
      else 
        { 
         lastlow=val; 
         if((iLow(NULL,GrossPeriod,shift)-val)>(ExtDeviation*Point)) val=0.0;
         else
           {
            for(back=1; back<=ExtBackstep; back++)
              {
//               res=ZigZagBuffer[shift+back];
//               if((res!=0)&&(res>val)) ZigZagBuffer[shift+back]=0.0; 
               res=zzL[shift+back];
               if((res!=0)&&(res>val)) zzL[shift+back]=0.0; 
              }
           }
        }
//      if (Low[shift]==val) ZigZagBuffer[shift]=val;
      if (iLow(NULL,GrossPeriod,shift)==val) zzL[shift]=val;
      //--- 
      val=iHigh(NULL,GrossPeriod,Highest(NULL,GrossPeriod,MODE_HIGH,minBars,shift));
      if(val==lasthigh) val=0.0;
      else 
        {
         lasthigh=val;
         if((val-iHigh(NULL,GrossPeriod,shift))>(ExtDeviation*Point)) val=0.0;
         else
           {
            for(back=1; back<=ExtBackstep; back++)
              {
//               res=TempBuffer[shift+back];
//               if((res!=0)&&(res<val)) TempBuffer[shift+back]=0.0; 
               res=zzH[shift+back];
               if((res!=0)&&(res<val)) zzH[shift+back]=0.0; 
              } 
           }
        }
//      if (High[shift]==val) TempBuffer[shift]=val;
      if (iHigh(NULL,GrossPeriod,shift)==val) zzH[shift]=val;
     }
   //----+ êîíåö ïåðâîãî áîëüøîãî öèêëà 
      
   // final cutting 
      lasthigh=-1; lasthighpos=-1;
      lastlow= -1; lastlowpos= -1;
   //----+-------------------------------------------------+
   
   //----+ íà÷àëî âòîðîãî áîëüøîãî öèêëà

   for(shift=limit; shift>=0; shift--)
     {
//      curlow=ZigZagBuffer[shift];
//      curhigh=TempBuffer[shift];
      curlow=zzL[shift];
      curhigh=zzH[shift];
      if((curlow==0)&&(curhigh==0)) continue;
      //---
      if(curhigh!=0)
        {
         if(lasthigh>0) 
           {
//            if(lasthigh<curhigh) TempBuffer[lasthighpos]=0;
//            else TempBuffer[shift]=0;
            if(lasthigh<curhigh) zzH[lasthighpos]=0;
            else zzH[shift]=0;
           }
         //---
         if(lasthigh<curhigh || lasthigh<0)
           {
            lasthigh=curhigh;
            lasthighpos=shift;
           }
         lastlow=-1;
        }
      //----
      if(curlow!=0)
        {
         if(lastlow>0)
           {
//            if(lastlow>curlow) ZigZagBuffer[lastlowpos]=0;
//            else ZigZagBuffer[shift]=0;
            if(lastlow>curlow) zzL[lastlowpos]=0;
            else zzL[shift]=0;
           }
         //---
         if((curlow<lastlow)||(lastlow<0))
           {
            lastlow=curlow;
            lastlowpos=shift;
           } 
         lasthigh=-1;
        }
     }
   //----+ êîíåö âòîðîãî áîëüøîãî öèêëà
     
   //----+-------------------------------------------------+
   
   //----+ íà÷àëî òðåòüåãî öèêëà
   for(shift=limit; shift>=0; shift--)
     {
//       res=TempBuffer[shift];
//       if(res!=0.0) ZigZagBuffer[shift]=res;

      zz[shift]=zzL[shift];
      if(shift>=iBars(NULL,GrossPeriod)-minBars) {zzH[shift]=0.0; zzL[shift]=0.0; zz[shift]=0.0;}
      else
        {
          res=zzH[shift];
          if(res!=0.0) zz[shift]=res;
        }

     }
     //----+ êîíåö òðåòüåãî öèêëà
     
   //+--- Âîññòàíîâëåíèå çíà÷åíèé èíäèêàòîðíîãî áóôôåðà, êîòîðûå ìîãëè áûòü óòåðÿíû 
   if (limit<MaxBar)
     {
/*
      ZigZagBuffer[supr2_bar]=ZigZag2; 
      ZigZagBuffer[supr3_bar]=ZigZag3; 
      ZigZagBuffer[supr4_bar]=ZigZag4; 
      for(int qqq=supr4_bar-1; qqq>supr3_bar; qqq--)ZigZagBuffer[qqq]=0; 
      for(int ggg=supr3_bar-1; ggg>supr2_bar; ggg--)ZigZagBuffer[ggg]=0;
*/
      zz[supr2_bar]=ZigZag2; 
      zz[supr3_bar]=ZigZag3; 
      zz[supr4_bar]=ZigZag4; 
      for(int qqq=supr4_bar-1; qqq>supr3_bar; qqq--)zz[qqq]=0; 
      for(int ggg=supr3_bar-1; ggg>supr2_bar; ggg--)zz[ggg]=0;
     }
   //+---+============================================+
  
   //+--- èñïðàâëåíèå âîçíèêàþùèõ ãîðáîâ 
   double vel1, vel2, vel3, vel4;
   int bar1, bar2, bar3, bar4;
   int count;
   if (limit==MaxBar)supr4_bar=MaxBar;
   for(int bar=supr4_bar; bar>=0; bar--)
    {
//     if (ZigZagBuffer[bar]!=0)
     if (zz[bar]!=0)
      {
       count++;
       vel4=vel3;bar4=bar3;
       vel3=vel2;bar3=bar2;
       vel2=vel1;bar2=bar1;
//       vel1=ZigZagBuffer[bar];bar1=bar;
       vel1=zz[bar];bar1=bar;
       if (count<3)continue; 
/*
       if ((vel3<vel2)&&(vel2<vel1))ZigZagBuffer[bar2]=0;
       if ((vel3>vel2)&&(vel2>vel1))ZigZagBuffer[bar2]=0;
       if ((vel2==vel1)&&(vel1!=0 ))ZigZagBuffer[bar1]=0;      
*/
       if ((vel3<vel2)&&(vel2<vel1))zz[bar2]=0;
       if ((vel3>vel2)&&(vel2>vel1))zz[bar2]=0;
       if ((vel2==vel1)&&(vel1!=0 ))zz[bar1]=0;      
     }
    } 
   //+--- çàïîìèíàíèå âðåìåíè òð¸õ ïîñëåäíèõ ïåðåãèáîâ Çèãçàãà è çíà÷åíèé èíäèêàòîðà â ýòèõ òî÷êàõ 
   time2=iTime(NULL,GrossPeriod,bar2);
   time3=iTime(NULL,GrossPeriod,bar3);
   time4=iTime(NULL,GrossPeriod,bar4);
   ZigZag2=vel2;  
   ZigZag3=vel3; 
   ZigZag4=vel4; 
   //+---          
   if (GrossPeriod>0)
     {
      counted_bars_GrossPeriod=iBars(NULL,GrossPeriod)-1;
     }
 //---- çàâåðøåíèå âû÷èñëåíèé çíà÷åíèé èíäèêàòîðà
  }
//--------------------------------------------------------
//  ZigZag èç ÌÒ4 îïòèìèçèðîâàííûé (Íèêîëàé Êîñèöûí - Godzilla)
//  ñ èñïðàâëåííûìè îøèáêàìè (nen). Êîíåö. 
//--------------------------------------------------------



//----------------------------------------------------
//  ZigZag (èç ÌÒ4 íåìíîãî èçìåíåííûé). Íà÷àëî.
//----------------------------------------------------
void ZigZag_()
  {
//  ZigZag èç ÌÒ. Íà÷àëî.
   int    shift, back,lasthighpos,lastlowpos;
   double val,res;
   double curlow,curhigh,lasthigh,lastlow;

   for(shift=Bars-minBars; shift>=0; shift--)
     {
      val=Low[Lowest(NULL,0,MODE_LOW,minBars,shift)];
      if(val==lastlow) val=0.0;
      else 
        { 
         lastlow=val; 
         if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;
         else
           {
            for(back=1; back<=ExtBackstep; back++)
              {
               res=zzL[shift+back];
               if((res!=0)&&(res>val)) zzL[shift+back]=0.0; 
              }
           }
        } 
      if (Low[shift]==val) zzL[shift]=val;
      //--- high
      val=High[Highest(NULL,0,MODE_HIGH,minBars,shift)];
      if(val==lasthigh) val=0.0;
      else 
        {
         lasthigh=val;
         if((val-High[shift])>(ExtDeviation*Point)) val=0.0;
         else
           {
            for(back=1; back<=ExtBackstep; back++)
              {
               res=zzH[shift+back];
               if((res!=0)&&(res<val)) zzH[shift+back]=0.0; 
              } 
           }
        }
      if (High[shift]==val) zzH[shift]=val;
     }

   // final cutting 
   lasthigh=-1; lasthighpos=-1;
   lastlow=-1;  lastlowpos=-1;

   for(shift=Bars-minBars; shift>=0; shift--)
     {
      curlow=zzL[shift];
      curhigh=zzH[shift];
      if((curlow==0)&&(curhigh==0)) continue;
      //---
      if(curhigh!=0)
        {
         if(lasthigh>0) 
           {
            if(lasthigh<curhigh) zzH[lasthighpos]=0;
            else zzH[shift]=0;
           }
         //---
         if(lasthigh<curhigh || lasthigh<0)
           {
            lasthigh=curhigh;
            lasthighpos=shift;
           }
         lastlow=-1;
        }
      //----
      if(curlow!=0)
        {
         if(lastlow>0)
           {
            if(lastlow>curlow) zzL[lastlowpos]=0;
            else zzL[shift]=0;
           }
         //---
         if((curlow<lastlow)||(lastlow<0))
           {
            lastlow=curlow;
            lastlowpos=shift;
           } 
         lasthigh=-1;
        }
     }
  
   for(shift=Bars-1; shift>=0; shift--)
     {
      zz[shift]=zzL[shift];
      if(shift>=Bars-minBars) {zzH[shift]=0.0; zzL[shift]=0.0; zz[shift]=0.0;}
      else
        {
         res=zzH[shift];
         if(res!=0.0)
           {
            if (zz[shift]!=0.0)zz[shift]=0.0; else zz[shift]=res;
           }
        }
     }

  }
//--------------------------------------------------------
// ZigZag èç ÌÒ. Êîíåö. 
//--------------------------------------------------------


//----------------------------------------------------
//  ZigZag Àëåêñà íåìíîãî èçìåíåííûé. Íà÷àëî.
//----------------------------------------------------
void ang_AZZ_()
 {
   int i,n;

//   cbi=Bars-IndicatorCounted()-1;
//---------------------------------
   for (i=cbi; i>=0; i--) 
     {
//-------------------------------------------------
      // çàïîìèíàåì çíà÷åíèå íàïðàâëåíèÿ òðåíäà fs è ñðåäíåé öåíû si íà ïðåäûäóùåì áàðå
      if (ti!=Time[i]) {fsp=fs; sip=si;} ti=Time[i];
      // Âû÷èñëÿåì çíà÷åíèå öåíîâîãî ôèëüòðà îò ïðîöåíòà îòêëîíåíèÿ
      if (minSize==0 && minPercent!=0) di=minPercent*Close[i]/2/100;
//-------------------------------------------------
      // Êîððåêòèðîâêà ñðåäíåé öåíû
      if (High[i]>=si+di && Low[i]<si-di) // Âíåøíèé áàð ïî îòíîøåíèþ ê öåíîâîìó ôèëüòðó di
        {
         if (High[i]-si>=si-Low[i]) si=High[i]-di;  // Îòêëîíåíèå õàÿ îò ñðåäíåé öåíû áîëüøå îòêëîíåíèÿ ëîâà
         if (High[i]-si<si-Low[i]) si=Low[i]+di;  // ñîîòâåòñòâåííî, ìåíüøå
        } 
      else  // Íå âíåøíèé áàð
        {
         if (High[i]>=si+di) si=High[i]-di;   // 
         if (Low[i]<=si-di) si=Low[i]+di;   // 
        }

      // Âû÷èñëåíèå íà÷àëüíîãî çíà÷åíèÿ ñðåäíåé öåíû
      if (i>Bars-2) {si=(High[i]+Low[i])/2;}

      // Çàïîëíÿåì áóôåðû äëÿ óðîâíåé ïîäòâåðæäåíèÿ
      if (chHL && chHL_PeakDet_or_vts) {ha[i]=si+di; la[i]=si-di;} 

      // Îïðåäåëÿåì íàïðàâëåíèå òðåíäà äëÿ ðàñ÷åòíîãî áàðà
      if (si>sip) fs=1; // Òðåíä âîñõîäÿùèé
      if (si<sip) fs=2; // Òðåíä íèñõîäÿùèé

//-------------------------------------------------

      if (fs==1 && fsp==2) // Òðåäí ñìåíèëñÿ ñ íèñõîäÿùåãî íà âîñõîäÿùèé
        {
         hm=High[i];

         zz[bi]=Low[bi];
         zzL[bi]=Low[bi];
         if (i>0) {if (PeakDet && chHL_PeakDet_or_vts) for (n=bip; n>=bi; n--) {lam[n]=Low[bip];}}
         aip=ai; 
         taip=Time[ai];
         ai=i;
         tai=Time[i];
         fsp=fs;
        }

      if (fs==2 && fsp==1) // Òðåäí ñìåíèëñÿ ñ âîñõîäÿùåãî íà íèñõîäÿùèé
        {
         lm=Low[i]; 

         zz[ai]=High[ai];
         zzH[ai]=High[ai];
         if (i>0) {if (PeakDet && chHL_PeakDet_or_vts) for (n=aip; n>=ai; n--) {ham[n]=High[aip];}}
         bip=bi; 
         tbip=Time[bi];
         bi=i;
         tbi=Time[i];
         fsp=fs;
        }

      // Ïðîäîëæåíèå tðåíäà. Îòñëåæèâàíèå òðåíäà.
      if (fs==1 && High[i]>hm) 
        {hm=High[i]; ai=i; tai=Time[i];}
      if (fs==2 && Low[i]<lm) 
        {lm=Low[i]; bi=i; tbi=Time[i];}

//===================================================================================================
      // Íóëåâîé áàð. Ðàñ÷åò ïåðâîãî ëó÷à ZigZag-a

      if (i==0) 
        {
         ai0=iBarShift(Symbol(),Period(),tai); 
         bi0=iBarShift(Symbol(),Period(),tbi);
         aip0=iBarShift(Symbol(),Period(),taip); 
         bip0=iBarShift(Symbol(),Period(),tbip);

         if (fs==1) {for (n=bi0-1; n>ai0; n--) {zzH[n]=0; zz[n]=0;} zz[ai0]=High[ai0]; zzH[ai0]=High[ai0]; zzL[ai0]=0;}         
         if (fs==2) {for (n=ai0-1; n>bi0; n--) {zzL[n]=0; zz[n]=0;} zz[bi0]=Low[bi0]; zzL[bi0]=Low[bi0]; zzH[bi0]=0;}

         if (PeakDet)
           {
            if (fs==1) 
              {
               for (n=aip0; n>=0; n--) {ham[n]=High[aip0];}
               for (n=bi0; n>=0; n--) {lam[n]=Low[bi0];}
              }
            if (fs==2)
              {
               for (n=bip0; n>=0; n--) {lam[n]=Low[bip0];} 
               for (n=ai0; n>=0; n--) {ham[n]=High[ai0];} 
              } 
           }

        }
//====================================================================================================
     }
//--------------------------------------------
 }

//--------------------------------------------------------
// ZigZag Àëåêñà. Êîíåö. 
//--------------------------------------------------------


//----------------------------------------------------
// Èíäèêàòîð ïîäîáíûé âñòðîåííîìó â Ensign. Íà÷àëî.
//----------------------------------------------------
void Ensign_ZZ()
 {
   int i,n;

//   cbi=Bars-IndicatorCounted()-1;
//---------------------------------
   for (i=cbi; i>=0; i--) 
     {
//-------------------------------------------------
      // Óñòàíàâëèâàåì íà÷àëüíûå çíà÷åíèÿ ìèíèìóìà è ìàêñèìóìà áàðà
      if (lLast==0) {lLast=Low[i];hLast=High[i]; if (ExtIndicator==3) di=hLast-lLast;}

      // Îïðåäåëÿåì íàïðàâëåíèå òðåíäà äî ïåðâîé òî÷êè ñìåíû òðåíäà.
      // Èëè äî òî÷êè íà÷àëà ïåðâîãî ëó÷à çà ëåâûì êðàåì.
      if (fs==0)
        {
         if (lLast<Low[i] && hLast<High[i]) {fs=1; hLast=High[i]; si=High[i]; ai=i; tai=Time[i]; if (ExtIndicator==3) di=High[i]-Low[i];}  // òðåíä âîñõîäÿùèé
         if (lLast>Low[i] && hLast>High[i]) {fs=2; lLast=Low[i]; si=Low[i]; bi=i; tbi=Time[i]; if (ExtIndicator==3) di=High[i]-Low[i];}  // òðåíä íèñõîäÿùèé
        }

      if (ti!=Time[i])
        {
         // çàïîìèíàåì çíà÷åíèå íàïðàâëåíèÿ òðåíäà fs íà ïðåäûäóùåì áàðå
         ti=Time[i];

         ai0=iBarShift(Symbol(),Period(),tai); 
         bi0=iBarShift(Symbol(),Period(),tbi);

         fcount0=false;
         if ((fh || fl) && countBar>0) {countBar--; if (i==0 && countBar==0) fcount0=true;}
         // Îñòàíîâêà. Îïðåäåëåíèå äàëüíåéøåãî íàïðàâëåíèÿ òðåíäà.
         if (fs==1)
           {
            if (hLast>High[i] && !fh) fh=true;

            if (i==0)
              {

               if (Close[i+1]<lLast && fh) {fs=2; countBar=minBars; fh=false;}
               if (countBar==0 && si-di>Low[i+1] && High[i+1]<hLast && ai0>i+1 && fh && !fcount0) {fs=2; countBar=minBars; fh=false;}

               if (fs==2) // Òðåäí ñìåíèëñÿ ñ âîñõîäÿùåãî íà íèñõîäÿùèé íà ïðåäûäóùåì áàðå
                 {
                  zz[ai0]=High[ai0];
                  zzH[ai0]=High[ai0];
                  if (PeakDet && chHL_PeakDet_or_vts) for (n=aip; n>=ai; n--) {ham[n]=High[aip];}
                  lLast=Low[i+1];
                  if (ExtIndicator==3) di=High[i+1]-Low[i+1];
                  si=Low[i+1];
                  bip=bi0; 
                  tbip=Time[bi0];
                  bi=i+1;
                  tbi=Time[i+1];
                  if (chHL && chHL_PeakDet_or_vts) {ha[i+1]=si+di; la[i+1]=si;}
                }

              }
            else
              {
               if (Close[i]<lLast && fh) {fs=2; countBar=minBars; fh=false;}
               if (countBar==0 && si-di>Low[i] && High[i]<hLast && fh) {fs=2; countBar=minBars; fh=false;}

               if (fs==2) // Òðåäí ñìåíèëñÿ ñ âîñõîäÿùåãî íà íèñõîäÿùèé
                 {
                  zz[ai]=High[ai];
                  zzH[ai]=High[ai];
                  if (PeakDet && chHL_PeakDet_or_vts) for (n=aip; n>=ai; n--) {ham[n]=High[aip];}
                  lLast=Low[i];
                  if (ExtIndicator==3) di=High[i]-Low[i];
                  si=Low[i];
                  bip=bi; 
                  tbip=Time[bi];
                  bi=i;
                  tbi=Time[i];
                  if (chHL && chHL_PeakDet_or_vts) {ha[i]=si+di; la[i]=si;}
                 }
              }

           }
         else // fs==2
           {
            if (lLast<Low[i] && !fl) fl=true;

            if (i==0)
              {

               if (Close[i+1]>hLast && fl) {fs=1; countBar=minBars; fl=false;}
               if (countBar==0 && si+di<High[i+1] && Low[i+1]>lLast && bi0>i+1 && fl && !fcount0) {fs=1; countBar=minBars; fl=false;}

               if (fs==1) // Òðåäí ñìåíèëñÿ ñ íèñõîäÿùåãî íà âîñõîäÿùèé íà ïðåäûäóùåì áàðå
                 {
                  zz[bi0]=Low[bi0];
                  zzL[bi0]=Low[bi0];
                  if (PeakDet && chHL_PeakDet_or_vts) for (n=bip; n>=bi; n--) {lam[n]=Low[bip];}
                  hLast=High[i+1];
                  if (ExtIndicator==3) di=High[i+1]-Low[i+1];
                  si=High[i+1];
                  aip=ai0; 
                  taip=Time[ai0];
                  ai=i+1;
                  tai=Time[i+1];
                  if (chHL && chHL_PeakDet_or_vts) {ha[i+1]=si; la[i+1]=si-di;}
                 }

              }
            else
              {
               if (Close[i]>hLast && fl) {fs=1; countBar=minBars; fl=false;}
               if (countBar==0 && si+di<High[i] && Low[i]>lLast && fl) {fs=1; countBar=minBars; fl=false;}

               if (fs==1) // Òðåäí ñìåíèëñÿ ñ íèñõîäÿùåãî íà âîñõîäÿùèé
                 {
                  zz[bi]=Low[bi];
                  zzL[bi]=Low[bi];
                  if (PeakDet && chHL_PeakDet_or_vts) for (n=bip; n>=bi; n--) {lam[n]=Low[bip];}
                  hLast=High[i];
                  if (ExtIndicator==3) di=High[i]-Low[i];
                  si=High[i];
                  aip=ai; 
                  taip=Time[ai];
                  ai=i;
                  tai=Time[i];
                  if (chHL && chHL_PeakDet_or_vts) {ha[i]=si; la[i]=si-di;}
                 }
              }
           }
        } 

      // Ïðîäîëæåíèå òðåíäà
      if (fs==1 && High[i]>si) {ai=i; tai=Time[i]; hLast=High[i]; si=High[i]; countBar=minBars; fh=false; if (ExtIndicator==3) di=High[i]-Low[i];}
      if (fs==2 && Low[i]<si) {bi=i; tbi=Time[i]; lLast=Low[i]; si=Low[i]; countBar=minBars; fl=false; if (ExtIndicator==3) di=High[i]-Low[i];}

      // Çàïîëíÿåì áóôåðû äëÿ óðîâíåé ïîäòâåðæäåíèÿ
      if (chHL && chHL_PeakDet_or_vts)
        {
         if (fs==1) {ha[i]=si; la[i]=si-di;}
         if (fs==2) {ha[i]=si+di; la[i]=si;}
        } 

//===================================================================================================
      // Íóëåâîé áàð. Ðàñ÷åò ïåðâîãî ëó÷à ZigZag-a

      if (i==0) 
        {
         ai0=iBarShift(Symbol(),Period(),tai); 
         bi0=iBarShift(Symbol(),Period(),tbi);
         aip0=iBarShift(Symbol(),Period(),taip); 
         bip0=iBarShift(Symbol(),Period(),tbip);

         if (fs==1) {for (n=bi0-1; n>=0; n--) {zzH[n]=0; zz[n]=0;} zz[ai0]=High[ai0]; zzH[ai0]=High[ai0]; zzL[ai0]=0;}         
         if (fs==2) {for (n=ai0-1; n>=0; n--) {zzL[n]=0; zz[n]=0;} zz[bi0]=Low[bi0]; zzL[bi0]=Low[bi0]; zzH[bi0]=0;}

         if (PeakDet && chHL_PeakDet_or_vts)
           {
            if (fs==1) {for (n=aip0; n>=0; n--) {ham[n]=High[aip0];} for (n=bi0; n>=0; n--) {lam[n]=Low[bi0];} }
            if (fs==2) {for (n=bip0; n>=0; n--) {lam[n]=Low[bip0];} for (n=ai0; n>=0; n--) {ham[n]=High[ai0];} } 
           }
        }

//====================================================================================================
     }
//--------------------------------------------
 }
//--------------------------------------------------------
// Èíäèêàòîð ïîäîáíûé âñòðîåííîìó â Ensign. Êîíåö. 
//--------------------------------------------------------


//----------------------------------------------------
//  ZigZag tauber. Íà÷àëî.
//----------------------------------------------------

void ZigZag_tauber()
  {
//  ZigZag èç ÌÒ. Íà÷àëî.
   int    shift, back,lasthighpos,lastlowpos;
   double val,res;
   double curlow,curhigh,lasthigh,lastlow;
   GetHigh(0,Bars,0.0,0);

   // final cutting 
   lasthigh=-1; lasthighpos=-1;
   lastlow=-1;  lastlowpos=-1;

   for(shift=Bars; shift>=0; shift--)
     {
      curlow=zzL[shift];
      curhigh=zzH[shift];
      if((curlow==0)&&(curhigh==0)) continue;
      //---
      if(curhigh!=0)
        {
        if(lasthigh>0) 
           {
            if(lasthigh<curhigh) zzH[lasthighpos]=0;
            else zzH[shift]=0;
           }
        //---
         if(lasthigh<curhigh || lasthigh<0)
           {
            lasthigh=curhigh;
            lasthighpos=shift;
           }
         lastlow=-1;
        }
      //----
      if(curlow!=0)
        {
         if(lastlow>0)
           {
            if(lastlow>curlow) zzL[lastlowpos]=0;
            else zzL[shift]=0;
          }
         //---
         if((curlow<lastlow)||(lastlow<0))
           {
            lastlow=curlow;
            lastlowpos=shift;
           } 
         lasthigh=-1;
        }
     }
  

   for(shift=Bars-1; shift>=0; shift--)
     {
      zz[shift]=zzL[shift];
      res=zzH[shift];
      if(res!=0.0) zz[shift]=res;
     }

  }

void GetHigh(int start, int end, double price, int step)
  {
   int count=end-start;
   if (count<=0) return;
   int i=Highest(NULL,0,MODE_HIGH,count+1,start);
   double val=High[i];
   if ((val-price)>(minSize*Point))
     { 
      zzH[i]=val;
      if (i==start) {GetLow(start+step,end-step,val,1-step); if (zzL[start-1]>0) zzL[start]=0; return;}     
      if (i==end) {GetLow(start+step,end-step,val,1-step); if (zzL[end+1]>0) zzL[end]=0; return;} 
      GetLow(start,i-1,val,0);
      GetLow(i+1,end,val,0);
     }
  }

void GetLow(int start, int end, double price, int step)
  {
   int count=end-start;
   if (count<=0) return;
   int i=Lowest(NULL,0,MODE_LOW,count+1,start);
   double val=Low[i];
   if ((price-val)>(minSize*Point))
     {
      zzL[i]=val; 
      if (i==start) {GetHigh(start+step,end-step,val,1-step); if (zzH[start-1]>0) zzH[start]=0; return;}     
      if (i==end) {GetHigh(start+step,end-step,val,1-step); if (zzH[end+1]>0) zzH[end]=0; return;}   
      GetHigh(start,i-1,val,0);
      GetHigh(i+1,end,val,0);
     }
  }
//--------------------------------------------------------
// ZigZag tauber. Êîíåö. 
//--------------------------------------------------------

//----------------------------------------------------
// Ñâèíãè Ãàííà. Íà÷àëî.
//----------------------------------------------------
void GannSwing()
 {
   int i,n,fs_tend=0;
// lLast, hLast - ìèíèìóì è ìàêñèìóì àêòèâíîãî áàðà
// lLast_m, hLast_m - ìèíèìóì è ìàêñèìóì "ïðîìåæóòî÷íûõ" áàðîâ

//   cbi=Bars-IndicatorCounted()-1;
//---------------------------------
   for (i=cbi; i>=0; i--) 
     {
//-------------------------------------------------
      // Óñòàíàâëèâàåì íà÷àëüíûå çíà÷åíèÿ ìèíèìóìà è ìàêñèìóìà áàðà
      if (lLast==0) {lLast=Low[i]; hLast=High[i]; ai=i; bi=i;}
      if (ti!=Time[i])
        {
         ti=Time[i];
         if (lLast_m==0 && hLast_m==0)
           {
            if (lLast>Low[i] && hLast<High[i]) // Âíåøíèé áàð
              {
               lLast=Low[i];hLast=High[i];lLast_m=Low[i];hLast_m=High[i];countBarExt++;
               if (fs==1) {countBarl=countBarExt; ai=i; tai=Time[i];}
               else if (fs==2) {countBarh=countBarExt; bi=i; tbi=Time[i];}
               else {countBarl++;countBarh++;}
              }
            else if (lLast<=Low[i] && hLast<High[i]) // Òåíäåíöèÿ íà òåêóùåì áàðå âîñõîäÿùàÿ
              {
               lLast_m=0;hLast_m=High[i];countBarl=0;countBarExt=0;
               if (fs!=1) countBarh++;
               else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; ai=i; tai=Time[i];}
              }
            else if (lLast>Low[i] && hLast>=High[i]) // Òåíäåíöèÿ íà òåêóùåì áàðå íèñõîäÿùàÿ
              {
               lLast_m=Low[i];hLast_m=0;countBarh=0;countBarExt=0;
               if (fs!=2) countBarl++;
               else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; bi=i; tbi=Time[i];}
              }
           }
         else  if (lLast_m>0 && hLast_m>0) // Âíåøíèé áàð (ïðåäûäóùèé)
           {
            if (lLast_m>Low[i] && hLast_m<High[i]) // Âíåøíèé áàð
              {
               lLast=Low[i];hLast=High[i];lLast_m=Low[i];hLast_m=High[i];countBarExt++;
               if (fs==1) {countBarl=countBarExt; ai=i; tai=Time[i];}
               else if (fs==2) {countBarh=countBarExt; bi=i; tbi=Time[i];}
               else {countBarl++;countBarh++;}
              }
            else if (lLast_m<=Low[i] && hLast_m<High[i]) // Òåíäåíöèÿ íà òåêóùåì áàðå âîñõîäÿùàÿ
              {
               lLast_m=0;hLast_m=High[i];countBarl=0;countBarExt=0;
               if (fs!=1) countBarh++;
               else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; ai=i; tai=Time[i];}
              }
            else if (lLast_m>Low[i] && hLast_m>=High[i]) // Òåíäåíöèÿ íà òåêóùåì áàðå íèñõîäÿùàÿ
              {
               lLast_m=Low[i];hLast_m=0;countBarh=0;countBarExt=0;
               if (fs!=2) countBarl++;
               else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; bi=i; tbi=Time[i];}
              }
           }
         else  if (lLast_m>0)
           {
            if (lLast_m>Low[i] && hLast<High[i]) // Âíåøíèé áàð
              {
               lLast=Low[i];hLast=High[i];lLast_m=Low[i];hLast_m=High[i];countBarExt++;
               if (fs==1) {countBarl=countBarExt; ai=i; tai=Time[i];}
               else if (fs==2) {countBarh=countBarExt; bi=i; tbi=Time[i];}
               else {countBarl++;countBarh++;}
              }
            else if (lLast_m<=Low[i] && hLast<High[i]) // Òåíäåíöèÿ íà òåêóùåì áàðå âîñõîäÿùàÿ
              {
               lLast_m=0;hLast_m=High[i];countBarl=0;countBarExt=0;
               if (fs!=1) countBarh++;
               else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; ai=i; tai=Time[i];}
              }
            else if (lLast_m>Low[i] && hLast>=High[i]) // Òåíäåíöèÿ íà òåêóùåì áàðå íèñõîäÿùàÿ
              {
               lLast_m=Low[i];hLast_m=0;countBarh=0;countBarExt=0;
               if (fs!=2) countBarl++;
               else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; bi=i; tbi=Time[i];}
              }
           }
         else  if (hLast_m>0)
           {
            if (lLast>Low[i] && hLast_m<High[i]) // Âíåøíèé áàð
              {
               lLast=Low[i];hLast=High[i];lLast_m=Low[i];hLast_m=High[i];countBarExt++;
               if (fs==1) {countBarl=countBarExt; ai=i; tai=Time[i];}
               else if (fs==2) {countBarh=countBarExt; bi=i; tbi=Time[i];}
               else {countBarl++;countBarh++;}
              }
            else if (lLast<=Low[i] && hLast_m<High[i]) // Òåíäåíöèÿ íà òåêóùåì áàðå âîñõîäÿùàÿ
              {
               lLast_m=0;hLast_m=High[i];countBarl=0;countBarExt=0;
               if (fs!=1) countBarh++;
               else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; ai=i; tai=Time[i];}
              }
            else if (lLast>Low[i] && hLast_m>=High[i]) // Òåíäåíöèÿ íà òåêóùåì áàðå íèñõîäÿùàÿ
              {
               lLast_m=Low[i];hLast_m=0;countBarh=0;countBarExt=0;
               if (fs!=2) countBarl++;
               else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; bi=i; tbi=Time[i];}
              }
           }

         // Îïðåäåëÿåì íàïðàâëåíèå òðåíäà. 
         if (fs==0)
           {
            if (lLast<lLast_m && hLast>hLast_m) // âíóòðåííèé áàð
              {
               lLast=Low[i]; hLast=High[i]; ai=i; bi=i; countBarl=0;countBarh=0;countBarExt=0;
              }
              
            if (countBarh>countBarl && countBarh>countBarExt && countBarh>minBars)
              {
               lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0;
               fs=1;countBarh=0;countBarl=0;countBarExt=0;
               zz[bi]=Low[bi];
               zzL[bi]=Low[bi];
               zzH[bi]=0;
               ai=i;
               tai=Time[i];
              }
            else if (countBarl>countBarh && countBarl>countBarExt && countBarl>minBars)
              {
               lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0;
               fs=2;countBarl=0;countBarh=0;countBarExt=0;
               zz[ai]=High[ai];
               zzH[ai]=High[ai];
               zzL[ai]=0;
               bi=i;
               tbi=Time[i];
              }
           }
         else
           {
            if (lLast_m==0 && hLast_m==0)
              {
               countBarl=0;countBarh=0;countBarExt=0;
              }

            // Òåíäåíöèÿ âîñõîäÿùàÿ
            if (fs==1)
              {
                  if (countBarl>countBarh && countBarl>countBarExt && countBarl>minBars) // Îïðåäåëÿåì òî÷êó ñìåíû òåíäåíöèè.
                    {
                     // çàïîìèíàåì çíà÷åíèå íàïðàâëåíèÿ òðåíäà fs íà ïðåäûäóùåì áàðå
                     ai0=iBarShift(Symbol(),Period(),tai); 
                     bi0=iBarShift(Symbol(),Period(),tbi);
                     fs=2;
                     countBarl=0;

                     zz[ai]=High[ai];
                     zzH[ai]=High[ai];
                     zzL[ai]=0;
                     bi=i;
                     tbi=Time[i];

                     lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0;

                     for (n=0;countBarExt<minBars;n++) 
                       {
                        if (lLast<Low[i+n+1] && hLast>High[i+n+1]) {countBarExt++; countBarh++; lLast=Low[i+n+1]; hLast=High[i+n+1]; hLast_m=High[i];}
                        else break;
                       }

                     lLast=Low[i]; hLast=High[i];

                    }
              }

            // Òåíäåíöèÿ íèñõîäÿùàÿ
            if (fs==2)
              {
                  if (countBarh>countBarl && countBarh>countBarExt && countBarh>minBars) // Îïðåäåëÿåì òî÷êó ñìåíû òåíäåíöèè.
                    {
                     // çàïîìèíàåì çíà÷åíèå íàïðàâëåíèÿ òðåíäà fs íà ïðåäûäóùåì áàðå
                     ai0=iBarShift(Symbol(),Period(),tai); 
                     bi0=iBarShift(Symbol(),Period(),tbi);
                     fs=1;
                     countBarh=0;

                     zz[bi]=Low[bi];
                     zzL[bi]=Low[bi];
                     zzH[bi]=0;
                     ai=i;
                     tai=Time[i];

                     lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0;

                     for (n=0;countBarExt<minBars;n++) 
                       {
                        if (lLast<Low[i+n+1] && hLast>High[i+n+1]) {countBarExt++; countBarl++; lLast=Low[i+n+1]; hLast=High[i+n+1]; lLast_m=Low[i];}
                        else break;
                       }

                     lLast=Low[i]; hLast=High[i];

                    }
              }
           } 
        } 
       if (i==0)
         {
          if (hLast<High[i] && fs==1) // Òåíäåíöèÿ íà òåêóùåì áàðå âîñõîäÿùàÿ
            {
             ai=i; tai=Time[i]; zz[ai]=High[ai]; zzH[ai]=High[ai]; zzL[ai]=0;
            }
          else if (lLast>Low[i] && fs==2) // Òåíäåíöèÿ íà òåêóùåì áàðå íèñõîäÿùàÿ
            {
             bi=i; tbi=Time[i]; zz[bi]=Low[bi]; zzL[bi]=Low[bi]; zzH[bi]=0;
            }
//===================================================================================================
      // Íóëåâîé áàð. Ðàñ÷åò ïåðâîãî ëó÷à ZigZag-a

          ai0=iBarShift(Symbol(),Period(),tai); 
          bi0=iBarShift(Symbol(),Period(),tbi);

          if (bi0>1) if (fs==1) {for (n=bi0-1; n>=0; n--) {zzH[n]=0.0; zz[n]=0.0;} zz[ai0]=High[ai0]; zzH[ai0]=High[ai0]; zzL[ai0]=0.0;}         
          if (ai0>1) if (fs==2) {for (n=ai0-1; n>=0; n--) {zzL[n]=0.0; zz[n]=0.0;} zz[bi0]=Low[bi0]; zzL[bi0]=Low[bi0]; zzH[bi0]=0.0;}

          if (ti<Time[1]) i=2;

         }
//====================================================================================================

     }
//--------------------------------------------
 }
//--------------------------------------------------------
// Ñâèíãè Ãàííà. Êîíåö. 
//--------------------------------------------------------


//----------------------------------------------------
// DT-ZigZag. Íà÷àëî.
//----------------------------------------------------
void DTZigZag()
 {
  if (cbi>0)
    {
     if (init_zz) // Íà÷àëüíàÿ ïðîðèñîâêà ëó÷åé.
       {
        double i1=0, i2=0;
        init_zz=false;

        for (int i=0; i<cbi; i++) // íà÷àëüíîå çàïîëíåíèå áóôåðà DT-ZigZag ("ïîëîñêè")
          {
           if(Time[i]>=daytimes[0]) {bigshift=0; bigshift_last=0;}
           else
             {
              bigshift = ArrayBsearch(daytimes,Time[i-1],WHOLE_ARRAY,bigshift_last,MODE_DESCEND);
              bigshift_last=bigshift;
              if(Period()<=GrossPeriod) bigshift++;
             }
             DT_ZigZag[i]=iCustom(NULL,GrossPeriod,"ZigZag",minBars,ExtDeviation,ExtBackstep,0,bigshift);
          }

        for (i=Bars-1;i>0;i--) // îïðåäåëåíèå íàïðàâëåíèÿ ïåðâîãî ëó÷à
          {
           if (DT_ZigZag[i]>0)
             {
              if (i1==0) i1=DT_ZigZag[i];
              else if (i1>0 && i1!=DT_ZigZag[i]) i2=DT_ZigZag[i];
              if (i2>0) 
                {
                 if (i1>i2) hi_DT=true;
                 else hi_DT=false;
                 break;
                }
             }
          }

        for (i=Bars-1;i>=0;i--)  // ïîèñê ýêñòðåìóìîâ òåêóùåãî ÒÔ ðàâíûõ çíà÷åíèÿì DT-ZigZag
          {
           if (DT_ZigZag[i]>0)
             {
              if (hi_DT)
                {
                 if (DT_ZigZag[i]==High[i]) {hi_DT=false;zz[i]=High[i];zzH[i]=High[i];}
                }
              else
                {
                 if (DT_ZigZag[i]==Low[i]) {hi_DT=true;zz[i]=Low[i];zzL[i]=Low[i];}
                }
             }
          }

        ti=iTime(NULL,GrossPeriod,0);
       }
     else // îáðàáîòêà íóëåâîãî áàðà
       {
        if (ti!=iTime(NULL,GrossPeriod,0))
          {
           ArrayCopySeries(daytimes,MODE_TIME,Symbol(),GrossPeriod);ti=iTime(NULL,GrossPeriod,0);
          }

        int limit=iBarShift(NULL,0,afr[2])-1;

        bigshift = ArrayBsearch(daytimes,Time[limit],WHOLE_ARRAY,0,MODE_DESCEND); // Time - â äàííîì ñëó÷àå äëÿ ðàáî÷åãî òàéìôðåéìà

        Fr0=iCustom(NULL,GrossPeriod,"ZigZag",minBars,ExtDeviation,ExtBackstep,0,bigshift+1);

        if ((afrl[2]>0 && afrl[2]==Fr0) || (afrh[2]>0 && afrh[2]==Fr0))
          {
           if (afrl[2]>0 && afrl[2]==Fr0) hi_DT=false; else hi_DT=true;
           for (i=0;i<limit;i++)
            {
             DT_ZigZag[i]=0;
             if(Time[i]>=daytimes[0])
               {
                bigshift=0;
                DT_ZigZag[i]=iCustom(NULL,GrossPeriod,"ZigZag",minBars,ExtDeviation,ExtBackstep,0,bigshift);
               }
             else
               {
                bigshift = ArrayBsearch(daytimes,Time[i-1],WHOLE_ARRAY,0,MODE_DESCEND);
                DT_ZigZag[i]=iCustom(NULL,GrossPeriod,"ZigZag",minBars,ExtDeviation,ExtBackstep,0,bigshift+1);
               }
            }
          }

        for (i=limit+1;i>=0;i--)
          {
           if (i<=limit) {zz[i]=0; zzH[i]=0; zzL[i]=0;}
           if (DT_ZigZag[i]>0)
             {
              if (hi_DT)
                {
                 if (DT_ZigZag[i]==High[i])
                   {
                    hi_DT=false;zz[i]=High[i];zzH[i]=High[i];
                   }
                }
              else
                {
                 if (DT_ZigZag[i]==Low[i])
                   {
                    hi_DT=true;zz[i]=Low[i];zzL[i]=Low[i];
                   }
                }
             }
          }

       }
     }
 }
//--------------------------------------------------------
// DT-ZigZag. Êîíåö. 
//--------------------------------------------------------



//--------------------------------------------------------
// Èíäèêàòîð i-vts . Íà÷àëî. 
//--------------------------------------------------------
//+------------------------------------------------------------------+
//|                                                        i-VTS.mq4 |
//|                                                    Òàõèð & KimIV |
//|                                              http://www.kimiv.ru |
//|                                                                  |
//|  06.12.2005  Èíäèêàòîð VTS                                       |
//+------------------------------------------------------------------+
//
// Ýòîò èíäèêàòîð Èãîðü Êèì ïåðåâåë ñ MQL íà MQ4
//
void i_vts() //
  {
   int    LoopBegin, sh;

 	if (NumberOfBars==0) LoopBegin=Bars-1;
   else LoopBegin=NumberOfBars-1;
   LoopBegin=MathMin(Bars-25, LoopBegin);

   for (sh=LoopBegin; sh>=0; sh--)
     {
      GetValueVTS("", 0, NumberOfVTS, sh);
      ha[sh]=ms[0];
      la[sh]=ms[1];
     }
  }

void i_vts1() //
  {
   int    LoopBegin, sh;

 	if (NumberOfBars==0) LoopBegin=Bars-1;
   else LoopBegin=NumberOfBars-1;
   LoopBegin=MathMin(Bars-25, LoopBegin);

   for (sh=LoopBegin; sh>=0; sh--)
     {
      GetValueVTS("", 0, NumberOfVTS1, sh);
      ham[sh]=ms[0];
      lam[sh]=ms[1];
     }
  }
//+------------------------------------------------------------------+
//------- Ïîêëþ÷åíèå âíåøíèõ ìîäóëåé ---------------------------------
//+------------------------------------------------------------------+
//| Ïàðàìåòðû:                                                       |
//|   sym - íàèìåíîâàíèå èíñòðóìåíòà                                 |
//|   tf  - òàéìôðåéì (êîëè÷åñòâî ìèíóò)                             |
//|   ng  - íîìåð ãðóïïû                                             |
//|   nb  - íîìåð áàðà                                               |
//|   ms  - ìàññèâ ñèãíàëîâ                                          |
//+------------------------------------------------------------------+
void GetValueVTS(string sym, int tf, int ng, int nb)
  {
   if (sym=="") sym=Symbol();
   double f1, f2, s1, s2;

   f1=iClose(sym, tf, nb)-3*iATR(sym, tf, 10, nb);
   f2=iClose(sym, tf, nb)+3*iATR(sym, tf, 10, nb);
   for (int i=1; i<=ng; i++)
     {
      s1=iClose(sym, tf, nb+i)-3*iATR(sym, tf, 10, nb+i);
      s2=iClose(sym, tf, nb+i)+3*iATR(sym, tf, 10, nb+i);
      if (f1<s1) f1=s1;
      if (f2>s2) f2=s2;
     }
    ms[0]=f2;   // âåðõíÿÿ ëèíèÿ
    ms[1]=f1;   // íèæíÿÿ ëèíèÿ
  }
//+------------------------------------------------------------------+
//--------------------------------------------------------
// Èíäèêàòîð i-vts . Êîíåö. 
//--------------------------------------------------------

//--------------------------------------------------------
// Ïàðàìåòðû ðàçíûõ òàéìôðåéìîâ. Íà÷àëî. 
//--------------------------------------------------------
void info_TF ()
  {
   string info, txt;
   int i,pips;

   openTF[0]=iOpen(NULL,PERIOD_MN1,0);
   closeTF[0]=iClose(NULL,PERIOD_MN1,0);
   lowTF[0]=iLow(NULL,PERIOD_MN1,0);
   highTF[0]=iHigh(NULL,PERIOD_MN1,0);
   
   openTF[1]=iOpen(NULL,PERIOD_W1,0);
   closeTF[1]=iClose(NULL,PERIOD_W1,0);
   lowTF[1]=iLow(NULL,PERIOD_W1,0);
   highTF[1]=iHigh(NULL,PERIOD_W1,0);
   
   openTF[2]=iOpen(NULL,PERIOD_D1,0);
   closeTF[2]=iClose(NULL,PERIOD_D1,0);
   lowTF[2]=iLow(NULL,PERIOD_D1,0);
   highTF[2]=iHigh(NULL,PERIOD_D1,0);
   
   openTF[3]=iOpen(NULL,PERIOD_H4,0);
   closeTF[3]=iClose(NULL,PERIOD_H4,0);
   lowTF[3]=iLow(NULL,PERIOD_H4,0);
   highTF[3]=iHigh(NULL,PERIOD_H4,0);
   
   openTF[4]=iOpen(NULL,PERIOD_H1,0);
   closeTF[4]=iClose(NULL,PERIOD_H1,0);
   lowTF[4]=iLow(NULL,PERIOD_H1,0);
   highTF[4]=iHigh(NULL,PERIOD_H1,0);
   
   info="|  ";

   for (i=0;i<5;i++)
     {
      pips=(highTF[i]-lowTF[i])/Point;
      if (pips>0)
        {
         if (openTF[i]>closeTF[i]) {txt=" < ";}
         else if (openTF[i]==closeTF[i]) {txt=" = ";}
         else if (openTF[i]<closeTF[i]) {txt=" > ";}
         info=info + TF[i] + txt + DoubleToStr(pips,0) + "   " +  DoubleToStr((closeTF[i]-lowTF[i])/(pips*Point),3) + " |  ";
        }
     }
   Comment(info);
   close_TF=Close[0];
  }
//--------------------------------------------------------
// Ïàðàìåòðû ðàçíûõ òàéìôðåéìîâ. Êîíåö. 
//--------------------------------------------------------

Comments