L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 3300

 
mytarmailS #:

comme ça ?


et peut-il vraiment gérer un million de conditions ?

A en juger par le type de x, il s'agit de Rcpp. En C++, vous pouvez créer des tableaux de pointeurs vers des fonctions et il y aura un appel immédiat de la fonction nécessaire par index, mais avec le commutateur, il semble qu'il s'agisse d'une recherche séquentielle depuis le début jusqu'à la variante nécessaire. Bien sûr, le problème de la génération du code de toutes ces fonctions reste entier et il n'est pas évident de savoir comment cela fonctionnera avec Rcpp.

À propos des pointeurs de fonctions et de leurs tableaux en C++.

C++ | Указатели на функции
  • metanit.com
Указатели на функции в языке программирования C++, определение и использование, массив указателей на функции
 
Aleksey Nikolayev #:
En outre, en théorie, vous pouvez avoir un tableau de fonctions.

Qu'est-ce que c'est ? C'est comme faire une matrice et un interprète ?

 
Aleksey Vyazmikin #:

Je ne connais pas la syntaxe R - j'ai juste vérifié qu'il y avait une telle possibilité là aussi. Mais oui, il semble que ce soit le cas.

C'est du C++.

 
Aleksey Nikolayev #:

À en juger par le type x, il s'agit de Rcpp. En C++, vous pouvez créer des tableaux de pointeurs vers des fonctions et il y aura un appel immédiat de la fonction requise par index, mais avec le commutateur, il semble qu'il s'agisse d'une recherche séquentielle depuis le début jusqu'à la variante requise. Bien sûr, le problème de la génération du code de toutes ces fonctions reste entier et on ne sait pas comment cela fonctionnera avec Rcpp.

À propos des pointeurs de fonctions et de leurs tableaux en C++.

Et il semble qu'il n'y ait pas de force brute...

 
mytarmailS #:

c'est du C++

C'est pourquoi j'ai fait cette mise en garde.

Chat GPT offre une sorte de syntaxe comme celle-ci

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

A en juger par le type x, il s'agit de rcpp.

Oui, c'est bien cela.

Je vais essayer de le tester pour la vitesse

switch

Si cela ne fonctionne pas, je vais me pencher sur les points suivants

lespointeurs de fonctions et leurs tableaux
 
Aleksey Vyazmikin #:

Et il ne semble pas y avoir d'excès...

Peut-être pas, je ne me souviens pas exactement.
 
mytarmailS #:

Oui, c'est le cas.

Je vais essayer de tester la vitesse.

Si cela ne fonctionne pas, je vais me pencher sur les points suivants

lespointeurs de fonctions et leurs tableaux
Si toutes les fonctions sont linéaires, comme dans l'exemple, vous pouvez simplement utiliser une matrice bidimensionnelle normale de coefficients. Vous pouvez également procéder à une compression de volume si la matrice est peu dense.
 
Maxim Dmitrievsky #:

Sanych a dit qu'il n'y avait pas d'extrêmes, et il avait raison.

Oui, Sanych a écrit qu'il n'y avait pas d'extrema, et il avait tort, car toute fonction a des extrema.

L'extrema est le point où une fonction atteint la plus grande (maximum) ou la plus petite (minimum) valeur sur un intervalle donné ou dans une zone donnée. Les extrêmes peuvent être locaux, lorsque la fonction n'atteint une valeur extrême que dans un certain voisinage d'un point, ou globaux, lorsque la fonction atteint une valeur extrême sur l'ensemble d'un intervalle donné ou dans une zone donnée.

Les extrêmes sont toujours présents, même si vous ne les recherchez pas intentionnellement (les algorithmes que vous utilisez effectuent cette recherche pour vous). L'apprentissage sans optimisation est impossible, et l'optimisation est impossible sans une affectation correcte des FF. Si la recherche d'extrema est faite pour vous et cachée (cousue dans l'algorithme), cela ne veut pas dire qu'ils n'existent pas (extrema et optimisation).
 
Aleksey Nikolayev #:
Si toutes les fonctions sont linéaires, comme dans l'exemple, vous pouvez simplement utiliser une matrice bidimensionnelle ordinaire de coefficients. Vous pouvez également procéder à une compression de volume si la matrice est peu dense.

Non, elles ne sont pas linéaires, vous êtes censé insérer un code beaucoup plus complexe dans chaque fonction...

Il n'y a pas de problème avec cela dans R, vous pouvez faire ce que vous voulez, mais la vitesse(((.

Je cherche un moyen de le faire en C++.

Raison: