market_statistics_v4_1.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «market_statistics_v4_1.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 4, рассчитывающий и отображающий рыночные статистики: PVP (Point of Volume), VWAP (Volume Weighted Average Price), полосы стандартного отклонения (SD1, SD2, SD3) и гистограмму объёмов. Расчёт ведётся от выбранной начальной точки, определяемой параметрами смещения назад по дням и временем начала. Гистограмма объёмов визуализируется графическими объектами на графике. Индикатор перерисовывает данные при начале нового бара и управляет видимостью каждого элемента через отдельные переключатели.
Настройки программы
| Настройка | Описание |
|---|---|
| daysBack | Количество дней назад — Задаёт, сколько дней назад от текущего бара начинается период расчёта статистики. |
| startHour | Час начала — Час дня, с которого начинается расчётный период при заданном смещении дней назад. |
| startMinute | Минута начала — Минута часа, с которой начинается расчётный период. |
| HistogramAmplitude | Амплитуда гистограммы — Определяет масштаб отображения гистограммы объёмов в барах. |
| Show_SD1 | Показать SD1 — Включает или отключает отображение полосы стандартного отклонения первого уровня. |
| Show_SD2 | Показать SD2 — Включает или отключает отображение полосы стандартного отклонения второго уровня. |
| Show_SD3 | Показать SD3 — Включает или отключает отображение полосы стандартного отклонения третьего уровня. |
| Show_Histogram | Показать гистограмму — Включает или отключает отрисовку гистограммы объёмов. |
| Show_PVP | Показать PVP — Включает или отключает отображение линии точки объёма (PVP). |
| Show_VWAP | Показать VWAP — Включает или отключает отображение линии взвешенного по объёму среднего цены (VWAP). |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Red //PVP
#property indicator_width1 2
#property indicator_color2 Aqua //VWAP
#property indicator_width2 2
#property indicator_color3 Green //SD1Pos
#property indicator_width3 1
#property indicator_style3 2
#property indicator_color4 Red //SD1Neg
#property indicator_width4 1
#property indicator_style4 2
#property indicator_color5 DarkOliveGreen//SD2Pos
#property indicator_width5 1
#property indicator_style5 2
#property indicator_color6 Crimson //SD2Neg
#property indicator_width6 1
#property indicator_style6 2
#property indicator_color7 DarkGreen //SD2Pos
#property indicator_width7 1
#property indicator_style7 2
#property indicator_color8 FireBrick //SD2Neg
#property indicator_width8 1
#property indicator_style8 2
extern int daysBack=1;
extern int startHour=22;
extern int startMinute=00;
extern int HistogramAmplitude = 50;
extern bool Show_SD1 = true;
extern bool Show_SD2 = true;
extern bool Show_SD3 = true;
extern bool Show_Histogram = true;
extern bool Show_PVP = true;
extern bool Show_VWAP = true;
double PVP[];
double VWAP[];
double SD1Pos[];
double SD1Neg[];
double SD2Pos[];
double SD2Neg[];
double SD3Pos[];
double SD3Neg[];
double Hist[]; // drawn specifically
double OpenTime = 0; // To check if we have a new bar
string OBJECT_PREFIX = "VolumeHistogram_";
int items; // numbers of items inside volume histogram
int Bars_Back = 0; // Shows the starting bar for given date
double SD; // standart deviation
int FindStartIndex()
{
int dayofweektoday= TimeDayOfWeek(Time[0]);
int days=0;
for (int i=1; i<=Bars; i++) {
if ((TimeDayOfWeek(Time[i])!=dayofweektoday)||(daysBack==0)) {
days++;
dayofweektoday=TimeDayOfWeek(Time[i]);
if ((daysBack==days)||(daysBack==0))
{
while ((TimeHour(Time[i])>startHour)||(TimeMinute(Time[i])>startMinute))
{
i++;
}
ObjectSet( "Starting_Time", OBJPROP_TIME1, Time[i]);
ObjectSet("Starting_Time", OBJPROP_COLOR, Red);
ObjectCreate("Starting_Time", OBJ_VLINE, 0, Time[i], 0);
return (i);
}
}
}
return( 0);
}
int init()
{
// код доступен только после оплаты
}
void ObDeleteObjectsByPrefix(string Prefix)
{
int L = StringLen(Prefix);
int i = 0;
Показано первые 50% кода (символов: 5514)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.