Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 252

 
SanSanych Fomenko:

Python é ótimo, mas você precisa de MKL4.

Há um pacoteRserve. Aqui está a minha tradução da anotação

Rserve é um servidor TCP/IP que permite que outros programas usem ferramentas R de diferentes idiomas sem ter que inicializar o R ou ligar-se a uma biblioteca R. Cada conexão tem um espaço de trabalho e um diretório de trabalho separados. Implementações de clientes estão disponíveis para linguagens populares como C/C++ e Java. O Rserve suporta conexão remota, autenticação e transferência de arquivos.

O objetivo principal do Rserve é fornecer uma interface que possa ser usada por aplicações para fazer cálculos em R. Nossa experiência com outros modos de comunicação tem mostrado que há três coisas principais a considerar ao desenvolver um novo sistema: separação, flexibilidade e velocidade.

É importante separar o sistema R da aplicação propriamente dita. Uma razão é evitar qualquer dependência da linguagem de programação da aplicação, já que a própria interface direta com R (Chambers, 1998) é aplicável apenas com C (R Working Group Development, 2003). Outro aspecto vem do fato de que a integração próxima com R é mais propensa a erros, porque a aplicação tem que levar em conta os internos de R. Por outro lado, os desenvolvedores de aplicativos querem que a interface seja muito flexível e que utilize a maioria dos recursos do R. Finalmente, a velocidade é um elemento chave porque o objectivo é fornecer ao utilizador os resultados desejados rapidamente sem ter de iniciar uma sessão R a partir do zero.

O conceito cliente-servidor permite-nos satisfazer os três principais requisitos. A computação é feita pelo núcleo Rserve, que é o servidor, respondendo a pedidos de clientes, tais como aplicações. A comunicação entre a Rserve e o cliente é feita através de tomadas de rede, normalmente TCP/IP, mas também são possíveis outras alterações. Isto permite o uso de um Rserve central a partir de computadores remotos, o uso de múltiplos Rserve por um cliente remoto para distribuir o cálculo, mas também a comunicação local em uma única máquina.

Uma única Rserve pode servir vários clientes ao mesmo tempo. Cada conexão Rserve recebe seu próprio espaço de dados e diretório de trabalho. Isto significa que o objeto criado por uma única conexão nunca afeta outras conexões. Adicionalmente, cada conexão pode produzir arquivos locais, como imagens criadas pelo dispositivo de bitmap Rserve, sem interferir com outras conexões. Cada aplicativo pode abrir várias conexões para lidar com tarefas paralelas.

A transferência de dados entre a aplicação e o Rserve é feita em formato binário para obter velocidade e minimizar a soma dos dados transferidos. Os objectos intermédios são armazenados na Rserve, pelo que apenas os itens de interesse necessitam de ser transferidos para o cliente

Além de comunicar com o kernel R, o Rserve também tem protocolos de autenticação e transferência de arquivos integrados que tornam o Rserve adequado para uso em máquinas individuais. A autenticação do usuário é fornecida para adicionar uma camada de segurança para uso remoto. A transferência de arquivos permite a cópia dos arquivos necessários para o cálculo ou R produzido do cliente para o servidor e vice versa.

Rserve atualmente suporta dois grupos principais de comandos para comunicação com R: criação de objetos em R e avaliação de código R. A maioria dos objetos básicos, como números, cadeias ou vetores, pode ser criada através da criação de adições diretas. O conteúdo dos objectos é enviado em formato binário do cliente para o servidor.

Isto proporciona uma forma eficiente de transportar os dados necessários para a avaliação. Todos os objetos são sempre transferidos por valor para separar os espaços de dados do cliente e do servidor. Desta forma, tanto o cliente como o servidor estão livres para se livrarem dos dados a qualquer momento, evitando as falhas catastróficas que são inerentes a outros métodos de comunicação onde os sistemas partilham fisicamente os mesmos dados.

