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

all-in-one-divergence-indicator.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор для MetaTrader 4, рассчитывающий значения различных осцилляторов и технических показателей с последующим построением линий тренда, каналов и сигналов расхождений. Поддерживает 30 типов осцилляторов, сглаживание T3, обнаружение стандартных и скрытых бычьих и медвежьих дивергенций, отрисовку линий тренда, каналов регрессии и каналов стандартного отклонения, а также отправку уведомлений через Alert, email и push.

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

НастройкаОписание
Osc Осциллятор — Выбор типа осциллятора из 30 доступных (AC, RSI, MACD и др.)
TH Верхний порог — Включает или отключает проверку верхнего условия для построения линий тренда
TL Нижний порог — Включает или отключает проверку нижнего условия для построения линий тренда
trend Тренд — Флаг отображения линий тренда
convergen Конвергенция — Включает режим определения скрытых дивергенций (конвергенция)
Complect Комплект — Номер комплекта (группы) объектов индикатора
number of steps back (h) (BackSteph) Шаги назад верхний — Количество шагов назад для поиска верхних точек
the number of steps ago l (BackStepl) Шаги назад нижний — Количество шагов назад для поиска нижних точек
number of steps backward (BackStep) Шаг назад — Общее количество шагов назад; при значении больше нуля копируется в BackSteph и BackStepl
the number of steps, not more than 3 (qSteps) Количество шагов — Число шагов анализа, не более 3
level of Demark points; 2 = central bar is above (below) the 2 bars to the left (LevDPl) Уровень Демарк левый — Уровень точек Демарка слева; 2 означает центральную свечу выше (ниже) двух свечей левее
level of Demark points; 2 = central bar is above (below) the 2 bars on the right (LevDPr) Уровень Демарк правый — Уровень точек Демарка справа; 2 означает центральную свечу выше (ниже) двух свечей правее
period Период — Период расчёта осциллятора
ma_method Метод скользящей — Метод сглаживания для осцилляторов, его использующих
ma_shift Сдвиг скользящей — Горизонтальный сдвиг линии осциллятора
applied_price Применяемая цена — Тип цены для расчёта осциллятора
mode Режим — Режим расчёта осциллятора
fast_ema_period Быстрый EMA период — Период быстрой EMA для осцилляторов MACD и OsMA
slow_ema_period Медленный EMA период — Период медленной EMA для осцилляторов MACD и OsMA
signal_period Период сигнала — Период сигнальной линии для MACD и OsMA
Kperiod K период — Период %K для стохастика
Dperiod D период — Период %D для стохастика
slowing Замедление — Период замедления для стохастика
price_field Поле цены — Поле цены для расчёта стохастика
T3_Period T3 период — Период сглаживания T3; при значении меньше 1 устанавливается в 1
b Коэффициент b — Коэффициент сглаживания для расчёта T3
If = 0, then the indicator is displayed for all graphics (showBars) Отображаемые бары — Количество баров для отображения; при 0 индикатор отображается на всех графиках
LeftStrong Левая сильная — Режим строгого сравнения слева при поиске точек
RightStrong Правая сильная — Режим строгого сравнения справа при поиске точек
Trend_Down Тренд вниз — Включает отображение нисходящих линий тренда
Trend_Up Тренд вверх — Включает отображение восходящих линий тренда
false = trend lines will not (TrendLine) Линия тренда — Включает построение линий тренда; при false линии тренда не строятся
HandyColour Удобный цвет — Использовать пользовательские цвета линий вместо стандартных
Highline Цвет верхней линии — Цвет верхних линий индикатора
Lowline Цвет нижней линии — Цвет нижних линий индикатора
true = build a parallel trend lines feeds (ChannelLine) Канальная линия — Включает построение параллельных линий канала
1 = only for UpTrendLines, -1 = only for DownTrendLines, 0 = for all TrendLines (Trend) Тренд фильтр — Фильтр направления линий тренда: 1 только восходящие, -1 только нисходящие, 0 все
Channel Канал — Включает построение каналов регрессии или стандартного отклонения
Regression Регрессия — При true строится канал регрессии, при false — канал стандартного отклонения
RayH Луч верхний — Продлевать верхнюю линию канала в виде луча
RayL Луч нижний — Продлевать нижнюю линию канала в виде луча
ChannelH Цвет верхнего канала — Цвет верхнего канала
ChannelL Цвет нижнего канала — Цвет нижнего канала
STD_widthH Ширина верхнего STD — Отклонение для верхнего канала стандартного отклонения
STD_widthL Ширина нижнего STD — Отклонение для нижнего канала стандартного отклонения
Back Отступ — Отступ назад от текущего бара для анализа
comment Комментарий — Включает отображение текстового комментария на графике
code Код стрелки — Код символа стрелки для отображения сигналов
BuyStop Buy Stop — Включает режим отображения Buy Stop
SellLimit Sell Limit — Включает режим отображения Sell Limit
SellStop Sell Stop — Включает режим отображения Sell Stop
BuyLimit Buy Limit — Включает режим отображения Buy Limit
Alerts Оповещения — Включает звуковые оповещения Alert при сигналах
Email Email — Включает отправку email-уведомлений при сигналах
Push Push — Включает отправку push-уведомлений при сигналах
Получить полный код

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

