Любая причина какого-либо действия машины (НС) - чаще всего есть результат с наивысшим числом: в регрессии - это ожидание, когда покажет большой прогноз, в классификации - когда покажет большую вероятность.
И любое число в системе нейронов тем большее влияние оказывает на окончательное решение всей системы, чем больше его абсолютное значение, будь оно само по себе хоть положительным, хоть отрицательным. И задача системы - определить нужной силы связи между нейронами.
Но, так получается, что входные данные уже фактически несут в себе силовой фактор в лице своего количественного значения. Если на вход подаётся число 0.9, которое означает координату на плоскости или в пространстве, либо название оттенка цвета (что априори качественный, а не количественный признак), то оно изначально(!) уже(!) влияет на всю систему больше(!) остальных, хотя по факту - тупо ничего не значащее в количественном плане число, но его количественная характеристика априори влияет на систему, своими значениям обманывая(!) и вводя в заблуждение НС уже со старта. Ведь для НС с её количественными связями числа на входе - уже несут силовой фактор, фактор влияния на принятие решения.
В тоже время число 0.9, которое в исходном паттерне не отражает его силу, но по факту оказывая силу на НС, также негативно влияет на остальные числа, лежащие в диапазоне ниже данного числа — меньшие числа. И вес, который будет пытаться ослабить (занулить) входное значение 0.9, также будет ослаблять ещё(!) сильнее(!) и остальные значения в нижнем диапазоне данного входного числа (которые впоследствие могут быть более важными для работоспособности системы), ввиду своей статичности, ведь веса не меняются в обученной НС.
Данный вышеописанный фактор нигде не упоминается, не поднимается, не расписывается и не решается. По крайней мере я не видел какго-то подробного освещения проблематики.
Проблема: Если входные данные кодируют качественные признаки (например, категории, цвета) в виде чисел, сеть интерпретирует их как количественные, что может искажать семантику.
НС — это математическая модель, работающая с числами. Если данные не отражают «силу» признака в их числовом представлении, это искажает логику работы сети.
На форексе цена — это относительный паттерн, а не абсолютный сигнал.
Как пример: Цены закрытия [1.1000, 1.1050, 1.1025, 1.1070].
Проблема: Нормализация превращает их в [0.0, 0.5, 0.25, 0.7], создавая иллюзию иерархии.
В этой связи кажется разумным перейти от чисел к неким категориям, преобразовать числа в паттерн, который имеет ровно два состояния: [1] и [0]. Если паттерн есть, то 1, если нет, то 0. Если он есть, на вход подаётся 1, умноженное на вес. И вес в процессе обучения - соответсвенно подстаривается под "качество паттерна", формируя его объективную силу. Количество входных весов = количеству заданных паттернов.
А следующие слои/нейроны - уже учатся работать с ними.
Сами паттерны можно образовывать как отношение/положение цен относительно друг друга: первая и вторая, первая и третья, вторая и третья. Выше - 1, равна - 0, ниже -(1).
Можно пойти ещё глубже и для каждого состояния выделить отдельный вес и тогда если цена N выше соседа, то w1, если ниже, то w2, если равна, то w3.
Количество входов(весов) увеличится троекратно, но зато они будут отражать реальные объективные паттерны чистых цен.
И уже в процессе обучения НС будет самостоятельно занулять мусор/шум, если его найдёт.
Понимаешь в чем смысл: пока ты, в процессе медитаций/дата майнинга/танцев с бубном/обучения с разными признаками и метками/прочих оккультных практик, не найдешь какие-то значимые паттерны, которые работают, то все эти преобразования будут давать +- 10%, на уровне погрешности модели.
Но найти их, просто в результате перебора, тоже очень сложно.
В тоже время число 0.9, которое в исходном паттерне не отражает его силу, но по факту оказывая силу на НС, также негативно влияет на остальные числа, лежащие в диапазоне ниже данного числа — меньшие числа. И вес, который будет пытаться ослабить (занулить) входное значение 0.9, также будет ослаблять ещё(!) сильнее(!) и остальные значения в нижнем диапазоне данного входного числа (которые впоследствие могут быть более важными для работоспособности системы), ввиду своей статичности, ведь веса не меняются в обученной НС.
Интересная идея. И видимо имеет место быть. В свое время отказался от НС в пользу деревянных моделей, непонятки с нормализацией одна из них. Там все железно (деревянно) работает. Значения < 0,9 уходят в одну ветку, значения >= 0,9 в другую. А само значение 0,9 ни коим образом не влияет на дальнейшие действия с примерами этих 2-х ветках. Нормализация им не нужна, любые числа равнозначны: и 0,001 и 10000000 - это просто значения для сравнения. Так же дерево отлично обрабатывает категориальные фичи. Для них не через < или > идет разделение на ветки, а через ==. Например по цвету: все зеленое уйдет через равенство в одну ветку, а все красное в другую, а все остальное останется для дальнейшего разделения по веткам (другие категори и числа).
Впервые результат появился с множеством входов: подаю аж 160 штук. (Почему 160? Да просто остановился на этой цифре, без причины)
Обычно чем больше входов - тем хуже. А тут хорошо пошло.
Форвард EURUSD 2021-2024
Все форварды у меня похожи, но речь о том, что ранее я ковырялся в 1-2-3 входах, обычно (цены + индикаторы + ещё что-нибудь + собственноручное творческое извращение).
А тут сплошняком одни цены + метод определения входов и целевой по ТС:
Целевая - не следующая порядковая свеча или следующее порядковое показание.
Целевая - результат торговли, начиная с текущего времени.
То есть,
1) Берем любую стратегию. Дожидаемся ее срабатывания (открытия позиции). Записываем входной сет (любой). Мониторим позицию до закрытия, и записываем результат сделки, как целевую.
2) Обучаем любым методом.
3) Запускаем нашу (помоичную) стратегию
4) Добавляем к ней фильтр - нашу НС.
В результате, нам нужно приложить немного интеллектуальных, творческих усилий, терпения, времени, чтобы подобрать стратегию.
Остальное "докрутит" нейросеть.
Мы снимает с нейросети непосильный интеллектуальный труд попросту потому, что в текущих реалиях НС даже неспособна определить уровни, если их не разметить "самому".
И она будет заниматься тем, чем ей положено: шлифовать ТС.
И путём повышения порога регрессии на форварде тоже улучшаются входы. Обычно, в 99% случаев увеличение порога входа ничего не даёт и тупо уменьшает хорошие входы вместе с хаосом пропорционально, а тут именно качественные входы остаются, а шум уходит.
Модель BiLSTM (LSTM тоже самое даёт, разницы небольшой).
Я склонен называть это гипотезой
Постулат приводит к результату. А результата на форексе у заявляющего - нет.
Следовательно, всё, что они критикует в той статье - гипотеза.
Ну да ладно, пусть будет постулатом и пусть они знают, что такое НЕмусор, который, следуя логике - должен приносить прибыль.
Жаль, что в руках не покрутить этот чудо-МО-аппарат.
Ну да, скорее гипотеза.
Постулат это утверждение, которое принимается без доказательств.
А гипотеза это предположение, к которому должно быть применено доказательство или опровержение.
Доказательством или опровержением веры трейдера в сохранность закономерности служит кривая прибыли этого трейдера, рассмотренная за приличный срок.
А поскольку применяется доказательство или опровержение, то такая вера трейдера есть гипотеза с его стороны, а не постулат.
И если гипотеза доказана, то она превращается в установленный факт.
Ну так, чисто юридически. ))
Проблема чисел.
очень странная нормализация..обычно приводят чтобы без 0 (а желательно и без 1). И то и другое недостижимые пределы, с ними геморой и ошибки
и мне кажется вы что-то старое переотрываете, что-то типа Пирсона
Интересная идея. И видимо имеет место быть. В свое время отказался от НС в пользу деревянных моделей, непонятки с нормализацией одна из них.
Там все железно (деревянно) работает. Значения < 0,9 уходят в одну ветку, значения >= 0,9 в другую. А само значение 0,9 ни коим образом не влияет на дальнейшие действия с примерами этих 2-х ветках. Нормализация им не нужна, любые числа равнозначны: и 0,001 и 10000000 - это просто значения для сравнения.
Так же дерево отлично обрабатывает категориальные фичи. Для них не через < или > идет разделение на ветки, а через ==. Например по цвету: все зеленое уйдет через равенство в одну ветку, а все красное в другую, а все остальное останется для дальнейшего разделения по веткам (другие категори и числа).
Питоновские модели творят чудеса
Впервые результат появился с множеством входов: подаю аж 160 штук. (Почему 160? Да просто остановился на этой цифре, без причины)
Обычно чем больше входов - тем хуже. А тут хорошо пошло.
Форвард EURUSD 2021-2024
Все форварды у меня похожи, но речь о том, что ранее я ковырялся в 1-2-3 входах, обычно (цены + индикаторы + ещё что-нибудь + собственноручное творческое извращение).
А тут сплошняком одни цены + метод определения входов и целевой по ТС:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Что подать на вход нейросети? Ваши идеи...
Ivan Butko, 2025.02.08 10:25
Парадигма поиска:И путём повышения порога регрессии на форварде тоже улучшаются входы. Обычно, в 99% случаев увеличение порога входа ничего не даёт и тупо уменьшает хорошие входы вместе с хаосом пропорционально, а тут именно качественные входы остаются, а шум уходит.
Модель BiLSTM (LSTM тоже самое даёт, разницы небольшой).
А тут сплошняком одни цены + метод определения входов и целевой по ТС:
Т.е. просто цены без какого либо преобразования? Любопытно!
Питоновские модели творят чудеса
Это замечательно! Должен быть хоть иногда позитив от непосильных трудов!!!
Т.е. просто цены без какого либо преобразования? Любопытно!
Это замечательно! Должен быть хоть иногда позитив от непосильных трудов!!!
По привычке не добавляю: нормализация как обычно: весь сет (160 цен) приводится в диапазон -1...1
Какой период обучения? Цены закрытия давали? С какого TF? Тест на демо от MQ? Какое мат. ожидание на 1 лот?