Может кому-то пригодится. На актуальной версии OpenClaw 26.3.13 я не смог завести SearXNG (локальный бесплатный поиск) через MCP или как-то ещё. Но оказалось что можно написать нативный плагин что бы обойти платные подписки по 5$ за 1000 запросов.
Пробовал Ваш подход. Разочарование приходит на этапе подбора параметров стратегии. Чтобы задать конкретный участок рынка нужно как-то обозначить его границы (например, rsi <30). И модель прекрасно работает на истории (например, подобрали rsi <30, atr < 20 и т.п.). Можно даже подобрать такой набор гиперпараметров, когда это будет успешно работать на валидации. Но дальше, на реальном будущем, рынок все же покажет, что он близок к идеальному и индикаторы устарели уже на 50 лет.
Ну а что бы не тратить время, гляньте freqtrade + freqai, там это давно реализовано.
Спасибо за статью. Тоже одно время пытался организовать RAG для локальной базы документов, но так и не поборол правильное разбиение на чанки - для русского языка та ещё задача... Там все вместе навалилось: и разбиение на чанки и выбор модели эмбеддинга, которая понимает русский. А недавно нашёл для себя rag в lmstudio. Оказывается он вполне хорошо работает и все из коробки, не надо ничего писать. Для домашнего использования имхо самое то.
Хочу ещё спросить вдогонку: как можно избежать, не знаю как лучше выразиться, "переобучения оптуной"? Я скачал с binance vision данные с начала 2025г по сентябрь, сделал из них npz (проверил, одинаковые события совпадают с Вашим датасетом).
Запускаю optuna на Вашем backetest_data, потом backtest_engine. Всё хорошо, агент торгует, pnl растёт. Запускаю бэктест на своих данных с января по сентябрь. С января по март сделок нет, с марта по июнь огонь и рост, с июня по сентябрь сделок почти нет, просадка. Явно optuna перестаралась и привела к подгонке параметров под конкретные условия. Вы с таким моментом не сталкивались?
Спасибо, там действительно было всё правильно. Хочу ещё обратить Ваше внимание на один момент в алгоритме бэктеста. В цикле по grouped_backtest_data Вы берёте только первые тикеры по количеству слотов selected_signals = signals[:free_slots] Тут проблема: если агент/окружение отклонили сделки, то остальные тикеры уже не проверяются. И тут поведение бэктеста будет достаточно ощутимо отличаться от лайва, т.к. по остальным событиям сделки в лайве могут открыться. Например, в signal_dt = 2025-03-27 17:28 в signals 5 тикеров. Я в локальной версии у себя внёс правки, график pnl поменялся, как раз в конце марта появились просадки...
А вообще, хочу сказать Вам спасибо! Очень интересно копать и разбираться)
Нашёл ещё один непонятный мне момент, а именно как у Вас вычисляется размер комиссии? Поясню.
В конфиге указано, что уровень комиссии задаётся в базовых пунктах и равен 0,0004, что примерно соответствует комиссии binance (там 0.05%, или 0,0005 bps для обычных пользователей для тейк и в 2 раза меньше для мейк):
Спасибо за очень интересную и качественную статью. Хочу задать Вам вопрос. Откуда Вы брали количество сделок num_trades? В частности для бэктеста. Я сверил с тем, что отдаёт binance, оно отличается. Совсем частный случай, пара SXT/USDT данные за 5 мая 13:46. В binance правда сдвиг по времени, на сайте эта свеча (O=0.272410, H=0.273270, L=0.271840, C=0.272130) была в 17:45 по Мск. Но если вытащить через API, то количество сделок там 224 (OHLC совпадает). А у Вас в бэктестовых данных 464. Подозрение что это не завершенные сделки, а все из стакана по какой-то глубине. Или я как-то не так смотрю?
Запустил deepseek 3.1 по методу из приведенной Вами статьи. На моём железе производительность 6-7 токенов в секунду, чего вполне достаточно. Думает перед ответом в среднем порядка 4-5 секунд. Запускается с контекстным окном в 50000 токенов (максимальный размер не исследовал).
Пришлось правда повозиться с текущей версией ik_llama, не хотела компилироваться. Оказалось что в одном из файлов очепятка в имени вызываемой функции. Исправил, заработало.
Тоже игрался им в свое время. Как я понял, можно сделать стратегию которая будет приносить деньги на растущем рынке, но когда начнётся падение, главное успеть все отрубить :-D
Ну такая себе подборка... Я бы посоветовал попробовать послушать Printer in the Morning от Nico Muhly и ещё Brouhaha от Christian McBride. Если в первой композиции слышен звон клавесина, а во второй детали басовых переходов, то сет правильный. Но это, конечно, не для блютус колонки.
Вы видимо с бухгалтерским и финансовым софтом не имели дела. Там одними промтами не обойтись: надо ещё с экспертами поговорить, услышать что им надо, перевести это на человеческий. И циферки должны сойтись не примерно, а точно. Это я к тому, что "поток сознания" через промт не завайбкодишь :)
Я одного не понимаю с кодингом полного кода через нейросети: как это потом поддерживать??? Сам пишу на Java, проект под миллион строк. Я знаю там каждую запятую! Даже если не касаться бизнес логики, которую нейросеть в принципе не может написать, как потом искать и исправлять ошибки? Я использую только автокомплит и то периодически его отключаю, когда он начинает чудить. Интересно, есть у кого-то реальный опыт вайб-кодинга не сайта с несколькими страницами, а большого проекта со сложной логикой и определёнными требованиям от бизнеса?
Есть нюансы. Например, community edition не запускает одновременно, если не ошибаюсь, более 5 микросервисов. В Ultimate понятно что таких ограничений нет. Как вероятно и в Gaga.
Может кому-то пригодится. На актуальной версии OpenClaw 26.3.13 я не смог завести SearXNG (локальный бесплатный поиск) через MCP или как-то ещё. Но оказалось что можно написать нативный плагин что бы обойти платные подписки по 5$ за 1000 запросов.
По шагам:
Клонировать репу https://github.com/stgmakarov/openclaw-searxng-plugin
поставить SearXNG (лучше в docker), инструкция есть в readme
подключить его в OpenClaw через openclaw plugins install ./openclaw-searxng-plugin
Скрытый текст
ну удачи вам
Пробовал Ваш подход. Разочарование приходит на этапе подбора параметров стратегии. Чтобы задать конкретный участок рынка нужно как-то обозначить его границы (например, rsi <30). И модель прекрасно работает на истории (например, подобрали rsi <30, atr < 20 и т.п.). Можно даже подобрать такой набор гиперпараметров, когда это будет успешно работать на валидации. Но дальше, на реальном будущем, рынок все же покажет, что он близок к идеальному и индикаторы устарели уже на 50 лет.
Ну а что бы не тратить время, гляньте freqtrade + freqai, там это давно реализовано.
Спасибо за статью. Тоже одно время пытался организовать RAG для локальной базы документов, но так и не поборол правильное разбиение на чанки - для русского языка та ещё задача... Там все вместе навалилось: и разбиение на чанки и выбор модели эмбеддинга, которая понимает русский. А недавно нашёл для себя rag в lmstudio. Оказывается он вполне хорошо работает и все из коробки, не надо ничего писать. Для домашнего использования имхо самое то.
Всегда считал, что если код открытый и лицензия MIT, то это называется opensource.
https://github.com/lmstudio-ai/lms
Хочу ещё спросить вдогонку: как можно избежать, не знаю как лучше выразиться, "переобучения оптуной"?
Я скачал с binance vision данные с начала 2025г по сентябрь, сделал из них npz (проверил, одинаковые события совпадают с Вашим датасетом).
Запускаю optuna на Вашем backetest_data, потом backtest_engine. Всё хорошо, агент торгует, pnl растёт.
Запускаю бэктест на своих данных с января по сентябрь. С января по март сделок нет, с марта по июнь огонь и рост, с июня по сентябрь сделок почти нет, просадка. Явно optuna перестаралась и привела к подгонке параметров под конкретные условия.
Вы с таким моментом не сталкивались?
Добрый день!
Спасибо, там действительно было всё правильно. Хочу ещё обратить Ваше внимание на один момент в алгоритме бэктеста.
В цикле по grouped_backtest_data Вы берёте только первые тикеры по количеству слотов selected_signals = signals[:free_slots]
Тут проблема: если агент/окружение отклонили сделки, то остальные тикеры уже не проверяются. И тут поведение бэктеста будет достаточно ощутимо отличаться от лайва, т.к. по остальным событиям сделки в лайве могут открыться.
Например, в signal_dt = 2025-03-27 17:28 в signals 5 тикеров.
Я в локальной версии у себя внёс правки, график pnl поменялся, как раз в конце марта появились просадки...
А вообще, хочу сказать Вам спасибо! Очень интересно копать и разбираться)
Спасибо за подробный ответ!
Нашёл ещё один непонятный мне момент, а именно как у Вас вычисляется размер комиссии? Поясню.
В конфиге указано, что уровень комиссии задаётся в базовых пунктах и равен 0,0004, что примерно соответствует комиссии binance (там 0.05%, или 0,0005 bps для обычных пользователей для тейк и в 2 раза меньше для мейк):
transaction_fee: float = 0,0004
# 0.01% – 0.05% (1–5 bps -> basis points) 1 bps = 0.01% = 0.0001
А дальше в коде вроде как забывается про то что это bps а не процент (или я не увидел, где это преобразуется), и везде комиссия считается по формулам
fee = (entry + exit) * position_size * cfg.market.transaction_fee
pnl_change -= exec_price volume * self.transaction_fee
Как я понимаю, здесь нужно ещё умножить на 100... Ну или поставить в конфиге не 0,0005, а 0,05.
Но когда меняешь на 0,05, агент отказывается совершать сделки после обучения: видимо считает, что это самая правильная позиция :)
Отвечу сам себе: ccxt агрегирует сделки, поэтому значение было разным.
Добрый день!
Спасибо за очень интересную и качественную статью. Хочу задать Вам вопрос. Откуда Вы брали количество сделок num_trades? В частности для бэктеста. Я сверил с тем, что отдаёт binance, оно отличается. Совсем частный случай, пара SXT/USDT данные за 5 мая 13:46. В binance правда сдвиг по времени, на сайте эта свеча (O=0.272410, H=0.273270, L=0.271840, C=0.272130) была в 17:45 по Мск. Но если вытащить через API, то количество сделок там 224 (OHLC совпадает). А у Вас в бэктестовых данных 464. Подозрение что это не завершенные сделки, а все из стакана по какой-то глубине. Или я как-то не так смотрю?
С импульсами. Можно посмотреть в test_data.npz
Запустил deepseek 3.1 по методу из приведенной Вами статьи. На моём железе производительность 6-7 токенов в секунду, чего вполне достаточно. Думает перед ответом в среднем порядка 4-5 секунд. Запускается с контекстным окном в 50000 токенов (максимальный размер не исследовал).
Пришлось правда повозиться с текущей версией ik_llama, не хотела компилироваться. Оказалось что в одном из файлов очепятка в имени вызываемой функции. Исправил, заработало.
Тоже игрался им в свое время. Как я понял, можно сделать стратегию которая будет приносить деньги на растущем рынке, но когда начнётся падение, главное успеть все отрубить :-D
Ну такая себе подборка... Я бы посоветовал попробовать послушать Printer in the Morning от Nico Muhly и ещё Brouhaha от Christian McBride. Если в первой композиции слышен звон клавесина, а во второй детали басовых переходов, то сет правильный. Но это, конечно, не для блютус колонки.
Вы видимо с бухгалтерским и финансовым софтом не имели дела. Там одними промтами не обойтись: надо ещё с экспертами поговорить, услышать что им надо, перевести это на человеческий. И циферки должны сойтись не примерно, а точно. Это я к тому, что "поток сознания" через промт не завайбкодишь :)
Я одного не понимаю с кодингом полного кода через нейросети: как это потом поддерживать??? Сам пишу на Java, проект под миллион строк. Я знаю там каждую запятую! Даже если не касаться бизнес логики, которую нейросеть в принципе не может написать, как потом искать и исправлять ошибки? Я использую только автокомплит и то периодически его отключаю, когда он начинает чудить. Интересно, есть у кого-то реальный опыт вайб-кодинга не сайта с несколькими страницами, а большого проекта со сложной логикой и определёнными требованиям от бизнеса?
Есть нюансы. Например, community edition не запускает одновременно, если не ошибаюсь, более 5 микросервисов. В Ultimate понятно что таких ограничений нет. Как вероятно и в Gaga.
Вероятно, но с dns от comss и chatgpt открывается с российским ip без vpn.
Спасибо за статью, сам пользуюсь этим плагином. Не понял только зачем ставить ollama в docker? У меня работает просто в винде, никаких проблем нет.
Цена датчика DFRobot у нас под 3000, на Али 1200-1400. А где Вы его по 200р видели?