← Назад

Формирование свечей в Quik и QuikJunior

Всем привет

Столкнулся с такой проблемой. Запускаю одного и того же робота под 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)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Mikhail Sukhov
Mikhail Sukhov

Выведите в лог события CandleManager.

l-way
l-way Автор

При запуске с quik junior не вызывается ни одно событие (в том числе и ProcessDataError). При запуске с quik вызываются CandlesChanged, CandlesFinished, NewCandles.

Михаил, подскажите, как еще можно поискать причину такого поведения?

Mikhail Sukhov
Mikhail Sukhov

l-way: При запуске с quik junior не вызывается ни одно событие (в том числе и ProcessDataError). При запуске с quik вызываются CandlesChanged, CandlesFinished, NewCandles.

Михаил, подскажите, как еще можно поискать причину такого поведения?

  1. Забываем про quik, работает только с quik junior.
  2. Запускаем Verifier.
  3. Запускаем Sample.
  4. Запускаем SampleCandles.
l-way
l-way Автор

Михаил, сделал все, как вы писали.

Verifier - Все настроено правильно!

Sample - получает все сделки.

А вот при работе с SampleCandles обнаружил следующую штуку. Жму "Подключиться", затем "Экпорт DDE". Далее, если очень быстро выбрать бумагу и нажать "График", то свечи отрисовываются. Если после нажатия "Экпорт DDE" немного подождать, то свечей на графике нет. Несколько экспериментов показало, что от времени ожидания между нажатием "Экпорт DDE" и "График" зависит число отрисованных свечей (их либо вообще нет, либо обрезаются свечи в начале).

Получается, что событие _candleManager.NewCandles += DrawCandles отрабатывает только для тех свечей, которые приходят из quik после RegisterTimeFrameCandles(security, this.TimeFrame.SelectedTime).

Как оказалось, причина не работоспособности в собственной стратегии - в этом же. В Quik на реальном счете таблица всех сделок намного больше, поэтому часть сделок всегда успевало приходить и казалось, что все работает. Хотя на самом деле свечи в начале также обрезаются.

Михаил, это все так и должно работать? Если да, то как можно получить все свечи за текущий день?

l-way
l-way Автор

Народ, если кто в курсе, в чем проблема - дайте наводку. У меня глубоких знаний C# нет, не исключено, что просто что то не понимаю.

Виктор
Виктор

Добрый вечер, Михаил!

У меня такая же ситуация с SampleCandles. Ваши рекомендации выполнены:

  1. Забываем про quik, работает только с quik junior.
  2. Запускаем Verifier.
  3. Запускаем Sample.
  4. Запускаем SampleCandles.

Пункты 2-3 прошли на ура!

Но при работе с quik junior (v.5.21, файл настройки info.wnd) ни с одной из бумаг не срабатывает ни одно из событий: _candleManager.NewCandles += DrawCandles; _candleManager.CandlesChanged += += DrawCandles;

Может имеется возможность проследить какие из событий вообще поступают в программу из Quik? (либо сделать логирование событий).

Alexander
Alexander

Gazrvs: Добрый вечер, Михаил!

такая же пример ситуация SampleCandles. Ваши рекомендации выполнены:

  1. Забываем про quik, работает только с quik junior.
  2. Запускаем Verifier.
  3. Запускаем Sample.
  4. Запускаем SampleCandles.

Пункты 2-3 прошли на ура!

Но при работе с quik junior (файл настройки info.wnd) ни с одной из бумаг не срабатывает ни одно из событий: _candleManager.NewCandles += DrawCandles; _candleManager.CandlesChanged += += DrawCandles;

Может имеется возможность проследить какие из событий вообще поступают в программу из Quik? (либо сделать логирование событий)

В таблице всех сделок что-нибудь есть?

Виктор
Виктор

Alexander,

Нету сделок именной с программой SampleCandles.

Alexander
Alexander

Gazrvs: Alexander,

Нету сделок именной с программой SampleCandles.

Ответа не понял. :) В квике в таблице Всех сделок что-нибудь есть?

Supervisor
Supervisor

Alexander:

Gazrvs: Alexander,

Нету сделок именной с программой SampleCandles.

Ответа не понял. :) В квике в таблице Всех сделок что-нибудь есть?

Столкнулся с такой же проблемой, в квике в таблице все сделки сделки идут

Mikhail Sukhov
Mikhail Sukhov

Supervisor: Столкнулся с такой же проблемой, в квике в таблице все сделки сделки идут

Раз проблема та же, может поможет и то же решение?

Supervisor
Supervisor

Mikhail Sukhov:

Supervisor: Столкнулся с такой же проблемой, в квике в таблице все сделки сделки идут

Раз проблема та же, может поможет и то же решение? Извините, может чего-то не понимаю, перечитал всю тему еще раз, но решения данной проблемы не нашел.

Виктор
Виктор

Alexander,

может я начал не с того примера для начала изучения формирования свечек?

Виктор
Виктор

Alexander,

Спасибо! я уже подумал, что Михаил придумал новый способ экспорта из Quik, и забыл про таблицу всех сделок.