precision trend histo mtf + alerts.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «precision trend histo mtf + alerts.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор отображает в отдельном окне два гистограммных буфера (зелёный и красный), отражающих текущее направление тренда. Расчёт основан на средней величине диапазона High–Low за заданный период, масштабированной коэффициентом чувствительности, и сравнении цены закрытия с верхней и нижней границами канала.
Поддерживается мультитаймфреймовый режим: при выборе таймфрейма, отличного от текущего графика, данные получаются через вызов iCustom на старшем графике, что позволяет анализировать тренд на более высоких таймфреймах прямо на текущем графике.
Встроена система уведомлений с несколькими типами: всплывающие окна, push-уведомления, звуковые сигналы, email и общие уведомления платформы. Триггером служит появление нового сигнала тренда на указанном баре — текущем (открытом) или уже закрытом.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм, на котором рассчитывается индикатор. Если отличается от текущего графика, активируется мультитаймфреймовый режим. |
| avgPeriod | Количество баров, используемых для расчёта средней величины диапазона цены. |
| sensitivity | Коэффициент чувствительности, масштабирующий ширину канала тренда. |
| alertsOn | Включает или отключает все типы уведомлений о сигналах тренда. |
| alertsOnCurrent | Определяет, на каком баре срабатывают уведомления: на текущем открытом баре или на уже закрытом. |
| alertsMessage | Включает всплывающие сообщения на графике при появлении сигнала. |
| alertsPushNotif | Включает отправку push-уведомлений на мобильные устройства. |
| alertsSound | Включает воспроизведение звукового сигнала при появлении нового сигнала тренда. |
| alertsEmail | Включает отправку уведомлений о сигналах тренда по электронной почте. |
| alertsNotify | Включает отправку общих уведомлений через платформу. |
| soundFile | Путь к звуковому файлу, который воспроизводится при включённых звуковых уведомлениях. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 clrGreen
#property indicator_color2 clrRed
#property indicator_width1 2
#property indicator_width2 2
#property indicator_minimum 0
#property indicator_maximum 1
#property strict
extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT; // Time frame
extern int avgPeriod = 30; // Average period
extern double sensitivity = 3; // Sensitivity
extern bool alertsOn = true; // Turn alerts on?
extern bool alertsOnCurrent = false; // Alerts on current (still opened) bar?
extern bool alertsMessage = true; // Alerts showing a pop-up message?
extern bool alertsPushNotif = false; // Alerts sending a push notification?
extern bool alertsSound = false; // Alerts playing sound?
extern bool alertsEmail = false; // Alerts sending email?
extern bool alertsNotify = false; // Alerts send notification?
extern string soundFile = "alert2.wav"; // Alerts Sound File to use
double upBuffer[],dnBuffer[],count[];
string indicatorFileName;
#define _mtfCall(_buff,_ind) iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,avgPeriod,sensitivity,alertsOn,alertsOnCurrent,alertsMessage,alertsPushNotif,alertsSound,alertsEmail,alertsNotify,soundFile,_buff,_ind)
int init()
{
// код доступен только после оплаты
}
int deinit() { return(0); }
double wrkBuffer[][7];
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = fmin(Bars-counted_bars,Bars-1); count[0]=limit;
if (TimeFrame!=_Period)
{
limit = (int)fmax(limit,fmin(Bars-1,_mtfCall(3,0)*TimeFrame/_Period));
for (int i=limit;i>=0 && !_StopFlag; i--)
{
int y = iBarShift(NULL,TimeFrame,Time[i]);
upBuffer[i] = _mtfCall(0,y);
dnBuffer[i] = _mtfCall(1,y);
}
return(0);
}
if (ArrayRange(wrkBuffer,0) != Bars) ArrayResize(wrkBuffer,Bars);
for(int i=limit, r=Bars-i-1; i>=0; i--,r++)
{
upBuffer[i] = EMPTY_VALUE;
dnBuffer[i] = EMPTY_VALUE;
wrkBuffer[r][0] = High[i]-Low[i];
wrkBuffer[r][2] = wrkBuffer[r][0];
int k=1; for (; k<avgPeriod && (r-k)>=0; k++) wrkBuffer[r][2] += wrkBuffer[r-k][0];
wrkBuffer[r][2] /= k;
wrkBuffer[r][2] *= sensitivity;
if (i==(Bars-1))
{
wrkBuffer[r][1] = 0;
wrkBuffer[r][3] = Close[i]-wrkBuffer[r][2];
wrkBuffer[r][4] = Close[i]+wrkBuffer[r][2];
wrkBuffer[r][5] = CloПоказано первые 50% кода (символов: 4476)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.