← Zurück

Формирование свечей в 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 в программу.

В чем может быть причина?

War dieses Thema hilfreich?

Thema teilen

Kommentare (14)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

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

l-way
l-way Autor

При запуске с 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 Autor

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

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

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

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

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

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

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

l-way
l-way Autor

Народ, если кто в курсе, в чем проблема - дайте наводку. У меня глубоких знаний 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, и забыл про таблицу всех сделок.