Примерно год у меня ушёл на то, чтобы «переболеть» переоптимизацией. После того как до меня наконец дошло, что искать нужно закономерности, а не лучший набор параметров для максимизации эквити, алгоритмы стали постепенно получаться. Мои размышления о том, как искать закономерности, нашли подтверждение в книге TradingSystems. ANewApproachtoSystemDevelopmentandPortfolio. К сожалению, она немного на английском, но читается легко и оказалась очень полезной. Многие другие книги, как оказалось, содержат банальные, затасканные мысли, а некоторые слишком сложны для моего понимания.
В результате работы оптимизатора мы получаем огромный массив данных, представленных, как правило, в виде таблицы. Я пользуюсь OsEngine, поэтому поясню на этом примере:Для начинающих наиболее соблазнительным выглядит первый столбец. В нём отсортированы стратегии с самыми прибыльтыми, но, как правило, переоптимизированными результатами. Параметры стратегии подобраны так, чтобы захватить как можно больше самых прибыльных сделок (белых лебедей) на тестируемом периоде.
В данной статье посмотрим робота, который реализован с использованием многопоточного подхода.
Смотрит стаканы поступающих с биржи бумаг, ожидая «Плиту». При этом смотрит то кол-во бумаг, которое Вы в него подключили, как скринер.
Ходит слух — участникам тестирования будут предложены особые условия для торговли.
Поделиться своим опытом:
docs.google.com/forms/d/e/1FAIpQLSeSJW8xMj_gsiNdM8o9olHXhSTEZaS5B5zQcuDrjHgxWnpERQ/viewform
Также можно оставить свои контакты в комментариях.
Смартлаб благодарит Вас за участие ❤️
В OsEngine скрипты роботов могут храниться как внутри проекта, так и снаружи, в виде текстовых файлов.
Если роботы (и индикаторы) внутри проекта, то их можно «дебажить» и правит, так что Visual Studio будет помогать.
Если роботы (и индикаторы) как файлы, то их можно очень быстро переносить из версии в версию OsEngine.
И то, и другое имеет свои преимущества и нужно в разные стадии жизни робота. В этой статье поговорим о том, как роботов (и индикаторы) переносить из проекта в скрипты и обратно.
Задача: У Вас есть полностью оттестированный и готовый робот внутри проекта. Например, у Вас есть робот «MyEnvelopeTrend». В проекте он находится здесь:
Год прошёл, как первый пост опубликовали. Фига время бежит…
И я кстати вчера обратил внимание на рейтинги, походу мы сегодня догоним сам! Mozgovik Тимофея! по популярности!
Я, конечно, шокирован, что алгопроект! Про программирование! Open Source! В стадии разработки! Может вообще какие-то плюсы и рейтинги получать на СмартЛабе…
Реально, небесная ось сошла с орбиты и ударилась об офис Тимофея в Питере. Думаю, он и сам удивляется.
Но вот так. Низкий всем поклон! СмартЛаб не безнадёжен! Инвесторы излечимы!
На данный момент OsEngine позволяет торговать площадки ЦЕЛИКОМ. Т.е. одновременно по 600 фьючерсов с ФОРТС и 250 акций со СПОТ, например, чем я сам последний год и занят. Например, моё приглашение на серию лекций про ротацию бумаг в торгах для алгоритмов было про это (https://smart-lab.ru/company/os_engine/blog/1052370.php).
Лет пять назад было сложно представить, что через OsEngine можно торговать больше 20 роботов за один раз), и до сих пор есть камрады на СмартЛабе, которые думают, что это так и осталось. Так вот, это не так, братиш) Время бежит…
На одном из моих серваков это выглядит как-то так:
Этот пост – несколько советов от меня, как сделать так, чтобы можно было нормально торговать много источников одновременно и на что обратить внимание.
Технически, если опустить нагрузку на торговую логику, по сути, когда подключено 500 или 1000 инструментов, главной задачей становится разбор очереди из АПИ.
Почти сразу, после того, как Вы начнёте писать своих первых роботов, Вам придётся научиться делать записи в лог. Чтобы понимать, правильно ли работают ваши роботы.
Сегодня мы посмотрим, как это делается из кода робота.
SendNewLogMessage
В качестве параметров он принимает:
Выглядит в коде робота это так: