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

Divergence Petr

divergencepetr_withalert.mq5

Похожие материалы по тегам

pro +.pineTradingView · 3 общих теговofada_gold_trader_v230.mq5MQL5 / MetaTrader 5 · 3 общих теговmulti strategy algo combined by enigma mode.pineTradingView · 3 общих теговmelona ob strategy 6th update (by 3dots).pineTradingView · 3 общих теговsmc+ict+indicators+scalping master.pineTradingView · 3 общих теговpremium_super_scalping killer algo.pineTradingView · 3 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор Divergence Petr для MetaTrader 5 отображает в отдельном окне выбранный осциллятор и автоматически размечает на нём локальные экстремумы, а также строит графические линии тренда, каналы и сигнальные построения по расхождениям. Пользователь может выбрать один из множества встроенных осцилляторов (AC, A/D, ADX, ATR, AO, Bears/Bulls Power, CCI, DeMarker, Force, Momentum, MFI, MACD, OsMA, OBV, RVI, StdDev, Stochastic, Volume, ценовые и производные от цен, RSI, WPR и другие), а также задать период и параметры расчёта. Для выбранного осциллятора применяется дополнительное сглаживание, после чего на графике индикатора отмечаются верхние и нижние точки разворота.

Индикатор поддерживает построение линий тренда по найденным экстремумам, параллельных каналов, линий регрессии и каналов стандартного отклонения. Отдельно выделяются сигналы расхождения (дивергенции) и схождения (конвергенции) между ценой и осциллятором, которые отображаются цветными линиями. Настройки позволяют управлять количеством отображаемых шагов, глубиной поиска экстремумов, цветами и толщиной линий, а также включать или отключать отдельные типы построений.

При появлении новых экстремумов может выводиться всплывающее уведомление Alert с указанием символа и направления. Индикатор не совершает торговых операций и предназначен для визуального анализа и подачи сигналов.

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

НастройкаОписание
Osc Выбор осциллятора для расчёта: 1 — AC, 2 — A/D, 3 — ADX, 4 — ATR, 5 — AO, 6 — Bears Power, 7 — Bulls Power, 8 — CCI, 9 — DeMarker, 10 — Force, 11 — Momentum, 12 — MFI, 13 — MACD, 14 — OsMA, 15 — OBV, 16 — RVI, 17 — StdDev, 18 — Stochastic, 19 — Volume, 20–28 — ценовые и производные, 29 — RSI, 30 — R
TH Разрешает отображение верхних линий тренда.
TL Разрешает отображение нижних линий тренда.
trend Разрешает построение линий тренда по экстремумам.
convergen Разрешает отображение схождений (конвергенций).
Complect Номер комплекта построений; используется в именах объектов и для смещения уровней.
BackSteph Количество шагов назад для поиска верхних экстремумов.
BackStepl Количество шагов назад для поиска нижних экстремумов.
BackStep Общее количество шагов назад; если больше нуля, задаёт одинаковое значение для BackSteph и BackStepl.
qSteps Количество отображаемых шагов (не более 3).
LevDPl Уровень точек демарка слева; задаёт число баров слева, которые должен превышать или не превышать центральный бар.
LevDPr Уровень точек демарка справа; задаёт число баров справа, которые должен превышать или не превышать центральный бар.
period Основной период расчёта выбранного осциллятора.
ma_method Метод усреднения для расчёта индикаторов.
ma_shift Смещение скользящей средней.
applied_price Тип цены, применяемой для расчёта выбранного осциллятора.
mode Режим расчёта для выбранного осциллятора (например, линия MACD или Stochastic).
fast_ema_period Период быстрой EMA для MACD и OsMA.
slow_ema_period Период медленной EMA для MACD и OsMA.
signal_period Период сигнальной линии для MACD и OsMA.
Kperiod Период %K для расчёта стохастического осциллятора.
Dperiod Период %D для расчёта стохастического осциллятора.
slowing Замедление для расчёта стохастического осциллятора.
price_field Поле цены для расчёта стохастического осциллятора.
T3_Period Период сглаживания T3 для выбранного осциллятора.
b Коэффициент сглаживания для расчёта T3.
showBars Количество баров для отображения; если 0, индикатор отображается для всего графика.
LeftStrong Учитывать строгое условие для левой стороны при поиске экстремумов.
RightStrong Учитывать строгое условие для правой стороны при поиске экстремумов.
Anti Разрешает учитывать анти-сигналы при поиске расхождений.
Trend_Down Разрешает отображение нисходящих линий тренда.
Trend_Up Разрешает отображение восходящих линий тренда.
TrendLine Включает построение линий тренда; при false линии тренда не строятся.
HandyColour Использовать заданные вручную цвета линий вместо автоматической раскраски.
Highline Цвет верхних линий тренда при ручной раскраске.
Lowline Цвет нижних линий тренда при ручной раскраске.
ChannelLine Строить линии канала параллельно линиям тренда.
Trend Выбор направления линий тренда: 1 — только восходящие, -1 — только нисходящие, 0 — все.
Channel Включает построение каналов по линиям тренда.
Regression Строить каналы как линии регрессии; иначе используется канал стандартного отклонения.
RayH Продлевать верхние каналы вправо лучом.
RayL Продлевать нижние каналы вправо лучом.
ChannelH Цвет канала для верхних линий тренда.
ChannelL Цвет канала для нижних линий тренда.
STD_widthH Ширина канала стандартного отклонения для верхних линий.
STD_widthL Ширина канала стандартного отклонения для нижних линий.
Back Смещение начала поиска экстремумов в барах назад.
code Код символа стрелки для отображения точек экстремумов.
ColorChanell Цвет линий тренда, отображаемых на графике индикатора.
UseAlert Включает всплывающие уведомления Alert при появлении новых экстремумов.
Получить полный код

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

