Продолжаю ковырять SampleConsole, и столкнулся я вот с этим "Если код и класс инструмента содержат символ @, то рекомендуется поменять разделитель на другой символ через свойство SecurityIdGenerator....Delimiter у BaseTrader....SecurityIdGenerator. " , а как сие применить примера нема.В общем нужно получить стакан srh2@rts в sampleconsole.Может кто кусок кода кинет по теме?
Comments (27)
Login or Create account, Log in or register to leave a comment
Ничего там переопределять не нужно, ни код ни класс у srh2 не содержат знаков @
В хелпе по экспорту стакана именно так(srh2@rts) фьючи выводятся, и Verifier ругается если в заголовке стакана видит просто Srh2.А если выводить стакан при запущенной SampleConsole, dde не находит лист srh2@rts.Нужно как-то применить "SecurityIdGenerator.Delimiter" видимо, чтоб @ на что-то другое заменить ибо Vs на @ как-то не так смотрит 😟 .
ТАк поставтье в имени таблицы - SRH2@RTS Все будет прекрасно выводится.
Сделал все, как у вас описано - у меня все прекрасно работает. Попробуйте сделать так. Скачайте последную версию S#. Загрузите файл с настройками Квика, чтобы получить правильные таблицы. Стакан не открывайте, программа сама его откроет. Только поменяйте инстумет в примере и все.
Сделал как вы сказали, попробовал 4.0.18, опять уперся в "Дожидаемся появления в программе инструмента и портфеля". Все 3 раза проверил, таблицы из стоковского ванда,в общем я в прострации.
Я тоже. А что такое стоковский ванд?
Я подозреваю что ответ тут http://stocksharp.com/forum/2292/Stakan-FORTS-voobshchie-rabotaiet/ кроется но разглядеть руководство к действию не могу. Но там человек стакан сам вроде в квике открывал.
Попробовал запустить SampleConsole Поменял на SRH2
Запустил, все отрабатывает нормально. В квике стакан открыт.
Закрыл стакан, запустил, стакан открылся автоматом и все отработало как надо.
У вас в таблице "Инструменты" фьючерс SRH2 есть?
В таблице "Инструменты" фьючерс SRH2 есть. Приложу листинг может пропустил что.Кстати как код выкладывать цивилизовано? namespace SampleConsole { using System; using System.Linq; using System.Threading;
}
"Кстати как код выкладывать цивилизовано?" Нажать кнопку - ответить, там сверху есть кнопки, онда из них - подсветка кода. Нажать её и выбрать нужный код. Появятся открывающий и закрывающий теги, ввести туда код.
После того, как вы стака отредактировали ,вы нажимаете кнопку "Начать вывод" ?
Попробовал скопипастить ваш код и запустить. В итоге работа программы остановилась на "стакан SRH2 появился". Запускаю оригинальный пример просто с изменением инструмента. То же самое.😳
Ставлю бряк на вход в обработчик события NewPortfolios и наблюдаю следующуюю картину.
Событие сработало, нашелся портфель ММВБ. Но после этого, событие больше не срабатывало. Хотя должно было, и должен был найден портфель FORTS
Проблема оказалась в следующем. Есть вот такие куски кода
Так вот в оригинальном примере по dde выводятся таблицы "портфель по бумагам" и "позиции по бумагам" - trader.EquityPositionsTable, trader.EquityPortfoliosTable
Чтобы работать с фьючерсами, надо добавить еще две таблицы trader.DerivativePositionsTable и trader.DerivativePortfoliosTable
Или сделать проще
И все будет работать.
Самое интересное почему у меня тогда вчера правильно работал этот пример, ведь я ничего не менял кроме инструмента?
Начинаю разбираться. Удаляю таблицы по деривативам, запускаю, пример отрабатывает как надо.😳 Ставлю опять бряк на вход в обработчик события NewPortfolios. Смотрю, находится портфель по FORTS. Смотрю в квике запущен ли экспорт по таблицам деривативов - нет, не запущен.🤨
Оказывается. Даже если не запущен экспорт dde по таблицам деривативов, то если есть хоть одна заявка в таблице "Заявки", то номер счета будет браться оттуда.
<u>Это фича или баг?</u>
Проверил следующим образом, удалил таблицу заявок из экспорта - trader.OrdersTable. Запустил и программа не отработала как надо. Поэтому у меня вчера пример отработал без проблем, т.к. были сделки по FORTS.
Это не фича и не баг. Это то как работает QuikTrader - строит информацию по той таблице, которая пришла первой.
Ок. Понятно.
И снова здравствуйте 🎉 ! Спасибо vader и Moadip за внимание к проблеме.Я опять с плохими новостями. Если использовать <mark>trader.StartExport(); trader.StopExport(); </mark> то упираюсь в "Портфель ХХХ появился" а после закрытия консоли квик выдает - DDE сервер 'STOCKSHARP'. Документ 'все сделки[]'. Таблица 'Все сделки'. Ошибка при передаче таблицы,вывод приостановлен. Неверные параметры. И еще 'Переполнена очередь сообщений', и еще что-то про переполнение сервера что я не смог воспроизвести и записать. А при использовании старт экспорта с перечислением таблиц, также упираюсь в "Портфель ХХХ появился" но после закрытия консоли квик ошибок не выдает. Verifier говорит все хорошо. На всякий случай оставил в таблице всех сделок только сбер. Кто что думает?
Оригинальный пример SampleConsole как работает? Нормально или нет?
Для всех экспериментов лучше поставить демо квик. На боевом как то неохото тренироваться в отладке кода.
Поставьте демо квик(закажите доступ на сайте квик). Сначала будет только ММВБ. Потом дня через два подключат фортс. Проверьте как работает оригинальный пример SampleConsole, чтобы исключить ошибки на начальном этапе.
Тестировать нагляднее лучше на Sample. Но понять его сложнее.
Сейчас попробовал после загрузки консоли до "Портфель ХХХ получен"(здесь у меня всё и встаёт)вывеси стакан вручную и получил "Не удалось установить DDЕ соединение с сервером 'wrapper'.Либо не запущен 'стакан', либо в него не загружен лист 'SRH2@RTS'. Таблица 'SRH2@RTS'". Неужели все это действительно работает 🤬 ? Verifier говорит ок. Ну и код еще раз на всякий.
Докладываю на случай появления розовых с моего юзерпика. В квик был подгружен приложенный к библиотеке ванд и на этом настройку я посчитал законченной(прочитав это <mark>Данный файл уже содержит настройки программы Quik, и не требуется самостоятельная настройка таблиц</mark> ) не добавив свой любимый сбер в таблицу инструменты. Теперь все работает и даже удалось рубль заработать😀. В документацию стоит добавить что самостоятельно придется добавить торгуемые инструменты.
Добрый день!
Пробую получать данные по инструменту как "RIM2" - ничего. Если имя инструмента задать как "RTS-6.12", все работает.
Для инструментов ММВБ такой проблемы нет - поиск по LKOH, SBER, SBERP и другим результат дает исправно (экспорт по DDE запускается, стакан появляется).
Как побороть?