Амплитуда колебаний рынка. Часть 1. Индикатор для измерения амплитуды ProAmpl_01

Амплитуда колебаний рынка. Часть 1. для измерения амплитуды ProAmpl_01.

Начинающий изучать поведение котировок рынка ФОРЕКС часто не знает с чего начать и что именно стоит изучать в этом странном на вид графике. От чего оттолкнуться? Начинать, конечно, нужно с самого простого и понятного.

На стандартном графике курса валюты мы видим бары, которые характеризуются четырьмя числами каждый: открытие (Open), максимум (High), минимум (Low), закрытие(Close). Цены открытия и закрытия не имеют на ФОРЕКС такого большого значения как на фондовом рынке, потому как рынок ФОРЕКС работает беспрерывно. Некоторую полезную информацию можно извлечь и из них, но об этом позже.

Максимум и минимум цены дают нам информацию о том, в каком диапазоне колебалась котировка в течение времени бара. Величина этого диапазона может дать нам достаточно полезную для торговли информацию. Вот этот диапазон, т.е. амплитуду колебаний котировки я и предлагаю изучить.

Естественно, что, просто взирая на график с умным видом, мы там кое-что про амплитуду, может и сможем усмотреть, но занятие это не самое эффективное и занимательное. Конечно же, будет наиболее полезно привлечь к такой работе компьютер. Для быстрого и наглядного изучения амплитуды котировок я написал простейший индикатор ProAmpl_01, который вычисляет амплитуду каждого бара истории котировок и считает сколько раз в истории встречались бары с такой же амплитудой. Текст индикатора для удобства изучения я постарался достаточно подробно прокомментировать, находится он в конце статьи.

Скачать индикатор ProAmpl_01.mq4 для МетаТрейдера 4 (архивирован zip).

Для изучения статистических данных лучше было бы написать скрипт, но было проще сделать это в виде индикатора, так нагляднее. Из-за возникшего небольшого противоречия индикатор может нестабильно работать на медленных компьютерах, поскольку не будет успевать просчитывать данные до поступления новых котировок. Поэтому, если возникнут проблемы, сначала загрузите в МТ4 валютные пары и их таймфреймы, которые хотите изучить, а потом отключите компьютер от интернета для прекращения поступления новых данных. Можно и не отключать компьютер от интернета, а отключить только МетаТрейдер. Для этого зайдите в меню «Сервис» — «Настройки» там в закладке «Сервер» сотрите поле «Пароль» и нажмите «Ок». МетаТрейдер потеряет связь с сервером котировок, пока Вы не впишите пароль назад. Надеюсь, Вы его запомнили или записали.

Индикатор показывает в отдельном окне насколько много в истории баров определенной амплитуды. Горизонтальная ось (Х) – размер амплитуды в пунктах. Вертикальная ось (У) – количество баров в истории с такой амплитудой. Для удобства восприятия каждое десятое значение амплитуды начиная с ноля (т.е. 0, 10, 20, 30 и т.д.) изображается другим цветом.

Обратите внимание, что график амплитуд на индикаторе отражен относительно вертикальной оси, т.е. ноль у него находится справа под самым новым баром, и увеличиваются значения справа налево.

В левом верхнем углу окна индикатора сразу после его названия можно увидеть количество баров с амплитудой ноль. Это число там изображается два раза подряд. В окне котировок в левом верхнем углу сразу под названием валютной пары индикатор выводит вычисляемые значения: количество баров истории котировок, максимальная амплитуда колебаний котировки и максимально часто встречающаяся амплитуда.

Количество баров менее 2000 дает не очень ровный график, и делать какие-то далеко идущие выводы после изучения такой короткой истории не стоит. Максимальная амплитуда показывает нам, насколько большой диапазон изменения курса за время бара был зафиксирован в течение исследуемой истории котировок – это самое левое ненулевое значение на графике индикатора. Максимально часто встречающаяся амплитуда– это самое высокое значение на графике индикатора, т.е. бар такой амплитуды встречается в истории чаще всех других.

Посмотрите статистику амплитуды колебаний разных валютных пар, на разных таймфреймах и котировки от разных поставщиков данных (дилинговых центров). Для последнего можно отрыть демо-счета в разных дилинговых центрах.

Код индикатора ProAmpl_01:

//+------------------------------------------------------------------+
//|                                                   ProAmpl_01.mq4 |
//|                                         Copyright © 2010, Canep. |
//|                                                 http://pro-fx.ru |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2010, Canep."
#property link      "http://pro-fx.ru"

#property indicator_separate_window    // вывод индикатора в отдельном окне
#property indicator_buffers 2          // количество буфферов (линий) индикатора
#property indicator_color1 Blue        // цвета линий
#property indicator_color2 Red

//---- input parameters
int               i, max, maxv, amplv; // объявление переменных
double            pPoint;

//---- buffers
double ampl[] =  {0.0};                // массив и буффер амплитуды колебаний
double indeks[] =  {0.0};              // массив и буффер для градуировки

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
//---- indicators

SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,2);
SetIndexBuffer(0,ampl);
SetIndexDrawBegin(0,1);

SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,2);
SetIndexBuffer(1,indeks);
SetIndexDrawBegin(0,1);

//----
return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{

for(i=0;i<=Bars;i++) {ampl[i]=0.0; indeks[i]=0.0;} // обнуляем массивы и переменные
max = 0; maxv = 0;                                 // перед вычислениями

if(Point==0.001 || Point==0.00001) pPoint=Point*10; else pPoint=Point; // для корректной работы с нестандартной точностью

i=Bars-1;
while(i>=0)                         // цикл вычисления амплитуды
{
amplv =(High[i]-Low[i])/pPoint;  // амплитуда в пунктах
ampl[amplv]=ampl[amplv]+1.0;     // добавляем +1 в ячейку массива которая соответствует размеру амплитуды
i--;
}

for(i=0;i<=Bars;i++)                // цикл вычисления максимальной амплитуды и самой частой амплитуды
{
if (ampl[i]>ampl[maxv]) maxv=i;
if (ampl[i]>0.5) max=i;          // 0.5 вместо нуля потому как тип переменной не целочисленный.
}

for(i=0;i<=Bars;i=i+10) indeks[i]=ampl[i]; // начиная с нуля каждое 10-ое значение амплитуды отмечаем другим цветом

//-- вывод комментария со значениями переменных в окно котировок
Comment ("Всего баров = ", Bars, " Максимальная амплитуда = ", max, " Максимально часто встречается амплитуда = ", maxv);

return(0);
}
//+------------------------------------------------------------------+

  • Спасибо 😉

Вы можете следить за обсуждением с помощью RSS 2.0 ленты.

Трекбэк / Пинг