Блог им. Tyam

Выгрузка свечей на График chart Open Source

На днях начинающие алготрейдеры просили подсказать, каким классом в .net можно воспользоваться для прорисовки свечного графика. Вот здесь: smart-lab.ru/blog/225333.php

 

Растрогался, вспоминая как выл над кодом и не мог нормально прорисовать свечки.))

 

Короче сделал пример вывода свечек из файла на График. Visual Studio 2013, WPF, а для графика System.Windows.Forms.DataVisualization.Charting.Chart.

 Выгрузка свечей на График chart Open Source

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

    Будете в свои проекты WPF переносить, не забывайте добавлять пространства имён Windows Forms в references и using:

 Выгрузка свечей на График chart Open Source

 

 Всё. Скачать можно от сюда: sib-algo.ru/open-source/выгрузка-свечей-на-chart.html

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
1.9К | ★5
10 комментариев
Добрый день, Алексей!
Чисто из любопытства решил посмотреть на Ваш пример)
1) Установите Решарпер и узнаете много интересного о Вашем коде.
2) Выводите данные пачками (если на стандартных контролах такое возможно). Это значительно увеличит скорость отрисовки.
3) Для производительности рекомендую «замораживать» график при отрисовке, а то на каждой новой свечке у Вас все отрисовывается по-новому.

Серьезно задумайтесь над производительностью. Потому что если надумаете выводить маленькие таймфреймы или, что еще страшнее, тики (а Вы рано или поздно захотите это сделать), то успеете посидеть и состариться пока график отрисуется. В Вашем примере 1 год на часовых свечках строиться ~15-20 сек, у меня это график строится за ~0,1-0,4 сек. Сразу оговорюсь, что использую сторонние контролы, но в любом случае даже на стандартных эти процессы должны быть много быстрее.
avatar
SoftAlgoTrade,
Добрый.
Там есть кнопка перемотки (большая такая ">>>"), которая «замораживает» график, пряча его. После чего любые данные отрисовываются мгновенно.
Мой Stock Pattern Viewer проводит тесты десятилетий за секунды. Не видел ничего быстрее пока. Т.ч. не надо тут про оптимизацию.

upd: да, конечно можно было всё сразу и быстро прорисовать. Но мне показалось правильным вынести логику в отдельный поток и подгружать всё по одной свечке, как это в жизни происходит. Большие задержки создаёт именно процесс прорисовки (по этапный, пачкой — мгновенно), поэтому выход — спрятать чарт или нужные элементы на время динамической прорисовки. Можно ещё отключить принудительную прорисовку(Refresh) у чарта, но тогда будет не ровно выходить.
Что-то Ваша чудо-кнопка не работает)
Ну, да, ладно, это не так важно. Быстрее и лучше решения, конечно, есть. Главное, что Вы в курсе нюансов построения графиков в WPF.
Удачи!
avatar
SoftAlgoTrade,
Можно было прорисовать всё пачкой, формируя её прям в StreamReader и минуя массив свечей и потом за раз прорисовать. Было бы охрененно быстро, но в плане обучающего примера это бы было не хорошо. т.к из моего примера, сейчас уже и тестер собрать можно потихоньку, а из «быстрого» нет.
upd: убрал гадости из коммента
Откуда столько агрессии, Алексей? Я и не пытался Вас в чем-то упрекнуть. Для меня, например, это был тяжелый опыт. Отрисовка в WPF задача не такая простая как кажется. Просто хотел поделиться опытом. Основное преимущество Вашей отрисовки в том, что она абсолютно бесплатная и как я понял при хорошей оптимизации вполне производительная! А это уже хорошо. Мне же за свой SciChart приходится платить(
Кстати, было бы реально круто, если бы Вы смогли выложить пример производительной отрисовки! Новички бы оценили.
avatar
SoftAlgoTrade, извиняюсь.
Двадцать человек скачали, ни один спасибо не сказал. Расстроился и обидел мимо проходивщего товарища. Явно не образец для подражания.

Да. Оптимизирую пример, прорисую свечки, объёмы и выложу через пару недель. Может даже страничку отдельную для примеров сделаю. Тоже парился с этим делом когда-то.
Алексей, думаю что это только начало) Я вот уже второй год делаю софт и то только подхожу к финалу! Точнее подползаю) Еще только закрытое бета-тестирование проходит...
Так что советую Вам набраться терпения. Все еще только впереди!
Ваш подход в чем-то уникален. Я даже не знаю какие классические системы ТА могут предложить аналогичные решения. Развивайте идею, пусть это будет Вашей фишкой! ;)
avatar
2010-я студия не открывает пример из 2013-й ...
А Генератор скриптов разбираю (как обучение C#).

Говорю спасибо и без этого примера. Поскольку уже использую вьюер результативно.
avatar
спасибо большое. Очень полезный пример особенно для новичков
avatar
Спасибо, полезно. 
avatar

Читайте на SMART-LAB:
Инвестиции без спешки: торгуем в выходные
Алексей Девятов Клиенты Альфа-Инвестиций могут совершать сделки в выходные . Торги в эти дни не отличаются волатильностью, но если всё-таки...
Фото
Итоги первичных размещений ВДО и некоторых розничных выпусков на 10 июля 2026 г.
Следите за нашими новостями в удобном формате: Telegram , Youtube , RuTube, Smart-lab , ВКонтакте , Сайт
Фото
Размещение облигаций Атомэнергопрома в долларах и юанях: интересно ли поучаствовать?
10 июля Атомэнергопром соберет заявки на выпуски облигаций в долларах сроком 2,5 года и в юанях сроком 1,5 года. Объемы будут определены после...
Фото
Сбер РПБУ 6 мес. 2026 г. - кому нужны 30% доходности?
Сбер опубликовал финансовые результаты по РСБУ за 6 месяцев 2026 года. Чистая прибыль за полгода работы составила 995 млрд руб. (+20,4%). За...

теги блога Алексей Ван <o-s-a.net>

....все тэги



UPDONW
Новый дизайн