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

 
mytarmailS:

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

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

Хорошо, я сделаю маленькую выборку.

mytarmailS:

Ну рас не знаете ОХЛК то и писать его не надо, зачем смещать весь ОХЛК ? так никто не делает, нужно просто сместить ЗЗ на шаг, как бы заглядывать в будущее на 1 шаг для обучения и все. Вы читали хоть одну статью Владимира Перервенко про дир лернинг?  Почитайте пожалуйста.  Это очень не удобно когда  есть уже устоявшийся оптимальные действия с данными и все к ним привыкли , а кто то пытается делать то же самое но по своему, по другому, это как бы и бессмысленно и раздражает и причина многих ошибок у людей которые пытаются работать с данными такого автора.

Статьи я его читал, но код R я не понимаю - поэтому всего там реально понять не в силах.

Вот и спрошу у Вас, раз вы разобрались в данном вопросе. Классификация происходит на нулевом баре, когда известна только цена открытия, как я понял, Вы не используете цену открытия с нулевого бара, а используете только информацию с 1 бара и более поздних? Фактически целевая определяет вектор ZZ на нулевом баре? У меня получается, что предсказывался вектор следующего бара - это не существенно же? А то опять кучу переделок нужно делать - утомляет.

Просто у меня готовое решение для снятия данных и применения модели, а не расчетная модель.

mytarmailS:

Если после всего этого еще хотите что то делать то у меня такие требования

1) данные 50-60к не больше , лучше одним файлом, просто договоримся что n последних свечей будет тест

2) данные желательно без склеек , так как можно учитывать не только последние цены, еще и поддержки и сопротивления, с склейками это невозможно

3) целевая уже должна быть включена в данные

4) данные в формате date,time,o,h,l,c, target


Или мне сделать датасет ?

Требовать можно с тех, кто взял на себя обязательства - т.е. не с меня :) Давайте договариваться.

1. Давайте для обучения 50 и для теста (выборка вне обучения) ещё 50.

2. Хорошо.

3. Хорошо.

4. Хорошо.

Добавлено: Понял, что во фьючерсе Si-3.20 недостаточно нормальных баров (22793), а склейку Вы не хотите.


Добавил выборку по сберу - у меня аккураси 67 полуился.

Файлы:
Setup.zip  891 kb
 
Aleksey Vyazmikin:

Вот и спрошу у Вас, раз вы разобрались в данном вопросе. Классификация происходит на нулевом баре, когда известна только цена открытия, как я понял, Вы не используете цену открытия с нулевого бара, а используете только информацию с 1 бара и более поздних? Фактически целевая определяет вектор ZZ на нулевом баре? У меня получается, что предсказывался вектор следующего бара - это не существенно же? А то опять кучу переделок нужно делать - утомляет.

Классификация происходит на последнем баре на котором известный клоуз (те полноценная ОХЛС свеча ), предсказываем знак ЗЗ будущей свечи . Зачем учитывать свечу по которой известный только опен я понять не могу, в чем преимущество кроме усложнения ?  как в понимании так и в реализации, а если понять что опен[i] почти всегда равен клоузу[i-1] , то у меня только одни знаки вопроса к этому подходу


Aleksey Vyazmikin:

Требовать можно с тех, кто взял на себя обязательства - т.е. не с меня :) Давайте договариваться.

Да я от вас лично ничего не требую, что вы)) Требование к выборке, выборка должна быть одинакова для всех, чтобы что то можно было сравнивать верно же? по моему очевидно.


И спасибо что слушаете меня )

1) данные 50-60к не больше , лучше одним файлом.........

Давайте для обучения 50 и для теста (выборка вне обучения) ещё 50.

я же цифры 50-60к от балды наверное назвал, почему бы не увеличить в 2 раза ? )))

)))

1) данные 50-60к не больше , лучше одним файлом, просто договоримся

И за то что залали одним файлом а не двумя тоже спасибо ! ))
 

Попробовал первым наскоком, так сказать из коробки...

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

