Как переопределить генератор свечек?
Atom Ответить
09.06.2012


Добрый день.

Вопрос - собственно subj. Как правильно переопределить генератор свечек?

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

Спасибо =)

Теги:


Спасибо:




13 Ответов
esper

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


Почему просто в CandleManager не зарегистрировать все нужные типы/таймфреймы свечек?
Спасибо: VoDA

VoDA

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


esper Перейти
Почему просто в CandleManager не зарегистрировать все нужные типы/таймфреймы свечек?

В принципе так и сделал.

Теперь другая проблема - как заставить CandleManager выдать последнюю свечу? Для примера - создаю CandleBuilder с начала дня до его окончания (с 00:00:00 до 00:00:00 следующего дня)
Если указать TimeFrame 5-min то выдаст все свечки, кроме последней (с 23:55 по 00:00), а если указать тайм-фрейм один день, то ни какого ответа нет. Может есть возможность принудительно закрыть финальную свечу?

Получаю свечки через CandleFinished.
Автор топика
Спасибо:

OvcharenkoVI

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


Последнюю свечку и не получите, так как сделки после окончания сессии не существует
Спасибо:

OvcharenkoVI

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


Можете сами сгенерить сделку с такими же параметрами как последняя(которую вы уже имеете), но с другим временем и закроете последнюю свечу
Спасибо: VoDA

VoDA

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


OvcharenkoVI Перейти
Последнюю свечку и не получите, так как сделки после окончания сессии не существует
Сессии - нет, но данные то есть!

Почему бы их не выгрузить?

Попытка получить свечку через GetCurrentTimeFrameCandle не проходит - летит эксепшен "Инструмент не имеет информацию о шлюзе.".

А как подпихнуть в CandleManager еще один такт данных?
Автор топика
Спасибо:

VoDA

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


OvcharenkoVI Перейти
Можете сами сгенерить сделку с такими же параметрами как последняя(которую вы уже имеете), но с другим временем и закроете последнюю свечу

А как подложить сделку под CandleManager?
Автор топика
Спасибо:

VoDA

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


OvcharenkoVI Перейти
Можете сами сгенерить сделку с такими же параметрами как последняя(которую вы уже имеете), но с другим временем и закроете последнюю свечу

Продолжаю войну с CandleManager. При попытке воспользоваться token, который возвращает RegisterTimeFrameCandles, в методе GetCurrentTimeFrameCandle дает ошибку "Value cannot be null. Parameter name: trader".

Что еще можно сделать?
Автор топика
Спасибо:

OvcharenkoVI

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


VoDA Перейти
OvcharenkoVI Перейти
Можете сами сгенерить сделку с такими же параметрами как последняя(которую вы уже имеете), но с другим временем и закроете последнюю свечу

Продолжаю войну с CandleManager. При попытке воспользоваться token, который возвращает RegisterTimeFrameCandles, в методе GetCurrentTimeFrameCandle дает ошибку "Value cannot be null. Parameter name: trader".

Что еще можно сделать?


а как создавался менеджер? должно быть candleManager = new CandleManager(Trader);
Спасибо:

VoDA

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


OvcharenkoVI Перейти
а как создавался менеджер? должно быть candleManager = new CandleManager(Trader);
по примеру:
Код
var storage = new TradingStorage(new InMemoryStorage())
                              {
                                  BasePath = _dataFolder.Text,
                              };

var builder = new CandleBuilder(new TradeStorageCandleBuilderSource(storage)
{
    From = begin,
    To = end,
    IsSyncProcess = true,
})
                                  {
                                      IsSyncRegister = true,
                                  };


begin и end указывают соответственно начало и конец данных, которые обрабатываю в цикле.
Автор топика
Спасибо:

VoDA

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


Может стоит с другого конца зайти - как вытащить из гидры все данные по инструменту в виде свечек различного размера?
Автор топика
Спасибо:

OvcharenkoVI

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


Кажется вы еще не используете 4.1, GetCurrentTimeFrameCandle вызывается через candleSeries.GetCurrentTimeFrameCandle
Спасибо: VoDA

OvcharenkoVI

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


На счет гидры не знаю, так как не пользуюсь
Спасибо:

VoDA

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


OvcharenkoVI Перейти
Кажется вы еще не используете 4.1, GetCurrentTimeFrameCandle вызывается через candleSeries.GetCurrentTimeFrameCandle

Спасибо, обошел эту проблему )))
Автор топика
Спасибо:


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

loading
clippy