ChartTradeElement - все сделки Sell
Atom Ответить
22.04.2013


При отрисовке сделок с помощью ChartTradeElement почему-то все сделки обозначаются красной стрелкой вниз.
(в журнале у меня по тому же событию сделки пишутся, на продажу и на покупку, т.е. со статусом в событии проблемы скорее всего нет)
В чём может быть проблема? Где копать?



Спасибо:




22 Ответов
esper

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


Какой чарт используется? Какая версия библиотеки?
Спасибо:

VassilSanych

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


esper Перейти
Какой чарт используется? Какая версия библиотеки?

Исходники.
WPFToolkit 1.8
SciChart, естественно
Автор топика
Спасибо:

esper

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


VassilSanych Перейти
Исходники.
WPFToolkit 1.8
SciChart, естественно

Была такая ошибка, но ее исправили пару версий назад.
Спасибо:

Иван З.

Фотография
Курсы Автор статей Благотворитель
Дата: 02.05.2013
Ответить


Здравствуйте! Тоже есть проблема с прорисовкой сделок на графике.
Передаю свечи и сделки так
Код
candleManager.Processing += DrawCandle;
_trader.NewMyTrades += DrawTrade;


Код
        private void DrawTrade(IEnumerable<MyTrade> trade)
        {
            this.GuiAsync(
                () => _chartWindow.Chart.ProcessValues(trade.Last().Trade.Time, new Dictionary<IChartElement, object>
                    {
                        {_tradeElement, trade.Last()},
                    }));
        }

        private void DrawCandle(CandleSeries series, Candle candle)
        {
                if (candle.State == CandleStates.Finished)
                {
                    this.GuiAsync(
                        () => _chartWindow.Chart.ProcessValues(candle.OpenTime, new Dictionary<IChartElement, object>
                            {
                                {_candlesElem, candle},
                            }));
            }
        }


Свечи и сделки рисуются. Но обратил внимание, что не все сделки отображены на графике. Прикрутил MessageBox, и стал смотреть шаг за шагом, что происходит. Так как свеча прорисовывается уже оконченная, то сделка прорисовывается раньше, как как видно на первом рисунке. Но как только прорисовывается свеча, предыдущая сделка исчезает с предыдущей свечи и появляется в левом краю окна. Только одна сделка из 7 осталась на своем месте. От цвета свечи это не зависит, бывает и зеленые остаются на графике.
Проверяю на версии 4.1.12, до этой версии такая проблема была тоже.
В чем проблема? Что делаю не так? Как исправить?
И еще
Код
            _chartWindow.Chart.IsAutoScroll = true;
на версии 4.1.12 не работает.
2.jpg (1) 3.jpg (0) 4.jpg (0) 7.jpg (0) 8.jpg (0)
Спасибо:

Moadip

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


Давайте проведем эксперимент. Есть подозрение что дело в Abt.Controls.SciChart.Wpf.dll.
Прикрепил к посту более ранню версию Abt.Controls.SciChart.Wpf.dll, плюс скомпиленную под нее StockSharp.Xaml.dll.

Замените у себя эти dll и проверьте, будет ли баг со стрелками или нет.
Ref.rar (0)
Спасибо:

Иван З.

Фотография
Курсы Автор статей Благотворитель
Дата: 02.05.2013
Ответить


Эксперимент провел.
Код
_chartWindow.Chart.IsAutoScroll = true; 

Не работает. И вообще, теперь ни какая кнопка в чарте не работает, масштабировать не получается. Результат на рисунке. Хотя стрелка не исчезла, и с левого края ни одной стрелки не появилось, но для точности надо по больше картинку посмотреть.
1.jpg (0)
Спасибо:

Moadip

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


Цитата:
Не работает.

Ну зато стрелка не исчезла.Smile
Значит в исчезновении стрелок виновата либа Abt.Controls.SciChart.Wpf.dll.

Насчет масштабирования, странно что не работает, проверил, вроде все ок.
Насчет AutoScroll - разбираемся.
Спасибо: Иван З.

Иван З.

Фотография
Курсы Автор статей Благотворитель
Дата: 02.05.2013
Ответить


Цитата:
Насчет масштабирования, странно что не работает, проверил, вроде все ок.

При двойном нажатии выдает ошибку.
Стрелки то на месте, теперь бы больше 2х свечей увидеть.LOL
Спасибо:

VassilSanych

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


Иван З. Перейти
Стрелки то на месте, теперь бы больше 2х свечей увидеть.LOL

Не трогайте его. Он думает о бесконечности :)

Автор топика
Спасибо:

Иван З.

Фотография
Курсы Автор статей Благотворитель
Дата: 02.05.2013
Ответить


Он думает о вечном... Так лучше звучит.:)
Спасибо:

esper

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


Иван З. Перейти
Здравствуйте! Тоже есть проблема с прорисовкой сделок на графике.

Свечи и сделки рисуются. Но обратил внимание, что не все сделки отображены на графике. Прикрутил MessageBox, и стал смотреть шаг за шагом, что происходит. Так как свеча прорисовывается уже оконченная, то сделка прорисовывается раньше, как как видно на первом рисунке. Но как только прорисовывается свеча, предыдущая сделка исчезает с предыдущей свечи и появляется в левом краю окна. Только одна сделка из 7 осталась на своем месте. От цвета свечи это не зависит, бывает и зеленые остаются на графике.
Проверяю на версии 4.1.12, до этой версии такая проблема была тоже.
В чем проблема? Что делаю не так? Как исправить?

Попробуйте пока выводить сделки округляя их время до времени свечки.
Спасибо: Иван З.

Иван З.

Фотография
Курсы Автор статей Благотворитель
Дата: 02.05.2013
Ответить


Спасибо, помогло!
Спасибо:

UsilaDobry

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


esper Перейти

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


А это как?
Я округляю значения с помощью Math.Round, а как можно округлить данные типа DateTime?Confused

+ к тому, что убегают стрелки у меня заявки тоже выводятся в виде стрелок:

Код
_strategy.WhenOrderRegistered().Do(order => this.GuiAsync(() =>
                        Chart.ProcessValues(order.Time, new Dictionary<IChartElement, object> { { _chartOrderElement, order }, }))).Apply();
                    _strategy.WhenNewMyTrades().Do(trades => trades.ForEach(t => this.GuiAsync(() =>
                        Chart.ProcessValues(t.Trade.Time, new Dictionary<IChartElement, object> { { _chartTradeElement, t }, })))).Apply();


и цвет элементов не могу поменять, эти свойства не работают, на графике они повторяют цвет свечек:

Код
_chartTradeElement = new ChartTradeElement {BuyColor = Colors.Blue, SellColor = Colors.Blue};
 _chartOrderElement = new ChartOrderElement {BuyColor = Colors.Aqua, SellColor = Colors.Aqua};
Спасибо:

esper

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


UsilaDobry Перейти
А это как?

Схематично так
Код
timeFrame.GetCandleBounds(trade.Time).Min


UsilaDobry Перейти
+ к тому, что убегают стрелки у меня заявки тоже выводятся в виде стрелок:

Все верно, заявки сейчас отображаются так же как и сделки.

UsilaDobry Перейти
и цвет элементов не могу поменять, эти свойства не работают, на графике они повторяют цвет свечек:

Цвета для заявок и сделок пока менять нельзя.
Спасибо: UsilaDobry Bond

Иван З.

Фотография
Курсы Автор статей Благотворитель
Дата: 13.05.2013
Ответить


Цитата:
Все верно, заявки сейчас отображаются так же как и сделки.

Это очень не удобно. Заявка со временем уходит из вида. И вообще SciChart поплохел, ждем новой версии с исправлениями!Wink
Спасибо:

esper

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


Иван З. Перейти
Это очень не удобно. Заявка со временем уходит из вида.

Это есть в планах, но пока есть и более приоритетные задачи.

Иван З. Перейти
И вообще SciChart поплохел, ждем новой версии с исправлениями!Wink

А поподробнее?
Спасибо:

Иван З.

