Формирование свечей в Quik и QuikJunior
Atom Ответить
12.05.2011


Всем привет

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

Фотография
Автор статей Программист Трейдер
Дата: 13.05.2011
Ответить


Выведите в лог события CandleManager.
Спасибо:

l-way

Фотография
Дата: 13.05.2011
Ответить


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

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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 14.05.2011
Ответить


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

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


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

l-way

Фотография
Дата: 17.05.2011
Ответить


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

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

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

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

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

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

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

l-way

Фотография
Дата: 18.05.2011
Ответить


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

Виктор

Фотография
Курсы Благотворитель
Дата: 22.05.2011
Ответить


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

У меня такая же ситуация с 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

Фотография
Дата: 22.05.2011
Ответить


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? (либо сделать логирование событий)







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

Виктор

Фотография
Курсы Благотворитель
Дата: 22.05.2011
Ответить


Alexander,

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

Виктор

Фотография
Курсы Благотворитель
Дата: 22.05.2011
Ответить


Alexander,

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

Alexander

Фотография
Дата: 22.05.2011
Ответить


Gazrvs Перейти
Alexander,

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


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

Виктор

Фотография
Курсы Благотворитель
Дата: 22.05.2011
Ответить


Alexander,

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

Supervisor

Фотография
Дата: 03.06.2011
Ответить


Alexander Перейти
Gazrvs Перейти
Alexander,

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


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


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 03.06.2011
Ответить


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


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

Supervisor

Фотография
Дата: 03.06.2011
Ответить


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


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

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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy