У вас не стоит Flash Player
Настройки
#24235 - Sun Mar 27 2011 06:59 PM №9 Пересчет скрипта
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
"Пересчет"

Что такое пересчет? Это момент расчета всего скрипта и передачи брокеру заявок.

В программе предусмотрено несколько разных по своей сути пересчетов и сделано это для того, что бы охватить спектр возможных задач. Давайте их рассмотрим по порядку, в котором они располагаются в свойствах скрипта:
1.Самый распространенный и первый пересчет "Интервал".

При выборе "Интервал" Вы даете задачу программе рассчитывать скрипт с определенным интервалом, выбранным в свойствах(Графа- "Интервал"). "Интервальный период" может быть тиковым, секундным, минутным и дневным. Так например если выбрать тиковый и в интервале поставить 250. То скрипт будет пересчитываться через каждые 250 сделок, совершенных на рынке. Если выбрать секунда и в интервале 24, то скрипт будет пересчитываться каждые 24 секунды. При этом свечи на графике будут так же соответствовать выбранным параметрам.

ТаймФрейм - принято называть выбранный интервал в купе с интервальным периодом.
Тик - совершенная на рынке сделка.
Следует учесть, что сервера брокеров отдают историю только для "стандартных" таймфреймов, обычно это:
1 Тик
1 Минута
5 Минут
15 минут
1 час
1 день
Есть сервера, которые отдают только 1 минуту, 5 минут и 15 минут.Есть сервера, например, у брокера Алор, где есть секундные данные, так же имеют стандарты 1 сек, 5, 15.
Все остальные программа считает сама из доступной истории(с сервера брокера и "кеша", сохраненного на компьютере во время работы(накопленной истории)). Например, если нужен таймфрейм 7 минут, программа возьмет тики, накопленные при подключении и построит из них 7 минут. Т.е. это не стандартный таймфрейм. А если есть пропуск пятиминутного графика, то даже имея тиковый кеш, программа не построит график в офлайне, график будет скачан с сервера при подключении, так как является стандартным.
В TSLab решена проблема с данными для алготрейдинга, которые передают все без исключения брокеры. Это значения предторговой и послеторговой сессий, сбивающие индикаторы. На минутных, секундных и тиковых таймфреймах данные за пределами торговой сессии обрезаются. Из значений 15 минутных баров для некоторых брокеров строит часовые и дневные таймфреймы. Поэтому часто, при первом запуске программы дневные, часовые графики имеют короткую историю


Как работает "интервал" в агенте?
Точкой отсчета является Закрытие бара(свечи). Как только бар выбранного таймфрейма закрывается, происходит пересчет скрипта(расчет индикаторов, логических условий, формул и т.д.) и отправляются данные брокеру(если таковые есть). Таким образом скрипт от одного закрытия бара до следующего (от пересчета до пересчета) , ничего не знает, о том, что возможно совершились какие-либо условия в этот период. Он узнает о них, только на закрытии бара.
Например, скрипт на пересчете насчитал сигнал входа, сгенерировал запрос на транзакцию и отправил брокеру. О том, что заявка исполнена или отклонена, он узнает только на закрытии следующего бара выбранного таймфрейма. (Для обхода данной ситуации используйте Сжатие/Разжатие)

"Интервал" предназначен для очень широкого спектра задач, где расчет индикаторов и выставление заявок должны проходить, только с определенным интервалом.

2. "Интервал+сделка" То же, что и "Интервал". Отличие, что пересчет происходит не по закрытию бара, а по открытию текущего бара.

3. "Сделка"
При данном пересчете свечи/бары будут рисоваться в зависимости от выбранного в свойствах таймфрейма. А пересчет будет проходить при каждой рыночной сделке на выбранном инструменте. Соответственно, этот пересчет отличается от "Интервала с таймфреймом 1 тик" только тем, что есть возможность нарисовать график отличный от 1 тика.
"Сделка" предназначен для арбитражных стратегий и стратегий использующих только лимитные заявки. При данном пересчете необходимо учитывать, что в Торговых Настройках, параметры автооткрытия/закрытия, Ожидания и т.д. будут учитывать каждый пересчет, как один бар. Т.е., если при "интервале" 1 минута Вы использовали Автооткрытие 10, то при Сделке нужно ставить автооткрытие значительно больше, за одну минуту может проходить сотни сделок, соответственно за 10 минут может пройти и 2000 и 3, например, на фьючерсе РТС.

4. Пок/Прод
Пересчет проходит при изменении Лучшего Бид или Аск. Изменился объем лучшего бид - пересчет, изменилась цена лучшего бид - пересчет, то же, если изменился Аск.
Стакан - очередь заявок на покупку и продажу.
Данный пересчет также предназначен для арбитражных стратегий и для стратегий, только с лимитными заявками. Это самый быстрый пересчет.

5. Пок/Прод без объема
Пересчет проходит при изменении цены лучшего Бид или Аск. Изменилась цена лучшего бид - пересчет, то же, если изменился Аск.
Данный пересчет так же предназначен для стратегий, с четко понимаемым алгоритмом выставления заявок. Есть Цена -> Поставили Лимитку. Без дополнительных условий, индикаторов, которые могут при пересечениях внутри бара давать множественные сигналы, которых при пересчете "Интервал" нет, т.е. которых нет в Лабораторном скрипте ! Лабораторный скрипт всегда показывает то, что будет(приблизительно) в агенте при пересчете "Интервал".






