Что подать на вход нейросети? Ваши идеи... - страница 78

 
Ivan Butko #:
Я склонен называть это гипотезой

Постулат приводит к результату. А результата на форексе у заявляющего - нет. 

Следовательно, всё, что они критикует в той статье - гипотеза. 


Ну да ладно, пусть будет постулатом и пусть они знают, что такое НЕмусор, который, следуя логике - должен приносить прибыль. 

Жаль, что в руках не покрутить этот чудо-МО-аппарат. 


Ну да, скорее гипотеза.

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

А гипотеза это предположение, к которому должно быть применено доказательство или опровержение.

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

А поскольку применяется доказательство или опровержение, то такая вера трейдера есть гипотеза с его стороны, а не постулат.

И если гипотеза доказана, то она превращается в установленный факт.

Ну так, чисто юридически. ))

 

Проблема чисел. 


Любая причина какого-либо действия машины (НС) - чаще всего есть результат с наивысшим числом: в регрессии - это ожидание, когда покажет большой прогноз, в классификации - когда покажет большую вероятность. 

И любое число в системе нейронов тем большее влияние оказывает на окончательное решение всей системы, чем больше его абсолютное значение, будь оно само по себе хоть положительным, хоть отрицательным. И задача системы - определить нужной силы связи между нейронами.

Но, так получается, что входные данные уже фактически несут в себе силовой фактор в лице своего количественного значения. Если на вход подаётся число 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. 
Количество входов(весов) увеличится троекратно, но зато они будут отражать реальные объективные паттерны чистых цен. 

И уже в процессе обучения НС будет самостоятельно занулять мусор/шум, если его найдёт. 

 
Ivan Butko #:
Как пример: Цены закрытия [1.1000, 1.1050, 1.1025, 1.1070].
Проблема: Нормализация превращает их в [0.0, 0.5, 0.25, 0.7], создавая иллюзию иерархии.

очень странная нормализация..обычно приводят чтобы без 0 (а желательно и без 1). И то и другое недостижимые пределы, с ними геморой и ошибки

и мне кажется вы что-то старое переотрываете, что-то типа Пирсона

[Удален]  
One hot encoding в руки, применяется для кодирования категориальных признаков. Либо Catboost, который самостоятельно их учитывает.
[Удален]  
Понимаешь в чем смысл: пока ты, в процессе медитаций/дата майнинга/танцев с бубном/обучения с разными признаками и метками/прочих оккультных практик, не найдешь какие-то значимые паттерны, которые работают, то все эти преобразования будут давать +- 10%, на уровне погрешности модели. 

Но найти их, просто в результате перебора, тоже очень сложно. 
 
Ivan Butko #:
В тоже время число 0.9, которое в исходном паттерне не отражает его силу, но по факту оказывая силу на НС, также негативно влияет на остальные числа, лежащие в диапазоне ниже данного числа — меньшие числа. И вес, который будет пытаться ослабить (занулить) входное значение 0.9, также будет ослаблять ещё(!) сильнее(!) и остальные значения в нижнем диапазоне данного входного числа (которые впоследствие могут быть более важными для работоспособности системы),  ввиду своей статичности, ведь веса не меняются в обученной НС.

Интересная идея. И видимо имеет место быть. В свое время отказался от НС в пользу деревянных моделей, непонятки с нормализацией одна из них.
Там все железно (деревянно) работает. Значения < 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

Парадигма поиска:

Целевая - не следующая порядковая свеча или следующее порядковое показание. 

Целевая - результат торговли, начиная с текущего времени. 

То есть, 

1) Берем любую стратегию. Дожидаемся ее срабатывания (открытия позиции). Записываем входной сет (любой). Мониторим позицию до закрытия, и записываем результат сделки, как целевую.

2) Обучаем любым методом. 

3) Запускаем нашу (помоичную) стратегию 

4) Добавляем к ней фильтр - нашу НС. 


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

Остальное "докрутит" нейросеть. 

Мы снимает с нейросети непосильный интеллектуальный труд попросту потому, что в текущих реалиях НС даже неспособна определить уровни, если их не разметить "самому".

И она будет заниматься тем, чем ей положено: шлифовать ТС. 



 И путём повышения порога регрессии на форварде тоже улучшаются входы. Обычно, в 99% случаев увеличение порога входа ничего не даёт и тупо уменьшает хорошие входы вместе с хаосом пропорционально, а тут именно качественные входы остаются, а шум уходит. 

Модель BiLSTM (LSTM тоже самое даёт, разницы небольшой). 

 
Ivan Butko #:
А тут сплошняком одни цены + метод определения входов и целевой по ТС:

Т.е. просто цены без какого либо преобразования? Любопытно!

Ivan Butko #:
Питоновские модели творят чудеса

Это замечательно! Должен быть хоть иногда позитив от непосильных трудов!!!

 
Aleksey Vyazmikin #:

Т.е. просто цены без какого либо преобразования? Любопытно!

Это замечательно! Должен быть хоть иногда позитив от непосильных трудов!!!

По привычке не добавляю: нормализация как обычно: весь сет (160 цен) приводится в диапазон -1...1
 
Ivan Butko #:
По привычке не добавляю: нормализация как обычно: весь сет (160 цен) приводится в диапазон -1...1

Какой период обучения? Цены закрытия давали? С какого TF? Тест на демо от MQ? Какое мат. ожидание на 1 лот?