Блог им. ARANEA

Оптимизация параметров робота в TSlab со скоростью 2 миллиона комбинаций в секунду часть №2

    • 09 июня 2026, 13:52
    • |
    • ARANEA
  • Еще

в прошлом посте я писал про количество вариантов оптимизаций и замер на Tslab на минимальных параметрах и диапазоне ...

В этом этом же посте будет информация непосредственно о скорости вычислений и как получил 2 миллиона в секунду...

Давайте порассуждаем — вот у нас есть уровень Дневного минимума и алгоритм торговли просто ЛП минимумом красной свечи… сколько есть вариантов поведения свечей относительно дневного уровня которые можно описать от 1 до 2 свечей ?! сразу подскажу — не больше 30 если говорить о графиках криптовалют без гэпов и открытий/закрытий внутри свечи… сколько может быть правил фильтров определяющих направление цены через дневные минимумы/максимумы/закрытия ??? примерно 100 без учета индикаторов, так как алготрейдеры оценивают движения цены внутри дня на мелких таймфреймах то поведение цены относительно того или иного уровня можно оценить в миллионы вариантов комбинаций без учета отклонений/коэффициентов/PM и обновляемых значений через если/нет/да… Давайте еще поразмышляем — сколько вариантов средних скользящих можно завязать на значение бара таймфрема на котором ведется торговля то есть на High/Close/Low? EMA/SMA/MA/AMA/SMMA/DEMA/TEMA и так далее и так далее и при чем что если каждую взять с периодом 100 то на графике все будут на разных положения и дистанциях — тут речь не идет о то что показывает индикатор! тут речь идет о количестве возможных вариантов где может торговать стратегия и где можно оценить ее прибыльность/убыточность а еще сам образ торговли: быстрый/медленный/трендовый/скальперский/с минимальными просадками и так далее… вернемся к EMA — так как их большое количество да еще и прибавляется вариантов периодов — то представим что на 5 минутном таймфрейме можно оптимизировать те же варианты всех скользящих с теме же периодами но построенных на 15/30/60/120/240/1440 таймфреймах… я бы скинул таблицы в расчетах, но предлагаю каждому читателю этой статьи взять эксцель и прикинуть количество комбинаций! важно понимать не только то что я сейчас пишу но еще в и цифрах если ты хочешь все таки понять как устроен алготрейдинг и его математика ...

Вот пример несколько EMA на периоде 100 для любителей визуального отображения — таймфрем все тот же 1 час:

Оптимизация параметров робота в TSlab со скоростью 2 миллиона комбинаций в секунду часть №2
я взял специально период 100 и несколько вариантов MA — что бы было понятно что условие алгоритма относительно уровня могу сформироваться случайно полагаясь на правило EMA — так как если бы час до этого то алгоритм бы просто не прошел! тут вскрывается главная проблема Tslab и других программ, может это даже не проблема но я бы тоже ее публично не реализовывал — количество одинаковых Entry для одной стратегии но по разными правилам EMA которых с прошлого поста у нас в расчетах 4:

Правила расчет Итоговое число вычислений EMA правил = 527
4 min max шаг итог колл.во итог для Rule
Правило_№1 10 100 10 10 10
Правило_№2 100 200 10 11 11
Пр.№3 _aEMA 20 120 10 11 253
Пр.№3 _bEMA 80 300 10 23
Пр.№4 _aEMA 20 120 10 11 253
Пр.№4 _bEMA 80 300 10 23


Entry очень важно особенно для трендовых сделок которые управляются PM без тэйка так как по ним увеличенные риски и уменьшенное количество мест где сделка может открыться относительно скальперских с тэйком +0.5 с сериями побед по 40 сделок подряд  а при условии разных правил по тому же EMA можно было бы определить в % соотношение какие сделки редкие а какие возникают в 80-90% случаем и под них уже строить систему управления 

