Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 891

 
elibrarius:
31 категория.. нет это скорее дискретизация с 31 шагом. В одной из статей Владимира это используется и результат не хуже.

Только если изначальные данные сами по себе хороши....

 
Mihail Marchukajtes:

Во первых зафиксируйте момент принятия решения. Пусть это будет какое то событие. Потом именно в этот момент когда событие произошло сохраните значения индикаторов.

Если честно не совсем понятна Ваша таблица. Что в ней???

Так какой смысл сохранять точное значение, а не некий паттерн - к примеру всем известный RSI, как у меня, если открылись выше уровня 70, то 1 , ниже уровня 30, то -1, а не то и не другое то 0.

В таблице набор правил с высокой оценкой, которые сформировались по результатам работы дерева. Я использую программу Deductor Studio - для новичков, коим я себя считаю, она весьма хороша, но из бесплатной версии трудно получить результаты анализа, поэтому я отфильтровал правила и выбрал лучшие, забив их в код руками.

Сегодня автоматизировал процесс, и обратил внимание на такое явление, что правило может быть не полным, если часть правила после фильтрации выборки даёт только одно значение предиктора (т.е. к примеру, если вообще у предиктора 2 позиции, а после фильтрации(применения части правил) осталась одна), в итоге получаем такой странный набор , пример на двух правилах:

с определенными правилами - зеленый цвет, любое значение - желтый цвет, не определено - красный цвет.

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

 
Aleksey Vyazmikin:

Так какой смысл сохранять точное значение, а не некий паттерн - к примеру всем известный RSI, как у меня, если открылись выше уровня 70, то 1 , ниже уровня 30, то -1, а не то и не другое то 0.

В таблице набор правил с высокой оценкой, которые сформировались по результатам работы дерева. Я использую программу Deductor Studio - для новичков, коим я себя считаю, она весьма хороша, но из бесплатной версии трудно получить результаты анализа, поэтому я отфильтровал правила и выбрал лучшие, забив их в код руками.

Сегодня автоматизировал процесс, и обратил внимание на такое явление, что правило может быть не полным, если часть правила после фильтрации выборки даёт только одно значение предиктора (т.е. к примеру, если вообще у предиктора 2 позиции, а после фильтрации(применения части правил) осталась одна), в итоге получаем такой странный набор , пример на двух правилах:

с определенными правилами - зеленый цвет, любое значение - желтый цвет, не определено - красный цвет.

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

Отвечу на основной Ваш вопрос. Когда РСИ больше 70, то у вас всего лишь одно значение 1 (единица), но для НС очень важно знать насколько выше 70 показывает РСИ. Если это 70.05 это одно, а если это 73, то совсем другое не говворя уж про 90, 80 или еще какая цыфра от 70 до 100. Именно в этих мелочах и пытается модель уцепится за ВАЖНОЕ...!!! Вообщем как то так. А назначая строго единиццу вы лишаете сеть важной для неё информации, ИМХО, естественно!!!

 

Знаете все здесь собравшиеся далеко не глупые люди, я бы даже сказал очень умны и логичны в своих рассуждениях. Программирование обязывает на логику. НО вот ведь какое дело.... Когда вы начинаете компоновать ТС вы опираетесь исключительно на свои логические умозаключения и все выводы Вы делаете исходя из своего опыта и фразы "Ну это же логично", что нужно сделать так то и так то. Но проведённые тесты показывают не состоятельность Ваших выводов и Вы не понимаете почему ,сцуко не работает. Ведь вы всё сделали логически правильно. НО выполнив какие либо действия логично, это не означает что это правильно. Тем самым многие становятся заложником своей логике, которая естественно правильная, но почему то не работает...... И совершаете одну и туже ошибку даже не подозревая что делаете её из раза в раз опираясь на свои ЛОГИЧЕСКИЕ умозаключения.

Как пример который я уже приводил: По логике чем больше модель тем она умнее...

Из практики: Средние модели работают лучше чем большие или маленькие. Это как пример...

Вы посчитали что назначить 1 если РСИ выше 70 это правильно, а для сети это не так. А вы такой, ну как же сеточка яж тебе облегчил работу, ну как ты не понимаешь? чтож ты у меня тупенькая такая? Но к сожалению она не сможет Вам ответить что ей этого мало. То что своей единицей Вы тупо убили всю важную информацию....Это тоже как пример...

А вообще область МО аллогична. Здесь логические умозаключения работают плохо. Здесь аллогичные выводы заходят на ура!!!!

 
Mihail Marchukajtes:

Отвечу на основной Ваш вопрос. Когда РСИ больше 70, то у вас всего лишь одно значение 1 (единица), но для НС очень важно знать насколько выше 70 показывает РСИ. Если это 70.05 это одно, а если это 73, то совсем другое не говворя уж про 90, 80 или еще какая цыфра от 70 до 100. Именно в этих мелочах и пытается модель уцепится за ВАЖНОЕ...!!! Вообщем как то так. А назначая строго единиццу вы лишаете сеть важной для неё информации, ИМХО, естественно!!!

