! $ 2012 sema4x - white only.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «! $ 2012 sema4x - white only.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Этот файл является пользовательским индикатором для MetaTrader 5, написанным на языке MQL5. Индикатор отображается в окне графика и рассчитывает четыре буфера данных, которые визуализируются в виде стрелок двух цветов (DodgerBlue и Red) и белых маркеров. В коде используются устаревшие функции init(), deinit() и start(), что соответствует стилю MQL4, однако файл имеет расширение .mq5 и предназначен для платформы MetaTrader 5.
Индикатор строит две линии (уровни) на основе алгоритма, напоминающего ZigZag: первый уровень рассчитывается с использованием параметра Period1, второй — с Period2. Для каждого уровня предусмотрены отдельные настройки отклонения и шага, задаваемые строками Dev_Step_1 и Dev_Step_2. Отображение стрелок на графике зависит от значений буферов: ненулевые значения в буферах FP_BuferUp и FP_BuferDn соответствуют событиям первого уровня, а NP_BuferUp и NP_BuferDn — второго уровня.
При появлении ненулевого значения в буферах индикатор может выдавать уведомления: всплывающее окно Alert, электронное письмо SendMail или звуковой сигнал PlaySound. Эти уведомления управляются входными параметрами Box.Alerts, Email.Alerts, Sound.Alerts, а также Alert.Lv1 и Alert.Lv2 для раздельного включения уведомлений по уровням. Звуковые файлы заданы как boss.wav для всех событий.
В коде присутствуют вспомогательные функции для преобразования таймфрейма в строку и для разбора строковых параметров в массивы целых чисел. Индикатор не содержит торговых операций и не предназначен для автоматической торговли.
Настройки программы
| Настройка | Описание |
|---|---|
| _____ | Пустой строковый параметр, объявленный как extern. В коде не используется и не влияет на работу индикатора. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 DodgerBlue
#property indicator_color2 Red
#property indicator_color3 White
#property indicator_color4 White
#property indicator_width1 3
#property indicator_width2 3
#property indicator_width3 3
#property indicator_width4 3
double Period1=21;
double Period2=96;
string Dev_Step_1="1,1";
string Dev_Step_2="1,1";
int Symbol_1_Kod=164;
int Symbol_2_Kod=164;
extern string _____ ="";
extern bool Box.Alerts = false ;
extern bool Email.Alerts = false ;
extern bool Sound.Alerts = false ;
extern bool Alert.Lv1 = true ;
extern bool Alert.Lv2 = true ;
string Alert.Lv1.High.SoundFile = "boss.wav";
string Alert.Lv1.Low.SoundFile = "boss.wav";
string Alert.Lv2.High.SoundFile = "boss.wav";
string Alert.Lv2.Low.SoundFile = "boss.wav";
double FP_BuferUp[];
double FP_BuferDn[];
double NP_BuferUp[];
double NP_BuferDn[];
int F_Period;
int N_Period;
int Dev1;
int Stp1;
int Dev2;
int Stp2;
string symbol, tChartPeriod, tShortName ;
int digits, period ;
bool Trigger1, Trigger2;
int OldBars = -1 ;
color tColor = Yellow ;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
if( Bars != OldBars ) { Trigger1 = True; Trigger2 = True;}
if (Period1>0) CountZZ(FP_BuferUp,FP_BuferDn,Period1,Dev1,Stp1);
if (Period2>0) CountZZ(NP_BuferUp,NP_BuferDn,Period2,Dev2,Stp2);
string alert.level; string alert.message;
alert.message = symbol+" "+ tChartPeriod+ " at "+ DoubleToStr(Close[0] ,digits);
if ( Trigger1 && Alert.Lv1 )
{
if( FP_BuferUp[0] != 0 ) { Trigger1 = False ; alert.level =" ZZS: Level 1 Low; ";
if(Box.Alerts) Alert(alert.level,alert.message);
if(Email.Alerts) SendMail(alert.level,alert.message);
if(Sound.Alerts) PlaySound(Alert.Lv1.Low.SoundFile);
}
if( FP_BuferDn[0] != 0 ) { Trigger1 = False ; alert.level =" ZZS: Level 1 High; ";
if(Box.Alerts) Alert(alert.level,alert.message);
if(Email.Alerts) SendMail(alert.level,alert.message);
if(Sound.Alerts) PlaySound(Alert.Lv1.High.SoundFile);
}
}
if ( Trigger2 && Alert.Lv2 )
{
if( NP_BuferUp[0] != 0 ) { Trigger2 = False ; alert.level =" ZZS: Level 2 Low; ";
if(Box.Alerts) Alert(alert.level,alert.message);
if(Email.Alerts) SendMail(alert.level,alert.message);
if(Sound.Alerts) PlaySound(Alert.Lv2.Low.SoundFile);
}
if( NP_BuferDn[0] != 0 ) { Trigger2 = False ; alert.level =" ZZS: Level 2 High; ";
if(Box.Alerts) Alert(alert.level,alert.message);
if(Email.Alerts) SendMail(alert.level,alert.message);
Показано первые 50% кода (символов: 5326)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.