#property description "All In One Divergence Indicator"
#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 DarkSlateGray
#property indicator_buffers 5
#property indicator_color1 DimGray
#property indicator_color2 Red 
#property indicator_color3 Gold

enum osci
  {
   osci1 = 1,//1. AC
   osci2 = 2,//2. A/DS 
   osci3 = 3, //3. ADX 
   osci4 = 4, //4. ATR
   osci5 = 5, //5. AO
   osci6 = 6, //6. Bears
   osci7 = 7, //7. Bulls
   osci8 = 8, //8. CCI
   osci9 = 9, //9. Dem
   osci10 = 10, //10. Force
   osci11 = 11, //11. Momentum
   osci12 = 12, //12. MFI
   osci13 = 13, //13. MACD
   osci14 = 14, //14. OsMA
   osci15 = 15, //15. OBV
   osci16 = 16, //16. RVI
   osci17 = 17, //17. StdDev
   osci18 = 18, //18. Stoch
   osci19 = 19, //19. Volume
   osci20 = 20, //20. Close
   osci21 = 21, //21. Open
   osci22 = 22, //22. High
   osci23 = 23, //23. Low
   osci24 = 24, //24. Median Price
   osci25 = 25, //25. Typical Price
   osci26 = 26, //26. Weighted Close Price
   osci27 = 27, //27. (O+C+H+L)/4
   osci28 = 28, //28. (O+C)/2
   osci29 = 29, //29. RSI
   osci30 = 30  //30. WPR
  };

enum truefalse
  {
   tf_false= 0,//0. FALSE
   tf_true = 1 //1. TRUE
  };

extern osci Osc=29;
extern truefalse TH=true;
extern truefalse TL=true;
extern truefalse trend=true;
extern truefalse 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; // number of steps back (h)
extern int BackStepl=0; // the number of steps ago l
extern int BackStep=0; // number of steps backward                       
extern int qSteps=1; // the number of steps, not more than 3
extern int LevDPl=5; // level of Demark points; 2 = central bar is above (below) the 2 bars to the left
extern int LevDPr=1; // level of Demark points; 2 = central bar is above (below) the 2 bars on the right
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; // If = 0, then the indicator is displayed for all graphics
extern bool LeftStrong=false;
extern bool RightStrong=true;

extern bool Trend_Down=true;
extern bool Trend_Up=true;
extern bool TrendLine=true; // false = trend lines will not
extern bool HandyColour=true;
extern color Highline=Red;
extern color Lowline=DeepSkyBlue;
extern bool ChannelLine=false; // true = build a parallel trend lines feeds
extern int Trend=0; // 1 = only for UpTrendLines, -1 = only for DownTrendLines, 0 = for all 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;
extern bool comment=false;
extern int code=159;
extern bool BuyStop     = false;
extern bool SellLimit   = false;
extern bool SellStop    = false;
extern bool BuyLimit    = false;

extern bool Alerts      = false;
extern bool Email       = false;
extern bool Push        = 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[];
double Signal[];
string Col[]={"Red","DeepSkyBlue","Coral","Aqua","SaddleBrown","MediumSeaGreen"};
int ColNum[]={Red,DeepSkyBlue,Coral,Aqua,SaddleBrown,MediumSeaGreen};

int qPoint=0; // variable to normalize prices
int qBars; double qTime=0; // variables to eliminate glitches when loading

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

int deinit()
  {
   if(comment) Comment("");
   for(int i=1;i<=qSteps;i++)
     {
      ObjectDelete("HL("+Complect+")_"+i);ObjectDelete("LL("+Complect+")_"+i);
      ObjectDelete("HCL("+Complect+")_"+i);ObjectDelete("LCL("+Complect+")_"+i);
      ObjectDelete("CHAh("+Complect+")_"+i);ObjectDelete("CHAl("+Complect+")_"+i);
     }
   return(0);
  }

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

string TDMain(int Step)
  {
   Signal[Step]=0.0;

   int H1,H2,H3,H4,H5,H6,H7,H8,H9,H10,H11,H12,H13,H14,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,qExt,col; // ,i,Ls,Hb
   double qTL; // ,qLevel
   string Comm="?—?—? Step "+Step+" из "+qSteps+" (BackStep "+BackStep+")\n",Rem,Rem1,Rem2,Rem3,Rem4,Rem5,Rem6,Rem7,Rem8; // ,qp,Text
   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="WPR"; break;
      default : Short_name="RSI";
     }

   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 nn,sn,r,result; // n->nn
      for(nn=1,r=H1+1; nn<H2-H1-1; nn++) // n->nn
        {
         sn=H1+1+nn; // n->nn
         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; // ,sell1,buy1
      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; // local minimum between points

      Comm=Comm+"\n";
      int indicatorWindow=WindowFind(Short_name);
      Rem="HL("+Complect+")_"+Step;
      Rem1="HL("+Complect8+")_"+Step;
      Rem2="HL("+Complect1+")_"+Step;
      Rem3="HL("+Complect2+")_"+Step;
      Rem4="HL("+Complect3+")_"+Step;
      Rem5="HL("+Complect4+")_"+Step;
      Rem6="HL("+Complect5+")_"+Step;
      Rem7="HL("+Complect6+")_"+Step;
      Rem8="HL("+Complect7+")_"+Step;
      if(BuyStop==true && SellLimit==false)
        {
         Rem="BuyStop   "+Step+Step;
           }else if(BuyStop==false && SellLimit==true){

         Rem="SellLimit   "+Step+Step;

        }
      else Rem="Trendh   "+Step+Step;

      if(trend==1 && Oscil[H2]>Oscil[H1]) // the actual trend line
        {
         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,DarkOliveGreen);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

        }

      else if(trend==1 && Oscil[H3]>Oscil[H1]) // the actual trend line
        {
         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,DarkOliveGreen);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

        }

      else if(trend==1 && Oscil[H4]>Oscil[H1]) // the actual trend line
        {
         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,DarkOliveGreen);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

        }

      else if(trend==1 && Oscil[H5]>Oscil[H1]) // the actual trend line
        {
         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,DarkOliveGreen);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

        }

      else if(trend==1 && Oscil[H6]>Oscil[H1]) // the actual trend line
        {
         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,DarkOliveGreen);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

        }

      else if(trend==1 && Oscil[H7]>Oscil[H1]) // the actual trend line
        {
         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,DarkOliveGreen);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

        }

      else if(trend==1 && Oscil[H8]>Oscil[H1]) // the actual trend line
        {
         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,DarkOliveGreen);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

        }

      else if(trend==1 && Oscil[H9]>Oscil[H1]) // the actual trend line
        {
         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,DarkOliveGreen);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

        }

      else if(trend==1 && Oscil[H10]>Oscil[H1]) // the actual trend line
        {
         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,DarkOliveGreen);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

        }

      else if(trend==1 && Oscil[H11]>Oscil[H1]) // the actual trend line
        {
         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,DarkOliveGreen);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

        }

      else if(trend==1 && Oscil[H12]>Oscil[H1]) // the actual trend line
        {
         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,DarkOliveGreen);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

        }

      else if(trend==1 && Oscil[H13]>Oscil[H1]) // the actual trend line
        {
         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,DarkOliveGreen);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

        }

      else if(trend==1 && Oscil[H14]>Oscil[H1]) // the actual trend line
        {
         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,DarkOliveGreen);
         ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

        }

      else if(trend==1 && 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,DarkOliveGreen);
            ObjectSet(Rem,OBJPROP_WIDTH,3-MathMax(4,Step));

           }

         else    ObjectDelete(Rem);

      if(TrendLine && Oscil[H2]>Oscil[H1] && High[H2]<High[H1])// OSCILLATOR DOWNTREND && PRICE UPTREND (STANDARD BEARISH DIVERGENCE)
        {
         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;
         SellSignal(Step);
        }else if(convergen==1 && TrendLine && Oscil[H2]<Oscil[H1] && High[H2]>High[H1]) //OSCILLATOR UPTREND && PRICE DOWNTREND (HIDDEN BEARISH DIVERGENCE)
        {
         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;
         SellSignal(Step);
        }

      else    ObjectDelete(Rem1);

      if(TrendLine && TH==1 && 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==1 && TrendLine && TH==1 && 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==1 && 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==1 && TrendLine && TH==1 && 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==1 && 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==1 && TrendLine && TH==1 && 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]);
            ObjectSet(Rem4,OBJPROP_COLOR,Gold);
            ObjectSet(Rem4,OBJPROP_WIDTH,2);
            ObjectSet(Rem4,OBJPROP_RAY,false);
           }

         else    ObjectDelete(Rem4);

      if(TrendLine && TH==1 && 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[H

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

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

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

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

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

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

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