← Назад

в DdeMyTradeColumns нет OrderDirection

Приветствую!

Не нашёл в DdeMyTradeColumns поля OrderDirection как добавить экспорт OrderDirection для СВОИХ сделок?

С уважением!

Комментарии (9)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

ustas
ustas Автор

забыл указать QUIK stock# 1.8

ustas
ustas Автор

Пытался сдeлать так: Добавил в QUIK "мои сделки" поле Операция" последней

в код добавил

using Wintellect.PowerCollections; ... подписался на появление моих сделок

                   trader.NewMyTrades += myTrades =>
                    {

                       foreach (var myTrade in myTrades)
                        {

                           var trade = myTrade.Trade;
                            Console.WriteLine("{5} {0} по цене {1}

по бумаге {2} по объему {3} в {4}", trade.Id, trade.Price, trade.Security.Code, trade.Volume, trade.Time, trade.OrderDirection); } };

и добавил поле

var columns = trader.MyTradesTable.Columns; columns.Add(DdeTradeColumns.OrderDirection);

Но, увы при появлении моих сделок поле trade.OrderDirection

ustas
ustas Автор

Но, увы!

при появлении моих сделок поле trade.OrderDirection НЕ заполняется

Спасибо и с уважением!

Mikhail Sukhov
Mikhail Sukhov

А в таблицу Квика колонка добавлена?

ustas
ustas Автор

Да первым делом!

Если Вы про это

Mikhail Sukhov
Mikhail Sukhov

ITrader.ProcessDataError что говорит?

ustas
ustas Автор

Вот вывод ProcessDataError (ниже) напоминаю что речь о "МОИХ" а не "всех" сделках

Спасибо и суважением!

System.InvalidOperationException: Данные для таблицы 'все сделки' экспортировал сь в меньшем формате. Не было найдено значение для колонки 'OrderDirection'. Ко ичество колонок равно '8', индекс колонки '8'. в Ecng.Trading.Quik.DdeTable.☻.☻(DdeTableColumn ☻) в Ecng.Trading.Quik.QuikTrader.♥?.☻.☻(Int64 ☻) в Ecng.Trading.BusinessEntities.BaseTrader.<>c__DisplayClass2f.<GetTrade>b__ e(Int64 key) в Ecng.Collections.CollectionHelper.SafeAdd[K,V](IDictionary2 dictionary, K key, Func2 handler) в Ecng.Trading.BusinessEntities.BaseTrader.GetTrade(Int64 id, Func2 createT ade) в Ecng.Trading.Quik.QuikTrader.♥?.☻(Func2 ☻) в Ecng.Trading.Quik.DdeTable.☻(IList1 ☻, Action1 ♥) в Ecng.Trading.Quik.QuikTrader.☻(String ☻, IList1 ♥) в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action2 handler, T1 arg1, T2 arg2) в.♥()

Mikhail Sukhov
Mikhail Sukhov

Все, теперь понял в чем дело. Путаница между Мои сделки и Все сделки. Мои сделки - это то, что было получено в результате собственных заявок. Все сделки - это то, что течет с биржи. Соответственно, для того, чтобы определить направление в собствено сделке ничего дополнительно экспортировать не нужно. MyTrade.Order.Direction - вот оно направление.

Но бывает так, что необходимо получить направление из таблицы Все сделки. В данном случае тоже нет необходимости что-то менять, так как оно и так по умолчанию экспортируется (начиная с 1.8, как писал здесь

http://stockmarketdotnet.blogspot.com/2010/03/stock-18.htmlв пункте 14).

Вообщем, вот настройки для 1.8http://stocksharp.com/doc/help/html/5c13da7b-b6e4-4fd4-958a-66c93c58b941.htm

И последнее. Нельзя добавлять чужую колонку в таблицу. Тоесть, нельзя делать так: var columns = trader.MyTradesTable.Columns; columns.Add(DdeTradeColumns.OrderDirection);

MyTradesTable имеет собственные колонки - DdeMyTradeColumns.

ustas
ustas Автор

Да, действительно MyTrade.Order.Direction работает

Спасибо и с уважением!