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

 
SanSanych Fomenko:

Python est génial, mais il faut MKL4.

Il existe un paquetRserve. Voici ma traduction de l'annotation

Rserve est un serveur TCP/IP qui permet à d'autres programmes d'utiliser les outils R de différents langages sans avoir à initialiser R ou à se lier à une bibliothèque R. Chaque connexion dispose d'un espace de travail et d'un répertoire de travail distincts. Des implémentations client sont disponibles pour des langages populaires tels que C/C++ et Java. Rserve prend en charge la connexion à distance, l'authentification et le transfert de fichiers.

L'objectif principal de Rserve est de fournir une interface qui peut être utilisée par des applications pour effectuer des calculs dans R. Notre expérience avec d'autres modes de communication a montré qu'il y a trois éléments principaux à prendre en compte lors du développement d'un nouveau système : la séparation, la flexibilité et la rapidité.

Il est important de séparer le système R de l'application elle-même. L'une des raisons est d'éviter toute dépendance vis-à-vis du langage de programmation de l'application, puisque la propre interface directe avec R (Chambers, 1998) n'est applicable qu'avec C (R Working Group Development, 2003). Un autre aspect vient du fait que l'intégration étroite avec R est plus sujette aux erreurs, car l'application doit tenir compte des éléments internes de R. D'autre part, les développeurs d'applications souhaitent que l'interface soit très flexible et qu'elle utilise la plupart des fonctionnalités de R. Enfin, la rapidité est un élément clé car l'objectif est de fournir rapidement à l'utilisateur les résultats souhaités sans avoir à recommencer une session R depuis le début.

Le concept client-serveur nous permet de satisfaire ces trois exigences clés. Le calcul est effectué par le noyau Rserve, qui est le serveur, répondant aux demandes des clients tels que les applications. La communication entre Rserve et le client se fait par le biais de sockets de réseau, généralement TCP/IP, mais d'autres changements sont également possibles. Cela permet l'utilisation d'un Rserve central depuis des ordinateurs distants, l'utilisation de plusieurs Rserve par un client distant pour distribuer les calculs, mais aussi la communication locale sur une seule machine.

Un seul Rserve peut servir plusieurs clients en même temps. Chaque connexion Rserve dispose de son propre espace de données et de son propre répertoire de travail. Cela signifie que l'objet créé par une seule connexion n'affecte jamais les autres connexions. En outre, chaque connexion peut produire des fichiers locaux, tels que des images créées par le dispositif bitmap Rserve, sans interférer avec les autres connexions. Chaque application peut ouvrir plusieurs connexions pour gérer des tâches parallèles.

Le transfert de données entre l'application et Rserve se fait sous forme binaire pour obtenir de la vitesse et minimiser la somme des données transférées. Les objets intermédiaires sont stockés dans Rserve, de sorte que seuls les éléments d'intérêt doivent être transférés au client.

En plus de communiquer avec le noyau R, Rserve dispose également de protocoles d'authentification et de transfert de fichiers intégrés qui permettent d'utiliser Rserve sur des machines individuelles. L'authentification de l'utilisateur est fournie pour ajouter une couche de sécurité pour l'utilisation à distance. Le transfert de fichiers permet de copier les fichiers nécessaires au calcul ou à la production de R du client au serveur et vice versa.

Rserve prend actuellement en charge deux groupes principaux de commandes pour communiquer avec R : la création d'objets dans R et l'évaluation du code R. La plupart des objets de base tels que les nombres, les chaînes de caractères ou les vecteurs peuvent être créés par addition directe. Le contenu des objets est envoyé sous forme binaire du client au serveur.

Cela constitue un moyen efficace de transporter les données nécessaires à l'évaluation. Tous les objets sont toujours transférés par valeur afin de séparer les espaces de données du client et du serveur. De cette façon, le client et le serveur sont libres de se débarrasser des données à tout moment, ce qui permet d'éviter les défaillances catastrophiques inhérentes aux autres méthodes de communication où les systèmes partagent physiquement les mêmes données.

