Сборщики тиков. Оптимизация. DDE в VB (VBA) - страница 2

 
Поступите проще - купите у eSignal месячную Forex подписку за $125 и собирайте все тики с банками. Вышеприведенный отчет как раз был построен на информации из eSignal.

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

Renat

Спасибо, я знаю Ваше мнение. Всегда очень внимательно читаю ваши сообщения. Хотел бы пояснить для чего это нужно мне. Вы это знаете, просто хочу пояснить это и для других участников форума.

Допустим у нас есть, какая то физическая величина подчиняющаяся прямолинейному закону (y(x)=a*x+b). Допустим на 1 минуту, что это курс GBPUSD. И нам надо рассчитать (предсказать) какой курс будет завтра, т.е. построить эту прямую от текущей точки на 24 часа вперед.

Простейшие расчеты показывают, что ошибка измерения (оценки этой величины) в 1 пункт по оси Y приводит к ошибке прогноза в требуемой точке 1*60*24=1440 пунктов. (если брать Close минутки). Даже если допустить что измерение по оси Y точное, то ошибка по оси X (незнание в какой точке проводилось измерение) тоже приводит к ошибкам :-(. Все это можно увидеть из рисунка.

У нас же ещё сложнее это не прямая и ошибки есть во всех измерениях как по оси X так и Y :-(

Мечта многих и моя в том числе, построить алгоритм который будет предсказывать, какой будет курс валюты завтра допустим в 12:00 c точностью +- 10 пунктов. Но для этого как минимум необходимо иметь измерения (оценку) в текущий момент времени как можно точнее, даже в таком простейшем случае как прямая. Именно по этой причине точность прогноза со временем ухудшается (ошибки измерения, шумы, незнание модели и т.д.).

P.S. Спасибо за подсказку про eSignal. Говорила мне мама учи английский. Балбесом был, не слушался.

Может все таки есть Дед Мороз и он подарит необходимые данные, выложит их где ни будь. Или скажет, куда подъехать в Москве с новогодним напитком. Дети мои уже не пишут Деду Морозу письма, говорят папа ты что, нет его. А вот мне до сих пор кажется, что есть еще чудеса на свете, только вспоминаем мы про это в конце декабря.

Заранее Спасибо. privalov-sv(собака).mail.ru

 
Renat:
Подписка на изменения - обычный/правильный режим работы через DDE...

Благодарю. Будем искать... (с). Но это ужЕ после Нового Года, с которым поздравляю Вас и все MQL-сообщество.
 
Prival:

...собрать тики с учетом времени, когда он (тик) был сгенерирован ДЦ, а не когда он пришел ко мне.

Так при сборе тиков Вы и выдергиваете время сервера на момент его (тика) появления. Хелп:

)
Возвращает последнее известное время сервера (время прихода последней котировки)

Видимо, время прихода котировки на сервер, а не на терминал. Оно Вам и транслируется. Кстати, оно может отличаться от системного, и весьма существенно. За этим следить надо. Я в конце лета открылся еще в одном ДЦ, так с ходу пришлось с саппортом связываться, т.к. их сервер давал 7 (семь!) минут отставания (в реале!). У меня же три раза в день часы синхронизируются.  

 Даже в Москве выделенка не идеальна, есть задержки и иногда большие. Иногда бывает, ждешь 2-3 минуты, а потом вываливается куча тиков. И не понятно это из-за того что нэт плохой или на самом деле ДЦ начал генерировать тики с такой скоростью.

Задержки на линии или в терминале? Мало вероятно, что 2-3 минуты (!!!) на линии. Возьмите хоть PingPlotter (нагляднее и удобнее), хоть консольку от винды  tracert (быстрее и всегда под рукой).

А как тики могут кучей вывалиться? Они или есть, или нет... Т.е., по Вашим словам, Вы одномоментно получаете историю тиков за определенный промежуток времени, когда их не быдо? Ну бывает на нервном рынке тиков 8 в секунду, но редко и это в потоке, в реал-тайм. А что в этом промежутке молчания? Чем он заполняется на других таймфреймах? Мне кажется, что ДЦ не может копить котировки, а потом вывалить их кучей.

Если у Вас такая чехарда, можете попытаться проверить соответствие последней тиковой котировки (в последнюю секунду последней минуты) с ценой Close на соответствующей минутке, минутку сравнить с 5-минуткой etc.

Короче. Доктору - исцелися сам. Посоветовал и проверил у себя. Банан - не бьют тики в минутки, минутки в пяти ну и т.д. :(( Два прова, оба реал. За 28-е число, пятница, проверял.  Где-то эта тема поднималась. Щаз не вспомнить... По памяти - объяснялось тем, что исторические данные, подкачиваемые с сервера прова, отличаются от тех, что в прямом эфире. Джюдь-джюдь :)) Но это не объяснение, а констатация факта. Надо будет пристальнее посмотреть на это.  

Там есть Unix Time и очень бы хотелось получать помимо тика (цены) еще и время когда этот тик был сгенерирован ДЦ.  

Так приведенная выше функция Вам как раз это и дает.

Я собираю тики для несколько других целей и решил вообще абстрагироваться от времени ДЦ. Тем более их у меня три. У меня машина работает в GMT. И на приходящие тики я ставлю свой тайм-штемп. Для моих задач - это более чем удобно. Для Вас, имо, тоже подошло бы. У Вас будет хоть одна, приближенная к  абсолюту, величина - это время GMT, достоверность которого Вы можете уточнять хоть каждый час. Рынок-то в своем поведении ориентируется на более надежные эталоны, чем системное время на сервере админа-разгильдяя. Ну и, в дополнение к этому, Вы закладываете в модель поведение котировок конкретного ДЦ, с которым Вам работать, а не отталкиваетесь от их непредсказуемости (в контексте временнОй оси, на котировки мы повлять не можем и принимаем их де-факто).

Ну, если уж очень нужно, можете в отдельном поле параллельно фиксировать и тайм-штемп ДЦ. У меня в последнем сборщике тиков так и сделано. База только чуть толще станет. 

Ренат правильно говорит о бесполезности подобного моделирования. В условиях ДЦ, я хочу уточнить. Аргументов и здесь на форуме и в сети более чем достаточно. Более благодатная почва (если такое желание в кишочках поковыряться :) - это анализ поведения на бирже компота из спреда бид-аск, цены ласт, динамики перемещения близлежащих ордеров (которые, собственно, и образуют этот спред). Но и там нюансы - пит, электроника, комбайн... Зато биржа за каждую засвеченную цифирь хоть зуб дает, хоть *** на пятаки :) Задача на порядок сложнее, не на один. Но оно того стОит.