O segundo grande grupo de comando é a avaliação do código R. Ao contrário de criar um objeto, tal código é enviado em texto claro para o Rserve e tratado como se o código tivesse sido inserido no console em R. O objeto de avaliação resultante pode ser passado de volta em formato binário para o cliente, se necessário. A maioria dos tipos R são suportados, incluindo números escalares, strings, vetores, listas (daí classes, quadros de dados, etc.), objetos léxicos, etc. Isto permite à Rserve devolver todos os modelos de volta ao cliente. O cliente pode decidir não obter quaisquer objetos que sejam úteis, configurando objetos intermediários em R que não estejam diretamente relacionados com o cliente.

A Rserve fornece dois serviços básicos de tratamento de erros. Os três resultados de avaliação possíveis são uma avaliação bem sucedida, um erro de tempo de execução por erro de parser e um erro de código. O estado sempre retorna à aplicação cliente para permitir a ação apropriada. Como Rserve é apenas uma camada entre a aplicação e R, ainda é possível influenciar a manipulação de um erro de tempo de execução no próprio R, por exemplo, com uma opção ou comando de tentativa errônea.

Um uso típico das ferramentas Rserve é carregar todos os dados necessários em R, realizar cálculos de acordo com a entrada do usuário, como a construção do modelo, e passar os resultados de volta para a aplicação para exibição. Todos os dados e objetos são persistentes até que a conexão seja fechada. Isto permite que a aplicação abra a conexão antecipadamente, por exemplo, quando o usuário tiver especificado um conjunto de dados, transfira todos os dados necessários para o servidor e responda à entrada do usuário, calculando prontamente os modelos ou estimativas desejados. Uma vez que os resultados não estão em forma de texto, não há uma tediosa análise dos resultados.

A interface para o Rserve é modular e documentada, dando acesso ao Rserve a partir de qualquer linguagem de aplicação ou linguagem de programação que suporte soquetes, incluindo as linguagens de script e programação atuais. Nós implementamos o cliente para Rserve em Java puro, que se comunica através de uma interface com a maioria das instalações Rserve e mapeia todos os objetos disponíveis para Rserve em seus próprios objetos ou classes Java. O uso do cliente Java é ilustrado na seção como um exemplo.


Existe um pacoteJava que dá acesso a este servidor.

Se reescrevêssemos este pacote deJava para MKL4.... teríamos acesso real ao R a partir dos EAs

um artigo sobre o assunto. Experimenta. Eu estou confortável com tudo através do R.
 
SanSanych Fomenko:


Existe um pacoteJava que dá acesso a este servidor.

Se reescrevéssemos este pacote deJava para MKL4.... então teríamos acesso real ao R a partir do EA

Grande domínio de inglês!

Bem, pegue no pacote e reescreva-o...

Algum problema?

 

SanSanych.

Você não traduziu a parte sobre sistemas Windows. Devido a esta excepção, eu usei o RServer.

 

Alguém sabe porque já não é possível fazer o download de citações 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:

Alguém sabe porque já não é possível fazer o download de citações 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: 'Не удается установить связь с сервером'

Muito provavelmente o ip do servidor mudou, ele escreve que o -server não está disponível e não pingou.

Tente substituí-lo pelo ip 78.41.196.47 ou ainda mais simples prescrevendo export.finam.ru

funciona no seu navegador

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:

alguém sabe por que as citações não podem mais ser baixadas do finam?

Desculpe, só tive que actualizar o pacote, algo mudou lá....

estúpido...

 
Vladimir Perervenko:
um artigo sobre o assunto. Experimenta. Eu estou confortável com tudo através do R.
Pode dar-me um exemplo concreto?
 
Vladimir Perervenko:

SanSanych.

Você não traduziu a parte sobre sistemas Windows. Por causa desta excepção, eu usei o RServer.

O RServer não está disponível para a versão 3.3.2
 
mytarmailS:

Desculpe, deveria ter atualizado o pacote, algo mudou lá....

estúpido...

Tipo de citações de qualidade a partir daqui
Архив котировок - GKFX
Архив котировок - GKFX
  • www.gkfx.ru
Довольно часто трейдеры сталкиваются с необходимостью получить архив котировок по тому или иному торговому инструменту за определенный исторический период. Архив котировок позволяет протестировать механические/автоматические торговые системы ("эксперты") на исторических данных и оптимизировать торговые стратегии. В данном разделе сайта Вы...
 
SanSanych Fomenko:
Citações de qualidade a partir daqui
Eu não quero arquivos, quero tempo real.