#property stacksize 16384
#property indicator_separate_window 
#property indicator_level1 75
#property indicator_level2 50
#property indicator_level3 25
#property indicator_level4 0
#property indicator_levelstyle STYLE_SOLID
#property indicator_levelcolor DimGray
#property indicator_buffers 3
#property indicator_color1 RoyalBlue
#property indicator_color2 OrangeRed 
#property indicator_color3 Lime
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2

extern int Osc=29;              /*1=Accelerator/Decelerator, 2=Accumulation/Distribution,
                                 3=Average Directional Movement Index, 4=Average True Range,
                                 5=Awesome oscillator, 6=Bears Power, 7=Bulls Power,
                                 8=Commodity Channel Index, 9=DeMarker, 10=Force Index,
                                 11=Momentum, 12=Money Flow Index, 13=Moving Averages Convergence/Divergence (MACD),
                                 14=Moving Average of Oscillator, 15=On Balance Volume,
                                 16=Relative Vigor Index, 17=Standard Deviation,
                                 18=Stochastic Oscillator, 19=Volume,
                                 20=Close, 21=Open, 22=High, 23=Low,
                                 24=(H+L)/2, 25=(H+L+C)/3, 26=(H+L+C+C)/4, 27=(O+C+H+L)/4, 28=(O+C)/2,
                                 29=Relative Strength Index, 30=RBCI, 31=FTLM, 32=STLM, 33=JRSX,34=Relative Strength Index,

                                 35=Williams' Percent Range,
                                 other=RBCI;*/

extern bool TH=true;
extern bool TL=true;

extern bool trend=true;
extern bool convergen=true;
extern int Complect=1;
int Complect10=10;
int Complect20=20;
int Complect30=30;
int Complect40=40;
int Complect50=50;
int Complect60=60;
int Complect70=70;
int Complect80=80;

extern int BackSteph=0; // количество шагов назад h
extern int BackStepl=0; // количество шагов назад l
extern int BackStep=0; // количество шагов назад                       
extern int qSteps=1; // количество отображаемых шагов, не более 3х

extern int LevDPl=5; // уровень точек демарка; 2 = центральный бар будет выше(ниже) 2х баров слева
extern int LevDPr=1; // уровень точек демарка; 2 = центральный бар будет выше(ниже) 2х баров справа
extern int period=8;
extern int ma_method=0;
extern int ma_shift=0;
extern int applied_price=4;
extern int mode=0;
extern int fast_ema_period=12;
extern int slow_ema_period=26;
extern int signal_period=9;
extern int Kperiod=13;
extern int Dperiod=5;
extern int slowing=3;
extern int price_field=0;
extern int  T3_Period = 1;
extern double b=0.7;
extern int showBars=1000; // если = 0, то индюк отображается для всего графика

extern bool LeftStrong=false;
extern bool RightStrong=true;
extern bool Anti=true;
extern bool Trend_Down=true;
extern bool Trend_Up=true;

