Divergence Petr
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «divergencepetr_withalert.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор 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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.