я оставлю ссылку на первый пост так как буду часто ссылаться на количество вычислений и их вариантов в процессе написания статьи и собственных замеров smart-lab.ru/blog/1314062.php 

далее что бы тебе читателю было интереснее я предлагаю все таки сделать таблицу эксцель и посчитать варианты EMA с рэйнджами и количеством перебора под банальную стратегию ложного пробоя ... 

Давай пока еще про индикаторы… я скажу сразу наперед что бы было меньше слов в тексте и понятнее воспринимать: левая часть алгоритма отвечает за вход в сделку, а правая за выход из нее… Так давай представим что по мимо EMA мы довяжем в логику фильтры по RSI/MAXD/ADX это те которые существуют независимо от цены в собственном окне коэффициента а если болинджера/облако и другие — то сколько вариантов параметров под одно банально условие минимум красной свечи + дневной лоу можно выявить вариантов = левая часть становится настолько тяжелой что при оптимизации ее можно даже не переходить к правой… но тут у меня есть таблетка благодаря скорости вычислений в 2 000 000 комбинация в секунду все эти правила левой части могут жить независимо или зависимо — тут нужно просто фантазию ну и порядочный оптимизатор который сможет все это вычислить и дать итоговые результаты ... 

Как и писалось в первой статье я взял очень старенький компьютер, что бы замеры были чистые… ну конечно я еще искал архитектурные решения для собственного приложения — вот такие параметры компьютера Оптимизация параметров робота в TSlab со скоростью 2 миллиона комбинаций в секунду часть №2
16 лет компьютеру и как хорошо что я его не выкинул и не продал.... 

замеры Tslab я кстати сделал на нем где 39 710 комбинаций были вычислены за 103 секунды = 368 комбинаций в секунду 

Давай знакомиться с вычислителем ARANEA… и так у меня по прежнему таже стратегия ЛП минимума дневного бар — но я добавил вот такую сетку для 5 PM  и 4 варианта по EMA — ниже будет больше скринов из бэкенда и фронт моего приложения и процесса вычислений и в конце посмотрим что в итоге получили на TSlab  

Сетка рэйджов в ARANEA Оптимизация параметров робота в TSlab со скоростью 2 миллиона комбинаций в секунду часть №2

я красным пометил трэйлинг стоп и сетку EMA которую убду оптимизировать и показывать итоговые результаты так как итоговые параметры менне важны чем сам процесс вычислений и конкретные метрики! сразу хочу заметить что у меня стоит одновременно вычисление 2 фильтров по минимумам о которых говорил в самом начале... 

и так что видно из логов приложения фулл набора...

1) Оптимизация параметров робота в TSlab со скоростью 2 миллиона комбинаций в секунду часть №2
сразу забегу вперед — можно оптимизировать одновременно:

1. несколько активов таймфремов — 1 стратегию все PM + все правила
2. несколько активов таймфремов — несколько стратегий +PM +правила + фильтры + индикаторы — тут вопрос фантазии, но самое интересное скорости и результаты

2)Сетка расчетов по EMA — я не стал тут сразу делать под все варианты средних скользящих так как суть этих постов донести некую важную мысль для алготрейдеров которую раскрою в конце ну и найти коллег и товарищей по цеху, возможно даже партнера по проекту Оптимизация параметров робота в TSlab со скоростью 2 миллиона комбинаций в секунду часть №2

3) сетки расчетов PM Оптимизация параметров робота в TSlab со скоростью 2 миллиона комбинаций в секунду часть №2
Оптимизация параметров робота в TSlab со скоростью 2 миллиона комбинаций в секунду часть №2

4) счетчик по фильтрам — ранее писал про повышающиеся минимумы и понижающиеся - 

тут у меня вышло Оптимизация параметров робота в TSlab со скоростью 2 миллиона комбинаций в секунду часть №2

на самом деле если прикинуть расчетов будет меньше 

 

Причина того что я добавил не включать в расчеты правила EMA где сделок 0 а также другие фильтры которые влияют на скорость вычислений 

