Блог им. BWT

Графический анализ результатов оптимизации алгоритма.

    • 02 апреля 2025, 13:55
    • |
    • Poll
  • Еще

Перефразируя классика, график всегда лучше тысячи цифр.

Осенжин добавили в свой функционал очень полезную опцию – графическое представление результатов оптимизации. Возможно к этому их побудил мой недавний пост-просьба.)) Для меня это очень удобный инструмент и уже извлек из него пользу. На мой взгляд, лучше всего при оптимизации менять один параметр (на рисунке изменяется параметр от 0 до 35), тогда можно точнее понять влияние этого параметра на систему. Тестирование на нескольких коротких периодах поможет понять влияние на систему других факторов, например изменение волатильности.
Графический анализ результатов оптимизации алгоритма.

При переключении вкладок результатов оптимизации можно видеть распределение других параметров, например здесь просадка
Графический анализ результатов оптимизации алгоритма.

В общем, респект за этот инструмент!

Воспользуюсь моментом и предложу еще одну полезную фишку на подумать.

Было бы не плохо вместо (или рядом) с кнопкой «график» иметь маленькую картинку этого графика. Результаты ведь уже посчитаны и много ресурсов это не должно занять. Например как это сделано здесь.
Графический анализ результатов оптимизации алгоритма.


 

21 комментарий
А чем лучше tradingview например?
Михаил Шардин, например здесь я тестирую сринеры. примерно 200 торговых пар одновременно. Как мне кажется, это позволяет получить более достоверные результаты оптимизации на не очень длинных интервалах времени.
avatar
Poll, поверьте — ТВ это недосягаемая высота. Там и данные качественнее (они берут с источника) и результаты точнее.
Вообще можно строить 3Д графики по параметрам — выбирая 2 оси изменяемые параметры, а 3я ось оцениваемое значение. Тогда можно исследовать любое многомерное пространство гиперпараметров. Выглядит вот так.




Это реализовано в бактестере для ТрейдинвВью chromewebstore.google.com/detail/tradingview-assistant/pfbdfjaonemppanfnlmliafffahlohfg
avatar
akumidv, 

TSLab — smart-lab.ru/company/tslab/blog/657848.php
StockSharp — smart-lab.ru/company/stocksharp/blog/1025546.php
MT5 — smart-lab.ru/company/metaquotes/blog/581981.php

Бесплатные программы, используй здесь и сейчас.

Но ОсЭнджин это отдельный вид культа. Там из трейдеров пытаются делать программистов )) Поэтому тем кто неповезло с этой штукой поработать будут рады даже такому, о чем пишет автор. Сам был таким, плевался и убежал с итоге из-за тонн ошибок.
Просто трейдер, перечисленные программы могут одновременно сдеалть бэк тест 200 торговых пар?)) 
avatar
Poll, восприму это как шутку. Все программы выше умеют оперировать числом минимум на порядок выше. Минимум.

Вы можете скачать эти программы. Это не поделка с ГитХаба, которую нужно компилировать, и читать инструкцию чтобы запустить. В 2025 году нормальные программы имеют и нормальный установщик и интуитивный интерфейс.
Просто трейдер, я сам проверять не стал — нет времени. Спросил у чатагпт:

В TradingView встроенный инструмент бэктестинга (Strategy Tester) не позволяет тестировать сразу 200 торговых пар одновременно. Однако есть несколько обходных путей:

1. Запуск нескольких вкладок TradingView

Вы можете открыть несколько вкладок браузера с разными торговыми парами, загружая одну и ту же стратегию, но это потребует мощного компьютера и большого количества памяти.

avatar
Poll, вы не хотите тратить время на настоящие программы, но готовы выкидывать в утиль время на программу энтузиаста? Это, конечно, ценная инвестиция своего времени )

Походите по другим форумам, чатам, блогам. Эту программу никто не упоминает. Она никому неизвестная. Про нее знает только этот полу-мертвый раздел сайта.

Впрочем, дело ваше. Хотите попытаться исправить нерабочую программу — дерзайте. Не ясно только зачем вам это всё
Просто трейдер, У меня работатет и без ошибок и так как мне нужно)). Бесплатный и серьезный инструмент. Поэтому и пользую ее. 
avatar
Я спросил у тополя)) чатгпт

Для бэктестинга сразу 200 торговых пар вам потребуется мощное программное обеспечение, поддерживающее многопоточный расчет и оптимизацию. Рассмотрим лучшие варианты:

1. OS Engine (Open Source)

✔ Поддерживает тестирование множества инструментов одновременно
✔ Поддержка C# (что удобно для вас)
✔ Гибкость в интеграции с биржами
✔ Бесплатно
❌ Сложность настройки

2. MultiCharts (Платная)

