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

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 и перейдите к оплате.

Стоимость полного кода
1 057,50₽ ≈ $12.92