Запуск дде вывода без коннекта к Quik
Atom Ответить
03.02.2011


Здравствуйте.
Возможно ли запустить дде вывод без предварительного коннекта к терминалу?
Хочу использовать S# просто для сбора нужной информации в таблицах..

И предложение: может быть на форуме стоит завести ветку, в которой можно будет спрашивать общие вопросы по квику, смарту и т.д. ?
Просто есть еще один вопрос, но не знаю куда задать)))

Вопрос следующий: может кто-нибудь подсказать, откуда(из каких таблиц) в квике можно достать информацию о балансе счета, который будет, если закрыть все текущие позиции по текущим котировкам? Т.е. нужна цифра=текущим денежным средствам+плавающий PnL по фортсу и ммвб
Что касается ММВБ, если я не ошибаюсь, нам нужно из таблицы "Клиентский портфель" взять столбец "Текущие средства", правильно?
А вот с фортсом вообще лично у меня непонятка. Может кто-нибудь подсказать?

Теги:


Спасибо:




18 Ответов
Mikhail Sukhov

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


Andrey R. Перейти

И предложение: может быть на форуме стоит завести ветку, в которой можно будет спрашивать общие вопросы по квику, смарту и т.д. ?
Просто есть еще один вопрос, но не знаю куда задать)))


Как минимум не в топике "Запуск дде вывода без коннекта к Quik"Wink
Спасибо:

Watson

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


1. В квике делаем таблицу из Торговля - Фьючерсы - Ограничения по клиентским счетам
2. Выводим в свою программу. За основу можно взять пример SampleDdeCustomTable
3. Учитываем особенность, что после вечернего клиринга у нас появляется три строчки, две из которых на утро пропадают.
Спасибо:

Andrey R.

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


С этим всем разобрался, а касательно первого вопроса есть ответ?


>>Возможно ли запустить дде вывод без предварительного коннекта к терминалу?
>>Хочу использовать S# просто для сбора нужной информации в таблицах..
Автор топика
Спасибо:

Maxim

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


Andrey R. Перейти
С этим всем разобрался, а касательно первого вопроса есть ответ?


>>Возможно ли запустить дде вывод без предварительного коннекта к терминалу?
>>Хочу использовать S# просто для сбора нужной информации в таблицах..



Присоединяюсь к вопросу.

Если Квик не соединен с сервером, при попытке установить соединение QuikTrader.Connect()
происходит ошибка: Exception message: Код ошибки DllConnected Сообщение Терминал не подключен к серверу..

Но.
Если S# был подключен к Квик во время торгов. В конце рабочего дня Квик потерял соединение с сервером,
а наутро следующего восстановил связь с сервером. При этих действиях S# не потерял связь с Квиком.

Из этого можно сделать вывод, что связь S# с Квиком в отсутствии связи с сервером возможна.

Михаил, правильно ли я понимаю ситуацию или где то ошибаюсь?
Возможно ли реализовать возможность подключения S# к Квику в отсутствии связи с сервером?
Спасибо:

dart

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


Maxim Перейти

Возможно ли реализовать возможность подключения S# к Квику в отсутствии связи с сервером?

Присоединяюсь к вопросу. Для меня вопрос в удобстве работы с S#.
Например, брокер включает свой сервер только за 20 мин до начала торгов. То есть если мне надо запустить робота до начала торгов (а так часто нужно, к примеру поменял параметры системы и перезапускаю), то вынужден быть у рабочего компа скажем в 9:40.
Спасибо:

Alexander

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


dart Перейти
Maxim Перейти

Возможно ли реализовать возможность подключения S# к Квику в отсутствии связи с сервером?

Присоединяюсь к вопросу. Для меня вопрос в удобстве работы с S#.
Например, брокер включает свой сервер только за 20 мин до начала торгов. То есть если мне надо запустить робота до начала торгов (а так часто нужно, к примеру поменял параметры системы и перезапускаю), то вынужден быть у рабочего компа скажем в 9:40.



А кто мешает сделать это средствами C#?

Код
private DispatcherTimer _startStopTimer;

private void InitAndStartTimer()
{
_startStopTimer = new DispatcherTimer {Interval = new TimeSpan(0, 10, 0), Tag = false};
_startStopTimer.Tick += StartStopTimerTick;
_startStopTimer.Start();
}

private void StartStopTimerTick(object sender, EventArgs e)
{
var started = (bool)_startStopTimer.Tag;
if (!started &&
DateTime.Now.Hour == 9 && DateTime.Now.Minute >= 45)
{
ManageConnect();
return;
}
}


Ну а в событиях Connected \ Disconnected проставляйте необходимый Tag у _startStopTimer
Спасибо:

Maxim

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


Alexander Перейти

А кто мешает сделать это средствами C#?


Никто не мешает.
Но с таким подходом зачем пользоваться S#?
Можно ведь весь код самому писать.

Да чего там мелочится, можно и ОС написать побыстренькому Smile
Шучу.

Библиотека для того и существует, что бы можно было не изобретать велосипед,
а пользоваться уже созданным кодом. Если Михаил скажет, что данный функционал
не будет реализован в библиотеке или будет реализован, но когда не известно,
тогда можно писать свое решение в коде. Если же Михаил скажет, что скоро
этот функционал будет, то можно и подождать.
Спасибо:

