Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Доработал советник так, чтобы он из торговых сигналов вычислял вероятность для будущей короткой позы. Соответственно если вероятность более 0.5 - открываем короткую, а иначе длинную.
Сделал тейки и лоси фиксированными, т.е. более не переворачивается по сигналам. Это нужно для того, чтобы можно было прикрутить ММ.
Получается такая картинка: первые 136 сделок - оптимизация, остальное OOS.
Поскольку данный топик трейдерам не интересен, а сюда сбегаются лишь флудерасты для обсуждения личности топикстатера, то модифицированный код советника не прилагаю.
Юрий, не слушайте вы их. Выложите, пожалуйста, модифицированный советник.
Будет статья, будет и советник. Посмотрим что к чему... С некоторым опытом и тестов ненадо, что бы оценить идею. Подождем.
Будет статья, будет и советник. Посмотрим что к чему... С некоторым опытом и тестов ненадо, что бы оценить идею. Подождем.
Советник выкладываю до статьи, дабы его могли протестировать все желающие и высказаться (хотя не исключено, что скорее всего опять начнут обсуждать мою личность?).
Суть даже не в советнике, а в алгоритме антиподгонки, который я в него добавил.
Теперь успешные форвардные тесты не надо долго искать и зарываться вглубь результатов тестирования, а нужно пройтись по верхним строчкам результатов, там они где-то должны быть, вполне не исключено, что и в самой верхней строке.
Результаты тестов и результаты оптимизации могут сильно отличаться, т.к. антиподгонка включается только во время оптимизации, а в остальное время отключается.
Вот график верхней строчки результатов тестирования (первые 404 сделки - оптимизация, остальное форвардный тест):
Советник прилагается в прикрепленном файле, (до публикации статьи он скомпилированный, в статье открою его код).
Входные параметры:
x0, x1, x2, x3, x4, x5, x6, x7 - настраиваются от 0 до 100 с шагом 1. Оптимизируются.
sl - стоплосс и тейк в пунктах. Например, для EURUSD на H1 для пятизнака можно взять от 100 до 1000 с шагом 50 (для четырехзнака у всех чисел убрать один нолик). Оптимизируется.
lots - объем в лотах, для оптимизации нужно ставить не менее 1 лота. Не оптимизируется.
mn - магический номер. Не оптимизируется.
d - количество знаков после запятой в размере лота. Т.е. если разрешено 0.01, то выставляем d = 2. Не оптимизируется.
Оптимизация по профитфактору, сортировка результатов оптимизации тоже по этому параметру.
На всякий случай в ZIP архиве выкладываю файл с настройками советника, как они у меня выставлены.
Интересный результат!
Юра, в анализе используются данные инструмента на который накинут советник?
Интересный результат!
Юра, в анализе используются данные инструмента на который накинут советник?
Да, т.е. другие инструменты не анализируются. ТА проводится только по ценам открытия.
В принципе, входы не такие уж и мудреные, т.ч. могу показать куски кода, где все это хозяйство вычисляется:
Спасибо.
Антиподгонка... Если повспоминать классику НС, то антиподгонка сводится к поиску минимума ошибки предсказания на форварде. Реализовать это можно набирая статистику по сотне-другой независимых прогонов с переобучением НС на каждом. Это понятно, но очень трудно реализуемо из-за конечной длины исходного ВР и его нестационарности.
Другой способ, это получить оценку на оптимальную длину обучающей выборки. Насколько я знаю, эту задачу в общем виде никто пока не решил...
Тебе это удалось?
Другой способ, это получить оценку на оптимальную длину обучающей выборки. Насколько я знаю, эту задачу в общем виде никто пока не решил...
Да не надо ее решать. Достаточно для конкретного случая найти достаточную длину обучающей выборки, делается это очень просто.
Да, и это не антиподгонка. Это подгонка второго уровня. Для подгонки n-го уровня должно быть n+1 выборок для тестирования, последняя контрольная.
Вот именно последней у Решетова никогда нет.
Как же - просто!
На каждую точку кривульки нужно набрать статистику. А где брать, если ценовой ряд уже через месяц полностью меняет свои характеристики?
Нет, ничего не понятно.
В Юрином случае обучение НС происходит путём простого перебора весов на заданном мной участке истории... так? Если так, то анализируется просто результат торгов на каждой итерации. И утверждение: "...Теперь успешные форвардные тесты не надо долго искать и зарываться вглубь результатов тестирования, а нужно пройтись по верхним строчкам результатов, там они где-то должны быть, вполне не исключено, что и в самой верхней строке...", неверно - успешные форварды могут быть где угодно и искать придётся везде.
Спасибо.
Антиподгонка... Если повспоминать классику НС, то антиподгонка сводится к поиску минимума ошибки предсказания на форварде. Реализовать это можно набирая статистику по сотне-другой независимых прогонов с переобучением НС на каждом. Это понятно, но очень трудно реализуемо из-за конечной длины исходного ВР и его нестационарности.
Другой способ, это получить оценку на оптимальную длину обучающей выборки. Насколько я знаю, эту задачу в общем виде никто пока не решил...
Тебе это удалось?
Что касается торговых систем, то тут возможна только подгонка под историю. В нейронных сетях сразу две гадости: подгонка и переобучение. Причем переобучение происходит и на стационарных данных.
Но с нейронными сетями, при адекватных входах немного проще, когда мы имеем дело с каким нибудь нейросетевым пакетом или с самопальной сеткой, если пользоваться методом, который озвучивал Леонид Величковский: делим обучающие примеры на две выборки: обучающую и тестовую и в процессе обучения вычисляем результаты по обоим выборкам, а обучаем сетку только по обучающей. Как только на тестовой выборке улучшение результатов застопорится, т.е. не будет дальше улучшаться, значит сеть обучена достаточно и на этом следует остановиться. Т.е. таким макаром, получаем сетку обученную наиболее адекватно - лучше уже не получится, хуже запросто. На сколько именно сеть переобучена или подогнана нас в данном случае не шибко волнует, т.к. мы имеем экстремум по тестовой выборке.
С генетическим алгоритмом, встроенным в терминал намного сложнее, т.к. мы не можем вычислять результаты на форвардных участках и вовремя остановить оптимизацию. Из-за этого приходится искать форварды в отсортированных по показателям результатах оптимизации вручную.
Я пошел немного другим путем:
1. Выяснил причину переобучения нейросетки и устранил ее. Т.е. если обучающие примеры стационарны и не содержат противоречий, то мой алгоритм не переобучается, но может запросто недообучиться, если количество примеров недостаточно для интерполяции.
2. С подгонкой было сложнее. Но проблема тоже оказалась разрешимой, т.к. подгонка в основном зависит от качества обучения, т.е. адекватности системы поощрений и наказаний, а иначе алгоритм пойдет по пути наименьшего сопротивления и будет обучаться так, как ему проще, а не так, как на самом деле адекватно. Вот я и ему эти самые пути наименьшего сопротивления устранил, т.е. заставил генетический алгоритм оценивать по качеству вычисления вероятностей исходов, а не по количеству пипсов.
3. Нестационарность. Ее побороть вообще не удалось, т.к. она зависит только от рынка, а не от алгоритма. Это единственное, что является реальной помехой для качества прогнозов. Но ее влияние, если устранить остальные недостатки обучения, уже не настолько велико, чтобы мешать зарабатывать.