С наступающим.

 
Chen:

....


Многое не понял из ваших терминов. Но буду разбираться (обязательно). Т.к. меня тоже не интерисует 1 ДЦ, Для моих целей нужна как можно более высокая частота дискретизации процесса. + Считаю важным покапаться как Вы говорили во входном потоке. Для анализа и построения прогноза любого случайного потока необходимо четко понимать все процессы как, что, когда и где происходит.

Если Вас не затруднит можно Вашу методику как вы все собираете. Где на что надо обратить внимание. Кусочек собранных тиков за неделю.

Спасибо. С наступающим !!!

 
Я выложил 1.5 гб тиков в текстовом формате по паре десятков валютных курсов за сентябрь. Zip архив занимает 135 мб:
https://www.metaquotes.net/
 
Renat:
Я выложил 1.5 гб тиков в текстовом формате по паре десятков валютных курсов за сентябрь. Zip архив занимает 135 мб:
https://www.metaquotes.net/

Вот и хорошо. Приверженцы тиковых МТС будут необычайно рады Новогоднему подарку. Может тщательный анализ их образумит :) Скажите только - это пушистый входной поток или то, что уже на выхлопе, отфильтрованное и "нормализированное"?
 
Prival:


...нужна как можно более высокая частота дискретизации процесса. ..

