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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.