Trend direction & force
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «trend direction & force index.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «Trend direction & force» отображает аналитический осциллятор в отдельном окне с диапазоном от -1.0 до 1.0. Он построен на основе скользящих средних экспоненциального типа и позволяет оценивать направление и силу тренда на ценовых данных.
Основная линия индикатора рассчитывается через двойное сглаживание цены закрытия и нормализуется по максимальному абсолютному значению за заданный период. Дополнительно отображаются постоянные уровни верхней и нижней границы на отметках 0.05 и -0.05.
При выборе таймфрейма, отличного от текущего, индикатор автоматически переключается на расчёт данных соответствующего старшего таймфрейма, используя собственные пользовательские обработчики. Два параметра настройки определяют период скользящей средней и рабочий таймфрейм.
Индикатор предназначен для использования в платформе MetaTrader 5 в качестве стандартного пользовательского индикатора с отдельным окном отображения.
Настройки программы
| Настройка | Описание |
|---|---|
| trendPeriod | Период скользящей средней экспоненциального типа, используемый для расчёта основного значения индикатора. |
| timeFrame | Таймфрейм, на котором выполняется расчёт индикатора. Если значение отличается от текущего таймфрейма графика, индикатор использует данные старшего периода. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_minimum -1.0
#property indicator_maximum 1.0
#property indicator_buffers 3
#property indicator_color1 DimGray
#property indicator_color2 DimGray
#property indicator_color3 Red
extern int trendPeriod = 20;
extern string timeFrame = "Current time frame";
double g_ibuf_88[];
double g_ibuf_92[];
double g_ibuf_96[];
double g_ibuf_100[];
double g_ibuf_104[];
double g_ibuf_108[];
int gia_112[];
int g_timeframe_116;
string gs_120;
int init() {
// код доступен только после оплаты
}
int deinit() {
return (0);
}
int start() {
// код доступен только после оплаты
}
double ld_0;
double ld_8;
double ld_16;
double ld_24;
double ld_32;
int li_48;
int l_index_52;
int li_40 = IndicatorCounted();
if (li_40 < 0) return (-1);
if (li_40 > 0) li_40--;
int li_44 = Bars - li_40;
if (g_timeframe_116 != Period()) {
li_44 = MathMax(li_44, g_timeframe_116 / Period());
ArrayCopySeries(gia_112, 5, NULL, g_timeframe_116);
li_48 = 0;
l_index_52 = 0;
while (li_48 < li_44) {
if (Time[li_48] < gia_112[l_index_52]) l_index_52++;
g_ibuf_88[li_48] = iCustom(NULL, g_timeframe_116, gs_120, trendPeriod, 2, l_index_52);
g_ibuf_92[li_48] = 0.05;
g_ibuf_96[li_48] = -0.05;
li_48++;
}
return (0);
}
for (li_48 = li_44; li_48 >= 0; li_48--) g_ibuf_100[li_48] = iMA(NULL, 0, trendPeriod, 0, MODE_EMA, PRICE_CLOSE, li_48);
for (li_48 = li_44; li_48 >= 0; li_48--) {
g_ibuf_104[li_48] = iMAOnArray(g_ibuf_100, 0, trendPeriod, 0, MODE_EMA, li_48);
ld_0 = g_ibuf_100[li_48] - (g_ibuf_100[li_48 + 1]);
ld_8 = g_ibuf_104[li_48] - (g_ibuf_104[li_48 + 1]);
ld_16 = MathAbs(g_ibuf_100[li_48] - g_ibuf_104[li_48]) / Point;
ld_24 = (ld_0 + ld_8) / (2.0 * Point);
g_ibuf_108[li_48] = ld_16 * MathPow(ld_24, 3);
ld_32 = absHighest(g_ibuf_108, 3 * trendPeriod, li_48);
Показано первые 50% кода (символов: 3667)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.