Дык... Куда уж выше? Тик ведь - элементарная частица. Не может быть пол-тика, четверть тика etc. Вы ведь не с аналоговым сигналом имеете дело, который можно раскладывать до бесконечности глубоко. Сам тик мельче не разложишь, а его отсутствие - тем более :)

...Вашу методику как вы все собираете. Где на что надо обратить внимание. Кусочек собранных тиков за неделю...

Конечно, но чуть позже. Передо мной сравнительно недавно это задача встала. Код еще сырой, на коленке. Я взял за основу TickSave by komposter 'Сборщик тиков'. Модернизировал его, чтобы это был индикатор. Разница - см. мой первый пост в этой ветке. Прикрутил к нему dll для получения эталонного (для меня) системного времени для 1) получения уникального таймштемпа (МТ не дает мсек) для тиков, что идут внутри одной секунды 2) для абстрагирования от кривого времени ДЦ и, тем более, разных ДЦ. На выходе имею полЯ для каждой записи: GMT (yy-mm-dd hh:mm:ss), GMT_msek (msek), DC_Time (yy-mm-dd hh:mm:ss), Tick_Price. Ну, это скелет. Отсутствующие тики (бывают промежутки от нескольких секунд до минут) формально дополняю копированием предыдущего. Соответственно помечаю, чтобы можно было отличить "живой" тик от сгенерированного мной. Добавляется еще одно поле Source. Пишу туда R-real или С-computed. Но это уже во внешней прорамме. Сборщик я не нагружаю лишними вычислениями. Много других нюансов еще... Некторые вопросы открыты. Сам-то сборщик примитивен, а вот сервисная обвязка - обработка ошибок, обрывов связи, переходов дат, заливка отсутствующих тиков etc. Взгляните на TickSave by komposter 'Сборщик тиков'. На форуме и в CodeBase есть еще методЫ.

Для меня проблема состоит в том, где это графически проанализировать, в какую прогу загнать. Не подскажете простенький построитель графиков с гибким масштабированием по временной оси? Большой объем получается. Двое с половиной суток (по золоту, например) - без малого 100К тиков.

"Кусочек" пока выложить не могу - формат постоянно меняется. Чуть позже. Праздники переболеем :))

Успехов.

 
Renat:
Я выложил 1.5 гб тиков в текстовом формате по паре десятков валютных курсов за сентябрь. Zip архив занимает 135 мб:
https://www.metaquotes.net/


Мама мия. Я думал хоть бы одного Деда Мороз узнать. А их уже как минимум двое !!! :-). Спасибо. Всех с наступающим !!! Иду читать дальше
 
Chen:
...нужна как можно более высокая частота дискретизации процесса. ..
Дык... Куда уж выше? Тик ведь - элементарная частица. Не может быть пол-тика, четверть тика etc. Вы ведь не с аналоговым сигналом имеете дело, который можно раскладывать до бесконечности глубоко. Сам тик мельче не разложишь, а его отсутствие - тем более :)
... Взгляните на TickSave by komposter 'Сборщик тиков'. ...

1. Вы чуть ошибаетесь. Это понятие определяет, время между приходом тиков.

2. komposter'a очень хорошо знаю, он мне тоже подарок сделал (правдо раньше не 31 декабря). Сделал сборщик тиков для меня по спец заказу, он отличается от приведенного по ссылке.

А на счет тщательного анализа и "образумит" :-). Тут как то Renat писал что «собаку съели» на этом. Мне в жизни тоже приходилось «собак кушать» :-). Даже помнится монографию написал по методам цифровой фильтрации. Только вот собаку по кличке Forex еще не надкусывал :-). Может, что то из тех знаний и заработает.

Тоже успехов. Праздники пройдут. Будем подарки разворачивать :-)