Фотография
Курсы Автор статей Благотворитель
Дата: 13.05.2013
Ответить


Самый первый, которого раньше не было, это IsAutoScroll = true;, не работает. IsAutoScroll кровь попил, ушел на StockSharp.Xaml другой версии где работает, но там не работает CrossHair = true; а штука удобная.
Заявки сейчас отображаются так же как и сделки, тоже не удобно. Стрелки убегают в начало экрана, это и раньше было, ну а так как "Заявки сейчас отображаются так же как и сделки" эти стрелки тоже убегают на край экрана, приходиться округлять. Я много графиком не пользуюсь, это сразу в глаза бросилось.
Еще стоп заявки не выводил на экран, не знаю даже можно или нет.
Есть еще один косячек малюсенький, при тестировании когда вывожу сделки на экран, и пару индикаторов в разных областях графиков. Пока свечи идут все нормально как только, тестирование окончено при движении свечек(_area1) с ней двигается последний(_area4) а индикаторы средние(_area2, _area3) стоит на месте, при изменении размеров индикаторов(_area2, _area3) все встает на места. На первом рисунке как все должно выглядеть, на втором прокрутил свечки, свечи и нижний индикатор прокрутились как надо, а два средних стоят на месте. На 3 собрал в кучу свечи, нижний тоже собрался, два средних нет. На четвертом измения размер площадей средних все стало на места. Это не критично, но проблема есть.
У VassilSanych были претензии здесь http://www.stocksharp.co...iChart---nabor-ghliukov/ Я в них не вникал, но он как правило х-ню не пишет.

Цитата:
Это есть в планах, но пока есть и более приоритетные задачи.

Ни кто не торопит, просто взгляд со стороны пользователя, спасибо за работу.

ChartTheme = "ExpressionDark"; Штука интересная, есть еще какие нибудь темы? Где их можно посмотреть?
1.png (0) 2.png (0) 3.png (1) 4.png (0)
Спасибо:

Иван З.

Фотография
Курсы Автор статей Благотворитель
Дата: 13.05.2013
Ответить


Еще пожелание, Antialiasinig=false, сделать по умолчанию false. Без сглаживания смотрится на много лучше(Мое мнение, можно поспорить, спросить общественность).
Спасибо:

esper

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


Доступные темы: ExpressionLight, ExpressionDark, BlackSteel, BrightSpark, Chrome, Electric, Oscilloscope
Спасибо: Иван З. UsilaDobry VassilSanych

devruss

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


Итак, прошло 9 месяцев, результат:

Цитата:

Автор: UsilaDobry Перейти к цитате
и цвет элементов не могу поменять, эти свойства не работают, на графике они повторяют цвет свечек:

Цвета для заявок и сделок пока менять нельзя.


все также нельзя менять цвета сделок. Если Buy еще отличаются от зеленого цвета свечек, то красный Sell абсолютно не читается на красных свечках "вниз". В исходниках нашел свойства для цвета, но они ни на что не влияют:
Код

tradeElement = new ChartTradeElement()
            {
                BuyColor = Colors.Yellow,
                SellColor = Colors.Yellow
            };


Цитата:

Эксперимент провел.
Код:
Код
_chartWindow.Chart.IsAutoScroll = true;


Не работает. И вообще, теперь ни какая кнопка в чарте не работает, масштабировать не получается.


все также - либо AutoScroll, либо масштабирование

Я уверен, что есть более важные задачи, но 9 месяцев на исправление таких мелких багов это многовато.
Спасибо:

devruss

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


4.2.2.16 измененные цвета сделок заработали, crosshair + масштабирование тоже
Спасибо:

JaguarFX

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


Сделки заработали, но свечи у меня слетели полностью))
http://yadi.sk/d/qeFBgsofJoHtk

При отладке заметил, что при использовании API 4.2.2.16 для тестирования на исторических свечах у всех полученных стратегией свечей CloseTime стало равно OpenTime
http://yadi.sk/d/xeIZeBHdJoNKv

Код прорисовки
Спасибо:


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

loading
clippy