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

 
Yuriy Asaulenko:
Это безусловно так. Однако высокий порог входа увеличивает и разного рода риски. Не обязательно финансовые.

Всё так, выше сказанное можно выразить и в банально форме : "прибыль - монотонная функция разумного риска", что касается не только торговли, а всей деятельности человека, к тому же известно что максимально рискует тот, кто думает что совсем не рискует, например выбирая не конкурентную профессию и рассчитывая на государственную пенсию, это экстремалы))


И что за жизнь "без" риска? Это совсем не интересно, учитывая что кончится она у всех одинаково.

 
Ну вот в моей статье как раз таки и освещаются и доверительный интервал и т.д. Настоятельно рекомендую почитать внимательно её и можно многое взять на вооружение.
 
Yuriy Asaulenko:

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

Спасибо за статью. Т.к. ни с каким конкретным ПО незнаком, то для новичка самое оно - просто и понятно. Вот только не понял какой метод используется, регрессионный или классификационный?
Естественно, сразу начал примерять к своим системам. Если какой либо вопрос затруднит, то Бог с ним, выяснится по ходу пьесы.

1. я не использую свечи для входа выхода - только поток котировок, а свечи только на истории начиная с предыдущей свечи. На обучении еще ладно, пусть свечами учится, а вот как заставить Rattle глотать поток котировок внутри текущей свечи пока загадка. При этом поток свечи еще должен как-то анализироваться.

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

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

4 Вопрос нормирования предикторов по п.2 и 3 - оно принципиально невозможно.

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

Пока сплошные непонятки.


rattle хорош в двух случаях:

  1. при первом знакомстве
  2. прикинуть, попробовать... когда владеешь проблемой

1. Регрессия или классификация. Это определяет вид целевой переменной. Действительное число - регрессия. Номинальное (фактор) - классификация.

2. Начинать надо с целевой переменной. Несмотря на кажущуюся простоту довольно сложный вопрос. Что собираетесь предсказывать? Направление? величину, превышение, уровень...

3. Предикторы. Надо доказывать, что они "имеют отношение" к целевой переменной. Это самое сложное. у меня до 70% времени съедает этот вопрос. Очень много писал об этом на ветке.

4. Не устраивает статика. Здесь придет уходить в R. rattle упрощает такой уход в R так как в журнале фиксирует все Ваши действия на R и этот готовый код можно будет использовать для модификации. Вообще следующий шаг - это caret. 

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


2. Начинать надо с целевой переменной. Несмотря на кажущуюся простоту довольно сложный вопрос. Что собираетесь предсказывать? Направление? величину, превышение, уровень...

Похоже, что предсказывать надо все.) Сейчас в модели (не МО) около 30  "индикаторов" (правильнее их называть предикторами) + их взаимная обработка и логика. Предполагалось +еще 10.

Справится вручную с таким объемом и еще понять вклад каждого предиктора в общее дело, становится уже не оч. реальным. Отсюда, кстати, и мысль использовать МО. Все пока на самом начальном этапе.

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

3. Предикторы. Надо доказывать, что они "имеют отношение" к целевой переменной. Это самое сложное. у меня до 70% времени съедает этот вопрос. Очень много писал об этом на ветке.

Да, придется адаптировать. Похоже просто так не засунешь.)

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

4. Не устраивает статика. Здесь придет уходить в R. rattle упрощает такой уход в R так как в журнале фиксирует все Ваши действия на R и этот готовый код можно будет использовать для модификации. Вообще следующий шаг - это caret. 

Понял.

 

Интересная табличка, наиболее часто употребляемые пакеты МО

classnamepackagedownloads
surv.coxphCox Proportional Hazard Modelsurvival153681
classif.naiveBayesNaive Bayese1071102249
classif.svmSupport Vector Machines (libsvm)e1071102249
classif.ldaLinear Discriminant AnalysisMASS55852
classif.qdaQuadratic Discriminant AnalysisMASS55852
classif.randomForestRandom ForestrandomForest52094
classif.gaussprGaussian Processeskernlab44812
classif.ksvmSupport Vector Machineskernlab44812
classif.lssvmLeast Squares Support Vector Machinekernlab44812
cluster.kkmeansKernel K-Meanskernlab44812
regr.rvmRelevance Vector Machinekernlab44812
classif.cvglmnetGLM with Lasso or Elasticnet Regularization (Cross Validated Lambda)glmnet41179
classif.glmnetGLM with Lasso or Elasticnet Regularizationglmnet41179
surv.cvglmnetGLM with Regularization (Cross Validated Lambda)glmnet41179
surv.glmnetGLM with Regularizationglmnet41179
classif.cforestRandom forest based on conditional inference treesparty36492
classif.ctreeConditional Inference Treesparty36492
regr.cforestRandom Forest Based on Conditional Inference Treesparty36492
regr.mobModel-based Recursive Partitioning Yielding a Tree with Fitted Models Associated with each Terminal Nodeparty,modeltools36492
surv.cforestRandom Forest based on Conditional Inference Treesparty,survival36492
 
СанСаныч Фоменко:

Интересная табличка, наиболее часто употребляемые пакеты МО

classnamepackagedownloads
surv.coxphCox Proportional Hazard Modelsurvival153681
classif.naiveBayesNaive Bayese1071102249
classif.svmSupport Vector Machines (libsvm)e1071102249
classif.ldaLinear Discriminant AnalysisMASS55852
classif.qdaQuadratic Discriminant AnalysisMASS55852
classif.randomForestRandom ForestrandomForest52094
classif.gaussprGaussian Processeskernlab44812
classif.ksvmSupport Vector Machineskernlab44812
classif.lssvmLeast Squares Support Vector Machinekernlab44812
cluster.kkmeansKernel K-Meanskernlab44812
regr.rvmRelevance Vector Machinekernlab44812
classif.cvglmnetGLM with Lasso or Elasticnet Regularization (Cross Validated Lambda)glmnet41179
classif.glmnetGLM with Lasso or Elasticnet Regularizationglmnet41179
surv.cvglmnetGLM with Regularization (Cross Validated Lambda)glmnet41179
surv.glmnetGLM with Regularizationglmnet41179
classif.cforestRandom forest based on conditional inference treesparty36492
classif.ctreeConditional Inference Treesparty36492
regr.cforestRandom Forest Based on Conditional Inference Treesparty36492
regr.mobModel-based Recursive Partitioning Yielding a Tree with Fitted Models Associated with each Terminal Nodeparty,modeltools36492
surv.cforestRandom Forest based on Conditional Inference Treesparty,survival36492

Забыл ещё один включить в список. Ах да, уменя же уникальное ПО, можно сказать редкое :-)
 
Yuriy Asaulenko:

Похоже, что предсказывать надо все.) Сейчас в модели (не МО) около 30  "индикаторов" (правильнее их называть предикторами) + их взаимная обработка и логика. Предполагалось +еще 10.

Справится вручную с таким объемом и еще понять вклад каждого предиктора в общее дело, становится уже не оч. реальным. Отсюда, кстати, и мысль использовать МО. Все пока на самом начальном этапе.

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

3. Предикторы. Надо доказывать, что они "имеют отношение" к целевой переменной. Это самое сложное. у меня до 70% времени съедает этот вопрос. Очень много писал об этом на ветке.

Да, придется адаптировать. Похоже просто так не засунешь.)

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

4. Не устраивает статика. Здесь придет уходить в R. rattle упрощает такой уход в R так как в журнале фиксирует все Ваши действия на R и этот готовый код можно будет использовать для модификации. Вообще следующий шаг - это caret. 

Понял.

Внесу свои 5 копеек. На самом деле нужно подавать такие входы, которые будут причиной не для выходной переменной, а для ЦЕНЫ! Тогда любая ТС будет тренироватся хорошо. Примеры целевых функций:

Самый очевидный ПРИБЫЛЬ СИГНАЛА, далее Будет ли откат до определённого уровня, какой из уровней сегодня будет достигнут и т.д. Почитайте мою статью не поленитесь, я об этом упоминаю. Так вот для всех этих целевых функций я подаю одни и те же входы и работа всех моделей вполне уовлетворительна. Причём прям видно как одни и те же входы, смотрят на рынок. Тут на профит, тут на откат, тут на уровень. И работают сносно, потому как входы являются причиной для цены.

