← К каталогу
Исходный код · ID 1432

ZUP

zup_v63.mq5
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

ZUP — это пользовательский индикатор для MetaTrader 5, предназначенный для нанесения на график аналитических построений на основе выбранного варианта ZigZag. Индикатор рассчитывает и отображает линии и объекты, связанные с уровнями Фибоначчи, веерами, расширениями, дугами, каналами, а также паттернами Pesavento и Gartley. Работает в окне графика и не предназначен для автоматической торговли.

В настройках можно выбрать тип ZigZag, задать параметры его расчёта, включить или отключить отдельные группы построений, настроить цвета, стили и количество отображаемых элементов. Индикатор поддерживает динамические и статические построения, а также дополнительные элементы, такие как Pivot Zone, линии UTL/LTL/UWL/LWL, ISL, RLine и Fibo Time.

Индикатор может выводить информационную строку с данными по таймфреймам и уровням, а также отправлять уведомления по электронной почте при появлении паттерна. Все построения выполняются на основе данных графика и выбранных параметров; индикатор не даёт торговых рекомендаций и не гарантирует прибыль.

Настройки программы

НастройкаОписание
Var0___________________________ Заголовок группы параметров для ZigZag.
ExtIndicator Выбор типа ZigZag для расчёта (0–12).
minBars Минимальное количество баров для расчёта ZigZag.
minSize Минимальный размер в пунктах для расчёта ZigZag.
ExtDeviation Параметр Deviation для расчёта ZigZag.
ExtBackstep Параметр Backstep для расчёта ZigZag.
GrossPeriod Старший таймфрейм для расчёта ZigZag и DT-ZigZag.
minPercent Минимальный процент для расчёта ZigZag при minSize=0.
?????????? ????? ??????? ??? ??????? Talex (ExtPoint) Параметр для расчёта ZigZag Talex.
ExtStyleZZ Стиль отображения ZigZag: true — линии, false — стрелки.
Var1___________________________ Заголовок группы параметров для уровней Фибоначчи.
ExtFiboDinamic Включение отображения динамических уровней Фибоначчи.
ExtFiboStatic Включение отображения статических уровней Фибоначчи.
ExtFiboStaticNum Количество баров ZigZag для построения статических уровней Фибоначчи.
ExtFiboD Цвет линий динамических уровней Фибоначчи.
ExtFiboS Цвет линий статических уровней Фибоначчи.
ExtFiboCorrectionExpansion Переключение между режимами коррекции и расширения для уровней Фибоначчи.
Var2___________________________ Заголовок группы параметров для паттернов Pesavento.
ExtPPWithBars Режим отображения количества баров в паттернах Pesavento (0–7).
ExtHidden Режим отображения паттернов Pesavento (0–5).
ExtFractal Количество фракталов для поиска паттернов Pesavento.
ExtFractalEnd Количество фракталов от конца графика для поиска паттернов Pesavento.
ExtFiboChoice Выбор набора уровней для поиска паттернов Pesavento (0–11).
ExtFiboZigZag Включение режима ZigZag Fibonacci.
ExtDelta Допустимое отклонение при поиске уровней Фибоначчи.
ExtDeltaType Способ расчёта отклонения при поиске уровней Фибоначчи (0–3).
ExtSizeTxt Размер шрифта для текстовых подписей.
ExtLine Цвет линий для отображения паттернов Pesavento.
ExtLine886 Цвет линий для уровней .886 в паттернах Pesavento.
ExtNotFibo Цвет линий для уровней, не относящихся к Фибоначчи.
ExtPesavento Цвет линий для уровней Pesavento.
ExtGartley886 Цвет линий для уровней .886 в паттернах Gartley.
Var3___________________________ Заголовок группы параметров для паттернов Gartley.
maxDepth Максимальная глубина поиска для паттернов Gartley.
minDepth Минимальная глубина поиска для паттернов Gartley.
DirectionOfSearchMaxMin Определяет направление перебора значений глубины поиска: от минимального к максимальному или наоборот.
ExtGartleyOnOff Включение поиска и отображения паттернов Gartley.
maxBarToD Максимальное количество баров от начала поиска до точки D паттерна Gartley.
RangeForPointD Включение отображения области возможного расположения точки D паттерна Gartley.
ExtColorRangeForPointD Цвет области возможного расположения точки D паттерна Gartley.
ExtDeltaGartley Допустимое отклонение при поиске паттернов Gartley.
ExtColorPatterns Цвет линий для отображения паттернов Gartley.
ExtCD Пороговое значение для проверки соотношения отрезков CD и BC при поиске паттернов Gartley.
Var4___________________________ Заголовок группы параметров для вилки Эндрюса.
ExtPitchforkDinamic Вариант построения динамической вилки Эндрюса (0–4).
ExtPitchforkStatic Вариант построения статической вилки Эндрюса (0–4).
ExtPitchforkStaticNum Количество баров ZigZag для построения статической вилки Эндрюса.
ExtLinePitchforkD Цвет линий динамической вилки Эндрюса.
ExtLinePitchforkS Цвет линий статической вилки Эндрюса.
ExtPitchforkStaticColor Цвет линий канала статической вилки Эндрюса.
ExtPitchforkStyle Стиль линий вилки Эндрюса (0–10).
????? ?????????? ?????????????? (ExtFiboFanDinamic) Включение отображения динамического веера Фибоначчи.
????????? ?????? ????????? ?? ???????????? ?????? (ExtFiboFanStatic) Включение отображения статического веера Фибоначчи.
ExtFiboFanExp Выбор набора уровней для веера Фибоначчи: true — 6 уровней, false — 4 уровня.
ExtFiboFanHidden Управление отображением подписей уровней веера Фибоначчи.
ExtFiboFanD Цвет линий динамического веера Фибоначчи.
ExtFiboFanS Цвет линий статического веера Фибоначчи.
ExtFiboFanMedianaDinamicColor Цвет медианы динамического веера Фибоначчи.
ExtFiboFanMedianaStaticColor Цвет медианы статического веера Фибоначчи.
ExtFiboTime1 Включение отображения первого веера времени Фибоначчи.
ExtFiboTime2 Включение отображения второго веера времени Фибоначчи.
ExtFiboTime1C Цвет линий первого веера времени Фибоначчи.
ExtFiboTime2C Цвет линий второго веера времени Фибоначчи.
ExtPivotZoneDinamicColor Цвет области Pivot Zone для динамической вилки.
ExtPivotZoneStaticColor Цвет области Pivot Zone для статической вилки.
ExtPivotZoneFramework Отображение Pivot Zone в виде рамки.
ExtUTL Включение отображения верхней линии тренда (UTL).
ExtLTL Включение отображения нижней линии тренда (LTL).
ExtUWL Включение отображения верхней линии предупреждения (UWL).
ExtLWL Включение отображения нижней линии предупреждения (LWL).
ExtISLDinamic Включение отображения динамических линий ISL.
ExtISLStatic Включение отображения статических линий ISL.
ExtRLine Включение отображения линий RLine.
ExtRLineBase Отображение базовой линии RLine.
ExtPitchforkCandle Включение построения вилки Эндрюса по заданным датам и ценам.
ExtDateTimePitchfork_1 Дата и время первой точки для статической вилки Эндрюса.
ExtDateTimePitchfork_2 Дата и время второй точки для статической вилки Эндрюса.
ExtDateTimePitchfork_3 Дата и время третьей точки для статической вилки Эндрюса.
ExtPitchfork_1_HighLow Выбор использования максимумов или минимумов для точек вилки по датам.
Var5___________________________ Заголовок группы параметров для каналов micmed.
ExtCM_0_1A_2B Выбор варианта построения каналов micmed (от 0 до 4).
ExtCM_Fibo Уровень Фибоначчи для построения каналов micmed.
Var6___________________________ Заголовок группы параметров для веера Фибоначчи.
ExtFiboFanColor Цвет линий веера Фибоначчи.
ExtFiboFanNum Количество баров ZigZag для построения веера Фибоначчи.
Var7___________________________ Заголовок группы параметров для расширения Фибоначчи.
ExtFiboExpansion Количество баров ZigZag для построения расширения Фибоначчи.
ExtFiboExpansionColor Цвет линий расширения Фибоначчи.
Var8___________________________ Заголовок группы параметров для Versum Levels.
ExtVLDinamicColor Цвет динамических уровней Versum Levels.
ExtVLStaticColor Цвет статических уровней Versum Levels.
ExtVLStaticNum Количество баров ZigZag для построения статических Versum Levels.
Var9___________________________ Заголовок группы параметров для дуг Фибоначчи.
ExtArcDinamicNum Количество баров ZigZag для построения динамических дуг Фибоначчи.
ExtArcStaticNum Количество баров ZigZag для построения статических дуг Фибоначчи.
ExtArcDinamicColor Цвет линий динамических дуг Фибоначчи.
ExtArcStaticColor Цвет линий статических дуг Фибоначчи.
ExtArcDinamicScale Масштаб динамических дуг Фибоначчи; 0 — автоматический подбор.
ExtArcStaticScale Масштаб статических дуг Фибоначчи; 0 — автоматический подбор.
Var10__________________________ Заголовок группы параметров Exp.
Получить полный код

Поиск по коду файла

#property stacksize 16384
#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

extern string Var0___________________________ = "Parameters for ZigZag";
extern int    ExtIndicator  = 11;
extern int    minBars       = 8;
extern int    minSize       = 55;

extern int    ExtDeviation  = 5;
extern int    ExtBackstep   = 3;

extern int    GrossPeriod   = 1440;

extern double minPercent    = 0;
extern int    ExtPoint=11; // ?????????? ????? ??????? ??? ??????? Talex 
extern bool   ExtStyleZZ = true;

extern string Var1___________________________ = "Parameters for fibo Levels";
extern bool   ExtFiboDinamic   = false;
extern bool   ExtFiboStatic    = false;
extern int    ExtFiboStaticNum = 2;
extern color  ExtFiboD         = Sienna;
extern color  ExtFiboS         = Teal;
extern bool   ExtFiboCorrectionExpansion = false;

extern string Var2___________________________ = "Parameters for Pesavento Patterns";
extern int    ExtPPWithBars = 0;
extern int    ExtHidden     = 1;
extern int    ExtFractal    = 7;
extern int    ExtFractalEnd = 7;
extern int    ExtFiboChoice    = 2;
extern bool   ExtFiboZigZag = false;
extern double ExtDelta      = 0.04;
extern int    ExtDeltaType  = 2;
extern int    ExtSizeTxt       = 7;
extern color  ExtLine          = DarkBlue;
extern color  ExtLine886       = Purple;
extern color  ExtNotFibo       = SlateGray;
extern color  ExtPesavento     = Yellow;
extern color  ExtGartley886    = GreenYellow;
       color  colorPPattern;

extern string Var3___________________________ = "Parameters for Gartley Patterns";
extern int    maxDepth                = 33;
extern int    minDepth                = 3;
extern bool   DirectionOfSearchMaxMin = true;
extern bool   ExtGartleyOnOff         = false;

extern int    maxBarToD               = 15;
extern bool   RangeForPointD          = true;
extern color  ExtColorRangeForPointD  = Red;
extern double ExtDeltaGartley         = 0.09;
extern color  ExtColorPatterns        = Blue;
extern double ExtCD                   = 0.886;

extern string Var4___________________________ = "Parameters for Andrews Pitchfork";
extern int    ExtPitchforkDinamic     = 0;
extern int    ExtPitchforkStatic      = 0;
extern int    ExtPitchforkStaticNum   = 3;
extern color  ExtLinePitchforkD       = MediumSlateBlue;
extern color  ExtLinePitchforkS       = MediumBlue;
extern color  ExtPitchforkStaticColor = CLR_NONE;
extern int    ExtPitchforkStyle       = 1;

extern bool   ExtFiboFanDinamic = false;  // ????? ?????????? ??????????????
extern bool   ExtFiboFanStatic  = false;  // ????????? ?????? ????????? ?? ???????????? ??????
extern bool   ExtFiboFanExp     = true;
extern bool   ExtFiboFanHidden  = false;
extern color  ExtFiboFanD       = Sienna;
extern color  ExtFiboFanS       = Teal;

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

extern bool   ExtFiboTime1      = false;
extern bool   ExtFiboTime2      = false;
extern color  ExtFiboTime1C     = Teal;
extern color  ExtFiboTime2C     = Sienna;

extern color  ExtPivotZoneDinamicColor = CLR_NONE;
extern color  ExtPivotZoneStaticColor = CLR_NONE;
extern bool   ExtPivotZoneFramework   = false;

extern bool   ExtUTL = false;
extern bool   ExtLTL = false;
extern bool   ExtUWL = false;
extern bool   ExtLWL = false;
extern bool   ExtISLDinamic = false;
extern bool   ExtISLStatic  = false;

extern bool   ExtRLine     = true;
extern bool   ExtRLineBase = true;

extern bool     ExtPitchforkCandle     = false;
extern datetime ExtDateTimePitchfork_1 = D'15.06.1989 00:00';
extern datetime ExtDateTimePitchfork_2 = D'08.03.1995 00:00';
extern datetime ExtDateTimePitchfork_3 = D'26.10.2000 00:00';
extern bool     ExtPitchfork_1_HighLow = false;

