Управление свечками

Управление свечками
Atom
11/15/2011
_maratrus_


Добрый день,

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

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

2. Можно ли изнутри обработчиков событий CandleManager.NewCandles и CandleManager.CandlesChanged
узнать тип свечек (минутки, пятиминутки, часовики и т д)? С помощью такой функциональности можно
было бы не плодить функций, а поставить ровно одну для всех типов свечек.

3. Можно ли начать формирование свечек после вызова RegisterTimeFrameCandles() с данного момента
времени, а не с начала таблицы всех сделок?

4. Нет ли более подробного описания, когда вызвается NewCandles, а когда CandlesChanged? Не ясно,
например, что означает "Событие изменения свечек".

5. Объясните, пожалуйста, почему в функции NewCandles и CandlesChanged свечки попадают не по одной,
а содержатся в контейнере? Могут происходить какие-то задержки? То есть, например, минутки могут
буферизоваться, а потом скопом придти сразу на несколько минут? В это как-то не верится.

Спасибо.

Tags:


Thanks:


Supervisor

Avatar
Date: 11/16/2011
Reply


Насколько я знаю:

_maratrus_
2. Можно ли изнутри обработчиков событий CandleManager.NewCandles и CandleManager.CandlesChanged
узнать тип свечек (минутки, пятиминутки, часовики и т д)? С помощью такой функциональности можно было бы не плодить функций, а поставить ровно одну для всех типов свечек.


Code

CandleManager.CandlesChanged += (token, candles) =>
{
  // Фильтруем только по нашему инструменту и таймфрейму
  if (token.Security.Code == Security.Code && (TimeSpan)token.Arg == TimeFrame)
  {
    ...
  }
};


_maratrus_
4. Нет ли более подробного описания, когда вызвается NewCandles, а когда CandlesChanged? Не ясно, например, что означает "Событие изменения свечек".

NewCandles - появление новой свечки, CandlesChanged - изменение текущей свечки - это и есть "Событие изменения свечек".

_maratrus_
5. Объясните, пожалуйста, почему в функции NewCandles и CandlesChanged свечки попадают не по одной, а содержатся в контейнере? Могут происходить какие-то задержки? То есть, например, минутки могут
буферизоваться, а потом скопом придти сразу на несколько минут? В это как-то не верится.

Потому что при запуске генерации свечек они будут генерироваться не по одной а пачками по всем уже имеющимся сделкам и соответственно приходить пачками (хотя не знаю зачем так сделано). Когда все уже имеющиеся сделки обработаются, приходить они будут по одной, буфера и задержек не будет.
Thanks: Mikhail Sukhov

_maratrus_

Avatar
Date: 11/16/2011
Reply


Большое спасибо за ответ,

Supervisor
Насколько я знаю:

_maratrus_
4. Нет ли более подробного описания, когда вызвается NewCandles, а когда CandlesChanged? Не ясно, например, что означает "Событие изменения свечек".

NewCandles - появление новой свечки, CandlesChanged - изменение текущей свечки - это и есть "Событие изменения свечек".

Но текущая свечка ровно одна, почему тогда событие CandlesChanged передает контейнер свечек?

Supervisor


_maratrus_

5. Объясните, пожалуйста, почему в функции NewCandles и CandlesChanged свечки попадают не по одной, а содержатся в контейнере? Могут происходить какие-то задержки? То есть, например, минутки могут
буферизоваться, а потом скопом придти сразу на несколько минут? В это как-то не верится.


Потому что при запуске генерации свечек они будут генерироваться не по одной а пачками по всем уже имеющимся сделкам и соответственно приходить пачками (хотя не знаю зачем так сделано). Когда все уже имеющиеся сделки обработаются, приходить они будут по одной, буфера и задержек не будет.

Хотелось бы опционально иметь возможность не обрабатывать все предыдущие сделки (вопросы 1 и 3 остаются открытыми).
Thanks:

Supervisor

Avatar
Date: 11/16/2011
Reply


_maratrus_
Но текущая свечка ровно одна, почему тогда событие CandlesChanged передает контейнер свечек?

Текущая свеча ровно одна по одному инструменту с одним таймфреймом. Если их несколько то и свечей текущих несколько :)
Thanks:

_maratrus_

Avatar
Date: 11/16/2011
Reply


Supervisor
_maratrus_
Но текущая свечка ровно одна, почему тогда событие CandlesChanged передает контейнер свечек?

Текущая свеча ровно одна по одному инструменту с одним таймфреймом. Если их несколько то и свечей текущих несколько :)

Функция RegisterTimeFrameCandles получает на вход и инструмент и тайм-фрейм, а выдает токен. Таким образом, я думал, что по токену однозначно
восстанавливается и инструмент, и таймфрейм. Но в функцию CandlesChanged первым аргументом поступает токен, по которому восстанавливается и
инструмент, и таймфрейм, а значит, и свеча.
Thanks:


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

loading
clippy