← Назад

Не выводятся сделки на график

Никак не получается вывести сделки на график. События срабатывают, свечи строятся, а вот сделки почему то не отображаются. У меня версия API 4.1.19 Enterprise. Может ли быть проблема в версии? Спасибо.

Комментарии (8)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

IvanB
IvanB

kadet: Никак не получается вывести сделки на график. События срабатывают, свечи строятся, а вот сделки почему то не отображаются. У меня версия API 4.1.19 Enterprise. Может ли быть проблема в версии? Спасибо.

Сделки приходят в код, в вашу программу?

kadet
kadet Автор

Да, проходят. Но на графике не отображаются.

Напишите пожалуйста стандартный способ вывода сделок на график. Возможно я что то упустил. Спасибо.

IvanB
IvanB

kadet: Да, проходят. Но на графике не отображаются.

Напишите пожалуйста стандартный способ вывода сделок на график. Возможно я что то упустил. Спасибо.

Работа с графиками продемонстрирована в 4-м уроке: 4 lesson (Candles, Charts, Historical data) Основная суть: Мы должны получать сделки, например от стратегии, например через использование правила: WhenNewMyTrades В обработчике этого правила надо выводить на график все полученные сделки, через поток GUI. В общем все это будет выглядеть примерно так:


            _strategy.WhenNewMyTrades()
                        .Do(mytrades => this.GuiAsync(() =>
                            {
                                mytrades.ForEach(t =>
                                    Chart.ProcessValues(t.Trade.Time, new Dictionary<IChartElement, object>()
                                        {
                                            {_chartTradeElement, t}
                                        }));
                            }))
                        .Apply();

У нас должен быть контрол Chart в окне, должен быть элемент _chartTradeElement:


private ChartTradeElement _chartTradeElement;

который инициализируется:


            _chartTradeElement = new ChartTradeElement();
            _chartArea1.Elements.Add(_chartTradeElement);

где chartArea1:


private ChartArea _chartArea1;

который должен быть инициализирован примерно так:


            _chartArea1 = new ChartArea();
            Chart.Areas.Add(_chartArea1);

kadet
kadet Автор

Спасибо, очень помогли. Я вместо {_chartTradeElement, t} передавал t.Trade

kadet
kadet Автор

У меня вопрос, почему RealTimeEmulationTrader не выводит сделки на график? Подписан я на сделки стратегии, но при эмуляции они не выводятся. В чем может быть проблема? Спасибо.

IvanB
IvanB

kadet: У меня вопрос, почему RealTimeEmulationTrader не выводит сделки на график? Подписан я на сделки стратегии, но при эмуляции они не выводятся. В чем может быть проблема? Спасибо.

Если сделки в других случаях выводятся, то надо смотреть чтоб сделки вообще приходили.

kadet
kadet Автор

Да сделки приходят, как и при торговле через квик, но не отображаются на графике.

IvanB
IvanB

kadet: Да сделки приходят, как и при торговле через квик, но не отображаются на графике.

Запустил проект CandlesChartProject, тот что на сервере, ничего не менял (таймфрейм уменьшил), испытывал на акциях лукойла, вот результат, метки сделок отображаются: http://gyazo.com/63c10eac3803a2205ade3b8c77085520 Попробуйте получить последнюю версию проекта с сервера и еще раз запустить.