Mikhail Sukhov
|
Дата: 09.11.2010
romanick>>Через _candleManager.GetTimeFrameCandles но только после того, как они построятся Хм. Т.е. на момент запуска стратегии (выполнение OnRunning) они просто не успевают строится? А как мне узнать когда они построятся? Событие какое-то есть? Или просто проверять дату последней свечи? CandleManager.NewCandles
|
|
Спасибо:
|
|
|
|
|
Alexander
|
Дата: 09.11.2010
romanick>>Через _candleManager.GetTimeFrameCandles но только после того, как они построятся Хм. Т.е. на момент запуска стратегии (выполнение OnRunning) они просто не успевают строится? А как мне узнать когда они построятся? Событие какое-то есть? Или просто проверять дату последней свечи? я вот так делаю в стратегиях: Код_candleManager.CandlesFinished += CandleManagerCandlesFinished; ... void CandleManagerCandlesFinished(CandleToken arg1, System.Collections.Generic.IEnumerable<Candle> arg2) { _candlesFinished = true; } ...
protected override bool OnProcess() { if (!_candlesFinished) { AddLog(StrategyErrorStates.None, "Свечки ещё не сформированы...", new object()); return true; } ... }
|
|
Спасибо:
|
|
|
|
|
romanick
|
Дата: 09.11.2010
Нет, не то. Попробую сформулировать вопрос по другому. Код_candleManager.NewCandles += (token, candles) => { if (token == minutesToken) { RobotLog.Add("NewCandles count="+candles.Count().ToString()+ "last="+candles.Last().Time.ToString()); } }; Код _candleManager.CandlesFinished += (token, candles) => { if (token == minutesToken) { RobotLog.Add("CandlesFinished count="+candles.Count().ToString()+ "last="+candles.Last().Time.ToString()); } }; Кодprotected override bool OnProcess(){ ... var candlesForATR = _candleManager.GetTimeFrameCandles(base.Security, TimeSpan.FromMinutes(1), 14); RobotLog.Add("all count="+candlesForATR.Count().ToString()); ... } В первых двух случаях candles.Count() равно 1, что логично. В третьем равно количеству минут прошедших со старта робота. Т.е. изначально свечей нет вообще и появляются они только во время работы робота. Мне же нужно получить 14 свечей которые были ДО старта робота. Нужно это для инициализации индикатора. Как быть?
|
|
Спасибо:
|
|
|
|
|
Alexander
|
Дата: 09.11.2010
romanick В первых двух случаях candles.Count() равно 1, что логично. В третьем равно количеству минут прошедших со старта робота. Т.е. изначально свечей нет вообще и появляются они только во время работы робота. Мне же нужно получить 14 свечей которые были ДО старта робота. Нужно это для инициализации индикатора. Как быть?
Нельзя получить свечки за другой день напрямую (т.к. они строятся из всех сделок). Чтобы это всё же сделать - пишешь код на qpile, добавляешь в квике таблицу-портфель и уже её экспортируешь.
|
|
Спасибо:
|
|
|
|
|
romanick
|
Дата: 09.11.2010
Alexanderromanick В первых двух случаях candles.Count() равно 1, что логично. В третьем равно количеству минут прошедших со старта робота. Т.е. изначально свечей нет вообще и появляются они только во время работы робота. Мне же нужно получить 14 свечей которые были ДО старта робота. Нужно это для инициализации индикатора. Как быть?
Нельзя получить свечки за другой день напрямую (т.к. они строятся из всех сделок). Чтобы это всё же сделать - пишешь код на qpile, добавляешь в квике таблицу-портфель и уже её экспортируешь. [confused] [confused] [confused] [confused] И что нет другого non-hemorrhoids-way?
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 09.11.2010
romanick В первых двух случаях candles.Count() равно 1, что логично. В третьем равно количеству минут прошедших со старта робота. Т.е. изначально свечей нет вообще и появляются они только во время работы робота. Мне же нужно получить 14 свечей которые были ДО старта робота. Нужно это для инициализации индикатора. Как быть?
Ключевое выражение - старт робота. Оно неправильное. Робот - это программа. А данные нужны стратегии (программа может иметь от 0 до N стратегий). Поэтому регистрацию свечек нужно запускать после подключения программы к Квику, но до запуска самой стратегии. О стратегиях написано в документации.
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 09.11.2010
romanick
[confused] [confused] [confused] [confused] И что нет другого non-hemorrhoids-way?
Запускать робот после 10:30 + 14 * 5. или брать историю откуда то извне (например, как я сделал это в примере).
|
|
Спасибо:
|
|
|
|
|
Alexander
|
Дата: 09.11.2010
|
|
|
|
Mikhail Sukhovromanick В первых двух случаях candles.Count() равно 1, что логично. В третьем равно количеству минут прошедших со старта робота. Т.е. изначально свечей нет вообще и появляются они только во время работы робота. Мне же нужно получить 14 свечей которые были ДО старта робота. Нужно это для инициализации индикатора. Как быть?
Ключевое выражение - старт робота. Оно неправильное. Робот - это программа. А данные нужны стратегии (программа может иметь от 0 до N стратегий). Поэтому регистрацию свечек нужно запускать после подключения программы к Квику, но до запуска самой стратегии. О стратегиях написано в документации. А если свечки, к примеру, минутки, не нужны активным стратегиям? У меня, к примеру, есть стратегии на 5-минутках, есть на минутках. Запускаю регистрацию свечек как раз во время старта стратегий сейчас (т.к. в настройках робота могут быть минутные стратегии выключены, зачем тогда их регистрировать?). Или они в любом случае занимают мало ресурсов, поэтому можно спокойно регистрировать всё, что только может потенциально понадобиться?
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 09.11.2010
Alexander А если свечки, к примеру, минутки, не нужны активным стратегиям? У меня, к примеру, есть стратегии на 5-минутках, есть на минутках. Запускаю регистрацию свечек как раз во время старта стратегий сейчас (т.к. в настройках робота могут быть минутные стратегии выключены, зачем тогда их регистрировать?). Или они в любом случае занимают мало ресурсов, поэтому можно спокойно регистрировать всё, что только может потенциально понадобиться?
Кушаем много только старт. Потом все работает как обычно. Плюс у свечек свой поток, а у стратегий свои.
|
|
Спасибо:
|
|
|
|
|
sinc
|
Дата: 09.11.2010
у меня тоже не получается экспортировать свечки. запускаю пример SampleCandles. Во-первых, не всегда загружется список инструментов, иногда вместо названий инструментов загружаются числа и пустые строки. Во-вторых, событие NewCandles не вызывается. что может быть не так? вот картиночка http://www.sharemania.ru/0122592
|
|
Спасибо:
|
|
|
|