Эта тема содержит следующие разделы.
- Сохранение истории сделок
- Сделки без контроля Wealth-Lab
- Время загрузки истории
- Загрузка заявок, если бар не найден
При прохождении заявки из стратегии Wealth-Lab на биржу, ее идентификатор запоминается и связывается с объектом, отображающемся в списке заявок Wealth-Lab. При этом пользовательский интерфейс Wealth-Lab получает возможность отображать изменения статуса заявки и дает возможность пользователю отменить ее при необходимости.
Сохранение истории сделок
При торговле, стратегия должна иметь представление о текущей позиции по бумаге. Активных стратегий может быть несколько, они могут работать на разных таймфреймах, бумагах, счетах пользователя. Таким образом, все заявки должны иметь следующие признаки:
Имя стратегии(Максимум 50 символов, не используйте длинных имен!)
Таймфрейм
Бумага
Счет
Имея эти данные, стратегия загружает историю своих сделок и имеет данные о текущей позиции на рынке. Остальные стратегии загружают только свои сделки и позиции не смешиваются.
Важно! При смене имени стратегии, таймфрейма или торгового счета связь стратегии с историей заявок будет разорвана.
Важно! Если изменилось только имя стратегии – нажмите кнопку Compile в редакторе.
Сделки без контроля Wealth-Lab
Пользователь может купить бумаги напрямую через торговый терминал или через контекстное меню в графике бумаги внутри Wealth-Lab. При этом привязка в первом случае, заявки вообще не видны в Wealth-Lab, а во втором привязка идет к стратегии без имени или к стратегии, которая открыта в графике.
Важно!Если при выключении Wealth-Lab в торговой системе(терминале) остаются активные заявки, их исполнение может быть не задокументировано в Wealth-Lab если на момент перезапуска Wealth-Lab эти сделки уже недоступны в торговой системе(терминале).
Время загрузки истории
Загрузка длинной истории заявок может занимать время от нескольких миллисекунд до нескольких секунд, в зависимости от длины истории. Загрузка происходит на каждом баре перед исполнением стратегии, так что если ваша стратегия в начале торгов работает 10 миллисекунд, а через некоторое время 50 миллисекунд, возможно причина в длинной истории сделок. Ускорить процесс загрузки можно с помощью вызова SetLoadSumPosition(true). При этом время загрузки должно резко упасть и не превышать 1 миллисекунды.
Важно!Следует помнить, что для загрузки объема позиции используется метод SetShareSize, поэтому в настройках Portfolio Simulation Mode должен быть выбран пункт WealthScript Override. Кроме этого Вы можете увидеть сообщение о том, что сделки не загружены, т.к. капитал не позволяет совершить сделку на заданный объем(Влияет только на отображение). Выставьте достаточный объем средств в настройке Starting Capital.
Загрузка заявок, если бар не найден
Точки входа и выхода определяются до срабатывания стратегии. При этом, если история котировок загружена и бар на котором произошла сделка найден – загрузка проходит штатно, но если истории нет, за какую-то дату, а сделку, очевидно , надо загрузить, то необходимо использовать в стратегии специальный конструктор public MyStrategy():base(true, false){...} При этом, сделки для которых не найден бар будут загружены на первый или последний бар истории, в зависимости от даты сделки и существующих баров. Это может испортить картинку, но все сделки будут учтены, иначе будет сгенерирована исключительная ситуация “бар не найден”. Важно! В режиме монитора стратегий WLRT стратегия всегда использует специальный конструктор с указанной опцией.