✔ Оптимизированный многопоточный бэктест
✔ Возможность тестировать сотни инструментов
✔ Поддержка .NET и C#
✔ Графический интерфейс для удобного анализа
❌ Высокая цена

3. QuantConnect (LEAN Engine) (Бесплатный open-source движок)

✔ Поддерживает Python, C#
✔ Облачный и локальный бэктестинг
✔ Оптимизация стратегий на кластерах
❌ Требует программирования и мощного сервера

4. TradeStation (Платная)

✔ Многопоточный бэктест
✔ Простота настройки
❌ Закрытая экосистема, нет C#

5. Amibroker (Платная)

✔ Высокая скорость вычислений
✔ Поддерживает мультирыночный анализ
✔ Использует язык AFL (похож на C)
❌ Нет встроенной поддержки криптовалютных бирж

6. Python + Backtrader / Vectorbt

✔ Полный контроль над тестированием
✔ Оптимизирован для работы с массивами (NumPy, Pandas)
✔ Работает с биржевыми API
❌ Требует программирования


Вывод

🔹 Если нужен C# и бесплатное решениеOS Engine
🔹 Если нужна готовая мощная платформаMultiCharts
🔹 Если удобен PythonQuantConnect / Backtrader
🔹 Если хотите гибкость и скоростьAmibroker

avatar
Poll, всем известно, что ИИ подстраивается под ответы. И не умеет пока делать анализ по наиболее релевантному.

Вот ответ от Грока