extern string Var5___________________________ = "Parameters for micmed Channels";
extern int    ExtCM_0_1A_2B = 0;
extern double ExtCM_Fibo    = 0.618;

extern string Var6___________________________ = "Parameters for fibo Fan";
extern color  ExtFiboFanColor = CLR_NONE;
extern int    ExtFiboFanNum = 0;

extern string Var7___________________________ = "Parameters for fibo Expansion";
extern int    ExtFiboExpansion = 0;
extern color  ExtFiboExpansionColor = Yellow;

extern string Var8___________________________ = "Parameters for versum Levels";
extern color  ExtVLDinamicColor = CLR_NONE;
extern color  ExtVLStaticColor = CLR_NONE;
extern int    ExtVLStaticNum = 0;

extern string Var9___________________________ = "Parameters for fibo Arc";
extern int ExtArcDinamicNum     = 0;
extern int ExtArcStaticNum      = 0;
extern color ExtArcDinamicColor = Sienna;
extern color ExtArcStaticColor  = Teal;
extern double ExtArcDinamicScale= 0;
extern double ExtArcStaticScale = 0;

extern string Var10__________________________ = "Parameters Exp";
extern bool   chHL = false;
extern bool   PeakDet = false;

extern bool   chHL_PeakDet_or_vts = true;
extern int    NumberOfBars = 1000;     // ?????????? ????? ??????? (0-???)
extern int    NumberOfVTS  = 13;
extern int    NumberOfVTS1 = 1;
extern string Var11__________________________ = "Common Parameters";

extern bool   ExtFiboType      = true;
extern color  ExtObjectColor   = CLR_NONE;
extern int    ExtObjectStyle   = 1;
extern int    ExtObjectWidth   = 0; 
extern bool   ZigZagHighLow    = true;

extern bool   ExtSendMail = false;
extern bool   ExtAlert = false;

extern bool   ExtBack = true;

extern bool   ExtSave = false;
extern bool   infoTF = false;
extern int    ExtComplekt=0;

double zz[];

double zzL[];

double zzH[];

double nen_ZigZag[];

color ExtLine_;

int minBarsSave, minBarsX;

double number[64];
string numbertxt[64];
int    numberFibo[64];
int    numberPesavento[64];
int    numberGartley[64];
int    numberMix[64];
int    numberGilmorQuality[64];
int    numberGilmorGeometric[64];
int    numberGilmorHarmonic[64];
int    numberGilmorArithmetic[64];
int    numberGilmorGoldenMean[64];
int    numberSquare[64];
int    numberCube[64];
int    numberRectangle[64];
int    numberExt[64];

string nameObj,nameObjtxt,save;

bool descript_b=false;

