Mikhail Sukhov
|
Date: 11/9/2010
romanick>>Через _candleManager.GetTimeFrameCandles но только после того, как они построятся Хм. Т.е. на момент запуска стратегии (выполнение OnRunning) они просто не успевают строится? А как мне узнать когда они построятся? Событие какое-то есть? Или просто проверять дату последней свечи? CandleManager.NewCandles
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 11/9/2010
romanick>>Через _candleManager.GetTimeFrameCandles но только после того, как они построятся Хм. Т.е. на момент запуска стратегии (выполнение OnRunning) они просто не успевают строится? А как мне узнать когда они построятся? Событие какое-то есть? Или просто проверять дату последней свечи? я вот так делаю в стратегиях: Code_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; } ... }
|
|
Thanks:
|
|
|
|
|
romanick
|
Date: 11/9/2010
Нет, не то. Попробую сформулировать вопрос по другому. Code_candleManager.NewCandles += (token, candles) => { if (token == minutesToken) { RobotLog.Add("NewCandles count="+candles.Count().ToString()+ "last="+candles.Last().Time.ToString()); } }; Code _candleManager.CandlesFinished += (token, candles) => { if (token == minutesToken) { RobotLog.Add("CandlesFinished count="+candles.Count().ToString()+ "last="+candles.Last().Time.ToString()); } }; Codeprotected override bool OnProcess(){ ... var candlesForATR = _candleManager.GetTimeFrameCandles(base.Security, TimeSpan.FromMinutes(1), 14); RobotLog.Add("all count="+candlesForATR.Count().ToString()); ... } В первых двух случаях candles.Count() равно 1, что логично. В третьем равно количеству минут прошедших со старта робота. Т.е. изначально свечей нет вообще и появляются они только во время работы робота. Мне же нужно получить 14 свечей которые были ДО старта робота. Нужно это для инициализации индикатора. Как быть?
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 11/9/2010
romanick В первых двух случаях candles.Count() равно 1, что логично. В третьем равно количеству минут прошедших со старта робота. Т.е. изначально свечей нет вообще и появляются они только во время работы робота. Мне же нужно получить 14 свечей которые были ДО старта робота. Нужно это для инициализации индикатора. Как быть?
Нельзя получить свечки за другой день напрямую (т.к. они строятся из всех сделок). Чтобы это всё же сделать - пишешь код на qpile, добавляешь в квике таблицу-портфель и уже её экспортируешь.
|
|
Thanks:
|
|
|
|
|
romanick
|
Date: 11/9/2010
Alexanderromanick В первых двух случаях candles.Count() равно 1, что логично. В третьем равно количеству минут прошедших со старта робота. Т.е. изначально свечей нет вообще и появляются они только во время работы робота. Мне же нужно получить 14 свечей которые были ДО старта робота. Нужно это для инициализации индикатора. Как быть?
Нельзя получить свечки за другой день напрямую (т.к. они строятся из всех сделок). Чтобы это всё же сделать - пишешь код на qpile, добавляешь в квике таблицу-портфель и уже её экспортируешь. [confused] [confused] [confused] [confused] И что нет другого non-hemorrhoids-way?
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 11/9/2010
romanick В первых двух случаях candles.Count() равно 1, что логично. В третьем равно количеству минут прошедших со старта робота. Т.е. изначально свечей нет вообще и появляются они только во время работы робота. Мне же нужно получить 14 свечей которые были ДО старта робота. Нужно это для инициализации индикатора. Как быть?
Ключевое выражение - старт робота. Оно неправильное. Робот - это программа. А данные нужны стратегии (программа может иметь от 0 до N стратегий). Поэтому регистрацию свечек нужно запускать после подключения программы к Квику, но до запуска самой стратегии. О стратегиях написано в документации.
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 11/9/2010
romanick
[confused] [confused] [confused] [confused] И что нет другого non-hemorrhoids-way?
Запускать робот после 10:30 + 14 * 5. или брать историю откуда то извне (например, как я сделал это в примере).
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 11/9/2010
|
|
|
|
Mikhail Sukhovromanick В первых двух случаях candles.Count() равно 1, что логично. В третьем равно количеству минут прошедших со старта робота. Т.е. изначально свечей нет вообще и появляются они только во время работы робота. Мне же нужно получить 14 свечей которые были ДО старта робота. Нужно это для инициализации индикатора. Как быть?
Ключевое выражение - старт робота. Оно неправильное. Робот - это программа. А данные нужны стратегии (программа может иметь от 0 до N стратегий). Поэтому регистрацию свечек нужно запускать после подключения программы к Квику, но до запуска самой стратегии. О стратегиях написано в документации. А если свечки, к примеру, минутки, не нужны активным стратегиям? У меня, к примеру, есть стратегии на 5-минутках, есть на минутках. Запускаю регистрацию свечек как раз во время старта стратегий сейчас (т.к. в настройках робота могут быть минутные стратегии выключены, зачем тогда их регистрировать?). Или они в любом случае занимают мало ресурсов, поэтому можно спокойно регистрировать всё, что только может потенциально понадобиться?
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 11/9/2010
Alexander А если свечки, к примеру, минутки, не нужны активным стратегиям? У меня, к примеру, есть стратегии на 5-минутках, есть на минутках. Запускаю регистрацию свечек как раз во время старта стратегий сейчас (т.к. в настройках робота могут быть минутные стратегии выключены, зачем тогда их регистрировать?). Или они в любом случае занимают мало ресурсов, поэтому можно спокойно регистрировать всё, что только может потенциально понадобиться?
Кушаем много только старт. Потом все работает как обычно. Плюс у свечек свой поток, а у стратегий свои.
|
|
Thanks:
|
|
|
|
|
sinc
|
Date: 11/9/2010
у меня тоже не получается экспортировать свечки. запускаю пример SampleCandles. Во-первых, не всегда загружется список инструментов, иногда вместо названий инструментов загружаются числа и пустые строки. Во-вторых, событие NewCandles не вызывается. что может быть не так? вот картиночка http://www.sharemania.ru/0122592
|
|
Thanks:
|
|
|
|