Сохраняем тики, строим тиковый и эквиобъемные графики
Аватар Kaur
Kaur
Сообщений: 329
Уровень 7

    Работать в MT c тиками встроенными средствами, к сожалению, затруднительно. Встроенный в терминал график тиков по существу является лишь информером, который не позволяет с собой работать и не сохраняет никаких данных.

    Принципиальная позиция разработчиков MetaTrader известна: тики — зло. В этой статье не будем выяснять, правы они или нет. Для меня очевидно другое: зло — это ограничения. Вот с ограничениями и будем бороться, используя сторонний инструментарий для хранения тиковых данных и построения тиковых графиков.

    Те же, кто с сомнением относится к полезности тиков, сможет использовать информацию из статьи для построения совершенно новых вневременных графиков — равнообъемных (или, как еще их называют, эквиобъемных).
 
 

Инструментарий


    Весь процесс поделен на 2 этапа — 1) сохранение тиковой истории и 2) использование ее на лету для построения графиков. Нам понадобятся два несигнальных советника:

  • Сборщик тиков TickSave — советник для сохранения тиковой истории. СКАЧАТЬ >>

  • EqualVolumeBars — советник для построения тикового и эквиобъемных графиков. СКАЧАТЬ >>

Разработчиком обоих советников является Андрей Хатимлянский.
На тематических ресурсах известен под ником komposter.
Личный сайт разработчика — www.komposter.me

 

Сохранение тиков в файл


    Установите советник TickSave на любой график, в параметрах укажите инструменты, по которым вы бы хотели вести запись тиков. Все указанные инструменты должны быть в окне «Обзор рынка».
    После запуска советника тиковая история тут же начнет записываться в файл csv в папку "\experts\files\[Ticks]\название сервера\".
    Название самого файла будет иметь вид «Инструмент_Год.Месяц.csv».
Собственно все просто, но есть замечания, с которыми вы можете ознакомиться на странице описания советника TickSave
 
 

Построение тикового графика на лету


    Запустите советник EqualVolumeBars на графике того инструмента, по которому желаете вывести тиковый график. Период графика значения не имеет.
    При запуске советника определите параметры:

  • TicksInBar — количество тиков в одном баре. Для построения тикового графика установите значение TicksInBar=1

  • StartYear и StartMonth
  • — соответственно год и месяц, с которых начинать построение тикового графика. Если у вас еще нет собранной истории, то укажите текущий год и месяц.

    Осталось открыть график. Для этого перейдите в пункт меню «Файл -> Открыть автономно» и из списка возможных графиков откройте тот, название которого начинается с "!Eqv" а заканчивается на «MX», где X — указанное вами значение параметра TicksInBar. Например, тиковый график EURUSD называться будет "!EqvEURUSD,M1"



    Если к этому моменту хоть сколько-нибудь тиковой истории уже собрано, то вы увидите график. Для тикового графика (т.е. при TicksInBar=1) рекомендуется отображение графика не в виде свечей, а в виде линии.

Канал, построенный на тиковом графике


    Если окно открылось, а никаких значений графика на нем не видно, то это может быть связано с масштабированием. Попробуйте задать фиксированный масштаб (вызвать Свойства графика, закладка «Общие»).

    Еще момент. Не обращайте внимание на подписи оси времени. Графики, построенные на основе тиков, зависят от времени в малой степени, т.к. скорость поступления тиков сильно различается. Поэтому ось времени используется в технических целях и в качестве точки отсчета используется дата 1 января 1970 года. Тем не менее, вы можете уточнить время прихода тика, если загляните в файлы, сохраняемые сборщиком тиков, где всегда пишется правильное время прихода тиков.
 
 

Важное замечание для обновления графика реал-тайм!


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

Вызовите свойства советника EqualVolumeBars (например, нажав F7 на графике с установленным советником). Отметьте галочкой опцию «Разрешить импорт функций из DLL». Нажмите OK. После этого вас могут спросить «Разрешить PostMessageA из user32.dll?» — ответьте утвердительно. Все!

    Теперь тиковый график будет обновляться действительно на лету по мере поступления котировок. На получившийся график можно накладывать линии тренда, фигуры и значки, строить каналы, масштабировать…
 
 

Эквиобъемные графики


    В данном случае это графики, в каждом баре которых всегда равное количество тиков. Чтобы получить такие графики, просто измените значение параметра TicksInBar советника EqualVolumeBars. Затем выберите из списка оффлайн графиков новый "!Eqv...,MХ" (вместо многоточия валютная пара, по которой вы строите графики, Х = TicksInBar).
    Например, при TicksInBar=10 мы увидим график, в котором каждый бар формируется за счет ровно 10 тиков. Проверить это обстоятельство можно, если вывести на графике объемы. Понятно, что они образуют ровный частокол.

