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

 
Maxim Dmitrievsky:

Eu não sei, é sempre diferente.

Hmm, então talvez pensar em uma maneira de descobrir?

A propósito, eu posso construir um modelo em R usando seus dados - se você estiver interessado em comparar a eficiência dos métodos.
 
Aleksey Vyazmikin:

Hmm, então podemos pensar numa maneira de descobrir?

A propósito, eu posso construir no modelo R pelos seus dados - se você estiver interessado em comparar a eficiência dos métodos.

nada melhor já pode ser feito lá, o modelo é perfeito e confirma a natureza aleatória do kotir

só podem ser feitas outras melhorias através de diferentes métodos de trabalho com processos aleatórios, como escrevi acima

 
Maxim Dmitrievsky:

nada melhor pode ser feito lá, o modelo é perfeito e confirma a natureza aleatória do kotir

Outras melhorias só podem ser feitas através de diferentes métodos de trabalho com processos aleatórios, como escrevi acima

Soluções aleatórias para processos aleatórios parece-me um método demasiado arriscado na sua ideologia...

 
Maxim Dmitrievsky:

Vou voltar a algo que queria fazer há muito tempo - MO + stoh

http://www.turingfinance.com/random-walks-down-wall-street-stochastic-processes-in-python/

O tema é interessante - especialmente o modelo de salto Merton ou alguma variação do mesmo. Parece que, ao contrário da difusão convencional, ele não é reduzido (por amostragem de tempo) à autoregressão, ou é feito de alguma forma não trivial. Talvez os cálculos em uma janela deslizante para um portfólio sejam bastante inacessíveis.

 

A floresta aleatória é uma história adequada, sem possibilidade de ajuste. Eu espremi todas as opções do SL há um ano atrás.

A regressão linear tem muito mais hipóteses de produzir lucro. No treinamento, você precisa alimentar os preços relativos, não os preços reais.

Pytorch = TensorFlow 1.x + Keras + Numpy = TensorFlow 2.0

 
Roffild:

Pytorch = TensorFlow 1.x + Keras + Numpy = TensorFlow 2.0

De que configuração de rede você gosta?

 

O construtor é fixe!

Por exemplo, muitas pessoas usam "funções de ativação" sem sentido, mesmo quando não são necessárias. "Funções de ativação" = conversão de dados para um determinado intervalo de valores com perda parcial ou completa de informação - é como uma função hash para um arquivo.

Se os dados introduzidos já estiverem normalizados, as "funções de activação" entre camadas não são necessárias. Você não pode se livrar da "função de ativação" em Alglib.

Tenho todo o sistema de controle de mudança na forma de Jenkins + MLFlow para enumerar variantes e armazenar resultados.

Agora a configuração é assim:

Sequential(
  (input): Linear(in_features=2836, out_features=1000, bias=True)
  (hidden1): Linear(in_features=1000, out_features=100, bias=True)
  (hidden2): Linear(in_features=100, out_features=2, bias=True)
  (output_activ): Softmax()
)

É claro que não entendi imediatamente como treinar a rede na placa de vídeo às custas da latência dos dados. Agora meu código está otimizado e aprende 100 vezes mais rápido da versão original, reduzindo a quantidade de uploads de dados para a placa de vídeo.

 
Roffild:

O construtor é fixe!

Por exemplo, muitas pessoas usam "funções de ativação" sem sentido, mesmo quando não são necessárias. "Funções de ativação" = conversão de dados para um determinado intervalo de valores com perda parcial ou completa de informação - é como uma função hash para um arquivo.

Se os dados introduzidos já estiverem normalizados, as "funções de activação" entre camadas não são necessárias. Você não pode se livrar da "função de ativação" em Alglib.

Tenho todo o sistema de controle de mudança na forma de Jenkins + MLFlow para enumerar variantes e armazenar resultados.

Agora a configuração é assim:

É claro que não entendi imediatamente como treinar a rede na placa de vídeo às custas da latência dos dados. Agora meu código está otimizado e está aprendendo 100 vezes mais rápido da versão original, reduzindo a quantidade de uploads de dados para a placa de vídeo.

E a camada recursiva? lstm ou gru

 
Roffild:

O construtor é fixe!

Por exemplo, muitas pessoas usam "funções de ativação" sem sentido, mesmo quando não são necessárias. "Funções de ativação" = conversão de dados para um determinado intervalo de valores com perda parcial ou completa de informação - é como uma função hash para um arquivo.

Se os dados introduzidos já estiverem normalizados, as "funções de activação" entre camadas não são necessárias. Você não pode se livrar da "função de ativação" em Alglib.

Tenho todo o sistema de controle de mudança na forma de Jenkins + MLFlow para enumerar variantes e armazenar resultados.

Agora a configuração é assim:

É claro que não entendi imediatamente como treinar a rede na placa de vídeo às custas da latência dos dados. Agora meu código está otimizado e aprende 100 vezes mais rápido da versão original, reduzindo a quantidade de uploads de dados para a placa de vídeo.

A velocidade é fixe, mas secundária.
A sua NS está a prever com sucesso o futuro? Se assim for, seria interessante ver o sinal ou, pelo menos, os resultados dos testes com antecedência.
 
Maxim Dmitrievsky:

E quanto à camada de recorrência? lstm ou gru

Posso acrescentar, mas neste momento quero testar completamente a minha variante. Só preciso de adicionar 1 linha ao código para alterar a estrutura da rede. Não estamos a traduzir texto, mas a reconhecer um evento histórico.

https://pytorch.org/docs/stable/nn.html - escolha a camada que quiser e adicione-a numa linha.

torch.nn¶
  • pytorch.org
class ¶ A kind of Tensor that is to be considered a module parameter. Parameters are subclasses, that have a very special property when used with s - when they’re assigned as Module attributes they are automatically added to the list of its parameters, and will appear e.g. in iterator. Assigning a Tensor doesn’t have such effect. This is...
Razão: