Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3665

[Удален]  

Есть специализированные на временных рядах GPT, проблема в том, что большинство из них локальные. Требуется много ресурсов для тестов.

Но есть и с API. Ну либо ГигаЧат и иже с ними.

А, ну еще проблема в том, что на мак с arm чипом хрен установишь кастомные пакеты, без горечи.
[Удален]  

Интересно как работает контекст в случае API. Все сообщения (свои и нейронки) нужно сохранять и передавать заново в качестве контекста при каждом новом запросе.

Пришлось сделать класс типа такого:

class GigaChatDialog:
    def __init__(self):
        self.messages = []
        self.url = "https://gigachat.devices.sberbank.ru/api/v1/chat/completions"
        self.headers = {
            "Content-Type": "application/json",
            "Accept": "application/json",
            "Authorization": f"Bearer " + json.loads(token.text)["access_token"],
            "X-Session-ID": "my chat"
        }

    def send_message(self, user_message):
        # Добавляем сообщение пользователя в историю
        self.messages.append({
            "role": "user",
            "content": user_message
        })

        payload = {
            "model": "GigaChat",
            "messages": self.messages
        }

        response = requests.post(self.url, headers=self.headers, json=payload, verify=cert_path)
        
        if response.status_code == 200:
            # Получаем ответ ассистента
            assistant_response = response.json()['choices'][0]['message']['content']
            # Добавляем ответ ассистента в историю
            self.messages.append({
                "role": "assistant",
                "content": assistant_response
            })
            return assistant_response
        else:
            return f"Ошибка: {response.status_code}"

# Пример использования:
chat = GigaChatDialog()

И проверка:

response1 = chat.send_message("Лиса красивая")
print(response1)
response2 = chat.send_message("что я говорил тебе про лису, дословно?")
print(response2)

Ты уже отметил, что лиса красивая. Это действительно так! Лисы известны своим красивым мехом, пушистым хвостом и грациозным поведением. Они часто становятся персонажами сказок и легенд благодаря своей хитрости и уму.

Если у тебя есть другие воспоминания или истории, связанные с лисами, было бы интересно их услышать!
Я не сохраняю предыдущие сообщения пользователей, поэтому дословного текста твоих прошлых высказываний у меня нет. Однако ты точно упомянул, что лиса красивая. Могу помочь развить эту мысль или обсудить что-то другое!

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

[Удален]  

То есть оно не помнит контекст дословно внутри себя, а уже только в форме... даже не знаю как это называется. В форме общего эмбеддинга что ли.

А, ну понятно:

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

 

Теоретический вопрос. Пусть имеется некий трендовый актив. Вследствие трендовости имеется смысл делать выход по трейлинг-стопу.

Означает ли это, что есть смысл строить модель только как регрессию? То есть в качестве выхода Y использовать расстояние пройденное ценой до выхода.

А сведение к классификации (посредством фиксации уровня выхода) будет неким искажением сути ТС?

 
Aleksey Nikolayev #:

Теоретический вопрос. Пусть имеется некий трендовый актив. Вследствие трендовости имеется смысл делать выход по трейлинг-стопу.

Означает ли это, что есть смысл строить модель только как регрессию? То есть в качестве выхода Y использовать расстояние пройденное ценой до выхода.

А сведение к классификации (посредством фиксации уровня выхода) будет неким искажением сути ТС?

Будет искажением. Классификация запомнит сколько раз вы выиграли или проиграли, но не сколько в деньгах/пунктах.
Поэтому года 2-3 только регрессионные модели обучаю.
И поэтому же любители классификации, добиваясь ошибки в 20%, сливают в деньгах.
 
Forester #:
Будет искажением. Классификация запомнит сколько раз вы выиграли или проиграли, но не сколько в деньгах/пунктах.
Поэтому года 2-3 только регрессионные модели обучаю.
И поэтому же любители классификации, добиваясь ошибки в 20%, сливают в деньгах.


Это смотря ЧТО классифицировать. Сформулировать "учителя" - это не простая задача. Например, "учитель" просто  приращение, или учитель - приращение более некоторого числа  пунктов.Но и этого мало для качественного "учителя".

А вв регрессия другая засада, кстати одинаковая с классификацией - это ошибка прогноза в пунктах, которая делает неопределенным направление входа.

 
Forester #:
Будет искажением. Классификация запомнит сколько раз вы выиграли или проиграли, но не сколько в деньгах/пунктах.
Поэтому года 2-3 только регрессионные модели обучаю.
И поэтому же любители классификации, добиваясь ошибки в 20%, сливают в деньгах.
Тогда возникают технические вопросы. Например, делаем регрессию на деревьях. Если выходы - обычные приращения на свече, то для сплитов логично использовать LS, поскольку приращения имеют форму более-менее близкую к гауссовой. Если же делать регрессию для выходов - максимальных движений цены до срабатывания трейлинг-стопа, то их распределение совсем не гауссово (скорее экспоненциальное). Имхо, это требует смены правила сплита при построении дерева с LS на адекватное.
 
Aleksey Nikolayev #:
Тогда возникают технические вопросы. Например, делаем регрессию на деревьях. Если выходы - обычные приращения на свече, то для сплитов логично использовать LS, поскольку приращения имеют форму более-менее близкую к гауссовой. Если же делать регрессию для выходов - максимальных движений цены до срабатывания трейлинг-стопа, то их распределение совсем не гауссово (скорее экспоненциальное). Имхо, это требует смены правила сплита при построении дерева с LS на адекватное.

LS это что?
Форму распределений не анализирую. Просто тестирую разные идеи/варианты. Пока ничего стабильного не нашел.
По крайней мере я сразу вижу, что 50/50 в деньгах, а не 20/80 в штуках с неизвестным заполнением деньгами в каждой такой штуке.

 
Forester #:

LS это что?
Форму распределений не анализирую. Просто тестирую разные идеи/варианты. Пока ничего стабильного не нашел.
По крайней мере я сразу вижу, что 50/50 в деньгах, а не 20/80 в штуках.

LS - Least Squares, обычный минимум квадратов, который обычно стоит по умолчанию как метрика для сплитов при регрессии.

Ну, вопрос не о практике, а скорее о теории. Наверняка будут один-два очень длинных трендов, которые будут всё портить при использовании LS. Как выбросы, хотя по сути трендовой ТС это не выбросы.

 
Возможно, правильный вопрос звучит так: А можно ли вообще с помощью МО модели отлавливать редкие но длинные движения?