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

 
И опять таки хочу добавить и определить. Мы предсказываем Цену актива. Во всяком случае пытаемся, в любом представлении и обработке. Какую бы мы не строили целевую, смысл работы на рынке, это предсказывание цены. Вопрос, что является причиной для изменения цены?????? Кто ни буть может ответить или хот ябы предположить? Интересно ваше мнение, потом я озвучу правильный ответ. Ну... поехали. Ваши предположения. Что является причиной для изменения цены?????
 
Mihail Marchukajtes:
И опять таки хочу добавить и определить. Мы предсказываем Цену актива. Во всяком случае пытаемся, в любом представлении и обработке. Какую бы мы не строили целевую, смысл работы на рынке, это предсказывание цены. Вопрос, что является причиной для изменения цены?????? Кто ни буть может ответить или хот ябы предположить? Интересно ваше мнение, потом я озвучу правильный ответ. Ну... поехали. Ваши предположения. Что является причиной для изменения цены?????

Предсказываем изменение цены, на(во) сколько сдвинется цена за N секунд\минут\часов в будущем, или что ещё удобнее будущий ретурн(R = (P(t)-P(t+n))/P(t)) или логретурн.

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

 

Вот список предкторов и целевых переменных,которые факторы, сдвинутые на соответствующее кол-во баров

'data.frame':   6971 obs. of  105 variables:
$ AUDUSD     : num  0.722 0.722 0.722 0.721 0.72 ...
$ CHFJPY     : num  120 120 120 119 119 ...
$ USDCAD     : num  1.39 1.39 1.39 1.39 1.39 ...
$ GBPCHF     : num  1.47 1.47 1.47 1.48 1.47 ...
$ EURGBP     : num  0.739 0.74 0.739 0.737 0.739 ...
$ USDJPY     : num  119 119 119 119 119 ...
$ GBPUSD     : num  1.48 1.48 1.48 1.48 1.48 ...
$ EURUSD     : num  1.09 1.09 1.09 1.09 1.09 ...
$ EURCHF     : num  1.09 1.09 1.09 1.09 1.09 ...
$ USDCHF     : num  0.995 0.995 0.994 0.998 0.998 ...
$ GBPJPY     : num  176 176 176 176 175 ...
$ EURJPY     : num  130 130 130 130 130 ...
$ EURCAD     : num  1.52 1.52 1.52 1.52 1.52 ...

