Получение свечки реального времени от Альфа-Директ
Atom Ответить
03.07.2012


BBB

Фотография
Здравствуйте, прочитал всю документацию но никак не получается это реализовать(версия 4.1.1), может кто даст рабочий пример кода...

Теги:


Спасибо:




30 Ответов
1 2  >
OvcharenkoVI

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


var candleManager = new CandleManager(Trader)

var candleSeries = new CandleSeries(typeof(TimeFrameCandle), Security, (TimeSpan)AlfaTimeFrames.Minute1);

candleManager.Start(candleSeries);

candleSeries.CandlesFinished += candle => {};

Перед этим запустить Trader.RegisterTrades(Security);
Спасибо:

BBB

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


OvcharenkoVI Перейти
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' ???
Автор топика
Спасибо:

esper

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


BBB Перейти
'StockSharp.Algo.Candles.CandleSeries' does not contain a definition for 'CandlesFinished' ???

В последней версии это CandleSeries.ProcessCandle, при вызове события надо смотреть State свечи, чтобы он был Finished.

Спасибо:

BBB

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


Короче не работает...

А как получать котировки реального времени (желательно несколько раз в секунду)?
Автор топика
Спасибо:

Sergey Masyura

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


BBB Перейти
Короче не работает...

А как получать котировки реального времени (желательно несколько раз в секунду)?


Подпись.
Спасибо:

BBB

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


1. В общем ни CandleSeries.ProcessCandle, ни Trader.NewTrades, ни CandleManager.Processing у меня не работают. Что может быть не так?
2. Мне надо получать цену последней сделки по инструменту, какими способами это можно реализовать?
Автор топика
Спасибо:

Alexander

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


1) документация
2) примеры
3) поиск по форуму
4) техническая поддержка от нас
Спасибо:

none1

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


realtime бары могут не приходить в AlfaTest, если на машине часовой пояс не правильный.
Например, Exchange.Me = +4 UTC, а на винде без обновлений +3 UTC.
Тогда к _ad.GetArchiveFinInfoFromDB будут идти запросы на час больше и новых баров не появится.
Спасибо:

UsilaDobry

Фотография
Курсы
Дата: 18.06.2013
Ответить


Коллеги, не получается вывести реальные свечи, выдает ошибку в строке _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);

предыдущая ошибка пропала, но появилась новая:
Спасибо:

UsilaDobry

Фотография
Курсы
Дата: 20.06.2013
Ответить


Немного изменил код, но ошибка прежняя, вроде бы всё прозрачно, не пойму...
Добавил в примере SampleAlfaCandles к коду вывода истории candleManager

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 20.06.2013
Ответить


Приведите пожалуйста StackTrace. Картинки с ошибками и сам код не несут практически никакой полезной информации.
Спасибо:

UsilaDobry

Фотография
Курсы
Дата: 20.06.2013
Ответить


Михаил Сухов Перейти
Приведите пожалуйста StackTrace. Картинки с ошибками и сам код не несут практически никакой полезной информации.


StackTrace? Это трассировка исключения?
Не знаю правильно ли я понял, Вы имеете ввиду вот эту информацию?
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 20.06.2013
Ответить


UsilaDobry Перейти
Михаил Сухов Перейти
Приведите пожалуйста StackTrace. Картинки с ошибками и сам код не несут практически никакой полезной информации.


StackTrace? Это трассировка исключения?
Не знаю правильно ли я понял, Вы имеете ввиду вот эту информацию?


Да это. А теперь нажмите на это окно Ctrl+C и вставьте сообщение как текст на форум. Спасибо.
Спасибо:

UsilaDobry

Фотография
Курсы
Дата: 20.06.2013
Ответить


Цитата:
---------------------------


System.InvalidCastException: Не удалось привести тип объекта "StockSharp.Algo.Candles.TimeFrameCandle[]" к типу "System.Collections.Generic.List`1[StockSharp.Algo.Candles.Candle]".

