Доброй ночи, коллеги!
Как я писал в предыдущем посте, недавно я стал счастливым обладателем подписки ChatGPT Pro.
В связи с этим счастливым событием решил потестировать Canvas.
Если кто не в курсе — это такая крутая диалоговая штука, которая в числе прочего может писать программы и даже их компилировать в законченные приложения.
И вот я решил потренировать Canvas в написании кода для глубокого обучения нейронной сети прямого распространения (обычный Deep Learning, без этих всяких CNN, RNN, трансформеров и прочей ереси).
Написал промпт для генерации кода на Matlab (моя любимая энжина для математических расчетов и экспериментов, как говорят в МГИМО: whom how).
Смысл задачи — предсказание знака следующего приращения цены (по набору предыдущих приращений).
Canvas попыхтел минуту и выдал короткий код с использованием вызовов функций из Deep Learning Toolbox. Он сразу заработал.
Но мы не ищем легких путей. Модель o1 умеет рассуждать — пусть рассуждает.
И я дал ей задание написать код с нуля (без Toolboxes) — чисто метод сопряженных градиентов (adjusted gradients) и обратное распространение ошибки (back propagation). Пороговая функция tanh(x). Все по классике, короче.
Canvas попыхтел минуту и выдал длинный код, который… не заработал.
При этом код достаточно элегантный (с виду), там, где я использую 3-х мерный массив для набора матриц, эта эстетская шляпа построила cell array из матриц. Гораздо медленнее, но красивее визуально с т.зр. формул.
Ошибки при этом она сделала во всем, в чем можно. Неправильная инициализация, неправильная обработка выходного слоя и (sic!) обратный порядок перебора слоев в back propagation. Я тоже, бывает, косячу в программах, но такой лютый трэш не пишу...
Чистый эксперимент — это чистый эксперимент. Я специально не стал исправлять ошибки сам, а начал указывать на них Canvas — и оно начало их исправлять. Бинго — 5 итерация — готова жутко медленная нейросетка, которая работает правильно.
Допустим — подумал я. И предложил «оно» переписать код, чтобы она предсказывала не знак будущего приращения цены, а само будущее приращение цены. И тут начался лютый п@здец...
Все, что надо было сделать — это убрать активацию tanh(x) из выходного слоя. «Оно» накосячило в размерности и никак не реагировало на все мои указания исправить ошибку. Я плюнул через 25 итераций, когда понял, что это бесполезно. При этом каждый раз она писала в рассуждениях: «я нашла ошибку, я ее исправила, теперь я гарантирую, что все размерности соблюдены корректно».
(для тех, кому интересно — «оно» не сообразило, что в выходном слое 1 нейрон, а в скрытых слоях всегда больше, чем 1, и честно пыталась перемножить несовместимые по размерности матрицы).
Когда мне все надоело — я чутка переписал промпт (ну и очистил контекст, чтобы модель не галлюцинировала) и перегенерировал ответ. Бинго — всего после 2-х исправлений прога заработала!
КРАТКИЕ ВЫВОДЫ:
1. Canvas (Cursor, ...) очень полезна, когда надо создать код с библиотечными вызовами. Если кто не в курсе — справочник по функциям Matlab — это 16000 страниц, а справочник по Deep Learning Toolbox то ли 8000, то ли 9000 страниц (пишу по памяти, у меня электронные издания 2022 г.)
2. Canvas абсолютно бесполезна, если вы не понимаете, что за код она генерит. А код она генерит эстетский и замысловатый, так что править его достаточно трудно (хотя он хорошо откомментирован)
3. Если вы не понимаете, что за код она генерит, дальнейшие усилия по приведению кода в работоспособное состояние — это производственный Ад.
Как-то так
С уважением
Это про то, как ты объясняешь компу, какую прогу ему нужно написать, а он не только сам пишет, но еще и компилирует в готовое приложение.
Внешне все очень круто. Но если копнуть...
С уважением
Нас — двое!
С уважением
А дебютная идея — это «Quasi una fantasia». Мы видим, что блондин играет хорошо, а брюнет играет плохо. И никакие ИИ не изменят этого соотношения сил,
Т.к я уже 2 года об этом не пишу
И дебютные идеи у меня есть (4 шт. — 4 ветки исследований)
2 из них успешно работают и приносят бабло
Но писать об этом глупо
На SL я пытаюсь устроить дискуссии — безрезультатно
С уважением
Я еще иногда про рынок пишу )))
С уважением
Finance не использую, Deep Learning пользую
С уважением
Ну допустим, если вы настаиваете...
Слышал, что если с нейросетью говорить вежливо, т.е. писать «будьте любезны», «пожалуйста», «спасибо», то качество её работу улучшается.
Попробуйте 😉
Я вроде в декабре писал, что нейросети отвратительно решают задачу предсказания будущих приращений цен (или их знака).
Мои кастомные методы работают значительно лучше.
С уважением
Чтобы только окупить комиссию и получить хоть какую-то мизерную прибыль нужно поиметь от 4 до 40 пунктов, в зависимости от инструмента. На 4-40 пунктов ты уже вряд ли что предскажешь, тем более, надо в сделке получить минимум 8-100 п, иначе и в сделку идти не стоит. Имхо, это все пустое, на 8-100 п это полный бесполезняк.
Лично я эквити предсказываю, а не цены
Но не на котиках же сетку тренировать?!
С уважением
1. Для маркетных моделей с комиссией — на 5-6 минутных баров
2. Для лимитных с маркапами на 30-40 ( но там очень тяжелые расчеты, я их 8 мес. ускорял до разумного тайминга).
А так повторяю — я предсказываю не цену, а эквити (финрез)
С уважением
1. Для маркетной эквити с комиссиями достаточно хорошо предсказать приращение цены (просто знака недостаточно)
2. А вот для лимитной эквити нужно еще хорошо предсказать high и low (вернее, некие функции от них)
С уважением
P.S. Конечно финрез не равен приращению цены. А если вдруг равен, то это не модель, а сферический конь в вакууме
Ну, эт мы все предсказываем.) Иначе как в сделку входить, если неизвестно куда оно ломанется.)
Но я тебе по секрету скажу — рынок прост как ящик. Из этого следует, что ни фига ты толком там не предскажешь.) Ни простыми методами, ни сложными. Простые даже надежнее.
«Блаженны нищие духом, ибо их есть Царство Небесное»
С уважением
У меня — нет
С уважением
За 2024 я сократил расчет с 280 дней до 8 часов (280 дней я не считал, конечно, это оценка). Это на ryzen 7945hx 64gb RAM и 4080
Но у меня сложные модели
С уважением
Не верю в эквити без просадок
От слова совсем
Более того могу (статистически) доказать, что такого не бывает
Если только подглядывать в будущее...
С уважением
«Блаженны нищие духом, ибо их есть Царство Небесное»
С уважением
P.S. С баблом у них все сильно хуже, конечно…
Ты вообще ничего не считаешь
Ты даже не умеешь считать аналитически — исполнится твой тейк (или лосс) на конкретном баре или нет?
Ты просто придумываешь некую фишку, обвязываешь ее TP и SL, а потом моделируешь.
Это так не летает.
Заработаешь хотя бы $1 mio — заходи в гости, поболтаем (в оффлайне)
С уважением
Но кое что посчитать я все же могу. Например: Считается легко. Это не случится никогда.)
Спасибо за приглашение.)
1. Если финрез единичной сделки это будущее приращение цены, то это т.н. маркетная эквити (все ордера маркетные). В этом случае на коротком таймфрейме надо обязательно использовать комиссии. Более того, практически на всех рынках на ТФ 1m комиссия в деньгах практически равна СКО приращения цены (на бирже дураков нет), так что это суперважно. На старших ТФ удельный вес комиссии меньше, но и доходности оптимальных стратегий сильно проседают. Построение идеальной маркетной эквити с учетом комиссий на малых ТФ — это очень сложная задача, лично я научился решать ее только в 2024
2. Если мы работаем лимитными ордерами, то комиссий вроде нет (это не так — см. мой конкурс на 50000 руб. по расчету «скрытых» комиссий при работе лимитками). При этом сама формула для лимитной эквити занимает половину листа формата A4 (я тут пытался помочь одному форумчанину выписать ее явно — до финиша он не дошел вроде, хотя и очень старался), у нее есть 3 канонические формы, и они важны для разных сценариев оптимизации. Ну и вообще, для лимиток математика в высшей степени нетривиальна (даже просто потому, что мы учитываем в ценах не только Close, но High, Low, Close). Более того, если для простой маркетной эквити для заработка достаточно просто предсказывать знак будущего приращения цены (это не так, но для вводного разговора пойдет), то для лимитной эквити задача ее максимизации решается очень нетривиально даже при полностью известном будущем. В частности, знание знака приращения цены на следующем баре — это очень плохая стратегия, в разы проигрывающая оптимальной.
Как-то так
С уважением
P.S. Любая оптимальная стратегия (неважно, маркетная или лимитная) старается делать мало сделок. Много сделок = корм для брокера/биржи
Я пока использую эти ИИ как справочник — гораздо удобнее чем штудировать мануалы. Вот это их реальная ценность — статистически обрабатывать информацию. «Размышляют» они пока плохо.
1. При маркетном исполнении набежит большая комиссия
2. Лимитки (кроме меня) никто готовить не умеет (чистое IMHO)
3. Если лимитный ордер перевыставляется на каждом баре, то набегает огромное скрытое проскальзывание (ордер может тупо не исполняться несколько баров, а цена уходит), которое в среднем превышает комиссии при маркетном исполнении
И?
С уважением
Т.к. это приращение вычисляется от текущего Close, то прибавив ко Close некую Delta, получится прогнозирование не знака приращения, а значения приращаения — выше или ниже Delta.
Строя прогнозы для пары значений Delta, получаем прогноз интервала для значения приращения.
Но только не с «естественного языка», потому что это чревато неполнотой и неоднозначностью техзадания. И, соответственно, сюрпризами в результирующем коде.
Для постановщиков, понимающих чего они хотят, давно изобретён графический язык Unified Modeling Language (UML). Генераторы кода из UML были доступны ещё в Borland-Delphi, затем Microsoft-Visual.
Хотя кран гораздо мощнее.