Для тестирования большого количества итераций на торговых платформах, написанных на C#, важно учитывать такие факторы, как производительность, возможности оптимизации, поддержка исторических данных и инструменты для бэктестинга. Вот несколько платформ и решений, которые могут подойти для этой задачи:

  1. NinjaTrader
    • Почему подходит: NinjaTrader — одна из самых популярных платформ для разработки торговых стратегий на C#. Она предлагает мощный встроенный тестер стратегий (Strategy Analyzer), который позволяет проводить бэктестинг на исторических данных с большим количеством итераций. Поддерживает оптимизацию параметров через генетические алгоритмы, что ускоряет процесс тестирования.
    • Преимущества: Высокая производительность, доступ к историческим данным через подключение к брокерам, возможность писать сложные алгоритмы на C#.
    • Недостатки: Требует определённого времени на освоение, бесплатная версия ограничена в функционале (например, для реальной торговли нужен платный ключ).
    • Итерации: Подходит для большого количества итераций благодаря многопоточности и оптимизации.
  2. Quantower
    • Почему подходит: Quantower — современная торгово-аналитическая платформа с поддержкой C# для создания пользовательских стратегий и индикаторов. Она позволяет тестировать алгоритмы на исторических данных и поддерживает подключение к различным рынкам (фондовый, криптовалютный).
    • Преимущества: Гибкость в настройке, поддержка многопоточности, возможность интеграции с API брокеров.
    • Недостатки: Инструменты бэктестинга менее развиты по сравнению с NinjaTrader, может потребоваться дополнительная разработка для массового тестирования.
    • Итерации: Хорошо справляется с большим количеством итераций при правильной реализации кода.
  3. TradeStation (с использованием EasyLanguage и адаптации под C#)
    • Почему подходит: Хотя TradeStation изначально использует EasyLanguage, можно интегрировать C# через внешние библиотеки или API. Платформа известна своим мощным движком для бэктестинга и оптимизации стратегий.
    • Преимущества: Высокая скорость обработки данных, поддержка больших объёмов исторических данных.
    • Недостатки: Полная интеграция с C# требует дополнительных усилий, так как платформа ориентирована на свой язык.
    • Итерации: Отлично подходит для массового тестирования благодаря встроенным инструментам оптимизации.
  4. cTrader (cAlgo)
    • Почему подходит: cTrader — это платформа для торговли на Forex и CFD, которая использует C# для создания торговых роботов и индикаторов через cAlgo. Она имеет встроенный тестер стратегий с поддержкой исторических данных.
    • Преимущества: Простота написания кода на C#, хорошая производительность, интеграция с брокерами.
    • Недостатки: Тестер стратегий менее гибкий, чем у NinjaTrader, и может быть ограничен для очень сложных итераций.
    • Итерации: Подходит для среднего количества итераций, но может потребовать оптимизации кода для больших объёмов.
  5. Собственная разработка на C# с использованием библиотек
    • Почему подходит: Если ни одна из готовых платформ не удовлетворяет требованиям, можно создать собственное решение на C#, используя библиотеки вроде TA-Lib (технический анализ), Math.NET (математические вычисления) или Akka.NET (для параллельных вычислений). Это даёт полный контроль над процессом тестирования.
    • Преимущества: Максимальная гибкость, возможность оптимизировать под конкретные задачи, поддержка многопоточности и параллельных вычислений.
    • Недостатки: Требует значительных затрат времени на разработку и доступ к качественным историческим данным.
    • Итерации: Идеально для большого количества итераций, если реализовать многопоточность и эффективное управление памятью.

Рекомендации по выбору:

  • Для готового решения: NinjaTrader — лучший выбор благодаря мощному тестеру и оптимизации для C#. Подходит для тестирования тысяч итераций с минимальными доработками.
  • Для гибкости и скорости: Quantower или собственная разработка на C# с использованием многопоточности (например, через Task Parallel Library или Parallel.For).
  • Для простоты: cTrader, если задачи не слишком сложные и объём итераций умеренный.

Советы по оптимизации для большого количества итераций:

  • Используйте многопоточность (например, Parallel.For в C#) для параллельного тестирования.
  • Оптимизируйте работу с памятью, избегая лишних аллокаций (например, заранее задавайте размер массивов).
  • Применяйте генетические алгоритмы для сокращения числа тестируемых комбинаций.
  • Убедитесь, что исторические данные загружаются эффективно (например, в формате CSV или базы данных SQLite).

-----

Ни ваш результат ни мой результат не отражает объективность. Пока это не подвластно для ИИ.

Просто трейдер, И ваш и мой результат подтверждают, что в приведенных ранее примерах, ТВ, ТСлаб отстуствует возможность одновременного тестирования большого объема тикеров. А мне нужно.
avatar
Poll, вы или заинтересованное лицо в продвижении вашей программы или вы очень сильно попали.


В первом случае я вам ничего не смогу доказать априори.

Во втором случае вы явно не хотите видеть реальность. Вам трое человек написали про ТВ. Я даже привел ссылки на другие программы. А вы продолжаете себя успокаивать ответами из ИИ, который отвечаем то, что от него хотят услышать. С ИИ вы работать не можете, раз не умеете правильно задавать ему вопросы, чтобы он вам выдавал то что нужно, а не то что вас успокоит.

Мне вас очень жаль, если вы всё же второй вариант. Вы выбрали в самом самом начале неправильный вариант и выбрали не настоящую программу, а программу от энтузиаста. Которая, конечно же, всегда будет с ошибками и всегда будет в вечном движении догнать уходящие от нее вперед программы. А расплачиваться за это будете вы. Потому что вы не бенефициар, а лишь пользователь.

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

Дело ваше, повторюсь. Хотите свою личную жизнь тратить на ничто — это ваше инвесторское право. Ваша жизнь, ваше время, ваша ответственность.

Просто трейдер, Вы как-то все про эмоции, а я готов обсуждать факты. ИИ использовал только чтобы долго не исследовать описания к программам. А факт пока получается, что провести бэктест одновременно на многих инструментах особо выбора нет. Какая у вас программа любимая? ТВ? покжите эту возможность там, с выводм трехмерного графика результатов тестирования 200 тикеров. Должна быть интересная картинка. Хороший метод проверки любой стратегии
avatar
Poll, зря вы используете ИИ для описания к программам. Область микроскопическая. Вы путаете трейдинг с алготрейдингом. Вам ИИ выдает нерелеватное в итоге.

В ТВ я не скажу, так как такое не делал, делал оптимизацию по другим параметрам. Но сомневаюсь что там есть на это ограничение. Сейчас я принципиально не пользуюсь после отказа обслуживания рос клиентов.

В других программам — оптимизация по тикерам — есть и у MT5, и у StockSharp, и у TSLab. Это я делал сам персонально. Я не знаю с чего вы взяли что у вас нет выбора. Предположу, что спросили у ИИ. Вы не умеете его готовить (задавать правильно вопросы).
Просто трейдер, да уже забудем про ИИ.)) Сейчас мы выяснили, что в ТВ такого нет, ТСлаб я сам смотерл, там тоже нет. Где есть вы не знаете. Там где сейчас оптимизируете алгоритмы ведь не трудно посмотреть? Берем один и тот же алгоритм с одними и теми же параметрами и прогоняем одновременно по сотне тикеров. Результаты суммируются в одной таблице. Можно, конечно и по одному тикеру прогнать, а потом как-то складывать вручную, но это достаточно трудоемко.
avatar
Poll, «Сейчас мы выяснили, что в ТВ такого нет» давайте так, прекращайте свои манипуляции. Не «мы», а только Ваша упертость. Я и сейчас знаю что в ТВ это возможно.

Что касается других программ:

www.mql5.com/ru/book/automation/tester/tester_multicurrency_sync

doc.stocksharp.ru/topics/designer/optimization/portfolio_optimization.html

Для ТСЛаб стало лень искать, документация у них не очень. Но и там есть.

