#semaforalert.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «#semaforalert.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Это пользовательский индикатор для MetaTrader 5, который отображает на графике ценовые уровни в виде стрелок и формирует уведомления при появлении новых отметок. Индикатор работает в окне графика и использует несколько буферов для отрисовки символов разных уровней.
Индикатор поддерживает три независимых уровня построения, каждый из которых имеет собственные настройки периода, отклонения и шага. Для каждого уровня можно задать собственный символ отображения стрелок. Уровни можно включать и отключать, задавая нулевой или положительный период.
При появлении новой отметки на текущем баре индикатор может выводить всплывающее окно, отправлять письмо по электронной почте и воспроизводить звуковой файл. Уведомления настраиваются отдельно для каждого из трёх уровней, а также отдельно включаются общие переключатели для окна, почты и звука.
Настройки программы
| Настройка | Описание |
|---|---|
| Period1 | Период построения для первого уровня; при значении больше нуля уровень отображается. |
| Period2 | Период построения для второго уровня; при значении больше нуля уровень отображается. |
| Period3 | Период построения для третьего уровня; при значении больше нуля уровень отображается. |
| Dev_Step_1 | Строка с параметрами отклонения и шага для первого уровня, задаётся двумя числами через запятую. |
| Dev_Step_2 | Строка с параметрами отклонения и шага для второго уровня, задаётся двумя числами через запятую. |
| Dev_Step_3 | Строка с параметрами отклонения и шага для третьего уровня, задаётся двумя числами через запятую. |
| Symbol_1_Kod | Код символа стрелки для отображения отметок первого уровня. |
| Symbol_2_Kod | Код символа стрелки для отображения отметок второго уровня. |
| Symbol_3_Kod | Код символа стрелки для отображения отметок третьего уровня. |
| _____ | Пустой строковый параметр, служащий разделителем в списке настроек. |
| BoxAlerts | Включает или отключает вывод всплывающего окна с сообщением при появлении новой отметки. |
| EmailAlerts | Включает или отключает отправку уведомлений по электронной почте при появлении новой отметки. |
| SoundAlerts | Включает или отключает воспроизведение звукового файла при появлении новой отметки. |
| AlertLv1 | Включает или отключает уведомления для первого уровня построения. |
| AlertLv2 | Включает или отключает уведомления для второго уровня построения. |
| AlertLv3 | Включает или отключает уведомления для третьего уровня построения. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 clrLime
#property indicator_color2 clrOrangeRed
#property indicator_color3 clrYellow
#property indicator_color4 clrYellow
#property indicator_color5 clrLightGreen
#property indicator_color6 clrDarkSalmon
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 3
#property indicator_width4 3
#property indicator_width5 3
#property indicator_width6 3
extern double Period1=15;
extern double Period2=30;
extern double Period3=60;
extern string Dev_Step_1="5,3";
extern string Dev_Step_2="10,6";
extern string Dev_Step_3="20,12";
extern int Symbol_1_Kod=119;//159 small round
extern int Symbol_2_Kod=159;
extern int Symbol_3_Kod=82;
extern string _____ ="";
extern bool BoxAlerts = True ;
extern bool EmailAlerts = false ;
extern bool SoundAlerts = False ;
extern bool AlertLv1 = False ;
extern bool AlertLv2 = False ;
extern bool AlertLv3 = True ;
string AlertLv1HighSoundFile = "stage one level high.wav"; //any soundfile
string AlertLv1LowSoundFile = "stage one level low.wav";
string AlertLv2HighSoundFile = "stage two level high.wav";
string AlertLv2LowSoundFile = "stage two level low.wav";
string AlertLv3HighSoundFile = "stage three level high.wav";
string AlertLv3LowSoundFile = "stage three level low.wav";
double FP_BuferUp[];
double FP_BuferDn[];
double NP_BuferUp[];
double NP_BuferDn[];
double HP_BuferUp[];
double HP_BuferDn[];
int F_Period;
int N_Period;
int H_Period;
int Dev1;
int Stp1;
int Dev2;
int Stp2;
int Dev3;
int Stp3;
string symbol, tChartPeriod, tShortName ;
int digits, period ;
bool Trigger1, Trigger2, Trigger3 ;
int OldBars = -1 ;
color tColor = Yellow ;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
if( Bars != OldBars ) { Trigger1 = True ; Trigger2 = True ; Trigger3 = True ;}
if (Period1>0) CountZZ(FP_BuferUp,FP_BuferDn,Period1,Dev1,Stp1);
if (Period2>0) CountZZ(NP_BuferUp,NP_BuferDn,Period2,Dev2,Stp2);
if (Period3>0) CountZZ(HP_BuferUp,HP_BuferDn,Period3,Dev3,Stp3);
string alertlevel; string alertmessage;
alertmessage = symbol+" "+ tChartPeriod+ " at "+ DoubleToStr(Close[0] ,digits);
if ( Trigger1 && AlertLv1 )
{
if( FP_BuferUp[0] != 0 ) { Trigger1 = False ; alertlevel =" ZZS: Level 1 Low; ";
if(BoxAlerts) Alert(alertlevel,alertmessage);
if(EmailAlerts) SendMail(alertlevel,alertmessage);
if(SoundAlerts) PlaySound(AlertLv1LowSoundFile);
}
if( FP_BuferDn[0] != 0 ) { Trigger1 = False ; alertlevel =" ZZS: Level 1 High; ";
if(BoxAlerts) Alert(alertlevel,alertmessage);
if(EmailAlerts) SendMail(alertlevel,alertmessage);
if(SoundAlerts) PlaySound(AlertLv1HighSoundFile);
}
}
if ( Trigger2 && AlertLv2 )
{
if( NP_BuferUp[0] != 0 ) { Trigger2 = False ; alertlevel =" ZZS: Level 2 Low; ";
if(BoxAlerts) Alert(alertlevel,alertmessage);
if(EmailAlerts) SendMail(alertlevel,alertmessage);
if(SoundAlerts) PlaySound(AlerПоказано первые 50% кода (символов: 6945)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.