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

FDM Oscillator

fdm oscillator.mq5
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

FDM Oscillator — это пользовательский индикатор для MetaTrader 5, который рассчитывает значения индикатора Stochastic на выбранном таймфрейме и отображает их в отдельном окне. Индикатор формирует шесть буферов: две линии (основная и сигнальная) и четыре гистограммы, визуализирующие зоны перекупленности и перепроданности, а также бычьи и медвежьи пересечения. Линии рисуются по цветам DimGray, DarkGreen, Maroon, Lime и Red в зависимости от типа отображения.

Индикатор поддерживает дополнительные средства оповещения: отрисовку стрелок на графике при пересечении уровней, всплывающие предупреждения, звуковые сигналы и отправку электронной почты. Все эти функции управляются внутренними переключателями и активируются при выполнении заданных условий пересечения линий с уровнями 80 и 20.

Таймфрейм анализа можно задать вручную через числовой параметр: 0 означает текущий таймфрейм графика, а другие значения соответствуют М1, М5, М15, М30, H1, H4, D1, W1 и MN1. Текстовые параметры содержат справочную информацию о доступных вариантах таймфреймов.

Настройки программы

НастройкаОписание
note1 Текстовый параметр с заголовком «Chart Time Frame», указывающий, что далее идёт описание настройки таймфрейма графика.
note2 Текстовый параметр с пояснением, что значение 0 означает текущий таймфрейм.
note3 Текстовый параметр с перечислением числовых значений для минутных таймфреймов: 1 соответствует M1, 5 — M5, 15 — M15, 30 — M30.
note4 Текстовый параметр с перечислением числовых значений для часовых и дневных таймфреймов: 60 — H1, 240 — H4, 1440 — D1.
note5 Текстовый параметр с перечислением числовых значений для недельного и месячного таймфреймов: 10080 — W1, 43200 — MN1.
timeFrame Целочисленный параметр, задающий таймфрейм для расчёта индикатора. Значение 0 означает текущий таймфрейм графика. Допустимые значения: 1 (M1), 5 (M5), 15 (M15), 30 (M30), 60 (H1), 240 (H4), 1440 (D1), 10080 (W1), 43200 (MN1). Если заданное значение меньше текущего таймфрейма, используется текущий та
Получить полный код

Поиск по коду файла

/*

*/

#property indicator_separate_window
#property indicator_minimum 0.0
#property indicator_maximum 100.0
#property indicator_buffers 6
#property indicator_color1 DimGray
#property indicator_color2 DimGray
#property indicator_color3 DarkGreen
#property indicator_color4 Maroon
#property indicator_color5 Lime
#property indicator_color6 Red

extern string note1 = "Chart Time Frame";
extern string note2 = "0=current time frame";
extern string note3 = "1=M1, 5=M5, 15=M15, 30=M30";
extern string note4 = "60=H1, 240=H4, 1440=D1";
extern string note5 = "10080=W1, 43200=MN1";
extern int timeFrame = 0;
int g_period_120 = 13;
int gi_124 = 3;
int g_slowing_128 = 3;
int g_ma_method_132 = MODE_EMA;
int g_price_field_136 = 0;
double gd_140 = 80.0;
double gd_148 = 20.0;
bool gi_156 = TRUE;
bool gi_160 = FALSE;
bool gi_164 = FALSE;
bool gi_168 = FALSE;
bool gi_172 = FALSE;
bool gi_176 = FALSE;
double g_ibuf_180[];
double g_ibuf_184[];
double g_ibuf_188[];
double g_ibuf_192[];
double g_ibuf_196[];
double g_ibuf_200[];
int g_timeframe_204;
int gia_208[];
int gi_212;
int gi_216;
string gs_nothing_220 = "nothing";
datetime g_time_228;

int init() {
      // код доступен только после оплаты
   }

int deinit() {
   DeleteArrows();
   return (0);
}

int start() {
      // код доступен только после оплаты
   }
   int l_ind_counted_0 = IndicatorCounted();
   if (l_ind_counted_0 < 0) return (-1);
   int li_4 = MathMax(Bars - l_ind_counted_0, g_timeframe_204 / Period());
   ArrayCopySeries(gia_208, 5, NULL, g_timeframe_204);
   int l_index_8 = 0;
   int l_shift_12 = 0;
   while (l_index_8 < li_4) {
      if (Time[l_index_8] < gia_208[l_shift_12]) l_shift_12++;
      g_ibuf_180[l_index_8] = iStochastic(NULL, g_timeframe_204, g_period_120, gi_124, g_slowing_128, g_ma_method_132, g_price_field_136, MODE_MAIN, l_shift_12);
      g_ibuf_184[l_index_8] = iStochastic(NULL, g_timeframe_204, g_period_120, gi_124, g_slowing_128, g_ma_method_132, g_price_field_136, MODE_SIGNAL, l_shift_12);
      l_index_8++;
   }
   l_index_8 = li_4;
   l_shift_12 = 0;
   while (l_index_8 >= 0) {
      if (gi_156) {
         g_ibuf_188[l_index_8] = EMPTY_VALUE;
         g_ibuf_192[l_index_8] = EMPTY_VALUE;
         if (g_ibuf_180[l_index_8] > gd_140) g_ibuf_188[l_index_8] = 100;
         else {
            if (g_ibuf_180[l_index_8] < gd_148) g_ibuf_192[l_index_8] = 100;
            else {
               if (g_ibuf_180[l_index_8] > g_ibuf_180[l_index_8 + 1]) g_ibuf_196[l_index_8] = 100;
               else {
                  if (g_ibuf_180[l_index_8] < g_ibuf_180[l_index_8 + 1]) g_ibuf_200[l_index_8] = 100;
                  else {
                     g_ibuf_196[l_index_8] = g_ibuf_196[l_index_8 + 1];
                     g_ibuf_200[l_index_8] = g_ibuf_200[l_index_8 + 1];
                  }
               }
            }
         }
      } el

Показано первые 50% кода (символов: 6629)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
662,90₽ ≈ $8.10