extern bool TrendLine=true; // false = линий тренда не будет
extern bool HandyColour=true;
extern color Highline=Red;
extern color Lowline=DeepSkyBlue;
extern bool ChannelLine=false; // true = строить паралельно линиям тренда каналы
extern int Trend=0; // 1 = только для UpTrendLines, -1 = только для DownTrendLines, 0 = для всех TrendLines 
extern bool Channel=false;
extern bool Regression=true;
extern bool RayH=true;
extern bool RayL=true;
extern color ChannelH=Red;
extern color ChannelL=DeepSkyBlue;
extern double STD_widthH=1.0;
extern double STD_widthL=1.0;
extern int Back=0;
bool comment=false;
extern int code=159;

extern color ColorChanell=Chartreuse;

extern bool UseAlert=false;//Включить алерт
double e1,e2,e3,e4,e5,e6;
double n,c1,c2,c3,c4,w1,w2,b2,b3;

int time2; double E1,E2,E3,E4,E5,E6;

double Oscil[],t3_Oscil[];
double Buf1[];//красный
double Buf2[];//зеленый

string Col[]={"Красная","Синяя","Розовая","Голубая","Коричневая","Салатная"};
int ColNum[]={Red,DeepSkyBlue,Coral,Aqua,SaddleBrown,MediumSeaGreen};
int qPoint=0; // переменная для нормализации цены

int qBars; double qTime=0; // переменные для ликвидации глюков при загрузке
datetime lastBarTime;

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

int deinit()
  {
   if(comment) Comment("");

   for(int i=1;i<=qSteps;i++)
     {
      ObjectDelete("HL("+Complect+")_"+i+'_'+Osc);ObjectDelete("LL("+Complect+")_"+i+'_'+Osc);
      ObjectDelete("HCL("+Complect+")_"+i+'_'+Osc);ObjectDelete("LCL("+Complect+")_"+i+'_'+Osc);
      ObjectDelete("CHAh("+Complect+")_"+i+'_'+Osc);ObjectDelete("CHAl("+Complect+")_"+i+'_'+Osc);
     }
  }

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

