GitHub продолжает захватывать мир разработки: в 2024 году на платформе уже более 518 миллионов проектов, а вкладов в открытые и публичные репозитории почти 1 миллиард. Но какой язык сейчас правит балом? Спойлер: JavaScript больше не на первом месте.
🐍 Python впервые обошел JavaScript
Да-да, в 2024 году Python стал самым популярным языком на GitHub. Но почему?
👉 Простота и универсальность. Python легко читается, быстро осваивается и используется в машинном обучении, анализе данных, научных вычислениях и даже в веб-разработке. Его любят и новички, и опытные специалисты.
👉 Бум STEM-специалистов. Программисты из сфер Science, Technology, Engineering, Mathematics (наука, технологии, инженерия, математика) активно осваивают Python, увеличивая его долю среди разработчиков.
👉 Взрывной рост AI-проектов. Количество вкладов в проекты по генеративному ИИ увеличилось на 59%, а число таких репозиториев – на 98%! Искусственный интеллект уже не просто тренд – это будущее, которое пишется прямо сейчас.
Продолжаем учиться делать «Источники» для OsEngine. Источники – классы, дающие уникальную функциональность для торговых роботов.
Сегодня поговорим про общую логику работы источников в терминале.
Если смотреть на данные доступные с биржи совсем сверху, то источники являются классами «преобразования» чистых рыночных данных. Источники дают расширенный функционал к тому, что уже есть на рынке, или преобразуют эти данные в совершенно новые формы:
Хотел поделиться своим проектом, который разрабатываю уже несколько лет.
[ Предыстория ]
По основной профессии — я программист. Почти 20 лет в этой сфере. Основной язык — Golang (это как бы современный Си). Трейдингом увлекся еще в далеком 2009. Тогда начал торговать акциями на Московской бирже. Именно спекулятивный трейдинг. Трейдил где-то 2 года. Опыт был успешным, купил себе первую хорошую машину.
Но, что хорошо тогда понял — это то, что трейдинг сложное занятие. Он сильно тебя выматывает. Эмоционально именно. Нужно прямо учиться переступать через себя и не суетиться, сохранять спокойствие. Это на самом деле очень сложно. И это только первая часть. Вторая, не менее трудоемкая — это масса работы, исследований, изучений, экспериментов. Нужно много вечеров и ночей посвятить разбору ошибок, графиков, инструментов и т.п. Все, кто этого не делает — им просто повезло. Просто есть некоторая вероятность. Кому-то должно повезти.
Через год трейдинга я понял, что совмещать программирование и эффективный трейдинг физически очень сложно. Уйти полностью в трейдинг — значит остаться без гарантированной и хорошей зарплаты. Нужного размера капитал я накопить еще не успел. А проседать в доходах тогда, конечно не хотелось.
В роботах, особенно с большим кол-вом настроек, бывает, требуется как-то визуально выделить некоторые Параметры и/или разделить их на группы. В OsEngine имеется такая возможность, и сегодня мы рассмотрим доступный функционал, как он выглядит и как им пользоваться.
Знакомиться с функционалом будем на примере робота VisualSettingsParametersExample. Открываем проект OsEngine в Visual Studio и находим файл в папке Robots\TechSamples:
Открываем робота, смотрим Конструктор:
Все роботы в OsEngine получают информацию о рынке как напрямую с биржи, так и через «Источники». Источники – классы, дающие уникальную функциональность для торговых роботов.
Открываем новую серию статей для программистов OsEngine о его архитектуре, чтобы продвинутые программисты могли существенно расширять функционал слоя создания торговых роботов в терминале –создавать новые Источники.
Ha зaкpытии бeлoй cвeчи зaкpывaeм paнee oткpытыe лoнги в плюc.т.е. чтобы закрыть в плюс ВСЕ лонги, надо закрывать позицию не на первой попавшейся белой свече, а только по цене выше самой дорогой из предыдущих покупок.
for (int bar = 1; bar < Bars.Count; ++bar) { if (IsLastPositionActive && (bar == Bars.Count-1 || Close[bar] > Open[bar])) { while (ActivePositions.Count > 0) ExitAtClose (bar, ActivePositions[0]); } else if (bar < Bars.Count-10 && Close[bar] < Open[bar]) { BuyAtClose (bar); } }История торгов Сбера с 01.01.2018 по 31.12.2024 на дневках добыта с сайта
for (int bar = 1; bar != Bars.Count; ++bar) { if (IsLastPositionActive && (bar == Bars.Count-1 || Close[bar] > Open[bar])) { while (ActivePositions.Count > 0) ExitAtClose (bar, ActivePositions[0]); } else if (bar < Bars.Count-10 && Close[bar] < Open[bar]) BuyAtClose (bar); }и его аналог на C++
for (unsigned bar = 1; bar != Count; ++bar) { if (IsLastPositionActive() && (bar == Count-1 || Close[bar] > Open[bar])) { while (ActivePositions.size() > 0) ExitAtClose (bar, ActivePositions.front()); } else if (bar < Count-10 && Close[bar] < Open[bar]) BuyAtClose (bar); }На всё-про-всё ушла рабочая неделя — годы уже не те.
На встрече трейдеров в Челябинске я показывал тестирование форекс-робота Флай Динамик и для меня было важно, чтобы каждый понял как работает робот. Потому что когда вы понимаете как он работает, тогда вы можете самостоятельно увеличивать его доходность и ограничивать риски.
У моего биржевого робота 23 настройки, которые влияют на торговую стратегию, но всего три настройки могут увеличить итоговую доходность в несколько раз. Об одной из таких настроек мы поговорим в этой статье.
Одна из настроек форекс-робота это «Расстояние между усредняющими ордерами». Чтобы понять что это такое, нужно знать что такое стратегия усреднения. Если вы не знаете, посмотрите на моём канале видео на эту тему.
Изменяя эту настройку, мы увеличиваем или уменьшаем количество открываемых роботом ордеров в определённом диапазоне волатильности. Например, если робот торгует в боковом тренде и диапазон канала составляет 1000 пунктов, а расстояние между усредняющими ордерами 100 пунктов, то при движении цены от одной границы канала до другой робот откроет 10 ордеров.