Экспорт дополнительных колонок


Экспорт дополнительных колонок
Atom
5/8/2013


Вопрос по экспорту дополнительных колонок.
Сейчас у меня в настройках таблицы Инструменты в Quik имеются следующие колонки

Полное название
Код бумаги
Код класса
Статус
Размер лота
Мин. шаг цены
Макс. цена
Мин. цена

В окне пользователя я создал таблицу и сделал привязки

Code
<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 в виде
Code
SafeConnection.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice);
SafeConnection.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice);

или можно прямо в основном коде проекта после выбора Quik?
Code
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 в виде
Code
Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice);
Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice);

Куда бы я не вносил этот код, везде ошибка Не определены SecuritiesTable и DdeSecurityColumns///



Thanks:


IvanB

Avatar
Date: 5/8/2013
Reply


UsilaDobry Go to
Вопрос по экспорту дополнительных колонок.
...

Об экспорте дополнительных колонок из Quik написано в документации http://stocksharp.com/do...c-9fc5-27ecb07bdf5e.htm , есть демонстрационный проект, который называется SampleDdeExtendedInfo.
Thanks:

UsilaDobry

Avatar
Date: 5/8/2013
Reply


IvanB Go to
UsilaDobry Go to
Вопрос по экспорту дополнительных колонок.
...

Об экспорте дополнительных колонок из Quik написано в документации http://stocksharp.com/do...c-9fc5-27ecb07bdf5e.htm , есть демонстрационный проект, который называется SampleDdeExtendedInfo.


Я читаю документацию, но к моему сожалению, не всё там понятно...
Например, в документации сказано:
"Через QuikTrader.SecuritiesTable добавляются требуемые колонки в том порядке, в которым они были добавлены в Quik:
// добавляем на экспорт необходимые колонки
this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.Volatility);
this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.TheorPrice);"

А в указанном Вами примере, данный код внедрен в обработчик события кнопки Connect.



Из чего я делаю вывод, что в библиотеке StockSharp.WpfConnectionInterface, в обработчике события кнопки Сonnect необходимо добавить этот код, но здесь ошибка, SecuritiesTable не существует у Trader. Поэтому и задаю вопрос...
Thanks:

IvanB

Avatar
Date: 5/8/2013
Reply


UsilaDobry, вышлите (iv_qul@list.ru) Ваш проект, с кодом импорта дополнительных столбцов. И укажите, какой столбец Вы добавили в Quik.
Thanks:

UsilaDobry

Avatar
Date: 5/8/2013
Reply


IvanB Go to
UsilaDobry, вышлите (iv_qul@list.ru) Ваш проект, с кодом импорта дополнительных столбцов. И укажите, какой столбец Вы добавили в Quik.


Мой проект будет бесполезен, ведь я вношу код ниже

Code
_safeConnection.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice);
_safeConnection.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice);


в класс библиотеки StockSharp.WpfConnectionInterface. См. код выше в посте в нижнем спойлере.

А в Quik я добавил две колонки "Максимальная цена" и "Минимальная цена".
Thanks:

Moadip

Avatar
Date: 5/8/2013
Reply


Code
ConnectionInterface.SafeConnection = new SafeConnection(new QuikTrader(QuikTerminal.GetDefaultPath()));

Конструктор SafeConnection какого типа принимает параметр?
Не думаю что он заточен только под QuikTrader, поэтому или ITrader или BaseTrader.

Соответственно _safeConnection.Trader будет или ITrader или BaseTrader.

SecuritiesTable есть только у QuikTrader, поэтому студия и матерится, что не может найти это свойство у _safeConnection.Trader.
Надо привести _safeConnection.Trader к соответствующему типу.
Так должно работать:
Code

((QuikTrader)_safeConnection.Trader).SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice);
((QuikTrader)_safeConnection.Trader).SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice);


Доп. столбцы можно добавлять хоть где, главное до коннекта и начала экспорта данных.
Thanks: UsilaDobry

UsilaDobry

Avatar
Date: 5/9/2013
Reply


Moadip Go to

Так должно работать:
Code

((QuikTrader)_safeConnection.Trader).SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice);
((QuikTrader)_safeConnection.Trader).SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice);



Работает! Ёлы-палы, благодарю [biggrin]
С праздником Победы! [biggrin]
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy