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