Здравствуйте! Тоже есть проблема с прорисовкой сделок на графике.
Передаю свечи и сделки так
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, до этой версии такая проблема была тоже.
В чем проблема? Что делаю не так? Как исправить?
И еще ```csharp
_chartWindow.Chart.IsAutoScroll = true;