Здравствуйте, прочитал всю документацию но никак не получается это реализовать(версия 4.1.1), может кто даст рабочий пример кода...
Здравствуйте, прочитал всю документацию но никак не получается это реализовать(версия 4.1.1), может кто даст рабочий пример кода...
Комментарии (30)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
var candleManager = new CandleManager(Trader)
var candleSeries = new CandleSeries(typeof(TimeFrameCandle), Security, (TimeSpan)AlfaTimeFrames.Minute1);
candleManager.Start(candleSeries);
candleSeries.CandlesFinished += candle => ;
Перед этим запустить Trader.RegisterTrades(Security);
'StockSharp.Algo.Candles.CandleSeries' does not contain a definition for 'CandlesFinished' ???
Короче не работает...
А как получать котировки реального времени (желательно несколько раз в секунду)?
Подпись.
realtime бары могут не приходить в AlfaTest, если на машине часовой пояс не правильный. Например, Exchange.Me = +4 UTC, а на винде без обновлений +3 UTC. Тогда к _ad.GetArchiveFinInfoFromDB будут идти запросы на час больше и новых баров не появится.
Коллеги, не получается вывести реальные свечи, выдает ошибку в строке _candleManager.Start(_series); "Параметр свечки 00-10-00 не правильный", чтобы это значило, в менеджер свечей передается серия, атрибуты верные, о какой свечке идет речь...??? 00-10-00 это 10-минутный таймфрейм серии, причем тут свечка...
Здесь _series = new CandleSeries(typeof(TimeFrameCandle), security, timeFrame); поменял timeFrame _series = new CandleSeries(typeof(TimeFrameCandle), security, (TimeSpan)AlfaTimeFrames.Minute10);
предыдущая ошибка пропала, но появилась новая:
Немного изменил код, но ошибка прежняя, вроде бы всё прозрачно, не пойму... Добавил в примере SampleAlfaCandles к коду вывода истории candleManager
Приведите пожалуйста StackTrace. Картинки с ошибками и сам код не несут практически никакой полезной информации.
StackTrace? Это трассировка исключения? Не знаю правильно ли я понял, Вы имеете ввиду вот эту информацию?
Да это. А теперь нажмите на это окно Ctrl+C и вставьте сообщение как текст на форум. Спасибо.
Ошибка найдена и поправлена. Я постучался в скайп. Давайте проведем тестирование, может там еще что-то есть. Демо у Альфы теперь не предоставляется, а ради небольшой ошибки ехать к ним в офис нет совсем времени.
Благодарю, реальные свечи выводятся корректно. Красота. Вот только значения индикатора BollingerBands выводятся странно. Это мой код
Изменил немного код вывода значений индикатора, картинка без изменений...
IIndicator.IsFormed проверяется?
Разве свойство значения индикатора IsFinal = true не решает эту проверку? Значение окончательное, более неизменное в данный момент времени... У меня такое чувство, что значения индикатора считаются каждые 5 секунд по мере поступления исторических тиков, это как-то пересекается с моим предыдущим постом...
IsFinal - это свойство, определяющее что данные окончательные в текущем ТФ. IsFormed - что индикатор сформировался и готов к работе (в т.ч. и отрисовки на графике). Посмотрите математическую формулу скользящих (я так понимаю Полосы на основе них сделаны). Все станет понятно.
При выводе реальных свечек AlfaTrader засыпает logFile каждые 5 секунд сообщениями
Запустил простую стратегию для пробы, для контроля вывожу законченные свечи в debug, но законченные свечи не выводятся, свечи выводятся в debug каждые 5 секунд... И стратегия не понимает состояние свечки Finished, срабатывает на каждые 5 секунд... Возможно из-за этого и индикатор выводится не корректно?..
Код запуска стратегии
Код стратегии
Вывод в debug
Проверка на IsFormed вообще не пропускает исполнение кода в ветку оператора if, выводятся только свечи по оператору else...
И почему же я указываю выводить в debug значения законченных свечей, а выводятся 5-секундные значения изменяемой свечи?..
Сейчас код неправильно написан в корне... Мне кажется надо не игнорировать, а понять, что такое IsFormed. Давайте резберем формулу скользящей средней.
Простая скользящая средняя цены закрытия это среднее арифметическое значений цены закрытия за период. В нашем случае период = 20. В моем понимании свойство SMA.IsFormed = true, т.е. индикатор сформирован, значит есть минимум 20 значений цены закрытия, которые позволяют рассчитать первое значение индикатора, до тех пор, пока не будут получены 20 значений цены закрытия свойство SMA.IsFormed = false.
Ну вот, а вы индикатор то в своем коде не заполняете. Как ему сформироваться при этом?
Изменил код, индикатор сначала выводится корректно (вложение 1), а потом с приходом нового тика сжимается и на последней свечке стягивается в точку (вложение 2)...? Хотя, согласно кода на последней свечке вообще не должно быть вычисление индикатора пока она в состоянии изменения...
А теперь изучайте что такое IsFinal😂
🤨 Как я понимаю, IsFinal=true например для 10-минутного графика означает, что после формирования 10-минутной свечи (когда она примет состояние Finished) значение индикатора больше не будет изменяться, оно будет окончательным.
Странно...Вернул всё в первоначальный вид, (топик #18), убрал проверку на IsFormed, ничего не изменилось...Всё также, как в топике #27. Я уже закипаю...
Почему с AlfaDirect выводятся график завершенные и последняя незавершенная свечи? В Quik такого нет, при исполнении такого кода выводятся только завершенные свечи... Или это особенность терминала AlfaDirect?