MS Chart
Atom
8/23/2012


Как привязать реальные данные из Quik с MS Chart?
Переделал с CodePlex IndicatorsXaml вот таким образом:
Code
 [color=red]
_candleManager.Processing += (series, candle) =>  { DrawCandleMsChart(series, candle);}
_candleManager.Start(_series);
.....
private void DrawCandleMsChart(CandleSeries series, Candle candle)
        {            
            this.GuiAsync(() =>
            {                    
                var wnd = _msChartWindows.TryGetValue(series);                  
                if (wnd != null)             
                    wnd.MsChart.AddCandle(candle);
            });
        }
namespace IndicatorsXaml
{
......
public void AddCandle(Candle candle)
        {
            _seriesVolume.Points.Add(new DataPoint
            {
                XValue = candle.CloseTime.ToOADate(),
                YValues = new [] { candle.CloseVolume.To<double>() }
            });

            var candleSb = new StringBuilder();
            candleSb.Append(candle.LowPrice.ToString().Replace(',', '.')).Append(',');
            candleSb.Append(candle.HighPrice.ToString().Replace(',', '.')).Append(',');
            candleSb.Append(candle.OpenPrice.ToString().Replace(',', '.')).Append(',');
            candleSb.Append(candle.ClosePrice.ToString().Replace(',', '.'));
            var pointCandle = new DataPoint(candle.CloseTime.ToOADate(), candleSb.ToString());

            pointCandle["PriceUpColor"] = "Green";
            pointCandle["PriceDownColor"] = "Red";
            pointCandle.BorderColor = Color.DarkSlateGray;

            _seriesCandles.Points.Add(pointCandle);
}
...
}

НО MS Chart на часовом тайм-фрейме рисует все точки подряд, а не сумму за час.
Что за метод суммирует данные? В Am Chart всё делается автоматически и в исходниках нет никакого суммирования.
В общем что надо сделать? Заранее спасибо!

Tags:


Thanks:


Moadip

Avatar
Date: 8/23/2012
Reply


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

Свое изобретать конечно интересно.[wink] Но можно воспользоваться уже готовым.
В 4.1.4 для отрисовки графиков используется контрол на основе msChart.

Дока пока еще не обновлена, но примеры уже переписаны под новый контрол и по ним можно разобраться, как данный контрол использовать.
Thanks: Кот Матроскин

Jeta

Avatar
Date: 8/23/2012
Reply


А что, от amCharts уже отказались?
Thanks:

ra81

Avatar
Date: 8/24/2012
Reply


jTr Go to
А что, от amCharts уже отказались?

Давненько уже в сторону других чартов смотрят. амЧартс уже пережиток.
Thanks:

alex123456

Avatar
Date: 8/24/2012
Reply


MS Chart свечки строит хорошо, но вот индикаторы см. прикреплённый файл.
Почему нет объёмного графика.
Thanks:

ra81

Avatar
Date: 8/24/2012
Reply


alex123456 Go to
MS Chart свечки строит хорошо, но вот индикаторы см. прикреплённый файл.
Почему нет объёмного графика.


Необходима доработка видимо компоненты. Чтобы на графике не было дырок от пропущенных периодов например ночных, используются индексированные ряды данных. А они будут отображаться только когда число точек во всех рядах одинаковое. В этом и есть проблема. Свечек скорее всего больше чем точек индикатора. У меня например картинка с дырками, ибо я не стал заморачиваться с индексацией именно из за проблемы синхронизации рядов данных.
Thanks:

alex123456

Avatar
Date: 8/25/2012
Reply


Задача с индексацией между рядами решилась вот так:
надо добавить два слова: IsIndexed="False" - тогда индексация выключится.
Code
<SX:Chart x:Name="_chart" IsIndexed="False" />

Но после этого на графике появяться пустые области, причём такие большие просто жуть(не говоря уж о времени загрузки).
например: в примере SMA появится область с 2010 по 2012 (каждый день, и час и минута).
А с индексацией индикатор не грузится.
AmChart вэтом отношении лучше(может пока только).
Thanks:

alex123456

Avatar
Date: 8/25/2012
Reply


Есть ещё проблемы:
Заголовки не добавляются ни на график(Chart), ни на области(Area).
Подсказки(ToolTip) также не добавляются к индикаторам.
Подсказка в виде информации о свечке в примере работает, у себя не работает. Что надо включить?
Сделал такую вещь: сначала у меня рисуются свечки, а потом добавляется к нему индикатор.
Исторический индикатор рисуется нормально (т.е. по данным по которым уже построены свечки).
Но вот реальный отрисовывает один или два отрезка и выбрасывает следующее исключение см. файл.
Что надо сделать? Вроде индикатор не пустой, есть все данные см. файл.
Как будто количество свечек меньше, чем количество значений индикатора или наоборот.
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy