ind_divpeaktroughrsi_sw_v1.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ind_divpeaktroughrsi_sw_v1.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор рассчитывает осциллятор на основе индикатора RSI, смещённый на 50 единиц, что позволяет анализировать ценовые данные и технические показатели в отдельном окне. Индикатор выявляет пики и впадины осциллятора, используя заданные пороги чувствительности и количество баров для поиска экстремумов. Результаты отображаются стрелками и линиями трендов с настраиваемыми цветами.
Индикатор поддерживает настройку периода RSI и типа цены для расчёта, а также позволяет включать или отключая отрисовку линий трендов в отдельном окне индикатора и на графике. При пересечении нулевого уровня пики и впадины переключаются между двумя буферами для визуализации разворотов.
Продукт работает в среде MetaTrader 5 как пользовательский индикатор с отдельным окном отображения. Все расчёты выполняются на каждом тике при обновлении ценовых данных.
Настройки программы
| Настройка | Описание |
|---|---|
| RSIPeriod | Период расчёта индикатора RSI. Определяет количество баров, используемых для вычисления значения RSI. По умолчанию 14. |
| RSIPrice | Тип цены для расчёта RSI: 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted. Определяет, какая цена используется в расчёте. |
| ExtrLeftBars | Количество баров слева от текущего для подтверждения экстремума. Определяет глубину поиска локального максимума или минимума осциллятора влево от точки проверки. |
| ExtrRightBars | Количество баров справа от текущего для подтверждения экстремума. Определяет глубину поиска локального максимума или минимума осциллятора вправо от точки проверки. |
| PlusSens | Верхний порог чувствительности осциллятора. Значение осциллятора выше этого порога инициирует поиск пиков. По умолчанию 1. |
| MinusSens | Нижний порог чувствительности осциллятора. Значение осциллятора ниже этого порога инициирует поиск впадин. По умолчанию -1. |
| DrawLinesSW | Переключатель отрисовки линий трендов в окне индикатора. При значении true линии трендов отображаются в отдельном окне индикатора. |
| DrawLinesChW | Переключатель отрисовки линий трендов на графике (основном окне). При значении true линии трендов отображаются непосредственно на ценовом графике. |
| Col_Peak_1 | Цвет линий трендов для первого типа пиков. Определяет визуальное отображение линий, проводимых при обнаружении верхних разворотов осциллятора. |
| Col_Peak_2 | Цвет линий трендов для второго типа пиков. Используется при условии, когда осциллятор растёт, а цена формирует более низкий максимум. |
| Col_Trough_1 | Цвет линий трендов для первого типа впадин. Определяет визуальное отображение линий, проводимых при обнаружении нижних разворотов осциллятора. |
| Col_Trough_2 | Цвет линий трендов для второго типа впадин. Используется при условии, когда осциллятор падает, а цена формирует более высокий минимум. |
| ShortName | Текстовый параметр, задающий короткое имя индикатора. Используется для префикса объектов и названия в окне индикатора. По умолчанию DPTRSI. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Orange
#property indicator_color2 Silver
#property indicator_color3 SlateGray
#property indicator_width2 1
#property indicator_width3 1
extern int RSIPeriod=14;
extern int RSIPrice=0; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
extern int ExtrLeftBars=2; // ????? ????? ?? ??????????
extern int ExtrRightBars=1; // ????? ?????? ?? ??????????
extern double PlusSens=1;
extern double MinusSens=-1;
extern bool DrawLinesSW=true;
extern bool DrawLinesChW=true;
extern color Col_Peak_1=Red;
extern color Col_Peak_2=DeepPink;
extern color Col_Trough_1=LimeGreen;
extern color Col_Trough_2=YellowGreen;
extern string ShortName="DPTRSI";
double osma[];
double Sig1[];
double Sig2[];
double peack_1_i[];
double peack_2_i[];
double trogh_1_i[];
double trogh_2_i[];
int init()
{
// код доступен только после оплаты
}
int deinit()
{
if(DrawLinesSW || DrawLinesChW)fObjDeleteByPrefix(ShortName);
return(0);
}
int start(){
// код доступен только после оплаты
}
int limit=Bars-IndicatorCounted();
for(int i=limit-1;i>=0;i--){
osma[i]=iRSI(NULL,0,RSIPeriod,RSIPrice,i)-50;
int extri=i+ExtrRightBars;
Sig1[i]=EMPTY_VALUE;
Sig2[i]=EMPTY_VALUE;
peack_1_i[i]=peack_1_i[i+1];
peack_2_i[i]=peack_2_i[i+1];
trogh_1_i[i]=trogh_1_i[i+1];
trogh_2_i[i]=trogh_2_i[i+1];
bool PeackNow=false;
bool TroghNow=false;
double extrv=osma[extri];
if(extrv>PlusSens){
for(int j=i;j<extri;j++){
if(extrv<=osma[j]){
break;
}
}
if(j==extri){
int extril=extri+ExtrLeftBars;
for(j=extril;j>extri;j--){
if(extrv<=osma[j]){
break;
}
}
if(j==extri){
PeackNow=true;
if(peack_1_i[i]==EMPTY_VALUE){
peack_1_i[i]=Time[extri];
}
else{
if(osma[extri]>osma[iBarShift(NULL,0,peack_1_i[i],false)]){
peack_1_i[i]=Time[extri];
}
}
}
}
}
if(extrv<MinusSens){
for(j=i;j<extri;j++){
if(extrv>=osma[j]){
break;
}
}
if(j==extri){
extril=extri+ExtrLeftBars;
for(j=extril;j>extri;j--){
if(extrv>=osma[j]){
break;
}
}
if(j==extri){
TroghNow=true;
if(trogh_1_i[i]==EMPTY_VALUE){
trogh_1_i[i]=Time[extri];
}
else{
if(osma[extri]<osma[iBarShift(NULL,0,trogh_1_i[i],false)]){
trogh_1_i[i]=Time[extri];
}
}
}
}
}
if(osma[i]>0 && osma[i+1]<=0){
peack_2_i[i]=peack_1_i[i];
peack_1_i[i]=EMPTY_VALUE;
}
if(osma[i]<0 && osma[i+1]>=0){
trogh_2_i[i]=trogh_1_i[i];
trogh_1_i[i]=EMPTY_VALUE;
Показано первые 50% кода (символов: 5347)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.