$ d1_AUDUSD  : num  0.010401 0.000505 -0.001818 -0.003433 -0.008583 ...
$ d1_CHFJPY  : num  -0.01497 0.00444 -0.00186 -0.02309 -0.00823 ...
$ d1_USDCAD  : num  0.008585 0.003389 -0.012832 0.000136 0.002982 ...
$ d1_GBPCHF  : num  -0.000685 0.001746 0.000651 0.024858 -0.009416 ...
$ d1_EURGBP  : num  0.0031 0.00161 -0.00194 -0.01042 0.01003 ...
$ d1_USDJPY  : num  -0.02035 0.00201 -0.00654 0.00558 -0.00933 ...
$ d1_GBPUSD  : num  0.00707 0.00355 0.00439 0.00204 -0.00697 ...
$ d1_EURUSD  : num  0.01916 0.0093 0.00404 -0.01876 0.00905 ...
$ d1_EURCHF  : num  0.0116 0.01463 -0.00732 0.04675 0.01089 ...
$ d1_USDCHF  : num  -0.01705 -0.00415 -0.00933 0.05219 -0.00553 ...
$ d1_GBPJPY  : num  -0.00779 0.00362 -0.00101 0.00484 -0.01057 ...
$ d1_EURJPY  : num  -0.00941 0.00844 -0.0045 -0.00668 -0.00417 ...
$ d1_EURCAD  : num  0.02362 0.01077 -0.01055 -0.01408 0.00971 ...
$ d2_AUDUSD  : num  0.000909 -0.001313 -0.001313 -0.012017 -0.012017 ...
$ d2_CHFJPY  : num  -0.02594 0.00258 0.00258 -0.03132 -0.03132 ...
$ d2_USDCAD  : num  0.01387 -0.00944 -0.00944 0.00312 0.00312 ...
$ d2_GBPCHF  : num  0.0103 0.0024 0.0024 0.0154 0.0154 ...
$ d2_EURGBP  : num  -0.000776 -0.000332 -0.000332 -0.000388 -0.000388 ...
$ d2_USDJPY  : num  -0.01857 -0.00453 -0.00453 -0.00375 -0.00375 ...
$ d2_GBPUSD  : num  0.00771 0.00794 0.00794 -0.00493 -0.00493 ...
$ d2_EURUSD  : num  0.0123 0.0133 0.0133 -0.0097 -0.0097 ...
$ d2_EURCHF  : num  0.03676 0.00732 0.00732 0.05764 0.05764 ...
$ d2_USDCHF  : num  0.00599 -0.01348 -0.01348 0.04666 0.04666 ...
$ d2_GBPJPY  : num  -0.00616 0.0026 0.0026 -0.00572 -0.00572 ...
$ d2_EURJPY  : num  -0.01205 0.00394 0.00394 -0.01085 -0.01085 ...
$ d2_EURCAD  : num  0.023928 0.000221 0.000221 -0.004371 -0.004371 ...
$ d4_AUDUSD  : num  -0.000404 -0.000404 -0.000404 -0.029385 -0.029385 ...
$ d4_CHFJPY  : num  -0.0234 -0.0234 -0.0234 -0.0327 -0.0327 ...
$ d4_USDCAD  : num  0.00443 0.00443 0.00443 0.00122 0.00122 ...
$ d4_GBPCHF  : num  0.0127 0.0127 0.0127 0.0255 0.0255 ...
$ d4_EURGBP  : num  -0.00111 -0.00111 -0.00111 -0.01496 -0.01496 ...
$ d4_USDJPY  : num  -0.0231 -0.0231 -0.0231 0.0175 0.0175 ...
$ d4_GBPUSD  : num  0.0156 0.0156 0.0156 -0.0157 -0.0157 ...
$ d4_EURUSD  : num  0.0256 0.0256 0.0256 -0.0601 -0.0601 ...
$ d4_EURCHF  : num  0.0441 0.0441 0.0441 0.0277 0.0277 ...
$ d4_USDCHF  : num  -0.00749 -0.00749 -0.00749 0.09459 0.09459 ...
$ d4_GBPJPY  : num  -0.0035602 -0.0035602 -0.0035602 0.0000957 0.0000957 ...
$ d4_EURJPY  : num  -0.00811 -0.00811 -0.00811 -0.02169 -0.02169 ...
$ d4_EURCAD  : num  0.0241 0.0241 0.0241 -0.0445 -0.0445 ...
$ d1_AUDUSD_f: Factor w/ 2 levels "-1","1": 2 1 1 1 1 1 1 1 1 2 ...
$ d1_CHFJPY_f: Factor w/ 2 levels "-1","1": 2 1 1 1 2 1 1 2 2 2 ...
$ d1_USDCAD_f: Factor w/ 2 levels "-1","1": 2 1 2 2 1 1 1 2 2 1 ...
$ d1_GBPCHF_f: Factor w/ 2 levels "-1","1": 2 2 2 1 2 2 1 2 1 1 ...
$ d1_EURGBP_f: Factor w/ 2 levels "-1","1": 2 1 1 2 1 1 1 1 2 2 ...
$ d1_USDJPY_f: Factor w/ 2 levels "-1","1": 2 1 2 1 2 2 1 2 2 2 ...
$ d1_GBPUSD_f: Factor w/ 2 levels "-1","1": 2 2 2 1 1 1 1 1 1 2 ...
$ d1_EURUSD_f: Factor w/ 2 levels "-1","1": 2 2 1 2 1 1 1 1 2 2 ...
$ d1_EURCHF_f: Factor w/ 2 levels "-1","1": 2 1 2 2 1 1 1 1 1 2 ...
$ d1_USDCHF_f: Factor w/ 2 levels "-1","1": 1 1 2 1 2 2 2 2 1 1 ...
$ d1_GBPJPY_f: Factor w/ 2 levels "-1","1": 2 1 2 1 2 1 1 2 1 2 ...
$ d1_EURJPY_f: Factor w/ 2 levels "-1","1": 2 1 1 1 2 1 1 1 2 2 ...
$ d1_EURCAD_f: Factor w/ 2 levels "-1","1": 2 1 1 2 1 1 1 2 2 2 ...
$ d2_AUDUSD_f: Factor w/ 2 levels "-1","1": 1 1 1 1 1 1 1 2 2 2 ...
$ d2_CHFJPY_f: Factor w/ 2 levels "-1","1": 2 1 1 1 1 1 1 2 2 2 ...
$ d2_USDCAD_f: Factor w/ 2 levels "-1","1": 1 2 2 1 1 2 2 2 2 1 ...
$ d2_GBPCHF_f: Factor w/ 2 levels "-1","1": 2 2 2 2 2 1 1 1 1 1 ...
$ d2_EURGBP_f: Factor w/ 2 levels "-1","1": 1 1 1 1 1 1 1 2 2 1 ...
$ d2_USDJPY_f: Factor w/ 2 levels "-1","1": 1 1 1 2 2 2 2 2 2 1 ...
$ d2_GBPUSD_f: Factor w/ 2 levels "-1","1": 2 1 1 1 1 1 1 2 2 2 ...
$ d2_EURUSD_f: Factor w/ 2 levels "-1","1": 2 1 1 1 1 1 1 2 2 2 ...
$ d2_EURCHF_f: Factor w/ 2 levels "-1","1": 2 2 2 1 1 1 1 1 1 1 ...
$ d2_USDCHF_f: Factor w/ 2 levels "-1","1": 1 2 2 2 2 2 2 1 1 1 ...
$ d2_GBPJPY_f: Factor w/ 2 levels "-1","1": 2 1 1 2 2 1 1 2 2 2 ...
$ d2_EURJPY_f: Factor w/ 2 levels "-1","1": 2 1 1 1 1 1 1 2 2 1 ...
$ d2_EURCAD_f: Factor w/ 2 levels "-1","1": 2 1 1 1 1 1 1 2 2 2 ...
$ d4_AUDUSD_f: Factor w/ 2 levels "-1","1": 1 1 1 1 1 1 1 2 2 2 ...
$ d4_CHFJPY_f: Factor w/ 2 levels "-1","1": 1 1 1 2 2 2 2 2 2 2 ...
$ d4_USDCAD_f: Factor w/ 2 levels "-1","1": 2 2 2 2 2 2 2 1 1 1 ...
$ d4_GBPCHF_f: Factor w/ 2 levels "-1","1": 2 2 2 1 1 1 1 1 1 1 ...
$ d4_EURGBP_f: Factor w/ 2 levels "-1","1": 1 1 1 1 1 1 1 1 1 1 ...
$ d4_USDJPY_f: Factor w/ 2 levels "-1","1": 2 2 2 2 2 2 2 2 2 2 ...
$ d4_GBPUSD_f: Factor w/ 2 levels "-1","1": 1 1 1 1 1 1 1 2 2 2 ...
  [list output truncated]

 Среди перечисленных целевых переменных на 4 шага вперед только две целевых переменных d4_EURUSD_f и d4_USDCHF_f имеют предикторы, имеющих предсказательную способность для этих целевых переменных. Все остальные целевые переменные нельзя предсказать на 4 шага вперед на перечисленных предикторах.

Предсказание на 1 шаг и на 2 шага вперед выглядит гораздо лучше 

 

тренд вверх  это -  уверенность подавляющего большинства участников в падении , которая подкреплена сделкой... 

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

 
СанСаныч Фоменко:

Вот список предкторов и целевых переменных,которые факторы, сдвинутые на соответствующее кол-во баров..........................

..........................Предсказание на 1 шаг и на 2 шага вперед выглядит гораздо лучше 

На сколько лучше? какие вообще результаты ? численно.. 

 
mytarmailS:

На сколько лучше? какие вообще результаты ? численно.. 

Есть некоторая абстрактная мера:

= 1 - это 100% предсказательная способность

Если > 10, то я считаю, что предиктор предсказательной способностью не обладает.

Для перечисленных целевых на 4 шага вперед предкторы имеют меру от 7 до 9. При предсказании на 1 шаг вперед имеются предикторы с мерой чуть больше двух.

 

ПС.

На этой ветке я многократно призывал заниматься именно предсказательной способностью предикторов. Не будем забывать: "мусор на входе - мусор на выходе".  И никакая модель этого изменить не может.

 
СанСаныч Фоменко:

Есть некоторая абстрактная мера:

конкретно acuracy у МО какой на OOS ?

зачем эти абстракции... 

 
mytarmailS:

конкретно acuracy у МО какой на OOS ?

зачем эти абстракции... 

Предсказывается класс. Ошибка предсказания от 25 до 30%, причем она одинакова при обучении и вне выборки. модель НЕ переобучается.

 

 

ПС

Все это я писал много-много раз. 

 
СанСаныч Фоменко:

Не будем забывать: "мусор на входе - мусор на выходе".  И никакая модель этого изменить не может.

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

Вот например тренировочные данные с МО конкурса numer.ai - https://api.numer.ai/competitions/current/dataset (табличка numerai_training_data.csv в архиве). Там 50 предикторов, и все методы их оценки что я пробовал говорят что это мусор. Но попробовав разные их комбинации, и разные модели - можно добиться точности предсказания >50% на тренировке и валидации.

 
Dr.Trader:

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

Вот например тренировочные данные с МО конкурса numer.ai - https://api.numer.ai/competitions/current/dataset (табличка numerai_training_data.csv в архиве). Там 50 предикторов, и все методы их оценки что я пробовал говорят что это мусор. Но попробовав разные их комбинации, и разные модели - можно добиться точности предсказания >50% на тренировке и валидации.

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

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