Hawkeye Volume
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «!!!_hawkeye_volume_indicator_mtf_+_alerts_+_arrows_2.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Hawkeye Volume — это пользовательский индикатор для платформы MetaTrader 4, предназначенный для анализа объёма торгов с возможностью привязки к старшим таймфреймам. Индикатор отображает данные в отдельном окне графика, используя гистограммы и линию скользящей средней.
Индикатор классифицирует объём на каждом баре по трём категориям: бычий (зелёный), медвежий (красный) и нейтральный (белый), исходя из соотношения цены открытия, закрытия и экстремумов бара. Параллельно рассчитывается скользящая средняя объёма (tick volume) с выбором типа и периода.
Поддерживается работа в режиме нескольких таймфреймов: расчёт выполняется на выбранном старшем таймфрейме с возможностью интерполяции значений на бары текущего графика. Доступна настройка количества анализируемых баров.
Встроена система уведомлений с поддержкой поп-up сообщений, звуковых сигналов, push-уведомлений и email-рассылки. Также предусмотрено отображение стрелок-маркеров при смене направления тренда объёма с настраиваемыми цветом, размером и позиционированием.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Таймфрейм, на котором выполняется расчёт индикатора (текущий или старший) |
| Ma length (Length) | Длина скользящей средней — Количество периодов для расчёта скользящей средней объёма |
| Ma type (MaMode) | Тип скользящей средней — Тип скользящей средней: SMA, EMA, SMMA или LWMA |
| Number of bars (0=all bars) (NumberOfBars) | Количество баров — Количество баров для расчёта (0 — все бары) |
| Alerts on true/false? (alertsOn) | Уведомления включены — Включить или выключить систему уведомлений |
| Alerts on current bar true/false? (alertsOnCurrent) | Уведомления на текущем баре — Отправлять уведомления при наступлении события на текущем баре |
| Alerts pop-up message true/false? (alertsMessage) | Поп-up сообщения — Показывать всплывающие сообщения при срабатывании событий |
| Alerts sound true/false? (alertsSound) | Звуковые уведомления — Воспроизводить звуковой сигнал при срабатывании событий |
| Alerts push notification true/false? (alertsNotify) | Push-уведомления — Отправлять push-уведомления на мобильное устройство |
| Alerts email true/false? (alertsEmail) | Email-уведомления — Отправлять уведомления на электронную почту |
| Alerts sound file (soundFile) | Файл звука — Путь к звуковому файлу для уведомлений |
| Arrows visible true/false? (arrowsVisible) | Стрелки видны — Отображать стрелки-маркеры на графике |
| Arrows on every signal true/false? (arrOnEverySig) | Стрелки на каждом сигнале — Рисовать стрелки при каждом сигнале смены тренда |
| Arrows drawn on newest bar of higher time frame bar true/false? (arrowsOnNewest) | Стрелки на новом баре — Рисовать стрелки на новейшем баре старшего таймфрейма |
| Unique ID for arrows (arrowsId) | Идентификатор стрелок — Уникальный идентификатор объектов-стрелок на графике |
| Upper arrow gap (arrowsUpperGap) | Отступ стрелки вверх — Отступ верхней стрелки от цены верха бара (в единицах ATR) |
| Lower arrow gap (arrowsLowerGap) | Отступ стрелки вниз — Отступ нижней стрелки от цены низа бара (в единицах ATR) |
| Up arrow color (arrowsUpColor) | Цвет стрелки вверх — Цвет стрелки восходящего тренда |
| Down arrow color (arrowsDnColor) | Цвет стрелки вниз — Цвет стрелки нисходящего тренда |
| Up arrow code (arrowsUpCode) | Код стрелки вверх — Код графического символа для стрелки восходящего тренда |
| Down arrow code (arrowsDnCode) | Код стрелки вниз — Код графического символа для стрелки нисходящего тренда |
| Up arrow size (arrowsUpSize) | Размер стрелки вверх — Размер стрелки восходящего тренда |
| Down arrow size (arrowsDnSize) | Размер стрелки вниз — Размер стрелки нисходящего тренда |
| Interpolate in mtf mode (Interpolate) | Интерполяция (MTF) — Интерполировать значения индикатора на бары текущего таймфрейма при работе в режиме MTF |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 clrDimGray
#property indicator_color2 clrLime
#property indicator_color3 clrRed
#property indicator_color4 clrWhite
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 2
#property strict
enum enTimeFrames
{
tf_cu = 0, // Current time frame
tf_m1 = PERIOD_M1, // 1 minute
tf_m5 = PERIOD_M5, // 5 minutes
tf_m15 = PERIOD_M15, // 15 minutes
tf_m30 = PERIOD_M30, // 30 minutes
tf_h1 = PERIOD_H1, // 1 hour
tf_h4 = PERIOD_H4, // 4 hours
tf_d1 = PERIOD_D1, // Daily
tf_w1 = PERIOD_W1, // Weekly
tf_mn1 = PERIOD_MN1, // Monthly
tf_n1 = -1, // First higher time frame
tf_n2 = -2, // Second higher time frame
tf_n3 = -3, // Third higher time frame
tf_cus = 12345678 // Custom time frame
};
extern enTimeFrames TimeFrame = tf_cu;
input int Length = 50; // Ma length
enum enMaTypes
{
ma_sma, // Simple moving average
ma_ema, // Exponential moving average
ma_smma, // Smoothed MA
ma_lwma, // Linear weighted MA
};
input enMaTypes MaMode = ma_ema; // Ma type
input int NumberOfBars = 500; // Number of bars (0=all bars)
input bool alertsOn = true; // Alerts on true/false?
input bool alertsOnCurrent = false; // Alerts on current bar true/false?
input bool alertsMessage = true; // 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"; // Alerts sound file
input bool arrowsVisible = false; // Arrows visible true/false?
input bool arrOnEverySig = true; // Arrows on every signal true/false?
input bool arrowsOnNewest = false; // Arrows drawn on newest bar of higher time frame bar true/false?
input string arrowsId = "vol Arrows1"; // Unique ID for arrows
input double arrowsUpperGap = 1.0; // Upper arrow gap
input double arrowsLowerGap = 1.0; // Lower arrow gap
input color arrowsUpColor = clrBlue; // Up arrow color
input color arrowsDnColor = clrCrimson; // Down arrow color
input int arrowsUpCode = 159; // Up arrow code
input int arrowsDnCode = 159; // 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 v4[],GREEN[],RED[],WHITE[],trend[],valc[],count[];
string indicatorFileName;
#define _mtfCall(_buff,_ind) iCustom(NULL,TimeFrame,indicatorFileName,tf_cu,Length,MaMode,NumberOfBars,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsNotify,alertsEmail,soundFile,arrowsVisible,arrOnEverySig,arrowsOnNewest,arrowsId,arrowsUpperGap,arrowsLowerGap,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,arrowsUpSize,arrowsDnSize,_buff,_ind)
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason) { ObjectsDeleteAll(0,arrowsId+":"); }
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,r,limit = rates_total-(prev_calculated>0 ? prev_calculated : 1); count[0] = limit;
SetIndexDrawBegin(0,(NumberOfBars<=0?0:rates_total-NumberOfBars+1));
SetIndexDrawBegin(1,(NumberOfBars<=0?0:rates_total-NumberOfBars+1));
SetIndexDrawBegin(2,(NumberOfBars<=0?0:rates_total-NumberOfBars+1));
SetIndexDrawBegin(3,(NumberOfBars<=0?0:rates_total-NumberOfBars+1));
if (TimeFrame != _Period)
{
limit = (int)fmax(limit,fmin(rates_total-1,_mtfCall(6,0)*TimeFrame/_Period));
for(i=limit; i>=0 && !_StopFlag; i--)
{
int y = iBarShift(NULL,TimeFrame,time[i]);
v4[i] = _mtfCall(0,y);
GREEN[i] = _mtfCall(1,y);
RED[i] = _mtfCall(2,y);
WHITE[i] = _mtfCall(3,y);
if (!Interpolate || (i>0 && y==iBarShift(NULL,TimeFrame,time[i-1]))) continue;
#define _interpolate(buff) buff[i+k] = buff[i]+(buff[i+n]-buff[i])*k/n
int n,k; datetime btime Показано первые 50% кода (символов: 8926)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.