Отредактировано ViL (Wed Sep 19 2018 12:54 AM)

Наверх
#28454 - Fri Jun 10 2011 03:47 AM Re: №9 Пересчет скрипта [Re: ViL]
Роман Offline
member

Registered: Wed Dec 15 2010
Записи: 115
Интересует такой момент: при пересчете Сделка пересчет времени ограничен рамками выбранного таймфрейма или время тоже пересчитывается по каждой сделке?
Допустим у меня таймфрейм час и пересчет я ставлю Сделка, то все манипуляции со значениями времени в формулах скрипта у меня должны быть кратны часу или в данном случае я могу задать такие значения для времени, которые могут быть пересчитаны и внутри часа?

Наверх
#33223 - Thu Nov 10 2011 02:20 PM Re: №9 Пересчет скрипта [Re: Роман]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
Originally Posted By: Роман
Интересует такой момент: при пересчете Сделка пересчет времени ограничен рамками выбранного таймфрейма или время тоже пересчитывается по каждой сделке?
Допустим у меня таймфрейм час и пересчет я ставлю Сделка, то все манипуляции со значениями времени в формулах скрипта у меня должны быть кратны часу или в данном случае я могу задать такие значения для времени, которые могут быть пересчитаны и внутри часа?

Блок время будет отдавать только часовики, т.е. согласно графику. Если график часовой, то : 100000 , 110000, 120000 и т.д.
Если получасовой, то : 100000, 103000, 110000, 113000 и т.д.

Наверх
#76247 - Sat Feb 06 2016 08:02 PM Re: №9 Пересчет скрипта [Re: ViL]
Bairom Offline
journeyman

Registered: Sat Jan 23 2016
Записи: 52
Подскажите пожалуйста!
Есть история скаченная с финама за 1 мин и за 1 час. если взять минуту и в настройках исторических данных, в интервальном периуде поставить "Минута" а интервале поставить "60" у меня рисуется часовой график!!!
ВОПРОС: почему он отличается от часового с теми же настройками?

Наверх
#76250 - Sun Feb 07 2016 03:05 PM Re: №9 Пересчет скрипта [Re: Bairom]
Bairom Offline
journeyman

Registered: Sat Jan 23 2016
Записи: 52
Originally Posted By: Bairom
Подскажите пожалуйста!
Есть история скаченная с финама за 1 мин и за 1 час. если взять минуту и в настройках исторических данных, в интервальном периуде поставить "Минута" а интервале поставить "60" у меня рисуется часовой график!!!
ВОПРОС: почему он отличается от часового с теми же настройками?


перечитал пол форума нашел причину http://rusalgo.com/article/%D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81-%D0%BA%D0%BE%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BE%D0%BA-%D0%B4%D0%BB%D1%8F-TSLab.html

Но у меня все ровно вопрос, может не в той ветке, но все же: Правильный ли будет тест ТС на исторических данный с Финама или все же есть искажение судя по опыту?

Наверх
#76254 - Mon Feb 08 2016 07:27 AM Re: №9 Пересчет скрипта [Re: Bairom]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
на реале всегда будут отклонения. ПОэтому если котировки чутка кривые - особой беды не будет. Главное чтобы соплей не было.
_________________________
__


Наверх
#76256 - Mon Feb 08 2016 09:55 AM Re: №9 Пересчет скрипта [Re: ra81]
Bairom Offline
journeyman

Registered: Sat Jan 23 2016
Записи: 52
Родион, а где кроме финама можно взять исторические данные, что бы еще раз проверить алгоритм?

Наверх
#76257 - Mon Feb 08 2016 11:36 AM Re: №9 Пересчет скрипта [Re: Bairom]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
можно у биржи. они за деньги. подключите смартком он дает много истории бесплатно.
_________________________
__


Наверх
#76288 - Tue Feb 09 2016 09:06 PM Re: №9 Пересчет скрипта [Re: ra81]
Bairom Offline
journeyman

Registered: Sat Jan 23 2016
Записи: 52
Спасибо

Наверх
#80312 - Fri Nov 11 2016 08:26 PM Re: №9 Пересчет скрипта [Re: Bairom]
spameater Offline
stranger

Registered: Fri Jan 06 2012
Записи: 3
Настроен пересчет 1 минута. Скрипт пересчитывается не ровно в начале наступившей минуты, а каждый раз по разному, чаще где-то в середине минуты, иногда в конце. Подскажите пожалуйста, как заставить скрипт пересчитываться строго в начале минуты?

Наверх
#80315 - Sat Nov 12 2016 03:30 PM Re: №9 Пересчет скрипта [Re: spameater]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
Очевидно по инструменту нет сделок в нужное время.
В версии программы 2.0 есть метроном, запускающий пересчет в равных интервалах. В 1.2 можете в скрипт добавить ликвидный инструмент.

Наверх


Moderator:  ViL, sar