Mikhail Sukhov

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


Maxim Перейти
Если же Михаил скажет, что скоро этот функционал будет, то можно и подождать.


Скоро точно не будет. Есть другие танкоопасные направления, где 10 строчками пользовательского кода не решить проблему.
Спасибо:

Alexander

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


В 3.2 уже работает - пользуйтесь, кому было необходимо. Cool
Спасибо:

Maxim

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


День добрый.
Реанимирую эту ветку форума.

Выше я спрашивал следующее:
Maxim

Если Квик не соединен с сервером, при попытке установить соединение QuikTrader.Connect()
происходит ошибка: Exception message: Код ошибки DllConnected Сообщение Терминал не подключен к серверу..

Но.
Если S# был подключен к Квик во время торгов. В конце рабочего дня Квик потерял соединение с сервером,
а наутро следующего восстановил связь с сервером. При этих действиях S# не потерял связь с Квиком.

Из этого можно сделать вывод, что связь S# с Квиком в отсутствии связи с сервером возможна.

Михаил, правильно ли я понимаю ситуацию или где то ошибаюсь?
Возможно ли реализовать возможность подключения S# к Квику в отсутствии связи с сервером?



В результате Alexander Mukhanchikov предложил реализовать таймер и периодически пытаться подключится к Квик.
А позже сообщил, что этот механизм уже реализован в 3.2
Насколько я понимаю, он реализован в виде BaseTrader.ReConnectionSettings.

Это все хорошо, но не совсем отвечает на поставленный мной вопрос.

Повторю суть моего вопроса:
можно ли подключаться к Квику и работать с ним, когда Квик не подключен к серверу?
Например, запрашивать данные, которые остались в его таблицах.

Возможно ли это вообще?
Или это никак в принципе нельзя реализовать?
Или это уже все есть и я пропустил? (Использую старую версию 3.1.8, возможно в новой версии это все уже есть Smile )


UPD
в этом посте есть такая фраза
https://stocksharp.ru/posts/m/11466/

«Quik: Запуск дде вывода без коннекта к Quik»

Это как раз то, о чем я спрашивал? Или что то другое?
Спасибо:

Alexander

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


Да. В вашей версии это тоже уже вроде было.
Порой легче попробовать чем спрашивать и ждать ответа :)
Спасибо:

Maxim

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


В моей версии этого нет. Или надо как-то отдельно это активировать.
Так как при попытке подключится к Квику, когда он не подключен к серверу,
я получаю всю туже ошибку:
Exception message: Код ошибки DllConnected Сообщение Терминал не подключен к серверу
Спасибо:

Mikhail Sukhov

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


Maxim Перейти
В моей версии этого нет. Или надо как-то отдельно это активировать.
Так как при попытке подключится к Квику, когда он не подключен к серверу,
я получаю всю туже ошибку:
Exception message: Код ошибки DllConnected Сообщение Терминал не подключен к серверу


Подключаться к Квику, не подключенному к торгам, нельзя.
Спасибо:

Maxim

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


Mikhail Sukhov Перейти
Подключаться к Квику, не подключенному к торгам, нельзя.


О. Получил таки ответ на вопрос :)

Очень жаль.
Это из-за Квика так или из-за реализации S#?
Спасибо:

Mikhail Sukhov

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


Maxim Перейти
Очень жаль.
Это из-за Квика так или из-за реализации S#?



Код ошибки DllConnected Сообщение Терминал не подключен к серверу - это сообщение от Квика. Что логично, так как нет смысла производить подключение.
Спасибо:

Maxim

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


Mikhail Sukhov Перейти

Код ошибки DllConnected Сообщение Терминал не подключен к серверу - это сообщение от Квика. Что логично, так как нет смысла производить подключение.


Почему логично?

Я вижу по-крайней мере две причины подключиться к Квику, когда он не подключен к Серверу.

1) Квик отключился от сервера, но в его таблицах остались данные. Можно подключиться к нему и воспользоваться этими данными.

2) Квик не подключен к серверу. Подключится к нему и ждать, когда он заработает для осуществления своей деятельности.
Сейчас этот вопрос, правда, реализован в BaseTrader.ReConnectionSettings, путем периодических попыток установить соединение с Квиком.
Спасибо:

MoRGaN

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


Если квик запущен и в таблицах квика есть данные, то даже если сам квик к серверу не подключен начать экспорт данных получается проигнорировав событие ConnectionError. Постоянно пользуюсь для отладки на данных торгового дня после завершения торгов. Естественно, стакан получить не удастся, но таблицу всех сделок и собственных сделок/заявок - вполне.
Спасибо:

Mikhail Sukhov

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


MoRGaN Перейти
Если квик запущен и в таблицах квика есть данные, то даже если сам квик к серверу не подключен начать экспорт данных получается проигнорировав событие ConnectionError. Постоянно пользуюсь для отладки на данных торгового дня после завершения торгов. Естественно, стакан получить не удастся, но таблицу всех сделок и собственных сделок/заявок - вполне.


На последней версии (что в КодеПлексе) работает запуск экспорта при отключенном интернете. ConnectionError быть не может просто потому, что я не соединяюсь в коде. И конечно же он будет, если пытаться соединится.
Спасибо:


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

loading
clippy