Новый взгляд на эквиобъемные графики
Andrey Khatimlianskii | 15 января, 2008
Введение
Идея учитывать объемы при построении графика цены, насколько
мне известно, была высказана еще в 1971 году Ричардом Армсом младшим
(Richard W., Jr. Arms) в книге "Profits in Volume, Equivolume Charting". Бары на графиках, построенных по его методу, имели различную
ширину - чем больше объем, тем шире бар.
рис.1 Пример эквиобъемного графика
Действительно, технический анализ - особенно применительно к фондовому рынку - учитывает не только цену, но и объемы торгов. Существует множество индикаторов и методов прогнозирования, основывающихся именно на анализе объемов. В дополнение к ним, как уже было сказано, были созданы эквиобъемные графики.
В условиях рынка Forex, где информации о реальных объемах сделок
у трейдера нет, польза от эквиобъемных графиков весьма сомнительна.
Как и многие другие методы технического анализа, анализ объемов
не имеет такой отдачи, как на фондовом рынке несколько десятилетий
назад. Но это ни в коем случае не может стать на пути у "пытливых
умов", продолжающих искать закономерности, с помощью которых
можно зарабатывать на этом неспокойном и постоянно меняющемся
рынке.
Цель данной статьи - добавить в арсенал терминала MetaTrader 4 еще
один инструмент - эквиобъемные графики. Сразу оговорюсь, что
реализованная эквиобъемность отличается от описанной Ричардом
Армсом - у нас она будет заключаться в уравновешивании баров
путем составления их из одинакового количества тиков. Таким образом, бар будет измеряться не временем (количеством
минут), а количеством изменений цены.
Этап первый - сбор тиков
Для начала нам необходимо собрать тиковую историю - именно из нее мы будем строить наши графики. Было бы непрактичным и недальновидным делать "исключительно онлайновый" график - таким образом была бы потеряна возможность анализировать историю. Поэтому первым этапом реализации эквиобъемных графиков я вижу именно сбор тиков.
Все, что для этого надо сделать - скачать и запустить Сборщик тиков (TickSave). Эксперт будет сохранять тики по всем необходимым инструментам
в csv-файлы. Из них и будет брать информацию наш "построитель
графиков".
К сожалению, далеко не у всех есть возможность держать постоянно включенный (и подключенный к интернету) компьютер с запущенным сборщиком тиков. Я не хочу закрывать глаза на эту проблему, поэтому попробую предложить вариант ее решения. Естественно, полноценных обновляемых графиков с актуальной информацией получить не удастся, но, по крайней мере, будет возможность анализировать графики, обновляемые вручную.
Итак, чтоб построить эквиобъемный график, не имея тиков, необходимо:
- скачать тиковую историю по необходимому инструменту с одного из бесплатных источников (например, gaincapital.com или fin-rus.com);
- привести ее в понятный для эксперта формат - "ГГГГ.ММ.ДД ЧЧ:ММ:СС;Бид" (вручную или специальной программой-конвертером (возможно, я ее напишу чуть позже));
- сохранить файл(-ы) с тиками в необходимую директорию - "путь_к_терминалу\experts\files\[Ticks]\Имя сервера\";
- и переименовать их в соответствии с шаблоном - "Символ_Год. Месяц. csv".
Можно поместить тики за несколько месяцев (лет) в один файл, например, "EURUSD_2008.01.csv". Пусть вас не смущает что дата, указанная в имени файла, не соответствует содержимому - имя необходимо только для того, чтоб "построитель графиков" нашел этот файл.
После всех этих манипуляций можно считать, что тиковая история у вас есть. А как ее использовать - мы узнаем в следующей главе.
Этап второй - построение графика
Теперь, когда у нас есть "строительный материал", можем приступать к "строительству" графиков.
Это не намного сложнее, чем наладка сборки тиков:
- Скачайте эксперта EqualVolumeBars в директорию "MetaTrader 4\experts", откройте и скомпилируйте (F5).
- Откройте график того финансового инструмента, по которому хотите построить эквиобъемный график (и по которому есть тики). Период графика значения не имеет.
- Запустите эксперта на открытом графике, указав необходимые значения внешним переменным:
- TicksInBar - количество тиков в баре;
- StartYear и StartMonth - год и месяц, с которых начинается ваша тиковая история (используется при поиске файлов);
- Дождитесь появления сообщений в журнале (на закладке "Эксперты"):
2008.01.11 02:22:13 EqualVolumeBars EURUSD,M5: < - - - Для просмотра результатов откройте график "!EqvEURUSDn" - - - >
- Наконец, откройте указанный в сообщении файл (вместо последней n будет значение TicksInBar) с помощью команды "Открыть автономно" меню "Файл".
Результат
Результатом работы советника является постоянно обновляемый нестандартный файл истории. После открытия графика эксперт обновляет и его, то есть с ним можно работать как с обычным графиком (за некоторыми исключениями) - новые котировки отображаются автоматически.
Для демонстрации результата я скачал тиковую историю с gaincapital.com (собранной собственноручно у меня, к сожалению, нет). Форматирование
и объединение в файлы заняло не больше 20 минут. Вы может скачать
готовые для использования архивы тиков - ссылки в конце статьи.
Останется только сохранить их в необходимые директории.
Ниже представлены эквиобъемные графики EURUSD за ноябрь и декабрь. "Период" графиков (количество тиков в баре) выбирался произвольно,
цифры не основаны на анализе среднего количества тиков за определенный
период или на каких-то других данных. Данная статья не ставила
целью разработку метода выбора "периода" графиков или
способов анализа полученной информации, решалась исключительно
приземленная задача - сделать инструмент.
Результат вы можете наблюдать на графиках приведенных ниже либо, произведя некоторые манипуляции, в своем терминале.
рис.2 Эквиобъемный график. В одном баре - 5 тиков.
рис.3 Эквиобъемный график. В одном баре - 10 тиков.
рис.4 Эквиобъемный график. В одном баре - 25 тиков.
рис.5 Эквиобъемный график. В одном баре - 50 тиков.
рис.6 Эквиобъемный график. В одном баре - 100 тиков.
рис.7 Эквиобъемный график. В одном баре - 250 тиков.
рис.8 Эквиобъемный график. В одном баре - 500 тиков.
рис.9 Эквиобъемный график. В одном баре - 1000 тиков.
Как вы уже, наверное, догадались, установив переменной TicksInBar значение 1, можно получить тиковый график - в одном баре будет всего один
тик:
рис.10 Эквиобъемный график. В одном баре - 1 тик.
Важно, что описанная система предусматривает как отображение,
так и хранение тиков. Таким образом, тиковый график становится
полноправным инструментом в руках трейдера.
Особенности эксперта EqualVolumeBars
Работая с файлами истории, я неоднократно натыкался на некоторые "особенности", не позволяющие получить желаемый результат прямым путем. К сожалению, формат файлов hst не достаточно документирован, а алгоритмы проверки файлов истории терминалом и вовсе не озвучены. Приходилось осваивать эту тему "методом тыка" - одним из самых популярных в нашей стране.
В процессе разработки и тестирования советника EqualVolumeBars был обнаружен один из критериев проверки файлов истории. Заключается он в том, что на графике не может быть двух баров с одинаковым временем. При работе с тиками (особенно при малых значениях переменной TicksInBar) нередко получалось несколько баров с одинаковым временем. Проблема была решена просто - время, записываемое в создаваемый файл (и, соответственно, отображаемое на графике) моделировалось. Поскольку правдивость отображаемого времени свелась к 0, я сделал его вообще условным - на всех сгенерированных графиках отсчет начинается с 00:00 01.01.1970, а каждый новый бар представляет следующую минуту. Выходные и праздники при этом не учитываются.
Еще одна особенность, которую необходимо озвучить - пропуск
тиков.
Эксперт после чтения тиковой истории из файлов продолжает работать
в обычном режиме - запускается при поступлении котировки и добавляет
ее на эквиобъемный график. Терминал MetaTrader 4 устроен так, что
если эксперт не успел завершить обработку предыдущего тика,
новый тик он пропустит. Таким образом, на эквиобъемном графике
(особенно с маленьким "периодом") может возникнуть искажение
в виде пропущенной цены.
Я, например, наблюдая за двухтиковым (TicksInBar=2) графиком, увидел
додж - бар, у которого все цены равны (O=H=L=C). На двухтиковом графике
такого бара не может быть по определению, условие формирования
бара - одно изменение цены. Я предполагаю, что эксперт просто
пропустил тик между этими двумя одинаковыми ценами, и получился
бар из одной цены, но с объемом = 2.
В принципе, такие ситуации достаточно редки, да и искажения будут заметны только на самых маленьких "периодах". Но проблема есть, и я хочу чтоб вы о ней знали.
И последнее, о чем я хотел сказать - достаточно очевидная вещь
- при изменении точки отсчета меняется вся последующая эквиобъемная
история.
Например, вы анализировали график, начинающийся с декабря 2007
года. Потом захотелось взглянуть глубже - вы скачали тиковую
историю за ноябрь и пересчитали весь график. Количество тиков
в ноябре абсолютно не обязательно будет кратно выбранному вами
"периоду". Соответственно, изменится и отображение декабрьского
графика.
В принципе, это тоже сложно назвать проблемой - скорее, особенность. Просто не забывайте о ней.
Заключение
В статье был рассмотрен процесс создания эквиобъемных графиков - графиков, у которых все бары состоят из одинакового количества тиков.
Были приведены примеры работы с готовой тиковой историей и описан процесс настройки обновляемых графиков.
В завершении статьи были озвучены особенности, которые необходимо учитывать при работе с экспертом EqualVolumeBars.
Надеюсь, статья даст пищу для размышления и удобный инструмент
каждому, кто ее прочитал.