Всем привет
Столкнулся с такой проблемой. Запускаю одного и того же робота под Quik (версия 5.16) и Quik Junior (версия 5.21). Меняю только путь к квику и номер счета. Под quik на реальном счете получение свечей отрабатывает нормально:
var candlesEnum = TraderHelper.GetTimeFrameCandles(p_candleManager, Security, timeFrame, new Range<DateTime>(startCandleTime, endCandleTime));
Под Quik Junior GetTimeFrameCandles всегда возвращает ноль свечей. При этом Strategy.Trader.Trades[] - заполнена, а candleManager.Source.Trades[] - пустая. Т.е. таблица всех сделок получена и дело видимо не в передаче данных из quik junior в программу.
В чем может быть причина?
Комментарии (14)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Выведите в лог события CandleManager.
При запуске с quik junior не вызывается ни одно событие (в том числе и ProcessDataError). При запуске с quik вызываются CandlesChanged, CandlesFinished, NewCandles.
Михаил, подскажите, как еще можно поискать причину такого поведения?
Михаил, сделал все, как вы писали.
Verifier - Все настроено правильно!
Sample - получает все сделки.
А вот при работе с SampleCandles обнаружил следующую штуку. Жму "Подключиться", затем "Экпорт DDE". Далее, если очень быстро выбрать бумагу и нажать "График", то свечи отрисовываются. Если после нажатия "Экпорт DDE" немного подождать, то свечей на графике нет. Несколько экспериментов показало, что от времени ожидания между нажатием "Экпорт DDE" и "График" зависит число отрисованных свечей (их либо вообще нет, либо обрезаются свечи в начале).
Получается, что событие _candleManager.NewCandles += DrawCandles отрабатывает только для тех свечей, которые приходят из quik после RegisterTimeFrameCandles(security, this.TimeFrame.SelectedTime).
Как оказалось, причина не работоспособности в собственной стратегии - в этом же. В Quik на реальном счете таблица всех сделок намного больше, поэтому часть сделок всегда успевало приходить и казалось, что все работает. Хотя на самом деле свечи в начале также обрезаются.
Михаил, это все так и должно работать? Если да, то как можно получить все свечи за текущий день?
Народ, если кто в курсе, в чем проблема - дайте наводку. У меня глубоких знаний C# нет, не исключено, что просто что то не понимаю.
Добрый вечер, Михаил!
У меня такая же ситуация с SampleCandles. Ваши рекомендации выполнены:
Пункты 2-3 прошли на ура!
Но при работе с quik junior (v.5.21, файл настройки info.wnd) ни с одной из бумаг не срабатывает ни одно из событий: _candleManager.NewCandles += DrawCandles; _candleManager.CandlesChanged += += DrawCandles;
Может имеется возможность проследить какие из событий вообще поступают в программу из Quik? (либо сделать логирование событий).
В таблице всех сделок что-нибудь есть?
Alexander,
Нету сделок именной с программой SampleCandles.
Ответа не понял. :) В квике в таблице Всех сделок что-нибудь есть?
Столкнулся с такой же проблемой, в квике в таблице все сделки сделки идут
Раз проблема та же, может поможет и то же решение?
Alexander,
может я начал не с того примера для начала изучения формирования свечек?
Alexander,
Спасибо! я уже подумал, что Михаил придумал новый способ экспорта из Quik, и забыл про таблицу всех сделок.