string PPWithBars, descript;

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}, afrx[]={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","m30","m15","m5","m1"};
string Period_tf;
bool afrm=true;
double ExtHL;
double HL,HLp,kk,kj,Angle;

double LowPrim,HighPrim,LowLast,HighLast;

int numLowPrim,numHighPrim,numLowLast,numHighLast,k,k1,k2,ki,kiPRZ=0,countLow1,countHigh1,shift,shift1;
string txtkk;

int timeFr1new;

int countFr;

int countBarEnd=0,TimeBarEnd;

int numBar=0;

int numOb;

bool flagFrNew=false;

bool flagGartle=false;

int perTF;
bool Demo;

double int_to_d=0, int_to_d1=0, int_to_d2=0;

int counted_bars, cbi, iBar;

double ASBar;

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;

bool fh=false,fl=false,fcount0;

double lLast_m=0, hLast_m=0;
int countBarExt; // ??????? ??????? ?????
int countBarl,countBarh;

bool hi_nen;
bool init_zz=true;

int mFibo[]={0,0}, mPitch[]={0,0,0}, mFan[]={0,0}, mExpansion[]={0,0,0}, mVL[]={0,0,0}, mArcS[]={0,0}, mArcD[]={0,0};

datetime mPitchTime[]={0,0,0};
int mPitchTimeSave;
double mPitchCena[]={0.0,0.0,0.0};

double ms[2];

string   vBullBear    = ""; // ?????????? ??? ??????????? ????? ??? ???????? ???????
string   vNamePattern = ""; // ?????????? ??? ??????????? ???????????? ????????
int maxPeak, vPatOnOff, vPatNew=0;
double hBar, lBar;
datetime tiZZ; 
bool     FlagForD  = true;  // ?????????? ?? ????? ??????? ??????????? ????? D ???????? (Gartley)
datetime TimeForDmin  = 0;
datetime TimeForDmax  = 0;
double   LevelForDmin = 0;
double   LevelForDmax = 0;

static int    endbar = 0;
static double endpr  = 0;

int init()
  {
      // код доступен только после оплаты
   }

int deinit()
  {
   int i;
   delete_objects_dinamic();
   delete_objects3();

   ObjectDelete("fiboS" + ExtComplekt+"_");
   ObjectDelete("fiboFanS" + ExtComplekt+"_");
   ObjectDelete("RLineS" + ExtComplekt+"_");
   ObjectDelete("pitchforkS" + ExtComplekt+"_");
   ObjectDelete("pmedianaS" + ExtComplekt+"_");
   ObjectDelete("1-2pmedianaS" + ExtComplekt+"_");
   ObjectDelete("fiboTime1" + ExtComplekt+"_");ObjectDelete("fiboTime2" + ExtComplekt+"_");
   ObjectDelete("UTL" + ExtComplekt+"_");ObjectDelete("LTL" + ExtComplekt+"_");
   ObjectDelete("UWL" + ExtComplekt+"_");ObjectDelete("LWL" + ExtComplekt+"_");
   ObjectDelete("ISL_S" + ExtComplekt+"_");
   ObjectDelete("CL" + ExtComplekt+"_");
   ObjectDelete("PivotZoneS" + ExtComplekt+"_");
   ObjectDelete("FanMedianaStatic" + ExtComplekt+"_");
   ObjectDelete("FiboFan" + ExtComplekt+"_");
   ObjectDelete("FiboArcS" + ExtComplekt+"_");

   Comment("");

   for (i=0; i<7; i++)
     {
      nameObj="VLS"+i+" " + ExtComplekt+"_";
      ObjectDelete(nameObj);
     }
   return(0);
  }

int start()
  {
      // код доступен только после оплаты
   } // start

void countFractal()
  {
   int shift;
   countLow1=0;
   countHigh1=0;
   if (flagFrNew && !flagGartle)
     {
      for(shift=0; shift<=numBar; shift++)
        {
         if (zzL[shift]>0.0) {countLow1++;}
         if (zzH[shift]>0.0) {countHigh1++;}    
        }

      numBar=0;  
      counted_bars=Bars-4;
     }
   else
     {
      if (flagGartle)  {counted_bars=0;}
      for(shift=0; shift<=countBarEnd; shift++)
        {
         if (zzL[shift]>0.0) {countLow1++;}
         if (zzH[shift]>0.0) {countHigh1++;}
        }
     }
  }

void matriza()
  {
   if (afrm)
     {
      afrm=false;
      int shift,k;

      k=0;
      for (shift=0; shift<Bars && k<10; shift++)
        {
         if (zz[shift]>0)
           {
            afrx[k]=zz[shift];
            afr[k]=Time[shift];
            if (zz[shift]==zzL[shift])
              {
               if (ZigZagHighLow) afrl[k]=Low[shift]; 
               else
                 {
                  if (k==0) afrl[k]=Low[shift]; else  afrl[k]=zzL[shift];
                 }
               afrh[k]=0.0;
              }
            if (zz[shift]==zzH[shift])
              {
               if (ZigZagHighLow) afrh[k]=High[shift]; 
               else
                 {
                  if (k==0) afrh[k]=High[shift]; else afrh[k]=zzH[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 (ExtFiboFanNum>0 && ExtFiboFanColor>0)
        {
         if (mFan[1]>0) {screenFiboFan(); ExtFiboFanNum=0;}
         if (mFan[1]==0) screenFiboFan();
        }
      if (ExtFiboFanDinamic) screenFiboFanD();

      if (ExtVLStaticColor>0)
        {
         if (mVL[2]>0) {ExtVLStaticNum=0; VLS();}
         if (mVL[2]==0) VLS();
        }
      if (ExtVLDinamicColor>0) {VLD();}

      if (ExtArcDinamicNum>0) screenFiboArcD();
      if (ExtArcStaticNum>0) {screenFiboArcS(); ExtArcStaticNum=0;}

      if (ExtGartleyOnOff)
        {
         switch (ExtIndicator)
           {
            case 0     : {_Gartley("ExtIndicator=0_" + minBars+"/"+ExtDeviation+"/"+ExtBackstep);break;}
            case 1     : {_Gartley("ExtIndicator=1_" + minSize+"/"+minPercent);break;}
            case 2     : {_Gartley("ExtIndicator=2_" + minBars+"/"+minSize);break;}
            case 3     : {_Gartley("ExtIndicator=3_" + minBars);break;}
            case 4     : {_Gartley("ExtIndicator=4_" + minSize);break;}
            case 5     : {_Gartley("ExtIndicator=5_" + minBars);break;}
            case 6     : {_Gartley("ExtIndicator=6_" + minBars+"/"+ExtDeviation+"/"+ExtBackstep);break;}
            case 7     : {_Gartley("ExtIndicator=7_" + minBars);break;}
            case 8     : {_Gartley("ExtIndicator=8_" + minBars+"/"+ExtDeviation);break;}
            case 10    : {_Gartley("ExtIndicator=10_" + minBars);break;}
            case 12    : {_Gartley("ExtIndicator=12_" + minBars);break;}
           }
         if (vPatOnOff==1 && vPatNew==0)
           {
            vPatNew=1;
            if (ExtSendMail) _SendMail("There was a pattern","on  " + Symbol() + " " + Period() + " pattern " + vBullBear + " " + vNamePattern);
           }
         else if (vPatOnOff==0 && vPatNew==1) {vPatNew=0; FlagForD=true;}
        }

      ExtSave=false;
     }
  }

void VLS()
  {
   VL(mVL[0],mVL[1],mVL[2],ExtVLStaticColor,"VLS");
  }

void VLD()
  {
   VL(2,1,0,ExtVLDinamicColor,"VLD");
  }

void VL(int na,int nb,int nc,color color_line,string vl)
  {
   double line_pesavento[7]={0.236, 0.382, 0.447, 0.5, 0.618, 0.786, 0.886}, line_fibo[7]={0.236, 0.382, 0.455, 0.5, 0.545, 0.618, 0.764};
   int c_bar1, c_bar2, i;
   double H_L, mediana, tangens, cena;

   c_bar1=iBarShift(Symbol(),Period(),afr[na])-iBarShift(Symbol(),Period(),afr[nb]); // ?????????? ??? ? ??????? AB
   c_bar2=iBarShift(Symbol(),Period(),afr[nb])-iBarShift(Symbol(),Period(),afr[nc]); // ?????????? ??? ? ??????? ??
   if (afrl[na]>0)
    {
     H_L=afrh[nb]-afrl[nc]; // ?????? ??????? ??

     for (i=0; i<7; i++)
       {
        if (ExtFiboType)
          {
           mediana=line_pesavento[i]*H_L+afrl[nc];
           tangens=(mediana-afrl[na])/(c_bar1+(1-line_pesavento[i])*c_bar2);
           cena=c_bar2*line_pesavento[i]*tangens+mediana;
           nameObj=vl+i+" " + ExtComplekt+"_";
           ObjectDelete(nameObj);
           ObjectCreate(nameObj,OBJ_TREND,0,afr[na],afrl[na],afr[nc],cena);
           ObjectSetText(nameObj,"ZUP"+ExtComplekt+" zz"+ExtIndicator+" "+vl+" "+DoubleToStr(line_pesavento[i]*100,1)+"");
           ObjectSet(nameObj,OBJPROP_COLOR,color_line);
          }
        else
          {
           mediana=line_fibo[i]*H_L+afrl[nc];
           tangens=(mediana-afrl[na])/(c_bar1+(1-line_fibo[i])*c_bar2);
           cena=c_bar2*line_fibo[i]*tangens+mediana;
           nameObj=vl+i+" " + ExtComplekt+"_";
           ObjectDelete(nameObj);
           ObjectCreate(nameObj,OBJ_TREND,0,afr[na],afrl[na],afr[nc],cena);
           ObjectSetText(nameObj,"ZUP"+ExtComplekt+" zz"+ExtIndicator+" "+vl+" "+DoubleToStr(line_fibo[i]*100,1)+"");
           ObjectSet(nameObj,OBJPROP_COLOR,color_line);
          }
       }
    }
   else
    {
     H_L=afrh[nc]-afrl[nb]; // ?????? ??????? ??

     for (i=0; i<7; i++)
       {
        if (ExtFiboType)
          {
           mediana=afrh[nc]-line_pesavento[i]*H_L;
           tangens=(afrh[na]-mediana)/(c_bar1+(1-line_pesavento[i])*c_bar2);
           cena=mediana-c_bar2*line_pesavento[i]*tangens;
           nameObj=vl+i+" " + ExtComplekt+"_";
           ObjectDelete(nameObj);
           ObjectCreate(nameObj,OBJ_TREND,0,afr[na],afrh[na],afr[nc],cena);
           ObjectSetText(nameObj,"ZUP"+ExtComplekt+" zz"+ExtIndicator+" "+vl+" "+DoubleToStr(line_pesavento[i]*100,1)+"");
           ObjectSet(nameObj,OBJPROP_COLOR,color_line);
          }
        else
          {
           mediana=afrh[nc]-line_fibo[i]*H_L;
           tangens=(afrh[na]-mediana)/(c_bar1+(1-line_fibo[i])*c_bar2);
           cena=mediana-c_bar2*line_fibo[i]*tangens;
           nameObj=vl+i+" " + ExtComplekt+"_";
           ObjectDelete(nameObj);
           ObjectCreate(nameObj,OBJ_TREND,0,afr[na],afrh[na],afr[nc],cena);
           ObjectSetText(nameObj,"ZUP"+ExtComplekt+" zz"+ExtIndicator+" "+vl+" "+DoubleToStr(line_fibo[i]*100,1)+"");
           ObjectSet(nameObj,OBJPROP_COLOR,color_line);
          }
       }
    }
  }

void screenPitchforkS()
  {
   int k1,n,nbase1,nbase2;
   double a1,b1,c1,ab1,bc1,ab2,bc2,tangens,n1,cl1,ch1,cena;
   datetime ta1,tb1,tc1,tab2,tbc2,tcl1,tch1;
   bool fo1=false,fo2=false;
   datetime  pitch_time[]={0,0,0}; 
   double pitch_cena[]={0,0,0};
   double TLine, m618=0.618, m382=0.382;
   int mirror1, mirror2;

   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 (ExtPitchforkCandle)
     {
      cena=mPitchCena[0];
      if (ExtPitchfork_1_HighLow)
        {
         if (ExtCM_0_1A_2B==1)
           {
            cena=mPitchCena[0]-(mPitchCena[0]-mPitchCena[1])*ExtCM_Fibo;
           }
         else if (ExtCM_0_1A_2B==4)
           {
            mPitchTimeSave=mPitchTime[0];
            mPitchTime[0]=mPitchTime[1];
            if (maxGipotenuza(mPitchTime,mPitchCena))
              {
               cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*m618;
              }
            else
              {
               cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*m382;
              }
           }
         else if (ExtCM_0_1A_2B>1)
           {
            if (ExtCM_0_1A_2B==2) mPitchTime[0]=mPitchTime[1];
            cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*ExtCM_Fibo;
           }
        }
      else
        {
         if (ExtCM_0_1A_2B==1)
           {
            cena=mPitchCena[0]+(mPitchCena[1]-mPitchCena[0])*ExtCM_Fibo;
           }
         else if (ExtCM_0_1A_2B==4)
           {
            mPitchTimeSave=mPitchTime[0];
            mPitchTime[0]=mPitchTime[1];

            if (maxGipotenuza(mPitchTime,mPitchCena))
              {
               cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*m618;
              }
            else
              {
               cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*m382;
              }
           }
         else if (ExtCM_0_1A_2B>1)
           {
            if (ExtCM_0_1A_2B==2) mPitchTime[0]=mPitchTime[1];
            cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*ExtCM_Fibo;
           }
        }
     }
   else
     {
      mPitchTime[0]=afr[mPitch[0]]; mPitchTime[1]=afr[mPitch[1]]; mPitchTime[2]=afr[mPitch[2]];

      if (afrl[mPitch[0]]>0)
        {
         cena=afrl[mPitch[0]]; 
         mPitchCena[0]=afrl[mPitch[0]]; mPitchCena[1]=afrh[mPitch[1]]; mPitchCena[2]=afrl[mPitch[2]];
         if (ExtCM_0_1A_2B==1)
           {
            cena=mPitchCena[0]+(mPitchCena[1]-mPitchCena[0])*ExtCM_Fibo;
           }
         else if (ExtCM_0_1A_2B==4)
           {
            mPitchTimeSave=mPitchTime[0];
            mPitchTime[0]=mPitchTime[1];
            if (maxGipotenuza(mPitchTime,mPitchCena))
              {
               cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*m618;
              }
            else
              {
               cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*m382;
              }
           }
         else if (ExtCM_0_1A_2B>1)
           {
            if (ExtCM_0_1A_2B==2) mPitchTime[0]=mPitchTime[1];
            cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*ExtCM_Fibo;
           }
        }
      else
        {
         cena=afrh[mPitch[0]];
         mPitchCena[0]=afrh[mPitch[0]]; mPitchCena[1]=afrl[mPitch[1]]; mPitchCena[2]=afrh[mPitch[2]];
         if (ExtCM_0_1A_2B==1)
           {
            cena=mPitchCena[0]-(mPitchCena[0]-mPitchCena[1])*ExtCM_Fibo;
           }
         else if (ExtCM_0_1A_2B==4)
           {
            mPitchTimeSave=mPitchTime[0];
            mPitchTime[0]=mPitchTime[1];
            if (maxGipotenuza(mPitchTime,mPitchCena))
              {
               cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*m618;
              }
            else
              {
               cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*m382;
              }
           }
         else if (ExtCM_0_1A_2B>1)
           {
            if (ExtCM_0_1A_2B==2) mPitchTime[0]=mPitchTime[1];
            cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*ExtCM_Fibo;
           }
        }
     }

   mPitchCena[0]=cena;

   if (ExtFiboFanStatic) {ExtFiboFanStatic=false; screenFiboFanS();}

   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;
           }
        }
     }

   coordinaty_1_2_mediany_AP(mPitchCena[0], mPitchCena[1], mPitchCena[2], mPitchTime[0], mPitchTime[1], mPitchTime[2], tab2, tbc2, ab1, bc1);

   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 (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];

   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)
     {
      coordinaty_mediany_AP(pitch_cena[0], pitch_cena[1], pitch_cena[2], pitch_time[0], pitch_time[1], pitch_time[2], tb1, b1);      
/*
      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);

      ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
      ObjectCreate(nameObj,OBJ_FIBOFAN,0,pitch_time[0],pitch_cena[0],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 (ExtPivotZoneStaticColor>0 && ExtPitchforkStatic<4) PivotZone(pitch_time, pitch_cena, ExtPivotZoneStaticColor, "PivotZoneS");

   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 (ExtISLStatic)
     {
      n1=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),pitch_time[1])+iBarShift(Symbol(),Period(),pitch_time[2]))/2.0;
      ta1=pitch_time[1];
      a1=pitch_cena[1];
      tangens=(pitch_cena[0]-(pitch_cena[1]+pitch_cena[2])/2.0)/n1;

      ML_RL400(tangens, pitch_cena, pitch_time, tb1, b1, true);

      tc1=pitch_time[2];
      c1=pitch_cena[2];

      nameObj="ISL_S" + 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);
         ObjectSet(nameObj,OBJPROP_LEVELSTYLE,ExtPitchforkStyle);
         ObjectSet(nameObj,OBJPROP_RAY,false);
         ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
         ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
         ObjectSet(nameObj,OBJPROP_FIBOLEVELS,6);

         if (ExtFiboType)
           {
            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,-0.886);
            ObjectSetFiboDescription(nameObj, 0, "   I S L 88.6"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,-0.786);
            ObjectSetFiboDescription(nameObj, 1, "    I S L 78.6"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,-0.618);
            ObjectSetFiboDescription(nameObj, 2, "    I S L 61.8"); 
           }
         else
           {
            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,-0.854);
            ObjectSetFiboDescription(nameObj, 0, "   I S L 85.4"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,-0.764);
            ObjectSetFiboDescription(nameObj, 1, "    I S L 76.4"); 

            ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,-0.618);
            ObjectSetFiboDescription(nameObj, 2, "    I S L 61.8"); 
           }

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,-0.382);
         ObjectSetFiboDescription(nameObj, 3, "    I S L 38.2"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,-0.236);
         ObjectSetFiboDescription(nameObj, 4, "    I S L 23.6"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,-0.146);
         ObjectSetFiboDescription(nameObj, 5, "    I S L 14.6"); 
     }

   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=Time[0];
      a1=pitch_cena[0];
      tangens=(pitch_cena[0]-(pitch_cena[1]+pitch_cena[2])/2.0)/n1;
      b1=pitch_cena[0]-tangens*iBarShift(Symbol(),Period(),pitch_time[0]);

      ML_RL400(tangens, pitch_cena, pitch_time, tb1, b1, false);

      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 (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_RAY,false);
         ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
         ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
         ObjectSet(nameObj,OBJPROP_FIBOLEVELS,12);

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.146);
         ObjectSetFiboDescription(nameObj, 0, "U W L 14.6"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.236);
         ObjectSetFiboDescription(nameObj, 1, "U W L 23.6"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.382);
         ObjectSetFiboDescription(nameObj, 2, "U W L 38.2"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.5);
         ObjectSetFiboDescription(nameObj, 3, "U W L 50.0"); 

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

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.764);
         ObjectSetFiboDescription(nameObj, 5, "U W L 76.4"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,0.854);
         ObjectSetFiboDescription(nameObj, 6, "U W L 85.4"); 

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

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

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

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

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,4.0);
         ObjectSetFiboDescription(nameObj, 11, "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_RAY,false);
         ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
         ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
         ObjectSet(nameObj,OBJPROP_FIBOLEVELS,12);

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.146);
         ObjectSetFiboDescription(nameObj, 0, "L W L 14.6"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.236);
         ObjectSetFiboDescription(nameObj, 1, "L W L 23.6"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.382);
         ObjectSetFiboDescription(nameObj, 2, "L W L 38.2"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.5);
         ObjectSetFiboDescription(nameObj, 3, "L W L 50.0"); 

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

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.764);
         ObjectSetFiboDescription(nameObj, 5, "L W L 76.4"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,0.854);
         ObjectSetFiboDescription(nameObj, 6, "L W L 85.4"); 

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

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

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

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

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

     }

   if (ExtPitchforkStaticColor>0)
     {

      n1=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),pitch_time[1])+iBarShift(Symbol(),Period(),pitch_time[2]))/2.0;

      TLine=pitch_cena[1]-iBarShift(Symbol(),Period(),pitch_time[1])*(pitch_cena[0]-(pitch_cena[2]+pitch_cena[1])/2)/n1;

      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,pitch_time[1],pitch_cena[1],Time[0],TLine,pitch_time[2],pitch_cena[2]);
      ObjectSet(nameObj, OBJPROP_BACK, true);
      ObjectSet(nameObj, OBJPROP_COLOR, ExtPitchforkStaticColor); 
     }

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

      nbase1=iBarShift(Symbol(),Period(),mPitchTime[1]);
      nbase2=iBarShift(Symbol(),Period(),mPitchTime[2]);

      if (nbase1+n<=Bars)
        {
         mirror1=1;
         mirror2=0;

         ta1=Time[nbase1+n];
         tb1=Time[nbase2+n];
         tc1=mPitchTime[1];

         a1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[1];
         b1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[2];
         c1=mPitchCena[1];
        }
      else
        {
         mirror1=-1;
         mirror2=-1;

         ta1=mPitchTime[2];
         tb1=mPitchTime[1];
         tc1=Time[nbase2+n];

         a1=mPitchCena[2];
         b1=mPitchCena[1];
         c1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[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);
        }

      fiboRL(nameObj, mirror1, mirror2);
     }

      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,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],afrl[mPitch[1]]-5*Point);
              }
           }

         ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboTime1C);

         fiboTime (nameObj);
        }

      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,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);
              }
           }

         ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboTime2C);

         fiboTime (nameObj);
        }

  }

void fiboTime (string nameObj)
  {
   ObjectSet(nameObj,OBJPROP_COLOR,ExtObjectColor);

   ObjectSet(nameObj,OBJPROP_STYLE,ExtObjectStyle);
   ObjectSet(nameObj,OBJPROP_WIDTH,ExtObjectWidth);
   ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
   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.886);
      ObjectSetFiboDescription(nameObj, 7, "Ft .886"); 

      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,15);

      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.146);
      ObjectSetFiboDescription(nameObj, 2, "Ft .146"); 

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

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

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

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

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

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.854);
      ObjectSetFiboDescription(nameObj, 8, "Ft .854"); 

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

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.236);
      ObjectSetFiboDescription(nameObj, 10, "Ft 1.236"); 

      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.618);
      ObjectSetFiboDescription(nameObj, 13, "Ft 2.618"); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+14,5.0);
      ObjectSetFiboDescription(nameObj, 14, "Ft 4."); 
     }
  }

void screenPitchforkD()
  {
   int k1,n,nbase1,nbase2;
   double a1,b1,c1,ab1,bc1,ab2,bc2,d,n1,cena,m618=0.618,m382=0.382, tangens;
   datetime ta1,tb1,tc1,tab2,tbc2;
   bool fo1=false,fo2=false;
   datetime   pitch_time[]={0,0,0}; 
   double pitch_cena[]={0,0,0};
   int mirror1, mirror2;

   mPitchTime[0]=afr[2]; mPitchTime[1]=afr[1]; mPitchTime[2]=afr[0];
   mPitchCena[0]=afrx[2]; mPitchCena[1]=afrx[1]; mPitchCena[2]=afrx[0];

   cena=afrx[2]; 

   if (afrl[2]>0)
     {
      if (ExtCM_0_1A_2B==1)
        {
         cena=mPitchCena[0]+(mPitchCena[1]-mPitchCena[0])*ExtCM_Fibo;
        }
      else if (ExtCM_0_1A_2B==4)
        {
         mPitchTimeSave=mPitchTime[0];
         mPitchTime[0]=mPitchTime[1];
         if (maxGipotenuza(mPitchTime,mPitchCena))
           {
            cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*m618;
           }
         else
           {
            cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*m382;
           }
        }
      else if (ExtCM_0_1A_2B>1)
        {
         if (ExtCM_0_1A_2B==2) mPitchTime[0]=mPitchTime[1];
         cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*ExtCM_Fibo;
        }
     }
   else
     {
      if (ExtCM_0_1A_2B==1)
        {
         cena=mPitchCena[0]-(mPitchCena[0]-mPitchCena[1])*ExtCM_Fibo;
        }
      else if (ExtCM_0_1A_2B==4)
        {
         mPitchTimeSave=mPitchTime[0];
         mPitchTime[0]=mPitchTime[1];
         if (maxGipotenuza(mPitchTime,mPitchCena))
           {
            cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*m618;
           }
         else
           {
            cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*m382;
           }
        }
      else if (ExtCM_0_1A_2B>1)
        {
         if (ExtCM_0_1A_2B==2) mPitchTime[0]=mPitchTime[1];
         cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*ExtCM_Fibo;
        }
     }

   mPitchCena[0]=cena;

   coordinaty_1_2_mediany_AP(mPitchCena[0], mPitchCena[1], mPitchCena[2], mPitchTime[0], mPitchTime[1], mPitchTime[2], tab2, tbc2, ab1, bc1);

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

   nameObj="pmedianaD" + ExtComplekt+"_";
   ObjectDelete(nameObj);

   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="pitchforkD" + ExtComplekt+"_";
   ObjectDelete(nameObj);

   if (ExtPitchforkDinamic!=4)
     {
      pitch_time[0]=mPitchTime[0];pitch_cena[0]=mPitchCena[0];
      if (ExtPitchforkDinamic==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];

   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 (ExtPivotZoneDinamicColor>0 && ExtPitchforkDinamic<4) PivotZone(pitch_time, pitch_cena, ExtPivotZoneDinamicColor, "PivotZoneD");

   if (ExtFiboFanMedianaDinamicColor>0)
     {
      coordinaty_mediany_AP(pitch_cena[0], pitch_cena[1], pitch_cena[2], pitch_time[0], pitch_time[1], pitch_time[2], tb1, b1);      

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

      ObjectCreate(nameObj,OBJ_FIBOFAN,0,pitch_time[0],pitch_cena[0],tb1,b1);
      ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DASH);
      ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboFanMedianaDinamicColor);
      ObjectSet(nameObj,OBJPROP_BACK,ExtBack);

      screenFibo();
     }

   if (ExtISLDinamic)
     {
      n1=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),pitch_time[1])+iBarShift(Symbol(),Period(),pitch_time[2]))/2.0;
      ta1=pitch_time[1];
      a1=pitch_cena[1];
      tangens=(pitch_cena[0]-(pitch_cena[1]+pitch_cena[2])/2.0)/n1;

      ML_RL400(tangens, pitch_cena, pitch_time, tb1, b1, true);

      tc1=pitch_time[2];
      c1=pitch_cena[2];

      nameObj="ISL_D" + ExtComplekt+"_";

      ObjectDelete(nameObj);

      ObjectCreate(nameObj,OBJ_FIBOCHANNEL,0,ta1,a1,tb1,b1,tc1,c1);
      ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtLinePitchforkD);
      ObjectSet(nameObj,OBJPROP_LEVELSTYLE,ExtPitchforkStyle);
      ObjectSet(nameObj,OBJPROP_RAY,false);
      ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
      ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
      ObjectSet(nameObj,OBJPROP_FIBOLEVELS,6);

      if (ExtFiboType)
        {
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,-0.886);
         ObjectSetFiboDescription(nameObj, 0, "   I S L 88.6"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,-0.786);
         ObjectSetFiboDescription(nameObj, 1, "    I S L 78.6"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,-0.618);
         ObjectSetFiboDescription(nameObj, 2, "    I S L 61.8"); 
        }
      else
        {
         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,-0.854);
         ObjectSetFiboDescription(nameObj, 0, "   I S L 85.4"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,-0.764);
         ObjectSetFiboDescription(nameObj, 1, "    I S L 76.4"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,-0.618);
         ObjectSetFiboDescription(nameObj, 2, "    I S L 61.8"); 
        }

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,-0.382);
      ObjectSetFiboDescription(nameObj, 3, "    I S L 38.2"); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,-0.236);
      ObjectSetFiboDescription(nameObj, 4, "    I S L 23.6"); 

      ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,-0.146);
      ObjectSetFiboDescription(nameObj, 5, "    I S L 14.6"); 
     }

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

      nbase1=iBarShift(Symbol(),Period(),pitch_time[1]);
      nbase2=iBarShift(Symbol(),Period(),pitch_time[2]);

      if (nbase1+n<=Bars)
        {
         mirror1=1;
         mirror2=0;

         ta1=Time[nbase1+n];
         tb1=Time[nbase2+n];
         tc1=mPitchTime[1];

         a1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[1];
         b1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[2];
         c1=mPitchCena[1];
        }
      else
        {
         mirror1=-1;
         mirror2=-1;

         ta1=mPitchTime[2];
         tb1=mPitchTime[1];
         tc1=Time[nbase2+n];

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

      nameObj="RLineD" + ExtComplekt+"_";
      ObjectDelete(nameObj);

      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);
        }

      fiboRL(nameObj, mirror1, mirror2);
     }
  }

void fiboRL(string nameObj, int mirror1, int mirror2)
  {
      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,mirror2+mirror1*0.382);
         ObjectSetFiboDescription(nameObj, 0, " RL 38.2"); 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,mirror2+mirror1*0.854);
         ObjectSetFiboDescription(nameObj, 5, " RL 85.4"); 

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

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,mirror2+mirror1*1.236);
         ObjectSetFiboDescription(nameObj, 7, " RL 123.6"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,mirror2+mirror1*1.618);
         ObjectSetFiboDescription(nameObj, 8, " RL 161.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,mirror2+mirror1*2.0);
         ObjectSetFiboDescription(nameObj, 9, " RL 200"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,mirror2+mirror1*2.618);
         ObjectSetFiboDescription(nameObj, 10, " RL 261.8"); 

         ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,mirror2+mirror1*4.0);
         ObjectSetFiboDescription(nameObj, 11, " RL 400.0"); 
        }
  }

void coordinaty_1_2_mediany_AP(double A_1, double B_2, double C_3, datetime T_1, datetime T_2, datetime T_3, datetime& tAB2, datetime& tBC2, double& AB2, double& BC2)
  {
   double tangens;
   int    n1, n2, n3, nab2, nbc2;

   n1=iBarShift(Symbol(),Period(),T_1);
   n2=iBarShift(Symbol(),Period(),T_2);
   n3=iBarShift(Symbol(),Period(),T_3);

   tangens=(C_3 - A_1)/(n1 - n3);

   nab2=MathCeil((n1+n2)/2.0);
   nbc2=MathCeil((n2+n3)/2.0);

   AB2=(A_1 + B_2)/2 - (nab2-(n1+n2)/2.0)*tangens;
   BC2=(B_2 + C_3)/2 - (nbc2-(n2+n3)/2.0)*tangens;

   tAB2=Time[nab2];
   tBC2=Time[nbc2];
  }

void coordinaty_mediany_AP(double A_1, double B_2, double C_3, datetime T_1, datetime T_2, datetime T_3, datetime& tB1, double& B1)
  {
   double tangens;
   int    n1, n2, n3, nbc2;

   n1=iBarShift(Symbol(),Period(),T_1);
   n2=iBarShift(Symbol(),Period(),T_2);
   n3=iBarShift(Symbol(),Period(),T_3);

   tangens=(A_1-(C_3+B_2)/2)/(n1 - (n3+n2)/2.0);

   nbc2=MathCeil((n2+n3)/2.0);

   B1=(B_2 + C_3)/2 - ((n2+n3)/2.0-nbc2)*tangens;

   tB1=Time[nbc2];
  }

bool maxGipotenuza(datetime pitch_time1[], double pitch_cena1[])
  {
   double k2,k3;
   datetime k4,k5;
/*
   k2=MathAbs(pitch_cena1[0]-pitch_cena1[1])/Point;
   k3=MathAbs(pitch_cena1[1]-pitch_cena1[2])/Point;
   k4=(mPitchTimeSave-pitch_time1[1])/(GrossPeriod*60);
   k5=(pitch_time1[1]-pitch_time1[2])/(GrossPeriod*60);
*/
   k2=MathAbs(pitch_cena1[0]-pitch_cena1[1])/ASBar;
   k3=MathAbs(pitch_cena1[1]-pitch_cena1[2])/ASBar;
   k4=iBarShift(NULL,GrossPeriod,mPitchTimeSave)-iBarShift(NULL,GrossPeriod,pitch_time1[1]);
   k5=iBarShift(NULL,GrossPeriod,pitch_time1[1])-iBarShift(NULL,GrossPeriod,pitch_time1[2]);

   if (k2*k2+k4*k4>k3*k3+k5*k5) return(true); else return(false);
  }

void PivotZone(datetime pitch_time1[], double pitch_cena1[], color PivotZoneColor, string name)
  {
   datetime ta1, tb1;
   double a1, b1, d, n1;
   int m, m1, m2;

   ta1=pitch_time1[2];
   a1=pitch_cena1[2];
   m1=iBarShift(Symbol(),Period(),pitch_time1[0])-iBarShift(Symbol(),Period(),pitch_time1[1]);
   m2=iBarShift(Symbol(),Period(),pitch_time1[1])-iBarShift(Symbol(),Period(),pitch_time1[2]);
   m=iBarShift(Symbol(),Period(),pitch_time1[2]);
   n1=iBarShift(Symbol(),Period(),pitch_time1[0])-(iBarShift(Symbol(),Period(),pitch_time1[1])+iBarShift(Symbol(),Period(),pitch_time1[2]))/2.0;
   d=(pitch_cena1[0]-(pitch_cena1[1]+pitch_cena1[2])/2.0)/n1;

   if (m1>m2)
     {
      if (m1>m)
        {
         tb1=Time[0]+(m1-m)*Period()*60;
        }
      else
        {
         tb1=Time[iBarShift(Symbol(),Period(),pitch_time1[2])-m1];
        }
      b1=pitch_cena1[0]-d*(2*m1+m2);
     }
   else
     {
      if (m2>m)
        {
         tb1=Time[0]+(m2-m)*Period()*60;
        }
      else
        {
         tb1=Time[iBarShift(Symbol(),Period(),pitch_time1[2])-m2];
        }
      b1=pitch_cena1[0]-d*(2*m2+m1);
     }

   nameObj=name + ExtComplekt+"_";
   ObjectDelete(nameObj);

   ObjectCreate(nameObj,OBJ_RECTANGLE,0,ta1,a1,tb1,b1);
   ObjectSetText(nameObj,"PZ "+Period_tf+"  "+TimeToStr(tb1,TIME_DATE|TIME_MINUTES));
   ObjectSet(nameObj, OBJPROP_BACK, ExtPivotZoneFramework);
   ObjectSet(nameObj, OBJPROP_COLOR, PivotZoneColor); 
  }

void ML_RL400(double Tangens, double pitch_cena1[], datetime pitch_time1[], datetime& tB1, double& B1, bool flag)
  {
   int m, m1, m2;

   m1=iBarShift(Symbol(),Period(),pitch_time1[0]);
   m2=MathCeil((iBarShift(Symbol(),Period(),pitch_time1[1])+iBarShift(Symbol(),Period(),pitch_time1[2]))/2.0);
   m=(m1-m2)*4;

   if (m>m2)
     {
      tB1=Time[0]+(m-m2)*Period()*60;
      if (tB1<0) tB1=2133648000;
      if (flag) B1=pitch_cena1[1]-Tangens*(iBarShift(Symbol(),Period(),pitch_time1[1])+(tB1-Time[0])/(60*Period()));
      else  B1=pitch_cena1[0]-Tangens*(iBarShift(Symbol(),Period(),pitch_time1[0])+(tB1-Time[0])/(60*Period()));
     }
   else
     {
      tB1=Time[m2-m];
      if (flag) B1=pitch_cena1[1]-Tangens*(iBarShift(Symbol(),Period(),pitch_time1[1])-iBarShift(Symbol(),Period(),tB1));
      else  B1=pitch_cena1[0]-Tangens*(iBarShift(Symbol(),Period(),pitch_time1[0])-iBarShift(Symbol(),Period(),tB1));
     }
  }

void screenFiboFan()
  {
   double a1,b1;  

   a1=afrx[mFan[0]]; b1=afrx[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()
  {
   ObjectSet(nameObj,OBJPROP_COLOR,ExtObjectColor);
   ObjectSet(nameObj,OBJPROP_STYLE,ExtObjectStyle);
   ObjectSet(nameObj,OBJPROP_WIDTH,ExtObjectWidth);

   if (!ExtFiboType)
     {

      ObjectSet(nameObj,OBJPROP_FIBOLEVELS,9);

      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,0.854);

Показано первые 50% кода (символов: 127014)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
12 701,40₽ ≈ $155.24