ArrZZx2
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «arrzzx2 alerts.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
ArrZZx2 — пользовательский индикатор для MetaTrader 4, отображающий аналитические линии и стрелки трендов на графике цены. Индикатор рассчитывает несколько вспомогательных массивов данных на основе ценовой информации и отрисовывает их в виде линий и стрелок, обозначающих изменения направления тренда. Также предоставляет систему уведомлений о событиях с возможностью отправки сообщений, звуковых сигналов и электронной почты.
Индикатор работает в окне графика и использует 8 буферов для отрисовки различных аналитических серий. Настройки позволяют управлять периодами расчёта, отображением вспомогательных линий и типом ценовых данных для вычислений.
Система уведомлений поддерживает три канала: всплывающие сообщения на графике, звуковые оповещения и email-рассылку. Все каналы управляются отдельными переключателями, а также можно выбрать уведомления только для текущего бара или для всех баров.
Настройки программы
| Настройка | Описание |
|---|---|
| SR | Период скользящей средней SR — Целочисленный параметр, задающий период скользящей средней для начальных расчётов. |
| SRZZ | Период ZigZag SRZZ — Целочисленный параметр, определяющий период поиска экстремумов для второй линии ZigZag. |
| MainRZZ | Основной период ZigZag — Целочисленный параметр, задающий основной период расчёта ZigZag. |
| FP | Шаг экстремумов FP — Целочисленный параметр, определяющий шаг поиска экстремумов для вспомогательной линии. |
| SMF | Коэффициент сглаживания — Целочисленный параметр, влияющий на сглаживание вспомогательной средней. |
| DrawZZ | Отрисовка ZigZag — Переключатель отображения вспомогательной линии ZigZag на графике. |
| PriceConst | Тип ценовых данных — Целочисленный параметр, выбирающий тип ценовых данных для расчётов (0 — Close, 1 — Open, 4 — Median, 5 — Typical, 6 — Weighted). |
| alertsOn | Включить уведомления — Главный переключатель включения системы уведомлений об изменениях тренда. |
| alertsOnCurrent | Уведомления для текущего бара — Переключатель, определяющий, генерировать ли уведомления только для текущего бара или для всех баров. |
| alertsMessage | Всплывающие сообщения — Переключатель отправки всплывающих сообщений об событиях на графике. |
| alertsSound | Звуковые оповещения — Переключатель воспроизведения звукового сигнала при наступлении события. |
| alertsEmail | Email-уведомления — Переключатель отправки уведомлений об событиях по электронной почте. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Yellow
#property indicator_color2 RoyalBlue
#property indicator_color3 Blue
#property indicator_color4 Blue
#property indicator_color5 Blue
#property indicator_color6 Red
#property indicator_color7 Blue
#property indicator_color8 Red
extern int SR = 3;
extern int SRZZ = 12;
extern int MainRZZ = 20;
extern int FP = 21;
extern int SMF = 3;
extern bool DrawZZ = false;
extern int PriceConst = 0;
extern bool alertsOn = false;
extern bool alertsOnCurrent = false;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsEmail = false;
double Lmt[];
double LZZ[];
double SA[];
double SM[];
double Up[];
double Dn[];
double pUp[];
double pDn[];
int LTF[6] = { 0,0,0,0,0,0 };
int STF[5] = { 0,0,0,0,0 };
int MaxBar, nSBZZ, nLBZZ, SBZZ, LBZZ;
bool First=true;
int prevBars=0;
int init()
{
// код доступен только после оплаты
}
int deinit() { return(0); }
int start()
{
// код доступен только после оплаты
}
void doAlert(string doWhat)
{
static string previousAlert="nothing";
static datetime previousTime;
string message;
if (previousAlert != doWhat || previousTime != Time[0]) {
previousAlert = doWhat;
previousTime = Time[0];
message = StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," ArrZZx2 ",doWhat);
if (alertsMessage) Alert(message);
if (alertsEmail) SendMail(StringConcatenate(Symbol()," ArrZZx2"),message);
if (alertsSound) PlaySound("alert2.wav");
}
}
void MainCalculation(int Pos)
{
if((Bars-Pos)>(SR+1)) SACalc(Pos); else SA[Pos]=0;
if((Bars-Pos)>(FP+SR+2)) SMCalc(Pos); else SM[Pos]=0;
return;
}
void SACalc(int Pos)
{
int sw, i, w, ww, Shift; double sum;
switch(PriceConst)
{
case 0:
SA[Pos]=iMA(NULL,0,SR+1,0,MODE_LWMA,PRICE_CLOSE,Pos);
break;
case 1:
SA[Pos]=iMA(NULL,0,SR+1,0,MODE_LWMA,PRICE_OPEN,Pos);
break;
case 4:
SA[Pos]=iMA(NULL,0,SR+1,0,MODE_LWMA,PRICE_MEDIAN,Pos);
break;
case 5:
SA[Pos]=iMA(NULL,0,SR+1,0,MODE_LWMA,PRICE_TYPICAL,Pos);
break;
case 6:
SA[Pos]=iMA(NULL,0,SR+1,0,MODE_LWMA,PRICE_WEIGПоказано первые 50% кода (символов: 6748)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.