признаков 217 , точно есть избыточные но чистить лень

тренировал и валидировал на файле OHLC_Train.csv всего 54147 наблюдений проще 54к


тренировал модель на первых 10к наблюдениях (если быть точным то 8к, первые 2к не учитывались так как на них считались индикаторы )

проверял модель на оставшихся  44к данных, так что думаю переобучение нет.  Тест в 5,5 раз больше трейна    44/8 =5,5


Из моделей пробовал бустинг и форест, бустинг не впечатлил, остановился на форесте

в тренировочном сете сильная расбалансировка классов, но мне лень шаманить

table(d$Target[tr])

   0    1 
3335 4666 

итоговая модель на текущих признаках -  форест 200 деревв

на трейне...

 Type of random forest: classification
                     Number of trees: 200
No. of variables tried at each split: 14

        OOB estimate of  error rate: 14.75%
Confusion matrix:
     0    1 class.error
0 2557  778  0.23328336
1  402 4264  0.08615517

на тесте

Confusion Matrix and Statistics

          Reference
Prediction     0     1
         0 12449  5303
         1  9260 17135
                                          
               Accuracy : 0.6701          
                 95% CI : (0.6657, 0.6745)
    No Information Rate : 0.5083          
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.3381          
                                          
 Mcnemar's Test P-Value : < 2.2e-16       
                                          
            Sensitivity : 0.5734          
            Specificity : 0.7637          
         Pos Pred Value : 0.7013          
         Neg Pred Value : 0.6492          
             Prevalence : 0.4917          
         Detection Rate : 0.2820          
   Detection Prevalence : 0.4021          
      Balanced Accuracy : 0.6686          
                                          
       'Positive' Class : 0  

Как видите результаты идентичны вашим, и не надо миллионы данных 50к вполне себе достаточно, чтобы найти закономерности если они вообще есть

Итак мы получили одинаковые результаты, это наша точка отсчета, теперь эту ошибку надо улучшать  

 

)) Хохма ))

Удалил все  так называемые индикаторы технического анализа

признаков стало 86, а не 217  как в примере выше

А качество модели только улучшилось )


Confusion Matrix and Statistics

          Reference
Prediction     0     1
         0 12769  5597
         1  8940 16841
                                          
               Accuracy : 0.6707          
                 95% CI : (0.6663, 0.6751)
    No Information Rate : 0.5083          
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.3396          
                                          
 Mcnemar's Test P-Value : < 2.2e-16       
                                          
            Sensitivity : 0.5882          
            Specificity : 0.7506          
         Pos Pred Value : 0.6953          
         Neg Pred Value : 0.6532          
             Prevalence : 0.4917          
         Detection Rate : 0.2892          
   Detection Prevalence : 0.4160          
      Balanced Accuracy : 0.6694          
                                          
       'Positive' Class : 0 
 
mytarmailS:

Классификация происходит на последнем баре на котором известный клоуз (те полноценная ОХЛС свеча ), предсказываем знак ЗЗ будущей свечи . Зачем учитывать свечу по которой известный только опен я понять не могу, в чем преимущество кроме усложнения ?  как в понимании так и в реализации, а если понять что опен[i] почти всегда равен клоузу[i-1] , то у меня только одни знаки вопроса к этому подходу

Вы понять не можете, потому что у Вас данные в R, а в терминале же не узнать когда сформируется OHLC на текущем баре, поэтому OHLC можно получить только на нулевом баре с первого бара. Ну а Open на нулевом баре - это новые данные о времени - особенно актуально для больших ТФ, ведь у меня в выборке участвует класс одинаковых предикторов, но применённых на разных ТФ.


mytarmailS:


1) данные 50-60к не больше , лучше одним файлом.........

Давайте для обучения 50 и для теста (выборка вне обучения) ещё 50.

я же цифры 50-60к от балды наверное назвал, почему бы не увеличить в 2 раза ? )))

)))

1) данные 50-60к не больше , лучше одним файлом, просто договоримся

И за то что залали одним файлом а не двумя тоже спасибо ! ))
mytarmailS:

тренировал и валидировал на файле OHLC_Train.csv всего 54147 наблюдений проще 54к

тренировал модель на первых 10к наблюдениях (если быть точным то 8к, первые 2к не учитывались так как на них считались индикаторы )

проверял модель на оставшихся  44к данных, так что думаю переобучение нет.  Тест в 5,5 раз больше трейна    44/8 =5,5

Как видите результаты идентичны вашим, и не надо миллионы данных 50к вполне себе достаточно, чтобы найти закономерности если они вообще есть

Итак мы получили одинаковые результаты, это наша точка отсчета, теперь эту ошибку надо улучшать  

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

У Вас нет возможности сохранить модель и проверить её на новых данных? Если есть, то проверьте, пожалуйста, я результат давал именно по выборке OHLC_Exam.csv

Можете прислать обратно так же разбитых эти два файла, но добавив в них свои предикторы и столбец с результатом классификации?


По поводу переобучениея или отсутствия такового.

На мой взгляд явное переобучение.

 
Aleksey Vyazmikin:

Мда... На новых данных все попечальнее (((

Confusion Matrix and Statistics

          Reference
Prediction    0    1
         0 9215 5517
         1 3654 7787
                                          
               Accuracy : 0.6496          
                 95% CI : (0.6438, 0.6554)
    No Information Rate : 0.5083          
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.3007          
                                          
 Mcnemar's Test P-Value : < 2.2e-16       
                                          
            Sensitivity : 0.7161          
            Specificity : 0.5853          
         Pos Pred Value : 0.6255          
         Neg Pred Value : 0.6806          
             Prevalence : 0.4917          
         Detection Rate : 0.3521          
   Detection Prevalence : 0.5629          
      Balanced Accuracy : 0.6507          
                                          
       'Positive' Class : 0


Вот файлы, В  трейне НЕ используйте первые 2к строк

в тесте первые 100 строк

UPD====

файлы не влазят, киньте почту в личку 

 
mytarmailS:

Мда... На новых данных все попечальнее (((


Вот файлы, В  трейне НЕ используйте первые 2к строк

в тесте первые 100 строк

Нет в приложении файлов.

Я изменил разбивку выборки для обучения и валидации, для валидации взял каждую 5 строку, получился забавный график

 

При этом на выборке OHLC_Exam.csv Accuracy 0,63


По X каждое новое дерево уменьшает результат, что свидетельствует о переобучении из-за недостаточности примеров в выборке.

Сожмите файл зипом.
 
Aleksey Vyazmikin:

Нет в приложении файлов.

Я изменил разбивку выборки для обучения и валидации, для валидации взял каждую 5 строку, получился забавный график

 

При этом на выборке OHLC_Exam.csv Accuracy 0,63


По X каждое новое дерево уменьшает результат, что свидетельствует о переобучении из-за недостаточности примеров в выборке.

Сожмите файл зипом.

Да, да переобучены наши модели...

Вот ссылка на скачивание файлов, даже сжатый файл не влезает на форум

https://dropmefiles.com.ua/56CDZB


Потренируйте модель на моих признаках, интересно какой акураси будет

 

То чувство, когда захотел построить модель на макроэкономических данных (число занятости рабочих мест США), но наткнулся на коронавирус


 
mytarmailS:

Да, да переобучены наши модели...

Вот ссылка на скачивание файлов, даже сжатый файл не влезает на форум

https://dropmefiles.com.ua/56CDZB


Потренируйте модель на моих признаках, интересно какой акураси будет

А вот если увеличить выборку до года (2019), то видна хоть тенденция на 2018


От слияния двух выборок получилось Accuracy=68.06261099409409

И, по графику получается, что тенденция новых деревьев вышла в боковик.


Решил, что надо обучиться отдельно на двух выборках, так как пришлось их подрезать, как Вы и говорили, результат:

Ваша Accuracy=65.46896295378517


Моя Accuracy=68.03370090447281


Причина обращения: