Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нет это не мое изобретение. Просто из нашего разговора я понимаю что уровень Вашего образования в этом направлении ниже плинтуса (без обид) :))
Уверен автор этого поста (Reshetov) не обладает столь обширными знаниями и навыками, чтобы написать то о чем он заявил, иначе бы он не писал бы это...
Надеюсь понятно изъясняюсь... :))
Ну, конечно же не обладаю! Всё это - плод моей бурной фантазии и буйной графомании.
Даже не надейтесь, изъясняетесь Вы более чем понятно.
Допилил R-Net. Теперь дополнительным условием остановки кластеризации является отсутствие противоречий в данном кластере. Т.е. если все обучающие примеры текущего кластера - система линейных уравнений, решением которой являются веса перцептрона, то противоречий больше нет и дальнейшая кластеризация бессмысленна.
Вот что получилось.
Идентифицируем птицу:
Получили правильный ответ сразу без всякой кластеризации по наличию клюва - x3 и оперения - x5, которые однозначно и отличают птицу от всех остальных объектов в обучающей выборке. До этого R-Net для идентификации той же самой птицы проводил двойную кластеризацию.
Идентифицируем муху:
Опять получили правильный ответ без кластеризации, т.к. муха однозначно отличается от всех остальных объектов отсутствие хвоста - переменная x2. Ранее для получения правильного ответа приходилось применять одну кластеризацию.
Идентифицируем самолет:
Практически ничего не изменилось по сравнению с идентификацией до усовершенствования R-Net, т.е. самолет можно точно идентифицировать, применив как минимум 1 этап кластеризации, т.е. однослойным перцептроном он не аппроксимируется.
Идентифицируем планер:
Кластеризация на сей раз не понадобилась. Аппроксимация обычным перцептроном прошла успешно.
Идентифицируем ракету:
Здесь все также как и прежде, без кластеризации.
Попробуем распознать биологические объекты, по признакам, отличающих их от механических:
Кластеризация в один этап. Ранее применялась двойная кластеризация.
Итак удалось довести R-Net до совершенства обучающей выборке с отсутствием противоречий.
Дальнейшие испытания на столь примитивных примерах можно завершить, т.к. здесь достигнут полный успех.
Теперь есть смысл заняться подготовкой ТС для чемпионата. Поскольку прогнозы - дело неблагодарное, а котировки - нестационарны, то на счет умопомрачительных успехов лучше даже не зарекаться.
Начнем с простой постановки задачи, а именно есть ли возможность пройти отбор советников на исторических данных? Т.е. если ТС не в состоянии сколь нибудь показать результаты даже на подгонке под историю, то этот этап не будет пройден и подавать заявку на участие нет никакого смысла.
ТС будет примитивной. А именно по сформировавшемуся бару на D1 она попытается полученной R-Net нейросетью вычислить следующее направление движения котировок до формирования следующего бара и открыть позицию в этом самом направлении.
Для тестирования возможностей R-Net возьмем прогнозирование прироста цены в % между от момента формирования текущего бара и до начала формирования следующего, т.е. на 1 бар по ценам открытия. В качестве входов будем подавать значения предыдущих приростов цены в % за разные периоды, т.е. от 1 до 62 баров. Итого получаем нейросеть с 62 входами. Испытательным полигоном будет EURUSD. Поскольку время существования Euro не столь велико - всего несколько тысяч дневных баров, то можно попытаться построить математическую модель всей доступной истории EURUSD.
Т.к. MQL5 я еще недостаточно изучил, то для выкачивания необходимой информации будет использоваться советник на MQL4.
Вот и код советника, который выкачивает из истории информацию для нашей задачи и выгружает ее в формате *.csv
Скормили нашу информацию R-Net и получили исходники математической модели - базы знаний дневных доходностей EURUSD в % за всю историю его существования. Всего 1113 строчек на C подобном языке.
Возможно, что котировки были битые или дырявые? Я не проверял. Для чемпионата можно будет достать данные из более достоверных источников. Сейчас не это важно, т.к. судя по разветвленности условных операторов, предсказуемость должна быть низкой, объемы противоречивых данных велики. Теперь нужно проверить расхождения между между данными выкачанными из истории и вычисленными по математической модели.
Делаем вот такую проверялку на Java:
Ниже добавляем функцию математической модели.
Получаем результаты (привожу здесь частично, т.к. строк слишком много, полная версия в прикрепленном архиве):
Первая столбец - реальные данные полученные из исторических.
Второй - вычисленные по математической модели.
Третий - абсолютная разница между реальными данными и вычисленными. Если строчка помечена пятью звездочками, то знак не совпал - линейно несепарабельно.
Как и ожидалось, чуда не произошло. Разница между реальными и вычисленными данными достаточно высокая. В некоторых случаях даже знак распознать не удалось. В общем, так и должно быть, ведь R-Net не пытается подогнать желаемое под действительное, а делает это только в тех случаях, когда отсутствуют противоречия в обучающей выборке.
Но, если присмотреться внимательно на строки с ошибками, то можно заметить, что там где они присутствуют вычисленное значение пренебрежительно мало, т.е. порядка одной стотысячной или даже менее. Т.е. там, где в обучающей выборке имели место противоречивые данные, значение на выходе сильно умалено. Если из процентов перевести в пипсы, то получим, что в этих местах, т.е. где следует сидеть на заборе и курить бамбук, изменение котировок менее одного пункта.
Отсюда сам собой напрашивается алгоритм советника:
1. Проверяем наличие открытой позиции по инструменту.
2. Если такая есть, то пытаемся "спрогнозировать" следующее изменение цены. Если нет, то п. 4
3. Если результат прогноза менее 1 пипса или прогнозируемое направление позиции не совпадает с текущим, то открытую позицию необходимо закрыть.
4. Смотрим прогноз на следующий бар. Если его значение превышает спред, то открываем позицию согласно этому самому прогнозу.
Следовательно, ответ на вопрос о возможности участия в чемпионате, а также о создании советника, который пройдет предварительный отбор на исторических данных, является положительным.
Время на изучение MQL5, создание советника и даже на его тестирование на демо до 22 сентября еще более чем предостаточно.
Делаем вот такую проверялку на Java:
У вас коде 63 почти одинаковых строки в целях оптимизации? Цикл развернули?