как итог около 1.7 миллиарда 

Оптимизация параметров робота в TSlab со скоростью 2 миллиона комбинаций в секунду часть №2

 

Тут важно отметить саму программу TSlab — она старая и я подозреваю что данные метрики и их гибкость вычислений если внедрять то потребует колоссальных ресурсов перестроения архитектуры программы! еще важно то что она на С++ а у меня стэк из GO+RUST+JAVA+PYTH который я собирал несколько лет именно под скорость вычислений но об этом позже так как тут самое интересно 

таким образом из вычислений на CPU+GPU вылетело около 70% вычислений так как меня в оптимизации не интересуют варианты стратегий у которых сделок 1-3  или вообще нулевые… в статьях позже я буду описывать вычисления серверного оборудования и мх нюансов ...

скорость вычислений для каждого PM разная — так как на скорость влияет длина сделки и набор параметров который оптимизируется и еще на дополнительные правила которые будут описаны ниже, но сейчас на скрине я остановил процесс вычислений специально спустя 7.8 минут — потому что замер на 1-2 минутах не будет корректный так как в вычисления могу попасть легкие PM итого получилось из 1 784 873 300 прооптимизировать 87 969 476 средняя скорость составила 205 536 вычислений в секунду !!!

Оптимизация параметров робота в TSlab со скоростью 2 миллиона комбинаций в секунду часть №2

хочу напомнить что тут вычисления идут одновременно на фильтрах минимумы(повышаются/понижаются) и всех правилах EMA + все PM… Tslab с ее возможностями построения алгоритмов и систем управлений такие цифры могут только снится… но 205 000 это все еще не те 2 000 000 в секунду о которых я писал в первом посте и этом )))

я все таки хочу донести пользу и поделиться опытом, что бы можно было посмотреть на все это дело под другим углом… 2 года исследований и заметок можно описать в несколько томов или 1000 статей на смарт лаб, но я стараюсь первоначально поделиться результатом и описать процесс который поможет взглянуть на алготрейдинг с другой стороны и быть может моя информация будет полезной ...

 

я тут заметил что можно создавать темы на смарт лаб и для этого нужен какой то статус — будет замечательно если ты читатель поддержишь лайком статью и напишешь свое мнение/размышление/пожелание на эту тему 

 

а я перехожу в третьей статье в которой при к заветным 2 000 000 в секунду

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
  • обсудить на форуме:
  • TSLab
289
#233 по плюсам, #16 по комментариям
17 комментариев

в тслабе заходишь в редактор скриптов и находишь вкладку лог… там пишется время исполнения скрипта... 

соответсвенно время на оптимизацию = время исполнения скрипта * число проходов / число потоков… например у мя 32 потока ... 

можно взять в аренду сервер с посуточной оплатой на 192 потока легко… какой нибудь амд эпик?

и кстати тслаб во время оптимизации жрет память как не в себя… а у тя всего 8гб… ему банально не хватает… вообще у тслаба прописаны минимальные технические требования… т.е если взять райзен современный и память 128Гб то там прирост будет раз 100… и  будет не то что 2 млн а целых 3 в секунду а может и больше

кроме того… у тя 4 ре параметра оптимизации а перебор идет по 1му параметру… т.е 3 параметра фиксированы… и тогда зачем их вычислять каждый раз? 3 параметра посчитал и сгрузил в массив или файл а потом просто берешь значения без расчетов… это сэкономит 80% времени… не надо считать все… можно посчить то что перебираем

более того… в тслабе можно многое сделать на c#… без всякого визуального редактора

имхо в том что визуальный редактор тслаб начинает тормозить при большом количесве блоков… если блоков мало он работает быстро... 

я бы сделал бот только из 1ой сма… т.е 3 блока… торгуемый источник + цена закрытия + сма… и все… и запустил бы перебор… и стало бы понятно насколько быстр тслаб... 

кстати чат гпт может редактировать визуальный редактор через файл скртипта… но это медленно... 

успехов

 

avatar
ves2010, так я специально взял старый комп что бы показать разницу в замере… спасибо я проверю сколько потоков у Tslab… но сути оптимизации не меняет… на компе 16 ядер 16 потоков — ARANEA  делает 2.5к+ сложную стратегию со всеми вариантами PM + 10 индикаторов + 3 таймфрема паралельно на 1 активе 1 стратегию  а tslab — нужно помучаться с каждым PM и логической цепочкой и в течение недели еще и не забыть что где оптимизировал и что в итоге… я может не доконца разобрался в TSlab но так и не понял как по итоговой метрике можно получить итоговый результат

avatar
ves2010, вы цену видели за выделенный сервер 192 потока ?! от 70к в месяц — не проще сразу себе сервер ставить ?!) почитайте статьи дальше думаю Вам будет что добавить 

avatar

ARANEA, так есть посуточная оплата и почасовая 2 бакса в час

www.cherryservers.com/pricing/dedicated-servers/amd-epyc-9654?region=lt-siauliai&billing=37

avatar
ARANEA, у меня компьютер на котором тесты делаю дешевле стоит чем аренда сервера на два дня ) при этом за сутки он вычислит более 100 миллиардов — аналогичные STlab на 8 гБ памяти и 3 ядрах 3 потоках… в целом у меня комп стоит под торговлю 16 ядер 16 потоков 32 оперативки  там вообще 5-7 млн в секунду стратегия оптимизируется которая приводится как пример в статьях 
avatar
ARANEA, сейчас ограничение на посты стоит 2 в сутки, я бы третью выпустил уже… поэтому до завтра )
avatar
ves2010, в этом и есть корень слабой строны tslab что для оценки стратегии одного входного параметра не достаточно а особенно если комбинирование правил через обновляемые значения делаешь и перебор на разных TF… тут же суть не получить лучший PNL а получить лучшие метрики «выживаемости»стратегии да и вообще определение стратегии как таковой и ее формы — так как любою логику из миллиарда прикнь на бэктесте и подбери PM и вуаля циферки сошлись но это не гарантия того что при смене волатильности и поведения цены стратегия будет так же «выживать» 
и Вам успехов
 
avatar
Я так и не понял, вы на тслаб сделали скорость 2,5 млн комбинаций в секунду? 
avatar
VLTorgovie, нет же ) об этом в третье статье более подробно… я написал свой софт со скоростью 2млн в секунду на компьютере 16 летней давности 

avatar
ARANEA, не понял Вашего вопроса — как вы собрались найти лучший параметр за 200 шагом ?! или за 1000 шагов? можно подробнее что такое шаг и как он исчисляется .... 
avatar
ARANEA, 

Монте-Карло тоже нормальный инструмент, я с этим не спорю. Но “просканировать облако параметров” и “получить рабочий пул стратегий” — это разные задачи.

Если задача только прикинуть диапазоны числовых параметров, Монте-Карло или Байес могут быть полезны. Но у меня пространство не только числовое:

актив × таймфрейм × правило × фильтр × индикатор × PM × метрика

Здесь много дискретных решений: какой PM, какое правило EMA, нужен ли RSI, какой фильтр, long или short, какой актив. Случайная выборка может быстро дать кандидатов, но она не всегда дает понятную карту: какой класс правил живой, какой PM устойчивый, где просадка, где recovery, где случайный PnL.

Поэтому я не говорю про “тупой brute force” ради brute force. Смысл не в том, чтобы получить кучу строк. Смысл в том, чтобы уметь из этой кучи выжать нужное: отсеять мусор, сравнить группы, выбрать метрики и собрать пул стратегий.

Как раз об этом и будет третья статья. Не про то, как “все перебрать”, а про то, как из большого массива гипотез получить полезный торговый результат. Монте-Карло, Байес, pruning, полный перебор — это инструменты. Главный вопрос: что именно мы ищем и по каким метрикам понимаем, что нашли не случайность