Немного разъяню причина это когда изменение входа ведёт к изменению цены, а не наоборот. Тут можно очень сильно запутатся, потому как статистические данные самой ТС очень плохие. Потому как Zscore принимает именно такое значение какое ему говорит цена, а не наоборот. Дельта является причиной для изменения цены, напирмер. :-)

 
Mihail Marchukajtes:

Внесу свои 5 копеек. На самом деле нужно подавать такие входы, которые будут причиной не для выходной переменной, а для ЦЕНЫ! Тогда любая ТС будет тренироватся хорошо. Примеры целевых функций:

Самый очевидный ПРИБЫЛЬ СИГНАЛА, далее Будет ли откат до определённого уровня, какой из уровней сегодня будет достигнут и т.д. Почитайте мою статью не поленитесь, я об этом упоминаю. Так вот для всех этих целевых функций я подаю одни и те же входы и работа всех моделей вполне уовлетворительна. Причём прям видно как одни и те же входы, смотрят на рынок. Тут на профит, тут на откат, тут на уровень. И работают сносно, потому как входы являются причиной для цены.

Немного разъяню причина это когда изменение входа ведёт к изменению цены, а не наоборот. Тут можно очень сильно запутатся, потому как статистические данные самой ТС очень плохие. Потому как Zscore принимает именно такое значение какое ему говорит цена, а не наоборот. Дельта является причиной для изменения цены, напирмер. :-)

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

Да, разумеется, предикторы на то и есть, чтобы прогнозировать движение цены. Но их суперпозиция + цена дают сигнал на вход, т.е. прогнозируют реакцию исходного (обучающего) черного ящика. Вопрос аналогичен тому, что вначале курица или яйцо? Возможно, что разлогласия чисто в терминологии.

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

 
Yuriy Asaulenko:

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

Да, разумеется, предикторы на то и есть, чтобы прогнозировать движение цены. Но их суперпозиция + цена дают сигнал на вход, т.е. прогнозируют реакцию исходного (обучающего) черного ящика. Вопрос аналогичен тому, что вначале курица или яйцо? Возможно, что разлогласия чисто в терминологии.

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


Всё верно, но прогнозировать цену нужно с помощью данных от который происходит её изменение. Есть очень интересное наблюдение. Если вход является причиной для цены, то результат работы вне выборке будет незначительно хуже тренировки, то есть как работала НС на тренировке так и продолжает работать на "Вне выборке" только хуже, когда значительно, когда нет. Всё зависит от модели. А когда вы подаёте на вход данные которые НЕзависят от цены, то работа на участке "Вне выборки" превращается в CoinFlip, подбрасывание монетки. Ни когда не знаешь когда НС совершит ошибку. Как то так....
 
Mihail Marchukajtes:

Всё верно, но прогнозировать цену нужно с помощью данных от который происходит её изменение. Есть очень интересное наблюдение. Если вход является причиной для цены, то результат работы вне выборке будет незначительно хуже тренировки, то есть как работала НС на тренировке так и продолжает работать на "Вне выборке" только хуже, когда значительно, когда нет. Всё зависит от модели. А когда вы подаёте на вход данные которые зависят от цены, то работа на участке "Вне выборки" превращается в CoinFlip, подбрасывание монетки. Ни когда не знаешь когда НС совершит ошибку. Как то так....

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

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

------------------------------

Начал готовить предикторы к миграции в МО. Хотел это все сделать на R. Оказалось, что R, при всей его мощи, совершенно не приспособлен для моделирования и обработки сигналов. К сожалению. Все крайне неудобно.

Придется все подготовительные работы переносить в SciLab, где все это делается гораздо проще и удобней. SciLab - среда и по интерфейсу и по идеологии оч. близка к R, и предназначена для обработки данных и мат моделирования. Там есть все от радиотехники до аэродинамики, и много математики, которая полностью отсутствует в R. Специфика, однако. Стат методы и Data Mining в SciLab представлены весьма неплохо, однако, в этом смысле, SciLab существенно уступает R в выборе таких методов. На SciLab леса СанСаныча не сделаешь.) Хотя, там устанавливаемых пакетов тоже как грязи, но, вроде, ничего близкого нет.

В общем, придется комбинировать разные среды разработки, для решения разных задач и перекидывать данные между средами. Жаль. Хотел сделать все как лучше (на R), а получилось как всегда.

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