Возможно Вы и правы, но я исхожу из таких соображений, если система без НС работает по таким правилам успешно, то что мешает понять и найти эти правила НС? Вчера я выкладывал скрины для сравнения. Вот пока задача у меня такая, что бы результат машинного обучения был лучше, нежели оптимизация и прописанная достаточно жесткая логика в ТС.

 
Aleksey Vyazmikin:

Возможно Вы и правы, но я исхожу из таких соображений, если система без НС работает по таким правилам успешно, то что мешает понять и найти эти правила НС? Вчера я выкладывал скрины для сравнения. Вот пока задача у меня такая, что бы результат машинного обучения был лучше, нежели оптимизация и прописанная достаточно жесткая логика в ТС.

Кинь в меня ссылкой где ты скрины выкладывал... гляну.... А по поводу правил, ты выдать подаёшь их ей не так. Ты думаешь что правильно её кормишь, а на самом деле она голодает из за не хватки инфы. вообщем вы друг друга недопонимаете. Ты не можешь ей объяснить конкретно что ты хочешь, она соотвественно выдает тебе результат так как его понимает сама. Хочешь я тебе помогу с твоей ТС. Исключительно в рамках рекомендаций....

Сначала скажи какая базовая ТС у тебя используется???

 
Mihail Marchukajtes:

Кинь в меня ссылкой где ты скрины выкладывал... гляну.... А по поводу правил, ты выдать подаёшь их ей не так. Ты думаешь что правильно её кормишь, а на самом деле она голодает из за не хватки инфы. вообщем вы друг друга недопонимаете. Ты не можешь ей объяснить конкретно что ты хочешь, она соотвественно выдает тебе результат так как его понимает сама. Хочешь я тебе помогу с твоей ТС. Исключительно в рамках рекомендаций....

Сначала скажи какая базовая ТС у тебя используется???

Вот ссылка https://www.mql5.com/ru/forum/86386/page889#comment_7378517

Про голод, я то как раз сейчас подумываю, что перекармливаю данными, раз по факту не все они идут на правила...

Интересная идея, что я не могу объяснить, что хочу, т.е. дело в неверных целевых?

А ТС, так базовая простая - черепашки на минутках. А остальное делают каскады фильтров, построенные исходя из моих наблюдений за рынком.

 
Aleksey Vyazmikin:

Вот ссылка https://www.mql5.com/ru/forum/86386/page889#comment_7378517

Про голод, я то как раз сейчас подумываю, что перекармливаю данными, раз по факту не все они идут на правила...

Интересная идея, что я не могу объяснить, что хочу, т.е. дело в неверных целевых?

А ТС, так базовая простая - черепашки на минутках. А остальное делают каскады фильтров, построенные исходя из моих наблюдений за рынком.

Черепашка на минутках сколько сигналов в день даёт????

Базовая ТС нужна лишь для момента принятия решения. Сформировался сигнал по базовой ТС. Всё начинаем анализировать рынок. Кинь скрин с сигналами от Базовой ТС???

 
Mihail Marchukajtes:

Черепашка на минутках сколько сигналов в день даёт????

Базовая ТС нужна лишь для момента принятия решения. Сформировался сигнал по базовой ТС. Всё начинаем анализировать рынок. Кинь скрин с сигналами от Базовой ТС???

Советник постоянно дорабатывается, поэтому, статистики нет особой - а так 8 сигналов было 8 мая, и 5 убыточных, но день в плюсе закрылся, для себя отметил, что вечерку перед праздниками лучше не торговать - проверю на истории - вечером был 1 глупый вход, которого можно было избежать, но который откусил 20% от дневного дохода.

Ну а торговая система у меня построена не стандартно, т.е. принятие решение на вход в рынок генерируется постоянно, в зависимости от положения цены в канале Дончиана, а дальше начинают работать фильтры, которые в итоге дают решение открывать позицию или нет. Вообще же, в идеале, мне нужно найти внешний фактор, который сможет их включать/переключать в разные моменты рынка. НС я только вот занялся, буквально на этой неделе, пока создаю окружение для работы, и особых работ по подбору предикторов не производил, но уже нашел интересные закономерности, которые и так использую в советнике.

 

Вот в общем то всё базовое условие на вход

      double HighD=Donchianf(0,0);
      double LowD=Donchianf(1,0);
      double PriceProc=0.0;

      if(HighD-LowD>0) PriceProc=((Open(0)-LowD)/(HighD-LowD))*100.0;
      else
        {
         SellNow=false;
         BuyNow=false;
        }

      priceBuy   =Open(0);
      priceSell  =Open(0);


      if(CountMarketOrder_OS==0 && CountMarketOrder_OB==0 && HighD>0 && LowD>0)
        {
         if(PriceProc<=ProcOpenBuy && PriceProc>50.0)BuyNow=true;
         if(PriceProc>=ProcOpenSell && PriceProc<50.0)SellNow=true;
        }
Причина обращения: