4.1 WeightedIndexSecurity странности в работе
Atom Ответить
26.04.2012


С помощью WeightedIndexSecurity рисую график спреда двух инструментов. ТФ 1мин.

Подписываюсь у CandleManager на Processing, в обработчик приходят только "целые" свечки.
Это видно по записям в логе - нет повторяющихся записей.

Это так и должно быть что свечки только целиком приходят?
Т.е. нет возможности чтобы одна свечка перерисовывалась с каждым новым тиком как у обычного Security? Или это баг?

Плюс приходят не с равным интервалом, а за раз по несколько штук.


Теги:


Спасибо:




13 Ответов
Mikhail Sukhov

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


Moadip Перейти
Плюс приходят не с равным интервалом, а за раз по несколько штук.


Это при релтайм данных?
Спасибо:

Moadip

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


Mikhail Sukhov Перейти
Moadip Перейти
Плюс приходят не с равным интервалом, а за раз по несколько штук.


Это при релтайм данных?


Да.
Автор топика
Спасибо:

Mikhail Sukhov

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


Moadip Перейти
Mikhail Sukhov Перейти
Moadip Перейти
Плюс приходят не с равным интервалом, а за раз по несколько штук.


Это при релтайм данных?


Да.


Понял. Это индексная свечка. Поэтому в ней признак окончания формирования считается началом появления новых свечек по всем составным инструментам. Видимо в индексе есть неликвид.
Спасибо:

Moadip

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


Цитата:
Видимо в индексе есть неликвид.


Индекс = газ - лук.

Ок, ладно, на вечерке они еле шевелятся.

Но почему нет "промежуточных" значений между CandleStates.Started и CandleStates.Finished как у обычных свечек?

Или это такой алгоритм создания у индексных свечек?
У индексной свечки нет промежуточных значений.
Она генерится только тогда, когда появятся новые свечки по составным инструментам)?

Но ведь следующая свечка может прийти и через 5 минут. Тогда как быть.Confused

А почему бы индексную свечку не генерировать, когда придут все свечки по составным инструментам и у них будет CandleStates.Finished?
Если нет свечки по какому то инструменту(не было по нему сделок) то брать предыдущую.
Автор топика
Спасибо:

Mikhail Sukhov

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


Moadip Перейти

Но почему нет "промежуточных" значений между CandleStates.Started и CandleStates.Finished как у обычных свечек?


Да, нет. Попробуем сделать.

Moadip Перейти

А почему бы индексную свечку не генерировать, когда придут все свечки по составным инструментам и у них будет CandleStates.Finished?
Если нет свечки по какому то инструменту(не было по нему сделок) то брать предыдущую.


Там есть уже такой механизм, заклейки дыр. Сейчас работает таким образом, что ожидается появления в один и тот же ТФ всех свечек (бинго стиль). По идее можно кое-что улучшить. Нужна информация. По вашему индексу для всех ТФ по всеми инструментам присутствуют свечки или есть дырки?
Спасибо:

Moadip

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


Цитата:
По вашему индексу для всех ТФ по всеми инструментам присутствуют свечки или есть дырки?

Не совсем уловил суть вопроса.
Для всех ТФ это как? Вроде же можем построить любой ТФ, хоть 1мин, хоть 25мин.

Взять те же фьючи газпрома и лукойла. Днем дырок не наблюдается, вечером - да, но если взять ТФ в 1час, то тогда конечно не будет дырок.
Автор топика
Спасибо:

Mikhail Sukhov

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


Moadip Перейти
Взять те же фьючи газпрома и лукойла. Днем дырок не наблюдается, вечером - да, но если взять ТФ в 1час, то тогда конечно не будет дырок.


Вопрос касался конкретно картинки, были ли в тот день дырки на составным инструментам... Окей, судя по всему они были. Логика сейчас такая. Как только появился бинго-ряд, то выстреливает индексная свечка. Если она не является первой, то с предыдущей по текущую в случае наличия дырки дозаполняются данные. Поэтому и появляется эта ситуация, когда свечки вываливаются пачками.

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

Moadip

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


Mikhail Sukhov Перейти
Основная сложность в индексной свечке понять, нужно ли ее закончить. Для этого необходимо ждать окончания свечек по всем инструментам.


Могу предложить вариант построения индексных свечек.

Начну издалека.

Если я правильно понимаю как происходит создание свечек, то в общих чертах так:

Есть построители свечек, для каждого типа свой. Есть различные источники для построителя свечек.
Например взять шлюз и тип данных тики.

Далее, создается серия, в конструкторе указывается тип, инструмент и размерность.

При вызове у построителя свечек метода start с переданной серией(или у CandleManager, у которого этот построитель свечек указан в качестве источника),
построитель проверят приходящие данные от источника, берет тики по нужному инструменту и строит в соответствии с заданными параметрами свечки.

Сейчас механизм постороения свечек отточен и работает.

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

А почему бы не сделать, чтобы индексные свечки тоже строились на основе тиков?

Логика такая.
Построителем свечек мониторятся приходящие тики, как только пришел тик по одному из составных инструментов, время, объем, цена этого тика берется за основу "индексного тика".
Цена по остальным составным инструментам берется из последнего тика по каждому инструменту.
Считается цена индексного тика.

Далее построитель свечек с этими индексными тиками работает как с обычными.

Таким образом решится проблема когда заканчивать индексную свечку.
Плюс решится еще одна из возможных проблем - что если захотеть построить тиковые индексные свечки?

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

Заметил еще такое, в индексной свечке объем по одному инструменту вычитается из объема по другому инструменту. Это если строить инстр1-инстр2.
Наверное правильнее чтобы объем складывался, независимо от того как индекс строится, иначе может получится момент, когда объем будет отрицательным.
Автор топика
Спасибо:

Mikhail Sukhov

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


Moadip Перейти

Цена по остальным составным инструментам берется из последнего тика по каждому инструменту.
Считается цена индексного тика.

Далее построитель свечек с этими индексными тиками работает как с обычными.

Таким образом решится проблема когда заканчивать индексную свечку.


Не понял каким образом решается?

Moadip Перейти

Т.к. по одному составному инструменту тики могут идти "плотно" и свечка будет быстро строится, а по другому "в час по чайной ложке".


Тут нужно использовать другую фичу - TimeFrameCandleBuilder.GenerateEmptyCandles
Спасибо:

Moadip

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


Цитата:
Не понял каким образом решается?


Индексная свечка строится точно также как обычная. С обычными же свечками нет проблем в построении и определении когда ее заканчивать?
Разница лишь в том что у "обычных" свечек "обычные" тики, а у индексных свечек - индексные тики, которые делаются налету, как написал выше.
Автор топика
Спасибо:

Mikhail Sukhov

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


Moadip Перейти

Индексная свечка строится точно также как обычная.


Проблему я описал здесь https://stocksharp.ru/posts/m/18734/ Как она решается за счет тиков?
Спасибо:

Moadip

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


Mikhail Sukhov Перейти
Moadip Перейти

Индексная свечка строится точно также как обычная.


Проблему я описал здесь https://stocksharp.ru/posts/m/18734/ Как она решается за счет тиков?


Михаил, проблема ясна.

Индексная свечка строится на основе простых. Заканчивается, когда заканчиваются свечки по составным инструментам.
Я предлагаю строить индексные свечки на основе "индексных" тиков. Ведь сейчас же обычные свечки строятся на основе тиков, так?

Т.е. к индексным свечкам можно применить точно такую же модель построения как у обычных свечек.
А раз с обычными свечками нет проблем когда ее завершать, значит и с индексными не будет.

Как еще лучше объяснить, я не знаю.Confused
Автор топика
Спасибо:

Mikhail Sukhov

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


Moadip Перейти

Т.е. к индексным свечкам можно применить точно такую же модель построения как у обычных свечек.


Правильно. Именно поэтому будет так, как сейчас. Тоесть не понятно, зачем исправлять, если поведение не изменится.
Спасибо:


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

loading
clippy