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

 
mytarmailS #:

типа как то так?


и он реально сможет нормально переваривать милион условий?

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

Про указатели на функции и их массивы в С++.

C++ | Указатели на функции
  • metanit.com
Указатели на функции в языке программирования C++, определение и использование, массив указателей на функции
 
Aleksey Nikolayev #:
Ещё, теоретически, можно массив функций.

Что это? Типа сделать матрицу и интерпретатор?

 
Aleksey Vyazmikin #:

Я не знаю синтаксис R - просто проверил, что есть такая возможность и там. А так - да похоже.

это с++

 
Aleksey Nikolayev #:

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

Про указатели на функции и их массивы в С++.

А вроде бы нет перебора...

 
mytarmailS #:

это с++

Поэтому и сделал оговорку.

Chat GPT предлагает какой то такой синтаксис

# Создаем функцию, имитирующую оператор switch
my_switch <- function(x) {
  switch(x,
         case1 = {
           # Действия, выполняемые при совпадении с "case1"
           print("Это case1")
         },
         case2 = {
           # Действия, выполняемые при совпадении с "case2"
           print("Это case2")
         },
         default = {
           # Действия по умолчанию, если нет совпадения с другими случаями
           print("Это default")
         }
  )
}
 
Aleksey Nikolayev #:

Судя по типу х это Rcpp. 

Да так ие есть.

Попробую протестить на скорость

switch

если не пойдет то буду вникать в 

 указатели на функции и их массивы 
 
Aleksey Vyazmikin #:

А вроде бы нет перебора...

Возможно и нет, точно не помню.
 
mytarmailS #:

Да так ие есть.

Попробую протестить на скорость

если не пойдет то буду вникать в 

 указатели на функции и их массивы 
Если все функции линейны, как в примере, то можно просто через обычную двумерную матрицу коэффициентов. Ещё можно сделать сжатие объёма, если матрица разреженная.
 
Maxim Dmitrievsky #:

Саныч сказал, что там нет никаких экстремумов, и был прав.

Да, Саныч написал, что там нет экстремумов, и был неправ, потому что экстремумы есть у любой функции.

Экстремум - это точка, в которой функция достигает наибольшего (максимума) или наименьшего (минимума) значения на заданном интервале или в заданной области. Экстремумы могут быть локальными, когда функция достигает экстремального значения только в некоторой окрестности точки, или глобальными, когда функция достигает экстремального значения на всем заданном интервале или в заданной области.

Экстремумы есть всегда, даже если ты их не ищешь намеренно (за тебя эту операцию поиска делают алгоритмы, которые используешь). Обучение без оптимизации невозможно, а оптимизация невозможна без правильных заданий ФФ. Если за тебя сделали и скрыли (зашили в алгоритм) поиск экстремумов, то это не значит что их нет (и экстремумов и оптимизации).
 
Aleksey Nikolayev #:
Если все функции линейны, как в примере, то можно просто через обычную двумерную матрицу коэффициентов. Ещё можно сделать сжатие объёма, если матрица разреженная.

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

В Р-ке проблем с этим нету, делай что хош , но скорость((

Ищу способ делать это на с++