Подскажите, пожалуйста, возможно ли передать между доменами Вашим способом сборку в которой имеются классы не помеченные как сериализируемые? Где только не копался не могу найти способ разблокировать сборку после использования. В моем случае скорость не так важна, важно получить экземпляр класса в сборке с несериализируемыми данными и выгрузить ее (разблокировать) для дальнейшей работы. Можно это сделать как-то проще?
Андрей молодец!
По своему опыту могу сказать, что очень сложно создать свою платформу для алгоритмической торговли! Тем более универсальную под различные коннекторы и торговые терминалы. Но именно такой подход позволяет строить гибкие стратегии и прибыльных торговых роботов.
К сожалению, ни одна российская разработка для алгоритмической торговли(да, и большинство зарубежных) не могут предложить гибкий, доступный и функциональный интерфейс для создания роботов, тем более высокоскоростных. Получается либо слишком примитивно — с визуальными конструкторами, либо слишком сложно — много специфичного кода(не редко низкого качества).
Поэтому все профессионалы сидят на своих «велосипедах». Пока, к сожалению, реалии таковы)
Очень интересная и крайне доступно написанная статья! Спасибо!
Что можете сказать про скорость такого алгоритма и точность относительно других методов?
Я занимался подобными изысканиями для поиска лучших торговых стратегий в трейдинге. Мне нужно было найти не только глобальный экстремум, но и максимально исследовать все локальные экстремумы! Разработал новый алгоритм, который не стремится к глобальному экстремуму, а удаляет из пространства исследования все минимумы и сходится ко всем экстремумам.
Метод оказался эффективнее и удобнее по сравнению с теми, которые я ранее использовал. Буду рад, если вы как эксперт оцените мой алгоритм, а то я прямых аналогов ему пока не нашел.
Удачи!
Вы задаете правильные вопросы. Как уже, наверное, заметили, статья получилась довольно объемной. При этом в ней всего лишь рассматривались существующие методы оптимизации. И был предложен новый усовершенствованный алгоритм для поиска лучших стратегий. Это только начало! Круг вопросов, которые нужно решить, перед тем как получить хорошую прибыльную стратегию очень широкий! Чтобы их все рассмотреть одной статьи точно не достаточно.
Я понимаю нетерпение многих читателей, которые после статьи задаются вопросом: «Ну, и зачем я все это прочитал?» «Где сверхприбыли от таких алгоритмов?» «Это вообще работает?»
Не все сразу. После оптимизации нужно провести исследование на подгонку и адекватность полученных результатов. Потом изучить поведение стратегии на реальном рынке. Затем исследовать портфель таких стратегий и проводить уже в нем оптимизацию и решать проблемы мани менеджмента и многое, многое другое…
Алготрейдинг – это целая наука, где тесно переплетаются программирование, трейдинг, математика, статистика, аналитика и другие направления. Каждый из этих пунктов требует колоссальной отдачи и вложения сил. Нет такой кнопки «Получить бабло по умному алгоритму». Поэтому не так много людей справляется с объемом и сложностью поставленных задач и добиваются успеха в этой области.
Будут другие статьи в продолжение этой темы. Со временем постараюсь глубже раскрыть нюансы этой профессии. Появятся ссылки и на «протестировать», «купить», «скачать». Но не все сразу.
А пока мы рассмотрели довольно сложную и при этом очень важную область алгортейдинга – оптимизацию. Все впереди! Удачи!
Я делаю акцент на изучение сходимости, кластеризации. Если параметры хороших стратегий сгруппированы и «тусуются» рядом в пространстве, значит в их расположении есть какая-то система, а если это хорошая стратегия отбита от общей массы, значит она случайная и внесистемная. Такие параметры проторговывать, конечно, не стоит. При этом эти стратегии стоит проверять на исторических диапазонах не учавствоваших в оптимизации. Если в конце исследования что-то останется, то можно с более высокой уверенностью говорить, что стратегия рабочая.
Оптимизация дает мне большой объем статистической информации при исследовании стратегии. После нее я знаю чего ожидать от стратегии, как она себя поведет при различных условиях на рынке. Как ее правильно настраивать в этом многообразии вариантов параметров и прочее. В алготрейдинге это немаловажно.
«Выхлоп» зависит от торгуемых вами стратегий. От правильного манименджмента и сформированного портфеля стратегий. А чтобы изучить стратегии и повысить их прибыльность используют тестирование и оптимизацию.
Чем больше таймфрейм стратегий и если они носят долгосрочный характер, то на них в большей степени влияет фундаментальный анализ. Чем меньше времени между сделками, тем сильнее работают статистические закономерности.
Например, где-то в Венесуэле террористы взорвали нефтеперерабатывающий завод и на этом фоне цены на нефть стали расти. Если вы были в среднесрочной сделке и играли на понижение, то вы понесете убытки и для вас такие новости важны. А если вы занимаетесь высокочастотной торговлей и за секунду совершаете с десяток разнонаправленных сделок, то вам совершенно все равно взорвали тот завод или нет.
В основном спекулирование на маленьких таймфреймах. Но эти алгоритмы можно применить и для долгосрочных стратегий, например, для оптимизации портфеля торговых инструментов.
Оптимизация проводится на исторических данных, здесь реального подключения не требуется. Пока изучал алгоритмы оптимизации и тестирования. Результат вы видели в статье. Создал приложения для работы со стратегиями, для их изучения и написания. А прибыль приносить должны сами стратегии. Если стратегия бессмысленная, то ничего не поможет)
Все верно, но существуют механизмы для защиты от переоптимизации. Подобные исследования уже давно шагнули вперед. Тоже машинное обучение, нейронные сети.
Вопрос в том, чтобы все это правильно применить и грамотно оценить результаты работы таких программ. В настоящий момент разрабатываю комплекс ПО для торговли, анализа и оптимизации алгоритмических стратегий. Торгового робота написать не сложно, сложно заставить его приносить прибыль. А для этого ему нужны хорошие проверенные алгоритмы, которые нужно досконально исследовать и настроить.
А никак. Все зависит от стратегии. Они бывают самыми разными. Какие-то нужно динамически переоптимизоровать каждую минуту, а какие-то годами работают на одних настройках. Чтобы хоть как-то понять как поведет себя стратегия ее нужно подробно исследовать, и на основании полученных статистических данных можно уже говорить о каких-то вероятностях. В трейдинге нельзя контролировать свою прибыль, можно только оперировать вероятностями и контролировать свои риски.
WLD на C#, Квик на C#, если не ошибаюсь TSLab тоже на С#. А что толку. Код чужой, закрытый, все равно под API платформы приходится подстраиваться и если у них баги, то вы их будете терпеть и ждать, когда разработчики соизволят их устранить. Это сплошь и рядом. К тому же в WLD серьезные проблемы с таймфреймами до 1 минуты.
Вот маржинального тестирования пока нет, но ничего не мешает его туда прикрутить) Пара формул в расчет статистики и комиссии. В этом вся прелесть своих разработок!
ПО пока не планировал распространять, но в перспективе есть такая идея. Если интересно оставайтесь на связи, если что будем сотрудничать.
Какие данные зададите, то и будете квантовать. Алгоритм универсальный и позволяет гибко настраиваться. Торговый инструмент — любой. Сохраняете исторические данные по нужному вам инструменту, делаете из них свечи любого таймфрейма. По этим свечкам тестируете в нужном вам диапазоне. В перспективе планирую добавить walk-forward для защиты от переоптимизации для не динамических систем. Оптимизирую в конкретных примерах по матожиданию, хотя можно настроить и другие критерии, в том числе комплексные.
Тестер-оптимизатор работает со свечной моделью цены любого таймфрейма. Можно одновременно тестировать сразу по нескольким таймфреймам. С тиками после небольшой подкрутки тоже сможет работать, но в такие диапазоны при наших интернет каналах и глюках QUIKa пока не рискую лезть. Тестировать на них вполне можно, но очевидно дольше.
Подскажите, пожалуйста, возможно ли передать между доменами Вашим способом сборку в которой имеются классы не помеченные как сериализируемые? Где только не копался не могу найти способ разблокировать сборку после использования. В моем случае скорость не так важна, важно получить экземпляр класса в сборке с несериализируемыми данными и выгрузить ее (разблокировать) для дальнейшей работы. Можно это сделать как-то проще?
P.S. Спасибо за хорошие примеры!
По своему опыту могу сказать, что очень сложно создать свою платформу для алгоритмической торговли! Тем более универсальную под различные коннекторы и торговые терминалы. Но именно такой подход позволяет строить гибкие стратегии и прибыльных торговых роботов.
К сожалению, ни одна российская разработка для алгоритмической торговли(да, и большинство зарубежных) не могут предложить гибкий, доступный и функциональный интерфейс для создания роботов, тем более высокоскоростных. Получается либо слишком примитивно — с визуальными конструкторами, либо слишком сложно — много специфичного кода(не редко низкого качества).
Поэтому все профессионалы сидят на своих «велосипедах». Пока, к сожалению, реалии таковы)
Что можете сказать про скорость такого алгоритма и точность относительно других методов?
Я занимался подобными изысканиями для поиска лучших торговых стратегий в трейдинге. Мне нужно было найти не только глобальный экстремум, но и максимально исследовать все локальные экстремумы! Разработал новый алгоритм, который не стремится к глобальному экстремуму, а удаляет из пространства исследования все минимумы и сходится ко всем экстремумам.
Метод оказался эффективнее и удобнее по сравнению с теми, которые я ранее использовал. Буду рад, если вы как эксперт оцените мой алгоритм, а то я прямых аналогов ему пока не нашел.
Удачи!
Вы задаете правильные вопросы. Как уже, наверное, заметили, статья получилась довольно объемной. При этом в ней всего лишь рассматривались существующие методы оптимизации. И был предложен новый усовершенствованный алгоритм для поиска лучших стратегий. Это только начало! Круг вопросов, которые нужно решить, перед тем как получить хорошую прибыльную стратегию очень широкий! Чтобы их все рассмотреть одной статьи точно не достаточно.
Я понимаю нетерпение многих читателей, которые после статьи задаются вопросом: «Ну, и зачем я все это прочитал?» «Где сверхприбыли от таких алгоритмов?» «Это вообще работает?»
Не все сразу. После оптимизации нужно провести исследование на подгонку и адекватность полученных результатов. Потом изучить поведение стратегии на реальном рынке. Затем исследовать портфель таких стратегий и проводить уже в нем оптимизацию и решать проблемы мани менеджмента и многое, многое другое…
Алготрейдинг – это целая наука, где тесно переплетаются программирование, трейдинг, математика, статистика, аналитика и другие направления. Каждый из этих пунктов требует колоссальной отдачи и вложения сил. Нет такой кнопки «Получить бабло по умному алгоритму». Поэтому не так много людей справляется с объемом и сложностью поставленных задач и добиваются успеха в этой области.
Будут другие статьи в продолжение этой темы. Со временем постараюсь глубже раскрыть нюансы этой профессии. Появятся ссылки и на «протестировать», «купить», «скачать». Но не все сразу.
А пока мы рассмотрели довольно сложную и при этом очень важную область алгортейдинга – оптимизацию. Все впереди! Удачи!
Код написан на С# на основе бесплатной торговой платформы StockSharp.
Трехмерная графика реализована на базе ILNumerics.
Например, где-то в Венесуэле террористы взорвали нефтеперерабатывающий завод и на этом фоне цены на нефть стали расти. Если вы были в среднесрочной сделке и играли на понижение, то вы понесете убытки и для вас такие новости важны. А если вы занимаетесь высокочастотной торговлей и за секунду совершаете с десяток разнонаправленных сделок, то вам совершенно все равно взорвали тот завод или нет.
Вопрос в том, чтобы все это правильно применить и грамотно оценить результаты работы таких программ. В настоящий момент разрабатываю комплекс ПО для торговли, анализа и оптимизации алгоритмических стратегий. Торгового робота написать не сложно, сложно заставить его приносить прибыль. А для этого ему нужны хорошие проверенные алгоритмы, которые нужно досконально исследовать и настроить.
Вот маржинального тестирования пока нет, но ничего не мешает его туда прикрутить) Пара формул в расчет статистики и комиссии. В этом вся прелесть своих разработок!
ПО пока не планировал распространять, но в перспективе есть такая идея. Если интересно оставайтесь на связи, если что будем сотрудничать.