Удачи вам. Она вам пригодится, раз у вас так плохо не только с ИИ, но и с поисковиком.

Poll, NinjaTrader — имеет такую возможность. Прогонял таким образом тысячи акций)
avatar
 Я тоже спросил у Грока в той же формулировке, что и у ГПТ. Про ОСЕнджин он не знает, но и другие программы не могут обеспечить требуемый функционал. Так, что, получается пока это единственный вариант под мои задачи.
На текущий момент не существует широко известной программы, которая из коробки позволяет проводить бэктест 200 торговых пар одновременно с явным указанием этой возможности в документации или обзорах. Однако есть несколько инструментов и платформ, которые теоретически могут быть адаптированы для этой задачи при достаточной настройке и вычислительных ресурсах. Давайте разберем основные варианты, которые могут подойти:
  1. MetaTrader 4/5 (MT4/MT5)
    MetaTrader — популярная платформа для трейдинга, которая поддерживает бэктестинг торговых стратегий. Однако стандартный функционал позволяет тестировать только одну торговую пару за раз в одном экземпляре тестера. Для бэктеста 200 пар одновременно потребуется запустить множество параллельных экземпляров MT4/MT5 на мощном сервере или использовать сторонние утилиты, такие как Report Manager (упоминается в контексте совместного анализа нескольких советников), и написать скрипты для автоматизации. Это решение требует значительных усилий по настройке и не является готовым «из коробки».
  2. TradingView
    TradingView предлагает мощный инструмент для бэктестинга через Pine Script, но он ориентирован на тестирование одной стратегии на одном активе за раз в интерфейсе. Для массового параллельного тестирования 200 пар потребуется либо использовать API TradingView, либо писать кастомный код (например, на Python), который будет запускать тесты через их платформу. Это тоже не встроенная функция, а скорее обходной путь.
  3. Python с библиотеками (Backtrader, Zipline, или pysystemtrade)
    Python — один из самых гибких инструментов для бэктестинга. Библиотека Backtrader, например, поддерживает мультиассетное тестирование и может обрабатывать несколько торговых пар одновременно, если у вас есть исторические данные и достаточная вычислительная мощность. Теоретически, с хорошим сервером и оптимизированным кодом, Backtrader способен провести бэктест 200 пар параллельно. Однако это потребует ручной настройки, загрузки данных (например, через Quandl, Yahoo Finance или криптобиржи) и управления потоками/процессами. Zipline (от Quantopian) и pysystemtrade также поддерживают мультиассетный бэктестинг, но с аналогичными требованиями к кастомизации.
  4. QuantConnect
    QuantConnect — это облачная платформа с открытым исходным кодом, которая позволяет тестировать стратегии на множестве активов. Она поддерживает параллельное выполнение бэктестов, и при наличии подписки на премиум-данные или собственных данных вы можете настроить тестирование 200 торговых пар. Это одно из самых близких решений к «готовому», но все равно требует программирования на C# или Python и интеграции данных.
  5. MQL5 Cloud Network
    MQL5, связанная с MetaTrader, предлагает облачную сеть для распределенного тестирования. Она может ускорить бэктестинг, распределяя задачи по множеству узлов, но стандартно не ориентирована на одновременный тест 200 пар в одном интерфейсе. Это больше инструмент для ускорения, чем для массового параллельного анализа.
  6. Специализированные платформы (Cryptohopper, Veles и др.)
    Платформы для криптотрейдинга, такие как Cryptohopper или Veles, предлагают бэктестинг ботов, но их возможности обычно ограничены меньшим числом активов и ориентированы на автоматизацию торговли, а не на массовый анализ 200 пар одновременно. Для такого масштаба потребуется кастомная разработка.
ВыводНи одна из общедоступных программ не заявляет о встроенной поддержке бэктеста 200 торговых пар одновременно «из коробки». Самый практичный вариант — использовать Backtrader на Python с параллельной обработкой (например, через библиотеку multiprocessing), так как это решение наиболее гибкое и масштабируемое. Однако вам придется самостоятельно подготовить данные, написать код и обеспечить достаточные вычислительные ресурсы (например, сервер с 16+ ядрами и 64+ ГБ RAM). Если вы ищете готовое решение без программирования, такого пока не существует на рынке — потребуется разработка или адаптация существующих инструментов.  
avatar
Poll, 
MetaTrader 4/5 (MT4/MT5)
MetaTrader — популярная платформа для трейдинга, которая поддерживает бэктестинг торговых стратегий. Однако стандартный функционал позволяет тестировать только одну торговую пару за раз в одном экземпляре тестера.
Это неверное утверждение. Можно тестировать сколь угодно много символов в один прогон тестера. 

теги блога Poll

....все тэги



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