FILTER-EXTRA
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «filter-extra.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
FILTER-EXTRA — пользовательский индикатор для MetaTrader 4, отображающий двухцветные гистограммы в отдельном окне. Индикатор выявляет точки разворота ценового движения на основе анализа экстремумов за заданный период и отрисовывает результат в виде двух буферов (красный и синий). Поддерживает расчёт на отличном от текущего таймфрейме через вызов самого себя как стороннего индикатора.
Индикатор может дополнительно отображать стрелки-маркеры на графике в местах обнаруженных событий, используя параметры цвета, размера и смещения. Система уведомлений позволяет настраивать различные каналы оповещения (звук, push-уведомления, e-mail, всплывающие сообщения) с фильтрацией по текущему и предыдущему бару.
Настройки охватывают параметры анализа, визуализации и уведомлений. Все параметры объявлены как extern-переменные и доступны в диалоге настроек терминала.
Настройки программы
| Настройка | Описание |
|---|---|
| timeFrame | Таймфрейм — Таймфрейм для расчёта (целое число) |
| Length | Длина диапазона — Длина диапазона для поиска экстремумов (целое число) |
| barsback | Количество баров назад — Количество баров для анализа (целое число) |
| alertsOn | Уведомления включены — Включить систему уведомлений (переключатель) |
| alertsOnCurrent | Уведомления для текущего бара — Отправлять уведомления для текущего бара (переключатель) |
| alertsMessage | Всплывающие сообщения — Включить всплывающие сообщения (переключатель) |
| alertsSound | Звуковое оповещение — Включить звуковое оповещение (переключатель) |
| alertsNotify | Push-уведомления — Включить push-уведомления (переключатель) |
| alertsEmail | Email-уведомления — Включить отправку email-уведомлений (переключатель) |
| soundfile | Звуковой файл — Имя звукового файла для оповещения (текстовый параметр) |
| arrowsVisible | Отображать стрелки — Отображение стрелок на графике (переключатель) |
| arrowsIdentifier | Идентификатор стрелок — Идентификатор стрелок на графике (текстовый параметр) |
| arrowsDisplacement | Смещение стрелок — Смещение стрелок от цены (число) |
| arrowsUpColor | Цвет стрелки вверх — Цвет стрелки вверх (цвет) |
| arrowsDnColor | Цвет стрелки вниз — Цвет стрелки вниз (цвет) |
| arrowsUpCode | Код стрелки вверх — Код стрелки вверх (целое число) |
| arrowsDnCode | Код стрелки вниз — Код стрелки вниз (целое число) |
| arrowsUpSize | Размер стрелки вверх — Размер стрелки вверх (целое число) |
| arrowsDnSize | Размер стрелки вниз — Размер стрелки вниз (целое число) |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_width1 3
#property indicator_width2 3
extern int timeFrame = 1440;
extern int Length = 1;
extern int barsback = 500;
extern bool alertsOn = true;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsSound = true;
extern bool alertsNotify = false;
extern bool alertsEmail = false;
extern string soundfile = "alert2.wav";
extern bool arrowsVisible = true;
extern string arrowsIdentifier = "filterArrows";
extern double arrowsDisplacement = 0.1;
extern color arrowsUpColor = DeepSkyBlue;
extern color arrowsDnColor = Red;
extern int arrowsUpCode = 233;
extern int arrowsDnCode = 234;
extern int arrowsUpSize = 1;
extern int arrowsDnSize = 1;
double buffer1[];
double buffer2[];
bool cer;
bool cer2;
bool cer3 = TRUE;
string fileName;
int init() {
// код доступен только после оплаты
}
int deinit() {
string lookFor = arrowsIdentifier+":";
int lookForLength = StringLen(lookFor);
for (int i=ObjectsTotal()-1; i>=0; i--)
{
string objectName = ObjectName(i);
if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
}
return (0);
}
int start() {
// код доступен только после оплаты
}
if (timeFrame!=Period())
{
int limit = MathMin(Bars-1,barsback*timeFrame/Period());
for (int i = limit; i >= 0; i--)
{
int y = iBarShift(NULL,timeFrame,Time[i]);
buffer1[i] = iCustom(NULL,timeFrame,fileName,0,Length,barsback,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsNotify,alertsEmail,soundfile,arrowsVisible,arrowsIdentifier,arrowsDisplacement,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,arrowsUpSize,arrowsDnSize,0,y);
buffer2[i] = iCustom(NULL,timeFrame,fileName,0,Length,barsback,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsNotify,alertsEmail,soundfile,arrowsVisible,arrowsIdentifier,arrowsDisplacement,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,arrowsUpSize,arrowsDnSize,1,y);
}
return(0);
}
double low1;
double high1;
double cero[10000][3];
if (!cer3) return (0);
int pep = 0;
int bep = 0;
int tep = 0;
double high60 = High[barsback];
double low68 = Low[barsback];
int li3 = barsback;
int li6 = barsback;
for (int li2 = barsback; li2 >= 0; li2--) {
low1 = 10000000;
high1 = -100000000;
for (int li8 = li2 + Length; li8 >= li2 + 1; li8--) {
if (Low[li8] < low1) low1 = Low[li8];
if (High[li8] > high1) high1 = High[li8];
}
if (Low[li2] < low1 && High[li2] > high1) {
bep = 2;
if (pep == 1) li3 = li2 + 1;
if (pep == -1) li6 = li2 + 1;Показано первые 50% кода (символов: 4413)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.