в StockSharp.AlfaDirect.AlfaTrader.#=qNmkP6QzBPHM7MSi3K7zNb8hpEPmvaemYv5w1q7pSlzs=(CandleSeries #=qw2Ij9lcQ52_YjUxYlygqJQ==, AlfaTimeFrames #=qmt9jajmekZJ3lvX4EWDlsw==, Range`1 #=qUa$g1WHcmZt7GKP9MHGYdQ==, Boolean #=qyMqxPE6iw9OG3w187t$YJg==, #=qrYpFuQVysBZ8IKEVqMgJNeOJnek4Tqt17H5Lhdsr7oOl5WXmF$V4OcRiLRkcvZGh& #=qdyEgQw5_gfsmxp61TgMHpQ==)

в StockSharp.AlfaDirect.AlfaTrader.SubscribeHistoricalCandles(CandleSeries series, DateTime from, DateTime to)

в StockSharp.Algo.Candles.CandleManager.#=qMxwX6RCGPPukCh3ls8RxBpA7IM61KWm0NtodaOEzPbw=.#=q6S9eoetqGa49tVuWloNQCnRypxcDn7PYNPl2C$RaYnkKcnu1wUHa2NHB6vFg6y0WaNoYZQe4eQyVPI8HWrXBIyz4LMDluX5GlBYwdeY220k=(CandleSeries #=q1SVIqTyklP0v2Vmdbxf5pQ==, DateTime #=qv2yp$YhyUweWh$XfcRdgUw==, DateTime #=qHyx5tP4ns5E8bwaA97HB6A==)

в #=qX3OhqnqEph0ylOwbVoprdaRyUdFykOOlTJqNaUikiywB2d5GxCHY1J7pgbbIcyah1whRfbIIDuqG1CROSXDxrw==.#=qXRmgGHeIzniBfKG_gUxziw==()

в StockSharp.Algo.Candles.CandleManager.Start(CandleSeries series, DateTime from, DateTime to)

в StockSharp.Algo.Candles.CandleHelper.Start(ICandleManager manager, CandleSeries series)

в MARKET_SUCCESS_ALFA.MainWindow.ShowChartClick(Object sender, RoutedEventArgs e) в c:\Users\UsilaDobry\Documents\Visual Studio 2012\Projects\MARKET SUCCESS ALFA\MainWindow.xaml.cs:строка 241

ОК
---------------------------
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 20.06.2013
Ответить


Ошибка найдена и поправлена. Я постучался в скайп. Давайте проведем тестирование, может там еще что-то есть. Демо у Альфы теперь не предоставляется, а ради небольшой ошибки ехать к ним в офис нет совсем времени.
Спасибо: UsilaDobry

UsilaDobry

Фотография
Курсы
Дата: 20.06.2013
Ответить


Благодарю, реальные свечи выводятся корректно. Красота. Вот только значения индикатора BollingerBands выводятся странно.
Это мой код
Спасибо:

UsilaDobry

Фотография
Курсы
Дата: 20.06.2013
Ответить


Изменил немного код вывода значений индикатора, картинка без изменений...

Спасибо:

UsilaDobry

Фотография
Курсы
Дата: 21.06.2013
Ответить


При выводе реальных свечек AlfaTrader засыпает logFile каждые 5 секунд сообщениями



Запустил простую стратегию для пробы, для контроля вывожу законченные свечи в debug, но законченные свечи не выводятся, свечи выводятся в debug каждые 5 секунд...
И стратегия не понимает состояние свечки Finished, срабатывает на каждые 5 секунд... Возможно из-за этого и индикатор выводится не корректно?..

Код запуска стратегии


Код стратегии



Вывод в debug
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 21.06.2013
Ответить


UsilaDobry Перейти
Изменил немного код вывода значений индикатора, картинка без изменений...


IIndicator.IsFormed проверяется?
Спасибо:

UsilaDobry

Фотография
Курсы
Дата: 21.06.2013
Ответить


Михаил Сухов Перейти
UsilaDobry Перейти
Изменил немного код вывода значений индикатора, картинка без изменений...


IIndicator.IsFormed проверяется?


