dron3333:
Иван З.:
Это скрин очень старого чарта, как видно 2010 года, сейчас такого нет. Только если своих кнопки накидаете, на них навешаете изменение таймфрейма.
Как правильно сделать если мне изначально нужно отрисовать тиковые данные? Я пытаюсь создать через TickCandle. Далее если изменить таймфрейм, то формировать из этих тиков нужный таймфрейм. Вопрос как быстро и правильно преобразовать и отрисовать по новой этот новый таймфрейм? Может вообще бредовая эта идея? Как-то может по другому делается это? Пару строк ключевых подскажите пожалуйста...
Если вы хотите загрузить в чарт тики и потом из них сам чарт по нажатию кнопки выдаст нужный таймфрей, то это врятли, хотя может чарт снова изменился с тех пор как я с ним разбирался.
В чарт загружаются свечи
_candleManager.Processing += DrawCandle;
private void DrawCandle(CandleSeries series, Candle candle)
{
...
wnd.Chart.Draw((ChartCandleElement)wnd.Chart.Areas[0].Elements[0], candle);
}
Какие свечи туда загрузите те и отрисуются
switch (type)
{
case CandleTypes.TimeFrame:
series = new CandleSeries(typeof(TimeFrameCandle), security, TimeFrame.Value.Value.TimeOfDay);
break;
case CandleTypes.Tick:
series = new CandleSeries(typeof(TickCandle), security, VolumeCtrl.Text.To<int>());
break;
case CandleTypes.Volume:
series = new CandleSeries(typeof(VolumeCandle), security, VolumeCtrl.Text.To<decimal>());
break;
case CandleTypes.Range:
series = new CandleSeries(typeof(RangeCandle), security, PriceRange.Unit);
break;
default:
throw new ArgumentOutOfRangeException();
}
...
_candleManager.Start(series);
Хотите другой таймфрейм, стирайте предыдущий чарт и рисуйте по новому. Ну а скорость отрисовки из тиков вы наверное уже видели, и врятли она вас устроит.
А вообще S# не очень эфективен для этих целей(не для быстрого рисования графиков в смысле).