"Пересчет" Что такое пересчет? Это момент расчета всего скрипта и передачи брокеру заявок. В программе предусмотрено несколько разных по своей сути пересчетов и сделано это для того, что бы охватить спектр возможных задач. Давайте их рассмотрим по порядку, в котором они располагаются в свойствах скрипта:
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.
Пок/Прод без объема Пересчет проходит при изменении цены лучшего Бид или Аск. Изменилась цена лучшего бид - пересчет, то же, если изменился Аск.
Данный пересчет так же предназначен для стратегий, с четко понимаемым алгоритмом выставления заявок. Есть Цена -> Поставили Лимитку. Без дополнительных условий, индикаторов, которые могут при пересечениях внутри бара давать множественные сигналы, которых при пересчете "Интервал" нет, т.е. которых нет в Лабораторном скрипте ! Лабораторный скрипт всегда показывает то, что будет(приблизительно) в агенте при пересчете "Интервал".