avatar
ARANEA, так у вас пост называется, как вы в тслаб сделали 

Блог им. ARANEA

Оптимизация параметров робота в TSlab со скоростью 2 миллиона комбинаций в секунду часть    Причем тут тслаб вообще не понятно, вы рекламируете своб какую то программу?

avatar
Ииии какой в этом смысл если Байесовской оптимизацией можно найти лучшие параметры за 100-200 шагов, ну или если параметров оптимизации очень много то за 1000 шагов.
1шаг — это прогон стратегии с конкренными значениями параметров стратегии, прогнали один шаг, оптимизатор оценивает разультат, по заданной нами формуле и выдает набор параметров для следующего шага.
Есть еще метод Монте-Карло можно быстро «просканировть» облако параметров чтобы предварительно прикинуть диапазоны оптимизации для каждого параметра.
Тупой метод бруто-форса нужен, для довольно специфических вещей, которые вы врядли применяете, потому как мало кто знает как потом из этой кучи выжать и получить то что нужно.
ДАЖЕ чат-боты не знают правильного рабочего подхода и это хорошо.
avatar
Beach Bunny, 

Байесовская оптимизация хороший инструмент. Если задача такая: есть одна стратегия, один актив, один таймфрейм, один PM и одна целевая функция J(θ), например максимизировать Recovery Factor, то 100-200 шагов действительно могут дать хороший кандидат.

Но в моих примерах из статей показаны только базовые фильтры и состояния: EMA/RSI/MACD/PM как отдельные простые контуры. Там еще нет последовательных логических цепочек вида если да -> проверяем следующее условие, если нет -> идем в другую ветку, нет многоуровневых наборов правил и нет сложных обновляемых значений, которые меняются по ходу сделки. То есть пример специально упрощен.

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

Мне нужно исследовать пространство:

θ = стратегия + фильтры + состояния рынка + PM + актив + таймфрейм + long/short

И цель не просто найти одну лучшую точку max J(θ). Цель — собрать пул итоговых стратегий:

S = {θ1, θ2, θ3… θn}

где важны метрики всего набора: просадка, Recovery Factor, Profit Factor, серии убытков, корреляция, поведение на разных активах и таймфреймах, хеджирование long/short.

Байес может найти хороший short по PnL. Но мне может быть нужен short не лучший сам по себе, а такой, который перекрывает просадки long-пула:

J(S) = RF(S) — штраф_за_DD(S) — штраф_за_loss_streak(S)

Поэтому Байесовская оптимизация не отменяет мою задачу. Она может быть полезна как локальный инструмент поиска внутри уже выбранного класса гипотез. Но сначала нужно понять, какие классы фильтров, PM, активов и таймфреймов вообще жизнеспособны.

Плюс мне не нужно руками сидеть над 100-200 шагами. Я задаю пространство, метрики и ограничения, запускаю расчет и получаю массив кандидатов для анализа. Оптимизация параметров — не конечная цель. Конечная цель — пул стратегий с нужным профилем риска.

Завтра в третьей статье как раз раскрою эту тему подробнее: почему PnL и winrate не главные метрики, зачем сравнивать разные PM, почему EMA/RSI/MACD — это состояния рынка, и почему задача профессиональной оптимизации шире, чем найти одну лучшую точку Байесом.

 

avatar
ARANEA, а руками и не надо сидеть, все само работает, задается функция которую минимизируем, диапазони параметров и число шагов.
И все.
avatar

Beach Bunny, еще раз как пример о оптимизации в сравнение:

Байесом можно перебирать разные правила, фильтры, индикаторы и PM, если представить их как параметры:

θ = {
правило входа,
EMA on/off,
RSI on/off,
MACD on/off,
тип PM,
параметры PM,
актив,
таймфрейм
}

Но проблема в другом: Байес за каждый шаг проверяет одну конкретную комбинацию и двигается туда, где, по его модели, вероятнее хороший результат. Он не строит полную картину всех классов стратегий.

То есть Байес хорошо подходит, когда: у нас уже есть понятная постановка и функция качества, и нужно быстро найти хороший набор параметров.

Например:

найти лучший PM для уже выбранной стратегии
найти лучший EMA-period для уже выбранного правла
найти параметры под конкретную метрику

А уменя задача шире: понять, какие правила, фильтры, PM, активы и таймфреймы вообще жизнеспособны.

Байес можно применять, но он ищет хороший вариант по уже заданной функции качества. А моя задача сначала шире: понять, какие классы правил, фильтров и PM вообще дают живые результаты. Если Байесу дать неправильную функцию или слишком узкую постановку, он быстро найдет лучший ответ на неправильный вопрос.

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

Байес хорошо ищет внутри уже понятной постановки. ARANEA нужна, чтобы эту постановку сначала найти и проверить

avatar
Beach Bunny, 

Да, если смотреть грубо, в основе у меня есть широкий перебор гипотез. Но это не “тупой brute force”.

Тупой brute force — это когда все посчитали, получили огромную таблицу, отсортировали по PnL и потом не понимаем, что с этим делать.

Я трейдер с 15-летним стажем, и у меня задача другая: заранее задать, что именно я хочу получить: минимальную просадку, Recovery Factor, Profit Factor, ограничение по серии убытков, достаточное количество сделок, конкретный тип PM.

Отбор можно делать не только после всей оптимизации, а уже в процессе расчета. Если вариант уже нарушил условие, например получил loss streak больше допустимого или ушел в неподходящую просадку, его нет смысла тянуть дальше как кандидата.

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

если A(x1) прошло -> проверяем B(x2, x3)
если B не прошло -> идем в C(x4)
если C(x4) прошло -> включаем PM(y1, y2, y3)

То есть оптимизируется не просто общий набор параметров θ, а сама структура:

ветка + условие + параметры условия + PM + метрика

И тут как раз скорость вычислений играет большую роль. Она позволяет считать не один общий “черный ящик”, а последовательно разбирать конкретные ветки: где фильтр дает эффект, где ломается метрика, какой PM выживает, какая ветка вообще имеет смысл.

В таких задачах Байес и Монте-Карло могут дать кандидатов или локальные хорошие точки, но они не дают полной карты логики: какая ветка работает, где ломается, какой фильтр реально нужен, какой PM выживает.

Поэтому сильная сторона моего подхода не в том, что “просто все перебрать”, а в управляемом переборе: метрики, ограничения, pruning и анализ групп результатов по ходу расчета.

Например, без Байеса и без Монте-Карло за счет правил отбора и последовательной логики расчета пространство с 5 млрд вариантов можно сократить до 1.7 млрд. То есть речь не о слепом переборе, а о контролируемом сужении пространства гипотез.

avatar

Читайте на SMART-LAB:
Фото
Дешевеющая нефть поддержала Европу и иену, но доллар еще не сломлен
Нефть продолжает дешеветь во вторник: рынок осторожно закладывает в цены сравнительно спокойный новостной фон вокруг ближневосточного кризиса....
Фото
Accent объявляет SPO фонда «Акцент 4»
Accent объявляет SPO фонда «Акцент 4»   Дополнительно будет выпущено 220 тыс. паев на сумму более 300 млн рублей. Прием...
Фото
«Яндекс» снова выходит на долговой рынок: разбираем двойное размещение
В этой статье оценим параметры двойного размещения облигаций МКПАО «Яндекс» ― ведущей российской IT-компании с аудиторией более 110 млн...
Конспект Мозгового штурма. Инсайды с ПМЭФа. Weekly №120
Доброго дня дорогие товарищи. Сегодня у нас был традиционный мозговой штурм. Делюсь итогами штурма и инсайдами с ПМЭФа.

теги блога ARANEA

....все тэги



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