Экспорт дополнительных колонок
Atom Ответить
08.05.2013


Вопрос по экспорту дополнительных колонок.
Сейчас у меня в настройках таблицы Инструменты в 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 Ответов
IvanB

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


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

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

UsilaDobry

Фотография
Курсы
Дата: 08.05.2013
Ответить


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

Об экспорте дополнительных колонок из Quik написано в документации https://stocksharp.ru/do...2c-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. Поэтому и задаю вопрос...
Автор топика
Спасибо:

IvanB

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


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

UsilaDobry

Фотография
Курсы
Дата: 08.05.2013
Ответить


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


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

Код
_safeConnection.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice);
_safeConnection.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice);


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

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

Moadip

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


Код
ConnectionInterface.SafeConnection = new SafeConnection(new QuikTrader(QuikTerminal.GetDefaultPath()));

Конструктор 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);


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

UsilaDobry

Фотография
Курсы
Дата: 09.05.2013
Ответить


Moadip Перейти

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

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



Работает! Ёлы-палы, благодарю BigGrin
С праздником Победы! BigGrin
Автор топика
Спасибо:


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

loading
clippy