SUPER STOCH
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «super-stochastic-indicator_.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
SUPER STOCH — это пользовательский индикатор стохастического осциллятора для платформы MetaTrader 5. Индикатор отображается в отдельном окне и рассчитывает значения линий %K и %D на основе встроенной функции iStochastic, позволяя визуально оценить состояние рынка.
Индикатор поддерживает настройку уровней перекупленности и перепроданности, зон покупки и продажи, а также маркировку пересечений линии %K с задержкой. На графике отображаются информационные метки текущей зоны и числовые значения стохастическа.
Встроенная система уведомлений поддерживает шесть типов алертов с возможностью пользовательских сообщений. Индикатор работает на всех таймфреймах и предоставляет настраиваемые параметры методов скользящих средних и ценовых полей.
Настройки программы
| Настройка | Описание |
|---|---|
| SETTING_1 | Заголовок группы настроек стохастическа. |
| KPeriod | Период расчёта линии %K (основная линия стохастическа). |
| Slowing | Период замедления для расчёта линии %D стохастическа. |
| DPeriod | Период расчёта линии %D (замедленная линия стохастическа). Значение не менее 1. |
| SETTING_2 | Заголовок группы настроек метода скользящей средней. Подсказка: 0=sma, 1=ema, 2=smma, 3=lwma. |
| SETTING_2_ | Подсказка для параметра MAMethod: 0=sma, 1=ema, 2=smma, 3=lwma. |
| MAMethod | Метод усреднения для расчёта стохастическа: 0 — SMA, 1 — EMA, 2 — SMMA, 3 — LWMA. |
| SETTING_3 | Заголовок группы настроек ценового поля. |
| SETTING_3_ | Подсказка для параметра PriceField: 0=high/low, 1=close/close. |
| PriceField | Тип ценового поля для расчёта: 0 — High/Low, 1 — Close/Close. |
| SETTING_4 | Заголовок группы настроек уровня перекупленности. |
| overBought | Уровень перекупленности. Значение линии %K выше этого уровня отображается как перекупленность. |
| SETTING_5 | Заголовок группы настроек уровня перепроданности. |
| overSold | Уровень перепроданности. Значение линии %K ниже этого уровня отображается как перепроданность. |
| SETTING_6 | Заголовок группы настроек уровней зон покупки и продажи. |
| buyarea | Уровень верхней границы зоны покупки. Значение линии %K выше этого уровня считается зоной покупки. |
| sellarea | Уровень нижней границы зоны продажи. Значение линии %K ниже этого уровня считается зоной продажи. |
| SETTING_7 | Заголовок группы настроек маркировки зон покупки и продажи. |
| AMarking | Включает или отключает маркировку зон выхода из зон покупки и продажи на графике индикатора. |
| SETTING_8 | Заголовок группы настроек маркировки пересечений %K. |
| KMarking | Включает или отключает маркировку пересечений линии %K на графике индикатора. |
| SETTING_9 | Заголовок группы настроек задержки маркировки пересечений %K. |
| delay | Задержка в барах для маркировки пересечений линии %K. |
| SETTING_10 | Заголовок группы настроек задержки алертов перекупленности/перепроданности. |
| delayOver | Задержка в барах для срабатывания алертов выхода из зон перекупленности/перепроданности. |
| SETTING_11 | Заголовок группы настроек включения и отключения уведомлений. |
| alertOn | Включает или отключает систему уведомлений-алертов индикатора. |
| SETTING_12 | Заголовок группы настроек отображения текстовых данных на графике. |
| dataOn | Включает или отключает отображение текстовых данных (текущая зона и значение стохастическа) на графике. |
| SETTING_13 | Заголовок группы настроек пользовательских сообщений алертов. |
| userAlert | При включении используются пользовательские текстовые сообщения алертов вместо стандартных. |
| SETTING_14 | Заголовок группы настроек сообщения алерта пересечения %K вниз. |
| alertMessage1 | Текст пользовательского сообщения для алерта пересечения линии %K вниз. |
| SETTING_15 | Заголовок группы настроек сообщения алерта пересечения %K вверх. |
| alertMessage2 | Текст пользовательского сообщения для алерта пересечения линии %K вверх. |
| SETTING_16 | Заголовок группы настроек сообщения алерта выхода из зоны продажи. |
| alertMessage3 | Текст пользовательского сообщения для алерта выхода из зоны продажи. |
| SETTING_17 | Заголовок группы настроек сообщения алерта выхода из зоны покупки. |
| alertMessage4 | Текст пользовательского сообщения для алерта выхода из зоны покупки. |
| SETTING_18 | Заголовок группы настроек сообщения алерта выхода из зоны перекупленности. |
| alertMessage5 | Текст пользовательского сообщения для алерта выхода из зоны перекупленности. |
| SETTING_19 | Заголовок группы настроек сообщения алерта выхода из зоны перепроданности. |
| alertMessage6 | Текст пользовательского сообщения для алерта выхода из зоны перепроданности. |
| SETTING_20 | Заголовок группы настроек расположения угла кредитной надписи. |
| SETTING_20_ | Подсказка для параметра creditCorner: 1 — левый угол, 2 — правый угол. |
| creditCorner | Угол размещения кредитной надписи на графике: 1 — левый, 2 — правый. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_minimum 0.0
#property indicator_maximum 100.0
#property indicator_buffers 8
#property indicator_color1 DimGray
#property indicator_color2 DimGray
#property indicator_color3 Lime
#property indicator_color4 Red
#property indicator_color5 Red
#property indicator_color6 Blue
#property indicator_color7 Red
#property indicator_color8 Black
extern string SETTING_1 = "===STOCHASTICS SETTINGS=====";
extern int KPeriod = 30;
extern int Slowing = 10;
extern int DPeriod = 10;
extern string SETTING_2 = "===MA METHOD SETTINGS======";
extern string SETTING_2_ = "[ 0=sma, 1=ema, 2=smma, 3=lwma ]";
extern int MAMethod = 0;
extern string SETTING_3 = "===PRICE FIELD SETTINGS======";
extern string SETTING_3_ = "[ 0=high/low, 1=close/close ]";
extern int PriceField = 1;
extern string SETTING_4 = "===OVERBOUGH LEVEL=========";
extern int overBought = 80;
extern string SETTING_5 = "===OVERSOLD LEVEL===========";
extern int overSold = 20;
extern string SETTING_6 = "===BUY/SELL AREA LEVEL======";
extern int buyarea = 60;
extern int sellarea = 40;
extern string SETTING_7 = "=OFF BUY/SELL AREA MARKING==";
extern bool AMarking = TRUE;
extern string SETTING_8 = "==KPERIOD CROSS MARKING====";
extern bool KMarking = TRUE;
extern string SETTING_9 = "==DELAY OF KPERIOD MARKING==";
extern int delay = 5;
extern string SETTING_10 = "==DELAY OF OVER B./S. ALERT==";
extern int delayOver = 1;
extern string SETTING_11 = "===ALERT ON/OFF==============";
extern bool alertOn = TRUE;
extern string SETTING_12 = "===SHOW TEXT DATA===========";
extern bool dataOn = TRUE;
extern string SETTING_13 = "===USER ALERT MESSAGE======";
extern bool userAlert = FALSE;
extern string SETTING_14 = "===%K CROSS DOWN ALERT=====";
extern string alertMessage1 = "";
extern string SETTING_15 = "===%K CROSS UP ALERT========";
extern string alertMessage2 = "";
extern string SETTING_16 = "===OFF SELL AREA ALERT======";
extern string alertMessage3 = "";
extern string SETTING_17 = "===OFF BUY AREA ALERT=======";
extern string alertMessage4 = "";
extern string SETTING_18 = "==OFF OVERBOUGHT ALERT=====";
extern string alertMessage5 = "";
extern string SETTING_19 = "===OFF OVERSOLD ALERT=======";
extern string alertMessage6 = "";
extern string SETTING_20 = "======CREDIT CORNER=========";
extern string SETTING_20_ = "[ 1=left, 2=right ]";
extern int creditCorner = 2;
double G_ibuf_376[];
double G_ibuf_380[];
double G_ibuf_384[];
double G_ibuf_388[];
double G_ibuf_392[];
double G_ibuf_396[];
double G_ibuf_400[];
int Gi_404 = 0;
int Gi_408 = 0;
int init() {
// код доступен только после оплаты
}
int deinit() {
ObjectsDeleteAll(0, OBJ_LABEL);
ObjectDelete("labelzone");
ObjectDelete("data_zone");
ObjectDelete("stochlabel");
ObjectDelete("data_stoch");
ObjectDelete("stoch_obj");
ObjectDelete("signal_stoch");
ObjectDelete("credit");
ObjectDelete("credit2");
return (0);
}
int start() {
// код доступен только после оплаты
}
string text_20;
string text_28;
color color_44;
color color_48;
double Ld_52;
double istochastic_60;
string istochastic_68;
int x_76;
int x_80;
int ind_counted_0 = IndicatorCounted();
string text_12 = "";
int Li_40 = 0;
int Li_36 = 0;
if (ind_counted_0 < 0) return (-1);
int Li_4 = Bars - ind_counted_0;
for (int shift_8 = Li_4; shift_8 >= 0; shift_8--) {
G_ibuf_376[shift_8] = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MAMethod, PriceField, MODE_MAIN, shift_8);
G_ibuf_380[shift_8] = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MAMethod, PriceField, MODE_SIGNAL, shift_8);
if (G_ibuf_376[shift_8] + delay < G_ibuf_380[shift_8] && Gi_404 != 1) {
Gi_404 = 1;
Li_36 = 1;
if (KMarking) {
G_ibuf_400[shift_8] = G_ibuf_376[shift_8];
G_ibuf_400[shift_8 + 1] = EMPTY_VALUE;
}
}
if (G_ibuf_376[shift_8] - delay > G_ibuf_380[shift_8] && Gi_404 != 2) {
Gi_404 = 2;
Li_36 = 2;
if (KMarking) {
G_ibuf_396[shift_8] = G_ibuf_376[shift_8];
G_ibuf_396[shift_8 + 1] = EMPTY_VALUE;
}
}
if (G_ibuf_376[shift_8] > overBought) {
G_ibuf_384[shift_8] = G_ibuf_376[shift_8];
G_ibuf_384[shift_8 + 1] = G_ibuf_376[shift_8 + 1];
Li_40 = 1;
} else {
G_ibuf_384[shift_8] = EMPTY_VALUE;
if (G_ibuf_384[shift_8 + 2] == EMPTY_VALUE) G_ibuf_384[shift_8 + 1] = EMPTY_VALUE;
}
if (G_ibuf_376[shift_8] < overSold) {
G_ibuf_388[shift_8] = G_ibuf_376[shift_8];
G_ibuf_388[shift_8 + 1] = G_ibuf_376[shift_8 + 1];
Li_40 = 2;
} else {
G_ibuf_388[shift_8] = EMPTY_VALUE;
if (G_ibuf_388[shift_8 + 2] == EMPTY_VALUE) G_ibuf_388[shift_8 + 1] = EMPTY_VALUE;
}
if (G_ibuf_384[shift_8 + delayOver] == EMPTY_VALUE && G_ibuf_384[shift_8 - 1] != EMPTY_VALUE && Li_40 == 1) Li_36 = 5;
if (G_ibuf_388[shift_8 + delayOver] == EMPTY_VALUE && G_ibuf_388[shift_8 - 1] != EMPTY_VALUE && Li_40 == 2) Li_36 = 6;
if (G_ibuf_376[shift_8] >= sellarea && G_ibuf_376[shift_8 + 1] < sellarea) {
Li_36 = 3;
if (AMarking) {
G_ibuf_392[shift_8] = sellarea;
G_ibuf_392[shift_8 + 1] = EMPTY_VALUE;
}
}
if (G_ibuf_376[shift_8] <= buyarea && G_ibuf_376[shift_8 + 1] > buyarea) {
Li_36 = 4;
if (AMarking) {
G_ibuf_392[shift_8] = buyarea;
G_ibuf_392[shift_8 + 1] = EMPTY_VALUE;
}
}
if (G_ibuf_376[shift_8] >= overBought) {
text_12 = "OVERBOUGHT";
color_44 = Lime;
}
if (G_ibuf_376[shift_8] >= buyarea && G_ibuf_376[shift_8] < overBought) {
text_12 = "BUY AREA ";
color_44 = YellowGreen;
}
if (G_ibuf_376[shift_8] <= sellarea && G_ibuf_376[shift_8] > overSold) {
text_12 = "SELL AREA ";
color_44 = Tomato;
}
if (G_ibuf_376[shift_8] <= overSold) {
text_12 =Показано первые 50% кода (символов: 10575)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.