Работа ParamDebug c тиками

Программирование

Пакет данных- тики, полученные за единицу времени (зависит от источника данных, данные могут приходят каждые 1мс, 100мс, 1сек и т.д) с биржи.

Тики - совершенные сделки

bar - переменная, указывающая на номер последнего сформированного бара;
Исторические данные

Используя ParamDebug при работе с тиками на исторических данных, может возникнуть "запаздывание" при отображении какого-либо значения. Приведем пример на одной из стратегий, работающей на тиковых данных.
ParamDebug(string name, object values, int bar = -1) - метод который выводит данные в отладочную панель. Последний параметр является не обязательным. Рассмотрим случай когда указываем два параметра.

При вызове данного метода на свечах таймфрейма старше одной секунды не возникнет проблем, а вот при работе с тиками или сжатии в свечи с определенным количеством тиков может возникнуть непонимание. Например, вызываем в коде ParamDebug("№ тика", bar+1) - т.е. хотим вывести номер бара. При работе с данными по свечам с таймфреймом от 1 минуты, при обработке серии данных, робот получает новую 43 (bar+1) свечу. Вывод данных по методу ParamDebug по умолчанию настроен в коде на последнюю сформированную свечу, таким образом на 42 свече в отладочной панели в поле "№ тика" будет цифра 43.

В случае с тиками приходит сразу пакет данных с одинаковым временем, как в примере выше с 10464 - 10491 один пакет данных (диапазон выделен зеленой подсветкой), второй пакет 10492-10495. Вывод данных идет на тике 10494, вместо тика 10491, т.к. последняя сформированная свеча 10494.

Чтобы избежать "запаздывания" вывода в ParamDebub и вывести расчетные значения на тике (10491) необходимо передать в ParamDebug третий параметр - номер бара/тика.
Реальные данные
Принцип работы и хранения пакета данных такой же, как и на исторических данных.

Отличия реальных данных от исторических:

  1. В ETS автоматически удаляются пакеты данных при наступлении нового дня, или в настройках/хранилище данных можно установить параметр, чтоб данные по тикам вообще не хранились в памяти. При такой настройке данные по таблице всех сделок не будут доступны в роботе и для построения кластеров;

  2. В ParamDebug выводятся только текущие значения;

  3. При наведении на предыдущие свечи, ParamDebug не выведет значения, т.к не хранят их в памяти;