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

 
Maxim Dmitrievsky:

да, почему не хорошие? МО это и есть оптимизация по сути, пока ИИ не изобрели

генетика тоже к МО относится

более того, есть довольно перспективное, гибридное направление - эволюционирующие нейросети NEAT.

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

не обязательно по макс прибыли, можно по R^2 как было недавно в статье предложено или еще как-нибудь, есть же кастомные критерии. Суть не в этом а в том что бы найти устойчивые зависимости через опт. Берется несколько опт. гиперпараметров, через которые перебираются целые модули, допустим набор фичей или еще что-то по опр. правилам.. если так понятнее ) потом выбираются лучшие прогоны и анализируются почему они лучшие и что такого интересного было найдено, и уже потом собирается система из намайненых вещей и после уже не оптимизируется

 
Ivan Negreshniy:

более того, есть довольно перспективное, гибридное направление - эволюционирующие нейросети NEAT.


опять что-то новое от вас, пойду к гуглу за помощью :)

 
Ivan Negreshniy:

более того, есть довольно перспективное, гибридное направление - эволюционирующие нейросети NEAT.

Благодарю.

Вы озвучили то, о чем я думал, но не мог оформить мысль, последние несколько месяцев.
 
Ivan Negreshniy:

NEAT

Тема сама по себе интересная, но проверку на форексе не прошла. Тут в теме были какие-то статьи про неё, даже пакет для R есть - https://github.com/ahunteruk/RNeat .
NEAT парой слов - веса нейронки подбираем генетическим алгоритмом вместо обычного обучения. 
Вот например алгоритм в действии, нейронка обучается играть в игру Mario https://www.youtube.com/watch?v=qv6UVOQ0F44

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

 
Petros Shatakhtsyan:

Тестирование на реальных тиков, это и есть реал тайм. И очень плохо что не пользуетесь с тестером.

Странно такое слышать, "реальных тиков" нет в тестере метатрейдера, они сгенерированные, в математическом смысле это что то похоже как открыться\закрыться на (O+H+L+C)/4 следующей свечи, перед которой возник сигнал.

 
Dr. Trader:

Минус этой биржи(bittrex) - у их апи нету функций для получения ohlc значений

Ну как же нет, есть. Просто у них почему то не документированно до сих пор апи 2.0, инфа где то в чигирях интернета((

Пример реквеста на свечи: bittrex.com/Api/v2.0/pub/market/GetTicks?marketName=BTC-ETH&tickInterval=day&_=1499127220008

Ну и свечи у них плохие, они их не со своего ордерлога делают а как то агрегируют от других источников, хаи лои могут быть намного сильнее чем на их чартах, писать тики в любом случае придётся
 
Алёша:

Ну как же нет, есть.

Действительно есть, спасибо.

 
Алёша:

Странно такое слышать, "реальных тиков" нет в тестере метатрейдера, они сгенерированные, в математическом смысле это что то похоже как открыться\закрыться на (O+H+L+C)/4 следующей свечи, перед которой возник сигнал.


 странно слышать про то что реальных тиков нет в тетере метатрейдера, чувствуется опт работы с платформой

 

Всем привет!!! Известный вопрос. КАК сделать чтобы ИИ проработал как можно дольше без переоптимизации???? Лично сам вижу два ответа.

1. Улучшение качества входов, тоесть найти такорй вход который будет ПРИЧИНОЙ для выхода. Задача крайне сложная и под час не выполнимая, потому как таких входов может не быть в природе в принципе.

2. Увеличить период обучения с должным уровнем качества модели. Вот этот подход думаю и разберём.....

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

Сначала обучаю сеть на 1000 записях. Как правило порядка 60% из них получат статус "Не знаю", далее строим модель второго уровня, где тренируем её исключительно на состояниях "Не знаю" и того во втором уровне из 600 записей порядка 300 будут не опредленны. Всё верно, братцы, используем бустинг. ТОбишь производит многократное дообучение сети. У меня получилось дойти до третьего уровня. Это позволило обучить модель на участке порядка трёх месяцев ТФ М15. Признаюсь процесс подготовки моделей занял более двух дней, ну и не мудрено если учесть что потребовалось построить 6 моделей сигналов+ 8 моделей отката, но всё это время тратится лишь для того чтобы увеличить работоспособность ТС хотя бы до одного месяца без переоптимизации и участия человека.

На этой картинке представлен период обучения ТС. Тест производился одним лотом, без возможности заходить отложками. То есть без модели ОТКАТ!

Обратите внимание на "Прибыльность". Она не должна быть заоблочной, от 2 до 5... в этих пределах. Так как высокий уровень этого показателя является признаком переобучения ИМХО. Когда НС выучила этот участок.

На следующей картинке я подключил модель отката. Тоесть при появлении сигнала анализируем будет ли откат и если "Да" то встаём отложкой, если "Нет" то входим по рынку. Здесь используется порядка четырёх вложений модель в модель и результат как видив значительно лучше по параметру "Прибыльность". Собственно данный метод и предназначен для того чтобы кривая баланса имела более плавный возрастающий вид.

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

Но мыто знаем что показатели на участке обучения мало чего значат и это так. НО я додумался и ответил на один очень важный вопрос "Как оценить качество обучения?", Как узнать насколько хорошо Ваша модель обобщает рынок и вообще, может ли она это делать??? Ответ оказался на поверхности и очень прост. Нужен ещё один тестовый интервал!!!!!! А вот какой?..... об этом в продолжении....