(s) vq trend.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «(s) vq trend.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает индекс качества волатильности (VQI), изначально разработанный Томасом Стридсманом. Он анализирует ценовые данные, сглаживая их скользящими средними, и определяет направление тренда на основе накопленного значения VQI. Результат отображается в виде гистограммы с цветовой индикацией бычьего и медвежьего тренда.
Поддерживается работа в многотаймфреймном режиме с возможностью интерполяции. Индикатор предоставляет гибкую систему уведомлений: всплывающие сообщения, звуковые сигналы, push-уведомления и email-оповещения при смене тренда. Также можно настраивать отображение стрелок на графике при пересечении трендовых уровней.
Настройки включают параметры сглаживания, фильтрации, цвета и размеры элементов графика, а также различные типы алертов. Индикатор работает в отдельном окне с двумя буферами данных.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм для расчёта индикатора |
| PriceSmoothing | Период сглаживания цены для расчёта индекса |
| PriceSmoothingMethod | Метод сглаживания цены (тип скользящей средней) |
| MA1Period | Период первой скользящей средней для сглаживания цены |
| MA2Period | Период второй скользящей средней для сглаживания цены |
| Filter | Фильтр изменений накопленного VQI для определения тренда |
| inpHistoWidth | Ширина столбцов гистограммы |
| inpUpHistoColor | Цвет столбцов гистограммы бычьего тренда |
| inpDnHistoColor | Цвет столбцов гистограммы медвежьего тренда |
| alertsOn | Общее включение системы уведомлений |
| alertsOnCurrent | Проверка уведомлений на текущем баре вместо закрытого |
| alertsMessage | Включение всплывающих сообщений при смене тренда |
| alertsSound | Включение звуковых уведомлений при смене тренда |
| alertsNotify | Включение push-уведомлений при смене тренда |
| alertsEmail | Включение email-уведомлений при смене тренда |
| soundFile | Путь к звуковому файлу для алертов |
| arrowsVisible | Видимость стрелок на графике при смене тренда |
| arrowsOnNewest | Отрисовка стрелок на новом баре старшего таймфрейма |
| arrowsIdentifier | Уникальный идентификатор для объектов стрелок на графике |
| arrowsUpperGap | Отступ верхней стрелки от цены в единицах ATR |
| arrowsLowerGap | Отступ нижней стрелки от цены в единицах ATR |
| arrowsUpColor | Цвет стрелки для бычьего тренда |
| arrowsDnColor | Цвет стрелки для медвежьего тренда |
| arrowsUpCode | Код стрелки для бычьего тренда |
| arrowsDnCode | Код стрелки для медвежьего тренда |
| arrowsUpSize | Размер стрелки для бычьего тренда |
| arrowsDnSize | Размер стрелки для медвежьего тренда |
| Interpolate | Включает интерполяцию в многотаймфреймном режиме |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 2
extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT; // Time frame to use
extern int PriceSmoothing = 3;
extern ENUM_MA_METHOD PriceSmoothingMethod = MODE_LWMA;
extern int MA1Period = 20;
extern int MA2Period = 50;
extern int Filter = 1;
input int inpHistoWidth = 8; // Histogram bars width
input color inpUpHistoColor = C'45,170,242'; // Bullish color
input color inpDnHistoColor = C'245,95,125'; // Bearish color
input bool alertsOn = false; // Alerts true/false?
input bool alertsOnCurrent = false; // Alerts open bar true/false?
input bool alertsMessage = false; // Alerts pop-up message true/false?
input bool alertsSound = false; // Alerts sound true/false?
input bool alertsNotify = false; // Alerts push notification true/false?
input bool alertsEmail = false; // Alerts email true/false?
input string soundFile = "alert2.wav"; // Sound file
input bool arrowsVisible = false; // Arrows visible true/false?
input bool arrowsOnNewest = false; // Arrows drawn on newest bar of higher time frame bar true/false?
input string arrowsIdentifier = "vq Arrows1"; // Unique ID for arrows
input double arrowsUpperGap = 0.5; // Upper arrow gap
input double arrowsLowerGap = 0.5; // Lower arrow gap
input color arrowsUpColor = clrNONE; // Up arrow color
input color arrowsDnColor = clrNONE; // Down arrow color
input int arrowsUpCode = 221; // Up arrow code
input int arrowsDnCode = 222; // Down arrow code
input int arrowsUpSize = 2; // Up arrow size
input int arrowsDnSize = 2; // Down arrow size
input bool Interpolate = true; // Interpolate in mtf mode?
double sumVqi[];
double upH[];
double dnH[];
double sumVqi1[];
double sumVqi2[];
double Vqi[];
double trend[];
double atrend[],count[];
string indicatorFileName;
#define _mtfCall(_buff,_ind) iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,PriceSmoothing,PriceSmoothingMethod,MA1Period,MA2Period,Filter,inpHistoWidth,inpUpHistoColor,inpDnHistoColor,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsNotify,alertsEmail,soundFile,arrowsVisible,arrowsOnNewest,arrowsIdentifier,arrowsUpperGap,arrowsLowerGap,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,arrowsUpSize,arrowsDnSize,_buff,_ind)
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
string lookFor = arrowsIdentifier+":";
int lookForLength = StringLen(lookFor);
for (int i=ObjectsTotal()-1; i>=0; i--)
{
string objectName = ObjectName(i);
if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
}
}
int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// код доступен только после оплаты
}
int i,limit=fmin(rates_total-prev_calculated+1,rates_total-1); count[0]=limit;
if (TimeFrame!=_Period)
{
limit = (int)fmax(limit,fmin(rates_total-1,_mtfCall(5,0)*TimeFrame/_Показано первые 50% кода (символов: 6503)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.