Дайте советник для сбора тиковой истории

 
Дайте готовый советник для записи тиков в csv файл.
 
Советником тики не собираются, т. к. он может их пропустить. Для этого используют индикатор. Например, такой. Полученный tks-файл можно конвертировать в три вида форматов при помощи скрипта.
 
Ihor Herasko:
Советником тики не собираются, т. к. он может их пропустить. Для этого используют индикатор. Например, такой. Полученный tks-файл можно конвертировать в три вида форматов при помощи скрипта.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2018.02.26 08:27

Верно ли, что SymbolInfoTick в MT4/5-индикаторах возвращает не тот тик, который вызвал Calculate-событие?

Если так, то не совсем понятно, на чем основаны сборщики тиков через индикаторы?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2018.02.26 09:05

Если пришла пачка из трех тиков, то Calculate-событие вызовется три раза, но SymbolInfoTick будет возвращать самый поздний тик на каждом из этих трех вызовов. Т.е. так называемый сбор тиков без пропусков через индикаторы, мягко говоря, сомнительный.

 
fxsaber:

Разговор об MT4, в котором невозможно штатно получить тиковую историю. То есть отсылка к SymbolInfoTick не совсем понятна.

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

Ну а в МТ5 нет смысла собирать тиковую историю, она доступна штатно. Механизм работы индикаторов там тоже другой - они отделены от интерфейсного потока.

 
Ihor Herasko:

Разговор об MT4, в котором невозможно штатно получить тиковую историю. То есть отсылка к SymbolInfoTick не совсем понятна.

Это и MT4.

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

Количество Calculate-событий и соответствующих вызовов OnCalculate будет, конечно, совпадать с количество тиков. Никаких пропусков в этом смысле нет. Но вот только данные этих тиков из примеры выше (пачка тиков) не всегда возможно получить. Единственное, откуда их можно вытащить - Bid/Ask-переменные и MarketInfo-обращения. Так вот они все будут соответствовать значению последнего тика в пачке.

 
fxsaber:

Это и MT4.

Количество Calculate-событий и соответствующих вызовов OnCalculate будет, конечно, совпадать с количество тиков. Никаких пропусков в этом смысле нет. Но вот только данные этих тиков из примеры выше (пачка тиков) не всегда возможно получить. Единственное, откуда их можно вытащить - Bid/Ask-переменные и MarketInfo-обращения. Так вот они все будут соответствовать значению последнего тика в пачке.

Все верно. Только вот индикатор хотя бы получит количество пришедших тиков, а советник - только один тик из пачки. Не забывайте, что тиковый объем (не та, которую дает брокер, а именно - собранная величина) - это тоже очень полезная в анализе величина. 

Я не понимаю, зачем собирать тики советником, если с его помощью не предполагается ведение торговли? Ведь гораздо логичнее и экономичнее по ресурсам использовать индикатор. 

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

 
Ihor Herasko:
Советником тики не собираются, т. к. он может их пропустить. Для этого используют индикатор. Например, такой. Полученный tks-файл можно конвертировать в три вида форматов при помощи скрипта.
спасибо
 
Ihor Herasko:

Все верно. Только вот индикатор хотя бы получит количество пришедших тиков, а советник - только один тик из пачки.

Зачем писать не валидные тики?

 
fxsaber:

Зачем писать не валидные тики?

Ответ был дан выше.

 
Ihor Herasko:

Ответ был дан выше.

  1. Индикатором невозможно записать тики (цены) без пропусков.
  2. Пишите невалидные тики.

 
fxsaber:

  1. Индикатором невозможно записать тики (цены) без пропусков.
  2. Пишите невалидные тики.

  1. Неправда.
  2. То, что от тика нет правильных Bid  и Ask, еще не значит, что этот тик бесполезен для анализа.