← Atrás

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

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

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

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

¿Le resultó útil este tema?

Compartir tema

Comentarios (18)

Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario

Mikhail Sukhov
Mikhail Sukhov

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

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

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

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

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

Maxim
Maxim

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

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

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

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

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

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

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

dart
dart

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

Alexander
Alexander

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
Maxim

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

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

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

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

Mikhail Sukhov
Mikhail Sukhov

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

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

Maxim
Maxim

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

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

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

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

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

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

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

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

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

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

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

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

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

Alexander
Alexander

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

Alexander
Alexander

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

Maxim
Maxim

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

Mikhail Sukhov
Mikhail Sukhov

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

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

Maxim
Maxim

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

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

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

Mikhail Sukhov
Mikhail Sukhov

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

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

Maxim
Maxim

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

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

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

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

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

MoRGaN
MoRGaN

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

Mikhail Sukhov
Mikhail Sukhov

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

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