Эквиобъемный график — 50 тиков в каждом баре, EURUSD 09.06.2010


 
 

Применение


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

1) Тиковый график является востребованным среди пипсовиков и скальперов.

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

    Желаю Удачи!
  • +5
  • Просмотров: 10959
  • 9 июня 2010, 18:57
  • Kaur
Присоеднитесь к группе "Советники, индикаторы, скрипты", чтобы
оперативно получать уведомления о появлении новых материалов -

ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться

Комментарии (21)

+
+1
Очень необходимая мне штука! Пошел ставить.
avatar

[ 3 ] KopernikЗарегистрирован: 28 мая 2010 | Сообщений: 55 - Суперинтуит

  • 10 июня 2010, 12:35
+
+1
Не обращайте внимание на подписи оси времени. Графики, построенные на основе тиков, зависят от времени в малой степени, т.к. скорость поступления тиков сильно различается. Поэтому ось времени используется в технических целях и в качестве точки отсчета используется дата 1 января 1970 года.

Это серьезный минус. Смысл в дате есть и не маленький.
avatar

[ 4 ] pilotЗарегистрирован: 24 февраля 2010 | Сообщений: 299

  • 10 июня 2010, 19:10
+
0
Не знаете, в МТ5 можно будет работать с тиками без всяких ухищрений?
avatar

[ 2 ] PagukЗарегистрирован: 26 июля 2010 | Сообщений: 139 - суровый трейдер

  • 26 июля 2010, 20:30
+
+3
Нельзя без ухищрений, не хотят разрабы давать тики
avatar

[ 4 ] pilotЗарегистрирован: 24 февраля 2010 | Сообщений: 299

  • 29 июля 2010, 09:37
+
0
Скажите, если у меня название символа не EUR/USD a EUR/USD_m, тики он нормально собирает, но вот выводить графики он не собирается, показывает в открыть автономно: !EqvEURUSD_,M1. не хватает маленькой буковки m и он будет показывать график, а так не хочет показывать графики. Как избавиться от этой проблемы? Если что могу скрин сделать, все поймете…
avatar

[ 5 ] amyrgan145Зарегистрирован: 22 февраля 2011 | Сообщений: 394 - Амыр

  • 13 мая 2011, 18:46
+
+2
Очень хитро решил эту проблему =))))) Просто перешел в другой терминал где имя валютной пары EURUSD, переименовал файл котировок из EURUSD_m_2011.05.csv в EURUSD_2011.05.csv и робот EqualVolumeBars — спокойно открыл мне график =) Ура! =) Теперь с помощью скрипта — OutQuotings.mq4 выгрузил тиковый график как минутный, залил котировки в чистый терминал и теперь я могу тестировать таких советников, которые работают по тикам, УРА!!! =))))))
avatar

[ 5 ] amyrgan145Зарегистрирован: 22 февраля 2011 | Сообщений: 394 - Амыр

  • 13 мая 2011, 19:15
+
0
Хорошая работа, Амыр
avatar

[ 7 ] KaurЗарегистрирован: 28 сентября 2009 | Сообщений: 329 - Руслан Каюмов

  • 13 мая 2011, 19:24
+
0
Истории тиков одного дня не достаточно чтобы провести тест… хм. Нужен как минимум недельный архив тиковой истории как маркет про тиков так и классик. с понедельника на ВПС надо закинуть и пусть готовит историю *улыбается*
avatar

[ 5 ] amyrgan145Зарегистрирован: 22 февраля 2011 | Сообщений: 394 - Амыр

  • 13 мая 2011, 22:05
+
0
Есть у меня такая история за гораздо больший период. Так что можете подождать, выложу
avatar

[ 7 ] KaurЗарегистрирован: 28 сентября 2009 | Сообщений: 329 - Руслан Каюмов

  • 14 мая 2011, 10:40
+
0
Очень буду рад скачать, и я хочу просить у вас помощи на нижний комментарий, потому что у меня возникнут проблемы с созданием и тестированием любого советника целью которого будет добиться 99% качества моделирования =)
avatar

[ 5 ] amyrgan145Зарегистрирован: 22 февраля 2011 | Сообщений: 394 - Амыр

  • 14 мая 2011, 21:22
+
0
А у меня еще такой технический вопрос:

Тезис 1: При тестировании из загруженных с сервака котировак минут, там даются только цены опен лоу хай и клоус, т.е. поэтому при тестировании качество моделирования не превышает 90%, а при тесте минуток — не больше 25%.
Тезис 2: Мы научились сохранять каждый тик в отдельную базу котировок, т.е. у нас теперь есть не просто опен лоу хай и клоус, но и тики внутри интервала этой минуты.
Гипотеза: Сможем ли мы теперь, когда у нас есть тиковая история поднять качество моделировния при тестере советников до 99%?

P.S. 100% — достичь никогда не удастся.
avatar

[ 5 ] amyrgan145Зарегистрирован: 22 февраля 2011 | Сообщений: 394 - Амыр

  • 14 мая 2011, 09:49
+
0
Сможем. Почему нет? Оценить количественно с высокой точностью качество все равно не удастся. Можно сказать, что оно будет 97% или 99% или 99,9999%, но оно будет выше, чем качество тестирования на М1, причем заметно.

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

Еще один момент. Качество приводится применительно к любой стратегии. Т.е. речь об универсальной оценке. Однако для тестирования, скажем, долгосрочной стратегии с целями и стопами, исчисляемыми сотнями пунктов, качество будет приближаться к 100%, даже при тестировании на М1, т.к. контрольных точек будет достаточно для тестирования.
Вместе с тем, для пипсовочной стратегии качество тестирования на М1 можно условно обозначить как 50%, т.к. движения внутри баров имеют решающее значение и без тиков тест имеет мало общего с реальностью.
Поэтому при тестировании надо всегда учитывать особенности стратегии.
avatar

[ 7 ] KaurЗарегистрирован: 28 сентября 2009 | Сообщений: 329 - Руслан Каюмов

  • 14 мая 2011, 10:39
+
0
Руслан, я жду от вас историю тиков
avatar

[ 5 ] amyrgan145Зарегистрирован: 22 февраля 2011 | Сообщений: 394 - Амыр

  • 16 мая 2011, 06:28
+
0
К сожалению, быстрой реакции не будет. Сервис архивов запустим согласно ранее намеченному плану.
avatar

[ 7 ] KaurЗарегистрирован: 28 сентября 2009 | Сообщений: 329 - Руслан Каюмов

  • 16 мая 2011, 10:25
+
0
Жаль что так долго придется ждать… Ладно, пойду денюжку на вебмани закину и куплю впс =) Осуществлю свою затею которую я описал в своем последнем топике =)
avatar

[ 5 ] amyrgan145Зарегистрирован: 22 февраля 2011 | Сообщений: 394 - Амыр

  • 16 мая 2011, 14:59
+
0
Очень пригодилось, спасибо
avatar

[ 0 ] elevatorЗарегистрирован: 1 сентября 2011 | Сообщений: 1

  • 1 сентября 2011, 17:18
+
0
Здравствуйте *улыбается*Мне очень понравилось. Так весело торговать по тикам *улыбается*
И вопрос. Возможно ли сделать так чтобы на тиковом графике, полученного таким образом отображалась линия АКС вместе с линией БИД?
avatar

[ 0 ] AnryЗарегистрирован: 11 сентября 2011 | Сообщений: 1

  • 12 сентября 2011, 17:23
+
0
Я не понимаю когда я включаю ваш график то я не могу на нем в реальном времени торговать? Как сделать чтоб когда я устанавливаю на ваш график моего робота чтоб но читал график и торговал?
avatar

[ 0 ] tamazЗарегистрирован: 9 ноября 2010 | Сообщений: 1

  • 29 ноября 2011, 00:34
+
0
Снова вернулся к тиковым графикам
avatar

[ 5 ] amyrgan145Зарегистрирован: 22 февраля 2011 | Сообщений: 394 - Амыр

  • 10 февраля 2012, 10:08
+
0
Еще не пробовал данный советник на практике, но уже возник вопрос: как дела будут обстаять с новыми пунктами (5 знаков после запятой), значит ли это то что бар построенный допустим по 2000 микротикам будет точнее чем по тем же 200 тикам со старыми пунктами? но скорее всего погрешность всеравно какая то будет присутствовать.
avatar

[ 3 ] RenielЗарегистрирован: 13 апреля 2012 | Сообщений: 26 - Андрей

  • 14 апреля 2012, 23:36
+
+1
Ну учитывая, что можно и шестизнак ввести, и семизнак, и т.д., то погрешность есть всегда. Другое дело — значимость этой погрешности :) 
Гораздо важнее, что на разных ДЦ котировки могут отличаться легко на 20-70 пунктов (пятизначных). Это не сравнить с погрешностью от тиков. Все-таки на форексе трейдеры имеют дело не с биржевыми ценами, а с фильтрованными из потока. Значит о мелких погрешностях говорить смысла вообще нет.
avatar

[ 4 ] BetMasterЗарегистрирован: 10 января 2010 | Сообщений: 188

  • 15 апреля 2012, 02:05

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий