ProtoFilter
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «protofilter.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
ProtoFilter — индикатор для MetaTrader 5, который анализирует ценовые данные и отображает результаты в виде гистограмм в отдельном окне. Индикатор использует сглаживание ценовых данных (High, Low, Close) с настраиваемыми параметрами периода и фазы, а затем определяет направление движения на основе сравнения сглаженных значений. Результаты отрисовываются двумя цветными линиями-гистограммами: зелёной и красной.
Индикатор поддерживает работу на разных временных интервалах, включая возможность анализа данных с более высоких или низких таймфреймов. Также предусмотрены два специальных режима работы для взаимодействия с другими индикаторами.
Система уведомлений позволяет настраивать оповещения при смене направления индикатора: текстовые сообщения, звуковые сигналы и электронная почта. Уведомления срабатывают только при изменении сигнала, что предотвращает повторные срабатывания.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Временной период для анализа данных. Можно задать строковое имя таймфрейма (например, H1, D1) или специальное значение calculate для расчёта, либо getBarsCount для получения количества баров. |
| SmoothPeriod | Период сглаживания, определяющий количество баров, используемых для расчёта сглаженных значений ценовых данных. |
| SmoothPhase | Фаза сглаживания, задающая дополнительный параметр, влияющий на характер расчёта сглаженной кривой. |
| alertsOn | Главный переключатель включения системы уведомлений о смене направления индикатора. |
| alertsOnCurrent | Переключатель, определяющий, проверять уведомления только на текущем баре или на предыдущем. |
| alertsMessage | Переключатель отображения текстового уведомления в терминале при смене направления индикатора. |
| alertsSound | Переключатель воспроизведения звукового сигнала при смене направления индикатора. |
| alertsEmail | Переключатель отправки электронной почты при смене направления индикатора. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_minimum 0.0
#property indicator_maximum 1.0
#property indicator_buffers 2
#property indicator_color1 DarkGreen
#property indicator_color2 Red
extern string TimeFrame = "current time frame";
extern int SmoothPeriod = 10;
extern int SmoothPhase = 0;
extern bool alertsOn = FALSE;
extern bool alertsOnCurrent = FALSE;
extern bool alertsMessage = FALSE;
extern bool alertsSound = FALSE;
extern bool alertsEmail = FALSE;
double buffi1[];
double buffi2[];
double buffi3[];
int timeframe1;
bool cierto = FALSE;
bool cierto2 = FALSE;
string palabra;
string nothing = "nothing";
datetime tiempo;
string gsa156[] = {"M1", "M5", "M15", "M30", "H1", "H4", "D1", "W1", "MN"};
int gia160[] = {1, 5, 15, 30, 60, 240, 1440, 10080, 43200};
double gda164[][30];
int init() {
// код доступен только после оплаты
}
int start() {
// код доступен только после оплаты
}
void manageAlerts() {
int contador;
if ((!cierto) && alertsOn) {
if (alertsOnCurrent) contador = 0;
else contador = 1;
contador = iBarShift(NULL, 0, iTime(NULL, timeframe1, contador));
if (buffi3[contador] != buffi3[contador + 1]) {
if (buffi3[contador] == 1.0) {
doAlert(contador, "up");
return;
}
doAlert(contador, "down");
}
}
}
void doAlert(int cion, string as4) {
string concatenado;
if (nothing != as4 || tiempo != Time[cion]) {
nothing = as4;
tiempo = Time[cion];
concatenado = StringConcatenate(Symbol(), " at ", TimeToStr(TimeLocal(), TIME_SECONDS), " ProtoFilter direction changed to", as4);
if (alertsMessage) Alert(concatenado);
if (alertsEmail) SendMail(StringConcatenate(SymboПоказано первые 50% кода (символов: 5729)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.