Вопрос по экспорту дополнительных колонок. Сейчас у меня в настройках таблицы Инструменты в Quik имеются следующие колонки
Полное название Код бумаги Код класса Статус Размер лота Мин. шаг цены Макс. цена Мин. цена
В окне пользователя я создал таблицу и сделал привязки
<ListView x:Name="TabMyTools" Height="100" Margin="5,27,10,0" VerticalAlignment="Top" Width="Auto" Background="#FFF58B8B">
<ListView.View>
<GridView>
<GridViewColumn Header="Название" Width="160" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Header="Код" Width="80" DisplayMemberBinding="{Binding Code}"/>
<GridViewColumn Header="Класс" Width="80" DisplayMemberBinding="{Binding Class}"/>
<GridViewColumn Header="Последняя сделка" Width="130" DisplayMemberBinding="{Binding LastTrade.Time, FallbackValue=NULL}"/>
<GridViewColumn Header="Посл. цена" Width="100" DisplayMemberBinding="{Binding LastTrade.Price, FallbackValue=NULL}"/>
<GridViewColumn Header="Лот" Width="80" DisplayMemberBinding="{Binding MinLotSize}"/>
<GridViewColumn Header="Шаг" Width="60" DisplayMemberBinding="{Binding MinStepSize}"/>
<GridViewColumn Header="Максимальная цена" Width="120" DisplayMemberBinding="{Binding MaxPrice}"/>
<GridViewColumn Header="Минимальная цена" Width="120" DisplayMemberBinding="{Binding MinPrice}"/>
</GridView>
</ListView.View>
</ListView>
Почему поля "последняя сделка","последняя цена" по инструменту выводятся корректно, при этом в таблице Quik этих полей нет? При этом поле MaxPrice показывает набор цифр, поле MinPrice показывает значения поля MinStepSize, но они есть в Quik? Я так понимаю надо прописать экспорт дополнительных колонок?
Этот код прописываем в библиотечном коннекторе WpfConnectionIntarface в виде
SafeConnection.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice);
SafeConnection.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice);
или можно прямо в основном коде проекта после выбора Quik?
ConnectionInterface.SafeConnection = new SafeConnection(new QuikTrader(QuikTerminal.GetDefaultPath()));
ConnectionInterface.SafeConnection.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice);
ConnectionInterface.SafeConnection.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice);
Или же вообще данный код надо прописать в SafeConnection в виде
Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice);
Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice);
Куда бы я не вносил этот код, везде ошибка Не определены SecuritiesTable и DdeSecurityColumns///
评论 (6)
登录 或 创建账户, 登录或注册以发表评论
Я читаю документацию, но к моему сожалению, не всё там понятно... Например, в документации сказано: "Через QuikTrader.SecuritiesTable добавляются требуемые колонки в том порядке, в которым они были добавлены в Quik: // добавляем на экспорт необходимые колонки this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.Volatility); this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.TheorPrice);"
А в указанном Вами примере, данный код внедрен в обработчик события кнопки Connect.
Из чего я делаю вывод, что в библиотеке StockSharp.WpfConnectionInterface, в обработчике события кнопки Сonnect необходимо добавить этот код, но здесь ошибка, SecuritiesTable не существует у Trader. Поэтому и задаю вопрос...
UsilaDobry, вышлите (iv_qul@list.ru) Ваш проект, с кодом импорта дополнительных столбцов. И укажите, какой столбец Вы добавили в Quik.
Мой проект будет бесполезен, ведь я вношу код ниже
в класс библиотеки StockSharp.WpfConnectionInterface. См. код выше в посте в нижнем спойлере.
А в Quik я добавил две колонки "Максимальная цена" и "Минимальная цена".
Конструктор SafeConnection какого типа принимает параметр? Не думаю что он заточен только под QuikTrader, поэтому или ITrader или BaseTrader.
Соответственно _safeConnection.Trader будет или ITrader или BaseTrader.
SecuritiesTable есть только у QuikTrader, поэтому студия и матерится, что не может найти это свойство у _safeConnection.Trader. Надо привести _safeConnection.Trader к соответствующему типу. Так должно работать:
Доп. столбцы можно добавлять хоть где, главное до коннекта и начала экспорта данных.
((QuikTrader)_safeConnection.Trader).SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice); ((QuikTrader)_safeConnection.Trader).SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice);