Управление свечками
Atom Ответить
15.11.2011


Добрый день,

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

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

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

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

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

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

Спасибо.

Теги:


Спасибо:




4 Ответов
Supervisor

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


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

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


Код

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


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

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

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

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

_maratrus_

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


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

Supervisor Перейти
Насколько я знаю:

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

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

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

Supervisor Перейти


_maratrus_ Перейти

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


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

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

Supervisor

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


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

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

_maratrus_

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


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

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

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


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

loading
clippy