Rorschach #: "Ключевая идея проста: обучаем обычную модель машинного обучения, а затем извлекаем из неё математическую формулу. Мы используем полиномиальную регрессию с Ridge-регуляризацией для прогнозирования цены и логистическую регрессию для направления. Затем SymPy превращает коэффициенты в уравнения."
Ну символьная регрессия. Дальше я бы опасался читать такие статьи (опасно для мозга)
самое полезное - просто узнать, что существует символьная регрессия :))
Aleksey Nikolayev #: Попросил написать скрипт с максимально полной проверкой допуска к торговле. Показалось что результат заметно основан на примерах из книги Короткого.
Клауде 4.5 тоже что-то там может. Просил нарисовать на канвасе простую панельку. Почти что справился.
Фишка разметки в том, что она не look ahead, то есть без заглядывания в будущее. Например, сигналы с помощью любого осциллятора (перекупленность/перепроданность). Потом обобщение.
Поэтому ошибки моделей маленькие, ведь они аппроксимируют индикатор по сути. Но не для всех пар можно подобрать такой магический осциллятор.
Попытка более подробного описания что было сделано:
В статье описывается подход к разметке сделок с помощью осцилляторов для моделей машинного обучения. Это позволяет избавиться от look ahead bias. Показано, что такая разметка не приводит к переобучению моделей, а стратегии продолжают работать продолжительное время.
Какой эффект может дать "усиление" высокочастотных компонент во временном ряду перед разметкой и обучением, кто-нибудь задумывался? В плане как это будет влиять на саму модель и ее обобщающие св-ва.
Обычно делают наоборот - сглаживают ряд.
Простой пример:
def amplify_high_freq(df: pd.DataFrame, long_period: int = 100, amplification_factor: float = 2.0) -> pd.DataFrame:
"""
Усиливает высокочастотные компоненты в столбце 'close'
путем добавления к цене усиленных остатков от долгосрочного EMA.
:param df: Исходный DataFrame с ценами (индекс - время, столбец - 'close').
:param long_period: Период для долгосрочного EMA (низкочастотный компонент).
:param amplification_factor: Коэффициент усиления высокочастотных остатков (k > 1).
:return: DataFrame с новым столбцом 'close_amplified'.
"""if'close'notin df.columns:
raise ValueError("DataFrame должен содержать столбец 'close'.")
# 1. Вычисление низкочастотной компоненты (долгосрочное сглаживание)# Используем EMA, так как оно лучше отслеживает тренд, чем SMA.
df['EMA_long'] = df['close'].ewm(span=long_period, adjust=False).mean()
# 2. Выделение высокочастотной компоненты (Остатки)# Остаток = Цена - Тренд
df['High_Freq_Component'] = df['close'] - df['EMA_long']
# 3. Применение коэффициента усиления и создание нового ряда# P_amplified = P + k * (P - EMA_long)
df['close_amplified'] = df['close'] + amplification_factor * df['High_Freq_Component']
# Удаляем временные столбцы для чистотыreturn df.drop(columns=['EMA_long', 'High_Freq_Component']).dropna()
До и после амплификации:
Можно усиливать разные компоненты и посмотреть как это влияет на обучение. Можно не через МА.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
"Ключевая идея проста: обучаем обычную модель машинного обучения, а затем извлекаем из неё математическую формулу. Мы используем полиномиальную регрессию с Ridge-регуляризацией для прогнозирования цены и логистическую регрессию для направления. Затем SymPy превращает коэффициенты в уравнения."
Ну символьная регрессия. Дальше я бы опасался читать такие статьи (опасно для мозга)
самое полезное - просто узнать, что существует символьная регрессия :))
Похоже, Gemini 3 обучали на mql5.com - наверно впервые ИИ выдал код, который сразу откомпилировался и запустился без ошибок.
input bool getprofit = true? :)
https://xbox-dns.ru/ для более приятного использования
input bool getprofit = true? :)
if(getprofit) {MessageBox("BABLO?", "BABLO?"); Alert("BABLO!");}
https://xbox-dns.ru/ для более приятного использования
input bool getprofit = true? :)
if(getprofit) {MessageBox("BABLO?", "BABLO?"); Alert("BABLO!");}
Попросил написать скрипт с максимально полной проверкой допуска к торговле. Показалось что результат заметно основан на примерах из книги Короткого.
if(load_profit) {MessageBox("BABLO?", "BABLO?"); Alert("BABLO!");}
Спасибо, попробую прикрутить к своему линуксу.казалось бы, все просто
а ведь нет, не помогает ;)
Фишка разметки в том, что она не look ahead, то есть без заглядывания в будущее. Например, сигналы с помощью любого осциллятора (перекупленность/перепроданность). Потом обобщение.
Поэтому ошибки моделей маленькие, ведь они аппроксимируют индикатор по сути. Но не для всех пар можно подобрать такой магический осциллятор.
Попытка более подробного описания что было сделано:
https://www.mql5.com/ru/articles/20343
Какой эффект может дать "усиление" высокочастотных компонент во временном ряду перед разметкой и обучением, кто-нибудь задумывался? В плане как это будет влиять на саму модель и ее обобщающие св-ва.
Обычно делают наоборот - сглаживают ряд.
Простой пример:
До и после амплификации:
Можно усиливать разные компоненты и посмотреть как это влияет на обучение. Можно не через МА.