Разве свойство значения индикатора IsFinal = true не решает эту проверку? Значение окончательное, более неизменное в данный момент времени... У меня такое чувство, что значения индикатора считаются каждые 5 секунд по мере поступления исторических тиков, это как-то пересекается с моим предыдущим постом...
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 21.06.2013
Ответить


UsilaDobry Перейти
Михаил Сухов Перейти
UsilaDobry Перейти
Изменил немного код вывода значений индикатора, картинка без изменений...


IIndicator.IsFormed проверяется?


Разве свойство значения индикатора IsFinal = true не решает эту проверку?


IsFinal - это свойство, определяющее что данные окончательные в текущем ТФ. IsFormed - что индикатор сформировался и готов к работе (в т.ч. и отрисовки на графике). Посмотрите математическую формулу скользящих (я так понимаю Полосы на основе них сделаны). Все станет понятно.
Спасибо:

UsilaDobry

Фотография
Курсы
Дата: 21.06.2013
Ответить


Проверка на IsFormed вообще не пропускает исполнение кода в ветку оператора if, выводятся только свечи по оператору else...
Код
_series.ProcessCandle += candle =>
                            {
                                    if (candle.State == CandleStates.Finished && _chartBollingerElement.Indicator.IsFormed)
                                    {
                                        var valueBb = _chartBollingerElement.Indicator.Process(new CandleIndicatorValue(candle) { IsFinal = true });
                                        this.GuiAsync(() => _chartWindow.Chart.ProcessValues(candle.OpenTime, new Dictionary<IChartElement, object>
                                                    {
                                                        {_candlesElem, candle},
                                                        {_chartBollingerElement, new ChartIndicatorValue(_chartBollingerElement.Indicator, valueBb)},
                                                    }));
                                    }
                                    else
                                    {
                                        this.GuiAsync(() => _chartWindow.Chart.ProcessCandle(_candlesElem, candle));
                                    }
                            };


И почему же я указываю выводить в debug значения законченных свечей, а выводятся 5-секундные значения изменяемой свечи?..

Код
_series.ProcessCandle += candle =>
                    {
                        if (candle.State != CandleStates.Finished)
                            return;

                        Debug.WriteLine("{0}", candle.ToString());
                    };
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 21.06.2013
Ответить


UsilaDobry Перейти
Проверка на IsFormed вообще не пропускает исполнение кода в ветку оператора if, выводятся только свечи по оператору else...


Сейчас код неправильно написан в корне... Мне кажется надо не игнорировать, а понять, что такое IsFormed. Давайте резберем формулу скользящей средней.
Спасибо:

UsilaDobry

Фотография
Курсы
Дата: 21.06.2013
Ответить


Михаил Сухов Перейти
UsilaDobry Перейти
Проверка на IsFormed вообще не пропускает исполнение кода в ветку оператора if, выводятся только свечи по оператору else...


Сейчас код неправильно написан в корне... Мне кажется надо не игнорировать, а понять, что такое IsFormed. Давайте резберем формулу скользящей средней.


Простая скользящая средняя цены закрытия это среднее арифметическое значений цены закрытия за период. В нашем случае период = 20.
В моем понимании свойство SMA.IsFormed = true, т.е. индикатор сформирован, значит есть минимум 20 значений цены закрытия, которые позволяют рассчитать первое значение индикатора, до тех пор, пока не будут получены 20 значений цены закрытия
свойство SMA.IsFormed = false.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 21.06.2013
Ответить


UsilaDobry Перейти
Простая скользящая средняя цены закрытия это среднее арифметическое значений цены закрытия за период. В нашем случае период = 20.
В моем понимании свойство SMA.IsFormed = true, т.е. индикатор сформирован, значит есть минимум 20 значений цены закрытия, которые позволяют рассчитать первое значение индикатора, до тех пор, пока не будут получены 20 значений цены закрытия
свойство SMA.IsFormed = false.


Ну вот, а вы индикатор то в своем коде не заполняете. Как ему сформироваться при этом?
Спасибо: UsilaDobry
1 2  >

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

loading
clippy