Про объём сделки
Atom Ответить
23.12.2010


Сейчас сделка (Trade) не содержит информации об объёме. Свойство Volume это количество контрактов.
Без объёма сделки невозможно смотреть на сделки по инструментам, которые не импортируются.

Кроме Quik никто не даёт объёма сделки или этого поля нет по какой-то другой причине?

Теги:


Спасибо:




11 Ответов
Юрий Басангов

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


Встречный вопрос, под объемом сделки вы понимаете фактически: кол-во контрактов*цену?
Спасибо:

Иванов Андрей

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


Юрий Басангов
Встречный вопрос, под объемом сделки вы понимаете фактически: кол-во контрактов*цену?

Я думаю, что тот, кто сможет ответить на вопрос, сделает это без уточнения =)

Количество контрактов это цифра ни о чём -- цена указывается за 1 бумагу, а в контракте бумаг может быть 100. У эффективных менеджеров ВТБ размер контракта вообще 1000 бумаг.
Автор топика
Спасибо:

Foxbow

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


Я может лезу не разобравшись, но во первых, Trade содержит поле Volume и это поле содержит количество приобретенных или проданных лотов. Сколько контрактов в одном лоте - это информация из Security. Смотрите исходные таблицы в Quik (инструменты, все сделки)
Спасибо:

ltrim

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


Иванов Андрей
Сейчас сделка (Trade) не содержит информации об объёме. Свойство Volume это количество контрактов.
Без объёма сделки невозможно смотреть на сделки по инструментам, которые не импортируются.

Кроме Quik никто не даёт объёма сделки или этого поля нет по какой-то другой причине?


В общем! Поле таблицы Квика "Объем" прям в Trade никуда не выгружается, за то есть Ext. info расширенная информация по сделке. В событии получения неопределенных DDE данных можно отлавливать эту колонку "Объем" и запихивать ее в Ext. info расширенная информация по сделке.
Спасибо:

Mikhail Sukhov

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


Иванов Андрей
Сейчас сделка (Trade) не содержит информации об объёме. Свойство Volume это количество контрактов.
Без объёма сделки невозможно смотреть на сделки по инструментам, которые не импортируются.

Кроме Quik никто не даёт объёма сделки или этого поля нет по какой-то другой причине?


Не знаю, о чем был вопрос и ответили ли на него. Но, если речь идет о каком то вычисляемом поле, то такие поля я не экспортирую и не создаю свойства в торговых объектам из-за соображений минимальной достаточности.
Спасибо:

ustas

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


Mikhail Sukhov

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


Как я его понял (возможно ошибочно), - есть например агрессивная покупка (по аску) в 10 контрактов и она прошла в 3 сделки - 5+3+2 например, то по таблице всех сделок мы увидим 3 сделки но размер (Volume?) начальной заявки нет, но, судя по ltrim, он возможно выгружается в каком то другом месте/поле.
Вычислить его ессно нельзя.

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

Mikhail Sukhov

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


ustas

Насколько я понимаю вопрос , - есть например агрессивная покупка (по аску) в 10 контрактов и она прошла в 3 сделки - 5+3+2 например, то по таблице всех сделок мы увидим только 3 сделки а размер начальной заявки нет, но, судя по ltrim, её размер возможно выгружается в каком то другом месте/поле. Вычислить его нельзя.


Полностью не уверен, но такое даже биржей не транслируется, чтобы по тиковой сделке можно было бы узнать объем первоначальной заявки.
Спасибо:

Иванов Андрей

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


Foxbow: Только в том случае, если у вас есть инструмент =) А когда инструмента нет, узнать размер лота не получится.

ltrim: это-то понятно, интересно было, зачем у сделки нет стоимости.

ustas: У меня всё спокойно, без агрессии ;) Просто смотрю на весь рынок бумаг.

Mikhail Sukhov: Это поле не вычисляется без инструмента, которого может не быть по триллиарду причин -- не успел загрузиться, нет в таблице инструментов, что-нибудь ещё.
Автор топика
Спасибо:

Mikhail Sukhov

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


Иванов Андрей Перейти

Mikhail Sukhov: Это поле не вычисляется без инструмента, которого может не быть по триллиарду причин -- не успел загрузиться, нет в таблице инструментов, что-нибудь ещё.


Я понял о чем речь. Но нестандартные задачи требуют нестандартных решений. То, что это нестандартное решение говорит хотя бы то, что Вы первый, кто это запросилSmile. В данном случае - ExtensionInfo.

Как фича, которую сделал для следующего релиза - возможность оперировать своими типами данных, производными от стандартных. Это мне понадобилось как раз при работе с ExtensionInfo. Например, текущая работа с опционами:

Код
Security riXXX = base.Trader.Securities.First(s => s.Code == "...");
var thPrice = riXXX.ExtensionInfo[DdeSecColumns.TheorPrice];


А вот как будет можно:

Код
var riXXX = (Option)base.Trader.Securities.First(s => s.Code == "...");
var thPrice = riXXX.TheorPrice;


Благодаря небольшой магии ввиде:

Код
class Option : Security
{
public double TheorPrice
{
get { base.ExtensionInfo[DdeSecColumns.TheorPrice]; }
}
}
Спасибо:

Иванов Андрей

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


Так эта магия и сейчас должна работать =)
Только с нюансом -- надо определять оператор преобразования типа. Но этот нюанс и в вашем случае надо реализовывать. По мне экстеншен был бы здесь в самый раз, классы нужны для инкапсуляции состояния в основном.

Кстати, использование "base." разумно только в виртуальном методе для вызова самого себя вверх по цепочке наследования. Полагаю, что в вашем коде это последствия любви к "this.", но разница между ними в том, что использование "base." где попало приведёт рано или поздно к необъяснимым логическим ошибкам.

И совсем не в тему =) В прошлом году в MSDN Magazine Тэд Ньюард начал писать серию статей "Мультипарадигматическая .NET". Советую обратить на неё внимание, там очень хорошо описываются базовые принципы построения ПО, которые не знает подавляющее большинство разработчиков. Вот, например, вторая статья: http://msdn.microsoft.co...u/magazine/gg232770.aspx
Автор топика
Спасибо:

Mikhail Sukhov

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


Иванов Андрей Перейти
Так эта магия и сейчас должна работать =)
Только с нюансом -- надо определять оператор преобразования типа. Но этот нюанс и в вашем случае надо реализовывать. По мне экстеншен был бы здесь в самый раз, классы нужны для инкапсуляции состояния в основном.


Я сделал фабрику, без экстеншенов и конвертации. Можно, конечно, делать что-то вида myRih.GetVolitility() но есть два минуса:

1. Отсутствие поддержки со стороны байдинга.
2. Код не очень красивый.

Иванов Андрей Перейти

Кстати, использование "base." разумно только в виртуальном методе для вызова самого себя вверх по цепочке наследования. Полагаю, что в вашем коде это последствия любви к "this.", но разница между ними в том, что использование "base." где попало приведёт рано или поздно к необъяснимым логическим ошибкам.


Да, я люблю this чтобы отличать статический член от инстанцового. И base использую, чтобы видеть, какой член чему принадлежит. По сути, пользы мало, но это как вредная привычка, от которой не хочется отказываться.Smile

Иванов Андрей Перейти

И совсем не в тему =) В прошлом году в MSDN Magazine Тэд Ньюард начал писать серию статей "Мультипарадигматическая .NET". Советую обратить на неё внимание, там очень хорошо описываются базовые принципы построения ПО, которые не знает подавляющее большинство разработчиков. Вот, например, вторая статья: https://msdn.microsoft.co...u/magazine/gg232770.aspx


Еще в 2007 ThumpUp я сделал подобное в Ecng.ComponentModel. Там присутствуют классы Point<T> Size<T> Rectangle<T>. И Operator<T> для реализации алгебры... Уже 4 года прошло. А использовал последний раз эти классы как раз в 2007.LOL
Спасибо:


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

loading
clippy