Я изменил входной параметр "bodyPer". Вместо того чтобы загружать просто относительную длину тела, я вычисляю это значение: bodyPer=0,5+((close-open)/p100)/2;
Таким образом, помимо относительной длины, переменная также фиксирует направление свечи. Это освобождает слот для 4-й переменной, я полагаю.
Я анализирую твой код, чтобы адаптировать его к своей стратегии, и пока могу сказать, что твой DNN просто великолепен! Спасибо, что поделились.
У меня только один вопрос: я не понимаю, как можно использовать "yValues[2]>0.6" в любой ситуации. После нескольких попыток с разными активами ни одна сделка не была закрыта из-за этого условия. Правильно ли это?
Спасибо!
Best, Alexandre
В этом форуме, пожалуйста, комментируйте на португальском языке. Используйте инструмент автоматического перевода или комментируйте на одном из форумов на другом языке.
Странное поведение при любом изменении переменной trend, результаты обучения всегда разные, почему?
В коде логическая ошибка!
double trend=0; // также при trend=100 результаты много лучше и больше количество точек оптимизаций!?
if(uod>0)
{
highPer=high-close;
lowPer=open-low;
bodyPer=close-open;
trend=1;
}
else
{
highPer=high-open;
lowPer=close-low;
bodyPer=open-close;
trend=-1; // стоял ноль!
}
Nikolai Kalinin #: Странное поведение при любом изменении переменной trend, результаты обучения всегда разные, почему?
В коде логическая ошибка!
Специфика функции активации.
Чем больше слоёв, тем больше затухание - значения будут ближе к 0.
Смещение немного исправляет эту проблему.
Поэтому, когда порог установлен в 0.6, то большинство возможных сетов откидываются. А если вы на вход подаёте какое-то огромное число или несколько больших чисел, то и при прямом проходе до конца нейросети дойдёт больше возможных значений.
А чем больше значений дойдёт или пересечёт границу порога - тем больше позиций, либо больше возможностей подогнать (запомнить путь) график цены под нейронку.
Чем больше слоёв, тем больше затухание - значения будут ближе к 0.
Смещение немного исправляет эту проблему.
Поэтому, когда порог установлен в 0.6, то большинство возможных сетов откидываются. А если вы на вход подаёте какое-то огромное число или несколько больших чисел, то и при прямом проходе до конца нейросети дойдёт больше возможных значений.
А чем больше значений дойдёт или пересечёт границу порога - тем больше позиций, либо больше возможностей подогнать (запомнить путь) график цены под нейронку.
Так или иначе, результаты обучения всегда очень непостоянны, при любых типах оптимизации, что вызывает определённые сомнения в применимости для реальной торговли - всегда будут существовать лучшие параметры весов в пересортировке комбинаций. Чем объяснить эту особенность работы этой НС?
Так или иначе, результаты обучения всегда очень непостоянны, при любых типах оптимизации, что вызывает определённые сомнения в применимости для реальной торговли - всегда будут существовать лучшие параметры весов в пересортировке комбинаций. Чем объяснить эту особенность работы этой НС?
Вы придаёте этой НС много значения, на самом деле все НС и всё, что связано с МО, в общем - везде, где есть умножения чисел на числа и сумматор в функции активации - всё это будет подгонкой под график. Совершенно нестабильная система.
Более того, ценообразование - это нестационарный процесс. Каждый раз новые данные, а если разделить график на паттерны, то на истории они будут стремиться к отработке 50 на 50.
НС - это к стационарным системам, повторяющимся.
А на форексе и тд нужны более продвинутые, интеллектуальные системы. Что-то вроде нескольких НС, как-то связанных между собой, каким-то волшебным образом адаптирующихся к изменению статистики паттернов и тд.
НС сама по себе - это запоминание пути цены, либо усреднение результатов, если количество новых данных больше, чем возможных комбинаций чисел, полученных при перемножении (или проще говоря - простейших архитектур НС с двумя-тремя входами).
В ней интересно копаться, строить архитектуры, прибавлять нейроны и слои. Но, она совершенно бестолковая, не лучше пересечения машек.
Вы придаёте этой НС много значения, на самом деле все НС и всё, что связано с МО, в общем - везде, где есть умножения чисел на числа и сумматор в функции активации - всё это будет подгонкой под график. Совершенно нестабильная система.
Более того, ценообразование - это нестационарный процесс. Каждый раз новые данные, а если разделить график на паттерны, то на истории они будут стремиться к отработке 50 на 50.
НС - это к стационарным системам, повторяющимся.
А на форексе и тд нужны более продвинутые, интеллектуальные системы. Что-то вроде нескольких НС, как-то связанных между собой, каким-то волшебным образом адаптирующихся к изменению статистики паттернов и тд.
НС сама по себе - это запоминание пути цены, либо усреднение результатов, если количество новых данных больше, чем возможных комбинаций чисел, полученных при перемножении (или проще говоря - простейших архитектур НС с двумя-тремя входами).
В ней интересно копаться, строить архитектуры, прибавлять нейроны и слои. Но, она совершенно бестолковая, не лучше пересечения машек.
Иван, Благодарю за разъяснения. Любая статистика имеет свойство повторятся. В принципе если используется интегральный показатель при оптимизации (обучении) НС, то видно по точкам как и когда наступает переход от не знания к знанию - как лучше ей торговать. О поисках значимой переменной отдельный разговор. Вам удалось решить проблему с масштабированием входов более 4х?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Я изменил входной параметр "bodyPer". Вместо того чтобы загружать просто относительную длину тела, я вычисляю это значение: bodyPer=0,5+((close-open)/p100)/2;
Таким образом, помимо относительной длины, переменная также фиксирует направление свечи. Это освобождает слот для 4-й переменной, я полагаю.
int error=CandlePatterns(rates[0].high,rates[0].low,rates[0].open,rates[0].close,rates[0].close-rates[0].open,_xValues);
Тут передаются данные ещё не сформировавшейся свечи. Ведь в реале на открытие свечи все параметры будут одинаковые. Все будут = rates[0].open
int error=CandlePatterns(rates[0].high,rates[0].low,rates[0].open,rates[0].close,rates[0].close-rates[0].open,_xValues);
Тут передаются данные ещё не сформировавшейся свечи. Ведь в реале на открытие свечи все параметры будут одинаковые. Все будут = rates[0].open
Неверно!
Здесь копирование происходит не с нулевого бара, а с первого, поэтому здесь:
CandlePatterns(rates[0].high,rates[0].low,rates[0].open,rates[0].close,rates[0].close-rates[0].open,_xValues);
будут значения прошлого бара...
А вот копировать 5 баров, думаю, совсем необязательно, достаточно будет скопировать 1 прошлый бар так:
Привет, Энди, вы проделали отличную работу!!!
Я анализирую твой код, чтобы адаптировать его к своей стратегии, и пока могу сказать, что твой DNN просто великолепен! Спасибо, что поделились.
У меня только один вопрос: я не понимаю, как можно использовать "yValues[2]>0.6" в любой ситуации. После нескольких попыток с разными активами ни одна сделка не была закрыта из-за этого условия. Правильно ли это?
Спасибо!
Best,
Alexandre
В этом форуме, пожалуйста, комментируйте на португальском языке. Используйте инструмент автоматического перевода или комментируйте на одном из форумов на другом языке.
В коде логическая ошибка!
Странное поведение при любом изменении переменной trend, результаты обучения всегда разные, почему?
В коде логическая ошибка!
Специфика функции активации.
А чем больше значений дойдёт или пересечёт границу порога - тем больше позиций, либо больше возможностей подогнать (запомнить путь) график цены под нейронку.Чем больше слоёв, тем больше затухание - значения будут ближе к 0.
Смещение немного исправляет эту проблему.
Поэтому, когда порог установлен в 0.6, то большинство возможных сетов откидываются. А если вы на вход подаёте какое-то огромное число или несколько больших чисел, то и при прямом проходе до конца нейросети дойдёт больше возможных значений.
Специфика функции активации.
А чем больше значений дойдёт или пересечёт границу порога - тем больше позиций, либо больше возможностей подогнать (запомнить путь) график цены под нейронку.Чем больше слоёв, тем больше затухание - значения будут ближе к 0.
Смещение немного исправляет эту проблему.
Поэтому, когда порог установлен в 0.6, то большинство возможных сетов откидываются. А если вы на вход подаёте какое-то огромное число или несколько больших чисел, то и при прямом проходе до конца нейросети дойдёт больше возможных значений.
Так или иначе, результаты обучения всегда очень непостоянны, при любых типах оптимизации, что вызывает определённые сомнения в применимости для реальной торговли - всегда будут существовать лучшие параметры весов в пересортировке комбинаций. Чем объяснить эту особенность работы этой НС?
Так или иначе, результаты обучения всегда очень непостоянны, при любых типах оптимизации, что вызывает определённые сомнения в применимости для реальной торговли - всегда будут существовать лучшие параметры весов в пересортировке комбинаций. Чем объяснить эту особенность работы этой НС?
Вы придаёте этой НС много значения, на самом деле все НС и всё, что связано с МО, в общем - везде, где есть умножения чисел на числа и сумматор в функции активации - всё это будет подгонкой под график. Совершенно нестабильная система.
В ней интересно копаться, строить архитектуры, прибавлять нейроны и слои. Но, она совершенно бестолковая, не лучше пересечения машек.Более того, ценообразование - это нестационарный процесс. Каждый раз новые данные, а если разделить график на паттерны, то на истории они будут стремиться к отработке 50 на 50.
НС - это к стационарным системам, повторяющимся.
А на форексе и тд нужны более продвинутые, интеллектуальные системы. Что-то вроде нескольких НС, как-то связанных между собой, каким-то волшебным образом адаптирующихся к изменению статистики паттернов и тд.
НС сама по себе - это запоминание пути цены, либо усреднение результатов, если количество новых данных больше, чем возможных комбинаций чисел, полученных при перемножении (или проще говоря - простейших архитектур НС с двумя-тремя входами).
Вы придаёте этой НС много значения, на самом деле все НС и всё, что связано с МО, в общем - везде, где есть умножения чисел на числа и сумматор в функции активации - всё это будет подгонкой под график. Совершенно нестабильная система.
В ней интересно копаться, строить архитектуры, прибавлять нейроны и слои. Но, она совершенно бестолковая, не лучше пересечения машек.Более того, ценообразование - это нестационарный процесс. Каждый раз новые данные, а если разделить график на паттерны, то на истории они будут стремиться к отработке 50 на 50.
НС - это к стационарным системам, повторяющимся.
А на форексе и тд нужны более продвинутые, интеллектуальные системы. Что-то вроде нескольких НС, как-то связанных между собой, каким-то волшебным образом адаптирующихся к изменению статистики паттернов и тд.
НС сама по себе - это запоминание пути цены, либо усреднение результатов, если количество новых данных больше, чем возможных комбинаций чисел, полученных при перемножении (или проще говоря - простейших архитектур НС с двумя-тремя входами).
Иван, Благодарю за разъяснения. Любая статистика имеет свойство повторятся. В принципе если используется интегральный показатель при оптимизации (обучении) НС, то видно по точкам как и когда наступает переход от не знания к знанию - как лучше ей торговать. О поисках значимой переменной отдельный разговор. Вам удалось решить проблему с масштабированием входов более 4х?