string TDMain(int Step)
  {
   int H1,H2,H3,H4,H5,H6,H7,H8,H9,H10,H11,H12,H13,H14,Hb,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,Ls,qExt,i,col;
   double qTL,qLevel;
   string Comm="?—?—? Шаг "+Step+" из "+qSteps+" (BackStep "+BackStep+")\n",Text,Rem,Rem1,Rem2,Rem3,Rem4,Rem5,Rem6,Rem7,Rem8,qp;
   string Short_name;
   switch(Osc)
     {
      case  1 : Short_name="AC";  break;
      case  2 : Short_name="A/D"; break;
      case  3 : Short_name="ADX"; break;
      case  4 : Short_name="ATR";  break;
      case  5 : Short_name="AO"; break;
      case  6 : Short_name="Bears"; break;
      case  7 : Short_name="Bulls";  break;
      case  8 : Short_name="CCI"; break;
      case  9 : Short_name="DeM"; break;
      case 10 : Short_name="Force";  break;
      case 11 : Short_name="Momentum"; break;
      case 12 : Short_name="MFI"; break;
      case 13 : Short_name="MACD";  break;
      case 14 : Short_name="OsMA"; break;
      case 15 : Short_name="OBV"; break;
      case 16 : Short_name="RVI"; break;
      case 17 : Short_name="StdDev"; break;
      case 18 : Short_name="Stoch";  break;
      case 19 : Short_name="Volume"; break;
      case 20 : Short_name="Close";  break;
      case 21 : Short_name="Open";  break;
      case 22 : Short_name="High"; break;
      case 23 : Short_name="Low"; break;
      case 24 : Short_name="Median Price";  break;
      case 25 : Short_name="Typical Price"; break;
      case 26 : Short_name="Weighted Close Price"; break;
      case 27 : Short_name="(O+C+H+L)/4";  break;
      case 29 : Short_name="RSI"; break;
      case 30 : Short_name="RBCI"; break;
      case 31 : Short_name="FTLM"; break;
      case 32 : Short_name="STLM"; break;
      case 33 : Short_name="JRSX Diver"; break;
      case 34 : Short_name="RSI"; break;

      case 35 : Short_name="WPR"; break;
      default : Short_name="RBCI";
     }

   if(Trend<=0)
     {
      Comm=Comm+"? "+Col[Step*2-2]+" DownTrendLine ";
      if(HandyColour) col=Highline; else col=ColNum[Step*2-2];
      H1=GetTD(Step+BackSteph,Buf1);
      H2=GetNextHighTD(H1);
      H3=GetNextHighTD(H2);
      H4=GetNextHighTD(H3);
      H5=GetNextHighTD(H4);
      H6=GetNextHighTD(H5);
      H7=GetNextHighTD(H6);
      H8=GetNextHighTD(H7);
      H9=GetNextHighTD(H8);
      H10=GetNextHighTD(H9);
      H11=GetNextHighTD(H10);
      H12=GetNextHighTD(H11);
      H13=GetNextHighTD(H12);
      H14=GetNextHighTD(H13);

      qTL=(t3_Oscil[H2]-t3_Oscil[H1])/(H2-H1);
      int n,sn,r,result;
      for(n=1,r=H1+1; n<H2-H1-1; n++)
        {
         sn=H1+1+n;
         if(t3_Oscil[r]<t3_Oscil[sn]) result=r;
         else result=sn;
         r=result;
        }
      double Complect1,Complect2,Complect3,Complect4,Complect5,Complect6,Complect7,Complect8,buy,sell,buy1,sell1;
      if(Complect>0)
        {
         Complect1=Complect+Complect10;
         Complect2=Complect+Complect20;
         Complect3=Complect+Complect30;
         Complect4=Complect+Complect40;
         Complect5=Complect+Complect50;
         Complect6=Complect+Complect60;
         Complect7=Complect+Complect70;
         Complect8=Complect+Complect80;
        }

      qExt=r; // локальный минимум между точками

      Comm=Comm+"\n";
      int indicatorWindow=WindowFind(Short_name);
      Rem="HL("+Complect+")_"+Step+'_'+Osc;
      Rem1="HL("+Complect8+")_"+Step +'_'+Osc;
      Rem2="HL("+Complect1+")_"+Step +'_'+Osc;
      Rem3="HL("+Complect2+")_"+Step +'_'+Osc;
      Rem4="HL("+Complect3+")_"+Step +'_'+Osc;
      Rem5="HL("+Complect4+")_"+Step +'_'+Osc;
      Rem6="HL("+Complect5+")_"+Step +'_'+Osc;
      Rem7="HL("+Complect6+")_"+Step +'_'+Osc;
      Rem8="HL("+Complect7+")_"+Step +'_'+Osc;

      if(trend==true && Oscil[H2]>Oscil[H1]) // собственно линия тренда
        {
         ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem,OBJPROP_TIME1,Time[H2]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H2]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
        }

      else if(trend==true && Oscil[H3]>Oscil[H1]) // собственно линия тренда
        {
         ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem,OBJPROP_TIME1,Time[H3]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H3]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
        }

      else if(trend==true && Oscil[H4]>Oscil[H1]) // собственно линия тренда
        {
         ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem,OBJPROP_TIME1,Time[H4]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H4]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
        }

      else if(trend==true && Oscil[H5]>Oscil[H1]) // собственно линия тренда
        {
         ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem,OBJPROP_TIME1,Time[H5]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H5]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
        }

      else if(trend==true && Oscil[H6]>Oscil[H1]) // собственно линия тренда
        {
         ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem,OBJPROP_TIME1,Time[H6]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H6]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
        }

      else if(trend==true && Oscil[H7]>Oscil[H1]) // собственно линия тренда
        {
         ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem,OBJPROP_TIME1,Time[H7]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H7]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
        }

      else if(trend==true && Oscil[H8]>Oscil[H1]) // собственно линия тренда
        {
         ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem,OBJPROP_TIME1,Time[H8]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H8]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
        }

      else if(trend==true && Oscil[H9]>Oscil[H1]) // собственно линия тренда
        {
         ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem,OBJPROP_TIME1,Time[H9]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H9]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
        }

      else if(trend==true && Oscil[H10]>Oscil[H1]) // собственно линия тренда
        {
         ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem,OBJPROP_TIME1,Time[H10]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H10]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
        }

      else if(trend==true && Oscil[H11]>Oscil[H1]) // собственно линия тренда
        {
         ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem,OBJPROP_TIME1,Time[H11]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H11]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
        }

      else if(trend==true && Oscil[H12]>Oscil[H1]) // собственно линия тренда
        {
         ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem,OBJPROP_TIME1,Time[H12]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H12]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
        }

      else if(trend==true && Oscil[H13]>Oscil[H1]) // собственно линия тренда
        {
         ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem,OBJPROP_TIME1,Time[H13]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H13]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
        }

      else if(trend==true && Oscil[H14]>Oscil[H1]) // собственно линия тренда
        {
         ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem,OBJPROP_TIME1,Time[H14]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H14]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
        }
      else if(trend==true && Oscil[H2]<Oscil[H1] && Oscil[H3]<Oscil[H1] && Oscil[H4]<Oscil[H1] && Oscil[H5]<Oscil[H1] && 
         Oscil[H6]<Oscil[H1] && Oscil[H7]<Oscil[H1] && Oscil[H8]<Oscil[H1] && Oscil[H9]<Oscil[H1] && Oscil[H10]<Oscil[H1] && 
         Oscil[H11]<Oscil[H1] && Oscil[H12]<Oscil[H1] && Oscil[H13]<Oscil[H1] && Oscil[H14]<Oscil[H1]) // собственно линия тренда
           {
            ObjectCreate(Rem,OBJ_TREND,indicatorWindow,0,0,0,0);
            ObjectSet(Rem,OBJPROP_TIME1,Time[H1]);ObjectSet(Rem,OBJPROP_TIME2,Time[H1]);
            ObjectSet(Rem,OBJPROP_PRICE1,t3_Oscil[H1]);ObjectSet(Rem,OBJPROP_PRICE2,t3_Oscil[H1]);
            ObjectSet(Rem,OBJPROP_COLOR,ColorChanell);
            ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));
           }
         else    ObjectDelete(Rem);

      if(TrendLine && Oscil[H2]>Oscil[H1] && High[H2]<High[H1])// собственно diver
        {
         ObjectCreate(Rem1,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem1,OBJPROP_TIME1,Time[H2]);
         ObjectSet(Rem1,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem1,OBJPROP_PRICE1,t3_Oscil[H2]);
         ObjectSet(Rem1,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem1,OBJPROP_COLOR,Red);
         ObjectSet(Rem1,OBJPROP_WIDTH,2);
         ObjectSet(Rem1,OBJPROP_RAY,false);
         sell=true;
        }

      else if(convergen==true && TrendLine && Oscil[H2]<Oscil[H1] && High[H2]>High[H1])
        {
         ObjectCreate(Rem1,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem1,OBJPROP_TIME1,Time[H2]);ObjectSet(Rem1,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem1,OBJPROP_PRICE1,t3_Oscil[H2]);ObjectSet(Rem1,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem1,OBJPROP_COLOR,Gold);
         ObjectSet(Rem1,OBJPROP_WIDTH,2);
         ObjectSet(Rem1,OBJPROP_RAY,false);
         sell=true;
        }
      else    ObjectDelete(Rem1);

      if(TrendLine && TH==true && Oscil[H2]<Oscil[H1] && High[H2]<High[H1] && 
         Oscil[H3]>Oscil[H1] && High[H3]<High[H1] && High[H3]>High[H2])
        {
         ObjectCreate(Rem2,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem2,OBJPROP_TIME1,Time[H3]);ObjectSet(Rem2,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem2,OBJPROP_PRICE1,t3_Oscil[H3]);ObjectSet(Rem2,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem2,OBJPROP_COLOR,Red);
         ObjectSet(Rem2,OBJPROP_WIDTH,2);
         ObjectSet(Rem2,OBJPROP_RAY,false);

        }
      else if(convergen==true && TrendLine && TH==true && Oscil[H2]<Oscil[H1] && High[H2]<High[H1] && 
         Oscil[H3]<Oscil[H1] && High[H3]>High[H1] && High[H3]>High[H2] && Oscil[H3]>Oscil[H2])
           {
            ObjectCreate(Rem2,OBJ_TREND,indicatorWindow,0,0,0,0);
            ObjectSet(Rem2,OBJPROP_TIME1,Time[H3]);ObjectSet(Rem2,OBJPROP_TIME2,Time[H1]);
            ObjectSet(Rem2,OBJPROP_PRICE1,t3_Oscil[H3]);ObjectSet(Rem2,OBJPROP_PRICE2,t3_Oscil[H1]);
            ObjectSet(Rem2,OBJPROP_COLOR,Gold);
            ObjectSet(Rem2,OBJPROP_WIDTH,2);
            ObjectSet(Rem2,OBJPROP_RAY,false);

           }

         else    ObjectDelete(Rem2);

      if(TrendLine && TH==true && Oscil[H2]<Oscil[H1] && High[H2]<High[H1] && Oscil[H3]<Oscil[H1] && 
         High[H3]<High[H1] && Oscil[H4]>Oscil[H1] && 
         High[H4]<High[H1] && High[H4]>High[H3] && High[H4]>High[H2])
        {
         ObjectCreate(Rem3,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem3,OBJPROP_TIME1,Time[H4]);ObjectSet(Rem3,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem3,OBJPROP_PRICE1,t3_Oscil[H4]);ObjectSet(Rem3,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem3,OBJPROP_COLOR,Red);
         ObjectSet(Rem3,OBJPROP_WIDTH,2);
         ObjectSet(Rem3,OBJPROP_RAY,false);
        }
      else if(convergen==true && TrendLine && TH==true && Oscil[H2]<Oscil[H1] && High[H2]<High[H1] && Oscil[H3]<Oscil[H1] && 
         High[H3]<High[H1] && Oscil[H4]<Oscil[H1] && 
         High[H4]>High[H1] && High[H4]>High[H3] && High[H4]>High[H2] && Oscil[H4]>Oscil[H2] && Oscil[H4]>Oscil[H3])
           {
            ObjectCreate(Rem3,OBJ_TREND,indicatorWindow,0,0,0,0);
            ObjectSet(Rem3,OBJPROP_TIME1,Time[H4]);ObjectSet(Rem3,OBJPROP_TIME2,Time[H1]);
            ObjectSet(Rem3,OBJPROP_PRICE1,t3_Oscil[H4]);ObjectSet(Rem3,OBJPROP_PRICE2,t3_Oscil[H1]);
            ObjectSet(Rem3,OBJPROP_COLOR,Gold);
            ObjectSet(Rem3,OBJPROP_WIDTH,2);
            ObjectSet(Rem3,OBJPROP_RAY,false);
           }

         else    ObjectDelete(Rem3);

      if(TrendLine && TH==true && Oscil[H2]<Oscil[H1] && High[H2]<High[H1] && Oscil[H3]<Oscil[H1] && 
         High[H3]<High[H1] && 
         Oscil[H4]<Oscil[H1] && High[H4]<High[H1] && 
         Oscil[H5]>Oscil[H1] && High[H5]<High[H1] && High[H5]>High[H4] && High[H5]>High[H3] && High[H5]>High[H2])
        {
         ObjectCreate(Rem4,OBJ_TREND,indicatorWindow,0,0,0,0);
         ObjectSet(Rem4,OBJPROP_TIME1,Time[H5]);ObjectSet(Rem4,OBJPROP_TIME2,Time[H1]);
         ObjectSet(Rem4,OBJPROP_PRICE1,t3_Oscil[H5]);ObjectSet(Rem4,OBJPROP_PRICE2,t3_Oscil[H1]);
         ObjectSet(Rem4,OBJPROP_COLOR,Red);
         ObjectSet(Rem4,OBJPROP_WIDTH,2);
         ObjectSet(Rem4,OBJPROP_RAY,false);
        }
      else if(convergen==true && TrendLine && TH==true && Oscil[H2]<Oscil[H1] && High[H2]<High[H1] && Oscil[H3]<Oscil[H1] && 
         High[H3]<High[H1] && 
         Oscil[H4]<Oscil[H1] && High[H4]<High[H1] && 
         Oscil[H5]<Oscil[H1] && High[H5]>High[H1] && High[H5]>High[H4] && High[H5]>High[H3] && High[H5]>High[H2] && 
         Oscil[H5]>Oscil[H2] && Oscil[H5]>Oscil[H3] && Oscil[H5]>Oscil[H4])
           {
            ObjectCreate(Rem4,OBJ_TREND,indicatorWindow,0,0,0,0);
            ObjectSet(Rem4,OBJPROP_TIME1,Time[H5]);ObjectSet(Rem4,OBJPROP_TIME2,Time[H1]);
            ObjectSet(Rem4,OBJPROP_PRICE1,t3_Oscil[H5]);ObjectSet(Rem4,OBJPROP_PRICE2,t3_Oscil[H1]);
     

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

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

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

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

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

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

Стоимость полного кода
4 582,50₽ ≈ $56.01