Le deuxième grand groupe de commande est l'évaluation du code R. Contrairement à la création d'un objet, un tel code est envoyé en texte clair à Rserve et traité comme si le code avait été saisi à la console dans R. L'objet d'évaluation résultant peut être renvoyé sous forme binaire au client si nécessaire. La plupart des types R sont pris en charge, notamment les nombres scalaires, les chaînes de caractères, les vecteurs, les listes (d'où les classes, les cadres de données, etc.), les objets lexicaux, etc. Cela permet à Rserve de renvoyer tous les modèles au client. Le client peut décider de ne pas obtenir d'objets utiles en configurant dans R des objets intermédiaires qui ne sont pas directement liés au client.

Rserve fournit deux services de base pour la gestion des erreurs. Les trois résultats d'évaluation possibles sont une évaluation réussie, une erreur d'exécution par erreur d'analyseur et une erreur de code. L'état revient toujours à l'application cliente pour permettre l'action appropriée. Comme Rserve n'est qu'une couche entre l'application et R, il est toujours possible d'influencer le traitement d'une erreur d'exécution dans R lui-même, par exemple avec une option ou une commande de tentative erronée.

Une utilisation typique des outils Rserve consiste à charger toutes les données nécessaires dans R, à effectuer des calculs en fonction des entrées de l'utilisateur, comme la construction de modèles, et à renvoyer les résultats à l'application pour affichage. Toutes les données et tous les objets sont persistants jusqu'à ce que la connexion soit fermée. Cela permet à l'application d'ouvrir rapidement la connexion, par exemple lorsque l'utilisateur a spécifié un ensemble de données, de transférer toutes les données nécessaires au serveur et de répondre à l'entrée de l'utilisateur en calculant rapidement les modèles ou les estimations souhaités. Comme les résultats ne sont pas sous forme de texte, il n'y a pas d'analyse fastidieuse des résultats.

L'interface de Rserve est modulaire et documentée, permettant d'accéder à Rserve à partir de n'importe quel langage d'application ou de programmation prenant en charge les sockets, y compris les langages de script et de programmation actuels. Nous avons implémenté le client de Rserve en Java pur, qui communique par le biais d'une interface avec la plupart des fonctions de Rserve et fait correspondre tous les objets disponibles pour Rserve à ses propres objets ou classes Java. L'utilisation du client Java est illustrée dans la section à titre d'exemple.


Il existe un paquetageJava qui donne accès à ce serveur.

Si nous réécrivions ce paquet deJava à MKL4...., nous obtiendrions un accès réel à R à partir des EA.

Il y a un article sur le sujet. Essayez-le. Je suis à l'aise avec tout ce qui passe par R.
 
SanSanych Fomenko:


Il existe un paquetageJava qui donne accès à ce serveur.

Si nous réécrivions ce paquet deJava en MKL4...., nous aurions un accès réel à R depuis l'EA.

Grande maîtrise de l'anglais !

Eh bien, prenez le paquet et réécrivez-le...

Un problème ?

 

SanSanych.

Vous n'avez pas traduit la partie concernant les systèmes Windows. En raison de cette exception, j'ai utilisé RServer.

 

Quelqu'un sait-il pourquoi il n'est plus possible de télécharger des citations à partir de finam ?

library(rusquant)
getSymbols("SPFB.RTS",src = "Finam",period="5min",from = Sys.Date()-1)
Error in download.file(stock.URL, destfile = tmp, quiet = !verbose) :
  cannot open URL 'http://195.128.78.52/table.csv?d=d&market=1&f=table&e=.csv&dtf=1&tmf=1&MSOR=0&sep=1&sep2=1&at=1&p=3&em=17455&df=14&mf=11&yf=2016&dt=15&mt=11&yt=2016&cn=SPFB.RTS&datf=1'
In addition: Warning message:
In download.file(stock.URL, destfile = tmp, quiet = !verbose) :
  InternetOpenUrl failed: 'Не удается установить связь с сервером'
 
mytarmailS:

Quelqu'un sait-il pourquoi il n'est plus possible de télécharger des citations à partir de finam ?

library(rusquant)
getSymbols("SPFB.RTS",src = "Finam",period="5min",from = Sys.Date()-1)
Error in download.file(stock.URL, destfile = tmp, quiet = !verbose) :
  cannot open URL 'http://195.128.78.52/table.csv?d=d&market=1&f=table&e=.csv&dtf=1&tmf=1&MSOR=0&sep=1&sep2=1&at=1&p=3&em=17455&df=14&mf=11&yf=2016&dt=15&mt=11&yt=2016&cn=SPFB.RTS&datf=1'
In addition: Warning message:
In download.file(stock.URL, destfile = tmp, quiet = !verbose) :
  InternetOpenUrl failed: 'Не удается установить связь с сервером'

Il est fort probable que l'adresse IP du serveur ait changé, il vous écrit que le serveur est indisponible et qu'il n'a pas reçu de message.

Essayez de le remplacer par l'ip 78.41.196.47 ou encore plus simplement en prescrivant export.finam.ru.

cela fonctionne dans votre navigateur

78.41.196.47/table.csv?d=d&market=1&f=table&e=.csv&dtf=1&tmf=1&MSOR=0&sep=1&sep2=1&at=1&p=3&em=17455&df=14&mf=11&yf=2016&dt=15&mt=11&yt=2016&cn=SPFB.RTS&datf=1
 
mytarmailS:

quelqu'un sait-il pourquoi les devis ne peuvent plus être téléchargés sur finam ?

Désolé, j'ai dû mettre à jour le paquet, quelque chose a changé là.....

stupide...

 
Vladimir Perervenko:
Il existe un article sur le sujet. Essayez-le. Je suis à l'aise avec tout ce qui passe par R.
Pouvez-vous me donner un exemple concret ?
 
Vladimir Perervenko:

SanSanych.

Vous n'avez pas traduit la partie concernant les systèmes Windows. En raison de cette exception, j'ai utilisé RServer.

RServer n'est pas disponible pour la version 3.3.2
 
mytarmailS:

Désolé, j'aurais dû mettre à jour le paquet, quelque chose a changé à ce moment-là. ....

stupide...

Des citations de qualité d'ici
Архив котировок - GKFX
Архив котировок - GKFX
  • www.gkfx.ru
Довольно часто трейдеры сталкиваются с необходимостью получить архив котировок по тому или иному торговому инструменту за определенный исторический период. Архив котировок позволяет протестировать механические/автоматические торговые системы ("эксперты") на исторических данных и оптимизировать торговые стратегии. В данном разделе сайта Вы...
 
SanSanych Fomenko:
Des citations de qualité d'ici
Je ne veux pas d'archives, je veux du temps réel.
Raison: