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

AIO Divergence

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

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

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

О программе

AIO Divergence — индикатор для MetaTrader, объединяющий анализ 30 осцилляторов (RSI, MACD, Stochastic, CCI, ADX и др.) в отдельном окне. Пользователь выбирает нужный осциллятор, который сглаживается методом T3, после чего индикатор определяет точки разворота по методологии Demark и строит трендовые линии.

Основная задача — обнаружение дивергенций: стандартных и скрытых, бычьих и медвежьих, путём сравнения направления осциллятора с движением цены. Для каждого из 3 шагов анализируются до 14 промежуточных экстремумов, что позволяет выявлять дивергенции разной глубины.

Индикатор поддерживает визуализацию трендовых линий, параллельных каналов, регрессионных каналов и каналов стандартного отклонения. Доступны звуковые, email и push-уведомления при появлении сигналов покупки или продажи.

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

НастройкаОписание
Osc Выбор осциллятора для анализа из 30 доступных вариантов.
TH Отображение трендовых линий для верхних точек разворота.
TL Отображение трендовых линий для нижних точек разворота.
trend Отображение основных линий тренда (зелёные линии тренда).
convergen Отображение конвергентных/дивергентных линий (скрытые дивергенции).
Complect Номер комплекта (группы) объектов на графике для разделения настроек.
number of steps back (h) (BackSteph) Количество шагов назад для поиска верхних точек разворота.
the number of steps ago l (BackStepl) Количество шагов назад для поиска нижних точек разворота.
number of steps backward (BackStep) Количество шагов назад, задающее смещение для расчёта точек Demark.
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) Уровень точки Demark слева; определяет количество баров для проверки локального максимума/минимума.
level of Demark points; 2 = central bar is above (below) the 2 bars on the right (LevDPr) Уровень точки Demark справа; определяет количество баров для проверки локального максимума/минимума.
period Период расчёта для выбранного осциллятора.
ma_method Метод скользящей средней (SMA, EMA, SMMA, LWMA).
ma_shift Сдвиг скользящей средней в барах.
applied_price Применяемая цена для расчёта осцилляторов (Close, Open, High, Low и др.).
mode Режим расчёта (применяется к некоторым осцилляторам).
fast_ema_period Период быстрой экспоненциальной скользящей средней (для MACD/OsMA).
slow_ema_period Период медленной экспоненциальной скользящей средней (для MACD/OsMA).
signal_period Период сигнальной линии для MACD/OsMA.
Kperiod Период K для индикатора Stochastic.
Dperiod Период D для индикатора Stochastic.
slowing Замедление для индикатора Stochastic.
price_field Поле цены для расчёта Stochastic (High/Low, High/Close и др.).
T3_Period Период сглаживания T3 для осциллятора.
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) Включает отображение трендовых линий на графике.
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 Построение регрессионного канала вместо канала стандартного отклонения.
RayH Отображение луча (продления вправо) для верхней трендовой линии.
RayL Отображение луча (продления вправо) для нижней трендовой линии.
ChannelH Цвет верхней границы канала.
ChannelL Цвет нижней границы канала.
STD_widthH Ширина (отклонение) верхней границы канала стандартного отклонения.
STD_widthL Ширина (отклонение) нижней границы канала стандартного отклонения.
Back Количество баров назад от текущего для анализа.
comment Отображение текстового комментария с информацией о текущем анализе.
code Код стрелки для отображения точек разворота на графике.
BuyStop Отображение метки BuyStop для соответствующей линии тренда.
SellLimit Отображение метки SellLimit для соответствующей линии тренда.
SellStop Отображение метки SellStop для соответствующей линии тренда.
BuyLimit Отображение метки BuyLimit для соответствующей линии тренда.
Alerts Включает звуковые уведомления при появлении сигнала покупки или продажи.
Email Включает отправку email-уведомлений при появлении сигнала.
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